(57)【要約】【課題】制御タスクに対する起動要求が遅延する場合であっても、適切に制御タスクの分散処理、特に自己診断タスクの分散処理が実現できる柔軟性に富んだ電子制御装置を提供する。【解決手段】対応するイベントに同期して制御タスクを実行して制御対象機器を制御する電子制御装置ＥＣＵ１ａに、各イベントの演算負荷状態をモニタする負荷状態判断部と、高負荷状態のイベントに含まれる自己診断タスクの代替実行を、他の電子制御装置ＥＣＵ１ｂに要求し、当該自己診断タスクに対応するイベントの演算負荷状態が緩和されたときに、当該自己診断タスクの代替実行結果を回収要求するタスク分散処理部を備え、前記タスク分散処理部は、当該他の電子制御装置ＥＣＵ１ｂに自己診断タスクの代替実行に必要なカレントデータを含む診断基準情報を所定周期で供給する。【選択図】図５
2009157512.tif 000002
【特許請求の範囲】
【請求項１】
異常検出処理を含む複数の処理を実行することにより制御対象機器を制御する電子制御装置であって、
前記複数の処理に関連する情報を記憶する記憶部と、
前記複数の処理の演算負荷が第一の所定値よりも高いと判断した場合に、前記異常検出処理の代替処理を他の電子制御装置に要求し、前記複数の処理の演算負荷が第二の所定値よりも低いと判断した場合に、当該他の電子制御装置に要求した異常検出処理の異常検出結果を送信するよう要求し、該異常検出結果を前記記憶部に記憶させる制御部とを備えたことを特徴とする電子制御装置。
【請求項２】
前記制御部は、他の電子制御装置へ要求した異常検出処理に必要な情報を送信することを特徴とする請求項１記載の電子制御装置。
【請求項３】
前記制御部は、異常検出処理の代替実行条件を付加して他の電子制御装置に代替実行を要求し、前記代替実行条件を満たす他の電子制御装置からの応諾に基づいて代替実行する電子制御装置を決定することを特徴とする請求項１記載の電子制御装置。
【請求項４】
前記制御部は、異常検出処理の代替実行条件を満たす他の電子制御装置の候補リストを備え、前記候補リストに基づいて選択される他の電子制御装置に代替実行を要求することを特徴とする請求項１記載の電子制御装置。
【請求項５】
前記制御部は、複数の異常検出処理のうち、代替実行により演算負荷の軽減度が高くなる異常検出処理を優先して、他の電子制御装置に代替実行を要求することを特徴とする請求項１記載の電子制御装置。
【請求項６】
異常検出処理を含む複数の処理を実行することにより制御対象機器を制御する電子制御装置であって、
前記複数の処理の演算負荷状態をモニタする負荷状態判断部と、
他の電子制御装置から要求された異常検出処理を代替実行する代替実行処理部を備え、
前記代替実行処理部は、請求項１から５の何れかに記載の電子制御装置からの異常検出処理の代替実行の要求に対して、前記負荷状態判断部により演算負荷状態が低いと判断されたときに代替実行を応諾することを特徴とする電子制御装置。
【請求項７】
前記代替実行処理部は、異常検出処理の代替実行時に前記負荷状態判断部により演算負荷状態が高いと判断されると、要求元の電子制御装置に代替実行の中断を要求することを特徴とする請求項６記載の電子制御装置。
【請求項８】
前記代替実行処理部は、異常検出処理の代替実行時に異常が発生したと診断すると、直ちに要求元の電子制御装置に異常診断情報を送信することを特徴とする請求項６または７記載の電子制御装置。
【請求項９】
請求項１から５の何れかに記載の電子制御装置と、請求項６から８の何れかに記載の電子制御装置がネットワーク接続されていることを特徴とする異常診断システム。
【請求項１０】
異常検出処理を含む複数の処理を実行することにより制御対象機器を制御する電子制御装置の異常診断方法であって、
前記複数の処理の演算負荷状態が第一の所定値よりも高いか否かを判断する負荷状態判断ステップと、
前記負荷状態判断ステップで演算負荷状態が所定値よりも高いと判断すると、前記異常検出処理の代替処理を他の電子制御装置に要求する代替実行要求ステップと、
前記複数の処理の演算負荷が第二の所定値よりも低いと判断した場合に、当該他の電子制御装置に要求した異常検出処理の異常検出結果を送信するよう要求する代替実行結果回収ステップと、
回収した異常検出結果を記憶部に記憶させる記憶ステップを備えたことを特徴とする電子制御装置の異常診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常検出処理を含む複数の処理を実行することにより制御対象機器を制御する電子制御装置、当該電子制御装置により実行される異常診断システム、及び、電子制御装置の異常診断方法に関する。
【背景技術】
【０００２】
近年、車両に搭載されるエンジンやブレーキ等の制御対象機器を制御するマイクロコンピュータを備えた電子制御装置（Electronic control unit）（以下、「ＥＣＵ」とも記す。）では、ドライビング性能、燃費、エミッション性能等の向上のための様々な制御タスクで構成される制御プログラムがマイクロコンピュータに組み込まれ、マイクロコンピュータでは各制御タスクに対応するイベントに同期して各制御タスクが実行されるように構成されている。
【０００３】
特にエンジンを制御するＥＣＵでは、クランクパルス信号等のパルス割込み、ＡＤ変換割込み、インタバルの異なる複数のタイマ割込み等のイベント発生に応じて様々な制御タスクが実行されている。
【０００４】
これらのイベントには夫々優先順位が付され、パルス割込み処理等の優先順位の高いイベントに対応する制御タスクが優先的に実行されるように構成されているため、例えば、高速走行時等にパルス割込み周期が短くなる高負荷状態に移行すると、優先順位の低いイベントに対する制御タスクの実行周期が長くなる。
【０００５】
優先順位の低いイベントに対応した制御タスクとして様々な制御対象機器の異常または正常を判定する複数の自己診断タスクが組み込まれているが、自己診断タスクの実行周期が長くなると適正な判定ができず、その結果、適切な制御がなされずに、上述した各種の性能の低下を来たす虞がある。
【０００６】
そのため、高負荷状態であっても優先順位の低いイベントに対応する制御タスクが確実に実行されるように、処理速度の早いマイクロコンピュータを採用してＥＣＵを構成すると、部品コストが嵩むという不都合が発生する。また、マイクロコンピュータの性能の進化が制御タスクの増大に追随しない場合には、高価なマイクロコンピュータを採用しても同様の問題が発生する。
【０００７】
このような問題に対応すべく、特許文献１には、複数のＥＣＵがネットワークを介して接続された車両用通信システムで、各制御装置を効率よく動作させて、制御装置全体の稼働率を高め、各制御装置の資源を有効に活用できるようにすることを目的として、各ＥＣＵが実行する制御プログラムを、各ＥＣＵ固有の単位プログラムである固有タスクと、任意のＥＣＵで実行可能な単位プログラムであるフロートタスクとの２種類に分割し、ネットワークに接続されるＥＣＵの一つとして、ネットワークを介して、各ＥＣＵの処理負荷を監視し、処理負荷が低くフロートタスクを実行可能なＥＣＵにフロートタスクを実行させるタスク制御装置を設けた車両用通信システムが提案されている。
【０００８】
また特許文献２には、複数のＥＣＵがネットワークで接続された分散制御システムで、リアルタイム性を保証した上で各ＥＣＵを効率よく稼動させ、リアルタイム性を保証した負荷分散システムを提供することを目的として、各ＥＣＵに自己が実行すべきタスクとして起動されたタスク管理リストを備え、各ＥＣＵは、タスク管理リスト内の全てのタスクがデッドラインまたはタスク周期を満足できるか否かを判定して、満足できないと判定された場合に、タスク管理リストに含まれるタスクの中から、他のＥＣＵでデッドラインまたはタスク周期を満足して実行可能なタスクを選択して、他のＥＣＵにタスクの実行を依頼する分散制御システムが提案されている。
【特許文献１】特開２００４−３８７６６号公報
【特許文献２】特開２００６−１３４２０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献１に記載された車両用通信システムでは、フロートタスク実行用のプログラムがタスク制御装置に記憶され、タスク制御装置が車両状態等に応じてフロートタスク実行用のプログラムを処理負荷が低くフロートタスクを実行可能なＥＣＵに転送して該ＥＣＵにフロートタスクを実行させるように構成されるものであるため、予め設定された優先順位に従ってフロートタスクを実行するＥＣＵを選択するように、システムに応じて専用のタスク制御装置を構築しなければならず、汎用性が無く柔軟に対応できないという問題があった。
【００１０】
また、特許文献２に記載された分散制御システムでは、ＥＣＵがタスクの起動要求に基づいてタスクのスケジューリングを行ない、デッドラインまたはタスク周期を満足できるか否かの判定に基づいて、他のＥＣＵにタスクの実行を依頼するものであり、タスクの起動要求自体が受け付けられない場合には、適切に負荷分散が行なえないという問題があった。
【００１１】
例えば、イベントに夫々優先順位が付され、パルス割込み処理等の優先順位の高いイベントに対応する制御タスクが優先的に実行されるように構成されているときに、優先順位の低いイベントに対応する制御タスクの起動要求が遅延するのである。
【００１２】
さらに、他のＥＣＵが代替実行したタスクの結果を、その終了のタイミングで返信するため、要求元のＥＣＵが処理できない場合が発生するという問題があった。
【００１３】
本発明の目的は、上述した従来の問題点に鑑み、制御タスクに対する起動要求が遅延する場合であっても、適切に制御タスクの分散処理、特に自己診断タスクの分散処理が実現できる柔軟性に富んだ電子制御装置、異常診断システム、及び、電子制御装置の異常診断方法を提供する点にある。
【課題を解決するための手段】
【００１４】
上述の目的を達成するため、本発明による電子制御装置の特徴構成は、異常検出処理を含む複数の処理を実行することにより制御対象機器を制御する電子制御装置であって、前記複数の処理に関連する情報を記憶する記憶部と、前記複数の処理の演算負荷が第一の所定値よりも高いと判断した場合に、前記異常検出処理の代替処理を他の電子制御装置に要求し、前記複数の処理の演算負荷が第二の所定値よりも低いと判断した場合に、当該他の電子制御装置に要求した異常検出処理の異常検出結果を送信するよう要求し、該異常検出結果を前記記憶部に記憶させる制御部とを備えた点にある。
【００１５】
制御部は、複数の処理に関連する情報を記憶部に記憶しつつ、複数の処理の演算負荷が第一の所定値よりも高く、処理が円滑に行なえないときに、異常検出処理の代替処理を他の電子制御装置に要求し、演算負荷が第二の所定値よりも低くなったときに、他の電子制御装置に要求した異常検出処理の異常検出結果を受信して、受信した異常検出結果を記憶部に記憶する。
【発明の効果】
【００１６】
以上説明した通り、本発明によれば、制御タスクに対する起動要求が遅延する場合であっても、適切に制御タスクの分散処理、特に自己診断タスクの分散処理が実現できる柔軟性に富んだ電子制御装置を提供することができるようになった。
【発明を実施するための最良の形態】
【００１７】
以下、本発明による電子制御装置、当該電子制御装置により実行される異常診断システム、及び、電子制御装置の異常診断方法を説明する。
【００１８】
図１に示すように、車両に搭載されるエンジンやブレーキ等の制御対象機器を制御するマイクロコンピュータを備えた複数の電子制御装置（以下「ＥＣＵ」と記す。）１（１ａ，１ｂ，１ｃ，・・・）がＣＡＮ（Controller Area Network）バス２を介して互いに接続されている。
【００１９】
各ＥＣＵは、車載された複数の制御対象機器に組み込まれた各種のセンサからの検出信号やＣＡＮバス２を介して受信した他のＥＣＵの制御情報に基づいて各種のアクチュエータを制御することにより制御対象機器が所定の機能を発揮するように構成され、例えば、ＥＣＵ１ａはエンジンを制御し、ＥＣＵ１ｂはトランスミッションを制御し、ＥＣＵ１ｃはブレーキを制御するように構成されている。尚、図には示していないが、ＥＣＵはこれら以外にパワーステアリング用ＥＣＵ、セキュリティ用ＥＣＵ等複数設けられている。
【００２０】
ＣＡＮバス２は、両端が終端抵抗２０で処理された二本の信号線（ＣＡＮＨとＣＡＮＬ）で構成される差動シリアル通信バスで、例えばＣＳＭＡ／ＣＤ方式等によりバスへのアクセス権が制御されるマルチキャスト、マルチマスタ方式のバスである。
【００２１】
ＣＡＮバス２で送信されるデータフレームは、１ｂｉｔのＳＯＦ（Start Of Frame)、１２ｂｉｔのアービトレーション領域、６ｂｉｔのコントロール領域、０から８Ｂｙｔｅのデータ領域、１６ｂｉｔのＣＲＣ領域、２ｂｉｔのアクノリッジ領域、７ｂｉｔのＥＯＦ（End Of Frame)で構成され、アービトレーション領域のうちＭＳＢから１１ｂｉｔの長さのデータ識別子により送信されるデータ種が判別可能に構成され、０から８Ｂｙｔｅのデータ領域に送信データが格納される。
【００２２】
各ＥＣＵ１はデータ識別子に基づいて送信されるデータ種を認識して、必要なデータを取り込む。例えば、各ＥＣＵ１にデータ識別子からデータ種を判別するテーブルデータを備えることにより、処理に必要なデータが選択できる。
【００２３】
各ＥＣＵ１は、ＲＯＭに格納された制御プログラムを実行するＣＰＵを備えたマイクロコンピュータ及び周辺回路を備えて構成され、制御対象機器に設けられたセンサからの出力信号に基づいて制御対象機器に設けられた各種のアクチュエータを駆動制御する。
【００２４】
例えば、エンジン制御用のＥＣＵ１ａは、図２に示すように、マイクロコンピュータ１０と、拡張バス１１で接続されたメモリ１２と、周辺回路等を備えて構成されている。
【００２５】
マイクロコンピュータ１０は、アナログ信号をデジタル信号に変換するＡＤ変換ポート群ＩＰ（ＡＤ）、パルス信号を入力するキャプチャポート群ＩＰ（１）、デジタル信号を入力する入力ポート群ＩＰ（２）、制御信号を出力する各種の出力ポート群ＯＰ、ＣＡＮバス２と接続するシリアル通信ポートＳＩＯ等を備え、各ポートにはバッファ回路やドライバ回路が接続されている。
【００２６】
メモリ１２として、複数の制御タスクで構成される制御プログラムが格納されたＲＯＭ１２ａ、ＣＰＵの作業領域として使用されるＲＡＭ１２ｂ、イグニッションスイッチのオフ時にも給電されるスタンバイＲＡＭ１２ｃ、重要な制御データが格納されるＥＥＰＲＯＭ１２ｄが設けられ、後述する複数の自己診断タスクの実行結果等の診断情報がＲＡＭ１２ｂ、スタンバイＲＡＭ１２ｃ、ＥＥＰＲＯＭ１２ｄの何れかに格納される。
【００２７】
他のＥＣＵ１も同様に、制御対象機器に対応して必要な入出力ポート等を備えたマイクロコンピュータ、メモリ、及び、周辺回路が設けられている。
【００２８】
各ＥＣＵ１は、異常検出処理としての自己診断タスクを含む複数の処理としての制御タスクを、各制御タスクに対応するイベントに同期して実行することにより制御対象機器を制御する。
【００２９】
例えば、エンジン制御用のＥＣＵ１ａでは、図３に示すように、キャプチャポートに入力されたクランクパルスのエッジで発生するＮＥ割込み（ＳＡ１）、シリアル通信ポートＳＩＯによるＣＡＮ通信完了時に発生するＣＡＮ割込み（ＳＡ３）、ＡＤ変換ポートへの入力信号に対するＡＤ変換完了時に発生するＡＤ割込み（ＳＡ５）、１ｍｓｅｃ．，４ｍｓｅｃ．，８ｍｓｅｃ．，１６ｍｓｅｃ．，３２ｍｓｅｃ．の各インタバルで発生するタイマ割込み（ＳＡ７，ＳＡ９，ＳＡ１１，ＳＡ１３，ＳＡ１５）といった各種のイベントが発生したときに、夫々設定されている複数の制御タスクで構成される割込み処理（ＳＡ２，ＳＡ４，ＳＡ６，ＳＡ８，ＳＡ１０，ＳＡ１２，ＳＡ１４，ＳＡ１６）を実行するように構成されている。
【００３０】
各イベントには夫々優先順位が付され、優先順位の高いイベントに対応する制御タスクである高タスクが優先的に実行されるように割込み制御レジスタが設定されている。図３に示すフローチャートでは、ＮＥ割込み、ＣＡＮ割込み（ＳＡ３）、ＡＤ割込み（ＳＡ５）、１ｍｓｅｃ．，４ｍｓｅｃ．，８ｍｓｅｃ．，１６ｍｓｅｃ．，３２ｍｓｅｃ．の各インタバルで発生するタイマ割込みの順に優先順位が設定され、優先順位の低いイベントの発生時に優先順位の高いイベントが発生すると優先順位の高いイベントに対応する制御タスクが優先的に実行され、その後に優先順位の低いイベントに対応する制御タスクである低タスクが実行される。
【００３１】
各タイマ割込みに対応する制御タスクには、制御対象機器または制御対象機器に組み込まれているセンサやアクチュエータ等が正常に作動しているか否かを判断する単一または複数の自己診断タスクが含まれている。
【００３２】
自己診断タスクは、所定の制御条件下で診断対象から入力されるアナログ信号のレベルやデジタル信号の論理値が、想定される適正範囲のレベルまたは適正な論理値を示しているか否かに基づいて、診断対象が正常作動しているか異常作動しているかを判断するタスクである。
【００３３】
診断対象から入力されるアナログ信号のレベルやデジタル信号の論理値が想定される適正範囲のレベルまたは適正な論理値に収まり、或は逸脱しているときに、その継続時間が対応するイベントで計時、実際には正常または異常判定するための診断カウンタの値がインクリメントされ、当該診断カウンタの値が所定の閾値を超えると正常または異常と判断され、当該診断情報が上述のＲＡＭ１２ｂ、スタンバイＲＡＭ１２ｃ、ＥＥＰＲＯＭ１２ｄの何れかに格納される。
【００３４】
異常診断中に診断対象から入力されるアナログ信号のレベルやデジタル信号の論理値が想定される適正範囲のレベルまたは適正な論理値に収まるとカウンタの値はリセットされ、正常診断中に診断対象から入力されるアナログ信号のレベルやデジタル信号の論理値が想定される適正範囲のレベルまたは適正な論理値から逸脱すると診断カウンタの値はリセットされる。
【００３５】
つまり、ノイズの影響により誤診断することの無いように、閾値として設定された時間だけ正常または異常状態が継続したときに、夫々正常または異常と判断される。尚、診断中に上述した所定の制御条件から外れると、診断対象によっては、診断が中断されて診断カウンタの値がそのまま保持され、或は診断が中断されて診断カウンタの値がリセットされる。
【００３６】
診断情報が何れのメモリ１２に格納されるかは、予め診断対象毎に決定されている。例えば、イグニッションスイッチがオンされた後にオフされるまでの間を一トリップとして、複数トリップに跨ってカウンタの値を保持する必要があるときには、スタンバイＲＡＭ１２Ｃにカウンタの値が診断情報の一部として格納され、一トリップ内でカウンタの値を保持する必要があるときにはＲＡＭ１２Ｂにカウンタの値が診断情報の一部として格納され、車両の出荷から廃棄までの間を通してカウンタの値を保持する等の必要があるときにはＥＥＰＲＯＭ１２ｄに診断カウンタの値が診断情報の一部として格納される。
【００３７】
自己診断タスクにより、例えばバッテリの状態、Ｏ２センサの状態、水温センサの状態等が自己診断される。自己診断タスクにより異常と診断され、メモリ１２に格納された診断情報は、修理時にＥＣＵに接続される外部機器を介してリセットされ、或はその後同じ自己診断タスクで正常判定されたときにリセットされる。
【００３８】
このような診断情報の一部は、自己診断タスクによりＣＡＮバス２を介してインストルメントパネルのランプ等を制御するメータＥＣＵに送信され、診断情報に対応するウォーニングランプが点灯され、或はウォーニングコードが表示される。
【００３９】
図３に示すＥＣＵ１ａのタスク実行フローで、例えば、高速走行時等にエンジンの回転数が上昇すると、ＮＥ割込み周期が短くなり、頻繁にＮＥ割込みに対応する制御タスクが実行される結果、優先順位の低い８ｍｓｅｃ．，１６ｍｓｅｃ．，３２ｍｓｅｃ．等のタイマ割込みに対応する制御タスクの実行周期が長くなり、低タスクの演算負荷状態が悪化する。
【００４０】
演算負荷状態は、イベントの発生により処理される制御タスクの実行周期として把握することができ、図４に示すように、各タイマ割込みに対する制御タスクの実行周期が設定周期の１．５倍未満の周期となるときに低負荷状態、実行周期が設定周期の１．５倍以上２倍未満の周期となるときに中負荷状態、実行周期が設定周期の２倍以上の周期となるときに高負荷状態と把握される。尚、負荷状態の識別範囲はこのような値に限るものではなく、対象となるＥＣＵに用いられるマイクロコンピュータの性能や制御対象機器の特性等により適宜設定される値である。
【００４１】
イベントの演算負荷状態をモニタするプログラムがイベント毎に起動するように設定され、当該プログラムと当該プログラムを実行するマイクロコンピュータのハードウェアリソースで構成される負荷状態判断部が夫々のＥＣＵ１に設けられている。
【００４２】
さらに、ＥＣＵ１ａには負荷状態判断部により第一の所定値である高負荷状態と判断されたイベントに含まれる自己診断タスクの代替実行を、ネットワークを介して他の電子制御装置に要求等するプログラム及び対応するマイクロコンピュータのハードウェアリソースで構成されるタスク分散処理部が、比較的優先順位の高い１ｍｃｅｃ．の割込みイベントに対応するタスクの一部として実行されるように組み込まれている。
【００４３】
一方、他のＥＣＵ１ｂ，１ｃ，・・・には、同様に各イベントの演算負荷状態をモニタする負荷状態判断部と、他のＥＣＵから要求された自己診断タスクを代替実行するプログラム及び対応するマイクロコンピュータのハードウェアリソースで構成されるタスク代替実行処理部が、同様に比較的優先順位の高い１ｍｃｅｃ．の割込みイベントに対応するタスクの一部として実行されるように組み込まれている。
【００４４】
図５に示すように、タスク分散処理部は、あるイベントが負荷状態判断部により高負荷状態と判断され、代替処理が必要な自己診断タスクがあると（ＳＢ１）、当該イベントに含まれる自己診断タスクのうち、重要度の高い自己診断タスクまたは演算負荷の軽減度が高い自己診断タスクを優先して選択し（ＳＢ２）、他の電子制御装置に当該自己診断タスクの代替実行を要求する（ＳＢ３，ＳＢ４，ＳＢ５）。予めＲＯＭ１２ａに格納されている自己診断タスクの優先度を示すイベント毎に設定された優先タスクテーブルに基づいて、代替実行を要求する自己診断タスクが選択されるのである。尚、優先度を設定せずに負荷状態判断部により高負荷状態と判断されたイベントに含まれる全ての自己診断タスクの代替実行を要求するように構成されるものであってもよい。
【００４５】
具体的には、ＥＣＵ１ａのタスク分散処理部からＣＡＮバス２を介して他のＥＣＵ１ｂ，１ｃ，・・・に対して代替実行の確認要求データが送信され、他のＥＣＵ１ｂ，１ｃ，・・・のタスク代替実行処理部から確認応答データが返信される。
【００４６】
シリアル通信ポートＳＩＯに設けられた送信バッファに送信データがセットされるとシリアル通信ポートＳＩＯからＣＡＮバス２上にデータが送信され、ＣＡＮバス２を介して受信された受信データは、シリアル通信ポートＳＩＯに設けられた受信バッファにデータがセットされる。シリアル通信ポートＳＩＯからデータの送信が完了し、または受信バッファにデータがセットされるとＣＡＮ割込みイベントが発生し、当該イベントで次の送信データが送信バッファにセットされ、或は受信バッファのデータがＲＡＭ１２ｂに格納される。
【００４７】
図６（ａ）に示すように、確認要求データ及び確認応答データは、上述したＣＡＮのデータフレームのうち、データ識別子（ＣＡＮＩＤ）と、♯１から♯８の各１Ｂｙｔｅのデータ領域に必要なデータが設定されたデータフレームで構成される。
【００４８】
本実施形態では、確認要求データのデータ識別子は送信先ＥＣＵを特定する「７＊＊ｈ」の１１ｂｉｔデータで設定され、例えば「７２０ｈ」に設定されると他の全てのＥＣＵ１ｂ，１ｃ，・・・が送信先に設定され、「７０２ｈ」に設定されるとＥＣＵ１ｂが送信先に設定され、「７０３ｈ」に設定されるとＥＣＵ１ｃが送信先に設定され、確認応答データのデータ識別子は送信元ＥＣＵを特定する「７＊＊ｈ」の１１ｂｉｔデータで設定される。つまり、下位８ｂｉｔで任意のＥＣＵを特定できるようにデータ識別子が利用される。
【００４９】
さらに、確認要求データのデータ領域♯１には代替処理モードを示すコードデータが設定され、データ領域♯２には異常検出確認コマンドデータが設定され、データ領域♯３には自己診断タスクの処理タイミング、つまり、タイマ割込みのインタバルが設定され、データ領域♯４には診断情報の格納先を示すリソース情報、つまり、診断情報が格納されるメモリがＲＡＭであるか、スタンバイＲＡＭであるか、ＥＥＰＲＯＭであるかが設定され、データ領域♯５には自己診断の種類を示す診断コード（ダイアグコード）が設定される。
【００５０】
確認応答データのデータ領域♯３には代替処理の応諾または拒否を示すデータが設定され、データ領域♯１，♯２には確認要求データと同じデータが設定される。尚、応諾または拒否を示すデータには、演算負荷状態とリソースの有無を示すデータが付加される。
【００５１】
確認要求データを受信した他のＥＣＵ１ｂ，１ｃ，・・・のタスク代替実行処理部は、要求された自己診断の実行イベントの演算負荷状態が低負荷状態であると自己の負荷状態判断部により判断され、要求されたリソース情報を満たしていると判断されたときに（ＳＣ１）、代替実行を応諾するべく確認応答データのデータ領域♯３に応諾を示すデータを設定して返信し（ＳＣ２）、何れかの条件を充足しないときには（ＳＤ１）、確認応答データのデータ領域♯３に拒否を示すデータを設定して返信する（ＳＤ２）。
【００５２】
タスク分散処理部は確認要求データの送信後、確認応答データの受信を所定時間受け付け、応諾する旨の返信データを受信したＥＣＵの中から特定のＥＣＵを選択して（ＳＢ４）、自己診断タスクの代替要求データを送信する（ＳＢ５）。
【００５３】
この場合、最先に応諾したＥＣＵを選択してもよいが、候補となるＥＣＵに対して、自己診断タスクが代替処理されるイベント毎に予測演算負荷が低いものほど高い優先順位を設定したテーブルデータを予めＲＯＭ１２ａに記憶しておき、応諾する旨の返信データを受信したＥＣＵのうち一番優先順位の高いＥＣＵを選択するように構成することが好ましい。
【００５４】
また、各ＥＣＵに組み込まれているマイクロコンピュータのシステムクロックの周波数が高い順に高い優先順位を設定したテーブルデータを予めＲＯＭ１２ａに記憶しておき、応諾する旨の返信データを受信したＥＣＵのうち一番優先順位の高いＥＣＵを選択するように構成するものであってもよい。
【００５５】
即ち、タスク分散処理部は、自己診断タスクの代替実行条件を付加して他のＥＣＵに代替実行を要求し、代替実行条件を満たす他のＥＣＵからの応諾に基づいて代替実行する電子制御装置を決定する。図５ではトランスミッションを制御するＥＣＵ１ｂに代替要求データを送信する例が示されている。
【００５６】
図６（ｂ）に示すように、代替要求データのデータ領域♯２には異常検出要求コマンドデータが設定され、データ領域♯６には自己診断タスクの代替実行に必要なカレントデータを含む診断基準情報が設定される。
【００５７】
診断基準情報は自己診断タスクを実行するために必要な基準情報で、診断対象がアナログ系の信号を出力するセンサ等であるとき、種別データであるアナログ系異常検出、カレントデータである信号値、判定閾値電圧値、異常判定時間等で構成され、診断対象がデジタル系の信号を出力するセンサ等であるとき、種別データである論理計異常検出、カレントデータである信号の論理値、判定論理値、異常判定時間等で構成される。
【００５８】
代替処理の要求中は（ＳＢ６）、代替する自己診断の処理タイミング、つまりイベントの実行周期より短い所定周期を１ｍｓｅｃ．のタイマ割込みでカウントして、診断基準情報を最新のカレントデータに更新した代替要求データが繰り返し送信される（ＳＢ７）。例えば、代替要求する自己診断タスクが８ｍｓｅｃ．のタイマ割込みで処理される必要があるときには、８ｍｓｅｃ．以下のインタバルで代替要求データが送信される。
【００５９】
即ち、タスク分散処理部は、要求した自己診断タスクを実行する他の電子制御装置に自己診断タスクの代替実行に必要なカレントデータを含む診断基準情報を所定周期で供給するように構成されている。
【００６０】
自己診断タスクの代替要求データを受信したトランスミッション制御用のＥＣＵ１ｂは、対応するイベントで自己診断タスクを代替処理するように設定して、ＥＣＵ１ａに代替応答データを返信する（ＳＣ３）。代替処理が必要な自己診断タスクの実行イベントの演算負荷状態が低負荷状態であると自己の負荷状態判断部により判断されている間は（ＳＣ４）、自己診断タスクを代替して実行する（ＳＣ５）。
【００６１】
図６（ｂ）に示すように、代替応答データのデータ領域♯３には検出状態データが設定され、代替処理する自己診断タスクの実行イベントの演算負荷状態が低負荷状態で代替処理が可能な状態であることを示す検出中データ、または、演算負荷状態が中または高負荷状態であり代替処理が不可能な状態であることを示す検出不可データが設定される。
【００６２】
代替応答データは代替要求データに応答して初回に検出中データを設定して返信され、その後、演算負荷状態が中または高負荷状態に変化したときに（ＳＣ４）、検出不可データを設定して返信される（ＳＣ１０）。尚、代替要求データに応答してその都度代替応答データが返信されるものであってもよい。
【００６３】
即ち、タスク代替実行処理部は、自己診断タスクの代替実行時に負荷状態判断部により演算負荷状態が高いと判断されると、要求元の電子制御装置に代替実行の中断を要求するように構成されている。
【００６４】
代替処理不能データが設定された代替応答データ、つまり代替実行の中断が要求され（ＳＢ８）、または、代替要求した自己診断タスクが実行されるべきイベントの演算負荷状態が第二の所定値である低負荷状態に移行すると（ＳＢ９）、タスク分散処理部は診断情報の回収要求データをＥＣＵ１ｂに送信し（ＳＢ１０）、ＥＣＵ１ｂのタスク代替実行処理部から診断応答データを受信して（ＳＢ１１）、診断応答データに含まれる診断情報をメモリ１２に区画されたダイアグコードに対応する領域に記憶する（ＳＢ１２）。
【００６５】
尚、メモリ１２は、上述したようにダイアグコードによりＲＡＭ，スタンバイＲＡＭ、ＥＥＰＲＯＭの何れかに選択的に記憶され、異常と検出されているときには、上述したＥＣＵ１ａの自己診断タスクによりメータＥＣＵに送信される。。
【００６６】
即ち、要求した自己診断タスクに対応するイベントの演算負荷状態が負荷状態判断部により緩和されたと判断されたときに、当該他の電子制御装置に要求した自己診断タスクの代替実行結果を回収要求するように構成されている。
【００６７】
尚、代替実行の中断の要求に対応して回収要求データを送信した後には、ステップＳＢ１からステップＳＢ５の処理が再度実行される。
【００６８】
図６（ｃ）に示すように、回収要求データのデータ領域♯２には実行結果回収要求コマンドが設定され、データ領域♯３には自己診断の種類を示す診断コード（ダイアグコード）が設定される。また、診断応答データのデータ領域♯２には実行結果回収応答コマンドが設定され、データ領域♯３には診断コード（ダイアグコード）が設定され、データ領域♯４には診断情報が設定される。診断情報は正常、異常、未判定（検出中）の何れかのデータ及び診断カウンタの値で構成されている。尚、診断カウンタの値は複数トリップに跨って自己診断を行なう必要がある場合には必須となるが、それ以外の場合には診断対象により不要となるものもある。
【００６９】
ＥＣＵ１ｂのタスク代替実行処理部は、代替処理が必要な自己診断タスクの実行イベントの演算負荷状態が低負荷状態であると自己の負荷状態判断部により判断されている間（ＳＣ４）、自己診断タスクを代替実行して（ＳＣ５）、その結果を指定されたメモリに格納し（ＳＣ６）、自己診断タスクの代替実行により異常または正常の何れかの診断が終了するか（ＳＣ７）、ＥＣＵ１ｂから送信された回収要求データを受信すると（ＳＣ８）、ＥＣＵ１ａに回収応答データを送信する（ＳＣ９）。
【００７０】
各ＥＣＵ１の負荷状態判断部の動作を説明する。図７に示すように、エンジン制御用のＥＣＵ１ａ及び他のＥＣＵ１ｂ、１ｃ、・・・の各インタバルのタイマ割込みイベントに設定されている負荷状態判断部は、割込みが許可されるとフリーランタイマの値Ｔ１をキャプチャしてＲＡＭ１２ｂに記憶し（ＳＥ１，ＳＥ２）、前回キャプチャした値Ｔ２との差分を取り、当該イベントの実行周期を算出する（ＳＥ３）。
【００７１】
算出した実行周期と、ＲＯＭ１２ａに記憶された図４に示すような負荷状態判別テーブルに基づいて、演算負荷状態が低負荷状態であるのか、中負荷状態であるのか、高負荷状態であるのかを判断して、その結果をＲＡＭ１２ｂに記憶する（ＳＥ４）。各ＥＣＵ１のＲＡＭ１２ｂには、各タイマ割込みに対応して負荷状態判断部でモニタされた演算負荷状態が記憶される。
【００７２】
次に、各タイマ割込みに組み込まれている自己診断タスクが他のＥＣＵにより代替実行されていないときには（ＳＥ５）、当該自己診断タスクが実行され（ＳＥ６）、他のＥＣＵにより代替実行されているときには（ＳＥ５）、当該自己診断タスクが実行されずに、その他の制御タスクＡ１，・・・が順次実行される（ＳＥ７）。その他の制御タスクＡ１には、ステップＳＥ６で実行され、ＲＡＭ１２ｂに記憶された自己診断の結果、または、自己診断タスクを代替実行した他のＥＣＵ１からの回収応答データに基づいてＲＡＭ１２ｂに記憶された自己診断の結果に基づいて、メータＥＣＵに診断情報を送信する処理が含まれる。
【００７３】
以上説明した通り、ＣＡＮバス２によりネットワーク接続された複数のＥＣＵ１によって本発明の異常診断システムが構築されている。
【００７４】
そして、当該異常診断システムでは、自己診断タスクを含む複数の制御タスクを、各制御タスクに対応するイベントに同期して実行することにより制御対象機器を制御する電子制御装置の異常診断方法として、各イベントの演算負荷状態をモニタする負荷状態判断ステップと、負荷状態判断ステップで高負荷状態と判断されたイベントに含まれる自己診断タスクの代替実行を、ネットワークを介して他の電子制御装置に要求する代替実行要求ステップと、代替実行要求ステップで要求した自己診断タスクを実行する他の電子制御装置に自己診断タスクの代替実行に必要なカレントデータを含む診断基準情報を所定周期で供給する診断基準情報提供ステップと、要求した自己診断タスクに対応するイベントの演算負荷状態が緩和されたと負荷状態判断ステップで判断されたときに、当該他の電子制御装置に要求した自己診断タスクの代替実行結果を回収要求する代替実行結果回収ステップとを備える電子制御装置の異常診断方法が実現されている。
【００７５】
本発明では、イベントに対応して実行される制御タスクが適正に実行されているか否かを表す演算負荷状態が負荷状態判断部によりモニタされる。つまり、個々の制御タスクの実行状態を個別にモニタするのではなく、イベント単位で制御タスクの実行状態、つまり演算負荷状態が判断され、高負荷状態であると判断されたときに、タスク分散処理部によりネットワークを介して他の電子制御装置に対応する自己診断タスクの代替実行が要求され、その後、自己診断タスクの代替実行に必要なカレントデータを含む診断基準情報が所定周期で供給される。そして、負荷状態判断部により当該自己診断タスクが実行されるべきイベントの演算負荷状態が緩和されたと判断されたときに、タスク分散処理部により要求先の電子制御装置から自己診断タスクの代替実行結果が回収要求される。従って、制御タスクに対する起動要求が遅延する場合であっても、適切に制御タスクの分散処理、特に自己診断タスクの分散処理が実現できる柔軟性に富んだ電子制御装置が提供できる。
【００７６】
以下、別実施形態について説明する。上述の実施形態では、他のＥＣＵ１ｂ，１ｃ，・・・夫々にタスク代替実行処理部を備え、代替して自己診断タスクが実行可能な構成について説明したが、他のＥＣＵ１ｂ，１ｃ，・・・全てにタスク代替実行処理部を備える必要は無く、自己診断タスクを代替実行することが可能な平均的に演算不可状態が低いＥＣＵにのみ設けるものであってもよい。
【００７７】
また、自己診断タスクが共通プログラムで構成される場合に限らず、診断対象により異なる自己診断プログラムで構成されるものであってもよい。この場合には、代替実行条件として上述した処理タイミングとメモリ種別を規定するリソース情報に加えてダイアグコードが加味される。つまり、ダイアグコードに対応した自己診断タスクが存在するか否かが判断される。
【００７８】
代替実行条件はこれらに制限されるものではなく、診断に必要な信号等の他のハードウェアリソース情報や、診断に必要なテーブルデータ等のソフトウェアリソース情報が含まれるものであってもよい。
【００７９】
上述の実施形態では、タスク分散処理部が、確認要求データを送信し、肯定的な確認応答データが返信されたＥＣＵの中から自己診断タスクの代替要求するＥＣＵを決定するものを説明したが、自己診断タスクの代替実行条件を満たす他のＥＣＵの候補リストを備え、候補リストに基づいて選択されるＥＣＵに代替実行を要求するものであってもよい。
【００８０】
この様に構成すると、応諾を確認するための時間を省略することができ、演算負荷状態が高くなると速やかに自己診断タスクの代替実行を他のＥＣＵに要求することができる。
【００８１】
上述の実施形態では、タスク代替実行処理部が確認要求データに基づいて応諾または拒否の確認応答データを送信するものを説明したが、拒否する場合には確認応答データを送信しないように構成するものであってもよい。
【００８２】
上述の実施形態では、ＣＡＮバス２で送受信するデータフレームのデータ識別子が、タスク分散処理部からの送信データには送信先ＥＣＵを特定するように設定され、タスク代替実行処理部からの送信データには送信元ＥＣＵを特定するように設定されるものを説明したが、各ＥＣＵに各ダイアグコードを生成するＥＣＵを特定するデータテーブルを備えて、データ識別子に当該ダイアグコードを設定するように構成するものであってもよい。
【００８３】
上述の実施形態では、タスク分散処理部及びタスク代替実行処理部が１ｍｓｅｃ．のタイマ割込みイベントで起動され実行されるものを説明したが、タスク分散処理部またはタスク代替実行処理部が各自己診断タスクを実行するイベント毎に設けられるものであってもよく、タイマ割込み以外の優先順位の高いイベントで実行されるように構成されるものであってもよい。
【００８４】
さらには、優先順位の高いイベントに、優先順位の低いイベントで実行される自己診断タスクに対するタスク分散処理部またはタスク代替実行処理部が設けられるものであってもよい。優先順位の低いイベントほどタスク実行インタバルが長くなる可能性があり、そのようなときに優先順位の高いイベントで迅速に代替要求または代替処理ができるようになる。
【００８５】
上述の実施形態では、エンジン制御用のＥＣＵ１ａにタスク分散処理部を備え、他のＥＣＵ１ｂ，１ｃ，・・・夫々にタスク代替実行処理部を備えたものを説明したが、全てまたは一部のＥＣＵにタスク分散処理部及びタスク代替実行処理部の双方を備えるものであってもよい。
この場合、自己診断タスクの代替実行時に負荷状態判断部により演算負荷状態が高いと判断されたときに、タスク代替実行処理部が要求元の電子制御装置に代替実行の中断を要求し、或は中断の要求をすることなく、自己のタスク分散処理部が当該自己診断タスクまたは自己の自己診断タスクを他のＥＣＵに代替要求するように構成するものであってもよい。
【００８６】
上述した確認応答データのデータ領域♯３に設定される代替処理の応諾または拒否を示すデータとして、図４に示す演算負荷状態よりも精度のよいデータ、例えば、設定されているイベントの実際の実行時間を設定するように構成すれば、自己診断タスクの確認要求データに対する確認応答データで複数のＥＣＵから応諾があったときに、実行時間に基づいて最も演算負荷状態の低いＥＣＵを選択することができる。
【００８７】
上述の実施形態では、電子制御装置の接続されるネットワークが車載ネットワークの一つであるＣＡＮで構成されるものを説明したが、当該ネットワークはＬＩＮやＦｌｅｘＲａｙなど、他の車載ネットワークで構成されるものであってもよい。また、当該ネットワークは、車載ネットワークに限定するものではなく、その他のネットワークで構成されるものであってもよい。
【００８８】
上述の実施形態では、本発明による電子制御装置が車両に適用されるものを説明したが、本発明による電子制御装置は車両に適用されるものに限らず、ＯＡ機器、航空機等、複数の電子制御装置がネットワーク接続された分散処理システムに適用することが可能である。
【００８９】
尚、上述の実施形態は、本発明の一例に過ぎず、本発明の作用効果を奏する範囲において各ブロックの具体的構成等は適宜変更設計できることは言うまでもない。
【図面の簡単な説明】
【００９０】
【図１】車両に搭載される電子制御装置とＣＡＮバスの説明図
【図２】エンジンを制御する電子制御装置の説明図
【図３】エンジンを制御する電子制御装置のイベントに応じて実行されるタスクの構成を説明するフローチャート
【図４】各タイマ割込みイベントの演算負荷状態を示すテーブルデータの説明図
【図５】本発明による異常診断システムの動作を説明するフローチャート
【図６】ＣＡＮバスを介して送受信されるデータフレームの説明図であり、（ａ）は確認要求データ及び確認応答データの説明図、（ｂ）は代替要求データ及び代替応答データの説明図、（ｃ）は回収要求データ及び回収応答データの説明図
【図７】負荷状態判断部の動作を説明するフローチャート
【符号の説明】
【００９１】
１：電子制御装置（ＥＣＵ）
１ａ：エンジンを制御する電子制御装置
１ｂ：トランスミッションを制御する電子制御装置
１ｃ：ブレーキを制御する電子制御装置
２：ＣＡＮバス
１０：マイクロコンピュータ
１１：拡張バス
１２：メモリ
１２ａ：ＲＯＭ
１２ｂ：ＲＡＭ
１２ｃ：スタンバイＲＡＭ
１２ｄ：ＥＥＰＲＯＭ
２０：終端抵抗
ＩＰ（ＡＤ）：ＡＤ変換ポート群
ＩＰ（１）：キャプチャポート群
ＩＰ（２）：入力ポート群
ＯＰ：出力ポート群
ＳＩＯ：シリアル入出力ポート
【図１】
2009157512.tif 000003
【図２】
2009157512.tif 000004
【図３】
2009157512.tif 000005
【図４】
2009157512.tif 000006
【図５】
2009157512.tif 000007
【図６】
2009157512.tif 000008
【図７】
2009157512.tif 000009