Kebutuhan timer pengawas eksternal

19

Apa perlunya pengawas waktu eksternal untuk mikrokontroler?

Sebagian besar mikrokontroler dirancang dengan timer pengawas internal. Namun, di beberapa sirkuit mereka menggunakan pengawas waktu eksternal (seperti PIC16F1824).

Foton001
sumber

Jawaban:

10

Beberapa produk harus memenuhi persyaratan keselamatan, baik ditentukan oleh pabrikan atau untuk memenuhi standar keselamatan internasional seperti IEC 60730-1, atau UL1998 yang lebih lama yang masih digunakan di AS. Fungsi pengawas internal dalam setiap mikrokontroler yang diberikan mungkin atau mungkin tidak memadai untuk digunakan. WDT eksternal dapat digunakan dalam kombinasi dengan WDT internal dalam beberapa kasus.

Mikrokontroler tertentu seperti seri Hercules TI menangani aplikasi sistem kritis keselamatan dengan sangat serius dan lebih mungkin untuk memenuhi persyaratan yang ketat, namun mereka mungkin tidak sesuai untuk aplikasi yang sensitif biaya.

Biasanya WDT adalah salah satu dari sejumlah cara untuk mengurangi kemungkinan kegagalan yang menyebabkan kerusakan parah pada properti atau cedera pada nyawa. Hal-hal lain seperti perlindungan memori untuk mendeteksi akses tak terduga ke memori MCU atau program yang diambil dari memori yang tidak digunakan biasanya digunakan bersama dengan WDT.

Contoh produk murah yang melakukan fungsi kritis keselamatan adalah subsistem otomotif, pengontrol pintu garasi dan pengontrol pengapian gas (gas alam atau propana) yang digunakan dalam tungku, pengering dan pemanas air. Tentu saja banyak produk medis dan kedirgantaraan juga kritis terhadap keselamatan tetapi mungkin ada ruang yang cukup untuk redundansi dan pendekatan lainnya. Dalam beberapa kasus, mungkin tidak ada negara aman yang mudah dijangkau - misalnya, di pesawat terbang.

Idealnya pengawas waktu sangat sederhana, independen dari MCU (misalnya, harus memiliki sumber jam sendiri dan mungkin monitor jam), tidak dapat diatur (oleh perangkat lunak) ke waktu yang lebih lama daripada yang akan menyebabkan kerusakan oleh kesalahan perangkat lunak, dan akan membuat sistem menjadi keadaan aman jika tidak "dibelai" tepat waktu, baik dengan waktu habis atau dengan cara berjendela sehingga pengaturan ulang yang terlalu sering dapat dideteksi. Misalnya, WDT dalam aplikasi kontrol termal mungkin diatur ke beberapa detik karena tidak ada kerusakan yang mungkin terjadi jika mikrokontroler terkunci untuk jangka waktu yang lama.

WDT paling berguna sebagai bagian dari pendekatan tingkat sistem untuk keandalan dan keamanan.

Spehro Pefhany
sumber
33

Sebuah pengawas waktu dapat menjaga terhadap bug perangkat keras di ... kereta mikrokontroler canggih. Salah satu yang baru-baru ini kami gunakan, dari merek terkenal, memiliki pin I / O yang kadang-kadang melewatkan interupsi mereka, kadang-kadang tidak memulai dengan benar, dan di mana pengawas terpadu terkadang gagal mengatur ulang sistem dalam kondisi yang dikenal baik.

Ini tidak muncul sampai kami mulai dengan pengujian reliabilitas lama, dan lebih mudah untuk menambahkan pengawas eksternal daripada mengubah mikrokontroler.

Jika Anda memiliki lebih dari satu IC pada PCB Anda juga mungkin memerlukan reset-IC atau monitor tegangan eksternal untuk membuat semuanya boot dengan andal. Banyak dari ini juga dapat berfungsi sebagai pengawas.

pipa
sumber
9
"pengawas terpadu kadang gagal mengatur ulang sistem dalam kondisi yang dikenal baik" - ini secara fungsional setara dengan "tidak ada pengawas internal".
Dmitry Grigoryev
32

Sulit untuk diperdebatkan, bahwa jam internal pengawas internal sebenarnya independen dari semua jam lainnya dan selalu berjalan seperti seharusnya.

Jadi untuk sertifikasi biasanya lebih mudah untuk menempatkan pengawas eksternal di papan dan berkata: lihat ada pengawas kami, itu harus dipicu oleh MCU pada interval itu, yang lebih pendek daripada waktu kita untuk gagal, sehingga perangkat kita aman seperti yang kita definisikan.


