(57)【特許請求の範囲】
【請求項１】
コンピュータに所定の機能を実現させるための機能実現プログラムと前記機能実現プログラムによる処理の状態を診断させる診断機能を実現させるための自己診断プログラムとを含むプログラムである複数のソフト部品と、前記各ソフト部品の前記機能実現プログラムを呼び出す機能を実現させるためのプログラムであるスケジューラプログラムと前記自己診断プログラムによる処理を呼び出す機能を実現させるためのプログラムである全体診断プログラムとを含むプログラムである部品プラットフォームとを含むプログラムであって、
前記機能実現プログラム及び前記スケジューラプログラムの実行中に割込んで前記全体診断プログラムによる処理を呼び出す機能を実現させるためのプログラムを含み、
前記自己診断プログラムは、診断結果を前記全体診断プログラムによる処理に渡す機能を実現させるためのプログラムを含み、
前記全体診断プログラムは、受け取った前記診断結果に基づく復帰機能を実現させるためのプログラムを含むこと
を特徴とするプログラム。
【請求項２】
請求項１に記載のプログラムにおいて、
前記復帰機能は、複数の前記自己診断プログラムによる処理から受け取った複数の前記診断結果に基づいて実現されること
を特徴とするプログラム。
【請求項３】
請求項１または２に記載のプログラムにおいて、
前記全体診断プログラムは、前記診断結果として前記スケジューラプログラムによる処理の状態を診断した結果を用いる機能を実現させるためのプログラムを含むこと
を特徴とするプログラム。
【請求項４】
請求項１〜３のいずれかに記載のプログラムにおいて、
前記機能実現プログラム及び前記スケジューラプログラムの実行中に割込んで前記全体診断プログラムによる処理を呼び出す機能は、所定時間毎のタイマ割込みで実現させること
を特徴とするプログラム。
【請求項５】
請求項１〜４のいずれかに記載のプログラムにおいて、
前記各ソフト部品における自己診断プログラムは、前記診断結果を所定の共通フォーマットで渡す機能を実現させるためのプログラムであること
を特徴とするプログラム。
【請求項６】
請求項５に記載のプログラムにおいて、
前記所定の共通フォーマットは、異常の度合いを示す情報であること
を特徴とするプログラム。
【請求項７】
請求項６に記載のプログラムにおいて、
前記異常の度合いを示す情報として、正常、仕様上の異常、ソフト部品レベルの初期化が必要な異常、システムの初期化が必要な異常、ソフト部品の動作を禁止すべき異常のいずれか１の情報を含むこと
を特徴とするプログラム。
【請求項８】
請求項１〜７のいずれかに記載のプログラムにおいて、
前記全体診断プログラムは、前記診断結果に基づいて前記コンピュータのリセットを実行させるためのプログラムを含むこと
を特徴とするプログラム。
【請求項９】
請求項１〜８のいずれかに記載のプログラムにおいて、
前記自己診断プログラム及び前記全体診断プログラムは、重要パスの通過チェック、処理負荷のチェック、状態不整合のチェックのうち少なくともいずれか１の診断を実行させるためのプログラムを含むこと
を特徴とするプログラム。
【請求項１０】
請求項１〜９のいずれかに記載のプログラムにおいて、
さらに、異常を検出した場合に該異常の内容を記憶装置に記憶させる機能を実現させるためのプログラムを含むこと
を特徴とするプログラム。
【請求項１１】
所定の制御対象を制御する機能を備えた電子制御装置において、
請求項１〜１０のいずれかに記載のプログラムをコンピュータが実行することにより前記診断機能及び前記復帰機能を実現すること
を特徴とする電子制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
プログラム及び電子制御装置に関する。
【０００２】
【従来の技術及び発明が解決しようとする課題】
従来より、例えば電子制御装置においては、要求仕様に応じた機能毎のプログラムをソフト部品として用意し、この複数のソフト部品を組み合わせて、実行プログラムを生成し、コンピュータにこの実行プログラムを実行させることで所望の制御機能を実現している。
【０００３】
このような制御を正常に実行させるためには、制御対象のハードウェアが正常な状態でなければならない。そこで、このような電子制御装置では、制御対象のハードウェアを監視し、正常であるか否かを判定するダイアグ機能を備えるものがある。例えば、ダイアグ機能として、ダイアグコードやそのダイアグコードに応じた復帰処理等は予め仕様として決定しておき、その仕様に従って処理を行うプログラムを作成し、電子制御装置のＲＯＭ等に組み込む。そして電子制御装置がこの実行プログラムを実行し、ハードウェアの異常が検出された場合には、その異常の内容に応じたダイアグコードをメモリに書き込んで、そのダイアグコードに応じた異常復帰処理等を行っている。
【０００４】
しかしながら、ハードウェアが正常な状態であったとしても、ソフト部品の品質が悪いと処理が正常に実行されず、制御が正常に行われない。例えば、１のソフト部品の処理が無限ループに陥ってしまった場合などソフト部品による処理に異常が発生した場合には、他のソフト部品の処理に移行せず、制御が正常に行われなくなってしまう。そのため使用するすべてのソフト部品の品質は、最も品質の要求されるソフト部品に合わせたレベルまで高める必要がある。よって、多大なコストがかかるといった問題があった。
【０００５】
そこで本発明は、ソフト部品の機能を実現するために必要な品質レベルで各ソフト部品の部品設計を行うことを可能とするプログラム及び電子制御装置を提供する。
【０００６】
【課題を解決するための手段及び発明の効果】
上述した問題点を解決するためになされた請求項１に記載のプログラムによれば、コンピュータは全体診断プログラム及び自己診断プログラムを機能実現プログラム及びスケジューラプログラムに割り込んで実行する。したがって、コンピュータは、例えば１のソフト部品の機能実現プログラムによる処理に異常が発生したとしても全体診断プログラム及び自己診断プログラムによる処理を実行することができる。そして、このソフト部品の自己診断プログラムによる処理によって、ソフト部品の機能実現プログラムによる処理の状態を診断し、この診断結果を全体診断プログラムによる処理に渡し、全体診断プログラムによる処理ではその診断結果に基づいて復帰処理を行う。よって、１のソフト部品の機能実現プログラムによる処理に異常が発生したとしても、復帰処理によって他のソフト部品の処理に影響を与えないようにすることが可能となる。したがって、従来のようにすべてのソフト部品の品質を最も品質の要求されるソフト部品の品質に合わせる必要がなくなり、各ソフト部品の機能を実現するために必要な品質レベルでの部品設計が可能となる。
【０００７】
こうした復帰処理は、コンピュータが自己診断プログラムによる診断結果を得る毎にその診断結果に基づく復帰機能を実現するようにしてもよいし、請求項２に示す復帰機能を実現するようにしてもよい。例えばソフト部品１とソフト部品２がある場合に、前者の場合には、コンピュータはソフト部品１の自己診断プログラムによる処理を実行した後、その処理による診断結果に基づいて復帰処理を行い、続いてソフト部品２の自己診断プログラムによる処理を実行した後、その処理による診断結果に基づいて復帰処理を行う。後者の場合には、例えばソフト部品１の自己診断プログラムによる処理を実行した後、ソフト部品２の自己診断プログラムによる処理を実行し、その後それぞれの処理による診断結果に基づいて復帰処理を行う。すなわち請求項２に記載のプログラムによれば、コンピュータは複数の自己診断プログラムによる処理から受け取った複数の前記診断結果に基づいて復帰を行うことができる。
【０００８】
また、さらに請求項３に示すようにすることで、コンピュータは自己診断プログラムによる処理では検出できない異常を診断して復帰させることができる。このような異常としては、例えば、各ソフト部品の処理状態の不整合、各ソフト部品の処理時間の異常、各ソフト部品の実行順序の異常等が挙げられる。
【０００９】
そしてこのような全体診断プログラムによる処理は、例えば請求項４に示すようにして、所定の間隔で実行させるようにするとよい。このようにすれば、常にプログラムが正常に実行されているか否かを監視（診断）し、異常が発生した場合に復帰処理をすぐに行うことが可能となる。
【００１０】
このような全体診断プログラムによる処理から自己診断プログラムによる処理を呼び出す手順は、各ソフト部品による処理間で共通の手順を用いるとともに、請求項５に示すようにして、全体診断プログラムによる処理において各ソフト部品による処理から診断結果を受け取るようにするとよい。このようにすれば、全体診断プログラムには、この所定の共通フォーマットの診断結果に基づいて復帰する処理を実行させるためのプログラムを入れるだけでよくなる。すなわち、自己診断プログラムのインターフェースは部品プラットフォームからみて差異がないので、例えば部品プラットフォームの全体診断プログラムには、同様の手続き（呼び出し及び復帰処理等）を各ソフト部品毎に行うためのプログラムを備えるだけでよくなる。したがって、部品プラットフォームでは同一のコード（プログラム）を使用できる範囲が広くなり、部品プラットフォームのサイズを小さくすることができ、実行に必要なメモリを削減することができる。なお、請求項３に記載の全体診断プログラムによる診断結果もこの共通のフォーマットを利用するようにしてもよい。このようにすれば、さらに同一のプログラムが使用できる範囲が広くなる。
【００１１】
そしてこの診断結果としての所定の共通フォーマットは、請求項６に示すように異常の度合いを示す情報とするとよい。この異常の度合いを示す情報としては、請求項７に示す情報を用いるとよい。このようにすれば、部品プラットフォームにおける復帰処理において、異常の度合いに応じて処理内容を変更することができる。
【００１２】
例えば、所定の共通フォーマットとして「システムの初期化が必要な異常」という情報を、全体診断プログラムによる処理が受け取った場合には、請求項８に示すようにして、システムをリセット実行させるとよい。
なお、診断の内容としては、例えば請求項９に示すようなチェックを行うようにするとよい。重要パスの通過チェックとは、例えば、処理上の重要なパスにチェックポイントを設けそのチェックポイントを実行した場合にその旨を示す情報を書き込んでおき、この書き込んだ情報を参照して通過すべきチェックポイントを通っているかを判定してチェックを行うものなどをいう。また、処理負荷のチェックは、例えば処理の開始時と終了時の時間を記憶しておきその差からその処理の実行時間を求め、想定された実行時間の範囲であるかを判定してチェックするものなどをいう。状態不整合のチェックとは、例えば、ある処理の処理状態と別の処理の処理状態に不整合がないかをチェックすることなどをいう。
【００１３】
そして、異常を検出した場合には、請求項１０に示すようにしてコンピュータにその異常の内容を記憶させるとよい。このようにすれば、その記憶された異常の内容を読み出して分析することで異常要因の解析等に利用することができる。さて、このように請求項１〜１０のいずれかに記載のプログラムは、コンピュータによって実行して、その請求項に記載の機能を実現することができる。例えば、請求項１１に示すようにして、電子制御装置において診断機能及び復帰機能を実現することができる。
【００１４】
【発明の実施の形態】
以下、本発明が適用された実施例について図面を用いて説明する。なお、本発明の実施の形態は、下記の実施例に何ら限定されることなく、本発明の技術的範囲に属する限り種々の形態を採りうることは言うまでもない。
【００１５】
図１は、実施例としての電子制御装置２０（以下ＥＣＵ２０と称する）を備えたボデー系システム１００を示す図である。
ボデー系システム１００は、ＥＣＵ２０としてのＤ席ドアＥＣＵ２０ａとＰ席ドアＥＣＵ２０ｂとインパネＥＣＵ２０ｃとボデーＥＣＵ２０ｄとを備える。
【００１６】
これらのＥＣＵ２０は、ＣＰＵ、ＲＯＭ、ＲＡＭ、Ｉ／Ｏ、タイマ等を備えるマイコンを備えたコンピュータシステムであり、ＲＯＭまたはＲＡＭに書き込まれたプログラムをＣＰＵが読み込んで実行することで、Ｉ／Ｏに接続された装置を制御する。そしてこのＣＰＵは、スリープ命令実行することによって動作クロックを変更し消費電力を低減するスリープ状態に入る機能と、ウェイクアップ割込み信号が入力された場合にスリープ状態から通常状態へ復帰する機能とからなるスリープ機能を備えている。また、Ｉ／Ｏには入力装置３０や出力装置４０や車内ＬＡＮ５０が接続されている。そしてＤ席ドアＥＣＵ２０ａとＰ席ドアＥＣＵ２０ｂは、入力装置３０の状態を読み取ってパケットを生成し車内ＬＡＮ５０を介してボデーＥＣＵ２０ｄへ送信する機能を備える。また、Ｄ席ドアＥＣＵ２０ａとＰ席ドアＥＣＵ２０ｂとインパネＥＣＵ２０ｃは、車内ＬＡＮ５０を介して入力されるボデーＥＣＵ２０ｄからのパケットの制御情報に基づいて出力装置４０を制御する機能を備える。
【００１７】
Ｄ席ドアＥＣＵ２０ａはドライバ側のドアに設置されたＥＣＵであり、入力装置３０としてＤ席コントロールスイッチ３０ａなどが接続されており、出力装置４０としてＤ席ドアロックモータ４０ａやＤ席パワーウインドウモータなどが接続されている。Ｐ席ドアＥＣＵ２０ｂは補助席側のドアに設置されたＥＣＵであり、入力装置３０としてＰ席コントロールスイッチ３０ｂ等が接続され、出力装置４０としてＰ席ドアロックモータ４０ｂやＰ席パワーウインドウモータなどが接続されている。また、インパネＥＣＵ２０ｃは、インパネに設置されたＥＣＵであり、例えば、出力装置４０としてブザー４０ｃやランプ４０ｄ等が接続されている。なお、上述したＤ席コントロールスイッチ３０ａ及びＰ席コントロールスイッチ３０ｂには、ドアの施錠または解錠の指示を入力するためのドアロックスイッチやパワーウィンドウの開閉の指示を入力するためのパワーウインドウスイッチ等が含まれる。
【００１８】
ボデーＥＣＵ２０ｄは、Ｄ席ドアＥＣＵ２０ａとＰ席ドアＥＣＵ２０ｂから車内ＬＡＮ５０に送信されるパケットを所定時間毎に受信して、Ｉ／Ｏを介して取り込み、取り込んだパケットの内容に応じたアプリケーションプログラムを実行して出力装置４０の制御が必要な場合には制御対象のＤ席ドアＥＣＵ２０ａとＰ席ドアＥＣＵ２０ｂとインパネＥＣＵ２０ｃ等への制御情報を含むパケットを生成して送信する制御処理を行う。
【００１９】
このようなＥＣＵ２０のＲＯＭに記憶され、ＣＰＵによって実行されるプログラムは、図２に示すように部品プラットフォームと複数のソフト部品から構成されている。部品プラットフォームは全体診断プログラムとスケジューラプログラムと図示しないデバイスドライバ等のシステム全体を管理させるための管理プログラム等からなる。一方、ソフト部品は、自己診断プログラムと要求仕様に応じた機能を実現させるためのプログラムである機能実現プログラム等からなる。なお、全体診断プログラム及び自己診断プログラムは最上位の実行レベル（優先度）で実行されるようにプログラムされており、スケジューラプログラムや管理プログラムや機能実現プログラムは通常の実行レベルで実行されるようにプログラムされている。
【００２０】
管理プログラムは、ＣＰＵにＩ／Ｏを初期化させて、全体診断プログラムがタイマ割込みによって実行されるように設定する処理を実現させるための初期化プログラムを持つ。すなわち、タイマを所定時間（例えば５ｍｓ）にセットし、全体診断プログラムの開始アドレスをタイマ割込みのエントリ（割込みベクタ）に書き込むためのプログラムである。ＣＰＵに電源が供給されると、ＣＰＵはＲＯＭから部品プラットフォームの管理プログラムの初期化プログラムを読み出して実行する。この初期化プログラムによる処理によって、ＣＰＵはタイマを所定時間（例えば５ｍｓ）にセットし、全体診断プログラムをタイマ割込みによって実行される処理として割込みベクタに書き込む。
【００２１】
スケジューラプログラムは、各ソフト部品の機能実現プログラムを順次呼び出す機能を実現させるためのプログラムであり、ＣＰＵは、このスケジューラプログラムに従って各ソフト部品の機能実現プログラムを順次呼び出す処理を行う。すなわち、図２に示すようにスケジューラプログラムでは、ソフト部品１の機能実現プログラムを呼び出すためのプログラムが含まれており、このプログラムに基づいてソフト部品１の機能実現プログラムを呼び出す（起動する）。こうして、ＣＰＵの処理対象のプログラムは機能実現プログラムとなる。
【００２２】
機能実現プログラムは、要求仕様に応じた機能をＣＰＵに実現させるためのプログラムである。例えばＤ席ドアＥＣＵ２０ａにおける機能実現プログラムとしては、例えばＤ席コントロールスイッチの状態をＩ／Ｏから読み出して所定のＲＡＭ領域に書き込む機能を実現させるプログラムであったり、Ｄ席ドアロックモータを所定のフラグが立っている際に動作させる機能を実現させるプログラムであったり、車内ＬＡＮ５０からパケットを取り込む機能を実現させるプログラムであったりする。そして、このような機能毎にソフト部品を構成する。例えば、図２において、ソフト部品１がＤ席コントロールスイッチの状態をＩ／Ｏから読み出して所定のＲＡＭ領域に書き込む機能を実現させる機能実現プログラムを含むソフト部品であり、ソフト部品２が車内ＬＡＮ５０からパケットを取り込む機能を実現させる機能実現プログラムを含むソフト部品とすることができる。そして機能実現プログラムには、その処理の状態を所定のＲＡＭ領域に書き込む機能を備える。すなわち、機能実現プログラムを実行して得られた変数の値や、プログラムの所定の位置（チェックポイント）を実行した旨を示す情報や、機能実現プログラム内の各関数（サブルーチン）の実行時間などを記録する。
【００２３】
ＣＰＵは、こうした機能実現プログラムを実行することで、要求仕様に応じた機能をＥＣＵ２０、入力装置３０、出力装置４０に実現させることができる。
一方、ＣＰＵにはタイマによって例えば５ｍｓ毎にタイマ割込みがかかる。そして、このタイマ割込みによって、ＣＰＵの処理対象は全体診断プログラムへ移行することとなる。
【００２４】
全体診断プログラムには、各ソフト部品の自己診断プログラムを呼び出す機能を実現するためのプログラムが含まれる。したがってＣＰＵは、各ソフト部品の自己診断プログラムを順次呼び出す処理を実行する。例えば、図２においてソフト部品１の自己診断プログラムによる処理を実行する。
【００２５】
各ソフト部品の自己診断プログラムは、各ソフト部品の機能実現プログラムによる処理によって所定のＲＡＭ領域に書き込まれた値と予めプログラム中に含まれる値と比較して、処理が正常に行われているか異常であるかを診断（判断）し、全体診断プログラムによる処理に戻る際に、共通フォーマットでその診断結果を渡す機能を実現させるためのプログラムである。この共通のフォーマットは、異常の度合いに応じて、「正常，仕様上の異常，部品レベルの初期化が必要な異常，システムの初期化が必要な異常，動作を禁止すべき異常」のいずれか１の度合いを示す値（情報）をもつ。
【００２６】
したがってＣＰＵは、例えば、ソフト部品１の自己診断プログラムを実行することで、ソフト部品１の機能実現プログラムによる処理に対する診断結果を「正常，仕様上の異常，部品レベルの初期化が必要な異常，システムの初期化が必要な異常，動作を禁止すべき異常」のいずれか１の度合いを示す値（情報）で全体診断プログラムによる処理に渡す処理を行う。
【００２７】
そして、この処理が終了するとＣＰＵの実行対象は全体診断プログラムに戻る。
全体診断プログラムには、ここで受け取った診断結果を記憶する機能を実現するためのプログラムが含まれる。したがってＣＰＵは、このプログラムによって診断結果を記憶する処理を行う。
【００２８】
そして同様に、ＣＰＵは、全体診断プログラムによる処理でソフト部品２の自己診断プログラムによる処理を呼び出し、その自己診断プログラムによってソフト部品２の機能実現プログラムによる処理に対する診断結果を「正常，仕様上の異常，部品レベルの初期化が必要な異常，システムの初期化が必要な異常，動作を禁止すべき異常」のいずれか１の値で全体診断プログラムによる処理に渡す処理を行う。そして全体診断プログラムによる処理によって、その診断結果を記憶する。
【００２９】
このようにしてすべてのソフト部品の自己診断プログラムの処理結果である診断結果を得ることができる。
全体診断プログラムには、ここでＣＰＵにこの診断結果に応じて復帰処理を実行させるためのプログラムが含まれる。例えば、次のような処理を実現するためのプログラムである。▲１▼すべてのソフト部品の診断結果が「正常」であれば、割込み処理を終了して、割込み元の処理に復帰する。▲２▼診断結果に「仕様上の異常」が含まれる場合には、その仕様に応じた復帰処理を行う。▲３▼診断結果に「部品レベルの初期化が必要な異常」が含まれる場合には、そのソフト部品に含まれる初期化ルーチンを実行してそのソフト部品による処理を初期化する復帰処理を行う。▲４▼診断結果に「システムの初期化が必要な異常」が含まれる場合には、ＣＰＵ２０をリセットする復帰処理を行う。▲５▼診断結果に「動作を禁止すべき異常」が含まれる場合には、そのソフト部品による呼び出しをスケジューラプログラムによる処理において行わないように設定する。
【００３０】
このようにすることで、各ソフト部品による処理では、あくまで診断結果を部品プラットフォームによる処理に伝えるのみで、そのことにより部品プラットフォームによる処理に大きく影響を与えることがない。
つまり、あるソフト部品の機能実現プログラムによる処理に異常が発生しても、そのソフト部品による処理を初期化したりそのソフト部品の実行を禁止したりすることで、他のソフト部品の機能実現プログラムを実行させることが可能となる。したがって、全てのソフト部品を、最も品質の要求されるソフト部品に合わせた品質で作り込む必要がなくなる。すなわち、各ソフト部品の機能を実現するために必要な品質レベルで各ソフト部品の部品設計を行うことが可能となる。したがって、ソフト部品の設計や作成コストを抑えることができる。
【００３１】
また、部品プラットフォームによる処理は各ソフト部品に対して汎用的な処理となる。つまり、自己診断プログラムによる処理は、部品プラットフォームからみてソフト部品間の差異がなく、部品プラットフォームには同様な手続きを組み込むだけでよくなる。つまり、このような異常検出／復帰の部品間共通フレームワークを採用することにより、各部品の品質レベルに応じた部品設計と、確実な異常検出／復帰機能を実現することができる。そしてこのような共通化により、ソフト部品の独立性が高まり、部品毎の設計を行うことが容易になる。またソフト部品の呼び出し処理や復帰処理の共通化によりコードの共通化が実現できるため、復帰処理を実現するためのプログラムを格納するメモリ容量を減らすことができ、例えば自動車用の各種制御装置等の組込システムに適したメモリフットプリントが実現できる。
【００３２】
なお、全体診断プログラム及び自己診断プログラムの処理にかかる時間は、タイマ割込みの間隔より十分小さくする。また、全てのソフト部品の実行時間は、タイマ割込みの時間より短くすればよい。
なお、さらにソフト部品では検出しきれない異常は部品プラットフォームよる処理で検出し、前述した共通フォーマットに変換し、必要に応じて処理の間引き、特定のソフト部品のみの再起動、システムの再起動、復帰不可能なソフト部品の動作禁止等の復帰処理を行うようにするとよい。この処理は、上述したソフト部品における処理と同様にして行うことができる。すなわち、スケジューラプログラムによる処理において、ソフト的なウォッチドッグによる重要パスの動作チェック、各ソフト部品の実行順序のチェック，各ソフト部品の負荷計測（処理時間の計測）による異常モードチェック等を行いその値を所定のＲＡＭ領域に記憶しておく。そしてタイマ割込みで実行される全体診断プログラムによる処理で、この記憶された値に基づいて診断を行い復帰処理内容を決定して、復帰処理を行う。
【００３３】
また、全体診断プログラムでは、各部品・部品プラットフォーム間の状態不整合等をチェックするようにしたり、自己診断プログラムによる処理と全体診断プログラムによる処理が連携して重要パスの動作チェックを行うようにしてもよい。そして、各割込み処理や部品呼び出し関数に処理時間測定機能を設け、正常状態での処理負荷レベルを設定し、その範囲を超えた場合には、その情報を共通フォーマットに変換し全体診断プログラムによる処理に通知するようにしてもよい。このようなチェックは、例えばチェックを行う箇所に自己診断プログラムのソースで定義されたマクロを記述することによって行うようにしてもよい。このようにすればチェックしたい内容を柔軟に定義することもできる。また、複数の処理パターンを用意してコンパイラオプション等のオプション定義により複数のプログラムを生成するようにしてもよい。このようにすれば、例えばデバッグ用とリリース用のプログラムを１のソースから生成できる。
【００３４】
また、共通のフォーマットは、上述したような異常の度合いを規定するものでもよいし、例えば、正常、状態不整合、ＲＯＭ／ＲＡＭ異常、ハードブロック異常、処理負荷異常のようにその異常の状態を示すものでもよい。このような場合には全体診断プログラムによる処理でその異常の内容に基づいた復帰処理を行うようにすればよい。
【００３５】
そして、復帰処理は次のようにすることもできる。すなわち、安全性を最優先することを基本とし、「外部に判らないように復帰する／外部に判っても実質影響のないように復帰する／一部の機能を止めてでも復帰する／復帰をあきらめて完全に停止する」などである。またその復帰機能はソフト部品と部品プラットフォームの双方が持つようにしてもよい。
【００３６】
そして、ソフト部品や部品プラットフォームによる処理で、何らかの異常を検出した際には、その異常の要因を不揮発性メモリ等に記憶させておくようにするとよい。このようにすれば、不揮発性メモリの内容を読み出してチェックすることで、異常要因の解析に利用することができる。
【図面の簡単な説明】
【図１】実施例の電子制御装置（ＥＣＵ）を含むボデー系システムの構成を示す説明図である。
【図２】実施例のＥＣＵのＲＯＭに記憶されたプログラムの構成及びそのプログラムによるＣＰＵの処理を示す説明図である。
【符号の説明】
２０…電子制御装置（ＥＣＵ）
２０ａ…Ｄ席ドアＥＣＵ
２０ｂ…Ｐ席ドアＥＣＵ
２０ｃ…インパネＥＣＵ
２０ｄ…ボデーＥＣＵ
３０…入力装置
３０ａ…Ｄ席コントロールスイッチ
３０ｂ…Ｐ席コントロールスイッチ
４０…出力装置
４０ａ…Ｄ席ドアロックモータ
４０ｂ…Ｐ席ドアロックモータ
４０ｃ…ブザー
５０…車内ＬＡＮ
１００…ボデー系システム
【図１】
0004449225.tif 000002
【図２】
0004449225.tif 000003