(57)【要約】【課題】車両における故障診断を行い易い故障診断用情報収集装置の提供。【解決手段】車載ネットワークを構成する各ＥＣＵ（電子制御ユニット）は、検出対象の異常項目毎に異常検出処理を行う。そして、異常検出処理では、検出対象の異常についての異常判定条件が成立している継続時間が、異常判定時間に達すると（Ｓ３６５：ＹＥＳ）、その異常を示す異常情報（ＤＴＣ）と、その時点の時刻情報である本タイムスタンプを記憶するが（Ｓ３７０，Ｓ３８０）、異常判定条件が成立し始めた時に、その時点の時刻情報であるＰｒｅ１タイムスタンプを記憶し（Ｓ３３０）、また、異常判定条件が成立している継続時間が異常判定時間の半分に達した時に、その時点の時刻情報であるＰｒｅ２タイムスタンプを記憶する（Ｓ３６０）。このため、複数の異常の発端となった主要因の異常を、Ｐｒｅ１，Ｐｒｅ２タイムスタンプにより容易に特定可能となる。【選択図】図５
2008304367.tif 000002
【特許請求の範囲】
【請求項１】
検出対象の異常が発生しているか否かを判定する判定手段を有すると共に、その判定手段により異常が発生していると連続して判定している時間が、異常確定判定時間に達すると、その異常が発生していることを示す異常情報を記憶する異常検出手段を、車両における複数の異常項目毎に備え、
更に、前記異常確定判定時間は前記異常検出手段毎に異なっている故障診断用情報収集装置において、
前記各異常検出手段は、前記判定手段により異常が発生していないと判定している状態から、該判定手段により異常が発生していると判定した状態に転じた時である異常判定開始時の時刻情報を、異常未確定段階の時刻情報として記憶すること、
を特徴とする故障診断用情報収集装置。
【請求項２】
請求項１に記載の故障診断用情報収集装置において、
前記各異常検出手段は、前記異常情報を記憶した時の時刻情報を、異常確定時の時刻情報として記憶すること、
を特徴とする故障診断用情報収集装置。
【請求項３】
請求項１又は請求項２に記載の故障診断用情報収集装置において、
前記各異常検出手段は、前記異常判定開始時の時刻情報を記憶するための記憶領域をＮ個（Ｎは２以上の整数）備えており、その記憶領域に前記異常判定開始時の時刻情報を最新のものからＮ個記憶するようになっていること、
を特徴とする故障診断用情報収集装置。
【請求項４】
請求項１又は請求項２に記載の故障診断用情報収集装置において、
前記各異常検出手段は、前記異常判定開始時の時刻情報を記憶するための記憶領域を１個だけ備えており、その記憶領域に前記異常判定開始時の時刻情報を最新のものだけ記憶するようになっていること、
を特徴とする故障診断用情報収集装置。
【請求項５】
請求項１ないし請求項４の何れか１項に記載の故障診断用情報収集装置において、
前記各異常検出手段は、前記判定手段により異常が発生していると連続して判定している時間が、前記異常確定判定時間よりも短い中間時間に達すると、その中間時間到達時の時刻情報も、異常未確定段階の時刻情報として記憶すること、
を特徴とする故障診断用情報収集装置。
【請求項６】
請求項５に記載の故障診断用情報収集装置において、
前記中間時間は、前記異常確定判定時間の半分の時間であること、
を特徴とする故障診断用情報収集装置。
【請求項７】
請求項５又は請求項６に記載の故障診断用情報収集装置において、
前記各異常検出手段は、前記中間時間到達時の時刻情報を記憶するための記憶領域をＭ個（Ｍは２以上の整数）備えており、その記憶領域に前記中間時間到達時の時刻情報を最新のものからＭ個記憶するようになっていること、
を特徴とする故障診断用情報収集装置。
【請求項８】
請求項５又は請求項６に記載の故障診断用情報収集装置において、
前記各異常検出手段は、前記中間時間到達時の時刻情報を記憶するための記憶領域を１個だけ備えており、その記憶領域に前記中間時間到達時の時刻情報を最新のものだけ記憶するようになっていること、
を特徴とする故障診断用情報収集装置。
【請求項９】
請求項１ないし請求項８の何れか１項に記載の故障診断用情報収集装置において、
外部装置から異常情報要求を受けると、前記異常検出手段が記憶した異常情報と合わせて、その異常検出手段が記憶した時刻情報を前記外部装置へ出力する応答手段を備えていること、
を特徴とする故障診断用情報収集装置。
【請求項１０】
請求項９に記載の故障診断用情報収集装置において、
外部装置から出力要求を受けると、前記異常検出手段が記憶した異常未確定段階の時刻情報を前記外部装置へ定期的に出力する出力手段を備えていること、
を特徴とする故障診断用情報収集装置。
【請求項１１】
請求項９に記載の故障診断用情報収集装置において、
前記異常検出手段は、前記車両に搭載されて互いに通信する複数の電子制御ユニットの各々に１つ以上ずつ設けられ、
前記応答手段は、前記各電子制御ユニットに設けられると共に、前記異常情報要求を受けると、その電子制御ユニットに設けられている異常検出手段が記憶した異常情報と合わせて、その異常検出手段が記憶した時刻情報を前記外部装置へ出力すること、
を特徴とする故障診断用情報収集装置。
【請求項１２】
請求項１０に記載の故障診断用情報収集装置において、
前記異常検出手段は、前記車両に搭載されて互いに通信する複数の電子制御ユニットの各々に１つ以上ずつ設けられ、
前記応答手段は、前記各電子制御ユニットに設けられると共に、前記異常情報要求を受けると、その電子制御ユニットに設けられている異常検出手段が記憶した異常情報と合わせて、その異常検出手段が記憶した時刻情報を前記外部装置へ出力し、
前記出力手段は、前記各電子制御ユニットに設けられると共に、前記出力要求を受けると、その電子制御ユニットに設けられている異常検出手段が記憶した異常未確定段階の時刻情報を前記外部装置へ定期的に出力すること、
を特徴とする故障診断用情報収集装置。
【請求項１３】
検出対象の異常が発生しているか否かを判定する判定手段を備えると共に、その判定手段により異常が発生していると連続して判定している時間が、異常確定判定時間に達すると、その異常が発生していることを示す異常情報を記憶する故障診断用情報収集装置において、
前記判定手段により異常が発生していると判定し始めてから、該判定手段により異常が発生していると連続して判定している時間が前記異常確定判定時間に達する前の、特定時点の時刻情報をＮ個（Ｎは２以上の整数）記憶可能な記憶手段を備え、
前記特定時点が到来した時の時刻情報を、前記記憶手段に最新のものから最大でＮ個記憶すること、
を特徴とする故障診断用情報収集装置。
【請求項１４】
請求項１３に記載の故障診断用情報収集装置において、
外部装置から出力要求を受けると、前記記憶手段に記憶されている時刻情報を前記外部装置へ定期的に出力する出力手段を備えていること、
を特徴とする故障診断用情報収集装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両（自動車）における故障診断に関するものである。
【背景技術】
【０００２】
従来より、車両に搭載される電子制御ユニット（以下、ＥＣＵともいう）としては、常時自己故障診断を実行し、故障（異常）を検出した時に、その故障内容を示す異常情報（いわゆるＤＴＣ：Ｄｉａｇｎｏｓｔｉｃ  Ｔｒｏｕｂｌｅ  Ｃｏｄｅ )と、その時の年月日時刻（時刻情報）とを記憶手段に保存するものがある（例えば、特許文献１参照）。
【０００３】
また、この種のＥＣＵにおける故障診断処理では、異常が発生しているか否かを判定する判定処理を定期的に行うと共に、その判定処理で異常が発生していると連続して判定している時間が、異常確定判定時間に達したならば、その時点ではじめて異常が発生していると確定判定し（つまり、その時点で異常を検出したこととなり）、異常情報を記憶するようになっている。これは、誤検出を防止するためである。
【特許文献１】特開平７−１８１１１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、車両においては、制御内容の多様化、複雑化に伴って、複数のＥＣＵが通信線を介して接続される車載ネットワークの制御形態がとられるようになってきている。
そして、こうした車載ネットワークでは、複数のＥＣＵが制御用情報をやり取りしながら自己の制御対象を制御するため、ある部位の異常をきっかけに、複数のＥＣＵで同時期に異なる内容の異常が検出される可能性がある。
【０００５】
例えば、エンジンを協同して制御する２つのＥＣＵ（ａ），（ｂ）のうち、ＥＣＵ（ａ）にパルス状のクランクセンサ信号が入力され、そのＥＣＵ（ａ）がＥＣＵ（ｂ）へ、クランクセンサ信号に基づき検出したエンジンの回転情報を送信し、ＥＣＵ（ｂ）が、その回転情報を用いて処理を実行する、といった制御形態を例に挙げる。この場合、クランクセンサからＥＣＵ（ａ）への信号線に接触不良が生じたとすると、ＥＣＵ（ａ）では、クランクセンサ信号にパルス抜けが生じることから、クランクセンサの異常を検出することとなる。また、クランクセンサ信号のパルス抜けにより、ＥＣＵ（ａ）からＥＣＵ（ｂ）への回転情報には正常時よりも大きな変動が生じることとなるため、ＥＣＵ（ｂ）は、点火不良でエンジン回転数が変動していると判断して、失火異常を検出することとなる。
【０００６】
一方、同様に、１つのＥＣＵにおいても、ある部位の異常がきっかけとなって、同時期に異なる内容の異常が検出される可能性がある。
例えば、内蔵された電源回路からセンサに電源を供給しつつ、そのセンサからの信号を用いて制御処理を実行するＥＣＵの場合を例に挙げる。この場合、センサの電源回路に出力異常が生じたとすると、その電源回路の出力を監視する処理によりセンサ電源異常が検出され、また、センサ信号を監視する処理によりセンサ異常も検出される。
【０００７】
ここで、上記従来技術によれば、異常が発生したと確定判定された時に、異常情報と共に時刻情報が記憶されるため、複数のＥＣＵ又は１つのＥＣＵで複数項目の異常が検出された場合には、その複数のＥＣＵ又は１つのＥＣＵから異常情報と時刻情報を読み出すことにより、各異常についての異常情報が記憶された順序（即ち、異常と確定判定された順序）は知ることができる。
【０００８】
しかしながら、異常確定判定時間は、各異常の検出処理毎にそれぞれ異なるため、ある部位の異常がきっかけとなって複数項目の異常が検出された場合に、ある項目の異常の方が本当は早く発生しているのに、他の項目の異常の方が早く異常と確定判定される、といった異常検出順序の逆転が生じる場合がある。
【０００９】
そして、従来技術では、異常と確定判定した時の時刻情報を記憶するだけなので、こうした逆転現象が起きていることを知ることはできない。つまり、複数の異常が検出されることとなった発端の異常を容易に見つけることができないという問題がある。
【００１０】
例えば、前述した２つのＥＣＵ（ａ），（ｂ）の例において、ＥＣＵ（ａ）におけるクランクセンサ異常の判定時間が、ＥＣＵ（ｂ）における失火異常の判定時間よりも長い時間に設定されていたとすると、本当はクランクセンサの異常が発端となっているのに、そのクランクセンサの異常情報がＥＣＵ（ａ）で記憶されるよりも先に、ＥＣＵ（ｂ）で失火の異常情報が記憶される可能性がある。すると、それらの異常情報と共に記憶された時刻情報からでは、クランクセンサの異常よりも失火異常の方が先に発生している、という風にしか解釈できず、本当の故障原因を発見し損ねることとなる。
【００１１】
そこで、本発明は、車両における故障診断を行い易い故障診断用情報収集装置の提供を目的としている。
【課題を解決するための手段】
【００１２】
上記目的を達成するためになされた請求項１の故障診断用情報収集装置は、車両における複数の異常項目毎に、異常検出手段を備えている。そして、各異常検出手段は、検出対象の異常が発生しているか否かを判定する判定手段を有すると共に、その判定手段により異常が発生していると連続して判定している時間が、異常確定判定時間に達すると、その異常が発生していることを示す異常情報を記憶する。更に、前記異常確定判定時間は、異常検出手段毎に異なっている。
【００１３】
そして特に、この故障診断用情報収集装置において、各異常検出手段は、判定手段により異常が発生していないと判定している状態から、該判定手段により異常が発生していると判定した状態に転じた時である異常判定開始時（つまり、異常と判定し始めた時）の時刻情報を、異常未確定段階の時刻情報として記憶する。
【００１４】
この故障診断用情報収集装置によれば、各異常検出手段が記憶した情報を読み出して、その情報の中に、異常情報があれば、異常と確定判定された異常項目を知ることができ、しかも、その異常情報と共に記憶されていた異常判定開始時の時刻情報から、その異常が発生していると判定され始めた時刻（つまり、異常の発生開始時刻）を知ることができる。よって、複数の異常が検出された場合に、それら異常の発端となった異常（即ち、主要因）を容易に特定することができるようになる。
【００１５】
そして、このため、車両のディーラーや整備工場等で修理を行う際に、故障箇所の誤判断による正常部品の交換（即ち、誤交換）を防止して、効率的な故障箇所修理が可能となり、延いては、車両の一発完治を実現することが可能となる。
【００１６】
次に、請求項２の故障診断用情報収集装置では、請求項１の故障診断用情報収集装置において、各異常検出手段は、異常情報を記憶した時の時刻情報を、異常確定時の時刻情報として記憶する。
【００１７】
この故障診断用情報収集装置によれば、異常発生順序を判断するための情報が増えるため有利である。具体的には、各異常検出手段が記憶した情報を読み出してみて、複数の異常情報が記憶されていた場合には、その各異常情報に対応する異常判定開始時の時刻情報と異常確定時の時刻情報とにより、その異常情報の示す異常が、「いつから異常と判定されはじめて、いつ異常と確定判定されたか」という時間的推移を知ることができる。そして、各異常について、その時間的推移を比較することにより、それら異常の発端となった主要因の異常を、より的確に特定し易くなる。
【００１８】
次に、請求項３の故障診断用情報収集装置では、請求項１，２の故障診断用情報収集装置において、各異常検出手段は、異常判定開始時の時刻情報を記憶するための記憶領域をＮ個（Ｎは２以上の整数）備えており、その記憶領域に異常判定開始時の時刻情報を最新のものからＮ個記憶するようになっている。
【００１９】
この構成によれば、何れかの異常検出手段が検出対象とする異常について、判定手段により異常と判定されたが、異常確定判定時間が経過する前に異常と判定されなくなることが繰り返される、異常判定／正常判定のハンチング現象が生じた場合には、その異常検出手段の記憶領域に、異常判定開始時の時刻情報が複数個記憶されることとなる。このため、何れかの異常検出手段が記憶した情報を読み出した際に、異常判定開始時の時刻情報が複数個記憶されていたならば、異常判定／正常判定のハンチング現象が起こっていたこと及びその頻度を知ることができ、異常確定判定へ至る予兆を確認することができる。
【００２０】
一方、請求項４の故障診断用情報収集装置では、請求項１，２の故障診断用情報収集装置において、各異常検出手段は、異常判定開始時の時刻情報を記憶するための記憶領域を１個だけ備えており、その記憶領域に異常判定開始時の時刻情報を最新のものだけ記憶するようになっている。この構成によれば、請求項３の構成のような効果は得られないものの、異常判定開始時の時刻情報を記憶するための記憶領域（リソース）を節約することができるという点で有利である。
【００２１】
次に、請求項５の故障診断用情報収集装置では、請求項１〜４の故障診断用情報収集装置において、各異常検出手段は、判定手段により異常が発生していると連続して判定している時間が、異常確定判定時間よりも短い中間時間に達すると、その中間時間到達時の時刻情報も、異常未確定段階の時刻情報として記憶する。
【００２２】
この構成によっても、異常発生順序を判断するための情報が増えるため有利である。具体的には、各異常検出手段が記憶した情報を読み出してみて、複数の異常情報が記憶されていた場合には、その各異常情報に対応する異常判定開始時の時刻情報と中間時間到達時の時刻情報とにより、その異常情報の示す異常が、「いつから異常と判定されはじめて、いつ中間時間に達したか」という時間的推移を知ることができる。そして、各異常について、その時間的推移を比較することにより、それら異常の発端となった主要因の異常を、より的確に特定し易くなる。
【００２３】
また特に、請求項２に従属する請求項５の構成によれば、異常情報の示す異常が、「いつから異常と判定されはじめて、いつ中間時間に達し、いつ異常と確定判定されたか」という３時点の時間的推移を簡単に知ることができ、発端となった主要因の異常を、より一層的確に特定し易くなる。
【００２４】
尚、中間時間をどのような値に設定するかは任意であるが、異常確定判定時間に対する一定割合の時間（異常確定判定時間に、０より大きく１未満の定数を乗じた時間）に設定することが好ましい。このように設定すれば、たとえ異常確定時の時刻情報が記憶されない構成であっても、何れかの異常情報が記憶されていた場合には、異常判定開始時の時刻情報と中間時間到達時の時刻情報とから、その異常情報が記憶された時刻を算出することができるからである。また、複数の異常について、上記３時点の時間的推移を比較することを考えると、中間時間は、請求項６に記載の如く、異常確定判定時間の半分の時間であることが好ましい。直感的に分かり易いからである。
【００２５】
次に、請求項７の故障診断用情報収集装置では、請求項５，６の故障診断用情報収集装置において、各異常検出手段は、中間時間到達時の時刻情報を記憶するための記憶領域をＭ個（Ｍは２以上の整数）備えており、その記憶領域に中間時間到達時の時刻情報を最新のものからＭ個記憶するようになっている。
【００２６】
この構成によれば、中間時間到達時の時刻情報について、前述した請求項３の構成による効果と同様の効果を得ることができる。
つまり、この構成によれば、何れかの異常検出手段が検出対象とする異常について、判定手段により異常が発生していると中間時間以上継続して判定されたが、異常確定判定時間が経過する前に異常と判定されなくなることが繰り返される、ハンチング現象が生じた場合には、その異常検出手段の記憶領域に、中間時間到達時の時刻情報が複数個記憶されることとなる。このため、何れかの異常検出手段が記憶した情報を読み出した際に、中間時間到達時の時刻情報が複数個記憶されていたならば、そのようなハンチング現象が起こっていたこと及びその頻度を知ることができ、異常と確定判定される可能性の高い予兆状態を確認することができる。
【００２７】
一方、請求項８の故障診断用情報収集装置では、請求項５，６の故障診断用情報収集装置において、各異常検出手段は、中間時間到達時の時刻情報を記憶するための記憶領域を１個だけ備えており、その記憶領域に中間時間到達時の時刻情報を最新のものだけ記憶するようになっている。この構成によれば、請求項７の構成のような効果は得られないものの、中間時間到達時の時刻情報を記憶するための記憶領域（リソース）を節約することができるという点で有利である。
【００２８】
ところで、異常検出手段が記憶した情報を読み出す手法としては、次のようなものが考えられる。
まず、異常検出手段は、自身の構成要素として、情報を記憶するための記憶手段を有することとなるが、その記憶手段としての記録媒体を、当該故障診断用情報収集装置が設けられた電子制御ユニットから取り出し、その記録媒体から情報を読み出す、という手法が考えられる。尚、記憶手段としての記録媒体は、異常検出手段毎に設けられても良いし、複数の異常検出手段に共通で設けられるものでも良い。
【００２９】
また、外部装置から当該故障診断用情報収集装置へ、何れかの情報を要求する要求信号を出力すると、当該故障診断用情報収集装置に備えられた応答手段が、各異常検出手段が記憶した情報のうち、その要求信号に対応する情報を外部装置へ出力する、という形態をとることもできる。
【００３０】
但し、前者の手法では、記録媒体を物理的に取り出す作業が必要となってしまう。また、後者の形態では、読み出し対象の情報を１つ１つ指定しなければならない。
そこで、外部装置から当該故障診断用情報収集装置へ、情報の要求信号を出力すると、当該故障診断用情報収集装置に備えられた応答手段が、各異常検出手段が記憶した全ての情報を外部装置へ出力する、という形態が考えられる。
【００３１】
しかし、この形態では、異常と確定判定されていない異常項目についても、異常未確定段階の時刻情報（異常判定開始時の時間情報、或いは更に中間時間到達時の時間情報）が出力されることとなり、無駄が多い。
【００３２】
そこで、請求項９の故障診断用情報収集装置では、請求項１〜８の故障診断用情報収集装置において、次のような応答手段を設けている。
即ち、応答手段は、外部装置から異常情報要求を受けると、異常検出手段が記憶した異常情報と合わせて、その異常検出手段が記憶した時刻情報を外部装置へ出力する。尚、応答手段が出力する時刻情報は、少なくとも異常判定開始時の時刻情報であり、請求項２の構成では、更に異常確定時の時刻情報であり、請求項５の構成では、更に中間時間到達時の時刻情報である。
【００３３】
そして、このような請求項９の故障診断用情報収集装置によれば、異常と確定判定された異常項目についてだけ、その項目の異常情報と共に時間情報（異常判定開始時の時間情報、異常確定時の時刻情報、中間時間到達時の時間情報）が出力されることとなる。よって、複数の異常が検出された場合（複数の異常情報が記憶された場合）には、そのうちの主要因である発端異常を特定するのに必要な情報だけが出力されることとなり、外部装置への情報転送量を必要最小限に抑えることができる。
【００３４】
次に、請求項１０の故障診断用情報収集装置では、請求項９の故障診断用情報収集装置において、更に、次のような出力手段が設けられている。
即ち、出力手段は、外部装置から出力要求を受けると、異常検出手段が記憶した異常未確定段階の時刻情報を外部装置へ定期的に出力する。尚、出力手段が出力する異常未確定段階の時刻情報は、少なくとも異常判定開始時の時刻情報であり、請求項５の構成では、更に中間時間到達時の時刻情報である。
【００３５】
このような請求項１０の故障診断用情報収集装置によれば、異常未確定段階の時刻情報（異常判定開始時の時刻情報、或いは更に、中間時間到達時の時刻情報）を外部装置側へと定期的に取り出して常時モニタすることができるため、異常と確定判定されていない異常項目についても、その後に異常と確定判定されそうな予兆を確認することができる。具体的には、異常判定開始時の時刻情報や中間時間到達時の時刻情報が出力されたならば、異常の兆候があると認識することができ、また、それら時刻の間隔などから、異常判定／正常判定のハンチング現象が起こっていることや、その頻度を知ることができるため、車両の状態確認を行うのに有利である。
【００３６】
一方、請求項９の故障診断用情報収集装置を１つの電子制御ユニットに適用するのであれば、その１つの電子制御ユニット内に、当該故障診断用情報収集装置を設ければ良い。
また、請求項９の故障診断用情報収集装置を、車載ネットワークを成す複数の電子制御ユニットに適用するのであれば、請求項１１に記載の如く構成すれば良い。
【００３７】
即ち、請求項１１の故障診断用情報収集装置では、請求項９の故障診断用情報収集装置において、異常検出手段は、車両に搭載されて互いに通信する複数の電子制御ユニットの各々に１つ以上ずつ設けられている。そして、応答手段は、各電子制御ユニットに設けられると共に、前記異常情報要求を受けると、その電子制御ユニットに設けられている異常検出手段が記憶した異常情報と合わせて、その異常検出手段が記憶した時刻情報を外部装置へ出力する。
【００３８】
同様に、請求項１０の故障診断用情報収集装置を１つの電子制御ユニットに適用するのであれば、その１つの電子制御ユニット内に、当該故障診断用情報収集装置を設ければ良い。
【００３９】
また、請求項１０の故障診断用情報収集装置を、車載ネットワークを成す複数の電子制御ユニットに適用するのであれば、請求項１２に記載の如く構成すれば良い。
即ち、請求項１２の故障診断用情報収集装置では、請求項１０の故障診断用情報収集装置において、異常検出手段は、車両に搭載されて互いに通信する複数の電子制御ユニットの各々に１つ以上ずつ設けられている。そして、応答手段は、各電子制御ユニットに設けられると共に、前記異常情報要求を受けると、その電子制御ユニットに設けられている異常検出手段が記憶した異常情報と合わせて、その異常検出手段が記憶した時刻情報を外部装置へ出力する。そして更に、出力手段は、各電子制御ユニットに設けられると共に、前記出力要求を受けると、その電子制御ユニットに設けられている異常検出手段が記憶した異常未確定段階の時刻情報を外部装置へ定期的に出力する。
【００４０】
ところで、前述したように、各異常検出手段は、自身の構成要素として、情報を記憶するための記憶手段を有することとなるが、その記憶手段としては、例えば、電源が常時供給されるＲＡＭであるスタンバイＲＡＭ（バックアップＲＡＭとも呼ばれる）が考えられる。そして、スタンバイＲＡＭを記憶手段とすれば、例えば、車両のイグニッションスイッチがオフされて、当該故障診断用情報収集装置が設けられた電子制御ユニットへの動作電源が遮断されても、異常未確定段階の時刻情報を継続して記憶することができる。このため、異常と判定されはじめてから異常と確定判定されるまでの間に、上記動作電源が遮断された場合でも、異常の発生開始時刻や異常確定判定へ至る前の予兆を確認することが可能となる。
【００４１】
また、スタンバイＲＡＭのリソースを節約するのであれば、異常検出手段の記憶手段（特に、異常未確定段階の時刻情報を記憶するための記憶手段）としては、通常のＲＡＭを用いることもできる。
【００４２】
次に、請求項１３の故障診断用情報収集装置は、検出対象の異常が発生しているか否かを判定する判定手段を備えると共に、その判定手段により異常が発生していると連続して判定している時間が、異常確定判定時間に達すると、その異常が発生していることを示す異常情報を記憶する。
【００４３】
そして特に、この故障診断用情報収集装置は、判定手段により異常が発生していると判定し始めてから、該判定手段により異常が発生していると連続して判定している時間が異常確定判定時間に達する前の、特定時点の時刻情報をＮ個（Ｎは２以上の整数）記憶可能な記憶手段を備えており、その特定時点が到来した時の時刻情報を、前記記憶手段に最新のものから最大でＮ個記憶するようになっている。
【００４４】
このような故障診断用情報収集装置によれば、判定手段により異常と判定されて前記特定時点にまで至ったが、異常確定判定時間が経過する前に異常と判定されなくなることが繰り返される、ハンチング現象が生じた場合には、記憶手段に、特定時点の時刻情報が複数個記憶されることとなる。このため、記憶手段から情報を読み出した際に、特定時点の時刻情報が複数個記憶されていたならば、それら時刻の間隔などから、異常判定／正常判定のハンチング現象が起こっていたこと及びその頻度を知ることができ、異常確定判定へ至る予兆を確認することができる。
【００４５】
尚、特定時点としては、判定手段により異常が発生していると判定し始めた時（即ち、判定手段により異常が発生していないと判定している状態から、異常が発生していると判定した状態に転じた時）が好ましい。また、判定手段により異常が発生していると判定し始めてから、異常確定判定時間の所定割合の時間（例えば半分の時間）が経過した時でも良い。また、判定手段により異常が発生していると判定し始めた時と、異常確定判定時間の所定割合の時間が経過した時との両方でも良い。つまり、特定時点は、異なる複数の時点であっても良く、その場合には、その各時点について、時刻情報をＮ個記憶可能な記憶手段を設ければ良い。
【００４６】
次に、請求項１４の故障診断用情報収集装置は、請求項１３の故障診断用情報収集装置において、出力手段を備えている。そして、その出力手段は、外部装置から出力要求を受けると、記憶手段に記憶されている時刻情報を外部装置へ定期的に出力する。
【００４７】
この構成によれば、記憶手段に記憶された特定時点の時刻情報を外部装置側へと定期的に取り出して常時モニタすることができるため、その後に異常と確定判定されそうな予兆を簡単に確認することができる。
【発明を実施するための最良の形態】
【００４８】
以下に、本発明が適用された実施形態について説明する。
［第１実施形態］
まず図１は、本発明の故障診断用情報収集装置が適用された第１実施形態の車載ネットワークを表す構成図である。
【００４９】
図１に示すように、本実施形態の車載ネットワークは、車両内の通信線１１を介して接続された複数（この例では４つ）のＥＣＵ１〜４から構成されている。
そして、図１ではＥＣＵ２についてのみ図示しているが、各ＥＣＵ１〜４には、ＣＰＵ１５、ＲＯＭ１６、ＳＲＡＭ１７及びＮＲＡＭ１８などからなる周知のマイコンが備えられている。尚、ＲＯＭ１６には、ＣＰＵ１５によって実行されるプログラムが格納されている。また、ＳＲＡＭ１７は、それが搭載されたＥＣＵへの動作電源が遮断されても車載バッテリの電力を元にした電源が常時供給されるスタンバイＲＡＭであり、ＮＲＡＭ１８は、ＥＣＵへの動作電源が遮断されると電源供給が停止する通常のＲＡＭ（ノーマルＲＡＭ）である。
【００５０】
そして、例えば、ＥＣＵ１は、イグニッションスイッチのオン／オフなどに応じて他のＥＣＵ２〜４への動作電源の供給を制御するＥＣＵであり、ＥＣＵ２とＥＣＵ３は、前述したＥＣＵ（ａ），（ｂ）と同様に、車両のエンジンを協同して制御するＥＣＵであり、ＥＣＵ４は、トランスミッションを制御するＥＣＵである。また、通信線１１には、車両外の装置であって、車両の故障を診断するための診断装置１３が接続可能になっている。
【００５１】
このような車載ネットワークにおいては、ＥＣＵ１から他の各ＥＣＵ２〜４へ、時計であるグローバルタイマの値（グローバルタイマ値）が定期的に送信されて、そのグローバルタイマ値が各ＥＣＵ２〜４にて更新記憶されるようになっている。尚、グローバルタイマ値は、時刻を示す時刻情報であり、本実施形態では、ＥＣＵ１が動作を開始してからの経過時間を１ｍｓ単位で示す。
【００５２】
具体的に説明すると、ＥＣＵ１では、図２のグローバルタイマ値送信処理が一定時間毎に実行される。そして、グローバルタイマ値送信処理が開始されると、まずＳ１１０にて、ＥＣＵ１に内蔵されたグローバルタイマの現在の値が、他のＥＣＵ２〜４へ今回送信すべきグローバルタイマ値として生成され、次のＳ１２０にて、その生成されたグローバルタイマ値が、通信線１１を介してＥＣＵ２〜４へ送信される。
【００５３】
一方、ＥＣＵ２〜４の各々では、通信線１１から情報を受信した受信タイミング毎に、図３のグローバルタイマ値受信処理が実行される。そして、グローバルタイマ値受信処理が開始されると、まずＳ１５０にて、ＥＣＵ１からのグローバルタイマ値を受信したか否かを判定する。そして、グローバルタイマ値を受信していなければ、そのまま当該グローバルタイマ値受信処理を終了するが、グローバルタイマ値を受信したならば、次のＳ１６０にて、その受信したグローバルタイマ値を例えばＮＲＡＭ１８に更新記憶し、その後、当該グローバルタイマ値受信処理を終了する。そして、このような処理により、ＥＣＵ２〜４がＥＣＵ１からの同じグローバルタイマ値を共有することとなる。
【００５４】
次に、ＥＣＵ２〜４の各々で実行される他の処理について説明する。尚、前述した図２，図３の処理や、後述する各処理は、実際にはＥＣＵに備えられたマイコンのＣＰＵ１５によって実行されるものである。
【００５５】
まず、各ＥＣＵ２〜４のＮＲＡＭ１８には、そのＥＣＵにて検出対象としている１つ或いは複数の異常の項目毎（換言すれば、異常の内容毎）について、本タイムスタンプ、第１仮タイムスタンプ（以下、Ｐｒｅ１タイムスタンプという）、第２仮タイムスタンプ（以下、Ｐｒｅ２タイムスタンプという）、及びＰｒｅ１セット履歴フラグを、１つずつ記憶するための記憶領域が設けられている。尚、本タイムスタンプは、異常が発生していると確定判定した時の時刻情報であり、Ｐｒｅ１タイムスタンプは、その異常が発生していると判定し始めた時の時刻情報であり、Ｐｒｅ２タイムスタンプは、その異常が発生していると判定し始めてから、異常が発生していると確定判定するまでの真ん中時点の時刻情報であり、Ｐｒｅ１セット履歴フラグは、Ｐｒｅ１タイムスタンプに値がセットされていることを示すフラグである。
【００５６】
また、各ＥＣＵ２〜４は、車両のイグニッションスイッチがオンされると、ＥＣＵ１の制御動作により車載バッテリからの電圧（バッテリ電圧）が動作電源として供給されて動作を開始する。
【００５７】
そして、各ＥＣＵ２〜４では、動作の開始時に、図４のタイムスタンプ初期化処理が実行される。このタイムスタンプ初期化処理は、そのＥＣＵにて検出対象としている異常の項目毎に設けられている処理であり、その項目の異常に対応する本タイムスタンプ、Ｐｒｅ１タイムスタンプ、Ｐｒｅ２タイムスタンプ、及びＰｒｅ１セット履歴フラグを、初期化するための処理である。
【００５８】
即ち、このタイムスタンプ初期化処理では、まずＳ２１０にて、Ｐｒｅ１タイムスタンプとＰｒｅ２タイムスタンプをクリアし（０にし）、次のＳ２２０にて、本タイムスタンプをクリアする。そして、次のＳ２３０にて、Ｐｒｅ１セット履歴フラグをオフし、その後、当該タイムスタンプ初期化処理を終了する。尚、Ｐｒｅ１セット履歴フラグは、後述する図５の処理により、Ｐｒｅ１タイムスタンプに値がセットされた時にオンされる。
【００５９】
次に、各ＥＣＵ２〜４では、検出対象としている異常の項目毎に、図５の異常検出処理が一定時間毎に実行される。
そして、この異常検出処理では、まずＳ３０５にて、検出対象の異常が未確定であるか否かを判定し、異常未確定であれば（つまり、その異常が発生していると確定判定していなければ）、Ｓ３１０に進み、検出対象の異常について、その異常が発生していると判定すべき異常判定条件が成立しているか否かを判定する。例えば、検出対象の異常が、センサ異常であるとすると、異常判定条件としては、そのセンサの出力値が異常領域内である、といった条件である（図６参照）。
【００６０】
上記Ｓ３１０で異常判定条件が成立していると判定した場合（即ち、検出対象の異常が発生していると判定した場合）には、Ｓ３１５に進んで、Ｐｒｅ１フラグがオフであるか否かを判定する。尚、このＰｒｅ１フラグがオフということは、今回が、上記Ｓ３１０で異常が発生していると判定し始めた時（即ち、異常判定開始時）である、ということを意味している。そして、Ｐｒｅ１フラグがオフであると判定した場合には、Ｓ３２０に進んで、Ｐｒｅ１フラグをオンし、次のＳ３２５にて、検出対象の異常に対応するＰｒｅ１セット履歴フラグをオンする。そして更に、次のＳ３３０にて、検出対象の異常に対応するＰｒｅ１タイムスタンプに、ＥＣＵ１から取得しているグローバルタイマ値をセットし、その後、Ｓ３３５へ進む。
【００６１】
また、上記Ｓ３１５にて、Ｐｒｅ１フラグがオフでない（オンである）と判定した場合には、そのままＳ３３５に移行する。このため、前回もＳ３１０で異常が発生していると判定している場合には、Ｓ３２０〜Ｓ３３０がスキップされることとなる。
【００６２】
Ｓ３３５では、Ｓ３１０で異常が発生していると連続して判定している時間を計測するための異常カウンタをカウントアップさせる。そして、次のＳ３４０にて、正常カウンタをクリアする。尚、正常カウンタは、後述するＳ３９０で正常と連続して判定している時間を計測するためのカウンタである。また、この正常カウンタと異常カウンタは、ＥＣＵの動作開始時にクリアされている。
【００６３】
次に、Ｓ３４５にて、異常カウンタの値に基づき、異常判定開始時から異常確定判定時間（以下、異常判定時間という）の半分の時間が経過したか否かを判定し、その時間が経過していないと判定したならば、Ｓ３６５に移行する。
【００６４】
Ｓ３６５では、異常カウンタの値に基づき、異常判定開始時から異常判定時間が経過したか否かを判定し、異常判定時間が経過していないと判定したならば、そのまま当該異常検出処理を終了する。
【００６５】
一方、上記Ｓ３４５にて、異常判定時間の半分の時間が経過したと判定した場合には、Ｓ３５０に進み、Ｐｒｅ２フラグがオフであるか否かを判定する。尚、このＰｒｅ２フラグがオフということは、今回が、異常判定開始時から異常判定時間の半分の時間が経過した時である、ということを意味している。そして、Ｐｒｅ２フラグがオフであると判定した場合には、Ｓ３５５に進んで、Ｐｒｅ２フラグをオンし、次のＳ３６０にて、検出対象の異常に対応するＰｒｅ２タイムスタンプに、ＥＣＵ１から取得しているグローバルタイマ値をセットする。そして、その後、前述のＳ３６５へ進む。
【００６６】
また、上記Ｓ３５０にて、Ｐｒｅ２フラグがオフでない（オンである）と判定した場合には、そのままＳ３６５に移行する。このため、前回もＳ３４５で異常判定時間の半分の時間が経過したと判定している場合には、Ｓ３５５及びＳ３６０がスキップされることとなる。
【００６７】
一方、上記Ｓ３６５にて、異常判定時間が経過したと判定した場合には、異常が発生していると確定判定することとなる。そこで、Ｓ３７０に進み、検出対象の異常に対応する本タイムスタンプに、ＥＣＵ１から取得しているグローバルタイマ値をセットし、次のＳ３７５にて、異常時処理を行う。そして、次のＳ３８０にて、検出対象の異常が発生していることを示す異常情報としてのＤＴＣを記憶した後、当該異常検出処理を終了する。
【００６８】
尚、異常時処理では、例えば、車両の搭乗者に対して異常の発生を知らせるための警告灯を点灯させる。また、ＤＴＣは、ＳＲＡＭ１７又はＥＣＵに設けられたフラッシュメモリやＥＥＰＲＯＭ等の書換可能ＲＯＭ（図示省略）に記憶される。
【００６９】
上記Ｓ３７０〜Ｓ３８０の処理が行われると、次回からは、上記Ｓ３０５にて、検出対象の異常が未確定ではない（異常が確定した）と判定される。
そして、そのＳ３０５にて、異常が未確定ではないと判定した場合、或いは、上記Ｓ３１０にて、異常判定条件が成立していないと判定した場合には、Ｓ３９０に移行する。
【００７０】
Ｓ３９０では、検出対象の異常について、その異常が無く正常であると判定すべき正常判定条件が成立しているか否かを判定する。例えば、検出対象の異常が、センサ正常であるとすると、正常判定条件としては、そのセンサの出力値が正常領域内である、といった条件である（図６参照）。
【００７１】
そして、上記Ｓ３９０で正常判定条件が成立していると判定した場合には、Ｓ３９５に進んで、正常カウンタをカウントアップさせ、次のＳ４００にて、異常カウンタをクリアする。次にＳ４０５にて、Ｓ３９０で正常判定条件が成立していると判定し始めた時（即ち、正常判定開始時）から正常判定時間が経過したか否かを、正常カウンタの値に基づき判定し、正常判定時間が経過していないと判定したならば、そのままＳ４２５に移行する。また、Ｓ４０５で正常判定時間が経過したと判定した場合には、Ｓ４１０に進み、正常時処理を行った後、Ｓ４２５に進む。尚、正常時処理では、例えば、前述の警告灯を消灯させる。
【００７２】
そして、Ｓ４２５では、Ｐｒｅ１フラグとＰｒｅ２フラグをクリアし、その後、当該異常検出処理を終了する。
また、上記Ｓ３９０にて、正常判定条件が成立していないと判定した場合には、Ｓ４１５に移行して、正常カウンタをクリアし、次のＳ４２０にて、異常カウンタをクリアする。そして、その後、上記Ｓ４２５に進む。
【００７３】
つまり、異常検出処理では、異常判定条件が成立していないと判定していた状態から異常判定条件が成立していると判定する状態に転じた時（異常判定開始時）のグローバルタイマ値を、Ｐｒｅ１タイムスタンプとして記憶し（Ｓ３３０）、その異常判定開始時から継続して異常判定条件が成立していると判定している時間が、異常判定時間の半分の時間に達した時（異常判定時間の半分経過時）のグローバルタイマ値を、Ｐｒｅ２タイムスタンプとして記憶し（Ｓ３６０）、異常判定開始時から継続して異常判定条件が成立していると判定している時間が、異常判定時間に達して、ＤＴＣを記憶した時（異常確定時）のグローバルタイマ値を、本タイムスタンプとして記憶するようにしている（Ｓ３７０）。
【００７４】
このため、検出対象がセンサ異常である異常検出処理を例に挙げると、例えば図６に示すように、「グローバルタイマ値＝４００」の時に、センサ出力が異常領域に入って異常判定条件が成立し始めたとすると、その時の「４００」がＰｒｅ１タイムスタンプとして記憶される。
【００７５】
その後、センサ出力が正常領域内に戻って異常判定条件が成立しなくなり、更にその後、「グローバルタイマ値＝１２００」の時に再び異常判定条件が成立し始めたとすると、その時の「１２００」がＰｒｅ１タイムスタンプとして更新記憶される。つまり、Ｐｒｅ１タイムスタンプの値が「４００」から「１２００」に上書きされる。
【００７６】
そして、異常判定時間が、グローバルタイマ値が１０００だけ増加する時間（＝１０００ｍｓ）であるとすると、その後、異常判定条件が成立し続けて「グローバルタイマ値＝１７００」の時になると、その時の「１７００」がＰｒｅ２タイムスタンプとして記憶される。
【００７７】
そして更に、その後、異常判定条件が成立し続けて「グローバルタイマ値＝２２００」の時になると、センサ異常が確定判定されて、その時の「２２００」が本タイムスタンプとして記憶されると共に、センサ異常を示すＤＴＣが記憶されることとなる。
【００７８】
このため、各タイムスタンプの記憶先から、それら各タイムスタンプを読み出せば、Ｐｒｅ１タイムスタンプの値により、異常状態が発生した時刻を知ることができ、Ｐｒｅ２タイムスタンプの値により、異常判定時間の半分が経過した時刻を知ることができ、本タイムスタンプの値により、異常判定時間が経過してＤＴＣが記憶された異常確定時刻を知ることができる。
【００７９】
尚、図６において、もし「グローバルタイマ値＝１７００」の時から「グローバルタイマ値＝２２００」の時までの間に異常判定条件が成立しなくなり、その後、再び異常判定条件が成立し続けて異常判定時間の半分が経過したならば、その時のグローバルタイマ値がＰｒｅ２タイムスタンプとして更新記憶されることとなる。つまり、Ｐｒｅ２タイムスタンプの値も、Ｐｒｅ１タイムスタンプと同様に、１つの最新値に上書きされる。また、異常判定時間と正常判定時間は、異常検出処理毎（換言すれば、検出対象の異常毎）に異なっている。
【００８０】
次に、ＥＣＵ２〜４の各々では、通信線１１に接続された診断装置１３から送信されるＤＴＣ出力要求（異常情報要求に相当）を受信すると、図７のＤＴＣ出力要求応答処理が実行される。
【００８１】
尚、診断装置１３は、各ＥＣＵ２〜４からＤＴＣを読み出すための操作が行われると、ＥＣＵ２〜４へＤＴＣ出力要求を送信するようになっている。また、その操作の際に、本タイムスタンプ、Ｐｒｅ１タイムスタンプ、及びＰｒｅ２タイムスタンプの各々について、ＤＴＣと共に読み出すか否かを指定することができ、何れかのタイムスタンプの読み出しが指定された場合には、そのタイムスタンプの出力要求を含んだＤＴＣ出力要求を、各ＥＣＵ２〜４へ送信するようになっている。
【００８２】
そして、各ＥＣＵ２〜４におけるＤＴＣ出力要求応答処理では、まずＳ５１０にて、ＳＲＡＭ１７又は書換可能ＲＯＭに、何れかのＤＴＣが記憶されているか否かを判定する。そして、ＤＴＣが記憶されていないと判定した場合には、Ｓ５２０に進んで、診断装置１３へ、「ＤＴＣ記憶なし」を示す情報を送信し、その後、当該ＤＴＣ出力要求応答処理を終了する。
【００８３】
診断装置１３は、ＥＣＵ２〜４の全てから、「ＤＴＣ記憶なし」を示す情報が送られてきた場合には、当該診断装置１３に備えられた表示装置の画面（以下、表示画面という）に、図９（Ａ）に示すような内容を表示する。尚、「発生時刻」とは、異常発生時刻のことであり、「１／２経過時刻」とは、異常状態の継続時間が異常判定時間の半分に達した時の時刻であり、「確定時刻」とは、異常確定時刻のことである。
【００８４】
一方、上記Ｓ５１０にて、ＤＴＣが記憶されていると判定した場合には、Ｓ５３０に移行して、図８に示すＤＴＣ・タイムスタンプ出力処理を実行し、その後、当該ＤＴＣ出力要求応答処理を終了する。
【００８５】
ここで、図８のＤＴＣ・タイムスタンプ出力処理は、記憶されていたＤＴＣと共に、そのＤＴＣに対応した（詳しくは、そのＤＴＣが示す異常に対応した）各タイムスタンプを診断装置１３へ送信するための処理であり、記憶されていたＤＴＣの各々について実行される。
【００８６】
そして、ＤＴＣ・タイムスタンプ出力処理の実行が開始されると、まずＳ６１０にて、診断装置１３への送信データが格納される送信用データ領域ＴＲ［０］〜ＴＲ［３］をクリアし、次のＳ６２０にて、記憶されていたＤＴＣを送信用データ領域ＴＲ［０］に書き込む。
【００８７】
次に、Ｓ６３０にて、診断装置１３からのＤＴＣ出力要求中に、本タイムスタンプ出力要求が含まれていたか否かを判定し、本タイムスタンプ出力要求が含まれていなければ、そのままＳ６５０に移行するが、本タイムスタンプ出力要求が含まれていたならば、Ｓ６４０に進む。そして、Ｓ６４０では、上記Ｓ６２０で送信用データ領域ＴＲ［０］に書き込んだＤＴＣに対応する本タイムスタンプを、送信用データ領域ＴＲ［１］に書き込み、その後、Ｓ６５０に進む。
【００８８】
Ｓ６５０では、診断装置１３からのＤＴＣ出力要求中に、Ｐｒｅ１タイムスタンプ出力要求が含まれていたか否かを判定し、Ｐｒｅ１タイムスタンプ出力要求が含まれていなければ、そのままＳ６７０に移行するが、Ｐｒｅ１タイムスタンプ出力要求が含まれていたならば、Ｓ６６０に進む。そして、Ｓ６６０では、上記Ｓ６２０で送信用データ領域ＴＲ［０］に書き込んだＤＴＣに対応するＰｒｅ１タイムスタンプを、送信用データ領域ＴＲ［２］に書き込み、その後、Ｓ６７０に進む。
【００８９】
Ｓ６７０では、診断装置１３からのＤＴＣ出力要求中に、Ｐｒｅ２タイムスタンプ出力要求が含まれていたか否かを判定し、Ｐｒｅ２タイムスタンプ出力要求が含まれていなければ、そのままＳ６９０に移行するが、Ｐｒｅ２タイムスタンプ出力要求が含まれていたならば、Ｓ６８０に進む。そして、Ｓ６８０では、上記Ｓ６２０で送信用データ領域ＴＲ［０］に書き込んだＤＴＣに対応するＰｒｅ２タイムスタンプを、送信用データ領域ＴＲ［３］に書き込み、その後、Ｓ６９０に進む。
【００９０】
Ｓ６９０では、送信用データ領域ＴＲ［０］〜ＴＲ［３］に書き込まれているデータを診断装置１３へ送信し、その後、当該ＤＴＣ・タイムスタンプ出力処理を終了する。
このようなＤＴＣ・タイムスタンプ出力処理による作用について説明する。
【００９１】
例えば、ＥＣＵ２において、ＳＲＡＭ１７又は書換可能ＲＯＭに、ＤＴＣとして｛０ｘ０１２０｝が記憶されており、そのＤＴＣに対応するＰｒｅ１タイムスタンプ、Ｐｒｅ２タイムスタンプ、本タイムスタンプの各々として、｛０ｘ０３２０｝、｛０ｘ０７０８｝、｛０ｘ０ＡＦ０｝がＮＲＡＭ１８に記憶されていたとする。尚、｛｝内の０ｘで始まる英数字列は１６進数表示の数字である。
【００９２】
この場合に、診断装置１３から各ＥＣＵ２〜４へ、Ｐｒｅ１タイムスタンプ出力要求とＰｒｅ２タイムスタンプ出力要求を含んだＤＴＣ出力要求が送信されたとすると、ＥＣＵ２においては、ＤＴＣ・タイムスタンプ出力処理により、送信用データ領域ＴＲ［０］〜ＴＲ［３］には、図９（Ｂ）のようにデータが書き込まれることとなる。尚、送信用データ領域ＴＲ［１］内のデータが、クリアされたままの｛０ｘ００００｝であるのは、この例では、診断装置１３にて本タイムスタンプの読み出し指定は行われておらず、診断装置１３からのＤＴＣ出力要求中に本タイムスタンプ出力要求が含まれていないからである。
【００９３】
そして、ＥＣＵ２から診断装置１３へ、図９（Ｂ）のデータが送信される。
すると、診断装置１３は表示画面に、図９（Ｃ）に示すような内容を表示することとなる。つまり、「トラブルコード」として、｛０ｘ０１２０｝を表示形式にした「Ｐ０１２０」が表示され、「発生時刻」として、Ｐｒｅ１タイムスタンプの値が示す「８００ｍｓ」が表示され、「１／２経過時刻」として、Ｐｒｅ２タイムスタンプの値が示す「１８００ｍｓ」が表示される。そして、「確定時刻」としては、データ無しを意味する「−ｍｓ」が表示される。
【００９４】
尚、診断装置１３にて本タイムスタンプの読み出し指定が行われ、診断装置１３からのＤＴＣ出力要求中に本タイムスタンプ出力要求が含まれた場合には、ＥＣＵ２から診断装置１３へ本タイムスタンプの値｛０ｘ０ＡＦ０｝も送信され、診断装置１３の表示画面に、「確定時刻」として、その本タイムスタンプの値が示す「２８００ｍｓ」が表示されることとなる。
【００９５】
また、ＥＣＵ２〜４のうちの１つ以上に、複数のＤＴＣが記憶されていた場合、診断装置１３の表示画面には、その各ＤＴＣについて、図９（Ｃ）のような内容が、同時に又は切り替えて表示されることとなる。また、診断装置１３は、ＤＴＣ及び各タイムスタンプが、どのＥＣＵから送られてきたものであるかを、合わせて表示するように構成しても良い。
【００９６】
次に、ＥＣＵ２〜４の各々では、診断装置１３から送信される常時モニタ出力要求（出力要求に相当）を受信すると、図１０の常時モニタ出力要求応答処理が実行される。
尚、診断装置１３は、各ＥＣＵ２〜４で記憶されたＰｒｅ１タイムスタンプをモニタするための操作が行われると、ＥＣＵ２〜４へ常時モニタ出力要求を送信するようになっている。また、その操作の際に、Ｐｒｅ２タイムスタンプについてもモニタするか否かを指定することができ、Ｐｒｅ２タイムスタンプもモニタすることが指定された場合には、Ｐｒｅ２タイムスタンプの出力要求を含んだ常時モニタ出力要求を、各ＥＣＵ２〜４へ送信するようになっている。また、診断装置１３は、特定のモニタ停止操作が行われると、各ＥＣＵ２〜４へモニタ停止要求を送信する。
【００９７】
そして、図１０に示すように、各ＥＣＵ２〜４における常時モニタ出力要求応答処理では、まずＳ７１０にて、何れかの検出対象異常に対応する（換言すれば、何れかのＤＴＣに対応する）Ｐｒｅ１セット履歴フラグがオンされているか否かを判定する。そして、Ｐｒｅ１セット履歴フラグがオンされていないと判定した場合には、Ｓ７２０に進んで、診断装置１３へ、「Ｐｒｅタイムスタンプ記憶なし」を示す情報を送信し、その後、当該常時モニタ出力要求応答処理を終了する。
【００９８】
診断装置１３は、ＥＣＵ２〜４の全てから、「Ｐｒｅタイムスタンプ記憶なし」を示す情報が送られてきた場合には、表示画面に、図１２（Ａ）に示すような内容を表示する。尚、「兆候」とは、異常の兆候のことであり、この場合には、「兆候」として“なし”が表示される。そして、「発生時刻」及び「１／２経過時刻」の各々として、データ無しを意味する「−ｍｓ」が表示される。
【００９９】
一方、上記Ｓ７１０にて、Ｐｒｅ１セット履歴フラグがオンされていると判定した場合には、何等かの異常について、少なくともＰｒｅ１タイムスタンプが記憶されているということであるため、Ｓ７３０に移行する。
【０１００】
Ｓ７３０では、その後、診断装置１３からのモニタ停止要求を受けるまで、図１１に示すＰｒｅタイムスタンプ出力処理を一定時間毎に実行する。そして、診断装置１３からのモニタ停止要求を受けると、Ｓ７３０から抜けて、当該常時モニタ出力要求応答処理を終了する。
【０１０１】
ここで、図１１のＰｒｅタイムスタンプ出力処理は、ＮＲＡＭ１８に記憶されているＰｒｅ１タイムスタンプ及びＰｒｅ２タイムスタンプを診断装置１３へ定期的に送信するための処理であり、Ｐｒｅ１タイムスタンプが記憶されていた異常項目毎について実行される。
【０１０２】
そして、Ｐｒｅタイムスタンプ出力処理の実行が開始されると、まずＳ８０５にて、診断装置１３からのモニタ停止要求を受信したか否かを判定し、モニタ停止要求を受信したと判定した場合には、当該Ｐｒｅタイムスタンプ出力処理を終了して図１０のＳ７３０から抜けるが、モニタ停止要求を受信していないと判定した場合には、次のＳ８１０に進む。
【０１０３】
Ｓ８１０では、診断装置１３への常時モニタ用の送信データが格納される常時モニタ送信用データ領域ＴＲＭ［０］〜ＴＲＭ［２］をクリアし、次のＳ８２０にて、送信対象のＰｒｅ１タイムスタンプを常時モニタ送信用データ領域ＴＲＭ［０］に書き込む。
【０１０４】
次に、Ｓ８３０にて、診断装置１３からの常時モニタ出力要求中に、Ｐｒｅ２タイムスタンプ出力要求が含まれていたか否かを判定し、Ｐｒｅ２タイムスタンプ出力要求が含まれていなければ、そのままＳ８５０に移行するが、Ｐｒｅ２タイムスタンプ出力要求が含まれていたならば、Ｓ８４０に進む。そして、Ｓ８４０では、上記Ｓ８２０で常時モニタ送信用データ領域ＴＲＭ［０］に書き込んだＰｒｅ１タイムスタンプと同じ異常に対応するＰｒｅ２タイムスタンプがＮＲＡＭ１８に記憶されているか否かを判定し、そのＰｒｅ２タイムスタンプが記憶されていれば、それを常時モニタ送信用データ領域ＴＲＭ［１］に書き込む。そして、その後、Ｓ８５０に進む。
【０１０５】
Ｓ８５０では、上記Ｓ８２０で常時モニタ送信用データ領域ＴＲＭ［０］に書き込んだＰｒｅ１タイムスタンプに対応するＤＴＣが何であるかを示す情報（本実施形態では、そのＤＴＣ）を、常時モニタ送信用データ領域ＴＲＭ［２］に書き込む。
【０１０６】
次にＳ８６０にて、常時モニタ送信用データ領域ＴＲＭ［０］〜ＴＲＭ［２］に書き込まれているデータを診断装置１３へ送信する。そして、次のＳ８７０にて、一定時間だけ待ち、その後、上記Ｓ８０５へ戻る。
【０１０７】
このようなＰｒｅタイムスタンプ出力処理による作用について説明する。
例えば、診断装置１３から各ＥＣＵ２〜４へ、Ｐｒｅ２タイムスタンプ出力要求を含んだ常時モニタ出力要求が送信されたとする。そして、ＥＣＵ２において、ＮＲＡＭ１８に、ＤＴＣ＝｛０ｘ０１２０｝の異常に対応するＰｒｅ１タイムスタンプ及びＰｒｅ２タイムスタンプの各々として、｛０ｘ０４Ｂ０｝、｛０ｘ０６Ａ４｝が記憶されていたとする。
【０１０８】
この場合、ＥＣＵ２においては、Ｐｒｅタイムスタンプ出力処理により、常時モニタ送信用データ領域ＴＲＭ［０］〜ＴＲＭ［２］には、図１２（Ｂ）のようにデータが書き込まれることとなる。
【０１０９】
そして、ＥＣＵ２から診断装置１３へ、図１２（Ｂ）のデータが送信される。
すると、診断装置１３は表示画面に、図１２（Ｃ）に示すような内容を表示することとなる。つまり、「兆候」として、｛０ｘ０１２０｝を表示形式にした「Ｐ０１２０」のＤＴＣに関して異常の兆候があること（Ｐ０１２０異常兆候）が表示され、その「Ｐ０１２０」が示す異常の「発生時刻」として、Ｐｒｅ１タイムスタンプの値が示す「１２００ｍｓ」が表示され、同じくその「Ｐ０１２０」が示す異常の「１／２経過時刻」として、Ｐｒｅ２タイムスタンプの値が示す「１７００ｍｓ」が表示される。
【０１１０】
尚、Ｐｒｅタイムスタンプ出力処理は一定時間毎に繰り返されるため、ＥＣＵ２〜４で記憶されるＰｒｅ１タイムスタンプ及びＰｒｅ２タイムスタンプが更新されたならば、その更新されたタイムスタンプが診断装置１３へ送信される。よって、診断装置１３の表示画面には、その更新されたタイムスタンプによる時刻が表示されることとなる。
【０１１１】
また、ＥＣＵ２〜４のうちの１つ以上に、複数の異常項目についてＰｒｅ１タイムスタンプが記憶されていた場合、診断装置１３の表示画面には、その各異常項目について、図１２（Ｃ）のような内容が、同時に又は切り替えて表示されることとなる。また、診断装置１３は、各タイムスタンプが、どのＥＣＵから送られてきたものであるかを、合わせて表示するように構成しても良い。
【０１１２】
以上のような車載ネットワークによれば、各ＥＣＵ２〜４において、何等かの異常が発生していると確定判定された時には、その異常を示すＤＴＣと本タイムスタンプが記憶されるが、更に、その異常が発生していると判定され始めた異常判定開始時に、Ｐｒｅ１タイムスタンプも記憶される。また、その異常判定開始時から異常判定時間の半分の時間が経過した時に、Ｐｒｅ２タイムスタンプも記憶される。
【０１１３】
そして、通信線１１に診断装置１３を接続すると共に、その診断装置１３を操作して、本タイムスタンプ、Ｐｒｅ１タイムスタンプ、及びＰｒｅ２タイムスタンプの出力要求を含んだＤＴＣ出力要求を各ＥＣＵ２〜４へ送信させれば、各ＥＣＵ２〜４は、自身が記憶しているＤＴＣと合わせて、そのＤＴＣに対応するＰｒｅ１タイムスタンプ、Ｐｒｅ２タイムスタンプ及び本タイムスタンプを診断装置１３へと送信することとなる。そして、このようにＥＣＵ２〜４から診断装置１３へ読み出されたＤＴＣ及び各タイムスタンプは、診断装置１３の表示画面に表示される。
【０１１４】
このため、各ＥＣＵ２〜４から診断装置１３へ、ＤＴＣと共に読み出されたＰｒｅ１タイムスタンプ、Ｐｒｅ２タイムスタンプ及び本タイムスタンプのうち、Ｐｒｅ１タイムスタンプにより、そのＤＴＣの示す異常が発生していると判定され始めた時刻（つまり、異常判定時間に依存しない異常発生時刻）を知ることができる。
【０１１５】
よって、ＥＣＵ２〜４から複数のＤＴＣが読み出された場合、即ち、ＥＣＵ２〜４のうちの１つ或いは２つ以上で複数の異常が検出された場合に、それら異常の発端となった主要因の異常をＰｒｅ１タイムスタンプによって容易に特定することができるようになる。そして、このため、車両のディーラーや整備工場等で修理を行う際に、故障箇所の誤判断による正常部品の誤交換を防止して、効率的な故障箇所修理が可能となる。
【０１１６】
また特に、ＥＣＵ２〜４からＤＴＣと共に読み出されたＰｒｅ１タイムスタンプと本タイムスタンプとにより、そのＤＴＣの示す異常が、「いつから異常と判定されはじめて、いつ異常と確定判定されたか」という時間的推移を知ることができる。更に、ＤＴＣと共に読み出されたＰｒｅ２タイムスタンプも参酌することにより、そのＤＴＣの示す異常が、「いつから異常と判定されはじめて、いつ異常判定時間の半分（１／２経過時刻）に達し、いつ異常と確定判定されたか」という３時点の時間的推移を簡単に知ることができる。よって、ＥＣＵ２〜４から複数のＤＴＣが読み出された場合には、その各ＤＴＣが示す異常について、上記時間的推移を比較することにより、それら異常の発端となった主要因の異常を、より的確に特定し易くなる。
【０１１７】
例えば、図１３に示すように、ＥＣＵ２において、「グローバルタイマ値＝８００」の時に、異常ａが発生していると判定され始め、その後、異常ａについての異常判定時間である２０００ｍｓが経過して、「グローバルタイマ値＝２８００」となった時に、その異常ａのＤＴＣであるＤＴＣａが記憶されたとする。また、異常ａが発生したことにより、ＥＣＵ３が検出対象としている異常ｂが発生し、ＥＣＵ３において、「グローバルタイマ値＝１６００」の時に、異常ｂが発生していると判定され始め、その後、異常ｂについての異常判定時間である８００ｍｓが経過して、「グローバルタイマ値＝２４００」となった時に、その異常ｂのＤＴＣであるＤＴＣｂが記憶されたとする。
【０１１８】
そして、この場合、ＥＣＵ２では、異常ａに対応するＰｒｅ１タイムスタンプａ、Ｐｒｅ２タイムスタンプａ及び本タイムスタンプａの各々として、「８００」，「１８００」，「２８００」が記憶されることとなり、ＥＣＵ３では、異常ｂに対応するＰｒｅ１タイムスタンプｂ、Ｐｒｅ２タイムスタンプｂ及び本タイムスタンプｂの各々として、「１６００」，「２０００」，「２４００」が記憶されることとなる。
【０１１９】
ここで、この例では、異常ｂの異常判定時間（＝８００ｍｓ）よりも異常ａの異常判定時間（＝２０００ｍｓ）の方が長いため、本当は異常ａが発生したことにより異常ｂが発生したのに、その異常ａのＤＴＣ（ＤＴＣａ）及び本タイムスタンプがＥＣＵ２で記憶されるよりも先に、ＥＣＵ３で異常ｂのＤＴＣ（ＤＴＣｂ）及び本タイムスタンプが記憶されている。よって、ＤＴＣと本タイムスタンプだけからでは、異常ａよりも異常ｂの方が先に発生している、という風にしか読み取れず、本当の故障原因を発見し損ねることとなる。
【０１２０】
これに対して、本実施形態によれば、各異常ａ，ｂについてのＰｒｅ１タイムスタンプ及びＰｒｅ２タイムスタンプもＥＣＵに記憶されて、ＤＴＣと共に診断装置１３へ読み出されるため、その各異常ａ，ｂのＰｒｅ１タイムスタンプ及びＰｒｅ２タイムスタンプにより、異常ｂよりも異常ａの方が先に発生していることを知ることができ、異常ａが異常ｂの発端となっているかも知れないことを容易に予測することができるようになる。
【０１２１】
尚、図１３の右側に記載している２つの四角枠内のうち、上側は、ＥＣＵ２から診断装置１３へ異常ａのＤＴＣ及び各タイムスタンプが読み出された場合の、診断装置１３での表示内容を示しており、下側は、ＥＣＵ３から診断装置１３へ異常ｂのＤＴＣ及び各タイムスタンプが読み出された場合の、診断装置１３での表示内容を示している。
【０１２２】
また例えば、異常ａの具体例としては、「発明が解決しようとする課題」の欄で説明したクランクセンサの異常が考えられ、異常ｂの具体例としては、同じく「発明が解決しようとする課題」の欄で説明した失火異常が考えられる。
【０１２３】
一方、言うまでもないが、図１３の異常ａ，ｂが１つのＥＣＵで検出される異常であっても、同様の効果が得られる。例えば、異常ａとしては、「発明が解決しようとする課題」の欄で説明したセンサ電源異常が考えられ、異常ｂとしては、同じく「発明が解決しようとする課題」の欄で説明したセンサ異常が考えられる。また例えば、他の例として、異常ａとしては、酸素センサを活性化させるヒータの異常が考えられ、異常ｂとしては、その酸素センサの異常が考えられる。
【０１２４】
また、本実施形態において、各ＥＣＵ２〜４は、診断装置１３からのＤＴＣ出力要求に応じて、その時に記憶しているＤＴＣと共に各タイムスタンプを出力するようになっている。このため、本タイムスタンプだけでなく、Ｐｒｅ１タイムスタンプとＰｒｅ２タイムスタンプについても、異常と確定判定された異常項目についてのみＥＣＵ２〜４に出力させることができる。よって、複数の異常が検出された場合（複数のＤＴＣが記憶された場合）には、そのうちの主要因である発端異常を特定するのに必要な情報だけが出力されることとなり、診断装置１３への情報転送量を必要最小限に抑えることができる。
【０１２５】
また、本実施形態においては、診断装置１３から各ＥＣＵ２〜４へ、Ｐｒｅ２タイムスタンプの出力要求を含んだ常時モニタ出力要求を送信したならば、各ＥＣＵ２〜４から診断装置へ、最新のＰｒｅ１タイムスタンプとＰｒｅ２タイムスタンプが一定時間毎に出力されて、それらが診断装置１３の表示画面に表示される。また、診断装置１３から各ＥＣＵ２〜４へ、Ｐｒｅ２タイムスタンプの出力要求を含まない常時モニタ出力要求を送信したならば、各ＥＣＵ２〜４から診断装置１３へ、最新のＰｒｅ１タイムスタンプのみが一定時間毎に出力されて、それらが診断装置１３の表示画面に表示される。
【０１２６】
このため、異常と確定判定されていない異常項目についても、その後に異常と確定判定されそうな予兆を確認することができる。具体的には、ＥＣＵ２〜４から診断装置１３へＰｒｅ１タイムスタンプ或いは更にＰｒｅ２タイムスタンプが出力されて、診断装置１３の表示画面に、図１２（Ｃ）のような内容が表示されたならば、異常の兆候があると認識することができる。
【０１２７】
尚、本第１実施形態では、図５の異常検出処理が異常検出手段に相当しており、その処理のうちのＳ３１０が判定手段に相当している。そして、Ｐｒｅ１タイムスタンプが異常判定開始時の時刻情報に相当し、Ｐｒｅ２タイムスタンプが中間時間到達時の時刻情報に相当し、本タイムスタンプが異常確定時の時刻情報に相当している。また、異常検出処理毎（検出対象の異常毎）についてＮＲＡＭ１８に設けられた記憶領域であって、Ｐｒｅ１タイムスタンプ、Ｐｒｅ２タイムスタンプ、及び本タイムスタンプの各々を記憶するための記憶領域が、異常検出手段を構成する手段のうち、異常判定開始時の時刻情報、中間時間到達時の時刻情報、及び異常確定時の時刻情報の各々を記憶するための記憶領域又は記憶手段に該当している。一方、図７のＤＴＣ出力要求応答処理が応答手段に相当し、図１０の常時モニタ出力要求応答処理が出力手段に相当している。
［第２実施形態］
第２実施形態の車載ネットワークは、第１実施形態と比較すると、下記（１）〜（５）の点が異なっている。
【０１２８】
（１）まず、各ＥＣＵ２〜４のＮＲＡＭ１８には、異常項目毎のＰｒｅ１タイムスタンプとＰｒｅ２タイムスタンプをそれぞれ記憶するための各記憶領域が、１つずつでなく、複数個（本実施形態では５個）ずつ設けられている。そして、Ｐｒｅ１タイムスタンプとＰｒｅ２タイムスタンプは、最新のものから５個ずつ記憶されるようになっている。
【０１２９】
このため、以下において、異常項目毎の５個の各Ｐｒｅ１タイムスタンプを区別する場合には、それらをＰｒｅ１［０］タイムスタンプ〜Ｐｒｅ１［４］タイムスタンプと記載し、また、Ｐｒｅ１［ｋ］タイムスタンプとも記載する。尚、ｋは、配列インデックスであり、０〜４の何れかである。同様に、異常項目毎の５個の各Ｐｒｅ２タイムスタンプを区別する場合には、それらをＰｒｅ２［０］タイムスタンプ〜Ｐｒｅ２［４］タイムスタンプと記載し、また、Ｐｒｅ２［ｊ］タイムスタンプとも記載する。尚、ｊも、配列インデックスであり、０〜４の何れかである。一方、Ｐｒｅ１タイムスタンプとＰｒｅ２タイムスタンプの記憶数は異なっていても良い。
【０１３０】
（２）そして、各ＥＣＵ２〜４では、図４のタイムスタンプ初期化処理に代えて、図１４のタイムスタンプ初期化処理が実行される。
図１４のタイムスタンプ初期化処理では、まずＳ２１３にて、そのタイムスタンプ初期化処理に対応する異常についてのＰｒｅ１［０］タイムスタンプ〜Ｐｒｅ１［４］タイムスタンプ及びＰｒｅ２［０］タイムスタンプ〜Ｐｒｅ２［４］タイムスタンプをクリアし、続くＳ２１５にて、その各タイムスタンプの配列インデックスｋ，ｊを０にクリアする。そして、その後、図４と同じＳ２２０及びＳ２３０の処理を行う。
【０１３１】
（３）更に、各ＥＣＵ２〜４では、図５の異常検出処理に代えて、図１５の異常検出処理が実行される。
図１５の異常検出処理は、図５の異常検出処理と比較すると、Ｓ３３０に代わるＳ３３３にて、図１６（Ａ）に示すＰｒｅ１タイムスタンプ記憶処理が実行され、Ｓ３６０に代わるＳ３６３にて、図１７（Ａ）に示すＰｒｅ２タイムスタンプ記憶処理が実行される点が異なっている。
【０１３２】
そして、図１６（Ａ）のＰｒｅ１タイムスタンプ記憶処理では、まずＳ９１０にて、検出対象異常に対応するＰｒｅ１［ｋ］タイムスタンプ（ｋの値は、その時点で設定されている値）に、ＥＣＵ１から取得している現在のグローバルタイマ値（即ち、異常判定開始時のグローバルタイマ値）をセットし、次のＳ９２０にて、ｋの値をインクリメント（＋１）する。そして、次のＳ９３０にて、「ｋ≧５」になったか否かを判定し、「ｋ≧５」でなければ、そのまま当該Ｐｒｅ１タイムスタンプ記憶処理を終了するが、「ｋ≧５」ならば、Ｓ９４０に進んで、ｋの値を０に戻し、その後、当該Ｐｒｅ１タイムスタンプ記憶処理を終了する。
【０１３３】
このため、図１６（Ｂ）に示すように、Ｐｒｅ１［０］タイムスタンプ〜Ｐｒｅ１［４］タイムスタンプの各々には、図１５のＳ３３３でＰｒｅ１タイムスタンプ記憶処理が実行される毎に、Ｐｒｅ１［０］タイムスタンプ→Ｐｒｅ１［１］タイムスタンプ→…→Ｐｒｅ１［４］タイムスタンプの順で、その時のグローバルタイマ値がセットされるが、Ｐｒｅ１［４］タイムスタンプの次は、再びＰｒｅ１［０］タイムスタンプに戻って、グローバルタイマ値がセットされる。つまり、ＮＲＡＭ１８に設けられたＰｒｅ１タイムスタンプの複数の記憶領域は、いわゆるローリングデータ領域になっている。
【０１３４】
また同様に、図１７（Ａ）のＰｒｅ２タイムスタンプ記憶処理では、まずＳ９５０にて、検出対象異常に対応するＰｒｅ２［ｊ］タイムスタンプ（ｊの値は、その時点で設定されている値）に、ＥＣＵ１から取得している現在のグローバルタイマ値（即ち、異常判定時間の半分経過時のグローバルタイマ値）をセットし、次のＳ９６０にて、ｊの値をインクリメント（＋１）する。そして、次のＳ９７０にて、「ｊ≧５」になったか否かを判定し、「ｊ≧５」でなければ、そのまま当該Ｐｒｅ２タイムスタンプ記憶処理を終了するが、「ｊ≧５」ならば、Ｓ９８０に進んで、ｊの値を０に戻し、その後、当該Ｐｒｅ２タイムスタンプ記憶処理を終了する。
【０１３５】
このため、図１７（Ｂ）に示すように、Ｐｒｅ２［０］タイムスタンプ〜Ｐｒｅ２［４］タイムスタンプの各々には、図１５のＳ３６３でＰｒｅ２タイムスタンプ記憶処理が実行される毎に、Ｐｒｅ２［０］タイムスタンプ→Ｐｒｅ２［１］タイムスタンプ→…→Ｐｒｅ２［４］タイムスタンプの順で、その時のグローバルタイマ値がセットされるが、Ｐｒｅ２［４］タイムスタンプの次は、再びＰｒｅ２［０］タイムスタンプに戻って、グローバルタイマ値がセットされる。つまり、ＮＲＡＭ１８に設けられたＰｒｅ２タイムスタンプの複数の記憶領域も、いわゆるローリングデータ領域になっている。
【０１３６】
上記（１）〜（３）の相違点により、例えば図１８に示すように、異常判定時間が８００ｍｓに設定された異常について、グローバルタイマ値＝４００、６００、１１００、１６００の各時点で異常判定条件が成立し始めたとすると、Ｐｒｅ１［０］タイムスタンプ〜Ｐｒｅ１［３］タイムスタンプの各々として、４００、６００、１１００、１６００の各値が記憶されることとなる。また、「グローバルタイマ値＝１１００」の時点から異常判定条件が成立したまま、異常判定時間の半分である４００ｍｓが経過すると、その時点のグローバルタイマ値である１５００が、Ｐｒｅ２［０］タイムスタンプとして記憶される。同様に、「グローバルタイマ値＝１６００」の時点から異常判定条件が成立したまま、４００ｍｓが経過すると、その時点のグローバルタイマ値である２０００が、Ｐｒｅ２［１］タイムスタンプとして記憶される。
【０１３７】
このように、本第２実施形態では、各異常について、Ｐｒｅ１タイムスタンプとＰｒｅ２タイムスタンプが、最新のものから最大で５個ずつ記憶される。尚、図１８の例では、「グローバルタイマ値＝１６００」の時点から異常判定条件が成立し続けて、「グローバルタイマ値＝２４００」の時に、その時の「２４００」が本タイムスタンプとして記憶されると共に、ＤＴＣが記憶されている。
【０１３８】
（４）次に、各ＥＣＵ２〜４において、図７のＳ５３０では、図８のＤＴＣ・タイムスタンプ出力処理に代えて、図１９のＤＴＣ・タイムスタンプ出力処理が実行される。
そして、図１９のＤＴＣ・タイムスタンプ出力処理は、図８のＤＴＣ・タイムスタンプ出力処理と比較すると、Ｓ６１０、Ｓ６６０、Ｓ６８０及びＳ６９０の各々に代えて、Ｓ６１５、Ｓ６６５、Ｓ６８５及びＳ６９５の処理が行われる。
【０１３９】
まず、Ｓ６１０に代わるＳ６１５では、診断装置１３への送信データが格納される送信用データ領域ＴＲ［０］〜ＴＲ［１１］をクリアする。つまり、本第２実施形態では、送信用データ領域ＴＲが０番から１１番までの１２個のデータを格納可能になっている。
【０１４０】
そして、Ｓ６６０に代わるＳ６６５では、Ｓ６２０で送信用データ領域ＴＲ［０］に書き込んだＤＴＣに対応するＰｒｅ１［０］タイムスタンプ〜Ｐｒｅ１［４］タイムスタンプを、送信用データ領域ＴＲ［２］〜ＴＲ［６］の各々に書き込む。
【０１４１】
また、Ｓ６８０に代わるＳ６８５では、Ｓ６２０で送信用データ領域ＴＲ［０］に書き込んだＤＴＣに対応するＰｒｅ２［０］タイムスタンプ〜Ｐｒｅ２［４］タイムスタンプを、送信用データ領域ＴＲ［７］〜ＴＲ［１１］の各々に書き込む。
【０１４２】
そして、Ｓ６９０に代わるＳ６９５では、送信用データ領域ＴＲ［０］〜ＴＲ［１１］に書き込まれているデータを診断装置１３へ送信する。
このような第２実施形態のＤＴＣ・タイムスタンプ出力処理による作用について説明する。
【０１４３】
例えば、ＥＣＵ２において、ＳＲＡＭ１７又は書換可能ＲＯＭに、ＤＴＣとして｛０ｘ０１２０｝が記憶されており、そのＤＴＣに対応するＰｒｅ１［０］タイムスタンプ〜Ｐｒｅ１［４］タイムスタンプの各々として、｛０ｘ０１９０｝、｛０ｘ０２５８｝、｛０ｘ０４４Ｃ｝、｛０ｘ０６４０｝、｛０ｘ００００｝がＮＲＡＭ１８に記憶されていたとする。そして更に、そのＤＴＣに対応する本タイムスタンプとして、｛０ｘ０９６０｝がＮＲＡＭ１８に記憶されていたとする。
【０１４４】
この場合に、診断装置１３から各ＥＣＵ２〜４へ、Ｐｒｅ１タイムスタンプ出力要求と本タイムスタンプ出力要求を含んだＤＴＣ出力要求が送信されたとすると、ＥＣＵ２においては、ＤＴＣ・タイムスタンプ出力処理により、送信用データ領域ＴＲ［０］〜ＴＲ［１１］には、図２０（Ａ）のようにデータが書き込まれることとなる。尚、この例では、Ｐｒｅ１［４］タイムスタンプに未だグローバルタイマ値が記憶されていないため、送信用データ領域ＴＲ［６］内のデータは｛０ｘ００００｝である。また、送信用データ領域ＴＲ［７］〜ＴＲ［１１］内のデータが、クリアされたままの｛０ｘ００００｝であるのは、この例では、診断装置１３にてＰｒｅ２タイムスタンプの読み出し指定は行われておらず、診断装置１３からのＤＴＣ出力要求中にＰｒｅ２タイムスタンプ出力要求が含まれていないからである。
【０１４５】
そして、ＥＣＵ２から診断装置１３へ、図２０（Ａ）のデータが送信される。
すると、診断装置１３は表示画面に、図２０（Ｂ）に示すような内容を表示することとなる。つまり、「トラブルコード」として、｛０ｘ０１２０｝を表示形式にした「Ｐ０１２０」が表示され、「発生時刻１」〜「発生時刻４」の各々として、Ｐｒｅ１［０］タイムスタンプ〜Ｐｒｅ１［３］タイムスタンプの各値（１０進数表示の値）が表示され、「発生時刻５」としては、データ無しを意味する「−ｍｓ」が表示される。そして、「１／２経過時刻」としても、「−ｍｓ」が表示され、また、「確定時刻」としては、本タイムスタンプの値（１０進数表示の値）が表示される。
【０１４６】
尚、診断装置１３にてＰｒｅ２タイムスタンプの読み出し指定が行われ、診断装置１３からのＤＴＣ出力要求中にＰｒｅ２タイムスタンプ出力要求が含まれた場合には、ＥＣＵ２から診断装置１３へ、ＤＴＣ＝｛０ｘ０１２０｝に対応するＰｒｅ２［０］タイムスタンプ〜Ｐｒｅ２［４］タイムスタンプの各値も送信される。そして、診断装置１３の表示画面に、「１／２経過時刻１」〜「１／２経過時刻４」の各項目が表示されると共に、その各項目について、Ｐｒｅ２［０］タイムスタンプ〜Ｐｒｅ２［４］タイムスタンプの各値が表示されることとなる。
【０１４７】
また、ＥＣＵ２〜４のうちの１つ以上に、複数のＤＴＣが記憶されていた場合、診断装置１３の表示画面には、その各ＤＴＣについて、図２０（Ｂ）のような内容が、同時に又は切り替えて表示されることとなる。また、診断装置１３は、ＤＴＣ及び各タイムスタンプが、どのＥＣＵから送られてきたものであるかを、合わせて表示するように構成しても良い。
【０１４８】
（５）また、各ＥＣＵ２〜４において、図１０のＳ７３０では、図１１のＰｒｅタイムスタンプ出力処理に代えて、図２１のＰｒｅタイムスタンプ出力処理が実行される。
そして、図２１のＰｒｅタイムスタンプ出力処理は、図１１のＰｒｅタイムスタンプ出力処理と比較すると、Ｓ８１０、Ｓ８２０、Ｓ８４０、Ｓ８５０及びＳ８６０の各々に代えて、Ｓ８１５、Ｓ８２５、Ｓ８４５、Ｓ８５５及びＳ８６５の処理が行われる。
【０１４９】
まず、Ｓ８１０に代わるＳ８１５では、診断装置１３への常時モニタ用の送信データが格納される常時モニタ送信用データ領域ＴＲＭ［０］〜ＴＲＭ［１０］をクリアする。つまり、本第２実施形態では、常時モニタ送信用データ領域ＴＲＭが０番から１０番までの１１個のデータを格納可能になっている。
【０１５０】
そして、Ｓ８２０に代わるＳ８２５では、送信対象のＰｒｅ１［０］タイムスタンプ〜Ｐｒｅ１［４］タイムスタンプを、常時モニタ送信用データ領域ＴＲＭ［０］〜ＴＲＭ［４］の各々に書き込む。
【０１５１】
また、Ｓ８４０に代わるＳ８４５では、Ｓ８２５で常時モニタ送信用データ領域ＴＲＭ［０］〜ＴＲＭ［４］に書き込んだＰｒｅ１［ｋ］タイムスタンプと同じ異常に対応するＰｒｅ２［０］タイムスタンプ〜Ｐｒｅ２［４］タイムスタンプを、常時モニタ送信用データ領域ＴＲＭ［５］〜ＴＲＭ［９］の各々に書き込む。
【０１５２】
そして、Ｓ８５０に代わるＳ８５５では、Ｓ８２５で常時モニタ送信用データ領域ＴＲＭ［０］〜ＴＲＭ［４］に書き込んだＰｒｅ１［ｋ］タイムスタンプに対応するＤＴＣが何であるかを示す情報（本実施形態では、そのＤＴＣ）を、常時モニタ送信用データ領域ＴＲＭ［１０］に書き込む。
【０１５３】
そして更に、Ｓ８６０に代わるＳ８６５では、常時モニタ送信用データ領域ＴＲＭ［０］〜ＴＲＭ［１０］に書き込まれているデータを診断装置１３へ送信する。
このような第２実施形態のＰｒｅタイムスタンプ出力処理による作用について説明する。
【０１５４】
例えば、診断装置１３から各ＥＣＵ２〜４へ、Ｐｒｅ２タイムスタンプ出力要求を含まない常時モニタ出力要求が送信されたとする。そして、ＥＣＵ２において、ＮＲＡＭ１８に、ＤＴＣ＝｛０ｘ０１２０｝の異常に対応するＰｒｅ１［０］タイムスタンプ〜Ｐｒｅ１［４］タイムスタンプの各々として、｛０ｘ０１９０｝、｛０ｘ０２５８｝、｛０ｘ０４４Ｃ｝、｛０ｘ０６４０｝、｛０ｘ００００｝が記憶されていたとする。
【０１５５】
この場合、ＥＣＵ２においては、Ｐｒｅタイムスタンプ出力処理により、常時モニタ送信用データ領域ＴＲＭ［０］〜ＴＲＭ［１０］には、図２２（Ａ）のようにデータが書き込まれることとなる。
【０１５６】
そして、ＥＣＵ２から診断装置１３へ、図２２（Ａ）のデータが送信される。
すると、診断装置１３は表示画面に、図２２（Ｂ）に示すような内容を表示することとなる。つまり、「兆候」として、｛０ｘ０１２０｝を表示形式にした「Ｐ０１２０」のＤＴＣに関して異常の兆候があること（Ｐ０１２０異常兆候）が表示され、その「Ｐ０１２０」が示す異常の「発生時刻１」〜「発生時刻５」のうち、「発生時刻１」〜「発生時刻４」の各々として、Ｐｒｅ１［０］タイムスタンプ〜Ｐｒｅ１［３］タイムスタンプの各値（１０進数表示の値）が表示される。そして、「発生時刻５」としては、Ｐｒｅ１［４］タイムスタンプの値が｛０ｘ００００｝であるため、データ無しを意味する「−ｍｓ」が表示される。また、「Ｐ０１２０」が示す異常の「１／２経過時刻」としても、「−ｍｓ」が表示される。
【０１５７】
尚、診断装置１３にてＰｒｅ２タイムスタンプもモニタすることが指定されて、診断装置１３からの常時モニタ出力要求中にＰｒｅ２タイムスタンプ出力要求が含まれた場合には、ＥＣＵ２から診断装置１３へ、ＤＴＣ＝｛０ｘ０１２０｝に対応するＰｒｅ２［０］タイムスタンプ〜Ｐｒｅ２［４］タイムスタンプの各値も一定時間毎に送信される。そして、診断装置１３の表示画面に、「１／２経過時刻１」〜「１／２経過時刻４」の各項目が表示されると共に、その各項目について、Ｐｒｅ２［０］タイムスタンプ〜Ｐｒｅ２［４］タイムスタンプの各値が表示されることとなる。
【０１５８】
また、ＥＣＵ２〜４のうちの１つ以上に、複数の異常項目についてＰｒｅ１タイムスタンプが記憶されていた場合、診断装置１３の表示画面には、その各異常項目について、図２２（Ｂ）のような内容が、同時に又は切り替えて表示されることとなる。また、診断装置１３は、各タイムスタンプが、どのＥＣＵから送られてきたものであるかを、合わせて表示するように構成しても良い。一方、本第２実施形態においても、Ｐｒｅタイムスタンプ出力処理は一定時間毎に繰り返されるため、ＥＣＵ２〜４で記憶されるＰｒｅ１タイムスタンプ及びＰｒｅ２タイムスタンプが更新されたならば、その更新されたタイムスタンプが診断装置１３へ送信されて、診断装置１３の表示画面には、その更新されたタイムスタンプによる時刻が表示されることとなる。
【０１５９】
以上のような第２実施形態の車載ネットワークによれば、第１実施形態と同じ効果に加えて、更に下記の効果が得られる。
まず、ＥＣＵ２〜４で検出対象としている何れかの異常について、異常判定条件が異常判定時間よりも短い時間だけ成立することが繰り返される、異常判定／正常判定のハンチング現象が生じた場合、その異常についてのＰｒｅ１タイムスタンプが複数個記憶されることとなる。
【０１６０】
このため、診断装置１３からＥＣＵ２〜４へのＤＴＣ出力要求により、何れかのＥＣＵ２〜４から診断装置１３へ、何れかの異常についてのＰｒｅ１タイムスタンプが複数読み出されたならば、その異常について、異常と確定判定される前に、異常判定／正常判定のハンチング現象が起こっていたことを知ることができ、更に、それらＰｒｅ１タイムスタンプの各値から、そのハンチング現象が起こっていた時刻や頻度を知ることができる。よって、異常確定判定へ至る前の予兆状態を詳しく確認することができる。
【０１６１】
また、診断装置１３からＥＣＵ２〜４への常時モニタ出力要求により、何れかのＥＣＵ２〜４から診断装置１３へ、何れかの異常についてのＰｒｅ１タイムスタンプが複数読み出されたならば、その異常について、異常判定／正常判定のハンチング現象が起こっていること及びそのハンチング現象の発生時刻や頻度を知ることができ、これから異常と確定判定されるかも知れない予兆を詳しく確認することができる。
【０１６２】
同様に、ＥＣＵ２〜４で検出対象としている何れかの異常について、異常判定条件が異常判定時間の半分よりも長く異常判定時間よりは短い時間だけ成立することが繰り返される、異常判定／正常判定のハンチング現象（以下、異常確定判定に近いハンチング現象という）が生じた場合、その異常についてのＰｒｅ２タイムスタンプが複数個記憶されることとなる。
【０１６３】
このため、診断装置１３からＥＣＵ２〜４へのＤＴＣ出力要求或いは常時モニタ出力要求により、何れかのＥＣＵ２〜４から診断装置１３へ、何れかの異常についてのＰｒｅ２タイムスタンプが複数読み出されたならば、それらＰｒｅ２タイムスタンプの各値から、異常確定判定に近いハンチング現象についても、それの発生時刻や頻度を知ることができ、延いては、異常と確定判定される可能性の高い予兆状態を確認することができる。
【０１６４】
尚、本第２実施形態では、図１５の異常検出処理が異常検出手段に相当しており、その処理のうちのＳ３１０が判定手段に相当している。また、異常検出処理毎（検出対象の異常毎）についてＮＲＡＭ１８に設けられた記憶領域であって、Ｐｒｅ１タイムスタンプとＰｒｅ２タイムスタンプを複数個ずつ記憶可能な記憶領域が、記憶手段に該当している。
【０１６５】
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
【０１６６】
例えば、上記各実施形態において、Ｐｒｅ１タイムスタンプ、Ｐｒｅ２タイムスタンプ、本タイムスタンプ、及びＰｒｅ１セット履歴フラグの各々は、ＳＲＡＭ１７に記憶されるようにしても良い。そして、その場合、図４，図１４のタイムスタンプ初期化処理は、車載バッテリが車両に接続された直後にだけ実施されるように構成すれば良い。このように構成すれば、上記各タイムスタンプ及びＰｒｅ１セット履歴フラグを、イグニッションスイッチのオン／オフに拘わらず継続して保存することができる。つまり、異常判定条件が成立してから異常と確定判定されるまでの間に、ＥＣＵ２〜４への動作電源が遮断されても、上記各タイムスタンプ及びＰｒｅ１セット履歴フラグを保存することができ、イグニッションスイッチのオフ期間を跨いで異常の発生時刻や異常の兆候を確認することができるようになる。
【０１６７】
一方、図３以降の各処理を行うＥＣＵが１つであると共に、そのＥＣＵが複数項目の異常を検出するようになっている構成でも良い。また、この場合、そのＥＣＵは、必ずしも他のＥＣＵ１からグローバルタイマ値を受け取る必要はなく、自ＥＣＵに備えられた時計の値を各タイムスタンプとして記憶するように構成することができる。
【図面の簡単な説明】
【０１６８】
【図１】実施形態の車載ネットワークを表す構成図である。
【図２】ＥＣＵ１で実行されるグローバルタイマ値送信処理を表すフローチャートである。
【図３】ＥＣＵ２〜４で実行されるグローバルタイマ値受信処理を表すフローチャートである。
【図４】ＥＣＵ２〜４で実行される第１実施形態のタイムスタンプ初期化処理を表すフローチャートである。
【図５】ＥＣＵ２〜４で実行される第１実施形態の異常検出処理を表すフローチャートである。
【図６】第１実施形態の異常検出処理の作用を表すタイムチャートである。
【図７】ＥＣＵ２〜４で実行されるＤＴＣ出力要求応答処理を表すフローチャートである。
【図８】図７のＳ５３０で実行される第１実施形態のＤＴＣ・タイムスタンプ出力処理を表すフローチャートである。
【図９】第１実施形態のＤＴＣ・タイムスタンプ出力処理の作用及び診断装置の表示内容を説明する説明図である。
【図１０】ＥＣＵ２〜４で実行される常時モニタ出力要求応答処理を表すフローチャートである。
【図１１】図１０のＳ７３０で実行される第１実施形態のＰｒｅタイムスタンプ出力処理を表すフローチャートである。
【図１２】第１実施形態のＰｒｅタイムスタンプ出力処理の作用及び診断装置の表示内容を説明する説明図である。
【図１３】第１実施形態の効果を説明するタイムチャートである。
【図１４】ＥＣＵ２〜４で実行される第２実施形態のタイムスタンプ初期化処理を表すフローチャートである。
【図１５】ＥＣＵ２〜４で実行される第２実施形態の異常検出処理を表すフローチャートである。
【図１６】図１５のＳ３３３で実行されるＰｒｅ１タイムスタンプ記憶処理を説明する説明図である。
【図１７】図１５のＳ３６３で実行されるＰｒｅ２タイムスタンプ記憶処理を説明する説明図である。
【図１８】第２実施形態の異常検出処理の作用を表すタイムチャートである。
【図１９】図７のＳ５３０で実行される第２実施形態のＤＴＣ・タイムスタンプ出力処理を表すフローチャートである。
【図２０】第２実施形態のＤＴＣ・タイムスタンプ出力処理の作用及び診断装置の表示内容を説明する説明図である。
【図２１】図１０のＳ７３０で実行される第２実施形態のＰｒｅタイムスタンプ出力処理を表すフローチャートである。
【図２２】第２実施形態のＰｒｅタイムスタンプ出力処理の作用及び診断装置の表示内容を説明する説明図である。
【符号の説明】
【０１６９】
１〜４…ＥＣＵ（電子制御ユニット）、１１…通信線、１３…診断装置、１５…ＣＰＵ、１６…ＲＯＭ、１７…ＳＲＡＭ（スタンバイＲＡＭ）、１８…ＮＲＡＭ（通常のＲＡＭ）
【図１】
2008304367.tif 000003
【図２】
2008304367.tif 000004
【図３】
2008304367.tif 000005
【図４】
2008304367.tif 000006
【図５】
2008304367.tif 000007
【図６】
2008304367.tif 000008
【図７】
2008304367.tif 000009
【図８】
2008304367.tif 000010
【図９】
2008304367.tif 000011
【図１０】
2008304367.tif 000012
【図１１】
2008304367.tif 000013
【図１２】
2008304367.tif 000014
【図１３】
2008304367.tif 000015
【図１４】
2008304367.tif 000016
【図１５】
2008304367.tif 000017
【図１６】
2008304367.tif 000018
【図１７】
2008304367.tif 000019
【図１８】
2008304367.tif 000020
【図１９】
2008304367.tif 000021
【図２０】
2008304367.tif 000022
【図２１】
2008304367.tif 000023
【図２２】
2008304367.tif 000024