さらに高信頼性が必要な用途向けに、リフレッシュ期間に制限を設けたウォッチドッグタイマーがあります。ウォッチドッグタイマーがスタートしてから、ある決められた時間が経過しないと、リフレッシュできない仕組みになっています。
図2にその例を示します。カウンターがダウンカウント中の期間に、リフレッシュ可能期間のウィンドウを設けて、そのウィンドウ内の期間以外でリフレッシュするとリセットされるようになっています。もちろんアンダーフローが発生してもリセットされます。
ウォッチドッグタイマーがオーバーフローまたはアンダーフローした時にリセットを掛けるのではなく、割り込みを発生させる製品もあります。割り込み処理を完全にハードウェアが行うマイコンに限りますが、リセットの代わりに割り込みを発生させれば、ハードウェアが強制的にプログラムを割り込みサービス・ルーチンに飛ばします。ですので、その中で事故処理を行えば暴走を止めることができます。
しかし、割り込みサービス・ルーチンもプログラム(ソフトウェア)ですので、暴走の余波(例えば、スタックの中身が破損しているなど)が残っている可能性があります。そこで、割り込みに飛んで行っても、さらに暴走が続く場合は、リセットをかけるという2段階(割り込み→リセット)になっているウォッチドッグタイマーもあります。
参考までに、図3にSTマイクロエレクトロニクスのSTM32に搭載されているウォッチドッグタイマーの例を示します。
Copyright © ITmedia, Inc. All Rights Reserved.