FREE AID

機電系フリーランスエンジニア求人情報サイト「フリーエイド」

TOP > エンジニアコラム >ウォッチドッグタイマとは?仕組みや設計時のポイントを技術者向けに解説

ウォッチドッグタイマとは?仕組みや設計時のポイントを技術者向けに解説

                   

2026年9月25日更新

この記事を書いた人

機電系専門ライター Div.長谷川
「FREE AID」編集部:長谷川

大手メーカー「コマツ」、「オムロン」などで7年間、アナログ回路エンジニアとして設計・評価業務に従事。
ECU、PLCなどのエレキ開発経験を多数持つほか、機械商社での就労経験も有する。
株式会社アイズ運営の機電系フリーランスエンジニア求人情報「FREEAID」専属ライターとして、
機電分野の知識と実務経験を活かし、専門性の高い記事執筆を行っている。

ウォッチドッグタイマは、マイコンや組み込み機器のプログラムが正常に動作しているかを監視し、異常を検出した際にマイコンをリセットするためのタイマ機能です。プログラムの暴走や処理停止などが発生した場合でも、システムを自動的に再起動して復帰させるために使用されます。

本記事では、ウォッチドッグタイマの仕組みや役割、ソフトウェア・ハードウェアの設計時に確認したいポイントについて、組み込み機器の設計者向けに解説します。

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

ウォッチドッグタイマは、マイコンなどのプログラムが正常に実行されているかを監視するためのタイマです。あらかじめ設定した時間内にプログラムからタイマをクリアする処理を実行し、正常に動作していることを示します。

一定時間内にクリアされなかった場合は、プログラムが停止した、処理が異常な状態になったなどの可能性があるため、マイコンをリセットします。

例えば、ウォッチドッグタイマのタイムアウト時間を100msに設定した場合、プログラムが100ms以内に所定のクリア処理を実行し続けている間は、タイマによるリセットは発生しません。一方、プログラムが停止してクリア処理が実行されなくなると、タイムアウト後にマイコンがリセットされます。

ウォッチドッグタイマは、ソフトウェアだけでは復帰が難しい異常に対して、ハードウェア側からシステムを復帰させるための仕組みとして利用されます。

ウォッチドッグタイマの仕組み

ウォッチドッグタイマには、一定時間でカウントアップまたはカウントダウンするタイマと、そのタイマを監視する回路が用意されています。プログラムが正常に動作している場合は、一定周期でウォッチドッグタイマをクリアします。クリアするとタイマが初期状態に戻るため、タイムアウトせずに動作を継続できます。

一方、プログラムが無限ループに入ったり、処理が停止したりしてクリア処理が実行されなくなると、タイマがタイムアウトします。これを検出すると、マイコンのリセットが発生します。

ただし、ウォッチドッグタイマは「プログラム全体が正常に動作しているか」を直接判断しているわけではありません。基本的には、決められた時間内にクリア処理が実行されたかどうかを監視しています。そのため、ウォッチドッグタイマを使用する場合は、単に定期的にクリア処理を追加するだけでなく、システムの異常を適切に検出できる場所や条件を考慮する必要があります。

ウォッチドッグタイマの設計上の注意点

それでは、ウォッチドッグタイマを組み込み機器へ実装する際に、確認すべきポイントを解説します。

タイムアウト時間を適切に設定する

ウォッチドッグタイマでは、異常と判断するまでのタイムアウト時間を適切に設定する必要があります。

タイムアウト時間が短すぎると、正常な処理でも一時的に処理時間が長くなっただけでリセットが発生する可能性があります。例えば、通信処理やメモリへのアクセスなどで一時的に処理時間が延びる場合、その時間を考慮せずに短いタイムアウト時間を設定すると、誤って異常と判定するおそれがあります。

一方、タイムアウト時間を長くしすぎると、プログラムが停止してからリセットされるまでの時間も長くなります。そのため、通常時の最大処理時間だけでなく、割り込み処理や通信、エラー処理などによって処理が一時的に遅延するケースも考慮して、タイムアウト時間を設定する必要があります。

ウォッチドッグタイマのクリア処理を確認する

ウォッチドッグタイマを使用する場合は、プログラムからタイマをクリアする処理が適切に実行されることを確認します。クリア処理をメインループの先頭や末尾に入れるだけでは、プログラムの一部が停止していてもクリア処理だけが実行され、ウォッチドッグタイマが異常を検出できないケースがあります。

例えば、複数の処理が順番に実行されるプログラムでは、各処理が正常に完了したことを確認してからウォッチドッグタイマをクリアする方法があります。ウォッチドッグタイマを「プログラムが動いているか」だけでなく、「必要な処理が正常に実行されているか」を監視するために利用することが重要です。

WDTのリセット信号とRESET回路を確認する

ウォッチドッグタイマがタイムアウトしたときに、マイコンを確実にリセットできるハードウェア構成になっているか確認する必要があります。

