Я все ще шукаю відповідь на це питання:
Чому, хоча MCU-модулі stm32 мають ідеальну сторожову собаку (я маю на увазі сторожову сторону Window (WWDG)), існує простий сторожовий (незалежний сторожовий (IWDG))?
Я знайшов цю сторінку , яка сказала:
ST Microelectronics має лінійку пристроїв Cortex-M3. M3 став надзвичайно популярним для вбудованих пристроїв нижчого класу, і STM32F ST є представником цих частин (хоча WDT є надбудовою ST і не обов'язково відображає реалізацію інших постачальників). STM32F має два різних механізми захисту. "Незалежна сторожова собака" - це гарненький дизайн ванілі, який мало для цього, крім простоти використання. Але їх віконний сторожовий дог пропонує більш надійний захист. Коли закінчується таймер зворотного відліку, створюється скидання, яке може бути перешкоджене перезавантаженням таймера. Нічого особливого там немає. Але якщо перезавантаження відбудеться занадто швидко, система також скинеться. У цьому випадку "надто швидко" визначається значенням програми в регістр управління.
Ще одна цікава функція: вона може генерувати переривання безпосередньо перед скиданням. Напишіть трохи коду, щоб перервати переривання, і ви можете вжити певних дій, наприклад, щоб привести систему в безпечний стан або зробити знімок даних для цілей налагодження. ST пропонує використовувати ISR для перезавантаження сторожової собаки - тобто, забийте собаку, щоб не відбулося скидання. Не приймайте їх порад. Якщо програма виходить з ладу, обробники переривань можуть дуже добре продовжувати працювати нормально. І використання ISR для перезавантаження WDT визнає недійсною всю причину сторожового вікна.
і це :
У новій серії процесорів STM32F4 Cortex ™ -M4 STMicroelectronics є дві незалежні сторожові собаки. Один працює від власного внутрішнього генератора RC. Це означає, що в процесорі можуть впасти всілякі речі, і WDT все ще запуститься. Існує також "віконна сторожова собака" (WWDT), яка вимагає від коду галочки її часто, але не занадто часто. Це дуже ефективний спосіб страхування збійного коду, який випадковим чином записується в механізм захисту, що не викликає тик WDT, і WWDT може генерувати переривання незадовго до того, як буде встановлено скидання.
ОК, давайте подивимось у посібнику :
STM32F10xxx мають дві вбудовані периферійні пристрої, які пропонують поєднання високого рівня безпеки, точності та гнучкості використання. Обидві периферійні пристрої сторожової служби (Незалежні та Вікна) служать для виявлення та усунення несправностей через відмову програмного забезпечення та для запуску скидання системи або переривання (лише для сторожового вікна), коли лічильник досягає заданого значення очікування. Незалежна сторожова собака (IWDG) працює за допомогою власного спеціалізованого низькошвидкісного годинника (LSI) і, таким чином, залишається активною, навіть якщо основний годинник виходить з ладу. Годинник віконних вікон (WWDG) призначений для годинника APB1 і має настроюваний часовий вікно, яке може бути запрограмовано для виявлення ненормально пізньої або ранньої поведінки програми. IWDG найкраще підходить для програм, які вимагають запуску сторожового собаки як абсолютно незалежний процес поза основним додатком, але мають менші обмеження точності синхронізації. WWDG найкраще підходить для програм, які вимагають від сторожової реагування в точному діапазоні часу.
Віконний сторожовий вікно використовується для виявлення виникнення програмної несправності, яка зазвичай генерується зовнішніми перешкодами або непередбачуваними логічними умовами, через що прикладна програма відмовляється від своєї нормальної послідовності. Схема сторожової служби генерує скидання MCU після закінчення запрограмованого періоду часу, якщо програма не оновлює вміст нижнього обліку до того, як біт T6 не очиститься. Скидання MCU також генерується, якщо 7-бітне значення спаду (в регістрі керування) оновлено до того, як низхідний чисельник досяг значення віконного регістра. Це означає, що лічильник повинен бути оновлений в обмеженому вікні.
Як бачите, жоден з них не сказав, що чому є два сторожові. якщо я запитаю, в чому полягають відмінності між обома сторожовими собаками, ви порахуєте всі функції, які ви можете побачити у вищесказаному, і якщо ви хочете порівняти обидва, очевидно, переможець буде сторожовим вікном Window (WWDG)! то чому є два сторожові собаки?
Хочу знати, що коли я повинен використовувати IWDG та коли WWDG?
і чи є якісь причини, які говорять нам? Чому вони називають другий годинник за такою назвою -> "Віконна сторожова собака"?