(57)【要約】【課題】マイコンの動作を監視する監視用ＩＣの機能を簡略化させると共に、制御モードに合わせたテストの選択を容易にすることが可能な電子制御装置の提供。【解決手段】車両のエンジンを制御するＥＣＵ（電子制御装置）１は、マイコンとしてのＭＰＵ３と、ＭＰＵ３の動作を監視するＩＣ５とを備えている。ＭＰＵ３には、プログラムの実行により実現される機能手段として、確認結果チェック及びテスト選択部（以下単に、テスト選択部という）３ａが設けられており、そのテスト選択部３ａがＭＰＵ３の機能を検証するためのテストを選択する。そして、ＭＰＵ３は、テスト選択部３ａにより選択されたテストを実施して、その実施結果を示すテスト回答をＩＣ５へ送信し、ＩＣ５は、ＭＰＵ３からのテスト回答の正誤を判定して、その判定結果であるテスト回答確認結果をＭＰＵ３へ送信するようになっている。この構成により課題が解決される。【選択図】図１
2008226043.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を制御するための処理を行うマイコンと、該マイコンの動作を監視するＩＣとを備えた電子制御装置であって、
前記マイコン側に、当該マイコンの機能を検証するためのテストを選択するテスト選択手段が設けられ、
前記マイコンは、前記テスト選択手段により選択されたテストを実施すると共に、その実施結果を示すテスト回答を前記ＩＣへ送信し、
前記ＩＣは、前記マイコンからのテスト回答の正誤を判定するように構成されていること、
を特徴とする電子制御装置。
【請求項２】
請求項１に記載の電子制御装置において、
前記テスト選択手段は、前記制御対象の制御モードに応じて、現在の制御モード時に実行される処理のテストを、他の制御モード時に実行される処理のテストよりも、高い頻度で選択すること、
を特徴とする電子制御装置。
【請求項３】
請求項１又は請求項２に記載の電子制御装置において、
前記ＩＣは、前記テスト回答の正誤の判定結果である正誤判定結果を前記マイコンへ送信するように構成されていること、
を特徴とする電子制御装置。
【請求項４】
請求項３に記載の電子制御装置において、
前記マイコン側のテスト選択手段は、前記ＩＣからの正誤判定結果に応じて、該正誤判定結果が「正」ならば、次のテストとして前回とは異なるテストを選択し、前記正誤判定結果が「誤」ならば、次のテストとして前回と同じテストを選択すること、
を特徴とする電子制御装置。
【請求項５】
請求項４に記載の電子制御装置において、
前記マイコンは、前記ＩＣへ、前記テスト回答と共に、今回実施したテストの識別情報であるテストＩＤを送信するようになっており、
前記ＩＣは、前記マイコンからのテストＩＤに基づき、前記マイコンからのテスト回答の期待値を設定し、その期待値と前記テスト回答とを比較することにより、前記テスト回答の正誤を判定すること、
を特徴とする電子制御装置。
【請求項６】
請求項５に記載の電子制御装置において、
前記ＩＣは、前記正誤判定結果と共に、その正誤判定結果に対応するテストのテストＩＤを前記マイコンへ送信するように構成されており、
前記マイコン側のテスト選択手段は、前記ＩＣからの正誤判定結果が「誤」の場合には、その正誤判定結果と共に前記ＩＣから送られてきたテストＩＤに対応するテストを、前回と同じテストとして選択すること、
を特徴とする電子制御装置。
【請求項７】
請求項５又は請求項６に記載の電子制御装置において、
前記ＩＣは、前記マイコンからの前回のテスト回答が「誤」であると判定したにも拘わらず、前記マイコンから前回と同じテストＩＤが送信されてこなかった場合に、前記マイコンが異常であると判定するように構成されていること、
を特徴とする電子制御装置。
【請求項８】
請求項１ないし請求項３の何れか１項に記載の電子制御装置において、
前記マイコンは、前記ＩＣへ、前記テスト回答と共に、今回実施したテストの識別情報であるテストＩＤを送信するようになっており、
前記ＩＣは、前記マイコンからのテストＩＤに基づき、前記マイコンからのテスト回答の期待値を設定し、その期待値と前記テスト回答とを比較することにより、前記テスト回答の正誤を判定すること、
を特徴とする電子制御装置。
【請求項９】
請求項５ないし請求項８の何れか１項に記載の電子制御装置において、
前記ＩＣは、前記マイコンから送信されてきたテストＩＤを記憶すると共に、一定時間が経過する毎に、その今回経過した一定時間の期間中に前記マイコンから全種類のテストＩＤが送信されてきたか否かを判定して、全種類のテストＩＤが送信されてきていなければ、前記マイコンが異常であると判定する全テスト実施確認機能を備えていること、
を特徴とする電子制御装置。
【請求項１０】
請求項９に記載の電子制御装置において、
前記ＩＣは、前記全テスト実施確認機能の判定結果も前記マイコンへ送信するように構成されており、
前記マイコンは、全種類のテストＩＤのうちの何れかが前記ＩＣへ送信されるのを禁止し、その状態で前記一定時間より長い所定時間が経過しても、前記ＩＣから前記全テスト実施確認機能の判定結果として、異常を示す判定結果が送信されてこなければ、前記全テスト実施確認機能が異常であると判定する全テスト実施確認機能テスト手段を備えていること、
を特徴とする電子制御装置。
【請求項１１】
請求項３ないし請求項７の何れか１項に記載の電子制御装置において、
前記マイコンは、所定のＩＣテスト実行タイミングが到来すると、前記テスト回答として、前記ＩＣにて「誤」と判定されるはずのテスト回答を送信し、そのテスト回答に対する前記ＩＣからの正誤判定結果が「誤」であるか否かを判定するＩＣ側判定機能テスト手段を備えていること、
を特徴とする電子制御装置。
【請求項１２】
請求項４ないし請求項７の何れか１項に記載の電子制御装置において、
前記ＩＣは、前記マイコンからのテスト回答が「誤」であると判定する毎に異常判定カウンタをカウントアップさせる機能を備えると共に、前記異常判定カウンタの値を、前記正誤判定結果と共に前記マイコンへ送信するように構成されており、
前記マイコンは、所定のＩＣテスト実行タイミングが到来すると、前記テスト回答として、前記ＩＣにて「誤」と判定されるはずのテスト回答を送信し、そのテスト回答に対して前記ＩＣから前記正誤判定結果と共に送られてきた前記異常判定カウンタの値が正常に加算されているか否かを判定するＩＣ側カウント機能テスト手段を備えていること、
を特徴とする電子制御装置。
【請求項１３】
請求項３に記載の電子制御装置において、
前記ＩＣには、前記マイコンからのテスト回答の正誤を判定して、その判定結果である正誤判定結果を前記マイコンへ送信する回路ブロックが複数備えられており、
前記マイコンは、前記複数の回路ブロックから送信されてきた正誤判定結果が全て「正」ならば正常と判定すること、
を特徴とする電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイコンと、そのマイコンの動作を監視するＩＣとを備えた電子制御装置に関するものである。
【背景技術】
【０００２】
従来より、車両用電子制御装置に搭載されたマイコンの動作を監視する手法として、例えば特許文献１や特許文献２に記載のものがある。それら文献１，２に記載の電子制御装置では、マイコンの他に監視ＩＣを備えており、その監視ＩＣからマイコンへ質問が送信される。そして、マイコンは、監視ＩＣからの質問に応じたテストを実施して、その実施結果を回答として監視ＩＣに送信し、監視ＩＣは、マイコンからの回答を当該監視ＩＣ内の期待値と比較することでマイコンの動作を監視するようになっている。
【特許文献１】特表平１０−５０７８０５号公報
【特許文献２】特表平１１−５０５５８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記従来技術では、監視ＩＣ側で、マイコンに対する質問（即ち、マイコンで実施されるべきテスト）を選択すると共に、その質問に対するマイコンからの回答と期待値とを比較する、という構成であるため、監視ＩＣ側に、マイコンからの回答を処理する機能だけでなく、質問を選択する機能が必要となり、その結果、監視ＩＣの構成が複雑になってしまうという問題がある。
【０００４】
更に、マイコンとは別の監視ＩＣが質問を選択するため、例えば、マイコンにおける現在の制御モードに適したテストを実施したくても、それを実現するのが困難となる。監視ＩＣは、マイコンの制御モードを把握できないため、当然、現在の制御モードに適したテストが実施されるように質問を選択することができないからである。
【０００５】
本発明は、こうした問題に鑑みなされたものであり、マイコンの動作を監視する監視用ＩＣの機能を簡略化させると共に、制御モードに合わせたテストの選択を容易にすることが可能な電子制御装置の提供を目的としている。
【課題を解決するための手段】
【０００６】
請求項１の電子制御装置は、制御対象を制御するための処理を行うマイコンと、そのマイコンの動作を監視するＩＣとを備えている。特に、この電子制御装置では、マイコン側に、そのマイコンの機能を検証するためのテストを選択するテスト選択手段が設けられている。そして、マイコンは、テスト選択手段により選択されたテストを実施して、その実施結果を示すテスト回答をＩＣへ送信し、ＩＣは、マイコンからのテスト回答の正誤を判定する。尚、マイコンからのテスト回答が「正（正しい）」でなく「誤（誤り，正しくない）」であれば、異常が生じているということである。
【０００７】
このような請求項１の電子制御装置によれば、テストを選択する機能をＩＣ側に設ける必要が無いため、そのＩＣの機能を簡略化することができる。
しかも、マイコン自身でテストを選択することとなるため、制御モードに合わせたテストの選択が極めて容易となる。
【０００８】
そこで、例えば、マイコン側のテスト選択手段は、請求項２に記載のように、制御対象の制御モードに応じて、現在の制御モード時に実行される処理のテストを、他の制御モード時に実行される処理のテストよりも、高い頻度で選択するように構成することができる。そして、この構成によれば、現在の制御モードに関係する異常をいち早く検出することができるようになり、機能テストの実施効率を高めることができる。
【０００９】
次に、請求項３の電子制御装置では、請求項１，２の電子制御装置において、ＩＣは、テスト回答の正誤の判定結果である正誤判定結果を、マイコンへ送信するように構成されている。この構成によれば、マイコン側においても、ＩＣからの正誤判定結果により、異常があるか否かを把握することができる。
【００１０】
次に、請求項４の電子制御装置では、請求項３の電子制御装置において、マイコン側のテスト選択手段は、ＩＣからの正誤判定結果に応じて、該正誤判定結果が「正」ならば、次のテストとして前回とは異なるテストを選択し、前記正誤判定結果が「誤」ならば、次のテストとして前回と同じテストを選択するようになっている。
【００１１】
この構成によれば、あるテストのテスト回答がＩＣで「誤」と判定された場合に、そのテストが再度実施されることとなり、異常状態を１度でなく連続して複数回確認することが可能となる。また、一般に、異常検出においては、あるテストで複数回連続して「誤」と判定（つまり、異常と判定）したならば、本当に異常であると確定判定するように構成されるが、請求項４の構成によれば、例えば全種類のテストが一巡してから再テストを実施する構成と比べると、異常確定判定までの時間を短縮できるという利点もある。
【００１２】
次に、請求項５の電子制御装置では、請求項４の電子制御装置において、マイコンは、ＩＣへ、テスト回答と共に、今回実施したテストの識別情報であるテストＩＤを送信するようになっている。そして、ＩＣは、マイコンからのテストＩＤに基づき、マイコンからのテスト回答の期待値を設定し、その期待値とテスト回答とを比較することにより、そのテスト回答の正誤を判定する。
【００１３】
この構成によれば、ＩＣによる正誤判定の精度を高めることができる。例えば、マイコン側からＩＣへテスト回答と共に期待値を送信する構成も考えられるが、その構成の場合には、マイコンの故障によりテスト回答と期待値とが誤って一致してしまい、本当はマイコンに異常が生じているのにＩＣにてテスト回答が「正」と判定されてしまう可能性がある。これに対して、請求項５の構成によれば、そのような誤判定の可能性を回避することができる。
【００１４】
尚、ＩＣにて期待値を設定する手法としては、例えば、予め記憶しておいた複数の期待値の中から、テストＩＤに対応するものを選択するという手法や、テストＩＤの値から所定の演算ルールで期待値を算出するという手法が考えられる。
【００１５】
次に、請求項６の電子制御装置では、請求項５の電子制御装置において、ＩＣは、テスト回答の正誤判定結果と共に、その正誤判定結果に対応するテストのテストＩＤをマイコンへ送信するように構成されている。そして、マイコン側のテスト選択手段は、ＩＣからの正誤判定結果が「誤」の場合には、その正誤判定結果と共にＩＣから送られてきたテストＩＤに対応するテストを、前回と同じテストとして選択する。
【００１６】
この構成によれば、マイコン側とＩＣ側との同期を確実にとることができる。つまり、マイコン側とＩＣ側で認識しているテストＩＤのズレを防ぐことができ、特に、ＩＣにてマイコンからのテスト回答が「誤」であると判定された場合に、前回と同じテストを確実に再実施することができるようになる。
【００１７】
次に、請求項７の電子制御装置では、請求項５，６の電子制御装置において、ＩＣは、マイコンからの前回のテスト回答が「誤」であると判定したにも拘わらず、マイコンから前回と同じテストＩＤが送信されてこなかった場合に、マイコンが異常であると判定するように構成されている。
【００１８】
この構成によれば、マイコン側の再テスト実行機能（テスト選択手段の請求項４に記載の機能）が正常か否かを、ＩＣ側にて検証することができる。
一方、請求項８の電子制御装置では、請求項１〜３の電子制御装置において、請求項５の電子制御装置と同様に、マイコンは、ＩＣへ、テスト回答と共に、今回実施したテストの識別情報であるテストＩＤを送信するようになっている。そして、ＩＣは、マイコンからのテストＩＤに基づき、マイコンからのテスト回答の期待値を設定し、その期待値とテスト回答とを比較することにより、そのテスト回答の正誤を判定する。
【００１９】
このため、請求項８の電子制御装置によっても、請求項５の電子制御装置と同様に、ＩＣによる正誤判定の精度を高めることができる。
次に、請求項９の電子制御装置では、請求項５〜８の電子制御装置において、ＩＣは、マイコンから送信されてきたテストＩＤを記憶すると共に、一定時間が経過する毎に、その今回経過した一定時間の期間中にマイコンから全種類のテストＩＤが送信されてきたか否かを判定して、全種類のテストＩＤが送信されてきていなければ、マイコンが異常であると判定する全テスト実施確認機能を備えている。
【００２０】
この構成によれば、マイコンの故障のうち「特定のテストが実行されない」という故障を検出することができるようになる。また、この構成によれば、マイコンからのテストＩＤの送信順序が変わっても対応可能である。
【００２１】
次に、請求項１０の電子制御装置では、請求項９の電子制御装置において、ＩＣは、全テスト実施確認機能の判定結果もマイコンへ送信するように構成されている。また、マイコンには全テスト実施確認機能テスト手段が備えられている。そして、その全テスト実施確認機能テスト手段は、全種類のテストＩＤのうちの何れかがＩＣへ送信されるのを禁止し、その状態で前記一定時間より長い所定時間が経過しても、ＩＣから全テスト実施確認機能の判定結果として、異常を示す判定結果が送信されてこなければ、全テスト実施確認機能が異常であると判定する。
【００２２】
この構成によれば、ＩＣ側の全テスト実施確認機能が正常か否かを、マイコン側にて検証することができる。
次に、請求項１１の電子制御装置では、請求項３〜７の電子制御装置において、マイコンにはＩＣ側判定機能テスト手段が備えられている。そして、そのＩＣ側判定機能テスト手段は、所定のＩＣテスト実行タイミングが到来すると、テスト回答として、ＩＣにて「誤」と判定されるはずのテスト回答を送信し、そのテスト回答に対するＩＣからの正誤判定結果が「誤」であるか否かを判定する。尚、ＩＣからの正誤判定結果が「誤」でなければ、異常と判定されることとなる。
【００２３】
この構成によれば、マイコンからのテスト回答の正誤を判定するＩＣの正誤判定機能が正常か否かを、マイコン側にて検証することができる。そして、このため、ＩＣの正誤判定機能に異常が生じて、本当はマイコンからＩＣへのテスト回答が誤りであるにも拘わらずＩＣからマイコンへの正誤判定結果が「正」になってしまい、マイコン側にて正常と誤判定してしまう、ということを防止できるようになる。
【００２４】
次に、請求項１２の電子制御装置では、請求項４〜７の電子制御装置において、ＩＣは、マイコンからのテスト回答が「誤」であると判定する毎に異常判定カウンタをカウントアップさせる機能を備えると共に、その異常判定カウンタの値を、前記正誤判定結果と共にマイコンへ送信するように構成されている。また、マイコンにはＩＣ側カウント機能テスト手段が備えられている。そして、そのＩＣ側カウント機能テスト手段は、所定のＩＣテスト実行タイミングが到来すると、テスト回答として、ＩＣにて「誤」と判定されるはずのテスト回答を送信し、そのテスト回答に対してＩＣから正誤判定結果と共に送られてきた異常判定カウンタの値が正常に加算されているか否かを判定する。
【００２５】
この構成によれば、異常判定カウンタをカウントアップさせるＩＣのカウント機能が正常か否かを、マイコン側にて検証することができる。
次に、請求項１３の電子制御装置では、請求項３の電子制御装置において、ＩＣには、マイコンからのテスト回答の正誤を判定して、その判定結果である正誤判定結果をマイコンへ送信する回路ブロックが複数備えられている。そして、マイコンは、前記複数の回路ブロックから送信されてきた正誤判定結果が全て「正」ならば正常と判定するようになっている。
【００２６】
この構成によれば、請求項１１に記載のＩＣ側判定機能テスト手段を設けなくても、請求項１１の電子制御装置による効果と同様の効果を得ることができる。ＩＣにおける複数の回路ブロックのうちの何れかに異常が生じて、本当はマイコンからＩＣへのテスト回答が誤りであるにも拘わらず、その異常な回路ブロックからマイコンへの正誤判定結果が「正」になったとしても、他の回路ブロックからの正誤判定結果が「誤」ばらば、マイコンは正常と誤判定しないからである。
【００２７】
尚、マイコンは、ＩＣにおける複数の回路ブロックから送信されてきた正誤判定結果を比較して、全て同じでなければ異常であると判定するように構成することもできる。
また、ＩＣにおける複数の各回路ブロックが、マイコンへテストＩＤを送信する構成の場合にも、マイコンは、その各回路ブロックから送信されてきたテストＩＤを比較して、全て同じでなければ異常であると判定するように構成することができる。
【００２８】
また、ＩＣにおける複数の各回路ブロックが、前述した全テスト実施確認機能を備えると共に、その全テスト実施確認機能の判定結果をマイコンへ送信する構成の場合にも、マイコンは、その各回路ブロックから送信されてきた判定結果を比較して、全て同じでなければ異常であると判定するように構成することができる。そして、この構成によれば、請求項１０の電子制御装置による効果と同様の効果を得ることができる。
【発明を実施するための最良の形態】
【００２９】
以下に、本発明が適用された実施形態の電子制御装置について説明する。尚、本実施形態の電子制御装置（以下、ＥＣＵという）は、例えば車両に搭載されたエンジンを制御するものである。
［第１実施形態］
図１に示すように、第１実施形態のＥＣＵ１は、エンジンを制御するための各種処理を行うマイコンとしてのＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３と、ＭＰＵ３の動作を監視する監視ＩＣ５とを備えている。
【００３０】
ＭＰＵ３は、例えば各種センサ等からの入力情報に基づきエンジンを作動させるためのアクチュエータの制御量を決定する、といった様々な制御機能を実現するための制御処理を行う。尚、こうした制御処理のプログラム（制御機能を実現するためのプログラム）は、図示しないＲＯＭに予め記憶されている。
【００３１】
例えば、制御機能の１つとして、図２に示すようなアクチュエータ制御量算出機能がある。そして、このアクチュエータ制御量算出機能においては、ＥＣＵ１に備えられたメインとサブとの２つの信号入力系統（図示省略）のうち、メインの信号入力系統が正常な場合であって、ＭＰＵ３が通常モードでエンジンを制御する場合には、そのメインの信号入力系統から入力される電圧Ｖ１に対して、「Ｖ１×定数Ａ＋定数Ｂ」という演算を行い、その演算結果を制御量とする。また、メインの信号入力系統が異常になった場合であって、ＭＰＵ３がフェイルセーフモードでエンジンを制御する場合には、サブの信号入力系統から入力される電圧Ｖ２に対して、「Ｖ２×定数Ｃ＋定数Ｄ」という演算を行い、その演算結果を制御量とする。つまり、通常モード時には、図２の点線で囲まれたパスの処理が行われ、フェイルセーフモード時には、図２の一点鎖線で囲まれたパスの処理が行われる。
【００３２】
そして、ＥＣＵ１においては、ＭＰＵ３の機能検証用のテストを実施するために、ＭＰＵ３には、確認結果チェック及びテスト選択部３ａと、テスト結果管理部３ｂとが設けられ、監視ＩＣ５には、テスト回答確認部５ａが設けられている。更に、ＭＰＵ３と監視ＩＣ５は、一定時間毎（本実施形態では８ｍｓ毎）に通信するようになっている。
【００３３】
ＭＰＵ３側の確認結果チェック及びテスト選択部３ａは、監視ＩＣ５からの情報を参照して、今回実施すべきテストを選択する部分であり、具体的には、実施すべきテストのテストＩＤを選択する。尚、テストＩＤは、テストの識別情報である。
【００３４】
そして、ＭＰＵ３は、確認結果チェック及びテスト選択部３ａで選択されたテストＩＤに対応する内容のテストを、複数の制御機能＃１，＃２，…の各々について実施する。
また、ＭＰＵ３側のテスト結果管理部３ｂは、テストの実施結果を示すテスト回答を生成し、そのテスト回答とテストＩＤを監視ＩＣ５へ送信する部分である。
【００３５】
尚、このテスト結果管理部３ｂによって監視ＩＣ５へ送信されるテストＩＤは、ＭＰＵ３にて今回実施したテストのテストＩＤである。また、ＭＰＵ３側の確認結果チェック及びテスト選択部３ａと、テスト結果管理部３ｂとの各機能は、ＭＰＵ３がＲＯＭ内のプログラムを実行することで実現されるものである。
【００３６】
一方、監視ＩＣ５のテスト回答確認部５ａは、ＭＰＵ３から送信されてきたテスト回答の正誤を判定し、その正誤判定結果（以下、テスト回答確認結果、或いは単に、確認結果という）を、それに対応するテストのテストＩＤと共にＭＰＵ３へ送信する。尚、このテスト回答確認部５ａによってＭＰＵ３へ送信されるテストＩＤは、ＭＰＵ３からテスト回答と共に送信されてきたテストＩＤである。
【００３７】
また、テスト回答確認部５ａは、ＭＰＵ３からのテスト回答が「誤」であると判定する毎に異常判定カウンタとしてのエラーカウンタＥＣｉｃ２をカウントアップさせる機能を備えており、そのエラーカウンタＥＣｉｃ２の値も、テスト回答確認結果及びテストＩＤと共にＭＰＵ３へ送信する。
【００３８】
そして、ＭＰＵ３側の確認結果チェック及びテスト選択部３ａは、監視ＩＣ５からのテスト回答確認結果、テストＩＤ、及びエラーカウンタＥＣｉｃ２の値を参照して、今回実施すべきテストのテストＩＤを選択する。このため、図１における〈１〉→〈２〉→〈３〉→〈４〉の順に信号が流れることとなる。
【００３９】
また更に、監視ＩＣ５のテスト回答確認部５ａは、ＭＰＵ３から送信されてきたテストＩＤを記憶すると共に、一定時間Ｔｈｃが経過する毎に、その今回経過した一定時間Ｔｈｃの期間中にＭＰＵ３から全種類のテストＩＤが送信されてきたか否か（換言すれば、全種類のテストが実施されたか否か）を判定して、全種類のテストＩＤが送信されてきていなければ、ＭＰＵ３が異常であると判定する全テスト実施確認機能を備えている。そして、テスト回答確認部５ａは、上記全テスト実施確認機能による判定を実施した場合には、その全テスト実施確認機能の判定結果である履歴確認結果も、テスト回答確認結果、テストＩＤ、及びエラーカウンタＥＣｉｃ２の値と共にＭＰＵ３へ送信する。
【００４０】
次に、ＭＰＵ３側の確認結果チェック及びテスト選択部３ａの処理内容について、図３〜図７のフローチャートを用い説明する。
ＭＰＵ３は、ＥＣＵ１に電源が投入されて動作を開始すると、図３に示す確認結果チェック及びテスト選択部３ａの処理を、監視ＩＣ５との通信間隔である一定時間（８ｍｓ）毎に実行する。尚、ＥＣＵ１の起動時において、ＭＰＵ３における後述の各カウンタ及びテストＩＤの値は０に初期化され、後述のフラグはオフの方に初期化される。
【００４１】
そして、図３に示すように、確認結果チェック及びテスト選択部３ａの処理では、まずＳ１１０にて、今回の処理実行が起動直後の初回であるか否かを判定し、初回であれば（Ｓ１１０：ＹＥＳ）、Ｓ１１５に進んで、図４のテストＩＤ選択処理を実行する。尚、本実施形態では、使用されるテストＩＤが１〜５の５通りある。そして、テストＩＤ選択処理は、これから実施すべきテストのテストＩＤを、１〜５のうちから選択して設定するための処理であり、それの詳しい内容は後述する。
【００４２】
Ｓ１１５でテストＩＤ選択処理が終了すると、Ｓ１２０に進んで、エラーカウンタＥＣｍｐｕ２の値を０に初期化し、その後、当該確認結果チェック及びテスト選択部３ａの処理を終了する。
【００４３】
一方、上記Ｓ１１０にて、起動直後の初回ではない（２回目以降である）と判定した場合には、Ｓ１２２に移行して、前回の処理実行時から今回までの間に監視ＩＣ５からテスト回答確認結果、テストＩＤ、及びエラーカウンタＥＣｉｃ２の値と共に、履歴確認結果を受信したか否かを判定する。そして、履歴確認結果を受信していなければ、Ｓ１４５に移行するが、履歴確認結果を受信したならば、Ｓ１２５に進む。
【００４４】
Ｓ１２５では、監視ＩＣ５からの履歴確認結果が“正常”を示す「ＯＫ」であるか否かを判定し、履歴確認結果が「ＯＫ」であれば、Ｓ１３０に進んで、エラーカウンタＥＣｍｐｕ１の値を０に初期化した後、Ｓ１４５に進む。
【００４５】
また、Ｓ１２５にて、監視ＩＣ５からの履歴確認結果が「ＯＫ」ではないと判定したならば、Ｓ１３５に移行して、エラーカウンタＥＣｍｐｕ１をインクリメントし、次のＳ１４０にて、エラーカウンタＥＣｍｐｕ１の値が、異常確定判定用の規定値以上になったか否かを判定する。そして、エラーカウンタＥＣｍｐｕ１の値が規定値以上になっていなかった場合にも、Ｓ１４５に進む。
【００４６】
Ｓ１４５では、図７に示すテスト回答確認結果の解析処理を実行し、その後、Ｓ１５０に進む。尚、テスト回答確認結果の解析処理の詳しい内容については後述するが、その処理は、監視ＩＣ５から受信したテスト回答確認結果とエラーカウンタＥＣｉｃ２の値とを解析して、当該ＭＰＵ３と監視ＩＣ５とを含めた総合的な検査結果であるテスト最終結果を決定する処理である。
【００４７】
そして、Ｓ１５０では、今回のＳ１４５で決定されたテスト最終結果が“正常”を示す「ＯＫ」であるか否かを判定し、テスト最終結果が「ＯＫ」であれば、前述のＳ１１５へ移行する。よって、この場合も、図４のテストＩＤ選択処理が実行されると共に、エラーカウンタＥＣｍｐｕ２の値が０に初期化される。
【００４８】
また、テスト最終結果が「ＯＫ」でなければ（Ｓ１５０：ＮＯ）、Ｓ１５５に進み、これから実施すべきテストのテストＩＤとして、前回選択したテストＩＤと同じテストＩＤを選択する。具体的には、監視ＩＣ５からテスト回答確認結果と共に送られてきたテストＩＤを、これから実施すべきテストのテストＩＤとして設定する。このＳ１５５の処理により、前回と同じテストが再度実施されることとなる。
【００４９】
そして、次のＳ１６０にて、エラーカウンタＥＣｍｐｕ２をインクリメントし、次のＳ１６５にて、エラーカウンタＥＣｍｐｕ２の値が、異常確定判定用の規定値以上になったか否かを判定する。そして、エラーカウンタＥＣｍｐｕ２の値が規定値以上になっていなければ、そのまま当該確認結果チェック及びテスト選択部３ａの処理を終了する。
【００５０】
また、上記Ｓ１４０にて、エラーカウンタＥＣｍｐｕ１の値が規定値以上になったと判定した場合、或いは、上記１６５にて、エラーカウンタＥＣｍｐｕ２の値が規定値以上になったと判定した場合には、Ｓ１７０に移行して、予め定められたフェイルセーフ処理を実行し、その後、当該確認結果チェック及びテスト選択部３ａの処理を終了する。
【００５１】
尚、Ｓ１７０に移行する場合には、ＭＰＵ３又は監視ＩＣ５に何等かの異常が生じている可能性があるため、Ｓ１７０で実行されるフェイルセーフ処理としては、例えば、スロットル開度を小さくしてエンジンの出力を低減させるような処理が考えられる。また、Ｓ１４０とＳ１６５との各判定で用いられる異常確定判定用の規定値は、同じ値であっても異なる値であっても良い。
【００５２】
次に、図４に示すように、図３のＳ１１５でテストＩＤ選択処理が開始されると、まずＳ２１０にて、現在の制御モードが通常モードであるか否かを判定し、通常モードであれば、Ｓ２２０にて、図５に示す通常モード時用のテストＩＤ選択処理を実行する。また、現在の制御モードが通常モードではなくフェイルセーフモードであれば（Ｓ２１０：ＮＯ）、Ｓ２３０に移行して、図６に示すフェイルセーフモード時用のテストＩＤ選択処理を実行する。そして、Ｓ２２０又はＳ２３０の処理が終わると、図３におけるＳ１１５でのテストＩＤ選択処理が終了する。
【００５３】
ここで、図５に示すように、図４のＳ２２０で実行される通常モード時用のテストＩＤ選択処理では、まずＳ３１０にて、後述するフェイルセーフモード時用のテストＩＤ選択処理で使用される第２カウンタＣｎｔ２の値を０に初期化する。
【００５４】
そして、次のＳ３１５にて、第１カウンタＣｎｔ１の値が３以下であるか否かを判定し、３以下であれば、Ｓ３２０に進む。
Ｓ３２０では、現在のテストＩＤが１であるか否かを判定し、１でなければ、Ｓ３２５に進んで、今回のテストＩＤを１に設定する。そして、Ｓ３３５に進んで、第１カウンタＣｎｔ１をインクリメントし、その後、当該通常モード時用のテストＩＤ選択処理を終了する。
【００５５】
また、Ｓ３２０で現在のテストＩＤが１であると判定した場合には、Ｓ３３０に移行して、今回のテストＩＤを２に設定し、その後、Ｓ３３５に進む。
一方、Ｓ３１５で第１カウンタＣｎｔ１の値が３以下ではないと判定した場合には、Ｓ３４０に移行して、第１カウンタＣｎｔ１の値が５以下であるか否かを判定し、５以下であれば、Ｓ３４５に進む。
【００５６】
Ｓ３４５では、現在のテストＩＤが３であるか否かを判定し、３でなければ、Ｓ３５０に進んで、今回のテストＩＤを３に設定し、その後、Ｓ３３５に進む。
また、Ｓ３４５で現在のテストＩＤが３であると判定した場合には、Ｓ３５５に移行して、今回のテストＩＤを４に設定し、その後、Ｓ３３５に進む。
【００５７】
一方、Ｓ３４０で第１カウンタＣｎｔ１の値が５以下ではないと判定した場合には、Ｓ３６０に移行して、第１カウンタＣｎｔ１の値が６以下であるか否かを判定し、６以下であれば、Ｓ３６５に進む。Ｓ３６５では、今回のテストＩＤを５に設定し、続くＳ３７０にて、ＩＣテスト実行フラグをオン（ＯＮ）し、その後、Ｓ３３５に進む。尚、ＩＣテスト実行フラグは、監視ＩＣ５へ故意に「誤」と判定されるはずのテスト回答（後述するＮＧ判定確認用のテスト回答）を送信して、それに対する監視ＩＣ５からのテスト回答確認結果が「誤」であることを確認するＩＣテスト期間であることを示すフラグである。そして、テストＩＤが５に設定され、且つ、ＩＣテスト実行フラグがオンされると、後述するテスト結果管理部３ｂの処理（図８）により、監視ＩＣ５へ故意に「誤」と判定されるはずのテスト回答が送信されることとなる。よって、ＩＣテスト実行フラグがオンされている場合には、監視ＩＣ５からＭＰＵ３へのテスト回答確認結果が「誤」に該当する「ＮＧ」であることが、正常ということである。
【００５８】
また、Ｓ３６０で第１カウンタＣｎｔ１の値が６以下ではないと判定した場合には、Ｓ３７５に移行して、第１カウンタＣｎｔ１の値を０に戻す。そして、続くＳ３８０にて、ＩＣテスト実行フラグをオフ（ＯＦＦ）し、その後、当該通常モード時用のテストＩＤ選択処理を終了する。
【００５９】
このような通常モード時用のテストＩＤ選択処理では、図１３に示すように、第１カウンタＣｎｔ１を０〜７の間でラップラウンドさせることとなる。
そして、第１カウンタＣｎｔ１の値が０〜３の場合には、テストＩＤを１と２に交互に設定し（Ｓ３１５〜Ｓ３３０）、第１カウンタＣｎｔ１の値が４の場合には、テストＩＤを３に設定し、第１カウンタＣｎｔ１の値が５の場合には、テストＩＤを４に設定することとなる（Ｓ３４０〜Ｓ３５５）。また、第１カウンタＣｎｔ１の値が６の場合には、テストＩＤを５に設定すると共に、ＩＣテスト実行フラグをオンし（Ｓ３６０〜Ｓ３７０）、第１カウンタＣｎｔ１の値が７の場合には、テストＩＤを５に設定したままで、ＩＣテスト実行フラグをオフすることとなる（Ｓ３８０）。
【００６０】
尚、１と２のテストＩＤ（ＩＤ＝１，２）は、通常モード時に使用されるロジック（通常モード時に実行される処理）のテストを示すＩＤであり、３と４のテストＩＤ（ＩＤ＝３，４）は、フェイルセーフモード時に使用されるロジック（フェイルセーフモード時に実行される処理）のテストを示すＩＤである。そして、通常モード時用のテストＩＤ選択処理では、ＩＤ＝１，２をＩＤ＝３，４よりも高い頻度で選択することとなる。また、５のテストＩＤ（ＩＤ＝５）は、監視ＩＣ５のテストを示すＩＤである。
【００６１】
次に、図６に示すように、図４のＳ２３０で実行されるフェイルセーフモード時用のテストＩＤ選択処理では、まずＳ３１０にて、前述した通常モード時用のテストＩＤ選択処理で使用される第１カウンタＣｎｔ１の値を０に初期化する。
【００６２】
そして、次のＳ４１５にて、第２カウンタＣｎｔ２の値が３以下であるか否かを判定し、３以下であれば、Ｓ４２０に進む。
Ｓ４２０では、現在のテストＩＤが３であるか否かを判定し、３でなければ、Ｓ４２５に進んで、今回のテストＩＤを３に設定する。そして、Ｓ４３５に進んで、第２カウンタＣｎｔ２をインクリメントし、その後、当該フェイルセーフモード時用のテストＩＤ選択処理を終了する。
【００６３】
また、Ｓ４２０で現在のテストＩＤが３であると判定した場合には、Ｓ４３０に移行して、今回のテストＩＤを４に設定し、その後、Ｓ４３５に進む。
一方、Ｓ４１５で第２カウンタＣｎｔ２の値が３以下ではないと判定した場合には、Ｓ４４０に移行して、第２カウンタＣｎｔ２の値が５以下であるか否かを判定し、５以下であれば、Ｓ４４５に進む。
【００６４】
Ｓ４４５では、現在のテストＩＤが１であるか否かを判定し、１でなければ、Ｓ４５０に進んで、今回のテストＩＤを１に設定し、その後、Ｓ４３５に進む。
また、Ｓ４４５で現在のテストＩＤが１であると判定した場合には、Ｓ４５５に移行して、今回のテストＩＤを２に設定し、その後、Ｓ４３５に進む。
【００６５】
一方、Ｓ４４０で第２カウンタＣｎｔ２の値が５以下ではないと判定した場合には、Ｓ４６０に移行して、第２カウンタＣｎｔ２の値が６以下であるか否かを判定し、６以下であれば、Ｓ４６５に進む。Ｓ４６５では、今回のテストＩＤを５に設定し、続くＳ４７０にて、ＩＣテスト実行フラグをオン（ＯＮ）し、その後、Ｓ４３５に進む。
【００６６】
また、Ｓ４６０で第２カウンタＣｎｔ２の値が６以下ではないと判定した場合には、Ｓ４７５に移行して、第２カウンタＣｎｔ２の値を０に戻す。そして、続くＳ４８０にて、ＩＣテスト実行フラグをオフ（ＯＦＦ）し、その後、当該フェイルセーフモード時用のテストＩＤ選択処理を終了する。
【００６７】
このようなフェイルセーフモード時用のテストＩＤ選択処理では、図１３に示すように、第２カウンタＣｎｔ２を０〜７の間でラップラウンドさせることとなる。
そして、第２カウンタＣｎｔ２の値が０〜３の場合には、テストＩＤを３と４に交互に設定し（Ｓ４１５〜Ｓ４３０）、第２カウンタＣｎｔ２の値が４の場合には、テストＩＤを１に設定し、第２カウンタＣｎｔ２の値が５の場合には、テストＩＤを２に設定することとなる（Ｓ４４０〜Ｓ４５５）。また、第２カウンタＣｎｔ２の値が６の場合には、テストＩＤを５に設定すると共に、ＩＣテスト実行フラグをオンし（Ｓ４６０〜Ｓ４７０）、第２カウンタＣｎｔ２の値が７の場合には、テストＩＤを５に設定したままで、ＩＣテスト実行フラグをオフすることとなる（Ｓ４８０）。このため、フェイルセーフモード時用のテストＩＤ選択処理では、通常モード時用のテストＩＤ選択処理とは逆に、ＩＤ＝３，４をＩＤ＝１，２よりも高い頻度で選択することとなる。
【００６８】
次に、図７に示すように、図３のＳ１４５で実行されるテスト回答確認結果の解析処理では、まずＳ５１０にて、監視ＩＣ５から受信したテスト回答確認結果が「正」に該当する「ＯＫ」であるか否かを判定し、テスト回答確認結果が「ＯＫ」であれば、Ｓ５１５に進んで、ＩＣテスト実行フラグがオンされているか否かを判定する。そして、ＩＣテスト実行フラグがオンされていなければ、Ｓ５２０に進み、監視ＩＣ５から受信したエラーカウンタＥＣｉｃ２の値が０であるか否かを判定し、０であれば、Ｓ５２５に進む。
【００６９】
Ｓ５２５では、当該ＭＰＵ３と監視ＩＣ５とを含めた総合的な検査結果であるテスト最終結果を、“正常”を示す「ＯＫ」に設定し、その後、当該テスト回答確認結果の解析処理を終了する。
【００７０】
また、Ｓ５１０にて、監視ＩＣ５からのテスト回答確認結果が「ＯＫ」ではないと判定した場合には、Ｓ５３０に移行して、ＩＣテスト実行フラグがオンされているか否かを判定する。そして、ＩＣテスト実行フラグがオンされていれば、Ｓ５３５に進み、監視ＩＣ５から受信したエラーカウンタＥＣｉｃ２の値が１であるか否かを判定し、１であれば、Ｓ５２５に移行する。よって、この場合にも、テスト最終結果が「ＯＫ」に設定される。
【００７１】
一方、Ｓ５３０にて、ＩＣテスト実行フラグがオンされていないと判定した場合には、監視ＩＣ５へ故意に「誤」と判定されるはずのテスト回答を送信しているわけではないのに、監視ＩＣ５からのテスト回答確認結果が「ＯＫ」ではなかった（「ＮＧ」であった）ということであり、当該ＭＰＵ３から監視ＩＣ５へ送信されたテスト回答が本当に誤っていたと考えられるため、Ｓ５４０に移行して、テスト最終結果を、“異常”を示す「ＮＧ」に設定する。そして、その後、当該テスト回答確認結果の解析処理を終了する。
【００７２】
また、Ｓ５３５にて、エラーカウンタＥＣｉｃ２の値が１ではないと判定した場合には、監視ＩＣ５におけるエラーカウンタＥＣｉｃ２のカウントアップ機能（後述する図１０のＳ７４５の処理）に異常が生じていると判断して、この場合にもＳ５４０に移行し、テスト最終結果を「ＮＧ」に設定する。
【００７３】
また、Ｓ５１５にて、ＩＣテスト実行フラグがオンされていると判定した場合には、監視ＩＣ５へ故意に「誤」と判定されるはずのテスト回答を送信したのに、監視ＩＣ５からのテスト回答確認結果が「ＯＫ」であったということであるため、テスト回答に対する監視ＩＣ５の判定機能（テスト回答確認部５ａ）に異常が生じていると判断して、この場合にもＳ５４０に移行し、テスト最終結果を「ＮＧ」に設定する。
【００７４】
また、Ｓ５２０にて、エラーカウンタＥＣｉｃ２の値が０ではないと判定した場合には、監視ＩＣ５におけるエラーカウンタＥＣｉｃ２のリセット機能（後述する図１０のＳ７４０の処理）に異常が生じていると判断して、この場合にもＳ５４０に移行し、テスト最終結果を「ＮＧ」に設定する。
【００７５】
尚、図７のＳ５２５又はＳ５４０で「ＯＫ」か「ＮＧ」に設定されるテスト最終結果が、図３のＳ１５０で参照されることとなる。
そして、ＭＰＵ３は、図３の処理が終了すると、その回のＳ１１５又はＳ１５５で選択されたテストＩＤに対応する内容のテストを複数の制御機能＃１，＃２，…の各々について実施する。
【００７６】
ここで、ＭＰＵ３で実施されるテストの内容について説明する。
まず、ＭＰＵ３は、前述したメインとサブの信号入力系統のうち、メインの信号入力系統が正常であれば通常モードとなり、メインの信号入力系統が異常であればフェイルセーフモードとなる。
【００７７】
また、本実施形態において、テスト対象となる制御機能は＃１〜＃１６の１６種類ある。そして、それら制御機能＃１〜＃１６の各々は、図２に例示したように、通常モード時には、メインの信号入力系統から入力される電圧Ｖ１に対して予め定められた演算を行うことにより、その制御機能に対応するアクチュエータの制御量等を求め、フェイルセーフモード時には、サブの信号入力系統から入力される電圧Ｖ２に対して予め定められた演算を行うことにより、その制御機能に対応するアクチュエータの制御量等を求める、といったものである。
【００７８】
そして、テストＩＤ＝１のテストでは、各制御機能＃１〜＃１６における通常モード時のパス（処理経路）に対して、第１のダミー入力値を与え、そのダミー入力値に対する演算結果を、テスト結果として取得する。
【００７９】
また、テストＩＤ＝２のテストでは、各制御機能＃１〜＃１６における通常モード時のパスに対して、上記第１のダミー入力値とは異なる第２のダミー入力値を与え、その入力値に対する演算結果を、テスト結果として取得する。
【００８０】
一方、テストＩＤ＝３のテストでは、各制御機能＃１〜＃１６におけるフェイルセーフモード時のパスに対して、第３のダミー入力値を与え、その入力値に対する演算結果を、テスト結果として取得する。
【００８１】
また、テストＩＤ＝４のテストでは、各制御機能＃１〜＃１６におけるフェイルセーフモード時のパスに対して、上記第３のダミー入力値とは異なる第４のダミー入力値を与え、その入力値に対する演算結果を、テスト結果として取得する。
【００８２】
尚、第１のダミー入力値は、各制御機能＃１〜＃１６毎に異なる値であっても同じ値であっても良い。そして、このことは、第２〜第４のダミー入力値についても同様である。
また、テストＩＤ＝５の場合には、制御機能＃１〜＃１６のテストは実施せずに、後述する図８の処理により、ＩＣテスト用のテスト回答（監視ＩＣ５の機能を検証するためのＮＧ判定確認用のテスト回答とＯＫ判定確認用のテスト回答）を作成するのみである。
【００８３】
そして、ＭＰＵ３は、図３の処理でテストＩＤが１〜４の何れかに設定されて、そのテストＩＤに対応する内容のテストを制御機能＃１〜＃１６の各々について実施するか、或いは、図３の処理でテストＩＤが５に設定されると、図８に示すテスト結果管理部３ｂの処理を実行する。
【００８４】
図８に示すように、テスト結果管理部３ｂの処理では、まずＳ６１０にて、今回のテストＩＤが５であるか否かを判定し、５でなければ（即ち、１〜４の何れかであれば）、Ｓ６１５に進む。
【００８５】
Ｓ６１５では、制御機能＃１〜＃１６の各々について、今回実施したテストのテスト結果が正しいか否かを自己判定する。
具体的に説明すると、ＭＰＵ３には、制御機能＃１〜＃１６の各々について、その制御機能における通常モード時のパスに前述した第１のダミー入力値を与えた場合の正しい演算結果が、通常モードテスト用の期待値として記憶されている。また、ＭＰＵ３には、制御機能＃１〜＃１６の各々について、その制御機能におけるフェイルセーフモード時のパスに前述した第３のダミー入力値を与えた場合の正しい演算結果が、フェイルセーフモードテスト用の期待値として記憶されている。
【００８６】
そして、Ｓ６１５では、今回のテストＩＤが１又は２であれば、制御機能＃１〜＃１６の各々について、テスト結果と通常モードテスト用の期待値とを比較し、両者が一致していれば、テスト結果が正しいと判定する。また、今回のテストＩＤが３又は４であれば、制御機能＃１〜＃１６の各々について、テスト結果とフェイルセーフモードテスト用の期待値とを比較し、両者が一致していれば、テスト結果が正しいと判定する。
【００８７】
このため、テストＩＤが１又は３の場合に、ある制御機能のテストとＳ６１５の判定とが正常に行われたならば、Ｓ６１５では、その制御機能について“テスト結果が正しい”と判定されるが、テストＩＤが２又は４の場合に、ある制御機能のテストとＳ６１５の判定とが正常に行われたならば、Ｓ６１５では、その制御機能について“テスト結果が正しくない”と判定されることとなる。
【００８８】
つまり、テストＩＤ＝１，３のテストが、Ｓ６１５で“テスト結果が正しい”と判定されることを期待したテスト（ＯＫ期待のテスト）であるのに対して、テストＩＤ＝２，４のテストは、Ｓ６１５で“テスト結果が正しくない”と判定されることを期待したテスト（ＮＧ期待のテスト）である。尚、このように、ＯＫ期待のテストだけでなくＮＧ期待のテストも設けているのは、Ｓ６１５での判定が“ＹＥＳ”と“ＮＯ”の何れかに固着していないことを確認できるようにするためである。
【００８９】
このようなＳ６１５により、テスト結果が正しいと判定した制御機能については、Ｓ６２０にて、テスト回答として「ＯＫ」を示すテスト回答を作成する。また、Ｓ６１５により、テスト結果が正しくないと判定した制御機能については、Ｓ６２５にて、テスト回答として「ＮＧ」を示すテスト回答を作成する。
【００９０】
具体的には、図９（Ａ）に示す規則でテスト回答を作成する。
即ち、テストＩＤが１又は２の場合に、Ｓ６１５にて、ある制御機能＃ｎ（ｎは１〜１６の何れか）についてテスト結果が正しいと判定したならば、図９（Ａ）における「ＩＤ＝１」の縦列に記載された数値のうち、「＃ｎ」に対応する数値を、その制御機能＃ｎについての「ＯＫ」を示すテスト回答とする。
【００９１】
また、テストＩＤが１又は２の場合に、Ｓ６１５にて、ある制御機能＃ｎについてテスト結果が正しくないと判定したならば、図９（Ａ）における「ＩＤ＝２」の縦列に記載された数値のうち、「＃ｎ」に対応する数値を、その制御機能＃ｎについての「ＮＧ」を示すテスト回答とする。
【００９２】
よって、例えば、テストＩＤが１又は２の場合に、Ｓ６１５にて、制御機能＃１についてテスト結果が正しいと判定したならば、｛０１｝が、その制御機能＃１についての「ＯＫ」を示すテスト回答となる。また、テストＩＤが１又は２の場合に、Ｓ６１５にて、制御機能＃１についてテスト結果が正しくないと判定したならば、｛１１｝が、その制御機能＃１についての「ＮＧ」を示すテスト回答となる。尚、図９に記載の数値及び｛｝内の数値は、１６進数表示の数値である。
【００９３】
同様に、テストＩＤが３又は４の場合に、Ｓ６１５にて、ある制御機能＃ｎについてテスト結果が正しいと判定したならば、図９（Ａ）における「ＩＤ＝３」の縦列に記載された数値のうち、「＃ｎ」に対応する数値を、その制御機能＃ｎについての「ＯＫ」を示すテスト回答とする。
【００９４】
また、テストＩＤが３又は４の場合に、Ｓ６１５にて、ある制御機能＃ｎについてテスト結果が正しくないと判定したならば、図９（Ａ）における「ＩＤ＝４」の縦列に記載された数値のうち、「＃ｎ」に対応する数値を、その制御機能＃ｎについての「ＮＧ」を示すテスト回答とする。
【００９５】
よって、例えば、テストＩＤが３又は４の場合に、Ｓ６１５にて、制御機能＃１についてテスト結果が正しいと判定したならば、｛２１｝が、その制御機能＃１についての「ＯＫ」を示すテスト回答となる。また、テストＩＤが３又は４の場合に、Ｓ６１５にて、制御機能＃１についてテスト結果が正しくないと判定したならば、｛３１｝が、その制御機能＃１についての「ＮＧ」を示すテスト回答となる。
【００９６】
尚、前述したように、テストＩＤ＝２，４のテストは、Ｓ６１５で“テスト結果が正しくない”と判定されるはずのＮＧ期待のテストであるため、ＭＰＵ３が正常ならば、テストＩＤがｍ（ｍは１〜４の何れか）である場合、図９（Ａ）における「ＩＤ＝ｍ」の縦列に記載された各数値が、各制御機能＃１〜＃１６についてのテスト回答となる。
【００９７】
また、上記Ｓ６１０にて、今回のテストＩＤが５であると判定した場合には、Ｓ６３０に移行して、ＩＣテスト実行フラグがオンされているか否かを判定する。
そして、ＩＣテスト実行フラグがオンされていれば（Ｓ６３０：ＹＥＳ）、Ｓ６３５に進み、各制御機能＃１〜＃１６についてのテスト回答として、監視ＩＣ５側で「誤」と判定されるはずのＮＧ判定確認用のテスト回答を作成する。また、ＩＣテスト実行フラグがオフされていれば（Ｓ６３０：ＮＯ）、Ｓ６４０に進み、各制御機能＃１〜＃１６についてのテスト回答として、監視ＩＣ５側で「正」と判定されるはずのＯＫ判定確認用のテスト回答を作成する。
【００９８】
具体的には、図９（Ｂ）に示す規則でテスト回答を作成する。
即ち、Ｓ６３５では、図９（Ｂ）における左側の縦列に記載された数値のうち、「＃ｎ」に対応する数値を、制御機能＃ｎについてのテスト回答とする。また、Ｓ６４０では、図９（Ｂ）における右側の縦列に記載された数値のうち、「＃ｎ」に対応する数値を、制御機能＃ｎについてのテスト回答とする。
【００９９】
よって、テストＩＤが５で、且つ、ＩＣテスト実行フラグがオンされている場合、各制御機能＃１〜＃１６についてのテスト回答は全て｛ＦＦ｝となる。また、テストＩＤが５で、且つ、ＩＣテスト実行フラグがオフされている場合、例えば、制御機能＃１についてのテスト回答は｛４１｝となり、制御機能＃２についてのテスト回答は｛４２｝となる。
【０１００】
上記Ｓ６１０〜Ｓ６４０の処理により、各制御機能＃１〜＃１６についてのテスト回答が作成されると、Ｓ６４５にて、その各制御機能＃１〜＃１６についてのテスト回答と、今回のテストＩＤ（即ち、ＭＰＵ３にて今回選択し実施したテストのテストＩＤ）とを、監視ＩＣ５へ送信し、その後、当該テスト結果管理部３ｂの処理を終了する。
【０１０１】
次に、監視ＩＣ５におけるテスト回答確認部５ａが行う処理内容について、図１０及び図１１のフローチャートを用い説明する。
監視ＩＣ５のテスト回答確認部５ａは、ＭＰＵ３から送信されたテスト回答とテストＩＤを受信する毎に、図１０の処理を開始する。尚、監視ＩＣ５における各カウンタの値も、ＥＣＵ１の起動時に０に初期化される。
【０１０２】
そして、まずＳ７１０にて、図１１に示すテスト回答解析処理を行う。
図１１に示すように、テスト回答解析処理では、最初のＳ８１０にて、ＭＰＵ３から今回受信したテストＩＤを、当該監視ＩＣ５に設けられたメモリにおける履歴記憶領域にテスト履歴として累積記憶し、続くＳ８１５にて、履歴確認タイミングカウンタをインクリメントする。次に、Ｓ８２０にて、履歴確認タイミングカウンタの値が前述の一定時間Ｔｈｃに相当するしきい値に達したか否かにより、その一定時間Ｔｈｃ毎の履歴確認タイミングが到来したか否かを判定する。
【０１０３】
そして、履歴確認タイミングカウンタの値がしきい値に達しておらず、履歴確認タイミングが到来していないと判定した場合には（Ｓ８２０：ＮＯ）、そのままＳ８５５に移行するが、履歴確認タイミングが到来したと判定した場合には（Ｓ８２０：ＹＥＳ）、Ｓ８２５に進む。
【０１０４】
Ｓ８２５では、履歴確認タイミングカウンタの値を０に戻し、次のＳ８３０にて、上記履歴記憶領域内にテスト履歴として１〜５の全種類のテストＩＤが記憶されているか否か（即ち、今回経過した一定時間Ｔｈｃの期間中にＭＰＵ３から全種類のテストＩＤが送信されてきたか否かであり、換言すれば全種類のテストが実施されたか否か）を判定する。
【０１０５】
そして、履歴記憶領域内に全種類のテストＩＤがあれば（Ｓ８３０：ＹＥＳ）、Ｓ８４０にて、履歴確認結果を“正常”を示す「ＯＫ」に設定し、Ｓ８５０にて、履歴記憶領域内のテスト履歴（テストＩＤ）を消去した後、Ｓ８５５へ進む。
【０１０６】
また、履歴記憶領域内に全種類のテストＩＤがなければ（Ｓ８３０：ＮＯ）、Ｓ８４５にて、履歴確認結果を“異常”を示す「ＮＧ」に設定し、Ｓ８５０にて、履歴記憶領域内のテスト履歴（テストＩＤ）を消去した後、Ｓ８５５へ進む。
【０１０７】
そして、上記Ｓ８１０〜Ｓ８５０の処理により、前述した全テスト実施確認機能が実現されている。尚、本実施形態において、履歴確認タイミングの到来間隔である一定時間Ｔｈｃは、図１３に示すように例えば９６ｍｓである。
【０１０８】
次にＳ８５５では、ＭＰＵ３へ前回送信したテスト回答確認結果が「誤」に該当する「ＮＧ」であったか否かを判定する。そして、前回のテスト回答確認結果が「ＮＧ」でなければ（Ｓ８５５：ＮＯ）、そのままＳ８６５に移行するが、前回のテスト回答確認結果が「ＮＧ」であれば（Ｓ８５５：ＹＥＳ）、Ｓ８６０に進む。そして、Ｓ８６０にて、ＭＰＵ３から今回受信したテストＩＤが前回受信したテストＩＤと同じであるか否かを判定し、今回のテストＩＤが前回と同じであれば、Ｓ８６５に進む。
【０１０９】
そして、Ｓ８６５では、正誤判定用期待値の選択処理を行う。正誤判定用期待値とは、ＭＰＵ３から受信したテスト回答の正誤を判定するための期待値である。
具体的に説明すると、まず、監視ＩＣ５には、図１２に示すように、ＭＰＵ３側に記憶されている前述の規則であって、図９（Ａ）及び図９（Ｂ）における右側の規則と全く同じ規則が記憶されている。そして、Ｓ８６５では、ＭＰＵ３から今回受信したテストＩＤがＭ（Ｍは１〜５の何れか）であるとすると、図１２における「ＩＤ＝Ｍ」の縦列に記載された各数値を、各制御機能＃１〜＃１６についてのテスト回答に対する正誤判定用期待値として選択する。
【０１１０】
次に、Ｓ８７０に進み、各制御機能＃１〜＃１６について、ＭＰＵ３から今回受信したテスト回答と上記Ｓ８６５で選択した正誤判定用期待値とが一致しているか否かを判定する。
【０１１１】
そして、全ての制御機能＃１〜＃１６について、テスト回答と正誤判定用期待値とが一致していたならば（Ｓ８７０：ＹＥＳ）、Ｓ８７５に進んで、テスト回答確認結果を「正」に該当する「ＯＫ」に設定し、その後、当該テスト回答解析処理を終了する。
【０１１２】
また、制御機能＃１〜＃１６のうちの１つ以上について、テスト回答と正誤判定用期待値とが一致していなければ（Ｓ８７０：ＮＯ）、Ｓ８８０に進んで、テスト回答確認結果を「誤」に該当する「ＮＧ」に設定し、その後、当該テスト回答解析処理を終了する。
【０１１３】
また、上記Ｓ８６０にて、今回のテストＩＤが前回のテストＩＤと同じではないと判定した場合にも、Ｓ８８０に進んで、テスト回答確認結果を「ＮＧ」に設定し、その後、当該テスト回答解析処理を終了する。
【０１１４】
図１０に戻り、上記Ｓ７１０でテスト回答解析処理が終了すると、次にＳ７１２にて、今回が履歴確認タイミングであったか否か（即ち、今回の上記Ｓ８２０で履歴確認タイミングが到来したと判定したか否か）を判定する。そして、今回が履歴確認タイミングでなければ、そのままＳ７３５へ移行するが、今回が履歴確認タイミングであれば、Ｓ７１５に進む。
【０１１５】
Ｓ７１５では、今回のテスト回答解析処理のＳ８４０又はＳ８４５で設定された履歴確認結果が「ＯＫ」であるか否かを判定し、履歴確認結果が「ＯＫ」であれば、Ｓ７２０に進んで、エラーカウンタＥＣｉｃ１の値を０に初期化した後、Ｓ７３５に進む。
【０１１６】
また、Ｓ７１５にて、履歴確認結果が「ＯＫ」ではないと判定したならば、Ｓ７２５に移行して、エラーカウンタＥＣｉｃ１をインクリメントし、次のＳ７３０にて、エラーカウンタＥＣｉｃ１の値が、異常確定判定用の規定値以上になったか否かを判定する。そして、エラーカウンタＥＣｉｃ１の値が規定値以上になっていなかった場合にも、Ｓ７３５に進む。
【０１１７】
Ｓ７３５では、今回のテスト回答解析処理のＳ８７５又はＳ８８０で設定されたテスト回答確認結果が「ＯＫ」であるか否かを判定し、テスト回答確認結果が「ＯＫ」であれば、Ｓ７４０に進んで、エラーカウンタＥＣｉｃ２の値を０に初期化した後、Ｓ７５５に進む。
【０１１８】
また、Ｓ７３５にて、テスト回答確認結果が「ＯＫ」ではないと判定したならば、Ｓ７４５に移行して、エラーカウンタＥＣｉｃ２をインクリメントし、次のＳ７５０にて、エラーカウンタＥＣｉｃ２の値が、異常確定判定用の規定値以上になったか否かを判定する。そして、エラーカウンタＥＣｉｃ２の値が規定値以上になっていなかった場合にも、Ｓ７５５に進む。
【０１１９】
一方、上記Ｓ７３０にて、エラーカウンタＥＣｉｃ１の値が規定値以上になったと判定した場合、或いは、上記７５０にて、エラーカウンタＥＣｉｃ２の値が規定値以上になったと判定した場合には、Ｓ７６０に移行して、予め定められたフェイルセーフ処理を実行し、その後、Ｓ７５５に進む。
【０１２０】
尚、Ｓ７６０に移行する場合には、ＭＰＵ３に何等かの異常が生じている可能性があるため、Ｓ７６０で実行されるフェイルセーフ処理としては、ＭＰＵ３からの出力よりも優先してエンジンの出力を低減させるようなフェイルセーフ用信号を出力する処理などが考えられる。また、Ｓ７３０とＳ７５０との各判定で用いられる異常確定判定用の規定値は、同じ値であっても異なる値であっても良い。
【０１２１】
そして、Ｓ７５５では、ＭＰＵ３へ情報を送信する処理を行う。具体的には、今回が一定時間Ｔｈｃ毎の履歴確認タイミングであったならば、今回のテスト回答解析処理で設定されたテスト回答確認結果及び履歴確認結果と、エラーカウンタＥＣｉｃ２の値と、ＭＰＵ３からテスト回答と共に受信したテストＩＤとを、ＭＰＵ３へ送信する。また、今回が履歴確認タイミングでなければ、今回のテスト回答解析処理で設定されたテスト回答確認結果と、エラーカウンタＥＣｉｃ２の値と、ＭＰＵ３からテスト回答と共に受信したテストＩＤとを、ＭＰＵ３へ送信する。そして、このＳ７５５の処理を行った後、当該図１０の処理を終了する。
【０１２２】
次に、図１０及び図１１の処理による監視ＩＣ５の作用について説明する。
まず、ＭＰＵ３が正常ならば、図１３に示すように、ＭＰＵ３からのテストＩＤが５以外から５になった場合（即ち、ＭＰＵ３側でＩＣテスト実行フラグがオンされた場合）にだけ、テスト回答確認結果が「ＮＧ」となり（Ｓ８８０）、それ以外の場合には、テスト回答確認結果が「ＯＫ」となる（Ｓ８７５）。ＭＰＵ３からのテストＩＤが５以外から５になった場合には、ＭＰＵ３から監視ＩＣ５へ送信される各制御機能＃１〜＃１６についてのテスト回答が全て｛ＦＦ｝となるのに対し、監視ＩＣ５側における図１１のＳ８７０で用いられる正誤判定用期待値は、図１２の最右列のように｛４１｝，｛４２｝，｛４３｝，…｛５０｝となるからである。
【０１２３】
尚、ＭＰＵ３が正常で、監視ＩＣ５へのテストＩＤが５以外から５になった場合、監視ＩＣ５では、テスト回答確認結果が「ＮＧ」となる上に、図１０のＳ７４５でエラーカウンタＥＣｉｃ２がカウントアップされるため、監視ＩＣ５からＭＰＵ３へは、テスト回答確認結果として「ＮＧ」が送信されると共に、エラーカウンタＥＣｉｃ２の値として１が送信される。しかし、その場合、ＭＰＵ３側の図７の処理では、Ｓ５１０：ＮＯ→Ｓ５３０：ＹＥＳ→Ｓ５３５：ＹＥＳ→Ｓ５２５と処理が進むため、テスト最終結果は「ＮＧ」にならず「ＯＫ」となる。
【０１２４】
一方、ＭＰＵ３に異常が生じて、例えば図１４に示すように、テストＩＤ＝１のテストを実施したテスト結果が、図８のＳ６１５で判定に用いられる期待値とは異なる値になったとすると、ＭＰＵ３から監視ＩＣ５へのテスト回答が、図９（Ａ）における「ＩＤ＝１」の縦列に記載された数値群「｛０１｝，｛０２｝，…｛１０｝」とは異なるものとなる。
【０１２５】
このため、監視ＩＣ５側では、図１１のＳ８７０にて、ＭＰＵ３からのテスト回答と正誤判定用期待値とが一致していないと判定し、テスト回答確認結果を「ＮＧ」に設定すると共に（Ｓ８８０）、エラーカウンタＥＣｉｃ２をカウントアップさせることとなる（Ｓ７４５）。
【０１２６】
そして、監視ＩＣ５からＭＰＵ３へのテスト回答確認結果が「ＮＧ」になると、この場合、ＭＰＵ３側では、ＩＣテスト実行フラグがオンされていないため、図７の処理にて、Ｓ５１０：ＮＯ→Ｓ５３０：ＮＯと判定されて、テスト最終結果が「ＮＧ」に設定される（Ｓ５４０）。すると、図３におけるＳ１５５，Ｓ１６０の処理が実行されることとなり、ＭＰＵ３にて前回と同じテストＩＤ＝１のテストが再度実施されると共に、ＭＰＵ３から監視ＩＣ５へ、前回と同じテストＩＤ（＝１）が送信されることとなる。
【０１２７】
よって、図１４に示すように、ＭＰＵ３において、テストＩＤ＝１のテストが正常に実施されない異常状態が続くと、監視ＩＣ５側では、エラーカウンタＥＣｉｃ２がカウントアップされていき（Ｓ７４５）、そのエラーカウンタＥＣｉｃ２の値が規定値に達すると、図１０のＳ７５０で“ＹＥＳ”と判定されてフェイルセーフ処理（Ｓ７６０）が実行されることとなる。また、ＭＰＵ３側においても、エラーカウンタＥＣｍｐｕ２がカウントアップされていき（Ｓ１６０）、そのエラーカウンタＥＣｍｐｕ２の値が規定値に達すると、図３のＳ１６５で“ＹＥＳ”と判定されてフェイルセーフ処理（Ｓ１７０）が実行されることとなる。
【０１２８】
尚、ＭＰＵ３において、例えば図８の処理でテスト回答を正常に作成することができなくなった場合にも、監視ＩＣ５側では、図１１のＳ８７０にて、ＭＰＵ３からのテスト回答と正誤判定用期待値とが一致していないと判定することとなるため、異常が検知される。
【０１２９】
また、図１５に示すように、ＭＰＵ３に異常が生じて、例えばテストＩＤ＝３が一定時間Ｔｈｃ（９６ｍｓ）以上選択されなくなったとすると、監視ＩＣ５側では、図１１におけるＳ８１０〜Ｓ８５０の処理により履歴確認結果が「ＮＧ」に設定されると共に、図１０のＳ７１５及びＳ７２５の処理によりエラーカウンタＥＣｉｃ１がカウントアップされる。そして、その状態が継続して、エラーカウンタＥＣｉｃ１の値が規定値に達すると、図１０のＳ７３０で“ＹＥＳ”と判定されてフェイルセーフ処理（Ｓ７６０）が実行されることとなる。更に、監視ＩＣ５による一定時間Ｔｈｃ毎の履歴確認結果はＭＰＵ３へ送信され、その履歴確認結果が「ＮＧ」になると、ＭＰＵ３側でも、図３のＳ１２５及びＳ１３５の処理によりエラーカウンタＥＣｍｐｕ１がカウントアップされる。そして、ＭＰＵ３側においても、エラーカウンタＥＣｍｐｕ１の値が規定値に達すると、図３のＳ１４０で“ＹＥＳ”と判定されてフェイルセーフ処理（Ｓ１７０）が実行されることとなる。
【０１３０】
また、監視ＩＣ５では、ＭＰＵ３へ前回送信したテスト回答確認結果が「ＮＧ」であった（即ち、ＭＰＵ３からの前回のテスト回答が「誤」であると判定した）にも拘わらず、ＭＰＵ３から前回と同じテストＩＤが送信されてこなかった場合（図１１のＳ８５５：ＹＥＳ→Ｓ８６０：ＮＯ）には、ＭＰＵ３が異常であると判定して、その場合にもテスト回答確認結果を「ＮＧ」に設定するようになっている。
【０１３１】
このため、ＭＰＵ３において図３のＳ１５０及びＳ１５５の処理が正常に実行されなくなった異常（即ち、再テスト実行機能の異常）を検知することもできる。
尚、ＭＰＵ３が正常であっても、テストＩＤが５以外から５になった場合には、ＭＰＵ３から監視ＩＣ５へ故意に「誤」と判定されるはずのＮＧ判定確認用のテスト回答が送信されて、監視ＩＣ５側ではテスト回答確認結果が「ＮＧ」となる。そして、そのテスト回答確認結果を受けたＭＰＵ３では、ＩＣテスト実行フラグがオンされているため、図７にて、Ｓ５１０：ＮＯ→Ｓ５３０：ＹＥＳ→Ｓ５３５：ＹＥＳ→Ｓ５２５と処理を進めることとなり、テスト最終結果は「ＯＫ」となる。よって、この場合には、監視ＩＣ５からＭＰＵ３へのテスト回答確認結果が「ＮＧ」であっても、ＭＰＵ３側で図３におけるＳ１５０及びＳ１５５の処理が実行されない。しかし、この場合には、図３のＳ１１５で実行される図５又は図６の処理により、テストＩＤは前回に続いて５のままに設定されることとなる。つまり、テストＩＤ＝５は、元々、ＭＰＵ３から監視ＩＣ５へ２回連続して送信されるようになっている。よって、監視ＩＣ５においては、ＭＰＵ３からのテストＩＤが５以外から５になった場合に、テスト回答確認結果が「ＮＧ」になっても、次回も前回と同じテストＩＤ＝５を受信することとなり、図１１のＳ８６０で“ＮＯ”と判定されることはなく、誤って異常と判定してしまうことはない。
【０１３２】
以上のようなＥＣＵ１では、ＭＰＵ３側に、機能検証用のテストを選択する確認結果チェック及びテスト選択部３ａが設けられている。そして、ＭＰＵ３は、その確認結果チェック及びテスト選択部３ａにより選択されたテストを実施して、その実施結果を示すテスト回答を監視ＩＣ５へ送信し、監視ＩＣ５は、ＭＰＵ３からのテスト回答の正誤を判定するようになっている。
【０１３３】
このため、監視ＩＣ５には、テストを選択する機能を設ける必要が無く、その監視ＩＣ５の機能を簡略化することができる。
しかも、ＭＰＵ３自身でテストを選択することとなるため、制御モードに合わせたテストの選択が極めて容易となる。ＭＰＵ３側はエンジンの制御状態に関するパラメータを全て持っているため、このようなテスト選択が可能となる。
【０１３４】
そこで、本実施形態において、ＭＰＵ３側の確認結果チェック及びテスト選択部３ａは、図４（図５，図６）の処理により、通常モード時には、通常モード時に実行される処理のテスト（ＩＤ＝１，２のテスト）を、フェイルセーフ時に実行される処理のテスト（ＩＤ＝３，４のテスト）よりも高い頻度で選択し、また逆に、フェイルセーフモード時には、フェイルセーフモード時に実行される処理のテスト（ＩＤ＝３，４のテスト）を、通常モード時に実行される処理のテスト（ＩＤ＝１，２のテスト）よりも高い頻度で選択するようになっている。つまり、現在の制御モード時に実行される処理のテストを、他の制御モード時に実行される処理のテストよりも、高い頻度で選択するようになっている。そして、このような制御モードに応じたテスト選択により、現在の制御モードに関係する異常をいち早く検知できるようになる。
【０１３５】
また、監視ＩＣ５は、ＭＰＵ３からのテスト回答の正誤を判定した結果であるテスト回答確認結果を、ＭＰＵ３へ送信するようになっているため、ＭＰＵ３側においても、監視ＩＣ５からのテスト回答確認結果により、異常があるか否かを把握することができる。
【０１３６】
そして、ＭＰＵ３側の確認結果チェック及びテスト選択部３ａは、図７の処理により、基本的には、監視ＩＣ５からのテスト回答確認結果が「ＯＫ」ならばテスト最終結果を「ＯＫ」とし、監視ＩＣ５からのテスト回答確認結果が「ＮＧ」ならばテスト最終結果を「ＮＧ」とするが、テスト最終結果が「ＮＧ」になった場合には、次のテストとして前回と同じテストを選択するようになっている（図３のＳ１５５）。
【０１３７】
このため、あるテストのテスト回答が監視ＩＣ５で「ＮＧ」と判定された場合（図１１のＳ８７０で“ＮＯ”と判定された場合）に、そのテストが再度実施されることとなり、異常状態を１度でなく連続して複数回確認することが可能となる。更に、全種類のテストが一巡してから再テストを実施する構成と比べると、異常確定判定されるまでの時間を短縮できるという利点もある。
【０１３８】
また、ＭＰＵ３は、監視ＩＣ５へ、テスト回答と共に、今回実施したテストのテストＩＤを送信するようになっている。そして、監視ＩＣ５は、ＭＰＵ３からのテストＩＤに基づいて、ＭＰＵ３からのテスト回答の期待値を設定し（Ｓ８６５）、その期待値とテスト回答とを比較することにより、そのテスト回答の正誤を判定するようになっている（Ｓ８７０）。このため、例えばＭＰＵ３側から監視ＩＣ５へテスト回答と共に正誤判定用期待値も送信するといった構成と比べると、監視ＩＣ５による正誤判定の精度（信憑性）を高めることができる。
【０１３９】
尚、上記実施形態において、監視ＩＣ５は、予め記憶しておいた複数の正誤判定用期待値の中から、テストＩＤに対応するものを選択するようになっていたが、テストＩＤの値から所定の演算ルールで正誤判定用期待値を算出するという構成を採っても良い。
【０１４０】
また、上記実施形態のＥＣＵ１において、監視ＩＣ５は、テスト回答確認結果と共に、テストＩＤもＭＰＵ３へ送信するようになっている。そして、ＭＰＵ３側の確認結果チェック及びテスト選択部３ａは、図３のＳ１５５で前回と同じテストのテストＩＤを選択する場合に、監視ＩＣ５からのテストＩＤを、前回と同じテストのテストＩＤとして選択するようになっている。このため、ＭＰＵ３側と監視ＩＣ５側で認識しているテストＩＤのズレを防ぐことができ、前回と同じテストを実施したい場合に、その再テストを確実に実施することができる。
【０１４１】
また前述したように、監視ＩＣ５は、ＭＰＵ３からの前回のテスト回答が「誤」であると判定したにも拘わらず、ＭＰＵ３から前回と同じテストＩＤが送信されてこなかった場合（Ｓ８６０：ＮＯ）には、ＭＰＵ３が異常であると判定して、その場合にもテスト回答確認結果を「ＮＧ」に設定するようになっている。このため、ＭＰＵ３側の再テスト実行機能の異常を検知することもできる。
【０１４２】
また、監視ＩＣ５は、図１１のＳ８１０〜Ｓ８５０による全テスト実施確認機能を備えているため、ＭＰＵ３の故障のうち「特定のテストが実行されない」という故障を検出することもできる。また、その全テスト実施確認機能によれば、ＭＰＵ３からのテストＩＤの送信順序が変わっても対応できる。
【０１４３】
また、ＭＰＵ３は、テストＩＤが５以外から５になる毎に、監視ＩＣ５へ故意に「誤」と判定されるはずのＮＧ判定確認用のテスト回答を送信し（Ｓ６３５）、そのテスト回答に対する監視ＩＣ５からのテスト回答確認結果が「ＮＧ」であるか否かを、図７のＳ５１０，Ｓ５１５，Ｓ５３０によって確認し、テスト回答確認結果が「ＮＧ」でなければ異常と判定するようになっている（Ｓ５１０：ＹＥＳ→Ｓ５１５：ＹＥＳ→Ｓ５４０）。このため、ＭＰＵ３からのテスト回答の正誤を判定する監視ＩＣ５の正誤判定機能が正常か否かを、ＭＰＵ３側にて検証することができる。
【０１４４】
更に、本実施形態において、監視ＩＣ５は、ＭＰＵ３からのテスト回答が「誤」であると判定する毎にエラーカウンタＥＣｉｃ２をカウントアップさせる機能（Ｓ７４５）を備えると共に、そのエラーカウンタＥＣｉｃ２の値を、テスト回答確認結果と共にＭＰＵ３へ送信するようになっている。そして、ＭＰＵ３は、ＮＧ判定確認用のテスト回答に対して監視ＩＣ５からテスト回答確認結果と共に送信されてきたエラーカウンタＥＣｉｃ２の値が正常にカウントアップされているか否かを、図７のＳ５３５によって確認し、カウントアップされていなければ異常と判定するようになっている（Ｓ５３５：ＮＯ→Ｓ５４０）。このため、エラーカウンタＥＣｉｃ２をカウントアップさせる監視ＩＣ５のカウントアップ機能が正常か否かを、ＭＰＵ３側にて検証することができる。
【０１４５】
尚、上記実施形態では、ＭＰＵ３における確認結果チェック及びテスト選択部３ａが、テスト選択手段に相当している。また、ＭＰＵ３が行う処理のうち、図８のＳ６３５と図７のＳ５１０，Ｓ５１５，Ｓ５３０が、ＩＣ側判定機能テスト手段に相当している。また、ＭＰＵ３が行う処理のうち、図８のＳ６３５と図７のＳ５３５が、ＩＣ側カウント機能テスト手段に相当している。
［第２実施形態］
次に、第２実施形態について説明する。尚、第２実施形態のＥＣＵは、第１実施形態のＥＣＵ１とハードウェア構成は同じであるため、各部の符号としては、第１実施形態と同じものを用いる。
【０１４６】
第２実施形態のＥＣＵ１は、第１実施形態と比較すると、ＭＰＵ３が、監視ＩＣ５側の全テスト実施確認機能（Ｓ８１０〜Ｓ８５０）と、エラーカウンタＥＣｉｃ１のリセット機能及びカウントアップ機能（Ｓ７１５〜Ｓ７２５）とが正常であるか否を確認するためのテストを行うようになっている。また、監視ＩＣ５は、図１０のＳ７５５にて、履歴確認結果を送信する場合、エラーカウンタＥＣｉｃ１の値もＭＰＵ３へ送信するようになっている。
【０１４７】
このため、第２実施形態では、ＭＰＵ３が、図３の処理に代えて、図１６に示す確認結果チェック及びテスト選択部３ａの処理を実行する。そして、図１６の処理は、図３の処理と比較すると、下記（１−１）〜（１−３）の点が異なっている。
【０１４８】
（１−１）：Ｓ１１５では、図４の処理に代えて、図１７のテストＩＤ選択処理を実行する。
（１−２）：Ｓ１２２にて履歴確認結果を受信したと判定すると、Ｓ１２３にて図１８の履歴確認結果の解析処理を実行し、その後、Ｓ１２５に進む。
【０１４９】
尚、履歴確認結果の解析処理の詳しい内容については後述するが、その処理は、監視ＩＣ５から受信した履歴確認結果とエラーカウンタＥＣｉｃ１の値とを解析して、ＭＰＵ３側にて全種類のテストが実施されているか否かと、監視ＩＣ５側の全テスト実施確認機能が正常であるか否かと、監視ＩＣ５におけるエラーカウンタＥＣｉｃ１のリセット機能及びカウントアップ機能が正常であるか否かとを、総合的に判断した検査結果である履歴確認最終結果を決定する処理である。
【０１５０】
（１−３）：Ｓ１２５では、監視ＩＣ５から受信した履歴確認結果ではなく、今回のＳ１２３で決定された履歴確認最終結果が“正常”を示す「ＯＫ」であるか否かを判定する。
【０１５１】
次に、図１６のＳ１１５で実行される図１７のテストＩＤ選択処理について説明する。尚、図１７のテストＩＤ選択処理は、図４のテストＩＤ選択処理（Ｓ２１０〜Ｓ２３０）に、Ｓ２４０〜Ｓ２７０の処理が追加されたものである。
【０１５２】
図１７に示すように、第２実施形態のテストＩＤ選択処理では、まずＳ２４０にて、テスト実施中フラグがオンされているか否かを判定する。
尚、本第２実施形態において、ＭＰＵ３は、監視ＩＣ５側の全テスト実施確認機能が正常であるか否を確認するために、全種類のテストＩＤのうちの何れか（本実施形態では１〜５のうちの５）が監視ＩＣ５へ送信されるのを故意に禁止するようになっており、テスト実施中フラグは、そのテストＩＤ＝５の送信を禁止している期間（即ち、全テスト実施確認機能のテスト期間でもあり、以下、特定ＩＤ送信禁止期間という）中であることを示すフラグである。また、このテスト実施中フラグは、後述するＳ２５５でオンされ、後述する図１８のＳ９４０又はＳ９５０でオフされる。
【０１５３】
上記Ｓ２４０にて、テスト実施中フラグがオンされていないと判定した場合には、Ｓ２４５に進んで、テスト開始タイミングカウンタの値がタイムアップ値以上であるか否かを判定し、タイムアップ値以上でなければ、Ｓ２５０に進んで、テスト開始タイミングカウンタをインクリメントする。そして、その後、前述のＳ２１０へ進む。
【０１５４】
尚、テスト開始タイミングカウンタは、前回の特定ＩＤ送信禁止期間が終了してからの経過時間を計測するためのカウンタである。そして、タイムアップ値は、前回の特定ＩＤ送信禁止期間が終了してから次回の特定ＩＤ送信禁止期間が開始されるまでの時間間隔を決める値であり、例えば、前述した一定時間Ｔｈｃの数倍又は数十倍の値に設定されている。また、Ｓ２１０〜Ｓ２３０の処理は、図４と同じであり、Ｓ２２０又はＳ２３０の処理が終了すると、図１６におけるＳ１１５でのテストＩＤ選択処理が終了する。
【０１５５】
一方、上記Ｓ２４５にて、テスト開始タイミングカウンタの値がタイムアップ値以上であると判定した場合には、Ｓ２５５に移行して、テスト実施中フラグをオンし、その後、Ｓ２６０へ進む。
【０１５６】
また、上記Ｓ２４０にて、テスト実施中フラグがオンされていると判定した場合には、そのままＳ２６０へ進む。
Ｓ２６０では、テスト開始タイミングカウンタの値を０にクリアし、続くＳ２６５にて、Ｓ２２０の処理（通常モード時用のテストＩＤ選択処理：図５）で使用される第１カウンタＣｎｔ１の値と、Ｓ２３０の処理（フェイルセーフモード時用のテストＩＤ選択処理：図６）で使用される第２カウンタＣｎｔ２の値とを０に初期化する。
【０１５７】
そして、次のＳ２７０にて、特定ＩＤ送信禁止期間中のＩＤ選択処理を実行する。この特定ＩＤ送信禁止期間中のＩＤ選択処理は、現在のテストＩＤ（即ち、前回送信したテストＩＤ）が１ならば今回のテストＩＤを２に設定し、現在のテストＩＤが２ならば今回のテストＩＤを３に設定し、現在のテストＩＤが３ならば今回のテストＩＤを４に設定し、現在のテストＩＤが１〜３の何れでもないならば（４ならば）今回のテストＩＤを１に設定する、という処理である。そして、このＳ２７０の処理が終了すると、図１６におけるＳ１１５でのテストＩＤ選択処理が終了する。
【０１５８】
つまり、図１７のテストＩＤ選択処理では、テスト開始タイミングカウンタの値がタイムアップ値に達するまでは（Ｓ２４５：ＮＯ）、第１実施形態の図４と同じＳ２１０〜Ｓ２３０の処理によってテストＩＤを選択するが、テスト開始タイミングカウンタの値がタイムアップ値に達すると、テスト実施中フラグをオンすると共に（Ｓ２５５）、テスト開始タイミングカウンタをクリアし（Ｓ２６０）、以後は、テスト実施中フラグが図１８のＳ９４０又はＳ９５０でオフされるまで、Ｓ２７０の処理により、テストＩＤを５以外の１〜４だけで変化させるようにしている。
【０１５９】
次に、図１６のＳ１２３で実行される履歴確認結果の解析処理について説明する。
図１８に示すように、履歴確認結果の解析処理では、まずＳ９１０にて、監視ＩＣ５から受信した履歴確認結果が「ＯＫ」であるか否かを判定し、履歴確認結果が「ＯＫ」であれば、Ｓ９１５に進んで、テスト実施中フラグがオンされているか否かを判定する。そして、テスト実施中フラグがオンされていなければ、Ｓ９２０に進み、監視ＩＣ５から履歴確認結果と共に受信したエラーカウンタＥＣｉｃ１の値が０であるか否かを判定し、０であれば、Ｓ９２５に進む。
【０１６０】
Ｓ９２５では、履歴確認最終結果を、“正常”を示す「ＯＫ」に設定し、その後、当該履歴確認結果の解析処理を終了する。
また、上記Ｓ９１５にて、テスト実施中フラグがオンされていると判定した場合には、Ｓ９４５に移行して、テスト実施中フラグがオンされてから規定時間Ｔｏｖが経過したか否かを判定する。尚、この規定時間Ｔｏｖは、前述の一定時間Ｔｈｃ（９６ｍｓ）よりも長い時間であって、その時間だけ何れかのテストＩＤの送信を禁止すれば、監視ＩＣ５側の全テスト実施確認機能によって履歴確認結果が「ＮＧ」に設定されるはずの時間であり、本実施形態では、例えば一定時間Ｔｈｃの２倍未満の１１２ｍｓに設定されている。
【０１６１】
そして、Ｓ９４５にて、規定時間Ｔｏｖが経過していないと判定した場合には、テストＩＤ＝５の送信を禁止している期間中ではあるものの、未だ監視ＩＣ５側の全テスト実施確認機能が異常であるとは特定できないため、そのまま当該履歴確認結果の解析処理を終了する。尚、この場合、履歴確認最終結果は前回の設定値のままとなる。
【０１６２】
これに対し、Ｓ９４５にて、規定時間Ｔｏｖが経過したと判定した場合には、テストＩＤ＝５の送信を止めてから規定時間Ｔｏｖが経過したのに、監視ＩＣ５からの履歴確認結果が「ＮＧ」にならずに「ＯＫ」であるということから、監視ＩＣ５側の全テスト実施確認機能が異常であると判断して、Ｓ９５０に進み、テスト実施中フラグをオフする。そして、次のＳ９５５にて、履歴確認最終結果を、“異常”を示す「ＮＧ」に設定し、その後、当該履歴確認結果の解析処理を終了する。
【０１６３】
また、上記Ｓ９２０にて、エラーカウンタＥＣｉｃ１の値が０ではないと判定した場合には、監視ＩＣ５におけるエラーカウンタＥＣｉｃ１のリセット機能（Ｓ７２０）に異常が生じていると判断して、この場合にもＳ９５０に移行する。よって、この場合にも、テスト実施中フラグがオフされると共に、履歴確認最終結果が「ＮＧ」に設定される。
【０１６４】
一方、上記Ｓ９１０にて、監視ＩＣ５からの履歴確認結果が「ＯＫ」ではないと判定した場合には、Ｓ９３０に移行して、テスト実施中フラグがオンされているか否かを判定する。そして、テスト実施中フラグがオンされていれば、テストＩＤ＝５の送信を禁止している期間中であり、監視ＩＣ５側の全テスト実施確認機能が正常である故に、その監視ＩＣ５からの履歴確認結果が「ＯＫ」ではなかった（「ＮＧ」であった）と判断できるため、次のＳ９３５に進んで、監視ＩＣ５から受信したエラーカウンタＥＣｉｃ１の値が１であるか否かを判定する。そして、エラーカウンタＥＣｉｃ１の値が１であれば、監視ＩＣ５におけるエラーカウンタＥＣｉｃ１のカウントアップ機能（Ｓ７２５）も正常であると判断できるため、Ｓ９４０に進んで、テスト実施中フラグをオフし、その後、Ｓ９２５に移行する。よって、この場合には、履歴確認最終結果が「ＯＫ」に設定される。
【０１６５】
これに対し、上記Ｓ９３０にて、テスト実施中フラグがオンされていないと判定した場合には、テストＩＤ＝５の送信を禁止していたわけではないのに、監視ＩＣ５からの履歴確認結果が「ＮＧ」であったということであり、当該ＭＰＵ３において全種類のテストが本当に実施されていないと判断し、Ｓ９５５に移行する。よって、この場合には、履歴確認最終結果が「ＮＧ」に設定される。
【０１６６】
また、上記Ｓ９３５にて、エラーカウンタＥＣｉｃ１の値が１ではないと判定した場合には、監視ＩＣ５におけるエラーカウンタＥＣｉｃ１のカウントアップ機能（Ｓ７２５）に異常が生じていると判断して、Ｓ９５０に移行し、テスト実施中フラグをオフした後、Ｓ９５５に進む。よって、この場合にも、履歴確認最終結果が「ＮＧ」に設定される。
【０１６７】
そして、本第２実施形態では、図１８の処理で「ＯＫ」か「ＮＧ」に設定される履歴確認最終結果が、図１６のＳ１２５で参照され、その履歴確認最終結果が「ＮＧ」となった連続回数が規定値以上になると、フェイルセーフ処理が実行されることとなる（Ｓ１４０：ＹＥＳ→Ｓ１７０）。
【０１６８】
以上のような第２実施形態のＥＣＵ１によれば、監視ＩＣ５側の全テスト実施確認機能が異常になったことをＭＰＵ３側にて検知することができる。また、監視ＩＣ５におけるエラーカウンタＥＣｉｃ１のリセット機能及びカウントアップ機能が異常になったこともＭＰＵ３側にて検知することができる。
【０１６９】
尚、上記第２実施形態では、図１７におけるＳ２４０〜Ｓ２７０の処理と、図１８におけるＳ９１０，Ｓ９１５，Ｓ９４５，Ｓ９５０及びＳ９５５の処理とが、全テスト実施確認機能テスト手段に相当している。一方、図１８のＳ９３５では、エラーカウンタＥＣｉｃ１の値が１以上か否かを判定し、１以上であれば正常と判断して、Ｓ９４０へ進むようにしても良い。
［第３実施形態］
次に、第３実施形態について説明する。尚、第３実施形態において、第１実施形態と同じ構成要素については、それと同一の符号を用いるため詳細な説明は省略する。
【０１７０】
図１９に示す第３実施形態のＥＣＵ１０は、第１実施形態のＥＣＵ１と比較すると、下記（２−１）〜（２−５）の点が異なっている。
（２−１）：図１９に示すように、監視ＩＣ５には、テスト回答確認部５ａに加えて、そのテスト回答確認部５ａと同じ構成及び機能のテスト回答確認部５ｂが設けられている。そして、その２つのテスト回答確認部５ａ，５ｂは並行して動作する。
【０１７１】
また、テスト回答確認部５ａ，５ｂの各々が図１０におけるＳ７６０の処理で出力するフェイルセーフ用信号は、オア回路５ｃを介して監視ＩＣ５の外部へ出力されるようになっている。つまり、２つのテスト回答確認部５ａ，５ｂのうちの少なくとも一方がフェイルセーフ用信号を出力すれば、その信号が監視ＩＣ５から出力されてエンジンの出力が低減されるようになっている。
【０１７２】
尚、オア回路５ｃに代えてアンド回路を設けるようにしても良い。また、本第３実施形態では、２つのテスト回答確認部５ａ，５ｂが、請求項１３に記載の複数の回路ブロックに相当している。
【０１７３】
（２−２）：ＭＰＵ３は、図３のＳ１４５にて、図７の処理に代えて、図２０に示すテスト回答確認結果の解析処理を実行する。
図２０の処理では、まずＳ５５０にて、監視ＩＣ５から受信した第１のテスト回答確認結果が「ＯＫ」であるか否かを判定する。尚、第１のテスト回答確認結果とは、テスト回答確認部５ａが送信したテスト回答確認結果である。
【０１７４】
そして、第１のテスト回答確認結果が「ＯＫ」ならば、次のＳ５５５にて、監視ＩＣ５から受信した第２のテスト回答確認結果が「ＯＫ」であるか否かを判定する。尚、第２のテスト回答確認結果とは、テスト回答確認部５ｂが送信したテスト回答確認結果である。
【０１７５】
そして、第２のテスト回答確認結果も「ＯＫ」ならば、Ｓ５６０に進んで、テスト最終結果を「ＯＫ」に設定し、その後、当該テスト回答確認結果の解析処理を終了する。
また、上記Ｓ５５０で第１のテスト回答確認結果が「ＮＧ」であると判定した場合、或いは、上記Ｓ５５５で第２のテスト回答確認結果が「ＮＧ」であると判定した場合には、Ｓ５６５に移行して、テスト最終結果を「ＮＧ」に設定し、その後、当該テスト回答確認結果の解析処理を終了する。
【０１７６】
つまり、図２０の処理では、２つのテスト回答確認部５ａ，５ｂによって送信されたテスト回答確認結果が全て「ＯＫ」ならば、正常と判定してテスト最終結果を「ＯＫ」に設定し、それらテスト回答確認結果の何れか１つでも「ＮＧ」ならば、異常と判定してテスト最終結果を「ＮＧ」に設定するようになっている。
【０１７７】
このため、本第３実施形態のＥＣＵ１０によれば、第１実施形態のように、ＭＰＵ３が監視ＩＣ５へＮＧ判定確認用のテスト回答を送信し、そのテスト回答に対するテスト回答確認結果が「ＮＧ」であることを確認する、といった処理を行わなくても、監視ＩＣ５側の正誤判定機能の異常による影響をなくすことができる。監視ＩＣ５における２つのテスト回答確認部５ａ，５ｂのうちの何れかに異常が生じて、本当はＭＰＵ３から監視ＩＣ５へのテスト回答が誤りであるにも拘わらず、その異常なテスト回答確認部からＭＰＵ３へのテスト回答確認結果が「ＯＫ」になったとしても、他のテスト回答確認部からのテスト回答確認結果が「ＮＧ」ばらば、ＭＰＵ３は正常と誤判定しない（即ち、テスト最終結果を「ＯＫ」にしない）からである。
【０１７８】
また、このため、本第３実施形態では、テストＩＤ＝５が存在せず、ＭＰＵ３では、テストＩＤが１〜４の何れかに設定されて、監視ＩＣ５へはテストＩＤ＝１〜４が送信されるようになっている。そして、そのための第１実施形態に対する相違点が、下記の（２−３）〜（２−５）である。
【０１７９】
（２−３）：ＭＰＵ３は、図４のＳ２２０にて、図５の処理に代えて、図２１に示す通常モード時用のテストＩＤ選択処理を実行し、また、図４のＳ２３０にて、図６の処理に代えて、図２２に示すフェイルセーフモード時用のテストＩＤ選択処理を実行する。
【０１８０】
そして、図２１の処理では、図５の処理と比較すると、Ｓ３６０〜Ｓ３７０及びＳ３８０が削除されており、Ｓ３４０で第１カウンタＣｎｔ１の値が５以下ではないと判定した場合には、Ｓ３７５に移行して、第１カウンタＣｎｔ１の値を０に戻し、その後、Ｓ３２５へ移行して、テストＩＤを１に設定するようになっている。
【０１８１】
このため、テストＩＤは、「１→２→１→２→３→４→１→２→１→２→３→４→１」という順で選択されていくこととなる。
また、図２２の処理では、図６の処理と比較すると、Ｓ４６０〜Ｓ４７０及びＳ４８０が削除されており、Ｓ４４０で第２カウンタＣｎｔ２の値が５以下ではないと判定した場合には、Ｓ４７５に移行して、第２カウンタＣｎｔ２の値を０に戻し、その後、Ｓ４２５へ移行して、テストＩＤを３に設定するようになっている。
【０１８２】
このため、テストＩＤは、「３→４→３→４→１→２→３→４→３→４→１→２→３」という順で選択されていくこととなる。
（２−４）：ＭＰＵ３は、テスト結果管理部３ｂの処理として、図８の処理の代わりに、図２３の処理を実行する。
【０１８３】
そして、図２３の処理では、図８の処理と比較すると、Ｓ６１０及びＳ６３０〜６４０が削除されている。また、ＭＰＵ３には、図９（Ｂ）に示した規則は記憶されておらず、図９（Ａ）と同じ図２４の規則だけが記憶されており、図２３のＳ６２０又はＳ６２５でテスト回答を作成する際には、図２４の規則を用いる。尚、このため、図２３のＳ６２０又はＳ６２５でテスト回答を作成する手順及び作成されるテスト回答の内容は、第１実施形態と同じである。
【０１８４】
（２−５）：監視ＩＣ５におけるテスト回答確認部５ａ，５ｂの各々には、図１２の規則に代えて、ＭＰＵ３側と同じ図２４の規則が記憶されている。尚、図２４の規則は、図１２の規則から、テストＩＤ＝５に関する情報を削除したものである。そして、テスト回答確認部５ａ，５ｂの各々は、図１１のＳ８６５では、その図２４の規則を用いて正誤判定用期待値を選択する。
【０１８５】
一方、第１実施形態との他の相違点として、ＭＰＵ３は、図３のＳ１２５では、監視ＩＣ５における２つのテスト回答確認部５ａ，５ｂのうちの一方（例えばテスト回答確認部５ａ）からの履歴確認結果が「ＯＫ」であるか否かを判定する。同様に、ＭＰＵ３は、図３のＳ１５５では、２つのテスト回答確認部５ａ，５ｂのうちの一方（例えばテスト回答確認部５ａ）から送られてきたテストＩＤを、前回と同じテストＩＤ（即ち、再テストのテストＩＤ）として設定する。また、本第３実施形態において、監視ＩＣ５の各テスト回答確認部５ａ，５ｂは、ＭＰＵ３へエラーカウンタＥＣｉｃ２の値は送信しなくても良い。
【０１８６】
以上のような第３実施形態のＥＣＵ３によれば、第１実施形態よりも、監視ＩＣ５の動作検証を行うためのＭＰＵ３側の処理を簡略化できるという利点がある。
尚、上記第３実施形態において、ＭＰＵ３は、監視ＩＣ５の各テスト回答確認部５ａ，５ｂから送信されてきたテスト回答確認結果を比較して、全て同じでなければ監視ＩＣ５が異常であると判定するように構成することもできる。つまり、各テスト回答確認部５ａ，５ｂからの情報を比較して不一致ならば、それらの何れかが異常であると判断することができる。このため、例えば、ＭＰＵ３は、監視ＩＣ５の各テスト回答確認部５ａ，５ｂから送信されてきたテストＩＤを比較して、全て同じでなければ異常であると判定するように構成することもできる。また、ＭＰＵ３は、監視ＩＣ５の各テスト回答確認部５ａ，５ｂから送信されてきた履歴確認結果を比較して、全て同じでなければ異常であると判定するように構成することもできる。そして、このようにすれば、第２実施形態と同様に、監視ＩＣ５側の全テスト実施確認機能が正常か否かをＭＰＵ３側にて検証することができる。
【０１８７】
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
【０１８８】
例えば、上記実施形態では、制御モードが２つであったが、３つ以上の制御モードがあっても良い。
また、ＮＧ期待のテストを設けずに、ＯＫ期待のテストだけを実施するようにしても良く、その場合には、前述したテストＩＤ＝１，２をまとめて１つのテストＩＤとし、前述したテストＩＤ＝３，４をまとめて他の１つのテストＩＤとすれば良い。
【０１８９】
また、ＭＰＵ３は、実施したテストのテスト結果をそのままテスト回答として監視ＩＣ５へ送信し、監視ＩＣ５側では、そのテスト結果のままのテスト回答について正誤を判定するように構成することもできる。
【図面の簡単な説明】
【０１９０】
【図１】第１実施形態のＥＣＵの構成を表す構成図である。
【図２】ＭＰＵの制御機能の一例を説明する説明図である。
【図３】第１実施形態のＭＰＵにおける確認結果チェック及びテスト選択部の処理を表すフローチャートである。
【図４】図３中のテストＩＤ選択処理を表すフローチャートである。
【図５】図４中の通常モード時用のテストＩＤ選択処理を表すフローチャートである。
【図６】図４中のフェイルセーフモード時用のテストＩＤ選択処理を表すフローチャートである。
【図７】図３中のテスト回答確認結果の解析処理を表すフローチャートである。
【図８】第１実施形態のＭＰＵにおけるテスト結果管理部の処理を表すフローチャートである。
【図９】ＭＰＵにおけるテスト回答の作成規則を説明する説明図である。
【図１０】監視ＩＣのテスト回答確認部が行う処理を表すフローチャートである。
【図１１】図１０中のテスト回答解析処理を表すフローチャートである。
【図１２】監視ＩＣにおける正誤判定用期待値の設定規則を説明する説明図である。
【図１３】第１実施形態のＥＣＵの作用を表す第１のタイムチャートである。
【図１４】第１実施形態のＥＣＵの作用を表す第２のタイムチャートである。
【図１５】第１実施形態のＥＣＵの作用を表す第３のタイムチャートである。
【図１６】第２実施形態のＭＰＵにおける確認結果チェック及びテスト選択部の処理を表すフローチャートである。
【図１７】図１６中のテストＩＤ選択処理を表すフローチャートである。
【図１８】図１６中の履歴確認結果の解析処理を表すフローチャートである。
【図１９】第３実施形態のＥＣＵの構成を表す構成図である。
【図２０】第３実施形態のテスト回答確認結果の解析処理を表すフローチャートである。
【図２１】第３実施形態の通常モード時用のテストＩＤ選択処理を表すフローチャートである。
【図２２】第３実施形態のフェイルセーフモード時用のテストＩＤ選択処理を表すフローチャートである。
【図２３】第３実施形態のＭＰＵにおけるテスト結果管理部の処理を表すフローチャートである。
【図２４】第３実施形態のＭＰＵにおけるテスト回答の作成規則、及び監視ＩＣにおける正誤判定用期待値の設定規則を説明する説明図である。
【符号の説明】
【０１９１】
１…ＥＣＵ（電子制御装置）、３…ＭＰＵ（マイコン）、３ａ…確認結果チェック及びテスト選択部、３ｂ…テスト結果管理部、５…監視ＩＣ、５ａ，５ｂ…テスト回答確認部、５ｃ…オア回路
【図１】
2008226043.tif 000003
【図２】
2008226043.tif 000004
【図３】
2008226043.tif 000005
【図４】
2008226043.tif 000006
【図５】
2008226043.tif 000007
【図６】
2008226043.tif 000008
【図７】
2008226043.tif 000009
【図８】
2008226043.tif 000010
【図９】
2008226043.tif 000011
【図１０】
2008226043.tif 000012
【図１１】
2008226043.tif 000013
【図１２】
2008226043.tif 000014
【図１３】
2008226043.tif 000015
【図１４】
2008226043.tif 000016
【図１５】
2008226043.tif 000017
【図１６】
2008226043.tif 000018
【図１７】
2008226043.tif 000019
【図１８】
2008226043.tif 000020
【図１９】
2008226043.tif 000021
【図２０】
2008226043.tif 000022
【図２１】
2008226043.tif 000023
【図２２】
2008226043.tif 000024
【図２３】
2008226043.tif 000025
【図２４】
2008226043.tif 000026