マイコン内蔵のウォッチドッグタイマでは、タイムアウト時に内部でリセット処理が行われるものがあります。一方、外付けのウォッチドッグICを使用する場合は、ウォッチドッグICのリセット出力をマイコンのRESET端子などへ接続します。

この場合、ウォッチドッグICの出力形式やRESET端子の入力条件、必要なリセットパルス幅などを確認します。また、RESET信号にプルアップ抵抗やコンデンサなどが接続されている場合は、それらによってリセット信号の立ち上がり・立ち下がりやパルス幅が変化するため、データシートの推奨回路に従って設計することが重要です。

WDTのクロックや電源条件を確認する

ウォッチドッグタイマが、CPUの動作停止などを検出して確実にリセットできる構成になっているかも確認する必要があります。マイコンによっては、WDTがCPUのメインクロックとは独立したクロック源で動作するものがあります。

このような構成では、CPUが停止した場合でもWDTが動作を継続し、タイムアウトによってCPUをリセットできます。一方、WDTの動作に使用するクロック源や電源条件によっては、CPUの停止や電源状態の変化によってWDTも正常に動作できなくなる場合があります。

そのため、使用するマイコンのデータシートを確認し、WDTがどのクロック源で動作するか、どのような電源条件で動作するかを確認することが重要です。

リセット後の復帰処理を確認する

ウォッチドッグタイマによってリセットが発生した場合、その後にシステムが正常な状態へ復帰できることも確認する必要があります。マイコンがリセットされても、周辺回路や外部デバイスの状態がリセット前のまま残っている場合があります。そのため、再起動時に周辺デバイスを初期化したり、通信を再確立したりする処理が必要になることがあります。

また、ウォッチドッグタイマによるリセットが発生したことをリセット要因として記録できるマイコンもあります。リセット要因を確認できるようにしておくと、実機で発生した異常の解析にも役立ちます。

正常な処理遅延と異常停止を区別する

ウォッチドッグタイマを設定するときは、正常な処理の中で発生する一時的な遅延と、異常による処理停止を区別できるようにする必要があります。

例えば、長時間かかる処理がある場合、その処理中にウォッチドッグタイマのタイムアウトが発生しないよう、タイムアウト時間を調整する方法があります。

ただし、単純にタイムアウト時間を長くすると、異常発生時の復帰も遅くなります。そのため、処理を分割して途中で進捗を確認できるようにする、処理完了を確認してからウォッチドッグタイマをクリアするなど、ソフトウェアの構造も含めて設計することが重要です。

まとめ

ウォッチドッグタイマは、マイコンや組み込み機器のプログラムが正常に動作しているかを監視し、異常時にマイコンをリセットしてシステムを復帰させるための機能です。プログラムの停止や暴走など、通常のソフトウェア処理だけでは復帰できない異常への対策として利用されます。

設計時には、タイムアウト時間が通常の処理時間に対して適切かを確認するとともに、必要な処理が正常に実行されたことを確認してからWDTをクリアするなど、異常を適切に検出できるソフト構成にすることが重要です。またハードウェアでは、WDTのタイムアウトによってマイコンを確実にリセットできることに加え、RESET信号の電気的条件や電源投入・電源異常時の動作なども確認する必要があります。

このようにソフトウェアとハードウェアの両面から設計内容を確認し、異常発生時にも適切にシステムを復帰できるようにウォッチドッグタイマを設計してください。

当サイトFREE AIDは、機電系を始めとしたエンジニアのフリーランス専門求人を扱っています。
→機電系フリーランスエンジニア求人はこちら

また、フリーランスエンジニアとして働きたい方に合った案件探しや専門アドバイザーの活動サポートも無料で行っています。
→フリーランス無料支援に興味がある方はこちら

フリーランス×機電系エンジニア!高単価求人はこちら ▶

この記事の運営元:日総工産株式会社

日総工産株式会社は、日総グループは、事務派遣・紹介事業、介護福祉事業、障がい者雇用、海外での人材サービスなど、
さまざまな分野において事業を展開しています。
  「アウトソーシング」「ビジネスソリューション」「エンジニアリング」「ファクトリーオートメーション」の4つの事業を柱に、製造業やICT分野の課題解決を力強くサポートする、
フリーランスの機電系エンジニア求人情報サイト「FREE AID」を運営しています。
ウォッチドッグタイマとは?仕組みや設計時のポイントを技術者向けに解説のページです。エンジニアにまつわるお役立ちの最新情報を発信しています。電気電子設計や製造技術や機械設計・生産技術などはもちろん、 フィールドエンジニアやITシステム開発まで、機電系エンジニア業界での働き方や年収、話題性の高い情報を細かく解説しています。 また、当サイトではフリーランス機電系エンジニア求人をご用意しています。 気になるエンジニア求人があれば、ご応募ください。 フリーランスの機電系エンジニア求人 なら【フリーエイド】

応募完了いたしました。
内容確認後、あらためて2営業日前後に担当者よりご連絡させていただきます。

【求人あり】機電系フリーランス案件を見る
【求人あり】機電系フリーランス案件を見る