Необхідність зовнішнього таймера для сторожового контролю


19

Яка потреба у зовнішньому сторожовому таймері мікроконтролера?

Більшість мікроконтролерів розроблені із внутрішнім сторожовим таймером. Однак у деяких схемах вони використовують зовнішній таймер (наприклад, PIC16F1824).

Відповіді:


10

Деякі вироби повинні відповідати вимогам безпеки, визначених виробником, або відповідати міжнародним стандартам безпеки, таким як IEC 60730-1, або старіший UL1998, який досі застосовується в США. Внутрішня функція сторожового собаки у будь-якому даному мікроконтролері може чи не може бути адекватною для використання. Зовнішня ВДТ може використовуватися в поєднанні з внутрішньою ВДТ в деяких випадках.

Деякі мікроконтролери, такі як серія Hercules TI, дуже серйозно сприймають програми, що мають важливе значення для безпеки, і, швидше за все, відповідають суворим вимогам, однак вони можуть бути непридатними для застосувань, що відрізняються за витратами.

Зазвичай ВДТ - це один із кількох способів зменшити ймовірність збою, що спричинить катастрофічну шкоду майну або пошкодження життя. Інші речі, такі як захист пам’яті для виявлення несподіваного доступу до пам’яті MCU або вибору програм з невикористаної пам’яті, як правило, використовуються разом із WDT.

Прикладами недорогих виробів, що виконують важливі для безпеки функції, є автомобільні підсистеми, контролери дверних гаражів та контролери запалювання газу (природного газу або пропану), що застосовуються в печах, сушарках та водонагрівачах. Звичайно, багато медичних та космічних виробів також критично важливі для безпеки, проте може бути достатньо місця для надмірності та інших підходів. У деяких випадках безпечний стан може бути легкодоступним, наприклад, у літаку.

В ідеалі сторожовий таймер дуже простий, незалежний від MCU (наприклад, він повинен мати власне джерело та, можливо, годинниковий монітор), не може бути встановлений (програмним забезпеченням) довший час, ніж це призведе до пошкодження будь-якої помилки програмного забезпечення, і переведе систему в безпечний стан, якщо вона не буде "в'язана" вчасно, або з тайм-аутом, або з віконним режимом, тому занадто часті скидання можуть бути виявлені. Наприклад, WDT в додатку терморегулювання може бути встановлено на кілька секунд, тому що ніяких пошкоджень неможливо, якщо мікроконтролер замикається на цей проміжок часу.

WDT найбільш корисний як частина системного підходу до надійності та безпеки.


33

Сторожовий таймер може захистити від апаратних помилок у баггі-шматочку ... передових мікроконтролерів. Один, який ми нещодавно використовували, від відомого бренду, мав шпильки вводу / виводу, які періодично пропускали їх переривання, іноді не запускався правильно, і де інтегрована сторожова собака іноді не могла скинути систему у відомий-добрий стан.

Це не з’явилося, поки ми не почали довго перевіряти надійність, і було легше додати зовнішнього сторожового дога, ніж змінити мікроконтролер.

Якщо на друкованій платі у вас є більше одного ІМС, вам може знадобитися зовнішній перезавантажувач IC або монітор напруги, щоб все надійно завантажувалося. Багато з них також можуть служити сторожовим собакою.


9
"Інтегрована сторожова собака іноді не могла скинути систему у відомий-добрий стан" - це функціонально еквівалентно "немає внутрішнього сторожового собаки".
Дмитро Григор’єв

32

Важко заперечити, що внутрішній годинник внутрішньої сторожової собаки насправді не залежить від усіх інших годин і завжди працює як слід.

Тож для сертифікації зазвичай набагато простіше помістити зовнішню сторожову собаку на плату і сказати: дивіться, є наш сторожовий собака, він повинен спрацьовувати MCU на тому інтервалі, який коротший, ніж наш час до відмови, тому наш пристрій безпечний як ми це визначили.


Щоб вирішити деякі коментарі:

"і завжди працює так, як слід" - Добрий момент. Довести, що ваше програмне забезпечення правильно ініціалізує внутрішню сторожову собаку за будь-яких обставин, може бути важче, ніж просто використовувати чіп сторожової собаки та звернутися до її аркуша.

Зазвичай це доводиться тестом на встановлення несправностей, який ви представляєте до органу сертифікації. Таким чином, ви показуєте їм код, де відбувається ваша ініціалізація, і де відбувається запуск сторожової собаки. Зазвичай вони просять вас змінити код таким чином, щоб спрацьовування запуску сторожової собаки припинялося через певний час і перевіряли, чи правильно встановлено регулятор.

Або довести, що ваш код не містить помилки, яка випадково вимикає внутрішню сторожу.

Принаймні, на деяких контролерах сторожовий пес називається незалежним, має власне джерело тактового режиму, і його неможливо відключити програмними засобами, лише скидання контролера відключить сторожову сторону. Принаймні теоретично - легко показати, що ви не можете зупинити це програмним забезпеченням, але важко довести, що годинник справді незалежний і не зупиниться в рамках EMI.

Або довести, що ваш код не працює безперервно, скидаючи зовнішню сторожову собаку настільки швидко, наскільки це можливо. Проблема вирішена. ;-)

У цьому випадку ви використовуєте віконну сторожову собаку, яку потрібно запускати через певні проміжки часу, і якщо ви цього не зробите (запустіть її занадто часто або занадто рідше), скинете ланцюг. У STM32, з яким я працюю, є внутрішня сторона вікон, але вона працює від PCLK1, який походить від основного годинника, тому я не думаю, що це так корисно, як зовнішня сторожова собака з власним джерелом годинника.

