今回はウォッチドッグタイマって何なのか、というお話です。
ある日、ベテラン社員の先輩Aさんのところに、入社3年目の新人B君が、やってきました……
2024年11月28日 公開
教えて先輩!シリーズ 第16回
ウォッチドッグタイマって何ですか?
新人B
先輩、この間、リセットIC(ボルテージディテクタ、電圧検出器)を教えていただいたのですが、マイコン監視用IC(スーパーバイザー)にはウォッチドッグタイマもありますよね。何となくわかるのですが、ちゃんと教えてほしいんです。
先輩A
そうねえ。簡単に説明するとリセットICは電圧を監視しているんだけど、ウォッチドッグタイマはマイコンを監視しているんだよ。
新人B
マイコンを監視って、リセットICだって監視しているじゃないですか?
先輩A
リセットICが監視しているのは電圧だよね。要はマイコンの入力電圧が動作電圧範囲にちゃんと収まっているかを見ているわけだよ。
新人B
はい。
先輩A
でも、マイコンの誤動作の原因って電圧異常だけじゃないよね。
新人B
はい?
先輩A
実際に多いのはプログラムのバグだよ。プログラムがループに入ってしまったり、行ったきりになって戻ってこなかったり、……
新人B
なるほど。マイコンのフリーズって電圧低下だけじゃなくプログラムのバグによるものがあるってことですね。
マイコンのフリーズの原因にはプログラムのバグもある
先輩A
だから、ウォッチドッグタイマが必要なんだよ。プログラムのバグでフリーズしたマイコンを再起動してくれるんだ。
新人B
でも、マイコンがフリーズしているってどうやって判断するんですか?動作電圧に異常はないわけですよね。
マイコンがフリーズしているってどうやってわかる?
先輩A
そう、そこがポイントだよ。
ウォッチドッグタイマからマイコンに信号を送って「大丈夫ですか?」って聞くんだよ。マイコンが「大丈夫です」って返事をすればOKで、返事がなかったらフリーズしているのでマイコンをリセットするってわけ。
新人B
はあ。わかったような、わからないような……
風船列車ゲーム
先輩A
風船列車ゲーム(ニードル・トレイン)って知ってる?
新人B
いきなり……先頭に針が付いた列車が丸い線路を走るやつですか?
先輩A
そうそう。線路の途中に風船が置いてあって、列車が来る前にどけないと針で割られてしまうってやつ。
新人B
最近見なくなりましたよね……
先輩A
ウォッチドッグタイマってそれなんだよ。
新人B
はい?
先輩A
列車は一定速度で線路を回ってくるわけさ。列車が来るたびに風船をどかすと風船は割れないよね。
それっていうのは、ウォッチドックタイマが列車で、風船をどかすという行為がマイコンの返事ってわけ。列車が「マイコンさん大丈夫ですか?」と言いながら線路を走ってくるわけだよ。そこでマイコンが「大丈夫です」と風船をどかすとOKってことだよ。
新人B
はあ。
先輩A
しかし、マイコンが「大丈夫です」と返事ができないってことはマイコンがフリーズしているってことなんだよね。
だから風船をどかすことができなくって列車の先についた針で風船を割られてしまうってわけなんだ。つまり、マイコンがリセットされるってことさ。
新人B
うーん。マイコンが忙しくって返事する間がないってケースもあるんじゃないですか?
監視時間
先輩A
そうだね。だから、そうならないようにウォッチドッグタイマを設定するんだよ。絶対にマイコンが返事できるタイミングで「マイコンさん大丈夫ですか?」って聞かないとだめなんだよ。つまり、線路の長さを正しく設定しないといけないわけ。
これがウォッチドッグタイマの「監視時間」なんだ。CTW端子につける外付けのコンデンサで調整するんだよ。ただ、長くしすぎるとマイコンの異常に気づくのが遅れるわけだから注意が必要だよね。
ウォッチドッグタイマの基本回路例
新人B
この「監視時間」の設定って難しいですよね。短すぎるとマイコンが「しつこいんだよ!」って怒りそうだし、長すぎるとマイコンがフリーズしているのにしばらく気が付かないってことですよね。
インヒビット端子
先輩A
なので、インヒビット端子(INH端子)があるんだ。これは一時的にウォッチドッグタイマを停止させる信号を入力する端子なんだ。つまり、列車を停止するわけだよね。これと「監視時間」、つまり、線路の長さを組合せてうまくやるわけだよね。
新人B
なるほど。マイコンが重い処理をしている間は「ちょっと待ってて」とインヒビット信号をウォッチドッグタイマに送っておくんですね。そうすれば列車が、じゃない、「マイコンさん大丈夫ですね」がストップするわけか。
先輩A
そういうこと。まあ、製品開発時やソフトウエアのアップデート中、スリープ時に使う機能なんだけどね。
新人B
でも、プログラムにバグがあるままだったら問題は解決しませんよね。フリーズして、ウォッチドッグタイマがリセットして、またフリーズしての繰り返しになりませんか?
先輩A
そうねえ。その場合は修理してプログラムをアップデートするんじゃないかな。
新人B
うーん。ウォッチドッグタイマって緊急事態用なんですか?確かにバグのないプログラムを作るのは難しいかもしれないですけど致命的なバグってほとんどないと思います。そこまで必要な感じがしないんですけど。
マイコンの誤動作の原因は他にもある
先輩A
そうねえ。まあ、人命に関わるとか誤動作が許されない機器ってあるからね。そういう機器には必要だと思うよ。
それに、マイコンの誤動作の原因ってプログラムのバグだけじゃないよね。外部ノイズなんていうのもあるんだ。こっちは対策に限界があるからね。
新人B
そんな、マイコンを誤動作させる外部ノイズって……
先輩A
今は減ったと思うけど、トラックなんかの違法無線とかね。業務用無線機を改造して遠くと交信できるように出力を大幅に増やしていたんだ。その大出力の電波がマイコンを誤動作させたりしたんだよ。
よく言われたのは自動ドアだよ。トラックがビルの前を通ると自動ドアが開く、ってね。自動ドアが閉まらなくなったり、空きっぱなしになったら困るだろ。
新人B
確かに。そんなことがあったんですね。
先輩A
トラックの違法無線が原因だってわかったのは同時にラジオに強力なノイズが入ったからなんだよ。放送が聞こえなくなるほどのね。
新人B
なるほどです。今では取り締まりが強化されたってことですよね。ああ、ハンズフリーで電話も出来ますし。スマートフォンが業務用無線機を駆逐しちゃったんでしょうか。
先輩A
まあ……厳密には無線機と電話機は別物だから。電話は1対1の通話しかできないけど無線は多人数での通信ができるんだ。だから駆逐はされていないよ。警察無線や山岳救助隊の無線とか船舶無線とかいろいろあるんだ。問題だったのは出力を増やした違法無線だからね。そこは間違えちゃだめだよ。
新人B
はい。そうですよね。ところで、ウォッチドッグタイマにもウィンドウタイプってありますよね。
ウィンドウタイプ
先輩A
ああ、リセットICのウィンドウタイプと同じだよ。リセットICはマイコンの動作電圧の上下を監視しているけど、ウォッチドッグタイマのウィンドウタイプは時間の長短を監視しているんだよ。
新人B
ちょっとイメージがわかないんですけど。
先輩A
さっきの風船列車ゲームで考えればカンタンだよ。列車がまだ風船まで遠い時に風船をどかすのは安全なように感じるけどホントにそうか?ってことなんだ。マイコンが異常でひたすら風船をどかし続けているかもしれないじゃない。
新人B
風船列車ゲームの場合は列車が走っている間に何かクイズに答えるとかミッションがあるわけですけど、風船をどけ続けているとそれができないです。そうか、同じようにマイコンが仕事をしていないってことか!
先輩A
そういうこと。ウィンドウタイプのウォッチドッグタイマはマイコンの「大丈夫です」が遅くてもダメだし、早くてもダメってことなんだ。
ウィンドウウォッチドッグタイマのイメージ
新人B
わかりました。ありがとうございました。
先輩A
あと、ウォッチドッグタイマICには普通はリセットIC(ボルテージディテクタ)も入っているからね。
動作電圧も監視しておいた方が安心だろ?
新人B
確かに。セットの方がいいです。時間と電圧の両方でマイコンを監視するんですよね。
番犬
先輩A
そうそう。余談だけど、ウォッチドックタイマじゃなくてウォッチドッグタイマだからね。ドッグ(dog)だよ。日本語に訳すと「番犬タイマ」だから。
新人B
わかってますって……
あとがき
我々の製品がお役立ちできるような紹介ブログの第16回目です。
本記事で気になったことがあれば何なりとこちらからお問い合わせください。
※ 「教えて先輩!」シリーズはほかにもあります。
第1回:太陽電池だけでは朝まで動き続けないんです・・
第2回:携帯機器のスリープ時に電池がどんどん消耗するんです…
第3回:バックアップ電源切換回路が面倒くさいんです。
第4回:AEC-Q100ってなんですか?
第5回:サンプルをこっそり手にいれたいんです。
第6回:こんなリセットICってどうやって使うのですか?(機能安全って?)
第7回:携帯機器がフリーズしても、リセットできないんです~!
第8回:ボタンを触らずに操作できる(ボタンのタッチレス化)ってどうやってるの?
第9回:スイッチICって何かメリットがあるんですか?
第10回:半導体の品質保証って何ですか?(バスタブカーブって?)
第11回:そもそもフリッカー(チラつき)を出さなきゃ良いんじゃない?~ひと味ちがうリニア調光のススメ~
第12回:太陽電池だけで動くIoTエッジ端末評価ボードって知ってる?~環境センサーボードがバージョンアップ~
第13回:半導体部品の上手な取り外し方 ~やさしく取り外さないと後が大変!~
第14回:リセットIC (ボルテージディテクタ、電圧検出器)って何ですか?~ 基本をイチから学んでみよう!~
第15回:おすすめのリセットIC(ボルテージディテクタ、電圧検出器) ちょっとユニークだけど役に立つ!
Comment