ウォッチドッグタイマ

この投稿では、ウォッチドッグタイマについて説明します。

ウォッチドッグタイマとは

ウォッチドッグタイマ(WDT: Watchdog Timer)は、組み込みシステムやコンピュータシステムで使用される自動リセット機能付きのタイマです。システムが正常に動作していることを確認し、異常が発生した場合に自動的にリセットをかけることで、システムの安定性を向上させます。

WDTの仕組み

WDTは、有効化(イネーブル)されると、一定時間(タイムアウト時間)のカウントを開始するタイマです。プログラムは、定期的に「WDTクリア」を行い、カウントをリセットしてWDTを再スタートさせます(これを「ウォッチドッグをキックする」とも呼びます)。WDTがタイムアウトすると、システム異常が発生したと判断され、リセット信号がMCUのリセット機能へ送られます。

最近では、タイムアウト以外にもウィンドウ(Time Min ~ Time Max以内)にキックしないとリセット信号を送るようなタイプもあります。

また、WDTには、MCU内臓WDTと外付けWDTがあります。

メリットデメリット
MCU内臓WDT・追加コストが発生しない
・ソフトウェアで容易に実装できる
・省スペース
・消費電力が低い
・MCUが完全にフリーズすると機能しない可能性がある*
・リセットの確実性が外付けに比べて低い*
・設定ミスやソフトウェアのバグで無効化される可能性がある
外付けWDT・MCUが完全にフリーズしても機能する
・MCUを監視することも可能
・リセット信号送信だけでなく電源強制遮断や異常ログの保存など、さまざまなアクションを設定できる
・追加コストがかかる
・基板が複雑になる
・MCUのGPIOを使う
・消費電力が増加する

* 対策しているMCUもあります

WDTの注意点

WDTは、次のことに注意する必要があります。

  • デバッグ方法によってはWDTリセットが発生することがあるため、必要に応じてWDTを無効化してください。
  • プログラムのキック処理は、最も優先順位の低い処理で実行してください。
    優先順位の高い処理でキック処理を行うと、それより優先順位が低い処理で無限ループなどの異常が発生しても、WDTが検知できなくなる可能性があります。
  • 外付けWDTを使用する場合、リプロ時には定周期WDTのキック処理を行ってください。
OSS-ECAL Japanese
error: コンテンツは保護されている