- 製品情報
-
- 個人・家庭向けプリンター
<用途から選ぶ>
- <カテゴリーから選ぶ>
- 法人・業務向けプリンター・複合機
- 産業向けプリンター・デジタル印刷機
- 消耗品
- 産業向け製品
- <インクジェットソリューション>
- 個人・家庭向けプリンター
ウォッチドッグ(watchdog)を訳すと“番犬“ということになります。玄関先で不審者が来ないか見張っている犬です。ウォッチドッグタイマとは、“番犬”のようにシステムを監視し、システムが誤動作を起こしていると判断した場合は、システムリセットや割り込みなどを発生させるタイマです。 本文では、マイコンを中心としたシステムのウォッチドッグタイマについて解説します。
番犬のイメージ
マイコンの誤動作について現象面から分類すると、データ異常、動作異常の2つがあります。
データ異常
動作異常
また、マイコンの誤動作について要因面から分類すると、ハードウェアの不具合、ソフトウェアの不具合、環境変化の3つがあります。
ハードウェアの不具合
ソフトウェアの不具合
動作環境に原因がある場合
マイコンの基礎と選び方(評価の仕方)・比較フォーマット
マイコンに関して下記のようなPDF資料がダウンロードできます。マイコン選定などにご活用ください。
実は、マイコンが誤動作しているか、そうでないかの判断はとても難しい問題です。人間が製品を使用して感覚的に正常動作・誤動作を判別できたとしても、マイコン自身が判断することは、非常に難しいことです。 ウォッチドッグタイマでは、時間制限のある簡単な作業をマイコン内のソフトウェアに実行させ、制限時間を守れなかった場合を誤動作と判断し、システムリセットや割り込みを発生します。もちろん、本来の目的とする処理も並行して実行します。 この方式では、全レジスタや全RAMデータを監視することは難しく、「動作異常」は検知しても「データ異常」については、検知しにくい面があります。
マイコンにおける異常 現象別
また、誤動作要因のうち、そもそもハードウェア・ソフトウェアに原因がある場合は、マイコンが実行する「時間制限のある簡単な作業」の動作自体に、疑念が生じますので、これらの要因については予め排除すべき事項です。*1
マイコンにおける異常 原因別
ウォッチドッグタイマの誤動作検出機能は完璧なものではありませんが、通常、発生しないような使用環境の変化(電源不安定、ノイズ干渉)があった場合でも、可能な範囲で正しい状態に復帰するといった意義があります。 例えば、マイコンを使用した製品について、外来ノイズを受けて動作がフリーズしてしまうような場合でも、ウォッチドッグタイマを使用すれば、システム自らで再起動する可能性が高まります。但し、システムリセットで再起動となった場合は、継続した動作は期待できません。時計の場合ならば0時00分に戻ってしまいます。また、割り込みで再起動となった場合、初期化はされないものの、レジスタやRAMデータが破壊されてしまっていることも十分考えられます。本復帰方法で不都合がある場合は、マイコンの誤動作自体を発生させないように対策をとる必要があります。
*1 ハード・ソフトウェア自体の不具合により意図しない動作をする場合も、ウォッチドッグタイマによる検出対象になり得ますが、本文では、ハード・ソフトウェアは正しいものとして話を進めます。
例えば、時計などの原振としてよく用いられる32.768kHzのクロックを入力し、128分周、さらに1,024分周する回路を構成します。128分周で256Hzのクロックを得て、さらに1,024分周することにより1/4Hzのクロックになりますので、4秒周期でオーバーフローを出力することが可能です。このオーバーフローの出力をマイコンのシステムリセットや割り込み信号とします。
一般的なウォッチドッグタイマのブロック図例
システムリセット信号を発生するウォッチドッグタイマの場合、32.768kHzの信号は絶えず入力されていますので、何もせず放置すると、約4秒後にはシステムリセット信号が入ってしまい、マイコン自身が初期化されてしまいます。このような事態が発生すると、マイコンにおける本来の目的が果たせなくなってしまいますので、ウォッチドッグタイマ内の10ビットカウンタを4秒以内にクリア*2してシステムリセットを阻止します。
一定の周期でカウンタのオーバーフローが発生するので、その時間内にカウンタをクリアする動作がウォッチドッグタイマの基本動作になります。もし、マイコンの誤動作により、以下の現象が発生したらどうなるでしょうか。
これらの場合は、カウンタのオーバーフローが発生しないので、ウォッチドッグタイマによるシステムリセットや割り込みは発生しません。但し、各メーカのマイコンともいくつかの工夫があり、クロックを止める場合は特定の手続きをしないと停止できないことや、カウンタをクリアする場合は、特定の条件下でないとクリアできなどの対策はあります。
*2 本文では、理解を容易にするためにマイコンの初期化動作を「システムリセット」と呼び、ウォッチドッグタイマのカウンタを初期化することを「クリア」と呼ぶことにします。
近年、ほとんどのマイコンには、ウォッチドッグタイマが搭載されていますので、マイコンを用いたシステムの場合は、内部ウォッチドッグタイマを使用するのが一般的です。
ウォッチドッグタイマを搭載していないマイコンの場合や信頼性を求めるのであれば、外部ウォッチドッグタイマを選択する方法もあります。原理的にはマイコン内蔵ウォッチドッグタイマと同じですが、マイコンとは独立して動作しますので、信頼性は高いと言えます。但し、コストアップの要因となります。
内部ウォッチドッグタイマと外部ウォッチドッグタイマを比較し、表にまとめると以下のようになります。
内部と外部ウォッチドッグタイマのメリット・デメリットの比較
ウォッチドッグタイマの基本的な構成要素は、以下の通りです。
一般的なウォッチドッグタイマのブロック図例
ウォッチドッグタイマの基本的な注意点をまとめると、以下の通りです。
主に2種類のウォッチドッグタイマ“WDT”と“WDT2”があります。
WDT
WDTはシステムリセットだけを行うタイマであり、また、10ビットカウンタの開始・停止とカウンタのクリア機能が備わっています。
エプソン製S1C17W22/23に搭載されているウォッチドッグタイマ(WDT)
WDT2
WDTと比較して、比較器を用いたコンペアマッチによるシステムリセットやNMI*3の発生機能が追加されています。
エプソン製S1C17M40に搭載されているウォッチドッグタイマ(WDT2)
①のクロックジェネレータでは、ウォッチドッグタイマのクロック源を発生します。本回路の動作クロック(CLK_WDT)は、概ね256Hz程度に調整されたクロックが入力されることを想定しており、これを②の10ビットカウンタでカウントアップすると4秒周期でオーバーフローが発生します。③のWDTRUNはカウンタの動作/停止を制御し、また、WDTCNTRSTはカウンタのクリアを行うレジスタです。これらのレジスタはソフトウェアにより書き込みを行うことが可能で、10ビットカウンタが所定の時間内にクリアされなかった場合は、システムリセット(WDT2ではNMI*3も選択可能)が発生します。動作の詳細については、機種毎に用意されたテクニカルマニュアルを参照してください。
*3 NMI(ノンマスカブルインタラプト)
マスクできない割り込み。一般的には優先度や緊急度が高い割り込みに設定されることが多い。
エプソンは16ビットマイコンであるS1C17Familyと32ビットマイコンであるS1C31Family(Cortex-M0+)の2つのコアラインナップを展開しています。また、現在リリースしている全機種にウォッチドッグタイマを搭載しています。
エプソンマイコン概要
エプソンマイコンのシリーズ展開
エプソン製マイコンにおけるウォッチドッグタイマ(WDT2)の使用手順について、フローチャートを用いて説明します。
「WDT初期化&開始」は初期時に1回だけ動作させます。また、「WDTカウンタクリア処理」は、本来の目的とするソフトウェア動作の合間に入れ込み、ウォッチドッグタイマのカウンタがオーバーフローするまでにクリアします。
WDT2の制御フローチャート(WDT関連処理を黄色で色分け)
上記各処理の詳細は以下の通りです。
動作クロック設定
動作開始設定
カウンタクリア処理
*4 エプソン製マイコン(S1C17/31Family)において、特に重要なレジスタを容易に書き換えられないようにプロテクトする機構。特定のレジスタに、特定のコードを書き込むことによりロックと解除が可能。