Previous: 10.6.2. RTCアラームによる復帰 |
Up: マイコン徹底入門:周辺回路編:STM32のペリフェラルを活用 |
Next: 11.1. 無限ループの例(値のチェック漏れ) |
ウォッチドッグタイマはシステムの不具合を検出するためのタイマです。
現在の組み込みシステムはその内容が非常に複雑なものとなってきており、テストやデバッグを繰り返したとしても、完全無欠なプログラムを作ることが難しくなってきています。また組み込みシステムではマイコンに多くの外部機器が接続されており、これらの外部機器の不具合がマイコンの動作に影響を与えることがあります。
そこでマイコンが何らかの理由で動作を停止したことを検出できるようにすることが重要になります。ウォッチドッグタイマは異常検出のための手法の一つです。ウォッチドッグとは番犬のことで、システムの見張り番として動作するタイマということになります。
STM32のウォッチドッグタイマはダウンカウントのタイマなのですが、一旦スタートさせてカウンタがアンダーフローすると、マイコンが強制的にリセットされます。そのためカウンタがアンダーフローする前に、カウンタをリセットして初期値に戻さなければいけません。この「カウンタのリセット」という作業を、プログラムのループのどこかに組み込んでおきます。そうするとプログラムが途中で停止すると、ウォッチドッグタイマをリセットできなくなり、システムがリセットされます。タイマ割込みでウォッチドッグタイマをリセットすることもできます。この場合には割込みコントローラの設定を誤ってタイマ割込が発生しないような状況になると、システムがリセットされることになります。
STM32には2つのウォッチドッグタイマが内蔵されています。このうちの一つが独立型ウォッチドッグ(IWDG:Independent WatchDoG)です。
ここでいう「独立」はカウンタのクロック源がシステムクロックから独立しているという意味です。システムクロックにはHSE又はHSIクロックが使用されますが、独立型ウォッチドッグはLSIクロックを使用します。そのためHSE又はHSIクロックに問題が発生した場合でも、独立型ウォッチドッグには影響がありません。そのため独立型ウォッチドッグは信頼性・安全性が高い強固なウォッチドッグと言えます。
以下ありがちな不具合をサンプルプログラムで再現しながら、独立型ウォッチドッグの使用方法を説明します。
Previous: 10.6.2. RTCアラームによる復帰 |
Up: マイコン徹底入門:周辺回路編:STM32のペリフェラルを活用 |
Next: 11.1. 無限ループの例(値のチェック漏れ) |