人工呼吸器に見るセーフティ・クリティカル・システム設計 ――2重3重のバックアップで生命を守る

柳川誠介

tag: 組み込み

技術解説 2007年1月25日

● 異常時に有効な自己診断

 図4に示したアラームは,システム全体を25秒周期のウォッチドッグ・タイマで監視するのと同じ機能を果たします.もちろん,CPU基板にもウォッチドッグ・タイマを設け,異常動作に対してリセットが掛かるようにしています.しかし,CPUの動作そのものがおかしくなっているときに,「自身が異常と判断したら自らリセットする」というアルゴリズム自体,矛盾を含んでいます.真に有効な監視方法は何か?
と考えると,大変なことになってしまいます.以下に解説するのは「自身の異常を知る方法」として試みた例です.

 人工呼吸器のプログラムはマルチタスク構成で,呼吸をつかさどるタスクが常時実行状態にあり,その上位レベルにアラームや動作パラメータ変更のためのユーザ・インターフェースのプログラムが随時実行されるという構成になっています.

 プログラムが正常に実行されなければ,タスクの切り替えも正常に行われないでしょう.それなら,タスクをコントロールするメモリ領域におかしな値が書き込まれるかもしれないと考えられます.それを検出すれば,異常動作を見つけることができそうです.もし見つかったなら,すべてのタスクを再起動して,正常動作に戻せばよいでしょう.そのような考え方でシステムの骨組みを作りました.図5にその動きを示します.10秒ごとに,TCB(task control block)のチェック・サムを計算するタスクが,ほかよりも高い優先順位で実行されます.

zu05_01.gif
図5 信頼性向上を狙ったマルチタスクの動き
各タスクが実行されると,タスクを制御するメモリ領域(TCB;task control block)に情報が書き込まれる.TCBのチェック・サムを計算するタスクを用意し,より高い優先順位で動作させる.チェック・タスクは定期的にTCBの正当性をチェックし,異常があればシステムを再起動する.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日