※ ChatGPTを利用し、要約された質問です(原文:ウォッチドッグタイマ(WDT)の安全設計について。)
ウォッチドッグタイマの安全設計とは?
このQ&Aのポイント
ウォッチドッグタイマ(WDT)は組み込み系(車載系)のマイコンプログラムにおいて、マイコンの暴走を検知し、Resetを発生させる役割を持っています。
しかし、暴走した原因がわからないまま簡単にResetをかけることは問題です。ハード的な異常が発生しており、Resetをかけても必ず暴走してしまう可能性があるからです。
このような状態を防ぐためには、ウォッチドッグタイマ割り込みを使用して、割り込みルーチン内でソフトウェアリセットを行い、同時に発生回数を記憶し、ある回数を超えた場合にエラーモードに遷移するという方法が考えられます。
ウォッチドッグタイマ(WDT)の安全設計について。
組み込み系(車載系)の質問です。
マイコンのプログラムにて、ウォッチドッグタイマ
の仕様検討をしています。
通常ウォッチドッグはマイコン暴走時の検知として、
Resetを発生させるような作りになっていると思うのですが、
なぜ暴走したかわからないまま、単純にResetを
かけて、何もなかったように再び起動してよいものか?
と疑問に感じております。
(例えば、すでにハード的に異常が発生しており、マイコンの
Resetをかけてもある事象が発生すると必ず暴走してしまい。
それが原因で恐ろしい事態へとつながる・・等)
このような状態を防ぐためにも、何か定石的な考え方は
ありませんでしょうか?例でも結構ですので、ご教示
頂きたく思っております。
■例(自分なりに検討してみました)
例えばウォッチドッグタイマ割り込みを使用して、
割り込みルーチン内でソフトウェアリセットを掛ける。
その時同時に E2PROM等にウォッチドッグタイマ割り込み発生
回数を記憶しておき、Resetスタート後この発生回数を確認し、
ある回数を超えた時点で、エラーモードへ遷移する。
お礼
なるほど。。 大変参考になりました。 「エラーの頻度によってフェーズを切り替え、最終的にはシステムダウンさせる。」 使えそうです!有り難うございます。