Або що якийсь геній не поміщає процедуру обслуговування сторожового собаки всередину таймера ISR, тому основний код може вийти з ладу, але переривання продовжує стріляти та обслуговувати сторожового досконало ...

Це, безумовно, правда, але, сподіваємось, огляд поверне цього генія на його стілець - але ей, коли я почав свою роботу, це була моя перша ідея: D. Під час процесів сертифікації, в яких я брав участь, вони завжди переглядали сторожову частину програмного забезпечення.


4
"і завжди працює так, як слід" - Добрий момент. Довести, що ваше програмне забезпечення правильно ініціалізує внутрішню сторожову собаку за будь-яких обставин, може бути важче, ніж просто використовувати чіп сторожової собаки та звернутися до її аркуша.
JimmyB

4
@JimmyB Або щоб довести, що ваш код не містить помилки, яка випадково відключає внутрішню сторожу.
TripeHound

2
@TripeHound Або довести, що ваш код не працює безперервно, скидаючи зовнішню сторожову собаку так швидко, наскільки це можливо. Проблема вирішена. ;-)
JimmyB

2
Або що якийсь геній не поміщає розпорядок служби сторожових служб всередині таймера ISR, тому основний код може вийти з ладу, але переривання продовжує стріляти та обслуговувати сторожову досконало ...
Джон U

@JohnU, однак, це не здається чимось, що допоможе зовнішній ІС.
ilkkachu

12

Вбудовані до мікроконтролерів сторожові собаки мають особливі властивості, що означають, що вони самі можуть вийти з ладу способами, які не можуть мати інші зовнішні сторожові собаки.

Наприклад, поширена конструкція - використовувати таймер сторожового часу, що працює від RC-генератора малої потужності. Цей генератор може вийти з ладу. Зовнішня сторожова собака, заснована на розряді конденсатора, а не осциляторі, все ще може скинути мікроконтролер у багатьох випадках.

Ще одна причина - зовнішня сторожова собака може бути більш надійною. Мікроконтролер може надійно працювати лише в певному діапазоні напруги, і, будучи складним пристроєм, може бути зафіксований замикання таким чином, що його внутрішня сторожова собака неефективна. Зовнішня сторожова собака може мати ширший прийнятний діапазон подачі та бути менш схильною до проблем, що піддаються електричному шуму.

Зовнішні сторожові собаки також пропонують набагато ширший діапазон значень тайм-ауту. Мікроконтролер, який я часто використовую, XMEGA, має максимальний час очікування близько 7 секунд. До одного продукту я додав додаткову зовнішню сторожову собаку із затримкою 2 години. Це дозволило мені будити мікроконтролер раз на годину, а не раз на кілька секунд, зменшуючи енергоспоживання пристрою, що працює на акумуляторі.

Зовнішні сторожові собаки іноді мають кілька функцій, такі як таймер і контроль напруги / контроль скидання. Знову ж таки, це може бути меншою потужністю, ніж вбудована система мікроконтролера.

Ще однією цікавою перевагою зовнішньої сторожової собаки є те, що її можна використовувати для скидання пристроїв, крім мікроконтролера. Наприклад, він може керувати штифтом включення регулятора напруги, відключаючи всю схему для скидання відразу декількох пристроїв. Використовуючи просту логіку, сигнал скидання сторожового собаки з декількох джерел можна поєднувати, що дозволяє сторожовому собаці вимагати від декількох пристроїв постійно скидати його.


Виходячи з мого досвіду зовнішніх вдогів, я б сказав, що вони набагато менш надійні, ніж внутрішні, просто тому, що інша зовнішня схема - інша річ, яка може зламатися. Пайка, EMI, ESD тощо. Якщо вам вдасться скоротити введення годинника на щось, тоді зовнішній wdog ефективно відключений. Тому я не купую особливості безпеки. Якщо у вас обоє одразу, то впевнено, ви так незначно підвищите безпеку.
Лундін

@Lundin більшість із них використовують внутрішній RC-генератор або розряд конденсатора, а не зовнішній годинник. Насправді я не можу придумати жодної руки, яка використовує зовнішній годинник. Також невдачі не є адекватними, якщо у вас є зовнішня і внутрішня сторожова собака, і одна виходить з ладу, це явно все-таки краще, ніж мати лише одного.
користувач

3

Деякі сертифікати, наприклад UL , можуть вимагати захисту від двох пунктів відмови. Зовнішнім таймером слід вважати захист від першої точки відмови, мікроконтролера.


2

Сторожовий пес насправді нічим не відрізняється від інших вбудованих периферійних пристроїв, які ви знайдете в MCU. MCU поставляються з таймерами, RTC, ADC, EEPROM та контролерами скидання, але всі ці функції також існують як окремі ІС. Якщо доступні вбудовані блоки не відповідають вашим вимогам, вам доведеться використовувати зовнішні. Або ви можете спробувати знайти MCU з усіма потрібними блоками, які можуть не існувати або бути занадто дорогими або важкими для порту коду.


1

Сторожовий собака - це таймер і активує його вихід, коли ІС втрачає вхідний імпульс на певний період.

Це будівельний блок і може використовуватися для будь-якого застосування.

Отже, їх можна використовувати в будь-якій програмі, наприклад, змінювати маршрутизацію даних безвідмовному режимі. Коли годинник мікроконтролера виходить з ладу, ми не можемо відключити деякі критичні виходи.

Зовнішня сторожова собака не пов'язана зі складним доменним годинником мікроконтролера, а деякі з них мають своє аналоговий синхросигнал RC або внутрішній годинник.

Цифрові мікросхеми випромінювання можуть спрацьовувати на виходах, коли заряд потрапляє в їх відкидні крила. Але деякі аналогові схеми є більш безпечними, оскільки вони інтегрують заряд в конденсатор, і це безпечно, коли ми інтегруємо його.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.