Untuk mengatasi beberapa komentar:

"Dan selalu berjalan seperti seharusnya" - Poin bagus. Mungkin lebih sulit untuk membuktikan bahwa perangkat lunak Anda menginisialisasi pengawas internal dengan benar dalam semua keadaan daripada hanya menggunakan chip pengawas dan merujuk ke datasheet-nya.

Ini biasanya dibuktikan dengan tes penyisipan kesalahan, yang Anda hadirkan ke badan sertifikasi. Jadi, Anda menunjukkan kepada mereka kode di mana inisialisasi Anda terjadi, dan di mana pemicu dari pengawas terjadi. Mereka biasanya meminta Anda untuk memodifikasi kode sedemikian rupa sehingga pemicu dari pengawas dihentikan setelah waktu tertentu telah berlalu dan memeriksa apakah pengontrol diatur ulang dengan benar.

Atau untuk membuktikan bahwa kode Anda tidak mengandung bug yang secara tidak sengaja menonaktifkan pengawas internal.

Setidaknya pada beberapa pengontrol, watchdog disebut independen dan memiliki sumber clock sendiri dan tidak dapat dinonaktifkan dengan cara perangkat lunak, hanya reset controller yang akan menonaktifkan watchdog. Setidaknya dalam teori - mudah untuk menunjukkan bahwa Anda tidak dapat menghentikannya dengan perangkat lunak tetapi sulit untuk membuktikan bahwa jam benar-benar independen dan tidak akan berhenti di bawah EMI.

Atau untuk membuktikan bahwa kode Anda tidak bekerja secara liar, menyetel ulang pengawas eksternal secepat mungkin. Masalah terpecahkan. ;-)

Untuk itu Anda menggunakan pengawas jendela yang harus dipicu pada interval tertentu dan jika Anda gagal melakukannya (memicu terlalu sering atau terlalu sedikit) akan mereset sirkuit. STM32 yang bekerja dengan saya memiliki pengawas jendela internal, tetapi dijalankan dari PCLK1 yang berasal dari jam utama, jadi saya tidak berpikir itu berguna seperti pengawas eksternal dengan sumber jam sendiri.

Atau bahwa beberapa orang jenius tidak memasukkan rutinitas layanan pengawas ke dalam timer ISR, sehingga kode utama dapat macet tetapi interupsi terus menyala & melayani pengawas dengan sempurna ...

Itu memang benar, tetapi mudah-mudahan ulasan akan menempatkan jenius itu kembali di kursinya - tapi hei ketika saya mulai, itu adalah ide pertama saya juga: D. Selama proses sertifikasi yang saya ikuti, mereka selalu melihat bagian pengawas dari perangkat lunak.

Gudang senjata
sumber
4
"Dan selalu berjalan seperti seharusnya" - Poin bagus. Mungkin lebih sulit untuk membuktikan bahwa perangkat lunak Anda menginisialisasi pengawas internal dengan benar dalam semua keadaan daripada hanya menggunakan pengawas dan merujuk pada lembar datanya.
JimmyB
4
@ JimmyB Atau untuk membuktikan bahwa kode Anda tidak mengandung bug yang secara tidak sengaja menonaktifkan pengawas internal.
TripeHound
2
@ TripeHound Atau untuk membuktikan bahwa kode Anda tidak berjalan secara liar, menyetel ulang pengawas eksternal secepat mungkin. Masalah terpecahkan. ;-)
JimmyB
2
Atau bahwa beberapa orang jenius tidak memasukkan rutinitas layanan pengawas ke dalam timer ISR, sehingga kode utama dapat macet tetapi interupsi terus menyala & melayani pengawas dengan sempurna ...
John U
@ JohnU, bahwa, bagaimanapun, tidak akan tampak seperti sesuatu IC eksternal akan membantu.
ilkkachu
12

Watchdog yang dibangun pada mikrokontroler memiliki sifat tertentu yang berarti mereka sendiri dapat gagal dengan cara yang mungkin tidak dilakukan oleh pengawas eksternal yang berbeda.

Misalnya, desain umum adalah menggunakan pengawas waktu berjalan dari osilator RC daya rendah. Osilator itu bisa gagal. Watchdog eksternal yang didasarkan pada pelepasan kapasitor daripada osilator masih dapat mengatur ulang mikrokontroler dalam banyak kasus.

