(57)【要約】      （修正有）【課題】サブＣＰＵを変更することなく、診断対象モジュールの特性に応じた機能診断の細分化、高次化、機能拡張などに対応する。【解決手段】メインＣＰＵ１００の第１診断対象モジュール１０６ａは、サブＣＰＵ２００からの例題を演算する。診断対象モジュール用例題＆回答テーブル１０４は、サブＣＰＵ側からの例題出力をトリガーとして独自の例題を第２診断対象モジュール１０６ｂに出力する。照合部１０５は、第２診断対象モジュールの回答データとテーブル１０４から読み出した期待値とを照合した結果を回答設定部１０３に出力し、照合部１０５での照合結果が不一致であれば、第１診断対象モジュールの回答とは異なる回答をサブＣＰＵに出力し、照合結果が一致であれば、第１診断対象モジュールの回答をサブＣＰＵに出力する。サブＣＰＵは、メインＣＰＵから送信された回答データと、例題＆回答テーブル２０４から読み出した期待値とを照合する。【選択図】図１
2014215656.tif 000002
【特許請求の範囲】
【請求項１】
制御ユニットと、前記制御ユニットに例題を出力し、前記制御ユニットからの回答に基づいて前記制御ユニットの演算機能を監視する監視ユニットと、を備えた車両用電子制御装置であって、
前記制御ユニットは、前記監視ユニットから例題が出力されたときに独自の例題及び当該例題の回答の期待値を出力する変換部を備える、車両用電子制御装置。
【請求項２】
前記制御ユニットは、前記変換部が出力した例題を演算して得た回答と前記変換部が出力した期待値とを照合する照合部を備える、請求項１記載の車両用電子制御装置。
【請求項３】
前記制御ユニットは、前記照合部で照合結果が不一致である場合に、前記監視ユニットからの例題の回答の期待値とは異なる回答を前記監視ユニットに出力する回答設定部を備える、請求項２記載の車両用電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御ユニットと、例題演算方式で制御ユニットの演算機能を監視する監視ユニットと、を備えた車両用電子制御装置に関する。
【背景技術】
【０００２】
特許文献１には、例題演算方式による監視用サブＣＰＵが、メインＣＰＵ上の特定のＣＰＵコアの診断を行い、前記特定のＣＰＵコアの正常判定がなされると、前記特定のＣＰＵコアの例題出力部によりメインＣＰＵ上の各ＣＰＵコアに例題データを順次送信する、電子制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１２８６２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、従来の診断方法では、各診断対象モジュール（各ＣＰＵコア）において同じ例題演算を行わせるため、診断機能が限定されてしまい、診断対象モジュールの特性に応じた機能診断の細分化、高次化、機能拡張に対応できないという問題があった。
一方、製品コストを抑えるため、例題演算方式で使用される監視ユニットとしてのマイコン（サブＣＰＵ）には、機能が限定されたマイコンが使用されることが多く、係る監視ユニットでは、例題、回答の組み合わせを変更、拡張することは困難であるという問題があった。
【０００５】
本発明は上記問題点に鑑みなされたものであり、監視ユニットを変更することなく、診断対象モジュールの特性に応じた機能診断の細分化、高次化、機能拡張などに対応できる、車両用電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
そのため、本願発明に係る車両用電子制御装置は、制御ユニットと、前記制御ユニットに例題を出力し、前記制御ユニットからの回答に基づいて前記制御ユニットの演算機能を監視する監視ユニットと、を備えた車両用電子制御装置であって、前記制御ユニットは、前記監視ユニットから例題が出力されたときに独自の例題及び当該例題の回答の期待値を出力する変換部を備えるようにした。
【発明の効果】
【０００７】
上記発明によると、監視ユニットにおける例題の出力機能を変更、拡張することなく、制御ユニットにおいて変換部が独自の例題を出力するので、機能が限定された監視ユニットを用いつつ、診断対象モジュールの特性に応じた機能診断の細分化、高次化、機能拡張に対応することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の第１実施形態の車両用電子制御装置の概略構成を示す図である。
【図２】本発明の第２実施形態の車両用電子制御装置の概略構成を示す図である。
【図３】本発明の第３実施形態の車両用電子制御装置の概略構成を示す図である。
【図４】本発明の第４実施形態の車両用電子制御装置の概略構成を示す図である。
【図５】本発明の第５実施形態の車両用電子制御装置の概略構成を示す図である。
【図６】本発明の第６実施形態の車両用電子制御装置の概略構成を示す図である。
【図７】本発明の第７実施形態の車両用電子制御装置の概略構成を示す図である。
【発明を実施するための形態】
【０００９】
以下に本発明の実施の形態を説明する。
本発明を具体化した第１の実施形態を、図１を用いて説明する。
図１に示した車両用電子制御装置１は、車載エンジンなどの制御を行うメインＣＰＵ（制御ユニット、制御手段）１００と、メインＣＰＵ１００の演算機能を監視するサブＣＰＵ（監視ユニット、監視手段）２００とを含んでいる。
なお、本願においては、ＣＰＵ、プロセッサ、マイクロプロセッサ、ＭＰＵなどは同義であり、上記のＣＰＵを、プロセッサ、マイクロプロセッサ、ＭＰＵなどに読み替えることができるものとする。
【００１０】
サブＣＰＵ２００は、メインＣＰＵ１００に例題を出題し、メインＣＰＵ１００からの例題の回答に基づいてメインＣＰＵ１００の演算機能を監視するユニットであり、サブＣＰＵ２００は、例題送信部２０１、回答受信部２０２、診断部（回答判定部、照合部）２０３、例題＆回答テーブル２０４を有する。
例題＆回答テーブル２０４は、メインＣＰＵ１００に出題する例題と、当該例題の回答の期待値とを対として記憶するものであり、例えば、サブＣＰＵ２００が備えるマスクＲＯＭなどの書き換え不能の不揮発性記憶領域に格納されている。
【００１１】
例題送信部２０１は、例題＆回答テーブル２０４から読み出した例題を、メインＣＰＵ１００に送信する。
回答受信部２０２は、例題送信部２０１からの例題出力に応じてメインＣＰＵ１００が出力する回答データを受け取って診断部２０３に出力する。
【００１２】
診断部２０３は、メインＣＰＵ１００に送信した例題の回答の期待値を例題＆回答テーブル２０４から読み出し、この期待値とメインＣＰＵ１００側から受け取った回答データ（演算結果）とを照合する。
ここで、メインＣＰＵ１００は、演算機能が正常であれば、例題に対して予め決められた演算処理を実施することで期待値に一致する回答データを出力し、メインＣＰＵ１００の演算機能に何らかの異常が発生すると、例題＆回答テーブル２０４から読み出した期待値と、メインＣＰＵ１００側から受け取った回答データとが一致しないようになる。
【００１３】
そこで、診断部２０３は、例題＆回答テーブル２０４から読み出した期待値と、メインＣＰＵ１００側から受け取った回答データとを照合することで、メインＣＰＵ１００の演算機能の監視を行う。
つまり、例題＆回答テーブル２０４から読み出した期待値と、メインＣＰＵ１００側から受け取った回答データとの照合結果（一致／不一致）は、メインＣＰＵ１００の演算機能が正常であるか異常であるかを示し、診断部２０３は、メインＣＰＵ１００の演算機能が正常であるか異常であるかに応じてフェイルセーフ信号（ＦＳ信号）の出力を切り替える機能を有している。
【００１４】
具体的には、診断部２０３は、例題＆回答テーブル２０４から読み出した期待値と、メインＣＰＵ１００側から受け取った回答データとが一致する場合、つまり、メインＣＰＵ１００の演算機能が正常である場合にはフェイルセーフ処理を行わず、両者が不一致である場合、つまり、メインＣＰＵ１００の演算機能が何らかの異常である場合には、メインＣＰＵ１００によって制御対象が異常に制御されることを抑制するためのフェイルセーフ処理を実施する。
また、診断部２０３は、例題を出力してから所定時間内にメインＣＰＵ１００からの回答データの送信がない場合、照合結果は不一致であると判定し、メインＣＰＵ１００によって制御対象が異常に制御されることを抑制するためのフェイルセーフ処理を実施する。
【００１５】
フェイルセーフ処理として、診断部２０３は、例えば、メインＣＰＵ１００がエンジンの電制スロットル弁３００を制御する機能を有する場合、電制スロットル弁３００を安全サイドに制御する。
電制スロットル弁３００は、例えば、リターンスプリングによって閉弁方向に付勢されるエンジンのスロットルバルブを、スロットルモータが発生するトルクによって開弁させるデバイスであり、メインＣＰＵ１００は、スロットルモータへの通電を制御することで、スロットルバルブの開度を制御する。
【００１６】
そして、診断部２０３は、フェイルセーフ処理としてスロットルモータへの通電を遮断する（例えば、スロットルモータリレーをオフする）。
これにより、スロットルバルブは、リターンスプリングの付勢力によって全閉位置にまで閉じて全閉位置を保持するから、エンジンの発生トルク、つまり、車両の駆動トルクの増大が制限され、車両が安全サイドに導かれる。
【００１７】
一方、メインＣＰＵ１００は、例えば車載エンジンの電制スロットル弁３００などを制御する制御ユニットであり、送受信部１０１、フェイルセーフ処理部１０２、回答設定部１０３、診断対象モジュール用例題＆回答テーブル（変換部）１０４、照合部１０５、第１診断対象モジュール１０６ａ、第２診断対象モジュール１０６ｂを有している。
送受信部１０１は、サブＣＰＵ２００の例題送信部２０１から出力された例題を受信する例題受信部１０１ａと、サブＣＰＵ２００の回答受信部２０２に回答データを送信する回答送信部１０１ｂとを有している。
【００１８】
診断対象モジュール１０６ａ、１０６ｂは、ＣＰＵコア、マイクロプロセッサ、演算装置ＡＬＵなどの処理装置であって、入力した例題を演算し、例題の演算結果としての回答データを出力する例題演算部１０７ａ、１０７ｂを有する。
ここで、第１診断対象モジュール１０６ａは、例題受信部１０１ａが受け取ったサブＣＰＵ２００からの例題を入力し、入力した例題に基づき所定の演算を行った結果としての回答データを回答設定部１０３に出力する。
【００１９】
診断対象モジュール用例題＆回答テーブル１０４は、第２診断対象モジュール１０６ｂに出題する例題と、当該例題の回答の期待値とを対として記憶するものである。
診断対象モジュール用例題＆回答テーブル１０４は、例えば、ＥＥＰＲＯＭなどの書き換え可能な不揮発記憶領域に格納されており、外部ツールにより診断対象モジュール用例題＆回答テーブル１０４の例題及び期待値のデータの一部又は全てを書き換えることが可能になっている。
【００２０】
そして、診断対象モジュール用例題＆回答テーブル１０４は、サブＣＰＵ２００からの例題出力をトリガーとして、第２診断対象モジュール１０６ｂに独自の例題を出力し、また、当該例題に対応する回答の期待値を照合部１０５に出力する。
つまり、診断対象モジュール用例題＆回答テーブル１０４は、サブＣＰＵ２００から例題が出力されたときに、サブＣＰＵ２００が出力する例題とは異なる例題を出力する機能を有する変換部である。
【００２１】
診断対象モジュール用例題＆回答テーブル１０４は、例えば、サブＣＰＵ２００から例題が出力される毎に検索に用いるインデックスを更新し、更新したインデックスに対応して記憶されている例題と期待値とを対とするデータを読み出し、読み出した例題を第２診断対象モジュール１０６ｂに出力し、読み出した期待値を照合部１０５に出力する。
なお、例題＆回答テーブル２０４からの例題出力をトリガーとする、診断対象モジュール用例題＆回答テーブル１０４からの例題出力の特性は任意に設定できる。
【００２２】
例えば、サブＣＰＵ２００から１つの例題出力があったときに、診断対象モジュール用例題＆回答テーブル１０４に設定された例題の全てが順次出力されるように、診断対象モジュール用例題＆回答テーブル１０４の変換特性を設定することができる。
また、サブＣＰＵ２００から１つの例題出力がある毎に、複数の例題が診断対象モジュール用例題＆回答テーブル１０４から順次出力されるように診断対象モジュール用例題＆回答テーブル１０４の変換特性を設定することができる。
【００２３】
第２診断対象モジュール１０６ｂが出力する回答データ、つまり、診断対象モジュール用例題＆回答テーブル１０４の例題に基づき第２診断対象モジュール１０６ｂが所定の演算を行った結果は、照合部１０５に入力される。
照合部１０５は、第２診断対象モジュール１０６ｂからの回答データと、診断対象モジュール用例題＆回答テーブル１０４から読み出した期待値とを照合する。
【００２４】
そして、照合部１０５は、第２診断対象モジュール１０６ｂからの回答データと、診断対象モジュール用例題＆回答テーブル１０４から読み出した期待値との一致、不一致を示す信号（ＯＫ／ＮＧ信号）を、回答設定部１０３に出力する。
ここで、第２診断対象モジュール１０６ｂの演算機能が正常であれば、第２診断対象モジュール１０６ｂは、期待値に一致する回答データを出力し、演算機能に異常が生じることで、期待値とは異なる回答データを出力するようになる。
【００２５】
つまり、照合部１０５における一致の判定は、第２診断対象モジュール１０６ｂの演算機能が正常であることを示し、照合部１０５における不一致の判定は、第２診断対象モジュール１０６ｂの演算機能が異常であることを示すことになる。
回答設定部１０３は、照合部１０５における照合結果を示す信号、換言すれば、第２診断対象モジュール１０６ｂの演算機能が正常であるか異常であるかを示す信号を入力すると共に、第１診断対象モジュール１０６ａにおいてサブＣＰＵ２００からの例題を演算した結果としての回答データを入力する。
【００２６】
そして、回答設定部１０３は、照合部１０５における照合結果が一致である場合、つまり、第２診断対象モジュール１０６ｂの演算機能が正常である場合には、第１診断対象モジュール１０６ａの回答データをそのまま回答送信部１０１ｂを介してサブＣＰＵ２００に出力する。
一方、回答設定部１０３は、照合部１０５における照合結果が不一致である場合、つまり、第２診断対象モジュール１０６ｂの演算機能が異常である場合には、第１診断対象モジュール１０６ａの回答データとは異なる回答データをサブＣＰＵ２００に出力する。
【００２７】
ここで、第１診断対象モジュール１０６ａ及び第２診断対象モジュール１０６ｂの演算機能が共に正常であれば、回答設定部１０３がサブＣＰＵ２００に向けて出力する第１診断対象モジュール１０６ａの回答データは、例題＆回答テーブル２０４から読み出される期待値と一致することになる。
この場合、診断部２０３は、メインＣＰＵ１００からの回答データが期待値と一致すること、つまり、メインＣＰＵ１００の演算機能が正常であることを検出して、フェイルセーフ処理を実行しない。
【００２８】
一方、第１診断対象モジュール１０６ａの演算機能が正常で、第２診断対象モジュール１０６ｂの演算機能が異常であれば、第１診断対象モジュール１０６ａは例題＆回答テーブル２０４から読み出される期待値と一致する回答データを出力するものの、回答設定部１０３からは第１診断対象モジュール１０６ａの回答データとは異なるデータ、つまり、例題＆回答テーブル２０４から読み出される期待値とは異なるデータが出力される。
従って、診断部２０３は、メインＣＰＵ１００からの回答データが期待値と一致しないこと、つまり、メインＣＰＵ１００の演算機能が異常であることを検出して、フェイルセーフ処理を実行する。
【００２９】
更に、第１診断対象モジュール１０６ａの演算機能が異常で、第２診断対象モジュール１０６ｂの演算機能が正常であれば、第１診断対象モジュール１０６ａは例題＆回答テーブル２０４から読み出される期待値と異なる回答データを出力し、この第１診断対象モジュール１０６ａの回答データがそのままサブＣＰＵ２００の診断部２０３に出力される。
従って、診断部２０３は、メインＣＰＵ１００からの回答データが期待値と一致しないこと、つまり、メインＣＰＵ１００の演算機能が異常であることを検出して、フェイルセーフ処理を実行する。
【００３０】
また、第１診断対象モジュール１０６ａの演算機能が異常で、第２診断対象モジュール１０６ｂの演算機能も異常であれば、第１診断対象モジュール１０６ａは例題＆回答テーブル２０４から読み出される期待値と異なる回答データを出力し、更に、第１診断対象モジュール１０６ａの回答データと異なる回答データがサブＣＰＵ２００の診断部２０３に出力される。
従って、診断部２０３は、メインＣＰＵ１００からの回答データが期待値と一致しないこと、つまり、メインＣＰＵ１００の演算機能が異常であることを検出して、フェイルセーフ処理を実行する。
【００３１】
つまり、第１診断対象モジュール１０６ａと第２診断対象モジュール１０６ｂとの少なくとも一方に演算機能の異常が生じると、サブＣＰＵ２００の診断部２０３は、メインＣＰＵ１００の演算機能の異常を検出してフェイルセーフ処理を実施する。
また、照合部１０５での照合結果は、フェイルセーフ要求信号としてフェイルセーフ処理部１０２に出力され、フェイルセーフ処理部１０２は、照合部１０５での照合結果が不一致であって第２診断対象モジュール１０６ｂの演算機能が異常である場合に、フェイルセーフ処理を実行する。
【００３２】
フェイルセーフ処理部１０２は、制御対象のデバイスについてフェイルセーフ処理を実施する制御部を備えており、図１には、電制スロットル弁３００を制御する電制スロットル制御部１０２ａを例示してある。
そして、第２診断対象モジュール１０６ｂの演算機能に異常が発生していて、照合部１０５が、フェイルセーフ処理部１０２に対して不一致の信号（異常判定信号、フェイルセーフ要求信号）を出力すると、電制スロットル制御部１０２ａは、フェイルセーフ処理として、スロットルモータへの通電を遮断する（例えば、スロットルモータリレーをオフする）ことで、リターンスプリングの付勢力によってスロットルバルブを全閉位置にまで閉じ、全閉状態を保持させる処理を実行する。
【００３３】
つまり、第２診断対象モジュール１０６ｂの演算機能に異常が発生すると、メインＣＰＵ１００とサブＣＰＵ２００との双方でフェイルセーフ処理を実施し、メインＣＰＵ１００とサブＣＰＵ２００との少なくとも一方でフェイルセーフ処理指令信号（モータ通電遮断信号）が出力されれば、スロットルモータへの通電が遮断される。
なお、フェイルセーフ処理部１０２には、照合部１０５における照合結果（第２診断対象モジュール１０６ｂの異常の有無）を示す信号が入力されると共に、他の診断結果を示す信号が入力され、複数の診断結果信号のうち少なくとも１つが異常を示す場合に、フェイルセーフ処理を実施する。ここで、他の診断結果として、電制スロットル弁３００に関連するものを例示すると、スロットルモータ、スロットルモータの駆動回路、スロットルの開度を検出するセンサなどの異常の有無である。
【００３４】
また、照合部１０５における照合結果を示す信号（フェイルセーフ要求信号）のフェイルセーフ処理部１０２への出力は、回答設定部１０３が行う構成とすることができる。
ここで、サブＣＰＵ２００側の例題＆回答テーブル２０４とは別に、メインＣＰＵ１００側に設けた診断対象モジュール用例題＆回答テーブル１０４の作用、機能を説明する。
【００３５】
診断対象モジュール用例題＆回答テーブル１０４には、例題＆回答テーブル２０４における例題とは異なる例題を設定することが可能であり、かつ、例題＆回答テーブル２０４における例題数よりも数の多い例題を設定することができる。
これにより、例題＆回答テーブル２０４における例題とは異なる独自の例題を第２診断対象モジュール１０６ｂで演算させ、また、例題＆回答テーブル２０４における例題数よりも数の多い例題を第２診断対象モジュール１０６ｂで演算させることができる。
【００３６】
従って、サブＣＰＵ２００側の例題＆回答テーブル２０４（換言すれば、サブＣＰＵ２００）を変更することなく、第２診断対象モジュール１０６ｂの演算機能の診断に最適な例題を第２診断対象モジュール１０６ｂで演算させ、係る演算結果から第２診断対象モジュール１０６ｂの演算機能を診断できる。
つまり、サブＣＰＵ２００側の例題＆回答テーブル２０４が簡易かつ固定されたものであって、第１診断対象モジュール１０６ａの診断に適当であるものの、第２診断対象モジュール１０６ａの診断には不適である場合に、診断対象モジュール用例題＆回答テーブル１０４の設定によって、第２診断対象モジュール１０６ｂの機能診断の細分化、高次化、機能拡張に対応して、第２診断対象モジュール１０６ｂの演算機能を適切に診断できる例題の設定を行える。
【００３７】
また、診断対象モジュール用例題＆回答テーブル１０４を外部から書き換えることができるようにすることで、例題及び期待値の変更を容易に行え、第２診断対象モジュール１０６ｂの特性変更や診断機能の変更に伴う例題の変更要求に柔軟に対応することができる。
また、図１に示したように、診断対象モジュール用例題＆回答テーブル１０４をメインＣＰＵ１００側に備える場合であっても、診断対象モジュール用例題＆回答テーブル１０４を備えない場合と同様に、サブＣＰＵ２００側から例題＆回答テーブル２０４の例題はメインＣＰＵ１００に出力され、例題＆回答テーブル２０４の例題に対応する演算結果がメインＣＰＵ１００側からサブＣＰＵ２００に出力される。
【００３８】
従って、サブＣＰＵ２００、及び、サブＣＰＵ２００とメインＣＰＵ１００との間のインタフェースを変更することなく、例題＆回答テーブル２０４とは異なる独自の例題を第２診断対象モジュール１０６ｂで演算させ、また、第１及び第２診断対象モジュール１０６ａ、１０６ｂの演算機能の診断をサブＣＰＵ２００側で行わせることができる。
【００３９】
ところで、図１の第１の実施形態は、診断対象モジュール用例題＆回答テーブル１０４が出力する例題を演算する診断対象モジュール１０６を１つとする例であるが、診断対象モジュール用例題＆回答テーブル１０４が出力する例題を複数の診断対象モジュール１０６で演算させることができる。
図２は、本発明を具体化した第２の実施形態であって、診断対象モジュール用例題＆回答テーブル１０４からの例題を複数の診断対象モジュール１０６で演算させる構成とした車両用電子制御装置の一例を示す。尚、図２において、図１と同一要素には同一符号を付してあり、図１と同一の構成についての説明は省略する。
【００４０】
図２に示す第２の実施形態において、メインＣＰＵ１００は、サブＣＰＵ２００からの例題を演算する第１診断モジュール１０６ａとは別に、１つの診断対象モジュール用例題＆回答テーブル１０４を共用する複数の診断対象モジュール１０６ｂ〜１０６ｄを備えた例を示す。
なお、図２には、メインＣＰＵ１００が診断対象モジュール１０６を４つ備え、そのうちの３つが診断対象モジュール用例題＆回答テーブル１０４からの例題を演算する例を示したが、診断対象モジュール用例題＆回答テーブル１０４からの例題を演算する診断対象モジュール１０６として２つ乃至４つ以上の診断対象モジュール１０６を備えることができる。
【００４１】
図２に示す第２の実施形態において、メインＣＰＵ１００は、診断対象モジュール１０６として、それぞれが例題演算部１０７ａ〜１０７ｄを備える４つの診断対象モジュール１０６ａ〜１０６ｄを備える。
第１診断対象モジュール１０６ａは、サブＣＰＵ２００からの例題（例題＆回答テーブル２０４の例題）を入力し、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄは、診断対象モジュール用例題＆回答テーブル１０４から出力される例題を入力する。
【００４２】
そして、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄそれぞれでの演算結果（回答データ）は、照合部１０５に出力される。
照合部１０５は、診断対象モジュール用例題＆回答テーブル１０４から出力される期待値と、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄそれぞれでの演算結果とを照合し、照合結果（一致／不一致、正常／異常）を示す信号を回答設定部１０３に出力する。
【００４３】
詳しくは、照合部１０５は、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄのうちの少なくとも１つで期待値とは異なる演算結果（回答データ）を出力した場合に、不一致（演算機能異常）の判定結果を回答設定部１０３に出力し、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄの全てが期待値と一致する演算結果（回答データ）を出力した場合に、一致（演算機能正常）の判定結果を回答設定部１０３に出力する。
そして、回答設定部１０３は、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄの少なくとも１つに演算機能の異常が生じたときに、第１診断対象モジュール１０６ａでの回答とは異なる回答データ（つまり、期待値とは異なる回答データ）を、サブＣＰＵ２００に向けて出力し、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄ全ての演算機能が正常であれば、第１診断対象モジュール１０６ａでの回答をそのままサブＣＰＵ２００に向けて出力する。
【００４４】
これにより、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄの少なくとも１つに演算機能の異常が生じたときに、サブＣＰＵ２００は、メインＣＰＵ１００の演算機能の異常を検出し、フェイルセーフ処理を実施することになり、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄの演算機能が正常であれば、サブＣＰＵ２００は、第１診断対象モジュール１０６ａの演算機能を判定し、その結果に応じてフェイルセーフ処理を実施することになる。
また、フェイルセーフ処理部１０２は、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄの少なくとも１つに演算機能の異常が生じたときにフェイルセーフ処理を実施する。
【００４５】
ここで、例題＆回答テーブル２０４からの例題出力毎に診断対象モジュール用例題＆回答テーブル１０４からの検索に用いるインデックスを順次更新し、診断対象モジュール用例題＆回答テーブル１０４からそのときのインデックスに対応して記憶されている例題を読み出し、読み出した例題を第２〜第４診断対象モジュール１０６ｂ〜１０６ｄそれぞれに並行して出力することで、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄに同じ例題を出力させることができる。
また、診断対象モジュール用例題＆回答テーブル１０４において、インデックス毎に第２〜第４診断対象モジュール１０６ｂ〜１０６ｄのいずれか１つを割り付けておき、そのときのインデックスがどの診断対象モジュール１０６に割り付けられたものであるかに応じて、読み出した例題を出力する診断対象モジュール１０６を指定することで、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄで相互に異なる例題をそれぞれ演算させることもできる。
更に、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄを１つ乃至複数の診断対象モジュール１０６からなるグループに区分し、インデックス毎に複数のグループのいずれか１つを割り付けておき、同じグループに属する診断対象モジュール１０６に対しては同一の例題を出力し、グループ毎に異なる例題を出力させることもできる。
【００４６】
図２に示した第２の実施形態のように、複数の診断対象モジュール１０６ｂ〜１０６ｄに対して共通する１つの診断対象モジュール用例題＆回答テーブル１０４を設けた場合、サブＣＰＵ２００側の例題＆回答テーブル２０４が簡易かつ固定されていても、複数の診断対象モジュール１０６ｂ〜１０６ｄの機能診断に適した例題を診断対象モジュール用例題＆回答テーブル１０４から出力させることができる。
従って、メインＣＰＵ１００の構成が複雑化することを抑制しつつ、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄの機能診断の細分化、高次化、機能拡張に対応でき、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄの演算機能を適切に診断できる。
【００４７】
ところで、診断対象モジュール用例題＆回答テーブル１０４及び照合部１０５の組み合わせを、複数の診断対象モジュール１０６毎にそれぞれ設けることができる。
図３は、本発明を具体化した第３の実施形態であって、複数の診断対象モジュール１０６それぞれに専用の診断対象モジュール用例題＆回答テーブル１０４及び照合部１０５を設けた車両用電子制御装置の一例を示す。
尚、図３において、図１と同一要素には同一符号を付してあり、図１と同一の構成についての説明は省略する。
【００４８】
図３に示した第３の実施形態では、サブＣＰＵ２００からの例題を演算する第１診断対象モジュール１０６ａと共に、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄを備え、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄそれぞれに対応させて、診断対象モジュール用例題＆回答テーブル１０４ａ〜１０４ｃ及び照合部１０５ａ〜１０５ｃを設けてある。
そして、診断対象モジュール用例題＆回答テーブル１０４ａは、サブＣＰＵ２００からの例題出力をトリガーとして第２診断対象モジュール１０６ｂに例題を出力し、診断対象モジュール用例題＆回答テーブル１０４ｂは、サブＣＰＵ２００からの例題出力をトリガーとして第３診断対象モジュール１０６ｃに例題を出力し、診断対象モジュール用例題＆回答テーブル１０４ｃは、サブＣＰＵ２００からの例題出力をトリガーとして第４診断対象モジュール１０６ｄに例題を出力する。
【００４９】
つまり、図３に示した例では、３つの診断対象モジュール１０６ｂ〜１０６ｄと、３つの診断対象モジュール用例題＆回答テーブル１０４ａ〜１０４ｃとを１対１で対応させ、更に、各診断対象モジュール用例題＆回答テーブル１０４ａ〜１０４ｃは、照合部１０５ａ〜１０５ｃをそれぞれ備えている。
ここで、照合部１０５ａには、診断対象モジュール用例題＆回答テーブル１０４ａからの期待値と第２診断対象モジュール１０６ｂでの演算結果（回答データ）とが入力され、照合部１０５ｂには、診断対象モジュール用例題＆回答テーブル１０４ｂからの期待値と第３診断対象モジュール１０６ｃでの演算結果（回答データ）とが入力され、照合部１０５ｃには、診断対象モジュール用例題＆回答テーブル１０４ｃからの期待値と第４診断対象モジュール１０６ｄでの演算結果（回答データ）とが入力される。
【００５０】
そして、照合部１０５ａ〜１０５ｃは、それぞれ期待値と各診断対象モジュール１０６ｂ〜１０６ｄでの演算結果（回答データ）とを照合し、照合結果（一致／不一致、正常／異常）を示す信号を回答設定部１０３にそれぞれ出力する。
回答設定部１０３は、照合部１０５ａ〜１０５ｃの出力のうちの少なくとも１つが不一致（演算機能異常）の判定信号であれば、第１診断対象モジュール１０６ａの回答データとは異なる回答データ（つまり、期待値とは異なる回答データ）をサブＣＰＵ２００に向けて出力する。これにより、サブＣＰＵ２００（診断部２０３）では、メインＣＰＵ１００からの回答データが例題＆回答テーブル２０４の期待値とは異なると判定して、フェイルセーフ処理を実施する。
【００５１】
また、回答設定部１０３は、照合部１０５ａ〜１０５ｃの出力が全て一致（演算機能正常）の判定信号であれば、第１診断対象モジュール１０６ａの回答データをそのままをサブＣＰＵ２００に向けて出力する。これにより、サブＣＰＵ２００（診断部２０３）では、実質的に第１診断対象モジュール１０６ａにおける演算機能の異常の有無を判定することになり、第１診断対象モジュール１０６ａの回答データが例題＆回答テーブル２０４の期待値と異なればフェイルセーフ処理を実施する。
また、フェイルセーフ処理部１０２は、照合部１０５ａ〜１０５ｃの出力のうちの少なくとも１つが不一致（演算機能異常）の判定信号であれば、フェイルセーフ処理を実施する。
【００５２】
図３に示す構成では、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄそれぞれが専用の診断対象モジュール用例題＆回答テーブル１０４ａ〜１０４ｃからの例題を入力して演算するので、サブＣＰＵ２００からの同一の例題をトリガーとして、複数の診断対象モジュール１０６ｂ〜１０６ｄ毎に異なる例題を演算させ、また、複数の診断対象モジュール１０６ｂ〜１０６ｄ毎に異なる数の例題を演算させることが容易である。
これにより、例題＆回答テーブル２０４が固定されたサブＣＰＵ２００を用いつつ、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄそれぞれの特性に合わせた例題設定（例題の内容及び数の設定）を柔軟に行え、第２〜第４診断対象モジュール１０６ｂ〜１０６ｄの演算機能の診断を適切に行わせることができる。
【００５３】
なお、図３に示した例では、診断対象モジュール用例題＆回答テーブル１０４と対をなして設けられる診断対象モジュール１０６の数を３つとしたが、２つ乃至４つ以上とすることができる。
また、メインＣＰＵ１００が、共通の診断対象モジュール用例題＆回答テーブル１０４からの例題を演算する複数の診断対象モジュールと、専用の診断対象モジュール用例題＆回答テーブル１０４からの例題を演算する１つ乃至複数の診断対象モジュールとを備える構成とすることができる。
【００５４】
ところで、前述の第１〜第３の実施形態において、メインＣＰＵ１００は、第１診断対象モジュール１０６ａの回答データ又は当該回答データとは異なる回答データのいずれかを回答データとしてサブＣＰＵ２００に出力するが、メインＣＰＵ１００が、例題＆回答テーブル２０４における例題の回答の期待値をサブＣＰＵ２００側から入力し、係る期待値又は当該期待値とは異なる回答データをサブＣＰＵ２００に出力することもできる。
【００５５】
以下では、メインＣＰＵ１００がサブＣＰＵから期待値のデータを入力する構成とした実施形態（第４〜第７の実施形態）を説明する。
なお、第４〜第７の実施形態を示す図４〜図７において、図１と同一要素には同一符号を付してあり、重複する説明については簡略化してある。
【００５６】
本発明を具体化した第４の実施形態を、図４を用いて説明する。
図４に示した車両用電子制御装置１は、車載エンジンなどの制御を行うメインＣＰＵ１００（制御ユニット、制御手段）と、メインＣＰＵ１００の演算機能を例題演算方式で監視するサブＣＰＵ２００（監視ユニット、監視手段）とを含んでいる。
【００５７】
サブＣＰＵ２００は、例題＆期待値送信部２０５、回答受信部２０２、診断部（回答判定部、診断ユニット）２０３、例題＆回答テーブル２０４を有する。
第４実施形態のサブＣＰＵ２００は、例題送信部２０１に代えて例題＆期待値送信部２０５を備える点が第１〜第３実施形態のサブＣＰＵ２００と異なる。
【００５８】
例題＆期待値送信部２０５は、例題＆回答テーブル２０４から例題及び期待値を読み出し、例題及び当該例題に対応する期待値を対として、メインＣＰＵ１００側に送信する。
回答受信部２０２は、例題＆期待値送信部２０５から出力した例題に基づきメインＣＰＵ１００（後述する診断対象モジュール１０６）で演算した結果としての回答データを、メインＣＰＵ１００側から受け取り、診断部２０３に出力する。
【００５９】
診断部２０３は、例題＆回答テーブル２０４から読み出した期待値と、メインＣＰＵ１００側から受け取った回答データ（演算結果）とを照合する。
そして、診断部２０３は、例題＆回答テーブル２０４から読み出した期待値と、メインＣＰＵ１００側から受け取った回答データとが一致する場合、つまり、メインＣＰＵ１００（後述する診断対象モジュール１０６）の演算機能が正常である場合にはフェイルセーフ処理を行わず、両者が不一致である場合、つまり、メインＣＰＵ１００の演算機能が異常である場合には、メインＣＰＵ１００によって制御対象が異常に制御されることを抑制するためのフェイルセーフ処理を実施する。
また、診断部２０３は、例題を出力してから所定時間内にメインＣＰＵ１００からの回答データの送信がない場合、照合結果は不一致であると判定し、メインＣＰＵ１００によって制御対象が異常に制御されることを抑制するためのフェイルセーフ処理を実施する。
【００６０】
フェイルセーフ処理として、診断部２０３は、例えば、メインＣＰＵ１００がエンジンの電制スロットル弁３００を制御する機能を有する場合、電制スロットル弁３００を安全サイドに制御する。
一方、メインＣＰＵ１００は、例えば車載エンジンの電制スロットル弁３００を制御する制御ユニットであり、送受信部１０１、フェイルセーフ処理部１０２、回答設定部１０９、診断対象モジュール用例題＆回答テーブル１０４、照合部１０５、診断対象モジュール１０６を有している。
【００６１】
送受信部１０１は、サブＣＰＵ２００の例題送信部２０１から出力された例題及び期待値を受信する例題＆期待値受信部１０１ｃと、サブＣＰＵ２００の回答受信部２０２に対して例題の演算結果（回答データ）を送信する回答送信部１０１ｂとを有している。
回答設定部１０９は、例題＆期待値受信部１０１ｃが受け取ったサブＣＰＵ２００からの期待値と、照合部１０５の出力とを入力し、サブＣＰＵ２００に送信する回答データを回答送信部１０１ｂに出力する。
【００６２】
また、回答設定部１０９は、診断対象モジュール１０６の演算機能に異常が発生した場合、フェイルセーフ処理部１０２に対して所定のフェイルセーフ処理の実行を指令する信号（フェイルセーフ処理指令信号）をフェイルセーフ処理部１０２に出力し、フェイルセーフ処理部１０２は、例えば、電制スロットル制御部１０２ａによってスロットルバルブを全閉位置にまで閉じる。
第４実施形態のメインＣＰＵ１００の送受信部１０１は、例題受信部１０１ａに代えて例題＆期待値受信部１０１ｃを備えた点が、第１〜第３実施形態の送受信部１０１と異なり、また、第４実施形態のメインＣＰＵ１００の回答設定部１０９は、サブＣＰＵ２００から受け取った期待値を入力する点が、第１〜第３実施形態の回答設定部１０３と異なる。
【００６３】
診断対象モジュール用例題＆回答テーブル１０４は、診断対象モジュール１０６に出題する例題と、当該例題に対応する回答の期待値とを対として記憶するものであり、サブＣＰＵ２００からの例題出力をトリガーとして診断対象モジュール１０６に独自の例題を出力する例題の変換機能を有する変換部である。また、診断対象モジュール用例題＆回答テーブル１０４は、例題に対応する回答の期待値を照合部１０５に出力する。
診断対象モジュール用例題＆回答テーブル１０４は、例えば、サブＣＰＵ２００から例題が出力される毎に検索に用いるインデックスを更新し、更新したインデックスに対応して記憶されている例題と期待値とを対とするデータを読み出し、読み出した例題を診断対象モジュール１０６に出力し、読み出した期待値を照合部１０５に出力する。
【００６４】
診断対象モジュール１０６は、診断対象モジュール用例題＆回答テーブル１０４からの例題を演算する例題演算部１０７を有し、例題演算部１０７は、入力した例題に基づき所定の演算処理を実施し、その演算結果を回答データとして照合部１０５に出力する。
照合部１０５は、診断対象モジュール用例題＆回答テーブル１０４から回答の期待値を入力し、この期待値と診断対象モジュール１０６での演算結果（回答データ）とを照合し、両者が一致しているか否かを示す信号（一致／不一致信号、ＯＫ／ＮＧ信号）を回答設定部１０９に出力する。
【００６５】
ここで、診断対象モジュール１０６の演算機能が正常であれば、期待値と診断対象モジュール１０６での演算結果（回答データ）とが一致し、診断対象モジュール１０６の演算機能に異常が発生すると、期待値と診断対象モジュール１０６での演算結果（回答データ）とが一致しなくなる。
そこで、回答設定部１０９は、診断対象モジュール１０６の回答データと期待値とが一致したこと（演算機能が正常であること）を示す信号を照合部１０５から受信した場合、例題＆期待値受信部１０１ｃが受け取ったサブＣＰＵ２００からの期待値をそのまま診断対象モジュール１０６（メインＣＰＵ１００）の回答データとしてサブＣＰＵ２００側に返送し、また、診断対象モジュール１０６の演算機能が正常であることを示す信号（フェイルセーフ処理が不要であることを示す信号）を、フェイルセーフ処理部１０２（電制スロットル制御部１０２ａ）に出力する。
【００６６】
この場合、サブＣＰＵ２００の回答受信部２０２を介して診断部２０３に入力される回答データは、例題＆回答テーブル２０４が出力する期待値と一致することになり、診断部２０３は、メインＣＰＵ１００（診断対象モジュール１０６）の演算機能が正常であるとの判定を行うことになり、サブＣＰＵ２００及びメインＣＰＵ１００においてフェイルセーフ処理は実行されない。
一方、回答設定部１０９は、診断対象モジュール１０６の回答データと期待値とが不一致であったこと（演算機能が異常であること）を示す信号を照合部１０５から受信した場合、例題＆期待値受信部１０１ｃが受け取ったサブＣＰＵ２００からの期待値とは異なる回答データを診断対象モジュール１０６（メインＣＰＵ１００）の回答データとして出力し、また、診断対象モジュール１０６の演算機能に異常が発生していることを示す信号（フェイルセーフ処理を指令する信号）を、フェイルセーフ処理部１０２（電制スロットル制御部１０２ａ）に出力する。
【００６７】
この場合、サブＣＰＵ２００の回答受信部２０２を介して診断部２０３に入力される回答データは、例題＆回答テーブル２０４が出力する期待値と一致しないことになり、診断部２０３は、メインＣＰＵ１００（診断対象モジュール１０６）の演算機能に異常が発生しているとの判定を行うことになり、結果、サブＣＰＵ２００及びメインＣＰＵ１００の双方においてフェイルセーフ処理が実行される。
このように、メインＣＰＵ１００では、照合部１０５において診断対象モジュール１０６の演算機能の異常の有無が診断され、回答設定部１０９は、照合部１０５における照合結果に応じて期待値に一致する回答データと期待値に一致しない回答データとのいずれかを選択して出力する機能を有している。
【００６８】
ここで、サブＣＰＵ２００側の例題＆回答テーブル２０４とは別に、メインＣＰＵ１００側に設けた診断対象モジュール用例題＆回答テーブル１０４の作用、機能を説明する。
診断対象モジュール用例題＆回答テーブル１０４には、例題＆回答テーブル２０４における例題とは異なる例題を設定することが可能であり、かつ、例題＆回答テーブル２０４における例題数よりも数の多い例題を設定することができる。
【００６９】
これにより、例題＆回答テーブル２０４における例題とは異なる独自の例題を診断対象モジュール１０６で演算させ、また、例題＆回答テーブル２０４における例題数よりも数の多い例題を診断対象モジュール１０６で演算させることができる。
従って、サブＣＰＵ２００側の例題＆回答テーブル２０４（換言すれば、サブＣＰＵ２００）を変更することなく、診断対象モジュール１０６の演算機能の診断に最適な例題を診断対象モジュール用例題＆回答テーブル１０４に設定できる。つまり、サブＣＰＵ２００側の例題＆回答テーブル２０４が簡易かつ固定されたものであっても、診断対象モジュール用例題＆回答テーブル１０４の設定によって、診断対象モジュール１０６の機能診断の細分化、高次化、機能拡張に対応して、診断対象モジュール１０６の演算機能を適切に診断できる例題の設定を行える。
【００７０】
また、診断対象モジュール用例題＆回答テーブル１０４を外部から書き換えることができるようにすることで、例題及び期待値の変更を容易に行え、診断対象モジュール１０６の特性変更や診断機能の変更に伴う例題の変更に柔軟に対応することができる。
また、図４に示したように、診断対象モジュール用例題＆回答テーブル１０４をメインＣＰＵ１００側に備える場合であっても、診断対象モジュール用例題＆回答テーブル１０４を備えない場合と同様に、サブＣＰＵ２００側から例題＆回答テーブル２０４の例題はメインＣＰＵ１００に出力され、例題＆回答テーブル２０４の例題に対応する演算結果はメインＣＰＵ１００側からサブＣＰＵ２００に出力される。
【００７１】
従って、サブＣＰＵ２００、及び、サブＣＰＵ２００とメインＣＰＵ１００との間のインタフェースを大きく変更することなく、例題＆回答テーブル２０４とは独自の例題を診断対象モジュール１０６に出力して、診断対象モジュール１０６の演算機能の診断をサブＣＰＵ２００側で行わせることができる。
更に、第１〜第３実施形態では、サブＣＰＵ２００の例題＆回答テーブル２０４の例題を演算する診断対象モジュール１０６を、メインＣＰＵ１００側に設定することが要求されるが、上記の第４実施形態では、サブＣＰＵ２００の例題＆回答テーブル２０４の例題を演算する診断対象モジュール１０６をメインＣＰＵ１００側に設けなくても、診断対象モジュール１０６の演算機能の正常、異常に応じて、例題＆回答テーブル２０４における期待値又は当該期待値と異なる回答を、サブＣＰＵ２００に出力することが可能である。
【００７２】
ところで、図４の第４の実施形態は、メインＣＰＵ１００に含まれる診断対象モジュール１０６が１つの例であるが、例えば、メインＣＰＵ１００が複数のＣＰＵコアを備えるマルチコアであって複数のＣＰＵコアそれぞれについて演算機能の診断を行わせる場合のように、メインＣＰＵ１００が複数の診断対象モジュール１０６を含む場合にも、診断対象モジュール用例題＆回答テーブル１０４の例題を複数の診断対象モジュール１０６全てに出力させることができる。
図５は、本発明を具体化した第５の実施形態であって、複数の診断対象モジュール１０６を備えた車両用電子制御装置の一例を示す。尚、図５において、図４と同一要素には同一符号を付してあり、図４と同一の構成についての説明は省略する。
【００７３】
図５に示す第５の実施形態は、メインＣＰＵ１００が有する複数の診断対象モジュール１０６それぞれを例題演算方式で診断する例であって、複数の診断対象モジュール１０６の全てが共用する１つの診断対象モジュール用例題＆回答テーブル１０４を備えた例を示す。
なお、図５には、メインＣＰＵ１００が診断対象モジュール１０６を３つ備えた例を示したが、２つ乃至４つ以上の診断対象モジュール１０６を備えることができ、その場合も、図５と同様に、１つの診断対象モジュール用例題＆回答テーブル１０４を各診断対象モジュール１０６で共用させることができることは明らかである。
【００７４】
図５に示す第５の実施形態において、メインＣＰＵ１００は、診断対象モジュール１０６として、それぞれが例題演算部１０７ａ〜１０７ｃを備える３つの診断対象モジュール１０６ａ〜１０６ｃを備える。
そして、診断対象モジュール用例題＆回答テーブル１０４からの出力される例題が、３つの診断対象モジュール１０６ａ〜１０６ｃにそれぞれ出力され、３つの診断対象モジュール１０６ａ〜１０６ｃの例題演算部１０７ａ〜１０７ｃそれぞれでの演算結果（回答データ）が照合部１０５に並行して出力される。
【００７５】
照合部１０５は、診断対象モジュール用例題＆回答テーブル１０４から出力される期待値と、複数の診断対象モジュール１０６ａ〜１０６ｃそれぞれでの演算結果とを照合し、照合結果（一致／不一致、正常／異常）を示す信号を回答設定部１０９に出力する。
詳しくは、照合部１０５は、診断対象モジュール１０６ａ〜１０６ｃのうちの少なくとも１つで、期待値とは異なる演算結果（回答データ）を出力した場合に、不一致（演算機能異常）の判定結果を回答設定部１０９に出力する。
【００７６】
そして、回答設定部１０９は、照合部１０５から不一致の判定結果を入力した場合、サブＣＰＵ２００側から入力した期待値とは異なる回答データをサブＣＰＵ２００に向けて出力し、照合部１０５から一致の判定結果を入力した場合、サブＣＰＵ２００側から入力した期待値をそのまま回答データとしてサブＣＰＵ２００に向けて出力する。
ここで、例題＆回答テーブル２０４からの例題出力毎に診断対象モジュール用例題＆回答テーブル１０４からの検索に用いるインデックスを順次更新し、診断対象モジュール用例題＆回答テーブル１０４からそのときのインデックスに対応して記憶されている例題を読み出し、読み出した例題を複数の診断対象モジュール１０６それぞれに並行して出力することで、複数の診断対象モジュール１０６に対して同じ例題を出力させることができる。
【００７７】
また、診断対象モジュール用例題＆回答テーブル１０４において、インデックス毎に複数の診断対象モジュール１０６のいずれか１つを割り付けておき、そのときのインデックスがどの診断対象モジュール１０６に割り付けられたものであるかに応じて、読み出した例題を出力する診断対象モジュール１０６を指定することで、複数の診断対象モジュール１０６で相互に異なる例題を演算させることもできる。
更に、複数の診断対象モジュール１０６を１つ乃至複数の診断対象モジュール１０６からなるグループに区分し、インデックス毎に複数のグループのいずれか１つを割り付けておき、同じグループに属する診断対象モジュール１０６に対しては同一の例題を出力し、グループ毎に異なる例題を出力させることもできる。
【００７８】
図５に示した第５の実施形態のように、複数の診断対象モジュール１０６に対して共通する１つの診断対象モジュール用例題＆回答テーブル１０４を設けた場合、サブＣＰＵ２００側の例題＆回答テーブル２０４が簡易かつ固定されていても、複数の診断対象モジュール１０６の機能診断に適した例題を診断対象モジュール用例題＆回答テーブル１０４において出力させることができる。
従って、メインＣＰＵ１００の構成が複雑化することを抑制しつつ、メインＣＰＵ１００に含まれる複数の診断対象モジュール１０６全ての機能診断の細分化、高次化、機能拡張に対応でき、診断対象モジュール１０６の演算機能を適切に診断できる。
また、メインＣＰＵ１００が、メインＣＰＵ１００に含まれる複数の診断対象モジュール１０６全てについて演算機能の異常の有無を診断して、複数の診断対象モジュール１０６のうちの１つでも演算機能に異常が発生すると、メインＣＰＵ１００においてフェイルセーフ処理を実施させることができる。
【００７９】
ところで、診断対象モジュール用例題＆回答テーブル１０４及び照合部１０５は、複数の診断対象モジュール１０６毎に設けることができる。
図６は、本発明を具体化した第６の実施形態であって、メインＣＰＵ１００が複数の診断対象モジュール１０６を備え、かつ、全ての診断対象モジュール１０６それぞれに専用の診断対象モジュール用例題＆回答テーブル１０４及び照合部１０５を設けた車両用電子制御装置の一例を示す。
尚、図６において、図４と同一要素には同一符号を付してあり、図４と同一の構成についての説明は省略する。
【００８０】
図６に示した第６の実施形態では、メインＣＰＵ１００が３つの診断対象モジュール１０６ａ〜１０６ｃを備えると共に、診断対象モジュール１０６ａ〜１０６ｃそれぞれに対応させて、診断対象モジュール用例題＆回答テーブル１０４ａ〜１０４ｃ及び照合部１０５ａ〜１０５ｃを設けてある。
そして、診断対象モジュール用例題＆回答テーブル１０４ａは、サブＣＰＵ２００からの例題出力をトリガーとして診断対象モジュール１０６ａに例題を出力し、診断対象モジュール用例題＆回答テーブル１０４ｂは、サブＣＰＵ２００からの例題出力をトリガーとして診断対象モジュール１０６ｂに例題を出力し、診断対象モジュール用例題＆回答テーブル１０４ｃは、サブＣＰＵ２００からの例題出力をトリガーとして診断対象モジュール１０６ｃに例題を出力する。
【００８１】
つまり、図６に示した例では、３つの診断対象モジュール１０６ａ〜１０６ｃと３つの診断対象モジュール用例題＆回答テーブル１０４ａ〜１０４ｃとを１対１で対応させ、更に、各診断対象モジュール用例題＆回答テーブル１０４ａ〜１０４ｃは、照合部１０５ａ〜１０５ｃをそれぞれ備えている。
ここで、照合部１０５ａには、診断対象モジュール用例題＆回答テーブル１０４ａからの期待値と診断対象モジュール１０６ａ（例題演算部１０７ａ）での演算結果（回答データ）とが入力され、照合部１０５ｂには、診断対象モジュール用例題＆回答テーブル１０４ｂからの期待値と診断対象モジュール１０６ｂ（例題演算部１０７ｂ）での演算結果（回答データ）とが入力され、照合部１０５ｃには、診断対象モジュール用例題＆回答テーブル１０４ｃからの期待値と診断対象モジュール１０６ｃ（例題演算部１０７ｃ）での演算結果（回答データ）とが入力される。
【００８２】
そして、照合部１０５ａ〜１０５ｃは、期待値と実際の演算結果（回答データ）とをそれぞれ照合し、照合結果（一致／不一致、正常／異常）を示す信号を回答設定部１０９に出力する。
回答設定部１０９は、照合部１０５ａ〜１０５ｃの出力のうちの少なくとも１つが不一致（演算機能異常）の判定信号であれば、フェイルセーフ処理の指示信号をフェイルセーフ処理部１０２に出力し、また、例題＆回答テーブル２０４における期待値とは異なる値を、メインＣＰＵ１００における演算結果（回答データ）として回答送信部１０１ｂを介してサブＣＰＵ２００の回答受信部２０２に送信し、サブＣＰＵ２００の診断部２０３においてフェイルセーフ処理を実行させる。
【００８３】
一方、回答設定部１０９は、照合部１０５ａ〜１０５ｃの出力の全てが一致（演算機能正常）の判定信号であれば、例題＆回答テーブル２０４における期待値をそのままメインＣＰＵ１００における演算結果（回答データ）としてサブＣＰＵ２００の回答受信部２０２に送信する。この場合、メインＣＰＵ１００及びサブＣＰＵ２００の双方で、診断対象モジュール１０６の演算機能の異常に基づくフェイルセーフ処理は実施されないことになる。
【００８４】
図６に示す構成では、複数の診断対象モジュール１０６の全てに専用の診断対象モジュール用例題＆回答テーブル１０４を設けてあるから、サブＣＰＵ２００からの同一の例題をトリガーとして、複数の診断対象モジュール１０６ａ〜１０６ｃ毎に異なる例題を演算させ、また、複数の診断対象モジュール１０６ａ〜１０６ｃ毎に異なる数の例題を演算させることが容易である。
これにより、例題＆回答テーブル２０４が固定されたサブＣＰＵ２００を用いつつ、複数の診断対象モジュール１０６全ての特性に合わせた例題設定（例題の内容及び数の設定）を柔軟に行え、複数の診断対象モジュール１０６の演算機能の診断を適切に行わせることができる。
【００８５】
なお、メインＣＰＵ１００に含まれる複数の診断対象モジュール１０６において、サブＣＰＵ２００側の例題＆回答テーブル２０４から出力された例題をそのまま演算する診断対象モジュール１０６と、メインＣＰＵ１００に設けた診断対象モジュール用例題＆回答テーブル１０４から出力された例題を演算する診断対象モジュール１０６とを混在させることができる。
図７は、本発明を具体化した第７の実施形態を示す。尚、図７において、図４と同一要素には同一符号を付してあり、図４と同一の構成についての説明は省略する。
【００８６】
図７に示す第７の実施形態では、メインＣＰＵ１００の３つの診断対象モジュール１０６ａ〜１０６ｃのうち、診断対象モジュール１０６ａには、サブＣＰＵ２００側の例題＆回答テーブル２０４から出力された例題が例題＆期待値受信部１０１ｃを介して入力され、診断対象モジュール１０６ａは、例題に基づく演算結果としての回答データを、回答設定部１０９に出力する。
一方、診断対象モジュール１０６ｂ及び診断対象モジュール１０６ｃは、診断対象モジュール用例題＆回答テーブル１０４ｂ、１０４ｃから出力された例題を演算し、演算結果を照合部１０５ｂ、１０５ｃに出力し、照合部１０５ｂ、１０５ｃでの照合結果が回答設定部１０９に出力される。
【００８７】
回答設定部１０９では、診断対象モジュール１０６ａからの回答データと、例題＆期待値受信部１０１ｃを介して受信した期待値とを照合し、当該照合結果、及び、照合部１０５ｂ、１０５ｃでの照合結果に基づき、３つの診断対象モジュール１０６ａ〜１０６ｃのうちの少なくとも１つに演算機能の異常があれば、例題＆期待値受信部１０１ｃを介して受信した期待値とは異なる回答データをサブＣＰＵ２００側に送信し、３つの診断対象モジュール１０６ａ〜１０６ｃの全てに演算機能の異常がない場合には、例題＆期待値受信部１０１ｃを介して受信した期待値に一致する回答データをサブＣＰＵ２００側に送信する。
【００８８】
サブＣＰＵ２００側の例題＆回答テーブル２０４が、診断対象モジュール１０６ａに適合する例題と期待値との組み合わせを記憶する場合に、診断対象モジュール１０６ｂ、１０６ｃに適合する例題が設定された診断対象モジュール用例題＆回答テーブル１０４ｂ、１０４ｃを設ける。
これにより、診断対象モジュール１０６ａの演算機能を診断するための構成及び例題を変更することなく、例題＆回答テーブル２０４における例題とは異なる、診断対象モジュール１０６ｂ、１０６ｃの特性に合わせた例題を演算させて、診断対象モジュール１０６ｂ、１０６ｃの演算機能を診断することができる。
【００８９】
上記実施形態で説明した各技術的思想は、矛盾が生じない限りにおいて、適宜組み合わせて使用することができる。
また、好ましい実施形態を参照して本発明の内容を具体的に説明したが、本発明の基本的技術思想及び教示に基づいて、当業者であれば、種々の変形態様を採り得ることは自明である。
例えば、回答設定部１０９の出力に基づきフェイルセーフ処理を実行させる構成に限定されず、回答設定部１０９における異常判定の履歴を記憶させたり、回答設定部１０９の出力に基づき警報（警告）装置を作動させたりすることができる。
【００９０】
また、複数の診断対象モジュール１０６は、同一パッケージ内に設けられるものの他、個別のパッケージを有するものとすることができる。
また、複数の診断対象モジュール１０６が全て等価であるシステム、複数の診断対象モジュール１０６が等価でないシステムのいずれにも本発明を適用でき、複数の診断対象モジュール１０６の全てが等価でないシステムの場合には、演算機能に異常が発生していると判定した診断対象モジュール１０６に応じて、異なるフェイルセーフ処理を実行させることができる。
【００９１】
また、メインＣＰＵ１００（車両用電子制御装置１）の制御対象は、車載エンジンに限定されるものでなく、車載の各種デバイスの制御に用いることができることは明らかであり、例えば、自動変速機やトラクションコントロールシステムなどの制御ユニットとすることができる。
また、メインＣＰＵ１００側での演算機能の診断結果をサブＣＰＵ２００側に出力し、サブＣＰＵ２００側において、メインＣＰＵ１００とサブＣＰＵ２００との少なくとも一方で異常判定されている場合にフェイルセーフ処理を実施させることができ、また、サブＣＰＵ２００側での演算機能の診断結果をメインＣＰＵ１００側に出力し、メインＣＰＵ１００側において、メインＣＰＵ１００とサブＣＰＵ２００との少なくとも一方で異常判定されている場合にフェイルセーフ処理を実施させることができる。
【００９２】
また、メインＣＰＵ１００側に設けた第１例題＆回答テーブル１０４が、サブＣＰＵ２００からの例題出力をトリガーとして独自の例題を診断対象モジュール１０６に出力し、
更に、同じくメインＣＰＵ１００側に設けた第２例題＆回答テーブル１０４が、第１例題＆回答テーブル１０４からの例題出力をトリガーとして独自の例題を別の診断対象モジュール１０６に出力するなど、メインＣＰＵ１００内で例題の変換を繰り返す構成とすることができる。
【００９３】
ここで、上記実施形態から把握し得る請求項以外の技術的思想について、以下に効果と共に記載する。
（イ）
前記制御ユニットは、前記監視ユニットからの例題を演算する第１診断対象モジュールと、前記変換部からの例題を演算する第２診断対象モジュールとを含み、
前記回答設定部は、前記照合部の照合結果に応じて、前記第１診断対象モジュールの回答と当該回答とは異なる回答とのいずれかを前記監視ユニットへ出力する、請求項３記載の車両用電子制御装置。
上記発明によると、第１診断対象モジュールの演算機能が正常である場合、第１診断対象モジュールで期待値に一致する回答が得られることになるが、第２診断対象モジュールの演算機能の異常が照合部の照合で検出されると、第１診断対象モジュールの回答とは異なる回答、つまり、期待値とは異なる回答を監視ユニットに出力させることで、監視ユニットで制御ユニットにおける演算機能の異常を検出させる。一方、第２診断対象モジュールの演算機能が正常であれば、第１診断対象モジュールの回答が監視ユニットに出力されるが、第１診断対象モジュールの演算機能に異常が発生していて第１診断対象モジュールの回答が期待値と異なっていれば、監視ユニットが制御ユニットにおける演算機能の異常を検出することになる。
【００９４】
（ロ）
前記制御ユニットは、前記監視ユニットから例題及び当該例題の回答の期待値を入力し、
前記回答設定部は、前記照合部の照合結果に応じて、前記監視ユニットから入力した期待値と当該期待値とは異なる回答とのいずれかを前記監視ユニットへ出力する、請求項３記載の車両用電子制御装置。
上記発明によると、照合部での照合で、診断対象モジュールにおける演算機能の異常の有無が検出され、正常であれば監視ユニットから入力した期待値をそのまま返送することで、監視ユニット側で正常診断がなされるようにし、異常であれば監視ユニットから入力した期待値とは異なる回答を出力することで、監視ユニット側で異常診断がなされるようにする。
【００９５】
（ハ）
前記変換部における例題と期待値との組み合わせが、外部ユニットから書き換え可能である、請求項１から３のいずれか１つに記載の車両用電子制御装置。
上記発明によると、変換ユニットにおける例題と期待値との組み合わせを外部ユニットから書き換えることで、診断対象モジュールの特性に合わせた例題を任意に設定できる。
【００９６】
（ニ）
複数の前記診断対象モジュールが１つの前記変換部を共用する、請求項１から３のいずれか１つに記載の車両用電子制御装置。
上記発明によると、複数の診断対象モジュールについて１つの変換部を設けることにより、簡易な構成で、監視ユニットが出力する例題とは異なる例題を複数の診断対象モジュールで演算させることができる。
【００９７】
（ホ）
前記制御ユニットは、前記照合部での照合結果が不一致である場合にフェイルセーフ処理を実行し、
前記監視ユニットは、前記制御ユニットに出力した例題の回答の期待値と前記制御ユニットが出力した回答とが不一致である場合にフェイルセーフ処理を実行する、請求項３記載の車両用電子制御装置。
上記発明によると、診断対象モジュールの演算機能に異常が発生している場合には、制御ユニット側と監視ユニット側との双方でフェイルセーフ処理を実行し、演算機能の異常に対するフェイルセーフ処理の実効を確保する。
【符号の説明】
【００９８】
１…車両用電子制御装置、１００…メインＣＰＵ（制御ユニット）、１０１ａ…例題受信部、１０１ｂ…回答送信部、１０１ｃ…例題＆期待値受信部、１０２…フェイルセーフ処理部、１０３…回答設定部、１０４…診断対象モジュール用例題＆回答テーブル（変換部）、１０５…照合部、１０６…診断対象モジュール、１０７…例題演算部、１０９…回答設定部、２００…サブＣＰＵ（監視ユニット）、２０１…例題送信部、２０２…回答受信部、２０３…診断部、２０４…例題＆回答テーブル、２０５…例題＆期待値送信部
【図１】
2014215656.tif 000003
【図２】
2014215656.tif 000004
【図３】
2014215656.tif 000005
【図４】
2014215656.tif 000006
【図５】
2014215656.tif 000007
【図６】
2014215656.tif 000008
【図７】
2014215656.tif 000009