マイコンの暴走レベル:暴走の解析

マイコンの暴走、フリーズ、停止、異常動作、と言っても、その状態には様々なレベルがあります。この暴走の状態を、原因となるノイズの強度に応じてレベル分けをすると、以下の様になります。

abnormal_level
説明
 レベル0: 正常な動作状態です
レベル1: ノイズによりCPUへ割込みが発生した場合です。ソフトウェアで適切に対処する事で問題は有りません。
レベル2-1: 周辺回路の設定がノイズにより書き換わってしまう場合です。周辺回路の機能が別のものになっていますので、一部の機能不全を起こします。
レベル2-2: メモリへの書込み時にノイズが重畳した場合、その書込みを行っている位置のメモリの内容が異常になります。FUJIMIでは周期的に周辺回路の設定を上書きして対処します。ソフトウェアでデーターの値のチェックをする事で或る程度異常動作を防止できますが、完全には防げません。
レベル3: CPUが命令をメモリから読み出す際のアドレスがずれてしまう、CPU内の順序回路が異常になった場合です。CPUをリセットする以外、回復は不能です。
レベル4: 主に電源が由来で発生する異常です。メモリの内容が大幅に破壊されます。全体の初期化以外、対処方法は有りません。
レベル5: ICがラッチアップと呼ばれる状態になり、電源の電流が無制限に流れ、過熱して破壊されます。機能は維持したまま、この状態になる事が多いので、注意が必要です。この対処は電源を切るしかなく、切れないと永久破壊につながり重大事故になります。

FUJIMIとは、
一部の回路だけでなく、回復システム、その全体の名称です。

【対策】

ここで紹介させて頂く技術、高レジリエンス・システム、FUJIMIでは1秒間に100回以上もの高頻度でCPUの特殊なリセットを行います。 これにより、高圧の静電気が飛び込んできて機器が異常になる事は避けられませんが、異常になっても極めて短時間の内に特殊なリセットを行い、正常に戻します。そんなにリセットしたらスマホや機器がちゃんと動作できないのでは?と心配される方は専門家です。しかし心配は御無用です。実際は脳に当たるCPUと言われる部分だけをリセットし、ほとんどのRAMの内容や周辺回路の状態は保持しますので、ロス時間は全体の数パーセントで済み、全体への影響は軽微なものです。

【実際の使い方】

多くの場合、マイコンは内部で作ったタイマーからの一定時間毎に処理を行います。この方法をリアルタイム割込みと言います。このリアルタイム割込みを、割込みの代わりにリセットを使い、周期的にCPUを初期に戻して動作させる事で全体が誤動作に陥ったままになる事を防ぎます。この一定周期のリセットをそのまま行うとソフトウェアの作成が難しいので、特殊な割込み処理の中でリセットを行います。このリセットは一定の周期で行われますから、多くの場合のリアルタイム割込みの処理も兼ねて行う事が出来ます。この方法は既に、特許、として成立しています。

rtr

割込みの始めにシステムが正常である事を確認します。正常なら復帰の為の情報とフラグを作成し、リセットを待ちます。リセットが来て、最初に、復帰情報の有無を確認します。有効であれば、更にシステムの異常をチェックし、必要な処理を行い、割込みからの復帰をシミュレートします。割込みの開始から、此処までの処理時間は全体の数パーセントとなります。異常が見つかれば、その程度に応じて、回復処理を行うか、フェールセーフの様な特殊な処理に移行するか、システムの初期化を行い、システムの停止は防ぎます。