ウォッチドッグタイマーって何?:Q&Aで学ぶマイコン講座(19)(2/3 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「ウォッチドッグタイマーって何?」についてです。
ウォッチドッグタイマーの基本構成と動作
ウォッチドッグタイマーはアップカウンターでもダウンカウンターでも構成可能ですが、一般的にダウンカウンターの場合が多いので、図1にダウンカウントの場合のウォッチドッグタイマーのブロック図を示します。
ユーザーはプリロードレジスタに監視周期に相当する値を設定します。プリロードレジスタの値が、ダウンカウンターに移り、ダウンカウント(1ずつ減算)を始めます。ダウンカウンターの値が0になったら、アンダーフロー信号をマイコンのリセット回路に発行し、プログラムにリセットを掛ける仕組みになっています。
手順としては、プログラムが起動すると、最初にプリロードレジスタに周期的に監視する値を入れ、ダウンカウントをスタートさせます。ウォッチドッグタイマーがダウンカウントしている間、プログラムは正常に実行されます。そして、ダウンカウンターが0になる前を見計らって、ダウンカウンターに再びプリロードレジスタの値を入れて、カウンターを初期値に戻します。この動作をリフレッシュと呼んでいます。
リフレッシュの方法はマイコンによって異なりますが、大抵のウォッチドッグタイマーではKey(鍵)レジスタを設け、それに何らかの決められた操作をすることによってリフレッシュします。なぜ、このような面倒な方法が必要かというと、簡単にリフレッシュできないようにしておかないと、プログラムが暴走した際に偶然、リフレッシュしてしまって、リセットされない場合が生じるからです。
起動の仕方
しかし、マイコン起動直後、すなわちプログラムが走り始め、ウォッチドッグタイマーをスタートさせる前に暴走してしまうと、誰もリセットすることができなくなります。そこで、電源が入った直後にハードウェアでウォッチドッグタイマーをスタートさせる方式があります。これなら、プログラムが走り始めた時点から監視することができます。プログラム起動後にリフレッシュを一定周期で行えば、前述した場合と同じ動作が行えます。
一方、起動後、一定期間が経過したらウォッチドッグタイマーを動作させたい場合もありますので、最近のマイコンは、ハードウェア・スタートとソフトウェア・スタートを選択できる製品もあります。ハードウェア・スタートを選択したい場合は、内蔵フラッシュメモリにそのようなハードウェア・オプションを選択できるエリアを作っておき、ユーザーがプログラムを内蔵フラッシュメモリに書き込む際に、そのオプションも一緒に書き込む方式などがあります。
クロック源
ウォッチドッグタイマーにはクロックが必要です。このクロックが何らかの原因で止まってしまうと、監視を続けることができません。したがって、問題が発生しないセキュリティの高い発振源が必要になります。
外付けの水晶振動子やセラミック振動子の場合、破壊や断線の可能性があります。その点、マイコン内部のRCリングオシレータは破壊や断線の可能性が低く、外付けのクロック源に比べると信頼性を高く保つことができます。そのためウォッチドッグタイマーのクロック源には、マイコン内部のRCリングオシレータが使われている場合が多く見られます。特に、高い信頼性が必要な車載用マイコンのウォッチドッグタイマーのクロック源には、マイコン内蔵のRCリングオシレータが欠かせません。
Copyright © ITmedia, Inc. All Rights Reserved.