(57)【特許請求の範囲】
【請求項１】
イグニッションスイッチのオンからオフまでの走行期間であるトリップ期間に、所定のダイアグ項目に対し正常又は異常を判断する判断手段と、
該判断手段による判断結果に基づき、前記ダイアグ項目に対するダイアグ判定結果を表す判定状態を決定する判定状態決定手段と、
該判定状態決定手段にて決定された判定状態を記憶する記憶手段と、
前記判定状態決定手段にて決定された判定状態に基づき、前記ダイアグ判定結果に応じた出力制御を行う出力制御手段とを備え、
前記判定状態決定手段は、前記判断手段による判断結果に基づき、前記記憶手段に記憶された前回のトリップ期間における判定状態を、判定結果出力又は停止を決定するまでの過程を表す新たな判定状態へ遷移させる状態遷移処理を実行することによって、前記判定状態を決定するよう構成された車両用制御装置において、
前記判定状態決定手段は、前記判定状態を、各判定状態に対応して設定された、相互に重複しない数値として前記記憶手段に記憶させるものであって、
異常を検出した後のトリップにて連続して異常を検出していない場合には前記記憶手段に記憶されている数値を、当該数値を用いて、連続して変更させること
を特徴とするダイアグノーシス機能を有する車両用制御装置。
【請求項２】
請求項１に記載の車両用制御装置において、
前記判定状態決定手段は、前記記憶手段に記憶される数値を、１バイトで表現可能な「０」〜「２５５」の範囲の数値とすること
を特徴とするダイアグノーシス機能を有する車両用制御装置。
【請求項３】
請求項１又は２に記載の車両用制御装置において、
前記判定状態に対応する数値を、各判定状態に応じた所定範囲の数値として設定し、
前記判定状態決定手段は、前記状態遷移処理を実行する際には、前記記憶手段に記憶された前記判定状態に対応する数値に応じて、当該数値の加減を行い当該判定状態を遷移させるものであること
を特徴とするダイアグノーシス機能を有する車両用制御装置。
【請求項４】
請求項３に記載の車両用制御装置において、
前記判定状態決定手段は、前記状態遷移処理を実行する際には、前記判断手段による判断結果が同一のものとなるトリップ期間の連続する回数をカウントして前記判定状態を遷移させる場合には、前記判定状態に対応する数値の加減を行い、当該数値を前記トリップ期間毎に所定数ずつ変化させること
を特徴とするダイアグノーシス機能を有する車両用制御装置。
【請求項５】
請求項４に記載の車両用制御装置において、
前記判定状態決定手段は、前記状態遷移処理を実行する際には、完全な異常を示す判定状態から完全な正常を示す判定状態へ前記判定状態を遷移させるときに、前記判断手段にて正常と判断されると、前記判定状態に対応する数値を所定数ずつ変化させること
を特徴とするダイアグノーシス機能を有する車両用制御装置。
【請求項６】
請求項５に記載の車両用制御装置において、
前記判定状態決定手段は、前記状態遷移処理を実行する際には、前記判断手段にて正常と判断されると、完全な正常を示す判定状態に対応する数値となるまで、前記判定状態に対応する数値を所定数ずつ変化させること
を特徴とするダイアグノーシス機能を有する車両用制御装置。
【請求項７】
請求項４〜６のいずれかに記載の車両用制御装置において、
前記判定状態決定手段は、前記状態遷移処理を実行する際には、前記判定状態に対応する数値を前記トリップ期間毎に変化させるため、前記トリップ期間内において、前記判断手段にて同一の判断が繰り返しなされても、最初の判断時にだけ前記判定状態に対応する数値を変化させること
を特徴とするダイアグノーシス機能を有する車両用制御装置。
【請求項８】
請求項１〜７のいずれかに記載の車両用制御装置において、
前記記憶手段は、電源供給が常時なされて記憶内容をバックアップ可能な揮発性メモリ装置又は、電気的に書き換え可能な不揮発性メモリ装置を用いて実現されていること
を特徴とするダイアグノーシス機能を有する車両用制御装置。
【請求項９】
請求項１〜８のいずれかに記載の車両用制御装置において、
前記出力制御手段は、少なくとも異常を報知する警告灯のオン／オフ制御及び異常内容を示す異常コードの出力制御を行うこと
を特徴とするダイアグノーシス機能を有する車両用制御装置。
【請求項１０】
請求項１〜９のいずれかに記載の車両用制御装置において、
前記記憶手段は、最初のトリップ期間において、前記判定状態決定手段にて前記判定状態が決定されるまでは、未検出状態を示す数値を前記判定状態として記憶すること
を特徴とするダイアグノーシス機能を有する車両用制御装置。
【請求項１１】
請求項１〜１０のいずれかに記載の車両用制御装置において、
前記出力制御手段は、前記ダイアグ判定結果に応じた信号を外部の警告灯に対して送信することで、前記ダイアグ判定結果に応じた出力制御を行うこと
を特徴とするダイアグノーシス機能を有する車両用制御装置。
【請求項１２】
請求項１〜１１のいずれかに記載の車両用制御装置において、
前記出力制御手段は、前記ダイアグ判定結果に応じた信号を外部の表示器に対して送信することで、前記ダイアグ判定結果に応じた出力制御を行うこと
を特徴とするダイアグノーシス機能を有する車両用制御装置。
【請求項１３】
請求項１〜１２のいずれかに記載の車両用制御装置において、
前記ダイアグ判定結果に応じたコードを記憶するＲＡＭを備え、
前記出力制御手段は、前記ダイアグ判定結果に応じたコードを前記ＲＡＭに記憶させることで、前記ダイアグ判定結果に応じた出力制御を行うこと
を特徴とするダイアグノーシス機能を有する車両用制御装置。
【請求項１４】
請求項１〜１３のいずれかに記載の車両用制御装置の前記判断手段、前記判定状態決定手段及び前記出力制御手段としてコンピュータシステムを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、車両を制御する車両用制御装置の自己診断技術に関する。
【０００２】
【従来の技術】
近年、高性能マイクロプロセッサの出現などエレクトロニクス技術の進歩を背景として、機械技術と電子技術とが結びついたメカトロニクス技術の進歩が著しい。メカトロニクスの進歩の一部として、自動車等の車両にも多くのコンピュータシステムが採用されてきている。このような車載用のコンピュータシステムは、省資源、省エネルギー、走行性能、安全性、快適性等を追求するものであり、車両内のエンジン・駆動系、走行・安全系、エンターテイメント系、及びその他の随所に搭載されている。
【０００３】
その中でも特に高い信頼性を要求される車両制御用のコンピュータシステムは、システム内の各部位の異常検出を的確に行わないと、走行上の不具合を引き起こす可能性があり、場合によっては走行不能となることもある。そのため、コンピュータシステムに自己診断機能を備えることにより、信頼性の向上が図られている。すなわち、コンピュータ部やセンサ類の動作状態を適当な周期で自動的にチェックし、故障時には、ユーザなどに故障を知らせるための警告灯（ＭＩＬ）を点灯したり、その故障内容が修理担当者などに分かるよう異常コード（ＤＴＣ）を出力したりする、いわゆるダイアグノーシス（以下「ダイアグ」という。）判定を可能にしている。
【０００４】
このダイアグ判定について説明する。ダイアグ判定は、ただ単に作動状態を単発的にチェックして「正常」又は「異常」を判定するものではない。「正常」、「異常」にもレベルがあるからである。例えば、センサからの入力系の「異常」を例に挙げた場合、コネクタ等における一時的な接触不良も「異常」であるし、完全な断線も「異常」である。前者の場合は、その後良好な作動状態を維持することがあり、特に部品交換の必要性が認められないことがある。
【０００５】
このため、従来は、複数回のトリップ（イグニッションスイッチのオンからオフまでの１回の走行）にわたってダイアグ判定を行うようにしている。具体的には、トリップ毎の正常／異常の判断結果から、上述したような各レベルを有するダイアグ判定結果としての状態（以下「判定状態」という。）を決定するようにしている。例えば、１回目のトリップにて異常が検出された場合には、例えば一時的な接触不良とも考えられるため、判定状態を「仮異常状態」とし、その判定状態を記憶しておき、連続して２回目のトリップでも異常が検出された場合には、完全な断線の可能性が高いため、判定状態を「本異常状態」に遷移させるという具合に、判断結果によって判定状態を遷移させ、この判定状態に基づく出力制御を行っている。
【０００６】
このように複数回のトリップにわたって正常／異常を判断することから、車両用制御装置内部には、上述した判定状態を記憶する領域が確保される。
従来は、あるビットがセットされているか否かというフラグ情報を用いてこの判定状態を記憶していた。例えばこのフラグ情報を記憶する領域は、一時的な記憶を行うノーマルＲＡＭに１バイト、イグニッションスイッチがオフとなっても内容を保持するバックアップＲＡＭに１バイトという具合に用意される。さらに、バックアップＲＡＭに保持された情報が欠落・破損などしていないかを検証できるように、バックアップＲＡＭにはミラーデータとして同一データを重複させて記憶しておくのが一般的である。
【０００７】
すなわちこの場合は、ノーマルＲＡＭに１バイト、ミラーデータを含めてバックアップＲＡＭに２バイトの領域が用意されるため、判定状態を記憶するために計３バイトの領域が確保される。
さらに、判定状態が一度「本異常状態」とされた場合であっても、例えば４０回というような所定回数のトリップで異常が検出されなければ判定状態を「正常状態」に復帰させ、警告灯を消灯したり、異常コードの出力を停止するという制御を行っている。したがって、警告灯を消灯するまでのトリップ数、異常コードを消去するまでのトリップ数を計数するためのカウンタを用意し、このカウンタの値もバックアップＲＡＭに記憶していた。
【０００８】
そのため、例えば、警告灯を消灯するまでのトリップ数を計数するために１バイトの領域を確保し、異常コードの出力を停止するまでのトリップ数を計数するためにさらに１バイトの領域を確保していた。そして、一般的にそれぞれにミラーデータが付加されるため、カウンタ値を記憶するのに計４バイトの記憶領域を確保していた。
【０００９】
このように従来は、１つのダイアグ項目に対するダイアグ判定を行うために、合計７バイト前後の記憶領域が確保される状況があった。
【００１０】
【発明が解決しようとする課題】
ところが、ダイアグ項目は、クランク角センサ、カム角センサ、水温センサなど、各センサのダイアグ、失火検出のダイアグをはじめ、現在では約２００項目におよぶ。そのため、２００×７＝約１．４Ｋバイトもの記憶領域が必要となってくる。そして、コンピュータシステムの随所への導入により、ダイアグ項目も増加の一途をたどっている。
【００１１】
また、法規制（ＥＯＢＤ）によってＲＡＭ内容をＥＥＰＲＯＭへ記憶することが要求されている。したがって、これを実現すると、ＲＡＭの記憶領域だけでなくＥＥＰＲＯＭの記憶領域を圧迫することになる。
一方、判定状態を記憶するために２バイト（１６ビット）の領域（ミラーデータを含めれば３バイトの領域）を確保すれば１６本のフラグとして使用できるが、１６本全てのフラグが必要となるわけではない。このようにバイト単位で記憶領域を確保する１つの理由として以下のことが言える。
【００１２】
以前はＣＩＳＣマイコンが主流であったため、１命令でビット操作ができた。しかし近年、命令数を少なくして演算速度を上げたＲＩＳＣマイコンが主流となっている。このＲＩＳＣマイコンでは、バイト単位の操作命令はあっても、ビット操作命令は減る方向にある。ビット操作命令がなければ、複数の命令を組み合わせる必要があり、これによって演算速度が遅くなってしまう。
【００１３】
これを解決するために、１命令で可能なバイト単位のデータ操作を行うことになる。例えば１バイト領域の最上位ビットをセットする場合には、「１２８」（２進数では１０００００００）を記憶すればよい。つまり、ＲＩＳＣマイコンにビット操作命令がないために、演算速度の低下を回避しようとすれば、１バイト単位で記憶領域を確保する必要が生じるのである。結果として、記憶領域を無駄に使用することになっていた。
【００１４】
そして、従来のようにフラグ情報として判定状態を記憶する手法では、ビット操作命令のないＲＩＳＣマイコンにおいて、ビット操作を意識した処理プログラム設計をすることになるため、設計工数を考えても不利であった。そして、実際にビット単位の操作をすることもあり、その場合には、演算速度の低下を招いていた。
【００１５】
本発明は、このような問題点を解決するためになされたものであり、ダイアグ判定において、必要となる記憶領域を削減すると共に、主流となっているＲＩＳＣマイコンに合わせた情報操作を行うことにより、処理プログラムの設計工数を削減し、また、演算速度の低下を防止することを目的とする。
【００１６】
【課題を解決するための手段及び発明の効果】
上述した目的を達成するためになされた請求項１に記載の車両用制御装置では、判断手段が、トリップ期間に、所定のダイアグ項目に対し正常又は異常を判断する。ここでトリップ期間とは、イグニッションスイッチのオンからオフまでの期間をいう。
【００１７】
例えば水温センサの断線ダイアグを例に挙げれば、水温センサから通常０〜５（Ｖ）の範囲の信号が入力されるのであるが、所定時間連続して０Ｖであった場合には断線、連続して５Ｖであった場合にはショートの可能性が高いと判断し、「水温センサの断線（ショート）ダイアグ」というダイアグ項目に対し異常と判断するという具合である。
【００１８】
判定状態決定手段は、この判断手段による判断結果に基づき、ダイアグ項目に対するダイアグ判定結果を表す判定状態を決定する。この判定状態は記憶手段に記憶されるため、判定状態決定手段は、記憶手段に記憶された前回のトリップ期間における判定状態を、判定結果出力又は停止を決定するまでの過程を表す新たな判定状態へ遷移させる状態遷移処理を実行することによって、判定状態を決定する。例えば、状態遷移処理を実行することによって前回のトリップ期間において「仮異常状態」となった判定状態を、再度異常と判断された場合に「本異常状態」という判定状態へ遷移させるという具合である。
【００１９】
そして、出力制御手段は、判定状態決定手段にて決定された判定状態に基づき、ダイアグ判定結果に応じた出力制御を行う。
ここで特に本発明は、判定状態決定手段が、上述した判定状態を、各判定状態に対応して設定された数値として記憶することを特徴とする。この数値は、複数の判定状態の間で重複しない。例えば正常状態を「１」、本異常状態を「４１」、仮異常状態を「５０」という具合に記憶する。
また、異常を検出した後のトリップにて連続して異常を検出していない場合には、判定状態決定手段が、前記記憶手段に記憶されている数値を、当該数値を用いて、連続して変更させる。
【００２０】
従来は、所定ビットをセットするかリセットするかというフラグ情報として判定状態を記憶していた。つまり、１バイト（８ビット）の領域を８本のフラグとして使用していた。
これに対して本発明では、各判定状態をフラグ情報で記憶せず、ユニークな数値で記憶するようにした。例えば請求項２に示すように、判定状態決定手段が、前記記憶手段に記憶される数値を、１バイトで表現可能な「０」〜「２５５」の範囲の数値とすることが考えられる。１バイトの領域があれば０〜２５５の数値にて、最大２５６の判定状態が記憶できる。その結果、ダイアグ判定において必要となる記憶領域を削減することができる。
【００２１】
例えば従来は、ノーマルＲＡＭに１バイト、バックアップＲＡＭに１バイトの計２バイトの領域を用意していたが、従来と同様のダイアグ判定では、バックアップＲＡＭに１バイトの領域を確保すれば十分である。
また、従来のようにフラグ情報で判定状態を記憶しないため、処理設計においてビット操作を意識することがなくなる。すなわち、ＲＩＳＣマイコンに合わせた情報操作を行うことができ、処理プログラムの設計工数を削減することができる。また、従来はＲＩＳＣマイコンに用意された命令で実現できないビット単位の操作を行う場合があり、その場合は、演算速度の低下を招くことになっていた。これに対し、本発明によれば演算速度の低下を招くこともない。
【００２２】
ところで、数値にて示される判定状態を遷移させる場合、例えば従来と同様にカウンタを用いてトリップ数を計数することが考えられる。しかし、その場合には従来と同様に、カウンタ値を記憶しておくための記憶領域を確保する必要が生じる。
【００２３】
一方、１バイトの領域に判定状態を数値で記憶する場合には、０〜２５５の数値にて最大２５６の判定状態が記憶できる。ところが、２５６もの判定状態を設けることはない。例えば後述する実施例では、「正常」とされる状態を３つの判定状態にて示し、異常とされる状態を２つの判定状態として示し、計５つの判定状態を定義している。このように高々数十という判定状態を記憶できればよいことを考えると、判定状態に対応する数値を工夫して記憶することによってカウンタ値を記憶するための記憶領域を削減できる。
【００２４】
すなわち、請求項３に示すように、判定状態に対応する数値を、各判定状態に応じた所定範囲の数値として設定しておく。そして、判定状態決定手段が、状態遷移処理を実行する際には、記憶手段に記憶された判定状態に対応する数値に応じて、当該数値の加減を行い当該判定状態を遷移させるようにするとよい。
【００２５】
上述したように、判定状態が完全な異常を示す「本異常」として一度決定された場合であっても、例えば４０回というような所定回数のトリップで異常が検出されなければ完全な正常を示す判定状態へ復帰させ、警告灯を消灯したり、異常コードの出力を停止したりする。
【００２６】
そこで例えば請求項４に示すように、判定状態決定手段が、状態遷移処理を実行する際には、判断手段による判断結果が同一のものとなるトリップ期間の連続する回数をカウントして判定状態を遷移させる場合には、判定状態に対応する数値の加減を行い、当該数値をトリップ期間毎に所定数ずつ変化させることが考えられる。具体的には、上述した例の如く、完全な異常を示す判定状態から完全な正常を示す判定状態へ判定状態を遷移させるときに、判断手段にて正常と判断されると、判定状態決定手段が、判定状態に対応する数値を所定数ずつ変化させるという具合である（請求項５）。例えば、判定状態決定手段が、完全な正常を示す判定状態に対応する数値となるまで、判定状態に対応する数値を所定数ずつ変化させる（請求項６）。
【００２７】
例えば正常状態として３つの状態を定義する。それは、完全に正常な状態を示す第１の正常状態、遠い過去に異常となったが現在は正常である状態を示す第２の正常状態、及び近い過去に異常となったが現在は正常である状態を示す第３の正常状態である。そして、それぞれに相互に重複しない所定範囲の数値を割り付ける。例えば第１の正常状態に「１」、第２の正常状態に「２〜３８」、第３の正常状態に「３９，４０」を割り付ける。そして完全な異常を示す本異常状態を「４１」とする。
【００２８】
この場合に、一度判定状態が本異常状態「４１」と決定されてから、その後のトリップ期間に正常との判断がなされた場合、状態遷移処理にて、判定状態を示す数値をデクリメントする。
具体的に言えば、本異常状態と判定された時点で数値「４１」が記憶される。そして、続くトリップにて正常との判断がなされると、数値がデクリメントされ「４０」となる。したがって、第３の正常状態へ遷移する。さらに、その後のトリップで「正常」との判断が続けてなされれば、「４０」→「３９」→「３８」→・・・→「２」→「１」と数値がデクリメントされていく。したがって、判定状態は、「本異常状態」→「第３の正常状態」→「第２の正常状態」→「第１の正常状態」という具合に遷移することになる。すなわち、判定状態が、本異常とされた後、４０トリップという、正常判断がなされたトリップ期間の連続する回数をカウントして第１の正常状態まで遷移することになる。
【００２９】
なお、請求項３でいう数値の加減には、所定数ずつ数値を変化させる場合だけでなく、例えば仮異常状態「５０」から本異常状態「４１」への遷移を実現するために数値「９」を減じる場合も含まれる。また、その場合に実際に減算処理を実行する必要もない。例えば「５０」が代入されている変数に「４１」を代入してもよい。つまり、結果的に数値が加減されてもよい。
【００３０】
ところで、あるトリップ期間内に、判断手段にて「正常」との判断が複数回なされることが考えられる。このとき、そのトリップ期間内に上述した数値のデクリメントが繰り返されると、トリップ数を正確にカウントできなくなる。
そこで請求項７に示すように、判定状態決定手段が、状態遷移処理を実行する際には、判定状態に対応する数値をトリップ期間毎に変化させるため、トリップ期間内において、判断手段にて同一の判断が繰り返しなされても、最初の判断時にだけ判定状態に対応する数値を変化させるようにするとよい。例えば判定状態に対応する数値をデクリメントすると共に、ある定数を加算しておくことが考えられる。すると、２度目に正常との判断がなされた場合には、判定状態に対応する数値がその定数以上の値となっているため、これを判断すれば同一トリップ期間における複数回のデクリメントを回避できる。この定数は、各トリップ期間の最初に減じるようにすればよい。このようにすれば、あるトリップ期間内に「正常」との判断が複数回なされても、トリップ数を正確にカウントできる。
【００３１】
以上説明したように、相互に重複しない所定範囲の数値として判定状態を記憶し、状態遷移処理にて、記憶された数値に応じた加減を行えば、カウンタを別に設ける必要がなくなる。
その結果、ミラーデータを含めて４バイトの記憶領域を使用していたカウンタ値の記憶領域が不要となる。したがって、従来は１つのダイアグ項目に対して７バイトの記憶領域を確保する必要があったが、本発明によれば、カウンタ値を記憶する４バイトが削減され、さらに上述したように判定状態を記憶する領域も、ミラーデータを含めて２バイトで足り、１バイトが削減される。すなわち、１つのダイアグ項目に対して２バイトの記憶領域を確保すればよい。これによって、２００項目のダイアグ項目があった場合であっても、２００×２＝４００バイトの記憶領域を確保すればよく、ＲＡＭ領域を大幅に削減できる。また、ＲＡＭ内容をＥＥＰＲＯＭに記憶しても、ＥＥＰＲＯＭの記憶領域を圧迫することがなくなる。
【００３２】
また、上述した通り、数値にて判定状態を記憶することによってＲＩＳＣマイコンに合わせた情報操作を実現した。
以上のことから本発明によれば、ダイアグ判定において、必要となる記憶領域を削減すると共に、処理プログラムの設計工数を削減することができ、演算速度の低下を招くこともない。
【００３３】
ところで、記憶手段は前回のトリップ期間における判定状態を記憶するため、イグニッションキーがオフされた状態においても記憶内容を保持できるものにする必要がある。したがって請求項８に示すように、電源供給が常時なされて記憶内容をバックアップ可能な揮発性メモリ装置又は、電気的に書き換え可能な不揮発性メモリ装置を用いて実現することが考えられる。より具体的に言えば、既に上述したバックアップＲＡＭやＥＥＰＲＯＭなどのメモリ装置を用いて実現すればよい。
【００３４】
なお、出力制御手段は判定状態に基づきダイアグ判定結果に応じた出力制御を行うが、具体的には請求項９に示すように、出力制御手段を、少なくとも異常を報知する警告灯のオン／オフ制御及び異常内容を示す異常コードの出力制御を行う構成とすることが考えられる。警告灯のオン／オフ制御は、警告灯を点灯させるか消灯させるかという制御である。また、異常コードの出力制御は、異常コードを出力するか否かという制御である。異常コードの出力は、例えば表示器を備える構成であれば、その表示器に表示することで実現することが考えられる。また、記憶装置に異常コードを記憶することで実現してもよい。異常コードの出力を停止する場合、前者では表示器への出力を停止する。一方後者では、記憶装置に記憶された異常コードを消去する。
【００３５】
例えば上述した例のように第１の正常状態、第２の正常状態、第３の正常状態、仮異常状態、本異常状態を定義した場合、各判定状態における故障の確率を考えて次のように警告灯の点灯及び異常コードの出力を行うことが考えられる。
正常状態、仮異常状態では、警告灯をオフ（消灯）し、異常コードを出力しない。一方、本異常状態、第３の正常状態では、警告灯をオン（点灯）し、異常コードを出力する。そして、第２の正常状態では、警告灯をオフ（消灯）し、異常コードのみを出力する。
【００３６】
ところで、最初のトリップであって判定状態が決定されていない場合、記憶手段に、それを示す判定状態を記憶しておくことが考えられる。すなわち、請求項１０に示すように、前記記憶手段が、最初のトリップ期間において、前記判定状態決定手段にて前記判定状態が決定されるまでは、未検出状態を示す数値を前記判定状態として記憶するようするとよい。初期状態において、未検出状態を示す数値、例えば「０」を記憶手段に記憶しておけば、初期状態を判断する特別な処理を状態遷移処理に設ける必要がなくなる。したがって、処理プログラムの設計が容易になり、処理プログラムの設計工数の削減に寄与する。
また、請求項１１に示すように、出力制御手段が、ダイアグ判定結果に応じた信号を外部の警告灯に対して送信することで、ダイアグ判定結果に応じた出力制御を行うことが考えられる。また、請求項１２に示すように、出力制御手段が、ダイアグ判定結果に応じた信号を外部の表示器に対して送信することで、ダイアグ判定結果に応じた出力制御を行うことが考えられる。また、請求項１３に示すように、ダイアグ判定結果に応じたコードを記憶するＲＡＭを備え、出力制御手段が、ダイアグ判定結果に応じたコードをＲＡＭに記憶させることで、ダイアグ判定結果に応じた出力制御を行うことが考えられる。
【００３７】
なお、このような車両用制御装置の判断手段、判定状態決定手段及び出力制御手段をコンピュータシステムにて実現する機能は、例えば、コンピュータシステム側で起動するプログラムとして備えることができる。このようなプログラムの場合、例えば、ＦＤ、ＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ、ハードディスク等のコンピュータ読み取り可能な記録媒体に記録し、必要に応じてコンピュータシステムにロードして起動することにより用いることができる。この他、ＲＯＭやバックアップＲＡＭをコンピュータ読み取り可能な記録媒体として前記プログラムを記録しておき、このＲＯＭあるいはバックアップＲＡＭをコンピュータシステムに組み込んで用いてもよい。
【００３８】
【発明の実施の形態】
以下、本発明を具体化した一実施例を図面を参照して説明する。
図１は、本発明を具体化したエンジン制御装置（以下「ＥＣＵ」という。）２の構成を表すブロック図である。ＥＣＵ２は、車両に搭載された内燃機関型エンジンの制御を行う。
【００３９】
図１に示すように、ＥＣＵ２は、エンジンのクランク軸が所定角度回転する毎にパルス状の信号を出力する回転角センサ４、エンジンの特定の気筒のピストンが所定位置（例えば上死点：ＴＤＣ）にくる度にパルス状の信号を出力する基準位置センサ６、エンジンの冷却水の温度を検出する水温センサ８、及び酸素濃度を計測する酸素濃度センサ１０等、エンジンの運転状態を検出する様々なセンサからの信号を入力して波形整形やＡ／Ｄ変換を行う入力回路１２と、入力回路１２からのセンサ信号に基づき、エンジンを制御するための様々な処理を行うマイクロコンピュータ（以下、マイコンという）１４と、マイコン１４からの制御信号に応じて、エンジンに取付けられたインジェクタ（燃料噴射装置）及びイグナイタ（点火装置）等のアクチュエータ１６、車室内に設けられた警告灯（ウォーニングランプ）１８、さらには、異常コードを表示する表示器２０等を駆動する出力回路２２と、を備えている。この警告灯１８及び表示器２０は、後述するダイアグ判定に用いられる。
【００４０】
そして、マイコン１４には、プログラムを実行する周知のＣＰＵ（中央演算処理装置）２４と、ＣＰＵ２４によって実行されるプログラムやそのプログラムの実行時に参照される制御データを記憶するＲＯＭ２６と、ＣＰＵ２４による演算結果等を記憶するためのバックアップＲＡＭ２８と、入力回路１２及び出力回路２２との間で信号をやり取りするためのＩ／Ｏ３０と、各種レジスタやフリーランカウンタ等（図示省略）とが備えられている。
【００４１】
このように構成されたＥＣＵ２は、各種センサから入力回路１２を介して入力される信号に基づき、出力回路２２に接続されたアクチュエータ１６を駆動する、エンジン制御処理を行う。
そして、本実施例のＥＣＵ２は、上述したエンジン制御処理に並行して、システムの各部位を診断してその診断結果を出力する、いわゆるダイアグ判定を行うことを特徴としている。したがって、以下このダイアグ判定について説明する。
【００４２】
ダイアグ判定の対象となるダイアグ項目は、例えば水温センサ８や酸素濃度センサ１０の断線ダイアグ、イグナイタの失火検出ダイアグなどをはじめ、約２００の項目におよぶ。本実施例では水温センサ８の断線ダイアグを例に挙げて説明する。なお、他のダイアグ判定も基本的に同様となる。
【００４３】
本実施例のマイコン１４には、水温センサ８からの信号が入力回路１２を介して入力される。水温センサ８からの信号値は、通常０〜５（Ｖ）の範囲を動くことになるため、一定期間連続して０Ｖあるいは５Ｖとなっている場合には、水温センサ８からの信号線の断線あるいはショートが予想できる。したがって、マイコン１４のＣＰＵ２４は、信号値が０Ｖあるいは５Ｖとなっている状態が継続する期間をカウンタにて計測し、一定期間その状態が継続した場合に「異常」と判断する。一方、一定期間その状態が継続しなければ「正常」と判断する。ＥＣＵ２は、エンジン制御処理に並行して、このような正常／異常の判断を、各ダイアグ項目に対し定期的に行う。したがって、マイコン１４のＣＰＵ２４が「判断手段」に相当する。
【００４４】
ただし、１回のトリップで水温センサ８が「異常」であると判断されても、コネクタ等における一時的な接触不良であることも考えられるため、複数回のトリップにわたってダイアグ判定を行う。
具体的には、マイコン１４のＣＰＵ２４は、上述した各トリップにおける正常／異常の判断に基づき、ダイアグ判定結果を表す判定状態を決定する。そして、この判定状態に基づき、出力回路２２を介して、警告灯１８を点灯させたり、表示器２０に異常コードを表示させたりする。そして、この判定状態はバックアップＲＡＭ２８に記憶され、次のトリップでは、記憶した判定状態を参照し必要に応じて判定状態を遷移させる。したがって、ＣＰＵ２４が「判定状態決定手段」及び「出力制御手段」に相当し、バックアップＲＡＭ２８が「記憶手段」に相当する。
【００４５】
本実施例では、この判定状態のそれぞれに、重複しないような所定範囲の数値を割り当て、判定状態をこの数値（以下「ステータスデータ」という。）にて記憶すると共に、記憶されたステータスデータＳｔに従い判定状態を遷移させることを特徴とする。
【００４６】
そこで次に、本実施例で定義される判定状態と、それら判定状態に対応して割り当てられるステータスデータＳｔを示す。
未検出状態    ：最初のトリップにて水温センサ８の異常／正常の判断がなされていない状態を示す。ステータスデータ「０」を割り当てる。
【００４７】
第１の正常状態：完全な正常状態を示す。ステータスデータ「１」を割り当てる。
第２の正常状態：過去４０トリップ以内に本異常状態とされたことがあるが、その後は正常と判断されている状態を示す。ステータスデータ「２」〜「３８」，「１３０」〜「１６６」を割り当てる。
【００４８】
第３の正常状態：過去３トリップ以内に本異常状態とされたことがあるが、その後は正常と判断されている状態を示す。ステータスデータ「３９」，「４０」，「１６６」，「１６８」を割り当てる。
仮異常状態    ：異常判断がなされた状態であって、かつ、直前に正常判断がなされていた状態を示す。ステータスデータ「５０」，「５１」，「１７８」，「１７９」を割り当てる。
【００４９】
本異常状態    ：異常判断がなされた状態であって、かつ、直前に異常判断がなされていた状態を示す。ステータスデータ「４１」を割り当てる。
なお、例えば同じ仮異常状態であっても、ステータスデータ「５０」の仮異常状態と、ステータスデータ「５１」の仮異常状態が存在する。したがって、以下の説明では、例えばステータスデータ「５０」の仮異常状態を、説明の便宜上、必要に応じて仮異常状態「５０」と記述することにする。
【００５０】
本実施例では、このような計６つの判定状態が定義されており、マイコン１４のＣＰＵ２４は、前回のトリップにて決定した判定状態を新たな判定状態へ遷移させるための状態遷移処理を実行し、１つの判定状態を決定する。そして、未検出状態、第１の正常状態及び仮異常状態では、警告灯１８を消灯し、異常コードの出力も行わない。また、第２の正常状態では、警告灯１８を消灯し、異常コードのみを表示器２０に表示する。第３の正常状態及び本異常状態では、警告灯１８を点灯し、異常コードを表示器２０に表示する。
【００５１】
次に、上述した６つの判定状態を、各トリップにおける正常／異常の判断に基づき遷移させる状態遷移処理について説明する。この状態遷移処理は、図２のフローチャートに示したイニシャル処理、及び図３のフローチャートに示した遷移処理からなっている。なお、図４は、判定状態の遷移を示したものである。以下の説明では適宜図４を参照する。
【００５２】
最初に図２に示すイニシャル処理を説明する。この処理は、イグニッションキーがオンとなった直後、すなわち各トリップの最初に実行されるものである。
まずステップＳ１００において、ステータスデータＳｔが「１３０」以上であるか否かを判断する。ここでＳｔ≧１３０であると判断された場合（Ｓ１００：ＹＥＳ）、Ｓ１１０にてステータスデータＳｔから「１２８」を減じ、その後、本イニシャル処理を終了する。このＳ１１０の処理によって、図４中に記号Ａで示した遷移が実現される。一方、Ｓｔ＜１３０であると判断された場合（Ｓ１００：ＮＯ）、Ｓ１１０の処理を実行せず、本イニシャル処理を終了する。
【００５３】
ここでイニシャル処理について説明を加える。イニシャル処理では、図４から分かるように、判定状態は変わらずステータスデータＳｔのみが変わる。これは次のような理由による。
例えばあるトリップ（以下「トリップＡ」という。）にて、未検出状態から仮異常状態へ遷移したときには仮異常状態「１７８」とされる。その後、次のトリップ（以下「トリップＢ」という。）にて再び「異常」との判断がなされると、さらに、本異常状態「４１」とされる。しかし、例えばトリップＡにて２回続けて「異常」との判断がなされることも考えられる。したがって、トリップＡにて仮異常状態へ遷移させた後、同じトリップＡで本異常状態へ遷移させないようにする必要がある。そのため、トリップＢの開始直後に仮異常状態「１７８」から仮異常状態「５０」とし、仮異常状態「５０」のときに「異常」との判断がなされてはじめて、本異常状態「４１」へ遷移させるようにしているのである。
【００５４】
続いて図３に示す遷移処理を説明する。この処理は、上述したイニシャル処理終了後、所定時間間隔で繰り返し実行される。
まず最初のステップＳ２００では、水温センサ８が「異常」と判断されたか否かによる分岐処理を行う。ここで水温センサ８が「異常」と判断された場合（Ｓ２００：ＹＥＳ）、Ｓ２１０へ移行する。一方、「異常」と判断されなかった場合（Ｓ２００：ＮＯ）Ｓ２７０へ移行する。
【００５５】
Ｓ２１０では、ステータスデータＳｔが「５０」又は「５１」であるか否かを判断する。ここでＳｔ＝５０，５１であった場合（Ｓ２１０：ＹＥＳ）、すなわち仮異常状態である場合には、Ｓ２２０にてＳｔに「４１」を代入し本異常状態へ遷移させ、その後、Ｓ２７０へ移行する。このＳ２２０の処理によって、図４中に記号Ｂで示した状態遷移が実現される。一方、Ｓｔ≠５０，５１であった場合（Ｓ２１０：ＮＯ）、Ｓ２３０へ移行する。
【００５６】
Ｓ２３０では、ステータスデータＳｔが「０」又は「１」であるか否かを判断する。ここでＳｔ＝０，１であった場合（Ｓ２３０：ＹＥＳ）、すなわち未検出状態「０」であるか、あるいは、第１の正常状態「１」である場合には、Ｓ２４０にてＳｔに「１７８」を代入して仮異常状態へ遷移させ、その後、Ｓ２７０へ移行する。このＳ２４０の処理によって、図４中に記号Ｃで示した状態遷移が実現される。一方、Ｓｔ≠０，１であった場合（Ｓ２３０：ＮＯ）、Ｓ２５０へ移行する。
【００５７】
Ｓ２５０では、ステータスデータＳｔが「２」〜「４０」又は「１３０」〜「１６８」であるか否かを判断する。ここでＳｔ＝２〜４０，１３０〜１６８であった場合（Ｓ２５０：ＹＥＳ）、すなわち第２又は第３の正常状態であった場合には、Ｓ２６０にてＳｔに「１７９」を代入して仮異常状態へ遷移させ、その後、Ｓ２７０へ移行する。このＳ２６０の処理によって、図４中の記号Ｄで示した状態遷移が実現される。一方、Ｓｔ≠２〜４０，１３０〜１６８であった場合（Ｓ２５０：ＮＯ）、Ｓ２７０へ移行する。
【００５８】
Ｓ２００にて否定判断された場合、Ｓ２２０，Ｓ２４０，Ｓ２６０の処理終了後、又は、Ｓ２５０にて否定判断された場合に移行するＳ２７０では、水温センサ８が「正常」と判断されたか否かによって分岐処理を行う。ここで水温センサ８が「正常」と判断された場合（Ｓ２７０：ＹＥＳ）、Ｓ２８０へ移行する。一方、「正常」と判断されていない場合（Ｓ２７０：ＮＯ）、本遷移処理を終了する。
【００５９】
Ｓ２８０では、ステータスデータＳｔが「３」〜「４１」であるか否かを判断する。ここでＳｔ＝３〜４１であった場合（Ｓ２８０：ＹＥＳ）、Ｓ２９０にてＳｔに「１２７」を加え、その後、本遷移処理を終了する。Ｓ２９０の処理は、図４中に記号Ｅで示した遷移に相当する。一方、Ｓｔ≠３〜４１であった場合（Ｓ２８０：ＮＯ）、Ｓ３００へ移行する。
【００６０】
ここでＳ２９０の処理について説明を加える。Ｓ２９０は、「正常」と連続して判断されたトリップ数を計数するためのデクリメント処理（ステータスデータＳｔから「１」を減じる）と、同一トリップにおいて「正常」との判断が連続してなされてもステータスデータＳｔに対するデクリメントを連続して行わないようにするための処理（ステータスデータＳｔに「１２８」を加える）からなっている。すなわち、ステータスデータＳｔに「１２８」を加えることで、そのトリップで「正常」との判断が既になされたことを表す。また、本異常状態とされた後、次からのトリップにて「正常」との判断が連続してなされるとステータスデータＳｔをデクリメントしていき、連続する４０トリップにて「異常」との判断がなされない場合に、第３及び第２の正常状態を経て第１の正常状態まで遷移させる。このため、Ｓ２９０では、ステータスデータＳｔに「１２８」を加え「１」を減じる、つまり「１２７」を加えるのである。
【００６１】
Ｓ３００では、ステータスデータＳｔが「０」、「２」、「５０」又は「１７８」であるか否かを判断する。ここでＳｔ＝０，２，５０，１７８であった場合（Ｓ３００：ＹＥＳ）、Ｓ３１０にてＳｔに「１」を代入し第１の正常状態へ遷移させ、その後、本遷移処理を終了する。Ｓ３１０の処理は、図４中に記号Ｆで示した状態遷移に相当する。一方、Ｓｔ≠０，２，５０，１７８であった場合（Ｓ３００：ＮＯ）、Ｓ３２０へ移行する。
【００６２】
Ｓ３２０では、ステータスデータＳｔが「５１」又は「１７９」であるか否かを判断する。ここでＳｔ＝５０，１７９であった場合（Ｓ３２０：ＹＥＳ）、Ｓ３３０にてＳｔに「１６８」を代入して第３の正常状態へ遷移させ、その後、本遷移処理を終了する。このＳ３３０の処理によって、図４中に記号Ｇで示した状態遷移が実現される。一方、Ｓｔ≠５１，１７９であった場合（Ｓ３２０：ＮＯ）、本遷移処理を終了する。
【００６３】
次に、上述したイニシャル処理及び遷移処理を具体例を挙げて説明する。
図５は、ダイアグ判定における判定状態、トリップの回数、バックアップＲＡＭ２８に記憶されるステータスデータＳｔ、警告灯のオン／オフ及び異常コード出力を対応させて示すタイミングチャートである。図５では、期間［Ｔ０，Ｔ１］が１回目のトリップを示し、期間［Ｔ１，Ｔ２］が２回目のトリップを示し、期間［Ｔ２，Ｔ３］が３回目のトリップを示し、期間［Ｔ３，Ｔ４］が４回目のトリップを示し、期間［Ｔ４，Ｔ５］が５回目のトリップを示している。そして、その後のトリップを省略し、時刻Ｔ６以降が４２回目のトリップを示している。なお以下では、ｎ回目のトリップを「ｎトリップ」と記載する。例えば２回目のトリップは「２トリップ」となる。
【００６４】
時刻Ｔ０からの１トリップでは、時刻ｔ１で水温センサ８の「異常」が判断されている。したがって、判定状態は、未検出状態「０」から仮異常状態「１７８」へと遷移する（図３中のＳ２３０：ＹＥＳ，Ｓ２４０）。
次に時刻Ｔ１からの２トリップが開始されると、ステータスデータ「１７８」から「１２８」が減じられる（図２中のＳ１００：ＹＥＳ，Ｓ１１０）。そして、時刻ｔ２で水温センサ８の「異常」が判断されると、仮異常状態「５０」から本異常状態「４１」へと遷移する（図３中のＳ２１０：ＹＥＳ，Ｓ２２０）。本異常状態となると、警告灯がオンとなり、また、異常コードが出力される。すなわち、出力回路２２に接続された警告灯１８が点灯し、表示器２０に異常コードが表示される。なお、本実施例では、異常コードを表示器２０に表示する構成としたが、例えば異常コードの出力先をバックアップＲＡＭ２８としてもよい。
【００６５】
続く時刻Ｔ２からの３トリップでは、まず時刻ｔ３にて水温センサ８の「正常」が判断される。したがって、判定状態は、本異常状態「４１」から第３の正常状態「１６８」へ遷移する（図３中のＳ２８０：ＹＥＳ，Ｓ２９０）。すなわち、ここではステータスデータＳｔから「１」を減じると共に「１２８」が加えられる。そのため、時刻ｔ４で水温センサ８の「正常」が判断されても、既に３トリップで「正常」判断がなされていることが分かり２重に処理されることはない。第３の正常状態では、本異常状態と同様に、警告灯がオンにされ、異常コードが出力される。
【００６６】
時刻Ｔ３からの４トリップが開始されると、ステータスデータＳｔ「１６８」から「１２８」が減じられる（図２中のＳ１００：ＹＥＳ，Ｓ１１０）。そして、時刻ｔ３で水温センサ８の「正常」が判断されると、第３の正常状態のまま、ステータスデータＳｔに「１２７」が加えられ「１６７」となる（図３中のＳ２８０：ＹＥＳ）。
【００６７】
続く５トリップでは時刻ｔ６で、第３の正常状態「３９」から第２の正常状態「１６６」へ遷移する。第２の正常状態となると、警告灯がオフされる。ただし、異常コードは出力される。
同様に以降の各トリップで水温センサ８の正常判断がなされると、ステータスデータＳｔは各トリップの開始直後に１２８を減ぜられ、正常判断がなされた時点で１２７を加えられる。つまり「１」ずつ小さくなっていき、結果的にトリップ数を計数する。
【００６８】
そして、時刻ｔ６からの４２トリップにて時刻ｔ７で水温センサ８の「正常」が判断されると、第２の正常状態「２」から第１の正常状態「１」へ遷移する（図３中のＳ３００：ＹＥＳ）。第１の正常状態では、警告灯だけでなく、異常コードの出力も停止される。なお、上述したように異常コードの出力先がバックアップＲＡＭ２８の場合は、異常コードが消去されることになる。
【００６９】
以上詳述したように、本実施例では、「０」〜「１７９」の範囲のステータスデータＳｔを用いて、ダイアグ処理における判定状態を表し、ステータスデータＳｔをバックアップＲＡＭ２８に記憶する。そして、ステータスデータＳｔを加減させて判定状態を遷移させ、それに応じた出力制御を行う。したがって、ダイアグ処理に要する記憶領域はわずか１バイトの領域で足りる。バックアップＲＡＭ２８に記憶されたステータスデータＳｔを検証するために、ステータスデータＳｔをミラーデータとして重複させて記憶する場合であっても、計２バイトの記憶領域を用意すればよい。
【００７０】
従来は、判定状態をフラグ情報として記憶していたため、１つのダイアグ項目に対して、例えば計７バイトという記憶領域を用意する必要があり、約２００におよぶダイアグ項目のダイアグ処理を行う場合、１．４Ｋバイトという記憶領域が必要となっていた。また、バックアップＲＡＭ２８の内容をＥＥＰＲＯＭに記憶することが要求されているため、バックアップＲＡＭ２８だけでなくＥＥＰＲＯＭの領域を圧迫する結果を招いていた。
【００７１】
これに対して、本実施例のＥＣＵ２によれば、１つのダイアグ項目に対して２バイトの記憶領域で済むため、約２００におよぶダイアグ項目のダイアグ処理を行う場合、約４００バイトの記憶領域を用意すればよい。そして、ＲＡＭ内容をＥＥＰＲＯＭへ記憶することを考えても、ＥＥＰＲＯＭの領域を圧迫することがない。
【００７２】
また、従来のようにフラグ情報で判定状態を記憶しないため、処理設計においてビット操作を意識することがなくなる。すなわち、ビット操作命令のないあるいは少ないＲＩＳＣマイコンに合わせた情報操作を実現したため、処理プログラムの設計工数を削減することができる。また、演算速度の低下を招くようなこともない。
【００７３】
さらにまた、本実施例では、未検出状態を示すステータスデータＳｔを「０」として予め定義しておき、このステータスデータＳｔを用いて他の判定状態と同様に未検出状態を取り扱う。したがって、未検出の場合に特別な判断処理を行う必要がなくなり、この点においても、処理プログラムの設計工数を削減できる。
【００７４】
以上、本発明はこのような実施例に何等限定されるものではなく、本発明の主旨を逸脱しない範囲において種々なる形態で実施し得ることは言うまでもない。例えば上記実施例では、「記憶手段」をバックアップＲＡＭ２８として具現化していたが、イグニッションキーがオフされている間も記憶内容を保持可能なメモリ装置であればよく、例えば上述したＥＥＰＲＯＭを用いてもよい。
【図面の簡単な説明】
【図１】実施例のエンジン制御装置の構成を示すブロック図である。
【図２】イニシャル処理を示すフローチャートである。
【図３】遷移処理を示すフローチャートである。
【図４】判定状態の遷移を示す説明図である。
【図５】判定状態の遷移を具体的に示すタイミングチャートである。
【符号の説明】
２…エンジン制御装置      ４…回転角センサ
６…基準位置センサ        ８…水温センサ
１０…酸素濃度センサ      １２…入力回路
１４…マイコン            １６…アクチュエータ
１８…警告灯              ２０…表示器
２２…出力回路
【図１】
0004008197.tif 000002
【図２】
0004008197.tif 000003
【図３】
0004008197.tif 000004
【図４】
0004008197.tif 000005
【図５】
0004008197.tif 000006