(57)【要約】【課題】クランク角度に同期して制御を行う幾つかのスレーブCPU制御装置とそれらを統括する少なくとも一つのマスタCPU制御装置とで構成された内燃機関制御系において、もとからあるシステムに悪影響を及ぼすことなく、制御ソフトウェアのみを追加実装するだけで、スレーブCPU制御装置の異常を合理的かつ簡便に検出することができるようにされた異常監視システムを提供する。【解決手段】マスタCPU制御装置１０１からスレーブCPU制御装置１０４に送られた制御指令値を入力として例題演算をスレーブCPU制御装置１０４内で実行し、その演算結果をマスタCPU制御装置１０１に返送する。マスタCPU制御装置１０１では、内部的に同一例題演算により生成した期待値とスレーブ側からの演算結果を照合することによりスレーブCPU制御装置１０４の異常を検出する。【選択図】  図４
2005240631.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つのスレーブCPU制御装置とそれらを統括する少なくとも一つのマスタCPU制御装置とで構成され、マスタCPU制御装置からは所定クランク角度ごとに割り付けられた指令がスレーブCPU制御装置に対して送られ、それによりスレーブCPU制御装置はクランク角度に同期した制御を行うようにされた内燃機関制御系の異常監視システムにおいて、前記スレーブCPU制御装置は、前記マスタCPU制御装置からの指令値を入力として、予めマスタ−スレーブCPU制御装置間で取り決められている異常検出用の関数演算を行い、その演算結果を所定クランク角度でマスタCPU制御装置に返送し、マスタCPU制御装置は、その内部で予め演算した関数演算値と返送された演算結果とを照合することによってスレーブCPU制御装置の異常を検出するようにされていることを特徴とする異常監視システム。
【請求項２】
前記マスタCPU制御装置からスレーブCPU制御装置に送られる、異常検出用の関数演算入力となる指令値は、前記関数演算入力のみにしか使用せず異常監視以外の用途には使用されないマスタCPU制御装置が生成した乱数値のデータ部分を含んでいることを特徴とする請求項１に記載の異常監視システム。
【請求項３】
少なくとも一つのスレーブCPU制御装置とそれらを統括する少なくとも一つのマスタCPU制御装置とで構成され、マスタCPU制御装置からは所定クランク角度ごとに割り付けられた指令がスレーブCPU制御装置に対して送られ、それによりスレーブCPU制御装置はクランク角度に同期した制御を行うようにされた内燃機関制御系の異常監視システムにおいて、前記スレーブCPU制御装置は、前記マスタCPU制御装置とは無関係に収集した値を入力として、予めマスタ−スレーブCPU制御装置間で取り決められている異常検出用の関数演算を行い、前記関数入力値とその演算結果を所定クランク角度でマスタCPU制御装置に返送し、マスタCPU制御装置は、前記関数入力値をもとに前記異常検出用の関数演算を再現し、この再現結果をスレーブCPU制御装置から返送された演算結果と照合することによってスレーブCPU制御装置の異常を検出するようにされていることを特徴とする異常監視システム。
【請求項４】
前記スレーブCPU制御装置によってマスタCPU制御装置とは無関係に収集された異常検出用の関数演算入力となる値は、前記関数演算入力のみにしか使用せず異常監視以外の用途には使用されないスレーブCPU制御装置が生成した乱数値のデータ部分を含んでいることを特徴とする請求項３に記載の異常監視システム。
【請求項５】
前記スレーブCPU制御装置内での異常検出用関数演算の実行、および該演算出力値のマスタCPU制御装置への返送は、マスタCPU制御装置の指令がスレーブCPU制御装置に達してから、スレーブCPU制御装置のクランク角度同期制御動作の終了時までは禁止することを特徴とする請求項１から４のいずれかに記載の異常監視システム。
【請求項６】
前記スレーブCPU制御装置からマスタCPU制御装置への異常検出用関数演算の出力値返送を、マスタCPU制御装置からスレーブCPU制御装置への指令と同じタイミングで全二重通信により行い、マスタCPU制御装置からスレーブCPU制御装置への今回の指令値と、スレーブCPU制御装置からマスタCPU制御装置への前回の関数演算出力値返送とを同時に実行することを特徴とする請求項１から４のいずれかに記載の異常監視システム。
【請求項７】
前記予めマスタ−スレーブCPU制御装置間で取り決められている異常検出用の関数は、スレーブCPU制御装置の算術・論理演算回路、レジスタ・ファイル、アドレスバス及びデータバス、キャシュ制御機構、並びに、プログラムカウンタ及びスタックポインタを含むプログラム実行制御機構のうちの少なくとも一つの健全性を実証するため、それらの操作結果が関数出力値に反映される命令列を含んでいることを特徴とする請求項１から６のいずれかに記載の異常監視システム。
【請求項８】
前記予めマスタ−スレーブCPU制御装置間で取り決められている異常検出用の関数は、スレーブCPU制御装置に結合された浮動小数点演算ユニットの健全性を実証するため、その操作結果が関数出力値に反映される命令列を含んでいることを特徴とする請求項１から６のいずれかに記載の異常監視システム。
【請求項９】
前記予めマスタ−スレーブCPU制御装置間で取り決められている異常検出用の関数は、スレーブCPU制御装置に結合されたA/D変換器及びタイマ・デバイスなどの周辺デバイスの動作モードを決定するコンフィギュレーションレジスタの値の不変性を実証するため、それらのコンフィギュレーションレジスタのビットパターンが関数出力値に反映される命令列を含んでいることを特徴とする請求項１から６のいずれかに記載の異常監視システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動車等に使用される内燃機関の運転制御を行う制御系の異常監視システムに係り、特に、クランク角度に同期して制御を行う幾つかのスレーブCPU制御装置（スマート・アクチュエータ）とそれらを統括する少なくとも一つのマスタCPU制御装置（ECU）とで構成された内燃機関制御系の異常監視システムに関する。
【背景技術】
【０００２】
現行の内燃機関制御においては制御の高度化・精細化に伴い、種々の出力デバイスが採用されつつある。その中でもスマート・アクチュエータと呼ばれるデバイスは、制御装置が逐一関与せずともある程度、知的・自立的な動作を行うことができ、内部に専用のCPUを包含している。
【０００３】
また、これらの動きを統括する、同じく内部にCPUを包含するECU(electronic control unit)が該スマート・アクチュエータ群とは別に存在しており、一例としてスター状の結線でこれらスマート・アクチュエータ群と結ばれている。
【０００４】
本明細書では、便宜上、前記スマート・アクチュエータ群をスレーブCPU制御装置群、これらを統括するECUをマスタCPU制御装置と称する。
【０００５】
したがって、マスタCPU制御装置は、機関動作中にこれらスレーブCPU制御装置のCPU周りの機能異常を正確に認識し、機関を停止したり、システム全体をフェールセーフ動作に移行させる機能が要求される。
【０００６】
従来、この種の診断機能を簡便にシステムに付与する方法として、スマート・アクチュエータ内蔵CPUのウォッチドッグタイマ信号を集約して統括ECUでモニタし、統括ECU側で該ウォッチドッグタイマ信号の停止を検知することにより、アクチュエータの機能不全を判定するものが一般的に知られている。
【０００７】
しかしながら、ウォッチドッグタイマ信号による判定は、少なくとも該CPUのウォッチドッグ出力ドライバ周りの健全性、およびそれを呼び出すソフトウェア部分の非停止性を皮相的に証明するだけであり、該CPU全体の機能の健全性を代表していないことはよく知られている事実である。
【０００８】
また、これより少し高度なCPU異常監視システムにおいては、例えば、下記特許文献１に所載のように、二つのCPUで同一の演算を行い、その演算結果を照合することにより、CPUの異常を検知するCPU異常監視システムが知られている。
【０００９】
該公知例によれば、監視CPUより被監視CPUに対してシステムの制御要求としては直接に関係の無い例題データを送信し、被監視CPUでは該データに対して予め監視CPUと取り決められている例題演算を行った後その結果を監視CPUに返送する。監視CPUでは、この返送された演算結果と予め監視CPU内部で算出した期待値データとを比較してCPUの異常の有無を判定するようになっている。
【特許文献１】特開２０００−２９７３４号公報（第１〜７頁、図１〜図４）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
まず、本発明の前提となるマスタCPU制御装置−スレーブCPU制御装置システムの概要を説明する。
構成上の特徴として、マスタCPU制御装置とスレーブCPU制御装置群（スマート・アクチュエータ群）とは、一例としてスター状に結線されており、一対多通信によりマスタCPU制御装置が指令を発するので、マスタCPU制御装置が特定のスレーブCPU制御装置に費やす時間的・機能的リソースが制約されている点が挙げられる。
【００１１】
また、その典型的な動作の態様は、先ずマスタCPU制御装置が、スレーブCPU制御装置（スマート・アクチュエータ）自身が収集できない環境情報、および種々のアクチュエータ自身の動作バリエーションから特定のモードを選択するためのコマンドをもとに構成された指令情報を送出した後に、実際に動作を開始すべきタイミングでトリガ信号を送出するという二段階動作を要求するものが多い。
【００１２】
しかも、この指令情報（環境情報・コマンド）と起動トリガとの間には、スレーブCPU制御装置（スマート・アクチュエータ）自身が先行情報を解釈する時間的余裕が必要である。併せて、前記マスタCPU制御装置より発せられる起動トリガは、機関の運転状態により所定の角度的バンド幅を持たせて前後に角度変調されるべきものであり、この角度的バンド幅に対しては、スレーブCPU制御装置にとっては来るべき起動トリガに備えていかなる動作も行うことができないという状況が発生する。即ち、この期間に対しては、スレーブCPU制御装置は、待ち受け動作であるアイドル状態を継続していなければならない。
【００１３】
このような状況を考慮した場合、前記した公知技術は採用することができない。なぜならば、マスタCPU制御装置よりスレーブCPU制御装置に対して例題データを出題する時間的・機能的リソースが無いという点がまず挙げられる。
【００１４】
しかも、このスレーブCPU制御装置が内燃機関に複数配備されている場合、問題は顕著となる。通常、起動トリガ線は、マスタCPU制御装置よりスレーブCPU制御装置毎に結線されるとしても、前述の指令情報（環境情報・コマンド）を受け渡しする配線は、省線化のため共用化・集約化され、ポーリング・セレクティング方式のシリアル通信路などが使われることが多い。この場合、特定の時間的（角度的）スロットでのマスタCPU制御装置と各スレーブCPU制御装置との一対一通信を仮定すると、この通信路は各スレーブCPU制御装置にとって排他的に奪い合うべき共有資源となる。従って、通信トラフィックの集中や競合を避けるために、この通信路を起動するマスタCPU制御装置側ジョブもクランク角度毎に割り付けて処理（負荷）分散を図らねばならず、これら本来の機能的要求とは別に、スレーブCPU制御装置の異常監視のために例題データ送信を追加するリソースの余裕が無い。
【００１５】
さらに、前記公知例に基づく例題演算は、出題される側のスレーブCPU制御装置にとっても大きな負担になる。
【００１６】
前述のようにスレーブCPU制御装置にとっては、マスタCPU制御装置より発せられた指令情報（環境情報・コマンド）と起動トリガとの間には、スレーブCPU制御装置自体が該指令情報を解釈する時間的余裕が必要である。しかも、前述のように起動トリガは、ある角度的バンド幅を持ってマスタCPU制御装置より発せられるものであり、この待ち受け期間中は、スレーブCPU制御装置はいかなる演算も実行することができない。加えて、起動トリガよりスレーブCPU制御装置側に引き起こされる角度同期処理は、本発明のもととなるマスタCPU制御装置−スレーブCPU制御装置システムにおいて本来最重要の動作であり、ここでも前記公知例で述べられているような例題演算を実行する余裕は無い。
【００１７】
結局のところ、上述のようにマスタCPU制御装置側の指令値出力時点より、スレーブCPU制御装置側が一連の角度同期処理を実行終了するまで、スレーブCPU制御装置の異常監視のための例題演算を、スレーブCPU制御装置において実行する時間的余裕が無いことになる。
【００１８】
したがって、前記した公知技術に対しては、上述のマスタCPU制御装置がスレーブCPU制御装置に対して行う出題リソースが制約されているという問題、およびその出題データに対してスレーブCPU制御装置側が例題演算を行うタイミングが制約されているという問題が大きな課題となっていた。
【００１９】
本発明は、このような従来の問題に鑑みてなされたもので、その目的とするところは、クランク角度に同期して制御を行う少なくとも一つのスレーブCPU制御装置とそれらを統括する少なくとも一つのマスタCPU制御装置とで構成された内燃機関制御系において、もとからあるシステムに悪影響を及ぼすことなく、制御ソフトウェアのみを追加実装するだけで、スレーブCPU制御装置の異常を合理的かつ簡便に検出することができるようにされた異常監視システムを提供することにある。
【課題を解決するための手段】
【００２０】
前記目的を達成すべく、本発明に係る異常監視システムの第１態様は、少なくとも一つのスレーブCPU制御装置とそれらを統括する少なくとも一つのマスタCPU制御装置とで構成され、マスタCPU制御装置からは所定クランク角度ごとに割り付けられた指令がスレーブCPU制御装置に対して送られ、それによりスレーブCPU制御装置はクランク角度に同期した制御を行うようにされた内燃機関制御系に適用されるもので、前記スレーブCPU制御装置は、前記マスタCPU制御装置からの指令値を入力として、予めマスタ−スレーブCPU制御装置間で取り決められている異常検出用の関数演算を行い、その演算結果を所定クランク角度でマスタCPU制御装置に返送し、マスタCPU制御装置は、その内部で予め演算した関数演算値と返送された演算結果とを照合することによってスレーブCPU制御装置の異常を検出するようにされていることを特徴としている。
【００２１】
かかる第１態様は、前述の出題リソースの制約を解決するための手法を開示したもので、より具体的には、スレーブCPU制御装置における例題演算の入力として、マスタCPU制御装置が例題データを従来のデータ通信とは独立してスレーブCPU制御装置に送るのではなく、従来制御より実施されていた前記指令情報（環境情報・コマンド）を例題演算用データとみなして例題演算を行うようにされる。これにより、マスタCPU制御装置にとっては、出題によるリソース消費の大幅な節約になる。
【００２２】
上記第１態様では、例題演算の“種”となる指令情報（環境情報・コマンド）が毎回変化せず、スレーブCPUの異常検出に関する感度が低下するという状況が予想され得る。
【００２３】
そこで、第２態様では、この問題に対する対策を開示する。即ち、本発明に係る異常監視システムの第２態様は、前記マスタCPU制御装置からスレーブCPU制御装置に送られる、異常検出用の関数演算入力となる指令値は、前記関数演算入力のみにしか使用せず異常監視以外の用途には使用されないマスタCPU制御装置が生成した乱数値のデータ部分を含んでいることを特徴としている。
【００２４】
より具体的には、前記指令情報の空きビットフィールドに、マスタCPU制御装置側で生成した乱数をはめ込み、スレーブCPU例題演算の周期毎に毎回異なる例題演算の“種”をスレーブCPU制御装置に供給するようにされる。
【００２５】
本発明に係る異常監視システムの第３態様は、前記第１態様と同じ構成の内燃機関制御系に適用されるもので、前記スレーブCPU制御装置は、前記マスタCPU制御装置とは無関係に収集した値を入力として、予めマスタ−スレーブCPU制御装置間で取り決められている異常検出用の関数演算を行い、前記関数入力値とその演算結果を所定クランク角度でマスタCPU制御装置に返送し、マスタCPU制御装置は、前記関数入力値をもとに前記異常検出用の関数演算を再現し、この再現結果をスレーブCPU制御装置から返送された演算結果と照合することによってスレーブCPU制御装置の異常を検出するようにされていることを特徴としている。
【００２６】
かかる第３態様は、そもそも前記例題演算用の“種”をマスタCPU制御装置からスレーブCPU制御装置に送るのではなく、スレーブCPU制御装置側で独自に生成するようにしたものである。より具体的には、例題演算に際して、スレーブCPU制御装置は、スレーブCPU制御装置側で収集可能なA/D変換値、タイマデバイス値などのデータをもとに例題演算の“種”を生成する。ここにおいて、マスタCPU制御装置よりスレーブCPU制御装置に対して送られる指令値は、スレーブCPU制御装置側における例題演算のペースメーカとしてのタイミングを供給する意味しかなさない。
【００２７】
これにより、マスタCPU制御装置では、例題演算の“種”（関数入力値）とその結果（関数出力値）を一組のデータとして、スレーブCPU制御装置より受け取らなければならなくなるが、前記第１態様よりも、出題によるリソース消費の節約となる。
【００２８】
本発明に係る異常監視システムの第４態様は、前記第１態様と第２態様との関係に対応するものであって、前記スレーブCPU制御装置によってマスタCPU制御装置とは無関係に収集された異常検出用の関数演算入力となる値は、前記関数演算入力のみにしか使用せず異常監視以外の用途に使用されないスレーブCPU制御装置が生成した乱数値のデータ部分を含んでいることを特徴としている。
【００２９】
具体的には、スレーブCPU制御装置側で独自に生成した例題演算用の“種”データが、例題演算周期に対して毎回変化するように規制し、スレーブCPU異常検出感度が低下することを防止する。即ち、第２態様と同様に、例題演算入力の“種”データの一部（もしくは全部）を乱数データとすることによって例題演算周期毎にその出力期待値が変化するようにし、スレーブCPU制御装置の異常に際してもその異常出力値が例題演算期待値と同一データに写像する確率を低減するものである。
【００３０】
本発明に係る異常監視システムの第５態様は、前述のスレーブCPU制御装置側における例題演算の実行タイミング制約を解消するための手法を開示する。即ち、前記スレーブCPU制御装置内での異常検出用関数演算の実行、および該演算出力値のマスタCPU制御装置への返送は、マスタCPU制御装置の指令がスレーブCPU制御装置に達してから、スレーブCPU制御装置のクランク角度同期制御動作の終了時までは禁止するようにされる。
【００３１】
前述のように、マスタCPU制御装置側の指令値出力時点から、スレーブCPU制御装置側が一連の角度同期処理を実行終了するまで、スレーブCPU制御装置にとっては例題演算を実行する（もしくはその結果をマスタCPU制御装置に返送する）時間的余裕は無い。むしろ、無規律にこれらの期間中に例題演算を実行すれば、本来の角度制御動作の応答性が損なわれたり、指令コマンドを過去より変化していないものと誤解釈したりする問題が発生し得る。これを回避するために、例題演算の実行およびその結果のマスタCPU制御装置への返送動作を、上記一連の制御実行後まで禁止しようとするものである。
【００３２】
本発明に係る異常監視システムの第６態様は、例題演算結果の収集リソース消費を低減する手法を開示する。即ち、前記スレーブCPU制御装置からマスタCPU制御装置への異常検出用関数演算の出力値返送を、マスタCPU制御装置からスレーブCPU制御装置への指令と同じタイミングで全二重通信により行い、マスタCPU制御装置からスレーブCPU制御装置への今回の指令値と、スレーブCPU制御装置からマスタCPU制御装置への前回の関数演算出力値返送とを同時に実行するようにされる。
【００３３】
前述のようにマスタCPU制御装置とスレーブCPU制御装置が一対多通信を行っている関係上、例題出題リソースと同様に例題演算結果を各スレーブCPU制御装置より収集するリソースが必要となる。本来ならば、マスタCPU制御装置は、指令情報出力と同様に時間的（角度的）スロットを設定して、各スレーブCPU制御装置より一対多通信で結果を収集することになるが、これらに充当させるリソースの追加消費は出題時同様、システムにとって無視できない状況となっている。
【００３４】
これを解消すべく、本第６態様では、全二重通信を用いて、もとから存在する指令情報の出力時（即ち例題演算に関しては今回の“種”の出力時）に裏で前回の例題演算結果をスレーブCPU制御装置より収集しようとするものである。これにより前記データ収集によるリソース消費を大幅に低減できる。
【００３５】
本発明に係る異常監視システムの第７態様は、例題演算で実行する異常検出用関数の構成を開示する。即ち、前記予めマスタ−スレーブCPU制御装置間で取り決められている異常検出用の関数は、スレーブCPU制御装置の算術・論理演算回路、レジスタ・ファイル、アドレスバス及びデータバス、キャシュ制御機構、並びにプログラムカウンタ及びスタックポインタを含むプログラム実行制御機構のうちの少なくとも一つの健全性を実証するため、それらの操作結果が関数出力値に反映される命令列を含んでいることを特徴としている。
【００３６】
スレーブCPUの機能的健全性を正しく例題演算に反映するためには、前記のような命令列で異常検出用関数を構成することが望ましい。
【００３７】
即ち、例題演算に反映させるべきCPUの機能部位として、算術・論理演算回路、レジスタ・ファイル、アドレスバス及びデータバス、キャシュ制御機構、プログラムカウンタ及びスタックポインタを含むプログラム実行制御機構などが挙げられる。
【００３８】
本発明に係る異常監視システムの第８態様は、第７態様と同様に例題演算で実行する異常検出用関数の他の構成について開示する。即ち、前記予めマスタ−スレーブCPU制御装置間で取り決められている異常検出用の関数は、スレーブCPU制御装置に結合された浮動小数点演算ユニットの健全性を実証するため、その操作結果が関数出力値に反映される命令列を含んでいることを特徴としている。
【００３９】
浮動小数点ユニットは電磁障害に際してメインプロセッサコアとは無関係に故障するモードがあることが知られている。
【００４０】
したがって、システムで浮動小数点演算を採用する場合は、異常検出用関数で用いる命令列として該浮動小数点ユニットの操作命令を含むように構成すれば、CPUばかりではなく、浮動小数点ユニットの健全性も併せて検証可能となる。
【００４１】
本発明に係る異常監視システムの第９態様は、第７態様および第８態様と同様に、例題演算で実行する異常検出用関数の他の別の構成について開示する。即ち、前記予めマスタ−スレーブCPU制御装置間で取り決められている異常検出用の関数は、スレーブCPU制御装置に結合されたA/D変換器及びタイマ・デバイスなどの周辺デバイスの動作モードを決定するコンフィギュレーションレジスタの値の不変性を実証するため、それらのコンフィギュレーションレジスタのビットパターンが関数出力値に反映される命令列を含んでいることを特徴としている。
【００４２】
CPUコアには、A/D変換器およびタイマ・デバイスなどの内蔵周辺デバイスが接続されている。これらの内蔵周辺デバイスには、その動作モードを決定するコンフィギュレーションレジスタが設置されており、スレーブCPU制御プログラムの初期化時に特定の値が設定され、それ以後これらの値は論理的には書き換えられない。しかしながら、電磁障害、α線エラー、もしくはCPU暴走によっては、これらの値が破壊されることが一般に知られている。
【００４３】
したがって、このコンフィギュレーションレジスタの値の不変性を実証するため、これらのコンフィギュレーションレジスタのビットパターンが前記異常検出用関数の出力値に反映される命令列を含んで、該異常検出用関数を構成すれば、CPUばかりではなく、内蔵周辺デバイスの健全性も併せて検証可能となる。
【発明の効果】
【００４４】
本発明によれば、内燃機関制御系の異常監視を合理的かつ簡便に行うことができるとともに、従前のシステムそのままに制御ソフトウェアのみによる追加実装の形で具現化できるので、追加コストの上昇を抑えることができる。
【００４５】
また、追加実装に際して、もとからあるシステムの制御実行速度および応答性、もしくはもとからあるCPU間通信システムの通信トラフィックに対して悪影響を及ぼさず異常監視のための診断を付与できるという利点も有する。
【００４６】
さらに、本発明による例題演算機構は、従来のウォッチドッグ信号監視などの方式と比べて極めて高度な診断能力を有するので、多CPUシステムにおける信頼性を大幅に向上できる。
【発明を実施するための最良の形態】
【００４７】
以下、本発明の異常監視システムの実施の形態を図面を参照しながら説明する。
図１は、本発明に係る異常監視システムの実施形態を、それが適用された車載用内燃機関と共に示す概略構成図である。
【００４８】
図示内燃機関１０は、例えば４つの気筒を有する多気筒機関であって、シリンダ１２と、このシリンダ１２の各気筒内に摺動自在に嵌挿されたピストン１５と、を有し、該ピストン１５上方には燃焼室１７が画成される。燃焼室１７には、点火プラグ２６が臨設されるとともに、吸気通路２０の最下流部分を形成する吸気ポート２４および排気通路３０の最上流部分を形成する排気ポート２５が開口せしめられ、それら吸気ポート２４および排気ポート２５を開閉すべく、電磁駆動弁（吸気弁、排気弁）３４、３５が配備されている。
【００４９】
前記吸気通路２０には、エアクリーナ２１、電制スロットル弁２２、燃料噴射弁２３等が配在されている。吸気通路２０に吸入された空気と燃料噴射弁２３から噴射された燃料とで形成される混合気は、吸気ポート２３から電磁駆動弁（吸気弁）３４を介して燃焼室１７に吸入され、ここで点火プラグ２６により点火されて爆発燃焼せしめられ、その燃焼廃ガス（排気）は、燃焼室１７から電磁駆動弁（排気弁）３５を介して排気通路３０に排出され、図示されていない排気浄化用触媒で浄化された後、外部に排出される。
【００５０】
上記構成に加え、前記電磁駆動弁３４、３５には，スマート・アクチュエータであるスレーブCPU制御装置１０４、１０５が付設され、さらに、前記スレーブCPU制御装置１０４、１０５や図示していない他のスレーブCPU制御装置を統括するマスタCPU制御装置（ECU）１０１が備えられている。
【００５１】
マスタCPU制御装置１０１は、スタータスイッチ１０２により内燃機関の始動（クランキング）開始を認識した後、クランク角センサ１０３からの信号に基づいてクランク軸１６の回転角度（クランク角度）を検知し、制御装置１０１内に格納されたソフトウェアの設定に従って、クランク角度に割り付けられたジョブを実行する。そのジョブの実行意図は、主として電磁駆動弁３４、３５用スマート・アクチュエータたるスレーブCPU制御装置１０４、１０５の制御を行うことである。
【００５２】
マスタCPU制御装置１０１とスレーブCPU制御装置１０４、１０５の間は、高速トリガ線１０６、１０７と、低速通信線１０８、１０９で結線されている。
【００５３】
マスタCPU制御装置１０１は、低速通信線１０８、１０９を通じて、スレーブCPU制御装置１０４、１０５と情報をやり取りする。これらの情報の具体例を列挙すると、マスタCPU制御装置１０１からスレーブCPU制御装置１０４、１０５への情報としては、スレーブCPU制御装置たるスマート・アクチュエータ自身が収集できない環境情報（油温、吸排気ポート差圧等の外乱情報）、および種々のアクチュエータ自身の動作バリエーションから特定のモードをマスタCPU制御装置１０１が選択するコマンド類である。一方、スレーブCPU制御装置１０４、１０５からマスタCPU制御装置１０１への情報としては、アクチュエータ自身が独自収集した環境情報および診断情報等が挙げられる。
【００５４】
上記情報の設定の後に、マスタCPU制御装置１０１は、高速トリガ線１０６、１０７を通じて、スレーブCPU制御装置１０４、１０５に対して起動トリガを送り、電磁駆動弁（吸排気弁）の開閉動作を実行させる。
【００５５】
なお、図では、内燃機関１０の一気筒分についてのみ結線関係を示したが、実際には、マスタCPU制御装置１０１を起点として、他気筒の電磁駆動弁に付設されている同様なスレーブCPU制御装置が、上述の低速通信線および高速トリガ線によってスター状に配線される。
【００５６】
図２は、クランク角度をもとにマスタCPU制御装置１０１とスレーブCPU制御装置１０４、１０５の動作説明に供されるチャートである。ただし、図及び説明が煩瑣になるのを避けるため、二つのスレーブCPU制御装置のうちの吸気弁３４側のスレーブCPU制御装置１０４の動作を代表して示す（以降の図も同様）。
【００５７】
大円２０１は、マスタCPU制御装置１０１のクランク角度に基づく動作を示しており、小円２０２は、スレーブCPU制御装置１０４の動作を示す。
【００５８】
前述した通り、まずマスタCPU制御装置１０１より所定クランク角度Ａで、指令情報２０３が低速通信線１０８を通じて、スレーブCPU制御装置１０４に対して送られる。この指令情報２０３に対してスレーブCPU制御装置１０４は、それに含まれる環境値およびコマンド情報の解釈を行うとともに、後ほどこの値は例題演算の“種”として使用される。
【００５９】
引き続く所定クランク角度Ｂにおいて、マスタCPU制御装置１０１は、高速トリガ線１０６を通じてスレーブCPU制御装置１０４に対し起動トリガ信号２０４を送出する。これにより、スレーブCPU制御装置１０４は、クランク角度に同期した本来の所定制御動作２０５を実行し、クランク角度Ｃにてその処理を終了する。
【００６０】
前述したように、起動トリガ信号２０４の送出クランク角度Ｂは、内燃機関１０の運転状況によって所定のバンド幅をもって前後に変動する。したがって、スレーブCPU制御装置１０４における制御動作２０５の実行終了角度Ｃも前後に変動している。しかしながら図２では、指令情報２０３（クランク角度Ａ）から制御動作２０５の終了クランク角度Ｃまでのクランク角度範囲θａを回避して、例題演算の実行２０６とその演算結果のマスタCPU制御装置１０１に対する返信２０７を行うことが示されている。これは、前述した本発明の第５態様に開示した、スレーブCPU制御装置側における例題演算の実行タイミング制約を解消するための手法の一例を示したものである。
【００６１】
ただし、図２では、スレーブCPU制御装置１０４からマスタCPU制御装置１０１への例題演算結果の返信２０７が所定クランク角度で行われているため、この時点において、低速通信線１０８はこの通信によって占有されている。
【００６２】
低速通信線１０８は、マスタCPU制御装置にとって、その他のスレーブCPU制御装置群とスター状に結線されている同一シリアル通信路の一部（低速通信線１０９もその一部）であり、この返信２０７によって通信路が占有された場合、他のスレーブCPU制御装置（例えば１０５）に対して、指令情報２０３と同様の信号が同時期に送出できないという問題が発生している。
【００６３】
図３は、クランク角度をもとにマスタCPU制御装置１０１とスレーブCPU制御装置１０４の別の動作例を示すチャートである。図３では、スレーブCPU制御装置１０４からマスタCPU制御装置１０１に対する例題演算出力の返信３０７は、マスタCPU制御装置１０１からスレーブCPU制御装置１０４に対する指令情報３０３の送信と同時（クランク角度Ａ）に全二重通信によって実行されている。したがって、図２に示される例とは異なり、例題演算出力の収集に費やす通信路リソースの消費が節約されており、現状システムの低速通信線１０８、１０９のトラフィックを増加させずに異常監視システムの実装が可能となっている。これは、前述した本発明の第６態様に開示した、例題演算結果の収集リソース消費を低減する手法の一例を示したものである。
【００６４】
図４は、マスタCPU制御装置１０１及びスレーブCPU制御装置１０４が実行する処理の一例を示す、前述した本発明の第１態様及び第２態様に対応するブロック図（データフロー図）である。
【００６５】
マスタCPU制御装置１０１内で、スレーブCPU制御装置１０４からは収集できない環境情報（例えば、マスタCPU制御装置１０１のみに繋がるセンサのA/D変換値）やスレーブCPU制御装置１０４に対するコマンド等を併せて、環境値４０５が生成される。これとは別に、乱数発生源４０３（具体的にはフリーランタイマのタイムスタンプ等）で乱数値４０４が生成され前記の環境値と合体される。  これらの値は、前述した図２の指令情報２０３（クランク角度Ａ）のタイミング、もしくは図３の指令情報３０３（クランク角度Ａ）のタイミングでスレーブCPU制御装置１０４に対して指令値４０６として送られ、スレーブCPU制御装置１０４内の受信バッファ４０８に格納されるとともに、この同一値を入力として、マスタ−スレーブ間での異常検出関数の組４０７、４０９が演算される。マスタCPU制御装置１０１内の異常検出関数４０７と、スレーブCPU制御装置１０４内の異常検出関数４０９は、予めマスタとスレーブとで取り決められている同一関数である。
【００６６】
スレーブCPU制御装置１０４で計算された例題演算結果４１０は、前述したように図２の返信２０７のタイミング、もしくは図３の返信３０７のタイミングで、図４の回答４１１としてマスタCPU制御装置１０１に送られ、マスタCPU制御装置１０１内の受信バッファ４１２に格納される。
【００６７】
これらの値がそろった時点で、マスタCPU制御装置１０１内では、マスタ側異常検出関数４０７の結果４１３と前記受信バッファ４１２内のスレーブCPU側結果が比較部４１４によって比較照合され、一致した場合には判定部４１５によってスレーブCPU制御装置１０４が正常であると判定され、不一致の場合は判定部４１５によってスレーブCPU制御装置１０４が異常であると判定され、異常であると判定された場合は、必要であれば外部に警報指令４１６が発せられる。
【００６８】
図５は、マスタCPU制御装置１０１及びスレーブCPU制御装置１０４が実行する処理の他の例を示す、前述した本発明の第３態様及び第４態様に対応するブロック図（データフロー図）である。
【００６９】
スレーブCPU制御装置１０４が、その内部で独自に収集した環境情報（例えば、スレーブCPU制御装置１０４のみに繋がるセンサのA/D変換値等）に基づき環境値５０５が生成される。これとは別に、乱数発生源５０３（具体的にはフリーランタイマのタイムスタンプ等）で乱数値５０４が生成され前記環境値と合体される。
【００７０】
この値をもとに、スレーブCPU制御装置１０４内では、異常検出関数５０７によって例題演算結果５０８が算出され、これらの異常検出関数５０７の入力値（環境値５０５及び乱数値５０４）と出力値（５０８）の組みは、前述したように図２の返信２０７のタイミング、もしくは図３の返信３０７のタイミングで、同時性を確保した同一通信フレームを構成するデータ５０６、５０９として、マスタCPU制御装置１０１に送られ、各々受信バッファ５１０、５１２に格納される（受信バッファ５１０の内容は、異常検出関数の入力値であり、一方受信バッファ５１２の内容は該異常検出関数の出力値となる）。
【００７１】
マスタCPU制御装置１０１内では、受信バッファ５１０の内容をもとにスレーブ側異常検出関数５０７と対応するマスタ側異常検出関数５１１の演算が実行される。マスタCPU制御装置１０１内の異常検出関数５１１と、スレーブCPU制御装置５０２内の異常検出関数５０７は、予めマスタとスレーブとで取り決められている同一関数である。
【００７２】
これらの値がそろった時点で、マスタCPU制御装置１０１内では、マスタ側異常検出関数５１１の結果５１３と、前記受信バッファ５１２内のスレーブCPU側演算結果が比較部５１４によって比較照合され、一致した場合には判定部５１５によって判定スレーブCPU制御装置１０４が正常であると判定され、不一致の場合は判定部５１５によってスレーブCPU制御装置１０４が異常であると判定され、異常であると判定された場合は、必要であれば外部に警報指令５１６が発せられる。
【００７３】
図６は、スレーブCPU制御装置１０４側で異常検出関数（図４の符号４０９もしくは図５の符号５０７）として検証しなければならないスレーブCPUハードウェアの機能部位の一例を示すブロック図である。
【００７４】
これらの異常検出関数は、スレーブCPU制御装置１０４内のROM６０４に格納されたソフトウェア・プログラム（異常検出関数f(x)の実体６０６）という形で実装されている。
【００７５】
ここで、前記異常検出関数の機能としてCPUコア６０１の健全性を検証するための手法としては、以下のような例が考え得る（前述した本発明の第７態様に対応する）。
【００７６】
異常検出関数f(x)の実体６０６を命令キャッシュ６１１にコピーしてCPUコア６０１に実行させる。その際、異常検出関数f(x)の出力が所定の関数入力における期待値と合致するならば、一連の命令実行フローに関与する機能デバイス、即ち、ROM６０４、アドレスバス６０９、データバス６１０、キャッシュ制御機構６１１、プログラムカウンタ及びスタックポインタを含む実行制御機構６１２、プログラムの演算途中経過をストアするレジスタ・ファイル６０８などの健全性が実証されたことになる。
【００７７】
また別の例としては、上記の命令演算の途中で複数の演算途中結果をレジスタ・ファイル６０８に保存する。しかる後に、該複数の演算途中結果間で算術もしくは論理演算を実行し、それを異常検出関数f(x)の結果に反映することにすれば、算術・論理演算回路６０７の健全性も検証可能となる。
【００７８】
上記は、スレーブCPU制御装置１０４内のCPUについての話であるが、スレーブ側CPUとマスタ側CPUのアーキテクチャが一致しない場合、すなわちレジスタビット幅が異なったりキャッシュの有無の違いがある場合は、マスタ側CPUでスレーブ側CPUアーキテクチャを適宜エミュレートし、出力期待値を正しく予想できるようにマスタ側異常検出関数を考慮しなければならない。
【００７９】
前記異常検出関数の機能として浮動小数点演算ユニット６０２の健全性を検証するための手法としては、以下のような例が考え得る（前述した本発明の第８態様に対応する）。
【００８０】
上述の異常検出関数の演算途中で、レジスタ・ファイル６０８上の演算途中結果を浮動小数点演算ユニット６０２により浮動小数点化を行う。さらに該浮動小数点数に関して浮動小数点演算ユニット６０２で何らかの定数演算を浮動小数点演算として行った後、再び固定小数点化してレジスタ・ファイル６０８に書き戻す。丸め誤差に考慮してこの演算過程を異常検出関数f(x)の結果に反映することにすれば、浮動小数点演算ユニット６０２の健全性をも検証することができる。
【００８１】
繰り返すが、上記はスレーブCPU制御装置１０４内のCPUについての話である。浮動小数点演算ユニットの有無でスレーブ側CPUとマスタ側CPUのアーキテクチャが異なる場合は、マスタ側CPUでスレーブ側CPUの浮動小数点演算機能を適宜エミュレートするようにマスタ側異常検出関数を考慮しなければならないことは言うまでもない。
【００８２】
前記異常検出関数の機能としてCPUに結合された周辺デバイス６０３の初期化データの不変性を検証するための手法としては、以下のような例が考え得る（前述した本発明の第９態様に対応する）。
【００８３】
CPU内蔵周辺デバイスには、A/D変換器６１３及びタイマ・デバイス６１４などが考えられるが、それらは各々コンフィギュレーションレジスタ（６１５、６１６）と呼ばれるレジスタを保持している。これらは、各々のデバイスの動作モードを予め選択することに使われ、プログラム起動時の初期化に際し所定の値を設定された後は書き換えられることは無い。
【００８４】
したがって、これらの値（ビットパターン）を前記異常検出関数f(x)の演算途中に使われる定数値と見なして演算を行えば、これら設定値のシステム動作期間中における不変性を検証することができる。
【００８５】
再度繰り返すが、上記はスレーブCPU制御装置１０４内のCPUについての話である。周辺デバイスの有無もしくは設定値の不一致などでスレーブ側CPU環境とマスタ側CPU環境が異なる場合は、マスタ側CPUでスレーブ側CPUの期待される演算動作を適宜エミュレートするようにマスタ側異常検出関数を考慮しなければならないことは言うまでもない。
【００８６】
図７は、マスタCPU制御装置１０１及びスレーブCPU制御装置１０４が実行する処理の一例を示す、前述した本発明の第１態様及び第２態様に対応するフローチャートである。図の左側の一連のフローチャートがマスタCPU制御装置１０１（マスタCPUと略称）での処理の流れを、右側の一連のフローチャートがスレーブCPU制御装置１０４（スレーブCPUと略称）での処理の流れを示している。左右のチャートを繋ぐ波線（７０６、７１１）は、図１に示される低速通信線１０８によるマスタCPU−スレーブCPU間のデータの授受を示している。
【００８７】
ステップ７０１は、マスタ側のスレーブCPU診断ルーチンの開始を示しており、ステップ７０２で乱数を発生させ、続くステップ７０３でスレーブCPU側が収集できない環境値もしくはスレーブ側の動作モードを選択するコマンド群と合体して指令値(x)を生成する。この指令値(x)は、スレーブCPU側制御の指令として使われるとともに、スレーブCPU側異常検出関数f(x)の入力（演算の“種”）となることは前述した通りである。
【００８８】
ステップ７０４では、上記指令値(x)をスレーブCPU側に伝送する（波線７０６）とともに、スレーブ側データ受信ルーチン（７０７）を起動する。一方、マスタ側ではステップ７０５によって異常検出関数f(x)の期待値(a)を予め計算し、以降の診断に備える。
【００８９】
スレーブ側では、ステップ７０８に基づき例題演算の禁止クランク角度（図２及び図３のクランク角度範囲θａ）における演算禁止動作が行われる。続くステップ７０９で異常検出関数f(x)の演算が実行されることによりスレーブ側での演算結果(b)が算出され、ステップ７１０でマスタ側CPUに返送される（波線７１１）。
【００９０】
マスタ側では、ステップ７１２によりスレーブ側演算結果が返送されるまで待ち動作が実行されているが、ここでマスタ側演算結果(a)とスレーブ側演算結果(b)がそろったことになるので、ステップ７１３で比較照合動作に入る。値が一致していればステップ７１４でスレーブCPUが正常と判定され、不一致ならばステップ７１５でスレーブCPUが異常と判定され、必要であれば外部に警報が発せられる。
【００９１】
図８は、マスタCPU制御装置１０１及びスレーブCPU制御装置１０４が実行する処理の他の例を示す、前述した本発明の第３態様及び第４態様に対応するフローチャートである。図の左側の一連のフローチャートがマスタCPU制御装置１０１（マスタCPUと略称）での処理の流れを、右側の一連のフローチャートがスレーブCPU制御装置１０４（スレーブCPUと略称）での処理の流れを示している。左右のチャートを繋ぐ波線（８０３および８１０）は、図１に示される低速通信線１０８によるマスタCPU−スレーブCPU間のデータの授受を示している。
【００９２】
ステップ８０１は、マスタ側のスレーブCPU診断ルーチンの開始を示しており、ステップ８０２では、指令値をスレーブCPU側に伝送する（波線８０３）とともに、スレーブ側データ受信ルーチン（８０４）を起動する。この指令値は、本例においては異常検出関数f(x)の入力（演算の“種”）となることは無いが、スレーブ側例題演算を所定クランク軸回転毎に実行するペースメーカの役目を果たすことは前述した通りである。
【００９３】
スレーブ側では、続くステップ８０５基づき例題演算の禁止クランク角度（図２、図３のクランク角度範囲θａ）における演算禁止動作が行われる。
【００９４】
ステップ８０６では、異常検出関数f(x)の入力（演算の“種”）が毎回異なるように乱数の発生が行われ、ステップ８０７では、スレーブCPU側が入手可能な環境値（そのA/D変換値）との合体が行われ、異常検出関数の入力値(x)が生成される。ステップ８０８では、前記入力値(x)をもとにしたスレーブ側異常検出関数f(x)の計算が実行されその演算結果(b)が生成されるとともに、ステップ８０９で、上述の関数入力値(x)と出力値(b)の組みが回答(x, b)としてマスタCPU側に転送される（波線８１０）。
【００９５】
関数入力値(x)と出力値(b)の組みは、通信タイミング毎に各々関数の入出力値である対データとしての関連性が保証されよう、同一通信フレームに載せてマスタ側に送るべきことは前述した通りである。
【００９６】
マスタ側では、ステップ８１１によりスレーブ側演算データ対が回答されるまで待ち動作が実行されているが、ここでスレーブ側関数入力値(x)と出力値(b)の組みデータがそろったことになるので、続くステップ８１２以降で検証動作に入る。
【００９７】
ステップ８１２では、スレーブ側異常検出関数の入力値(x)（演算の“種”）が前回と比べて変化しているかが確かめられる。もし、変化していなければスレーブ側例題演算機構に不具合が発生している可能性があるので、ステップ８１６に飛び、スレーブCPUが異常であると判定し、必要であれば外部に警報指令を発する。
【００９８】
もし、変化していれば続くステップ８１３でスレーブ側より送られた入力値(x)をもとにマスタ側での演算期待値(a)の生成が行われる。
【００９９】
ステップ８１４では、このマスタ側期待値(a)とスレーブ側演算結果(b)の比較照合動作が実行される。値が一致していればステップ８１５でスレーブCPUが正常と判定され、不一致ならばステップ８１６でスレーブCPUが異常と判定される。
【０１００】
なお、上記した実施形態では、クランク軸一回転に一回診断を行うと例示してあるが、複数回に一回でも、また、クランク軸一回転に満たない所定クランク角度毎の診断に対しても本発明は適用可能であることは言うまでもない。
【０１０１】
また、上記した実施形態では電磁駆動弁（吸排気弁）３４、３５がその制御対象とされているが、本発明は、電磁駆動弁に限定されるものではなく、クランク軸回転に同期して制御がなされるスマート・アクチュエータならばスレーブCPU制御装置としてどんなものでも良い。
【０１０２】
例えば、可変バルブ機構用アクチュエータ、燃料噴射用アクチュエータ、混合気点火用アクチュエータ、吸排気の制動・共鳴用アクチュエータ、エンジンブロック制振用アクチュエータ等、種々のものに適用可能である。
【図面の簡単な説明】
【０１０３】
【図１】本発明に係る異常監視システムの実施形態をそれが適用された車載用内燃機関と共に示す概略構成図。
【図２】本発明実施形態のマスタCPU制御装置とスレーブCPU制御装置の動作例を示すチャート。
【図３】本発明実施形態のマスタCPU制御装置とスレーブCPU制御装置の別の動作例を示すチャート。
【図４】本発明実施形態のマスタCPU制御装置及びスレーブCPU制御装置が実行する処理の一例を示すブロック図。
【図５】本発明実施形態のマスタCPU制御装置及びスレーブCPU制御装置が実行する処理の他の例を示すブロック図。
【図６】本発明実施形態のスレーブCPU制御装置のハードウェアの一例を示すブロック図。
【図７】本発明実施形態のマスタCPU制御装置及びスレーブCPU制御装置が実行する処理の一例を示すフローチャートである。
【図８】本発明実施形態のマスタCPU制御装置及びスレーブCPU制御装置が実行する処理の他の例を示すフローチャート。
【符号の説明】
【０１０４】
１０…車載用内燃機関
１６…クランク軸
３４、３５…電磁駆動弁（吸排気弁）
１０１…マスタCPU制御装置
１０２…スタータスイッチ
１０３…クランク角センサ
１０４、１０５…スレーブCPU制御装置
１０６・１０７…高速トリガ線
１０８・１０９…低速通信線
【図１】
2005240631.tif 000003
【図２】
2005240631.tif 000004
【図３】
2005240631.tif 000005
【図４】
2005240631.tif 000006
【図５】
2005240631.tif 000007
【図６】
2005240631.tif 000008
【図７】
2005240631.tif 000009
【図８】
2005240631.tif 000010