Alasan lain adalah bahwa pengawas eksternal bisa lebih kuat. Sebuah mikrokontroler mungkin hanya beroperasi dengan andal pada rentang tegangan tertentu, dan menjadi perangkat yang kompleks dapat dikenakan dengan cara yang membuat pengawas internal sendiri tidak efektif. Watchdog eksternal mungkin memiliki rentang pasokan yang lebih luas dan tidak terlalu rentan terhadap masalah saat mengalami kebisingan listrik.

Watchdog eksternal sering menawarkan rentang nilai time-out yang jauh lebih luas juga. Sebuah mikrokontroler yang sering saya gunakan, XMEGA, memiliki batas waktu maksimum sekitar 7 detik. Untuk satu produk saya menambahkan pengawas eksternal tambahan dengan batas waktu 2 jam. Itu memungkinkan saya untuk membangunkan mikrokontroler sekali dalam satu jam, bukan setiap beberapa detik, mengurangi konsumsi daya pada perangkat bertenaga baterai.

Watchdog eksternal kadang-kadang memiliki beberapa fungsi, seperti timer dan monitor / pengaturan ulang tegangan. Sekali lagi, ini bisa lebih rendah daya daripada sistem built-in mikrokontroler juga.

Satu keuntungan menarik lainnya dari pengawas eksternal adalah ia dapat digunakan untuk mengatur ulang perangkat selain mikrokontroler. Misalnya, mungkin mengontrol pin pengaktif tegangan, mematikan seluruh rangkaian untuk menyetel ulang beberapa perangkat sekaligus. Dengan menggunakan logika sederhana, sinyal reset pengawas dari berbagai sumber dapat digabungkan, memungkinkan pengawas membutuhkan beberapa perangkat untuk terus-menerus menyetel ulangnya.

pengguna
sumber
Berdasarkan pengalaman saya tentang wdog eksternal, saya akan mengatakan mereka jauh lebih kuat daripada yang internal, hanya karena sirkuit eksternal lain adalah hal lain yang dapat dipecahkan. Solder, EMI, ESD, dan sebagainya. Jika Anda berhasil mempersingkat input jam menjadi sesuatu, maka wdog eksternal dinonaktifkan secara efektif. Jadi saya tidak benar-benar membeli aspek keamanan yang meningkat. Jika Anda memiliki keduanya sekaligus, maka pasti, Anda akan sedikit meningkatkan keselamatan.
Lundin
@Lundin kebanyakan dari mereka menggunakan osilator RC internal atau pelepasan kapasitor, daripada jam eksternal. Sebenarnya saya tidak bisa memikirkan ada yang menggunakan jam eksternal. Kegagalan juga bukan aditif, jika Anda memiliki pengawas eksternal dan internal dan satu gagal itu jelas masih lebih baik daripada hanya memiliki satu.
pengguna
3

Sertifikasi tertentu, seperti UL , mungkin memerlukan perlindungan dari dua titik kegagalan. Timer pengawas eksternal akan dianggap perlindungan dari titik pertama kegagalan, mikrokontroler.

da66en
sumber
2

Watchdog benar-benar tidak berbeda dalam hal ini dari perangkat bawaan lain yang Anda temukan di MCU. MCU datang dengan timer, RTC, ADC, EEPROM, dan reset controller, namun semua fungsi ini juga ada sebagai IC terpisah. Jika blok bawaan yang tersedia tidak memenuhi persyaratan Anda, Anda harus menggunakan yang eksternal. Atau Anda dapat mencoba menemukan MCU dengan semua blok yang tepat, yang mungkin tidak ada atau terlalu mahal atau sulit untuk port kode Anda.

Dmitry Grigoryev
sumber
1

Watchdog adalah pengatur waktu dan mengaktifkan outputnya ketika IC kehilangan input pulsa untuk suatu periode.

Ini adalah blok bangunan dan dapat digunakan untuk aplikasi apa pun.

Jadi, mereka dapat digunakan dalam aplikasi apa pun, misalnya, mengubah perutean data dalam mode gagal-aman . Ketika jam mikrokontroler gagal, kami tidak dapat menonaktifkan beberapa output penting.

Watchdog eksternal tidak terkait dengan domain clock kompleks mikrokontroler, dan beberapa dari mereka memiliki waktu pengisian RC analog atau jam internal.

Sirkuit digital dalam radiasi dapat memicu output ketika muatan menyentuh sandal jepit mereka. Tetapi beberapa rangkaian analog lebih aman karena mereka mengintegrasikan muatan dalam kapasitor, dan aman ketika kita mengintegrasikannya.

M KS
sumber