ウォッチドッグタイマ
ウォッチドッグタイマとは
ウォッチドッグタイマは、プログラムが暴走していないか、プログラムがフリーズしていないかを監視するためのタイマで、「WDT」とマニュアルなどで表記されています。
ウォッチドッグタイマの内部にはカウンタが内蔵されており、そのカウンタがカウントアップを続け、オーバーフローしないようにカウンタをクリアするようソフトウェア設計されます。そして、オーバーフローすると割込みを発生したり、リセットを発生したりします。
このウォッチドッグタイマの機能により、例えば、電気ケトルの例の場合、設定した温度になってもヒータの電源が切れないなど、仕様と異なる動作をした場合、自動的に電気ケトルの温度上昇を停止したりすることができます。
ウォッチドッグタイマの構成
ウォッチドッグタイマにはカウンタがあり、このカウンタはカウントアップし続け、プログラムでは停止させることはできず、そのままでは、オーバーフローします。
このカウンタがオーバーフローしないようにするためには、カウンタをプログラムでクリアする必要があります。
ソフトウェア設計者は、カウンタがオーバーフローしないように定期的にプログラムでカウンタをクリアするようにソフトウェアを設計します。こうすることで、プログラムが正常に動作していれば、意図通りオーバーフロー前にカウンタをクリアできます。
しかし、カウンタがクリアできなかった場合、ソフトウェア設計者の意図通りにプログラムが動作していない、つまり、「なにか障害が発生した」ということになります。この場合、マイコンの仕様によって様々ですが、マイコンに割込みを発生させる機能や、マイコンをリセットさせる機能があります。
この割込みにより安全にシステムを停止させることもできますし、マイコン自身をリセットさせる場合、システムを最初から起動し直すこともできます。
これら機能によって、マイコンに異常が発生した時でも、問題の発生を防ぐことができます。