(57)【要約】  【課題】処理負荷の大きさを考慮し、車両の状態に依存して異常検出処理の実施・非実施を行うことができ、処理負荷を軽減することが可能な車両用電子制御装置を提供する。  【解決手段】故障診断処理を開始すると、実施有無関連テーブルから１行読み出し、その行に記載されている車両条件、例えば、「エンジン水温高」が成立するか否かを判定し、車両条件が成立すると判定した場合、その行に設定されている異常検出実施対象の実施有無が“×”（非実施）になっている異常検出実施対象を異常検出実施対象テーブルから削除する。この処理を実施有無関連テーブルの最終行まで行った後、変更した異常検出実施対象テーブルに基づいて、異常検出処理を実行する。  【選択図】図２
2006348786.tif 000002
【特許請求の範囲】
【請求項１】
車両の種々の異常を検出する車両の異常検出方法であって、
設定された車両条件が成立するか否かを判定し、車両条件が成立した場合、車両条件と種々の異常検出処理の実施有無との関係が設定された実施有無関連テーブルに基づいて、当該車両条件で非実施に設定されている異常検出処理を実行しないことを特徴とする車両の異常検出方法。
【請求項２】
異常検出処理機能を実行する制御手段を備えた車両用電子制御装置であって、
車両条件と種々の異常検出処理の実施有無との関係が設定された実施有無関連テーブルを有し、上記制御手段が、上記実施有無関連テーブルに設定された車両条件が成立するか否かを判定し、車両条件が成立した場合、上記実施有無関連テーブルにおいて当該車両条件で非実施に設定されている異常検出処理を実行しないことを特徴とする車両用電子制御装置。
【請求項３】
請求項２に記載された車両用電子制御装置において、
上記実施有無関連テーブルが当該制御装置の製造時に、機種毎に予め設定されることを特徴とする車両用電子制御装置。
【請求項４】
請求項２に記載された車両用電子制御装置において、
上記実施有無関連テーブルが外部ツールにより設定されることを特徴とする車両用電子制御装置。
【請求項５】
請求項２に記載された車両用電子制御装置において、
上記制御手段が、異常検出処理毎の判定済みフラグに連動して上記実施有無関連テーブルのテーブル値を更新することを特徴とする車両用電子制御装置。
【請求項６】
請求項５に記載された車両用電子制御装置において、
各異常検出処理の関係が設定された検出処理関連テーブルを有し、上記制御手段が、上記検出処理関連テーブルに基づいて、テーブル値が更新された検出処理に関連する検出処理のテーブル値も更新することを特徴とする車両用電子制御装置。
【請求項７】
請求項２に記載された車両用電子制御装置において、
上記制御手段が、異常継続時間が最も異常検出閾値に近い異常検出処理のテーブル値を実施に変更することにより上記実施有無関連テーブルを更新することを特徴とする車両用電子制御装置。
【請求項８】
請求項７に記載された車両用電子制御装置において、
各異常検出処理の関係が設定された検出処理関連テーブルを有し、上記制御手段が、上記検出処理関連テーブルに基づき、テーブル値が実施に更新された処理に関連する検出処理のテーブル値を実施に変更し、それ以外の処理を非実施に変更することを特徴とする車両用電子制御装置。
【請求項９】
請求項５〜請求項８のいずれかに記載された車両用電子制御装置において、
上記制御手段が、一定周期にて上記実施有無関連テーブルを初期化することを特徴とする車両用電子制御装置。
【請求項１０】
請求項９に記載された車両用電子制御装置において、
上記制御手段が、定常走行での一定時間経過により、上記実施有無関連テーブルの初期化周期を長くすることを特徴とする車両用電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両の異常検出方法及び異常検出機能を備えた車両用電子制御装置に関する。
【背景技術】
【０００２】
車両の電子制御装置（以下、ＥＣＵという）は、車両の制御機構との間で信号のやり取りを行って車両の電子制御を行うものであり、例えば、エンジン制御ＥＣＵには車両に装備されているセンサ群で検出された、車速、エンジン回転数、空気流入量等の情報が入力され、エンジン制御ＥＣＵはこれらの情報に基づいて所定の演算処理を行い、その演算結果（例えば、燃料噴射量やバイパス空気量などを制御するための信号）を車両に装備された、電動スロットルやスタータ噴射弁等の制御機構へ送出し、燃料の噴射量や流入空気量の制御などを行っている。
【０００３】
このようなＥＣＵは、ＥＣＵ内の各部の異常検出を行わないと、走行上の不具合を引き起こす可能性があり、場合によっては走行不能となることもあるため、各ＥＣＵに自己診断機能を備えることにより、信頼性の向上が図られている。すなわち、各ＥＣＵはＣＰＵやセンサ類の動作状態を適当な周期で自動的にチェックし、故障時には異常ランプを点灯したり、その故障内容が修理業者に分かるように異常コード（ＤＴＣ）を記憶したりするダイアグノーシス（以下、ダイアグという）処理を行っている（例えば、特許文献１参照）。
【特許文献１】特開平７−２０９３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、車両に発生する異常はより迅速に検出されることが望まれており、このためには、異常診断の処理間隔を短縮する必要があるが、異常診断の処理間隔を短縮すると、ＥＣＵの処理負荷が増加し、ＥＣＵの制御に影響を及ぼすおそれがある。
例えば、エンジン制御ＥＣＵでは、エンジンの高回転数時やエンジン始動時など、制御対象機器としてのエンジンを制御するための処理負荷が大きいときに、異常診断処理を実行すると、大きな処理負荷がさらに加わることにより、エンジン制御の処理抜けなどが起こる可能性がある。このため、より高性能な演算処理装置（いわゆるＣＰＵ）が必要になってしまう。
【０００５】
一方、近年の車両システム及びその制御プログラムの増大に伴い、ＥＣＵにおけるソフト負荷の軽減が必須となっているが、仕様段階で車両制御や故障診断の削除を行うことは安全・品質面及び法規上の問題で非常に困難な状況になっている。
【０００６】
本発明は、上記の問題に鑑みてなされたもので、処理負荷の大きさを考慮し、車両の状態に依存して異常検出処理の実施・非実施を決定することができ、処理負荷を軽減することが可能な車両の異常検出方法及び車両用電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の目的を達成するため、本発明に係る車両の異常検出方法（１）は、
車両の種々の異常を検出する車両の異常検出方法であって、
設定された車両条件が成立するか否かを判定し、車両条件が成立した場合、車両条件と種々の異常検出処理の実施有無との関係が設定された実施有無関連テーブルに基づいて、当該車両条件で非実施に設定されている異常検出処理を実行しないことを特徴とする。
【０００８】
また、本発明に係る車両用電子制御装置（１）は、
異常検出処理機能を実行する制御手段を備えた車両用電子制御装置であって、
車両条件と種々の異常検出処理の実施有無との関係が設定された実施有無関連テーブルを有し、上記制御手段が、上記実施有無関連テーブルに設定された車両条件が成立するか否かを判定し、車両条件が成立した場合、上記実施有無関連テーブルにおいて当該車両条件で非実施に設定されている異常検出処理を実行しないことを特徴とする。
【０００９】
さらに、本発明に係る車両用電子制御装置（２）は、車両用電子制御装置（１）において、
上記実施有無関連テーブルが当該制御装置の製造時に、機種毎に予め設定されることを特徴とし、
本発明に係る車両用電子制御装置（３）は、車両用電子制御装置（１）において、
上記実施有無関連テーブルが外部ツールにより設定されることを特徴とする。
【００１０】
また、本発明に係る車両用電子制御装置（４）は、車両用電子制御装置（１）において、
上記制御手段が、異常検出処理毎の判定済みフラグに連動して上記実施有無関連テーブルのテーブル値を更新することを特徴とし、
本発明に係る車両用電子制御装置（５）は、車両用電子制御装置（４）において、
各異常検出処理の関係が設定された検出処理関連テーブルを有し、上記制御手段が、上記検出処理関連テーブルに基づいて、テーブル値が更新された検出処理に関連する検出処理のテーブル値も更新することを特徴とする。
【００１１】
さらに、本発明に係る車両用電子制御装置（６）は、車両用電子制御装置（１）において、
上記制御手段が、異常継続時間が最も異常検出閾値に近い異常検出処理のテーブル値を実施に変更することにより上記実施有無関連テーブルを更新することを特徴とし、
本発明に係る車両用電子制御装置（７）は、車両用電子制御装置（６）において、
各異常検出処理の関係が設定された検出処理関連テーブルを有し、上記制御手段が、上記検出処理関連テーブルに基づき、テーブル値が実施に更新された処理に関連する検出処理のテーブル値を実施に変更し、それ以外の処理を非実施に変更することを特徴とする。
【００１２】
また、本発明に係る車両用電子制御装置（８）は、車両用電子制御装置（４）〜（７）のいずれかにおいて、
上記制御手段が、一定周期にて上記実施有無関連テーブルを初期化することを特徴とし、
本発明に係る車両用電子制御装置（９）は、車両用電子制御装置（８）において、
上記制御手段が、定常走行での一定時間経過により、上記実施有無関連テーブルの初期化周期を長くすることを特徴とする。
【発明の効果】
【００１３】
本発明に係る車両の異常検出方法（１）及び車両用電子制御装置（１）〜（３）によれば、異常検出処理の実施有無関連テーブルに設定されている車両条件が成立した場合、その車両条件で非実施に設定されている異常検出処理が実行されず、車両の状態に依存して異常検出処理の実施・非実施を決定することができるので、処理負荷を軽減することができる。
【００１４】
また、本発明に係る車両用電子制御装置（４）によれば、異常検出処理毎の判定済みフラグ、例えば、正常判定済みフラグに連動して異常検出処理の実施有無関連テーブルが非実施に更新されるので、一度正常と判定された異常検出処理を実施しないようにすることができ、さらに処理負荷を軽減することが可能となる。
さらに、本発明に係る車両用電子制御装置（５）によれば、検出処理関連テーブルに基づき、テーブル値が非実施に更新された検出処理に関連する検出処理のテーブル値も非実施に更新されるので、関連する検出処理を実施しないようにすることができる。
【００１５】
また、本発明に係る車両用電子制御装置（６）によれば、異常継続時間が最も異常検出閾値に近い異常検出処理のテーブル値が非実施から実施に更新されるので、早期に実施すべき検出処理を実施するようにテーブルを更新することができる。
さらに、本発明に係る車両用電子制御装置（７）によれば、検出処理関連テーブルに基づき、テーブル値が実施に更新された処理に関連する検出処理のテーブル値が実施に変更され、それ以外の処理が非実施に変更されるので、実施に更新された異常検出処理に関連する異常検出処理も実施することができる。
【００１６】
また、本発明に係る車両用電子制御装置（８）によれば、一定周期にて実施有無関連テーブルが初期化されるので、一旦非実施、または実施に更新された検出処理がイグニッションオン中その状態のままとなってしまう事態を防止し、各異常検出処理を定期的に実施することができる。
さらに、本発明に係る車両用電子制御装置（９）によれば、定常走行での一定時間経過により、異常検出処理の実施有無関連テーブルの初期化周期が長くなり、非実施となったテーブル値が実施に変更されるまでの期間が長くなるので、異常診断の負荷を軽減することができる。
【実施例１】
【００１７】
以下、本発明の車両用電子制御装置をエンジン制御ＥＣＵに適用した実施例について、図面を用いて説明する。
図１はエンジン制御ＥＣＵの構成を示すブロック図であり、図に示すように、エンジン制御ＥＣＵ１はＣＰＵ１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３、入力回路１４、出力回路１５等から構成され、これらの各部がバス１６により接続されている。
【００１８】
ＣＰＵ１１はバス１６を介してエンジン制御ＥＣＵ１のハードウェア各部を制御するとともに、ＲＯＭ１２に記憶されたプログラムに基づいて各種のプログラムを実行し、ＲＯＭ１２はエンジン制御プログラムや異常診断プログラムとともに、車両条件と種々の異常検出処理の実施有無との関係が設定された実施有無関連テーブルや異常検出実施対象を記憶している。
【００１９】
図２は上記の実施有無関連テーブルの一例であり、エンジン水温高、アイドル状態、非アイドル状態、燃料吐出量によるフィードバック制御（燃料系Ｆ／Ｂ）中・・・等の車両条件と、これらの車両条件が成立した場合の各異常検出実施対象の実施有無が設定されている。この例では、例えば、エンジン水温が高いとき、失火異常検出と水温センサ断線検出を実施し、燃料系異常検出とアイドル速度制御（ＩＳＣ）異常検出を実施しないように設定されている。
【００２０】
この実施有無関連テーブルは、エンジン制御ＥＣＵの製造時に、機種毎に予めＲＯＭに設定することもでき、また、外部ツール、例えば、故障診断テスタ２から入力回路１４を介してエンジン制御ＥＣＵ１に入力することにより、ＥＥＰＲＯＭ等の書き換え可能なＲＯＭに記憶させることもできる。
【００２１】
また、ＲＡＭ１３はＳＲＡＭ等で構成され、図３に示すような異常検出実施対象テーブルや、各異常検出の判定（異常判定または正常判定）済みフラグの記憶領域、ダイアグコード等のダイアグ情報の記憶領域等を備えている。異常検出実施対象テーブルは初期化時にＲＯＭ１２に記憶されている異常検出実施対象を読み出して初期化され、異常実施有無判別処理の実施時に不要な異常検出処理が削除される。
【００２２】
一方、入力回路１４には、水温センサ２１、空燃比（Ａ／Ｆ）センサ２２、ノックセンサ２３、回転数センサ２４等の各種センサの信号が入力され、これらのセンサからの信号がＣＰＵ１１に入力される。水温センサ２１は、エンジンの冷却水の温度を検出し、Ａ／Ｆセンサ２２は排出ガス中に含まれる酸素濃度を検出する。ノックセンサ２３はエンジンの失火検出を行い、回転数センサ２４はエンジンの回転数を計測する。
また、出力回路１５には、イグナイタ（ＩＧＴ）３１、インジェクター３２、警告ランプ３３等の各種アクチュエータが接続されている。
【００２３】
このエンジン制御ＥＣＵ１は、上記の各種センサの検出信号に基づいてエンジンの運転状態に対応した燃料噴射量等を演算し、エンジンの複数の気筒それぞれに設定されるインジェクター３２に対して燃料噴射指令を出力し、また、イグナイタ３１に対して点火指令信号を出力して、エンジンの運転制御を実行する。
【００２４】
また、エンジン制御ＥＣＵ１は、車両の各部位の診断を各センサ群からの検出信号に基づいて実行しており、診断情報を診断結果に対応したコードとしてＲＡＭ１３に記憶するとともに、故障発生時には、警告ランプ３３を点灯させて故障発生をユーザに知らせて修理を促す。
一方、エンジン制御ＥＣＵ１による車両の各部位の診断に基づく情報を外部から読み出せるように、エンジン制御ＥＣＵ１に対して入力回路１４を介して故障診断テスタ２が接続できるようになっており、故障診断テスタ２が接続された場合には、エンジン制御ＥＣＵ１は故障診断テスタ２との間でデータ通信を行い、故障診断テスタ２から要求される情報を出力する。
【００２５】
次に、異常診断実施時のＣＰＵ１１の作用について、フローチャートにより説明する。
図４は、異常診断のメイン処理の作用を示すフローチャートであり、イグニッションスイッチ（図示せず）がオンとなった場合、ＣＰＵ１１は、図４のフローチャートに示す異常診断処理のメインプログラムを開始し、ＲＯＭ１２に記憶されている実施有無関連テーブルを読み出してＲＡＭ１３に記憶した（ステップ１０１）後、異常実施有無判別検出処理を実行する（ステップ１０２）。
【００２６】
図５は、上記の異常実施有無判別検出処理のサブルーチンプログラムの作用を示すフローチャートであり、このサブルーチンプログラムを開始すると、ＣＰＵ１１は、まず、ＲＡＭ１３に記憶されている異常検出実施対象テーブルを初期化する（ステップ２０１）。
すなわち、ＣＰＵ１１は、ＲＯＭ１２から異常検出実施対象の初期設定を読み出してＲＡＭ１３に記憶する。
【００２７】
次に、ＣＰＵ１１は、図２に示す、ＲＡＭ１３に記憶されている実施有無関連テーブルから１行読み出した（ステップ２０２）後、その行に記載されている車両条件、例えば、「エンジン水温高」が成立するか否かを判定する（ステップ２０３）。車両条件が成立すると判定した場合、ＣＰＵ１１は、その行に設定されている異常検出実施対象の実施有無が“×”（非実施）になっている異常検出実施対象をＲＡＭ１３に記憶されている異常検出実施対象テーブルから削除する（ステップ２０４）。
【００２８】
ステップ２０３で車両条件が成立しないと判定した場合、あるいは、ステップ２０４で異常検出実施対象を削除した後、ＣＰＵ１１は、読み出した行が実施有無関連テーブルの最終行か否かを判定し（ステップ２０５）、最終行でないと判定した場合は、ステップ２０２に戻って次の行を読み出し、再びその行の車両条件が成立するか否かを判定する（ステップ２０３）。
一方、ステップ２０５で読み出した行が実施有無関連テーブルの最終行であると判定した場合、ＣＰＵ１１は、異常実施有無判別検出処理のサブルーチンプログラムを終了し、メイン処理に戻る。
【００２９】
ステップ１０２の異常実施有無判別検出処理のサブルーチンプログラムを終了すると、ＣＰＵ１１は、ＲＡＭ１３に記憶されている異常検出実施対象テーブルが空か否かを判定し（ステップ１０３）、異常検出実施対象テーブルが空であると判定した場合、ステップ１０２に戻り、再び、異常実施有無判別検出処理を実行する。
一方、異常検出実施対象テーブルが空でないと判定した場合、ＣＰＵ１１は、異常検出処理を実行した（ステップ１０４）後、ステップ１０２に戻り、再び、異常実施有無判別検出処理を実行する。
【００３０】
図６は、上記の異常検出処理のサブルーチンプログラムの作用を示すフローチャートであり、このサブルーチンプログラムを開始すると、ＣＰＵ１１は、まず、ＲＡＭ１３に記憶されている異常検出実施対象テーブルから１行読み出した（ステップ３０１）後、その行の検出処理を実行する（ステップ３０２）。
【００３１】
例えば、水温センサの断線検出の場合、図７のフローチャートに示すように、ＣＰＵ１１は、前回の水温センサの断線検出処理から所定時間、例えば、１６msec経過したか否かを判定し（ステップ４０１）、所定時間経過していないと判定した場合、処理を終了する。前回の水温センサの断線検出処理から所定時間が経過していると判定した場合、ＣＰＵ１１は、水温センサ２１の出力を取り込んだ（ステップ４０２）後、取り込んだ水温センサの出力が所定範囲内の値であるか否かを判定する（ステップ４０３）。
【００３２】
取り込んだ水温センサの出力が所定範囲内の値であると判定した場合、ＣＰＵ１１はＲＡＭ１３の水温センサ断線検出の正常判定フラグをオンし（ステップ４０４）、異常時間カウンタをリセットした（ステップ４０５）後、水温センサ検出処理を終了する。
一方、取り込んだ水温センサの出力が所定範囲内の値でないと判定した場合、ＣＰＵ１１は、異常時間をカウントアップした（ステップ４０６）後、異常継続時間が所定閾値（スレッシュ）、例えば、０．５secを越えたか否かを判定し（ステップ４０７）、異常継続時間が所定閾値を越えていないと判定した場合、水温センサ検出処理を終了する。
【００３３】
また、異常継続時間が所定閾値を越えていると判定した場合、ＣＰＵ１１は、水温センサ断線検出の異常判定フラグをオンした（ステップ４０８）後、対応するダイアグコードをＲＡＭ１３に記憶する（ステップ４０９）。次に、ＣＰＵ１１は、警告ランプ３３を点灯した（ステップ４１０）後、水温センサ検出処理を終了する。
【００３４】
そして、図６のフローチャートのステップ３０２の検出処理を終了すると、ＣＰＵ１１は、ステップ３０１で読み出した行が異常検出実施対象テーブルの最終行か否かを判定し（ステップ３０３）、最終行でないと判定した場合は、ステップ３０１に戻って次の行を読み出し、再びその行の検出処理を実行する（ステップ３０２）。
一方、ステップ３０３で読み出した行が異常検出実施対象テーブルの最終行であると判定した場合、ＣＰＵ１１は、異常検出処理のサブルーチンプログラムを終了し、メイン処理に戻る。
【００３５】
以上のように、実施有無関連テーブルに設定されている車両条件が成立した場合、その車両条件で非実施に設定されている異常検出処理が異常検出実施対象テーブルから削除され、車両の状態に依存して必要な異常検出処理のみが実施されるので、処理負荷を軽減することができる。
【実施例２】
【００３６】
上記の実施例では、毎回、同じ実施有無関連テーブルに基づいて、異常実施有無判別検出処理を実行したが、異常検出の条件成立フラグを使用して実施有無関連テーブルを更新するようにすることもでき、以下、異常検出の条件成立フラグを使用して実施有無関連テーブルを更新する場合の作用を図８、図９のフローチャートにより説明する。
なお、装置構成は図１のブロック図と同じであるので、詳細な説明は省略する。
【００３７】
イグニッションスイッチがオンとなった場合、ＣＰＵ１１は常時、図８のフローチャートに示す異常診断処理のメインプログラムを実行するが、実施有無関連テーブル読み出し（ステップ５０１）、異常実施有無判別検出処理（ステップ５０２）、異常検出実施対象テーブルが空か否かの判定処理（ステップ５０３）、異常検出処理（ステップ５０４）は、図４のフローチャートのステップ１０１〜１０４と同様であるので、説明を省略し、ステップ５０５の関連テーブル更新処理の作用についてのみ説明する。
【００３８】
図９は、上記の実施有無関連テーブルの更新処理のサブルーチンプログラムの作用を示すフローチャートであり、このサブルーチンプログラムを開始すると、まず、ＣＰＵ１１は、前回の実施有無関連テーブルの初期化から所定時間、例えば、６５msec経過したか否かを判定する（ステップ６０１）。前回の実施有無関連テーブルの初期化から所定時間が経過していないと判定した場合、ＣＰＵ１１は、ＲＡＭ１３に記憶されている実施有無関連テーブルから１列読み出した（ステップ６０２）後、その列の異常検出処理の正常判定フラグがオンになっているか否かを判定する（ステップ６０３）。正常判定フラグがオンになっていると判定した場合、ＣＰＵ１１は、実施有無関連テーブルのその列を全て“×”に更新する（ステップ６０４）。
【００３９】
ステップ６０３で正常判定フラグがオンになっていないと判定した場合、あるいは、ステップ６０４でテーブル値を更新した後、ＣＰＵ１１は、読み出した列が実施有無関連テーブルの最終列か否かを判定し（ステップ６０５）、最終列でないと判定した場合は、ステップ６０２に戻って次の列を読み出し、再びその列の異常検出処理の正常判定フラグがオンになっているか否かを判定する（ステップ６０３）。
また、ステップ６０５で読み出した列が実施有無関連テーブルの最終列であると判定した場合、ＣＰＵ１１は、実施有無関連テーブルの更新処理のサブルーチンプログラムを終了し、メイン処理に戻る。
【００４０】
一方、ステップ６０１で前回の実施有無関連テーブルの初期化から所定時間が経過したと判定した場合、ＣＰＵ１１は、ＲＯＭ１２に記憶されている実施有無関連テーブルを読み出してＲＡＭ１３に記憶することにより実施有無関連テーブルを初期化した（ステップ６０６）後、実施有無関連テーブルの更新処理のサブルーチンプログラムを終了し、メイン処理に戻る。
なお、この初期化処理は、一旦非実施に設定された異常検出処理がイグニッションオンの期間中常に非実施となってしまうことを防止するため、所定の初期化周期をおいて実施するものである。
【００４１】
以上のように、異常検出処理毎の判定済みフラグ、例えば、正常判定済みフラグに連動して実施有無関連テーブルのその異常検出処理のテーブル値が“×”（非実施）に変更され、一度正常と判定された異常検出処理を、テーブルが初期化されるまで実施しないようにすることができるので、処理負荷を軽減することが可能となる。
【実施例３】
【００４２】
上記の実施例では、一定周期、例えば、６５msec毎に実施有無関連テーブルを初期化したが、この初期化周期を変更することも可能であり、以下、実施有無関連テーブルの初期化周期を変更する場合の作用を図１０、図１１のフローチャートにより説明する。
【００４３】
イグニッションスイッチがオンとなった場合、ＣＰＵ１１は、常時、図１０のフローチャートに示す異常診断処理のメインプログラムを実行するが、実施有無関連テーブル読み出し（ステップ７０１）、異常実施有無判別検出処理（ステップ７０２）、異常検出実施対象テーブルが空か否かの判定処理（ステップ７０３）、異常検出処理（ステップ７０４）、関連テーブル更新処理（ステップ７０６）は、図８のフローチャートのステップ５０１〜５０５と同じであるので、説明を省略し、ステップ７０５の関連テーブル初期化周期変更処理の作用についてのみ説明する。
【００４４】
図１１は、上記の関連テーブル初期化周期変更処理のサブルーチンプログラムの作用を示すフローチャートであり、このサブルーチンプログラムを開始すると、ＣＰＵ１１は、車両が定常走行にて一定時間走行したか否かを判定する（ステップ８０１）。この場合、車両が車速１０〜８０km/hでの走行を３０分継続した場合、ＣＰＵ１１は定常走行にて一定時間走行したと判定する。
【００４５】
ステップ８０１で車両が定常走行にて一定時間走行していないと判定した場合、ＣＰＵ１１は、関連テーブル初期化周期変更処理のサブルーチンプログラムを終了してメイン処理プログラムに戻り、定常走行にて一定時間走行したと判定すると、関連テーブル初期化周期を、例えば、１２８ｍｓに変更することにより初期化周期を長くする（ステップ８０２）。
【００４６】
以上のように、定常走行にて一定時間走行した場合、関連テーブル初期化周期を長くすることにより、一旦非実施に設定された異常検出処理が再び実施に変更されるまでの間隔が長くなるので、さらに処理負荷を軽減することができる。
【実施例４】
【００４７】
さらに、実施有無関連テーブルのテーブル値が更新された場合に、更新された検出処理と関連のある検出処理のテーブル値も更新するようにすることもでき、以下、更新された検出処理と関連のある検出処理のテーブル値も更新する場合の作用を図１２、図１３のフローチャートにより説明する。
なお、装置構成は図１のブロック図と同じであるが、ＲＯＭ１２は図１４に示す検出処理関連テーブルも記憶している。
【００４８】
この検出処理関連テーブルでは、“○”に設定されている異常検出処理の実施有無関連テーブルのテーブル値が更新された場合には、対応する異常検出のテーブル値も更新される。例えば、水温センサ断線検出のテーブル値が更新された場合、失火異常検出のテーブル値も同じテーブル値に更新される。
【００４９】
イグニッションスイッチがオンとなった場合、ＣＰＵ１１は、常時、図１２のフローチャートに示す異常診断処理のメインプログラムを実行するが、実施有無関連テーブル読み出し（ステップ９０１）、異常実施有無判別検出処理（ステップ９０２）、異常検出実施対象テーブルが空か否かの判定処理（ステップ９０３）、異常検出処理（ステップ９０４）、関連テーブル更新周期変更処理（ステップ９０５）、関連テーブル更新処理（９０６）は、図１０のフローチャートのステップ７０１〜７０６と同じであるので、説明を省略し、ステップ９０７の検出処理関連テーブルによる処理の作用についてのみ説明する。
なお、ＲＡＭ１３は実施有無関連テーブルが更新された場合にも、更新前のテーブルを記憶しているものとする。
【００５０】
図１３は、上記の検出処理関連テーブルによる処理のサブルーチンプログラムの作用を示すフローチャートであり、このサブルーチンプログラムを開始すると、ＣＰＵ１１は、まず、ＲＡＭ１３に記憶されている実施有無関連テーブルから１列読み出した（ステップ１００１）後、その列の検出処理が更新前のテーブルと比較してテーブル値が更新された検出処理か否かを判定する（ステップ１００２）。
【００５１】
テーブル値が更新された検出処理であると判定した場合、ＣＰＵ１１は、図１４の検出処理関連テーブルに基づき、更新処理された検出処理と関連ある検出処理のテーブル値を同値にて更新する（ステップ１００３）。例えば、水温センサ断線検出のテーブル値が“×”（非実施）に更新された場合、失火異常検出のテーブル値も“×”（非実施）に更新される。
【００５２】
ステップ１００２でテーブル値が更新された検出処理でないと判定した場合、あるいは、ステップ１００３でテーブル値を更新した後、ＣＰＵ１１は、読み出した列が実施有無関連テーブルの最終列か否かを判定し（ステップ１００４）、最終列でないと判定した場合は、ステップ１００１に戻って次の列を読み出し、再びその列の検出処理が更新前のテーブルと比較してテーブル値が更新された検出処理か否かを判定する（ステップ１００２）。
一方、ステップ１００４で読み出した列が実施有無関連テーブルの最終列であると判定した場合、ＣＰＵ１１は、検出処理関連テーブルによる処理のサブルーチンプログラムを終了し、メイン処理プログラムに戻る。
【００５３】
以上のように、実施有無関連テーブルのテーブル値が更新された場合、更新された検出処理と関連のある検出処理のテーブル値も更新されるので、実施する異常検出処理を減らすことができ、さらに処理負荷を軽減することが可能となる。
【００５４】
以下、この実施例でのエンジン制御ＥＣＵ１の動作を車両の状況も含めて詳しく説明する。
図１５は車両状況、すなわち、エンジン水温、アイドル状態、燃料Ｆ／Ｂ中等の状態を示す時間経過図であり、図の時点ｔ１でイグニッションスイッチがオンとなり、時点ｔ２で水温センサの判定が完了し、水温センサ断線検出が正常と判定される。また、時点ｔ３でエンジンが非アイドル状態からアイドル状態に切り替わり、時点ｔ４で車速４０km/hの一定走行で３０分経過したものとする。
【００５５】
図１５に示すように、時点ｔ１〜ｔ２の区間では、エンジン水温高：×、アイドル状態：×、非アイドル状態：○、燃料系Ｆ／Ｂ中：×であるので、図１２のフローチャートのステップ９０２の「異常実施有無判別検出処理」により「ＩＳＣ異常検出」処理が削除されるので、異常検出実施対象テーブルは図１６に示すようになり、ステップ９０３の異常検出処理では、「失火異常検出」、「燃料系異常検出」、「水温センサ断線検出」の検出処理が行われる。
【００５６】
また、図１５の時点ｔ２〜ｔ３の区間では、水温センサ判定が完了しており、「水温センサ断線検出」の正常判定フラグがＲＡＭ１３に記憶されているので、図１２のフローチャートのステップ９０６に示す実施有無関連テーブルの更新処理が実行されることにより、ＲＡＭ１３に記憶されている実施有無関連テーブルは、図１７に示すように、「水温センサ断線検出」の列が全て“×”（非実施）に更新される。
これにより、実施有無関連テーブルが初期化されるまで、以降の異常検出処理では「水温センサ断線検出」が実行されないので、処理負荷を軽減することが可能となる。
【００５７】
さらに、ステップ９０７の検出処理関連テーブルによる処理が実行されると、「水温センサ断線検出」のテーブル値が“×”（非実施）に更新されたことが判定されるので、図１４の検出処理関連テーブルに基づき、図１８に示すように、「失火異常検出」のテーブル値も“×”（非実施）に更新される。
【００５８】
そして、車両状態がエンジン水温高：×、アイドル状態：×、非アイドル状態：○、燃料系Ｆ／Ｂ中：×となっているので、図１２のフローチャートのステップ９０２の「異常実施有無判別検出処理」により「失火異常検出」、「ＩＳＣ異常検出」、「水温センサ断線検出」処理が削除され、異常検出実施対象テーブルは図１９に示すようになり、ステップ９０３の異常検出処理では、「燃料系異常検出」のみの処理が行われる。
このように、実施有無関連テーブルが初期化されるまで、以降の異常検出処理では、「失火異常検出」、「ＩＳＣ異常検出」、「水温センサ断線検出」の処理が実行されないので、処理負荷を軽減することが可能となる。
【００５９】
一方、図１５の時点ｔ３で、車両が非アイドル状態からアイドル状態に切り替わり、これに伴い、車両状態はエンジン水温高：×、アイドル状態：○、非アイドル状態：×、燃料系Ｆ／Ｂ中：×となり、図１２のフローチャートのステップ９０２の「異常実施有無判別検出処理」により「失火異常検出」、「水温センサ断線検出」処理が削除されるので、異常検出実施対象テーブルは図２０に示すようになり、ステップ９０４の異常検出処理では、「燃料系異常検出」、「ＩＳＣ異常検出」の検出処理が行われる。
【００６０】
そして、図１５の時点ｔ４以降の区間では、車両が車速４０km/hの一定走行を３０分行ったことが判定されるので、図１２のフローチャートのステップ９０５の関連テーブル初期化周期変更処理により、実施有無関連テーブルの初期化周期が６５ｍｓから１２８ｍｓと長くなる。
実施有無関連テーブルは、以上のようにして更新あるいは初期化されるので、例えば、水温センサ断線検出処理は、ｔ１〜ｔ２の区間では１６ｍｓ、ｔ２〜ｔ４の区間では６５ｍｓ、ｔ４以降の区間では１２８ｍｓの周期で起動されることとなる。
【実施例５】
【００６１】
以上の実施例では、図１２のフローチャートのステップ９０６の実施有無関連テーブル更新処理で異常検出の条件成立フラグを使用して実施有無関連テーブルのテーブル値を“×”（非実施）に更新したが、異常継続時間が最も異常検出閾値に近いもののテーブル値を“○”（実施）に更新することもでき、以下、異常継続時間を使用して実施有無関連テーブルのテーブル値を更新する実施例の作用について、図２１のフローチャートにより説明する。
【００６２】
図２１に示すフローチャートの実施有無関連テーブル更新処理のサブルーチンプログラムを開始すると、ＣＰＵ１１は、t_newの値を初期値、例えば、２０秒等の大きな値に設定してＲＡＭ１３に記憶するとともに、pの値にダミー値として任意の数値を設定してＲＡＭ１３に記憶する（ステップ１１０１）。
次に、ＣＰＵ１１は、ＲＡＭ１３に記憶されている実施有無関連テーブルから１列読み出した（ステップ１１０２）後、読み出した列の異常検出処理の異常継続時間カウンタの値とその処理の異常検出閾値（スレッシュ）との差をt_oldとしてＲＡＭ１３に記憶する（ステップ１１０３）。
【００６３】
次に、ＣＰＵ１１は、t_newの値がt_old の値より大きいか否かを判定し（ステップ１１０４）、t_newの値がt_old の値より大きいと判定した場合、t_oldの値を
t_newの値と置き換えてＲＡＭ１３に記憶した（ステップ１１０５）後、ｐの値を読み出した検出処理の列番号と置き換えてＲＡＭ１３に記憶する（ステップ１１０６）。
【００６４】
ステップ１１０４でt_newの値がt_old の値より小さいと判定した場合、または、ステップ１１０６でｐの値を置き換えた後、ＣＰＵ１１は、読み出した列が実施有無関連テーブルの最終列か否かを判定し（ステップ１１０７）、最終列でないと判定した場合、ステップ１１０２に戻って次の列を読み出し、再び、読み出した列の異常検出処理の異常継続時間カウンタの値とその処理の異常検出閾値との差をt_oldとしてＲＡＭ１３に記憶する（ステップ１１０３）。
一方、ステップ１１０７で読み出した列が実施有無関連テーブルの最終列であると判定した場合、ＣＰＵ１１は、関連テーブルのｐ列のテーブル値を全て“○”（実施）に更新した（ステップ１１０８）後、テーブルの更新処理のサブルーチンプログラムを終了する。
【００６５】
以上のように、異常継続時間とその処理の異常検出閾値との差が最も小さい検出処理のテーブル値が“○”（実施）に変更されるので、早期に実施すべき検出処理を実施するように実施有無関連テーブルのテーブル値を変更することができる。
【００６６】
さらに、上記の更新処理で更新された異常検出処理と関連のある異常検出処理のテーブル値を更新するようにすることもでき、以下、更新処理でテーブル値が更新された検出処理と関連のある検出処理のテーブル値を更新する場合の作用について、図２２のフローチャートにより説明する。
【００６７】
図２２のフローチャートの検出処理関連テーブルによる処理のサブルーチンプログラムを開始すると、ＣＰＵ１１は、まず、ＲＡＭ１３に記憶されている実施有無関連テーブルから１列読み出した（ステップ１２０１）後、その列の検出処理が更新前のテーブルと比較してテーブル値が“○”（実施）に更新されたか否かを判定する（ステップ１２０２）。
【００６８】
テーブル値が“○”（実施）に更新されたと判定した場合、ＣＰＵ１１は、図１４の検出処理関連テーブルに基づき、更新処理された検出処理と関連ある検出処理のテーブル値を全て“○”（実施）に更新した（ステップ１２０３）後、その列の検出処理及び関連ある検出処理を除いたその他の検出処理のテーブル値を全て“×”（非実施）に更新する（ステップ１２０４）。
【００６９】
ステップ１２０２でテーブル値が“○”（実施）に更新されていないと判定した場合、または、ステップ１２０４で“×”（非実施）に更新した後、ＣＰＵ１１は、読み出した列が実施有無関連テーブルの最終列か否かを判定し（ステップ１２０５）、最終列でないと判定した場合は、ステップ１２０１に戻って次の列を読み出し、再びその列の検出処理が更新前のテーブルと比較してテーブル値が“×”（非実施）から“○”（実施）に更新されたか否かを判定する（ステップ１２０２）。
一方、ステップ１２０５で読み出した列が実施有無関連テーブルの最終列であると判定した場合、ＣＰＵ１１は、検出処理関連テーブルによる処理のサブルーチンプログラムを終了する。
【００７０】
以上のように、実施有無関連テーブルのテーブル値が“○”（実施）に更新された場合、その検出処理と関連のある検出処理のテーブル値が“○”（実施）に変更され、その他の検出処理のテーブル値が“×”（非実施）に変更されるので、実施する必要性の大きい検出処理のみが実施されるように実施有無関連テーブルを変更することができる。
【００７１】
なお、上記の実施例では、本発明の車両用電子制御装置をエンジン制御ＥＣＵに適用した例について説明したが、その他のＥＣＵにも本発明を適用することが可能である。
【図面の簡単な説明】
【００７２】
【図１】本発明の車両用電子制御装置を適用したエンジン制御ＥＣＵの構成を示すブロック図である。
【図２】実施有無関連テーブルの一例を示す図である。
【図３】異常検出実施対象テーブルの一例を示す図である。
【図４】異常診断処理のメインプログラムの作用を示すフローチャートである。
【図５】異常実施有無判別検出処理のサブルーチンプログラムの作用を示すフローチャートである。
【図６】異常検出処理のサブルーチンプログラムの作用を示すフローチャートである。
【図７】水温センサの断線検出の作用を示すフローチャートである。
【図８】他の実施例の異常診断処理のメインプログラムの作用を示すフローチャートである。
【図９】処理実施有無関連テーブルの更新処理のサブルーチンプログラムの作用を示すフローチャートである。
【図１０】さらに他の実施例の異常診断処理のメインプログラムの作用を示すフローチャートである。
【図１１】関連テーブル初期化周期変更処理のサブルーチンプログラムの作用を示すフローチャートである。
【図１２】さらに他の実施例の異常診断処理のメインプログラムの作用を示すフローチャートである。
【図１３】検出処理関連テーブルによる処理のサブルーチンプログラムの作用を示すフローチャートである。
【図１４】検出処理関連テーブルの一例を示す図である。
【図１５】車両状況の変化状態の一例を示す時間経過図である。
【図１６】異常検出実施対象テーブルの変更状態を示す図である。
【図１７】実施有無関連テーブルの更新状態を示す図である。
【図１８】実施有無関連テーブルの更新状態を示す図である。
【図１９】異常検出実施対象テーブルの変更状態を示す図である。
【図２０】異常検出実施対象テーブルの変更状態を示す図である。
【図２１】異常継続時間を使用して実施有無関連テーブルのテーブル値を更新する実施例の作用を示すフローチャートである。
【図２２】他の実施例の検出処理関連テーブルによる処理のサブルーチンプログラムの作用を示すフローチャートである。
【符号の説明】
【００７３】
１  エンジン制御ＥＣＵ
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  入力回路
１５  出力回路
１６  バス
２  故障診断テスタ
２１  水温センサ
２２  Ａ／Ｆセンサ
２３  ノックセンサ
２４  回転数センサ
３１  ＩＧＴ
３２  インジェクター
３３  警告ランプ
【図１】
2006348786.tif 000003
【図２】
2006348786.tif 000004
【図３】
2006348786.tif 000005
【図４】
2006348786.tif 000006
【図５】
2006348786.tif 000007
【図６】
2006348786.tif 000008
【図７】
2006348786.tif 000009
【図８】
2006348786.tif 000010
【図９】
2006348786.tif 000011
【図１０】
2006348786.tif 000012
【図１１】
2006348786.tif 000013
【図１２】
2006348786.tif 000014
【図１３】
2006348786.tif 000015
【図１４】
2006348786.tif 000016
【図１５】
2006348786.tif 000017
【図１６】
2006348786.tif 000018
【図１７】
2006348786.tif 000019
【図１８】
2006348786.tif 000020
【図１９】
2006348786.tif 000021
【図２０】
2006348786.tif 000022
【図２１】
2006348786.tif 000023
【図２２】
2006348786.tif 000024