(57)【要約】【課題】不揮発性メモリに多様な異常情報を保存できるようにする。【解決手段】異常情報の記憶領域が複数確保されたブロック１及び２を有する不揮発性メモリ１６０を備えた電子制御装置は、ブロック１及び２を交互に使用して、異常が検知されたとき、その異常に係る異常情報を記憶領域に順次保存すると共に、異常の種別ごとに記憶領域に保存した異常情報の個数をカウントする。そして、電子制御装置は、複数の記憶領域のすべてに異常情報が保存された状態で異常（Ｂ異常）が検知されると、異常の種別ごとにカウントされた個数が最大の異常情報（Ａ異常）が保存されている記憶領域に、新たな異常に関する異常情報（Ｂ異常）を上書きする。【選択図】図１１
2020075646.tif 000002
【特許請求の範囲】
【請求項１】
異常情報の記憶領域が複数確保された不揮発性メモリを備えた電子制御装置であって、
異常が検知されたとき、当該異常に関する異常情報を前記記憶領域に順次保存すると共に、前記異常の種別ごとに前記記憶領域に保存した異常情報の個数をカウントし、
前記複数の記憶領域のすべてに異常情報が保存された状態で異常が検知されると、前記異常の種別ごとにカウントされた個数が最大の異常情報が保存されている記憶領域に、新たな異常に関する異常情報を上書きする、
電子制御装置。
【請求項２】
前記異常情報は、前記異常が検知される前の所定時間に亘る車両データである、
請求項１に記載の電子制御装置。
【請求項３】
前記異常情報は、前記異常が検知される前の所定時点における車両データを基準値として、当該基準値と同一値を有する他の車両データを圧縮した状態で保存される、
請求項２に記載の電子制御装置。
【請求項４】
前記基準値は、時系列で最古の車両データである、
請求項３に記載の電子制御装置。
【請求項５】
前記車両データは、前記基準値を中心とした所定範囲内にあれば同一値であるとみなされる、
請求項３又は請求項４に記載の電子制御装置。
【請求項６】
前記異常情報は、複数種類の車両データのうち、検知された異常の相関関係に応じて選別された種類の車両データを含んでいる、
請求項１〜請求項５のいずれか１つに記載の電子制御装置。
【請求項７】
異常が検知されたとき、当該異常に伴って発生する他の種別の異常に関する異常情報の保存をスキップする、
請求項１〜請求項６のいずれか１つに記載の電子制御装置。
【請求項８】
前記異常の種別ごとにカウントされた個数が最大の異常情報が複数ある場合、前記車両データの類似性を考慮して、当該類似性がある複数の異常情報の中から所定規則に則って選択された異常情報が保存されている記憶領域に、新たな異常に関する異常情報を上書きする、
請求項１〜請求項７のいずれか１つに記載の電子制御装置。
【請求項９】
前記異常の種別に応じた重み付け値を考慮して、前記異常情報の個数をカウントする、
請求項１〜請求項８のいずれか１つに記載の電子制御装置。
【請求項１０】
前記新たな異常の種別を考慮して、前記異常情報の個数をカウントする、
請求項１〜請求項９のいずれか１つに記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動車に搭載された電子制御装置に関する。
【背景技術】
【０００２】
自動車に搭載された電子制御装置は、各種のセンサ及びアクチュエータなどの異常を検知すると、異常検知前の所定時間に亘る車両データを「フリーズフレームデータ」として、ＥＥＰＲＯＭ（Electrical Erasable Programmable Read Only Memory）やフラッシュメモリなどの不揮発性メモリに保存する機能を有している。電子制御装置の不揮発性メモリは、車載機器を制御するプログラムやその制御定数などを格納するため、フリーズフレームデータを保存するための領域を大きくすることは困難である。そこで、特開２０１３−１８１５１２号公報（特許文献１）に記載されるように、複数の記憶領域に対して、重要性が高い異常に関するフリーズフレームデータを優先的に保存する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１８１５１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、複数の記憶領域に対して重要性が高い異常に関するフリーズフレームデータを優先的に保存すると、例えば、重要性が高い異常が連続して検知された場合、複数の記憶領域に同一の異常に関するフリーズフレームデータのみが保存されてしまうおそれがある。この場合、他の異常が検知されても、これに関するフリーズフレームデータが不揮発性メモリに保存されず、その原因を突き止めることができなくなってしまう。
【０００５】
そこで、本発明は、不揮発性メモリに多様な異常情報を保存可能とした、電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
このため、異常情報の記憶領域が複数確保された不揮発性メモリを備えた電子制御装置は、異常が検知されたとき、その異常に関する異常情報を記憶領域に順次保存すると共に、異常の種別ごとに記憶領域に保存した異常情報の個数をカウントする。また、電子制御装置は、複数の記憶領域のすべてに異常情報が保存された状態で異常が検知されると、異常の種別ごとにカウントされた個数が最大の異常情報が保存されている記憶領域に、新たな異常に関する異常情報を上書きする。
【発明の効果】
【０００７】
本発明によれば、不揮発性メモリに多様な異常情報を保存することができる。
【図面の簡単な説明】
【０００８】
【図１】電子制御装置の一例を示す概略構成図である。
【図２】フリーズフレームデータを保存する記憶領域のデータ構造図である。
【図３】フリーズフレームデータの一例を示す説明図である。
【図４】揮発性メモリに保存される車両データの一例を示す説明図である。
【図５】フリーズフレームデータ保存処理の一例を示すフローチャートである。
【図６】第１回目の異常としてＺ異常が検知された場合のフリーズフレームデータ保存手順の説明図である。
【図７】第２回目の異常としてＡ異常が検知された場合のフリーズフレームデータ保存手順の説明図である。
【図８】第３回目の異常としてＢ異常が検知された場合のフリーズフレームデータ保存手順の説明図である。
【図９】第４回目の異常としてＡ異常が検知された場合のフリーズフレームデータ保存手順の説明図である。
【図１０】第５回目の異常としてＡ異常が検知された場合のフリーズフレームデータ保存手順の説明図である。
【図１１】第６回目の異常としてＢ異常が検知された場合のフリーズフレームデータ保存手順の説明図である。
【図１２】フリーズフレームデータの具体例を示す説明図である。
【図１３】圧縮したフリーズフレームデータの一例を示す説明図である。
【図１４】圧縮したフリーズフレームデータの他の例を示す説明図である。
【図１５】スキップ数適用回数テーブルの一例を示す説明図である。
【図１６】スキップ数適用回数テーブルを用いて圧縮したフリーズフレームデータの一例を示す説明図である。
【図１７】不感帯エリアテーブルの一例を示す説明図である。
【図１８】不感帯エリアテーブルを用いて圧縮したフリーズフレームデータの一例を示す説明図である。
【図１９】不感帯エリアテーブルを用いて圧縮したフリーズフレームデータの他の例を示す説明図である。
【図２０】取得データ一覧テーブルの一例を示す説明図である。
【図２１】取得データ一覧テーブルを用いて圧縮したフリーズフレームデータの一例を示す説明図である。
【図２２】取得データ一覧テーブルの他の例を示す説明図である。
【図２３】取得データ一覧テーブルを用いて圧縮したフリーズフレームデータの他の例を示す説明図である。
【図２４】グルーピングテーブルの一例を示す説明図である。
【図２５】グルーピングテーブルを用いて保存する異常を選択する方法の説明図である。
【図２６】揮発性メモリに有用な車両データを保存する方法の説明図である。
【図２７】少ない記憶領域で複数の車両データを保存可能にする方法の説明図である。
【図２８】類似データの基本的な説明図である。
【図２９】類似データ判定テーブルの一例を示す説明図である。
【図３０】サンプルタイムテーブルの一例を示す説明図である。
【図３１】除外判定テーブルの一例を示す説明図である。
【図３２】サンプルタイムテーブルの他の例を示す説明図である。
【図３３】重み付けテーブルの一例を示す説明図である。
【図３４】重み付けテーブルを用いて削除するフリーズフレームデータを選択する方法の説明図である。
【図３５】考慮規定テーブルの一例を示す説明図である。
【図３６】カウンタ値及び考慮規定テーブルを参照して削除対象を選択する方法の説明図である。
【発明を実施するための形態】
【０００９】
以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。
図１は、自動車に搭載された電子制御装置１００の一例を示す。
【００１０】
電子制御装置１００は、例えば、自動変速機、燃料ポンプ、バルブタイミングを電動で変更する電動ＶＴＣ（Valve Timing Control）、圧縮比を変更するＶＣＲ（Variable Compression Ratio）などを電子制御する電子デバイスである。電子制御装置１００は、プロセッサ１２０と、揮発性メモリ１４０と、不揮発性メモリ１６０と、通信回路１８０と、入出力回路２００と、これらを相互通信可能に接続する内部バス２２０と、を備えている。なお、以下においては、自動変速機を電子制御する電子制御装置１００について説明するが、電子制御装置１００は他の車載機器を制御してもよい。
【００１１】
プロセッサ１２０は、ソフトウエアプログラムに記述された命令セットを実行するハードウエアであって、例えば、ＣＰＵ（Central Processing Unit)などからなる。揮発性メモリ１４０は、電源供給を遮断するとデータが消失する半導体メモリであって、例えば、ＤＲＡＭ（Dynamic Random Access Memory）、ＳＲＡＭ（Static Random Access Memory）などからなる。不揮発性メモリ１６０は、電源供給を遮断してもデータが保持されると共に電気的にデータを書き換え可能な半導体メモリであって、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）１６２及びフラッシュメモリ１６４を含んでいる。ここで、不揮発性メモリ１６０では、一般的に、故障情報や学習値などのデータを逐次保存する場合にはＥＥＰＲＯＭ１６２が使用され、制御プログラムなどのデータを保存する場合にはフラッシュメモリ１６４が使用されるが、このような使用方法に限定されない。なお、以下の説明においては、ＥＥＰＲＯＭ１６２及びフラッシュメモリ１６４のどちらを使用してもよい場合、説明の簡略化のため「不揮発性メモリ１６０」と表現する。
【００１２】
通信回路１８０は、車載ネットワークの一例として挙げられるＣＡＮ（Controller Area Network）などを介して、他の電子制御装置及び車載機器（図示せず）などと通信するためのデバイスであって、例えば、ＣＡＮトランシーバなどからなる。入出力回路２００は、各種のセンサ又はスイッチなどからアナログ信号又はデジタル信号を読み込むと共に、アクチュエータなどにアナログ又はデジタルの駆動信号を出力するデバイスであって、例えば、Ａ／Ｄコンバータ、Ｄ／Ｄコンバータなどからなる。内部バス２２０は、各デバイス間でデータを交換するための共通の経路であって、具体的には、アドレスを転送するためのアドレスバス、データを転送するためのデータバス、アドレスバスやデータバスで実際に入出力を行うタイミングや制御情報を遣り取りするコントロールバスを含んでいる。
【００１３】
不揮発性メモリ１６０には、図２に示すように、異常検知前の所定時間に亘る車両データである「フリーズフレームデータ」を複数記憶するために、２つのブロック１及びブロック２が予め確保されている。ブロック１及びブロック２は、夫々、５つのフリーズフレームデータを保存可能とするために、５つの記憶領域１〜５に区画されている。ここで、２つのブロック１及びブロック２を使用する理由は、これらを交互に使用することで、例えば、何らかの理由により一方のブロックへのフリーズフレームの保存が正常に行われなくとも、他方のブロックに保存されたフリーズフレームデータを利用することができるからである。不揮発性メモリ１６０には、２つのブロック１及びブロック２に限らず、３つ以上のブロックを確保してもよく、また、各ブロックは、５つの記憶領域に限らず、任意数の記憶領域に区画されていてもよい。なお、フリーズフレームデータが、異常情報の一例として挙げられる。
【００１４】
図３は、自動変速機の制御機能の異常に関するフリーズフレームデータの一例を示す。
フリーズフレームデータは、各種の車両データについて、異常検知前の所定時間に亘るセンサ値又は分解能を考慮してセンサ値から求められた物理値などが関連付けられた、複数のレコードを含んで構成されている。ここで、各種の車両データとしては、例えば、レンジ、エンジン回転、プライマリ回転、セカンダリ回転、車速、実レシオ、目標レシオ、電圧、Ｇセンサ、ソレノイド１の電流、ソレノイド２の電流、ソレノイド３の電流、アクセルペダルセンサの踏み込み角度のＡ／Ｄ変換値、ＣＡＮ受信値及び故障情報を一例として挙げているが、この限りではない。また、異常検知前の所定時間としては、異常検知３．０秒前、２．５秒前、２．０秒前、１．５秒前、１．０秒前、０．５秒前及び異常検知時を一例として挙げているが、異常検知時を基点として、任意の時間間隔における複数のデータとしてもよい。なお、異常の有無は、電子制御装置１００の作動中に、例えば、公知のＯＢＤ（On-Board Diagnostics）機能などによって検知することができる。
【００１５】
図４は、電子制御装置１００が起動されたことを契機として、揮発性メモリ１４０に保存される複数種類の車両データの一例を示している。車両データは、例えば、各種のセンサなどの出力値又はその物理値について、現在時点（０．０秒前）を基点として、０．５秒間隔で過去に遡って７つ保存されている。この車両データは、０．５秒ごとに逐次更新され、最新のものが保存されるようになっている。従って、異常が検知されたことを契機として、例えば、揮発性メモリ１４０に保存された車両データの更新を中止したり、これを別の記憶領域にコピーして確定したりすれば、異常検知前の所定時間に亘るフリーズフレームデータを取得することができる。
【００１６】
図５は、電子制御装置１００が、イグニッションスイッチがＯＮからＯＦＦになったことを契機として実行する、フリーズフレームデータ保存処理の一例を示している。ここで、フリーズフレームデータ保存処理の実行に際して、フリーズフレームデータを保存する保存ブロックとして、不揮発性メモリ１６０に確保されたブロック１及びブロック２が交互に指定される。また、フリーズフレームデータ保存処理の実行に先だって、異常種別（例えば、制御機能）ごとに、ブロック１又はブロック２に保存したフリーズフレームデータの個数をカウントするカウンタが０に設定されている。
【００１７】
ステップ１（図では「Ｓ１」と略記する。以下同様。）では、電子制御装置１００のプロセッサ１２０が、例えば、ＯＢＤ機能によって、イグニッションスイッチがＯＮからＯＦＦになるまでのドライビングサイクル中に異常が検知されたか否かを判定する。そして、電子制御装置１００のプロセッサ１２０は、ドライビングサイクル中に異常が検知されたと判定すれば、処理をステップ２へと進める（Ｙｅｓ）。一方、電子制御装置１００のプロセッサ１２０は、ドライビングサイクル中に異常が検知されないと判定すれば、フリーズフレームデータ保存処理を終了させる（Ｎｏ）。
【００１８】
ステップ２では、電子制御装置１００のプロセッサ１２０が、保存ブロックが未消去であるか否か、要するに、保存ブロックにフリーズフレームデータを保存する準備が完了しているか否かを判定する。そして、電子制御装置１００のプロセッサ１２０は、保存ブロックが未消去であると判定すれば、処理をステップ３へと進め（Ｙｅｓ）、保存ブロックを消去する。一方、電子制御装置１００のプロセッサ１２０は、保存ブロックが消去済であると判定すれば、処理をステップ４へと進める（Ｎｏ）。
【００１９】
ステップ４では、電子制御装置１００のプロセッサ１２０が、他のブロックが満杯か否か、即ち、保存ブロックとして選択されなかったブロックの記憶領域１〜５のすべてにフリーズフレームデータが保存されているか否かを判定する。そして、電子制御装置１００のプロセッサ１２０は、他のブロックが満杯であると判定すれば、処理をステップ５へと進める（Ｙｅｓ）。一方、電子制御装置１００のプロセッサ１２０は、他のブロックが満杯でないと判定すれば、処理をステップ６へと進める（Ｎｏ）。
【００２０】
ステップ５では、電子制御装置１００のプロセッサ１２０が、異常種別ごとのカウンタを参照し、そのカウンタ値が最大のフリーズフレームデータを選択する。このとき、カウンタ値が最大のフリーズフレームデータが複数存在すれば、電子制御装置１００のプロセッサ１２０は、例えば、タイムスタンプが最古のフリーズフレームデータを選択すればよい。
【００２１】
ステップ６では、電子制御装置１００のプロセッサ１２０が、他のブロックに保存されているフリーズフレームデータに新たな異常に関するフリーズフレームデータを付加し、これを保存ブロックに保存する。具体的には、電子制御装置１００のプロセッサ１２０は、他のブロックの記憶領域１〜５に保存されているフリーズフレームデータを保存ブロックの記憶領域１〜５にコピーする。このとき、保存ブロックの記憶領域１〜５に空きがあれば、電子制御装置１００のプロセッサ１２０は、フリーズフレームデータのコピーに続けて、新たな異常に関するフリーズフレームデータを保存する。一方、保存ブロックの記憶領域１〜５に空きがなければ、電子制御装置１００のプロセッサ１２０は、ステップ５で選択されたフリーズフレームデータが保存されていた記憶領域に、新たな異常に関するフリーズフレームデータを上書きする。
【００２２】
ステップ７では、電子制御装置１００のプロセッサ１２０が、異常種別ごとのカウンタ値を更新する。具体的には、電子制御装置１００のプロセッサ１２０は、新たな異常に関するフリーズフレームデータを保存する前に他のブロックが満杯でなかった場合、新たな異常に関連付けられたカウンタ値をインクリメントする。また、電子制御装置１００のプロセッサ１２０は、新たな異常に関するフリーズフレームデータを保存する前に他のブロックが満杯であった場合、ステップ５で選択されたフリーズフレームデータに関連付けられたカウンタ値をデクリメントし、新たな異常に関連付けられたカウンタ値をインクリメントする。従って、異常種別ごとのカウンタ値は、不揮発性メモリ１６０のブロック１又はブロック２に保存されている、異常種別ごとのフリーズフレームデータの個数を示している。
【００２３】
かかるフリーズフレームデータ保存処理によれば、イグニッションスイッチがＯＮからＯＦＦになったことを契機として、ドライビングサイクル中に異常が検知されたか否かが判定される。ドライビングサイクル中に異常が検知されると、必要に応じて、フリーズフレームデータを保存する保存ブロックにデータを保存する準備として、保存ブロックが消去される。そして、他のブロックが満杯であれば、そこに保存されている５つのフリーズフレームデータのうち、異常種別ごとのカウンタ値が最大のフリーズフレームデータが選択され、これが保存対象から除外される。その後、他のブロックに保存されているフリーズフレームデータについて、選択されたフリーズフレームデータが保存されている記憶領域に新たな異常に関するフリーズフレームデータが上書きされるように、これを保存ブロックに保存する。また、保存ブロックに保存されているフリーズフレームデータが変化したので、必要に応じて、異常種別ごとのカウンタ値が適宜更新される。
【００２４】
他のブロック、即ち、前回のフリーズフレームデータ保存処理で保存ブロックとして選択されていたブロックが満杯になっていれば、上述したように、異常種別ごとのカウンタ値が最大のフリーズフレームデータが保存対象から除外される。即ち、カウンタ値が最大のフリーズフレームデータは、同一の異常種別のフリーズフレームデータであるため、その内容が同一又は類似していると考えることができる。このため、記憶領域に限りのあるブロック１又はブロック２に、異なる異常種別のフリーズフレームデータを保存することが可能となり、不揮発性メモリ１６０に多様なフリーズフレームデータを保存することができる。多様なフリーズフレームデータを保存できれば、例えば、サービス工場などでツールを使用してフリーズフレームデータを読み出して解析することで、異常発生原因などを突き止めることができる。
【００２５】
フリーズフレームデータ保存処理においては、保存ブロックを消去してからフリーズフレームデータを書き込んでいる。このようにすれば、制御が単純化され、例えば、制御を実現するプログラムコードにバグが入り込み難くなり、信頼性を向上させることができる。但し、保存ブロックに対して単純にフリーズフレームデータを書き込んで保存できるのであれば、保存ブロックを必ずしも消去しなくてもよい。
【００２６】
ここで、フリーズフレームデータ保存処理の理解を容易ならしめることを目的として、具体的な一例を挙げて説明する。以下の具体例においては、Ｚ異常、Ａ異常及びＢ異常が発生し、電子制御装置１００の初期状態では、Ｚ異常、Ａ異常及びＢ異常をカウントするカウンタ値がすべて０に初期化され、かつ、不揮発性メモリ１６０のブロック１及びブロック２の記憶領域１〜５が消去されているものとする。また、初期状態では、フリーズフレームデータを保存する保存ブロックとして、ブロック１が選択されているものとする。
【００２７】
第１回目の異常としてＺ異常が検知されると、図６に示すように、ブロック１の記憶領域１に対して、Ｚ異常に関するフリーズフレームデータが保存される。このとき、Ｚ異常をカウントするカウンタ値がインクリメントされて「１」となる。また、次回の異常検知に備えて、フリーズフレームデータを保存する保存ブロックとして、ブロック２が選択される。
【００２８】
第２回目の異常としてＡ異常が検知されると、図７に示すように、ブロック２の記憶領域１に対して、ブロック１の記憶領域１に保存されているＺ異常に関するフリーズフレームデータがコピーされると共に、ブロック２の記憶領域２に対して、Ａ異常に関するフリーズフレームデータが保存される。このとき、Ａ異常をカウントするカウンタ値がインクリメントされて「１」となる。また、次回の異常検知に備えて、フリーズフレームデータを保存する保存ブロックとして、ブロック１が選択される。
【００２９】
第３回目の異常としてＢ異常が検知されると、保存ブロックであるブロック１にフリーズフレームデータが保存されているため、図８に示すように、ブロック１が消去される。そして、ブロック１の記憶領域１及び２に対して、ブロック２の記憶領域１及び２に保存されているＺ異常及びＡ異常に関するフリーズフレームデータがコピーされると共に、ブロック１の記憶領域３に対して、Ｂ異常に関するフリーズフレームデータが保存される。このとき、Ｂ異常をカウントするカウンタ値がインクリメントされて「１」となる。また、次回の異常検知に備えて、フリーズフレームデータを保存する保存ブロックとして、ブロック２が選択される。
【００３０】
第４回目の異常としてＡ異常が検知されると、保存ブロックであるブロック２にフリーズフレームデータが保存されているため、図９に示すように、ブロック２が消去される。そして、ブロック２の記憶領域１〜３に対して、ブロック１の記憶領域１〜３に保存されているＺ異常、Ａ異常及びＢ異常に関するフリーズフレームデータがコピーされると共に、ブロック２の記憶領域４に対して、Ａ異常に関するフリーズフレームデータが保存される。このとき、Ａ異常をカウントするカウント値がインクリメントされて「２」となる。また、次回の異常検知に備えて、フリーズフレームデータを保存する保存ブロックとして、ブロック１が選択される。
【００３１】
第５回目の異常としてＡ異常が検知されると、保存ブロックであるブロック１にフリーズフレームデータが保存されているため、図１０に示すように、ブロック１が消去される。そして、ブロック１の記憶領域１〜４に対して、ブロック２の記憶領域１〜４に保存されているＺ異常、Ａ異常、Ｂ異常及びＡ異常に関するフリーズフレームデータがコピーされると共に、ブロック１の記憶領域５に対して、Ａ異常に関するフリーズフレームデータが保存される。このとき、Ａ異常をカウントするカウント値がインクリメントされて「３」となる。また、次回の異常検知に備えて、フリーズフレームデータを保存する保存ブロックとして、ブロック２が選択される。
【００３２】
第６回目の異常としてＢ異常が検知されると、保存ブロックであるブロック２にフリーズフレームデータが保存されているため、図１１に示すように、ブロック２が消去される。そして、ブロック１に保存されているフリーズフレームデータをブロック２にコピーするのであるが、ブロック１の記憶領域１〜５のすべてにフリーズフレームデータが保存されているため、新たなＢ異常に関するフリーズフレームデータを保存する記憶領域がない。従来技術であれば、最古のフリーズフレームデータ、即ち、ブロック１の記憶領域１に保存されているＺ異常に関するフリーズフレームデータに代えて、Ｂ異常に関するフリーズフレームデータを上書きする。しかし、このようにすると、せっかく保存したＺ異常に関するフリーズフレームデータがなくなり、多様性を損ねてしまう。
【００３３】
そこで、カウンタを参照し、カウント値が最大のＡ異常のうち最古のもの、即ち、記憶領域２に保存されているＡ異常に関するフリーズフレームデータに代えて、Ｂ異常に関するフリーズフレームデータを保存する。具体的には、ブロック２の記憶領域１，３〜５に対して、ブロック１の記憶領域１，３〜５に保存されているＺ異常、Ｂ異常、Ａ異常及びＡ異常に関するフリーズフレームデータがコピーされると共に、ブロック２の記憶領域２に対して、新たなＢ異常に関するフリーズフレームデータが上書きされる。このとき、Ａ異常をカウントするカウント値がデクリメントされて「２」となると共に、Ｂ異常をカウントするカウント値がインクリメントされて「２」となる。また、次回の異常検知に備えて、フリーズフレームデータを保存する保存ブロックとして、ブロック１が選択される。
【００３４】
以上説明したように、電子制御装置１００のプロセッサ１２０は、異常が検知されたとき、その異常に関するフリーズフレームデータを保存ブロックの記憶領域１〜５に順次保存すると共に、異常種別ごとに記憶領域１〜５に保存したフリーズフレームデータの個数をカウントする。また、電子制御装置１００のプロセッサ１２０は、記憶領域１〜５のすべてにフリーズフレームデータが保存された状態で異常が検知されると、異常種別ごとにカウントされた個数が最大の異常情報が保存されている記憶領域に、新たな異常に関するフリーズフレームデータを上書きする。
【００３５】
不揮発性メモリ１６０に保存されるフリーズフレームデータは、各車両データに関して、センサ値又はその物理値が時系列で変化するとは限らない。図１２は、そのようなフリーズフレームデータの一例を示している。図１２に示すフリーズフレームデータにおいては、「レンジ」、「ソレノイド３の電流」、「ＣＡＮ受信値」及び「故障情報」は、異常検知前の所定時間に亘ってセンサ値又はその物理値が変化していない。このようなフリーズフレームデータを不揮発性メモリ１６０に保存すると、その記憶領域を消費するだけでなく、データ保存時間も長くなってしまう。そこで、以下のように工夫をすることで、必要な記憶領域を小さくしつつ、データ保存時間を短縮することができる。なお、データ保存時間を短縮すると、イグニッションスイッチがＯＮからＯＦＦになったことを契機として実行されるセルフシャットオフ処理に必要な時間を短縮することができる。また、データ保存時間の短縮によるバッテリ消耗の低減、消去回数及び書き込み回数の低減による不揮発性メモリ１６０の寿命延長も期待できる。
【００３６】
［工夫１］
フリーズフレームデータについて、図１３に示すように、異常検知３．０秒前の車両データを初期値として、異常検知時までに車両データが変化したか否かを示す初期値変化ビットを付加する。初期値変化ビットは、例えば、車両データが変化しないとき「０」をとり、車両データが変化するとき「１」をとる。図１３に示すフリーズフレームデータでは、異常検知３．０秒前の車両データと異常検知２．５秒前の車両データとの間に初期値変化ビットが付加されているが、任意の位置に初期値変化ビットを付加することもできる。ここで、異常検知３．０秒前の車両データを初期値とする理由は、異常検知時（異常発生時）に車両データの変化が大きいためである。
【００３７】
図１２に示すフリーズフレームデータでは、「レンジ」、「ソレノイド３の電流」、「ＣＡＮ受信値」及び「故障情報」が所定時間に亘って変化していない。このため、図１３に示すフリーズフレームデータでは、「レンジ」、「ソレノイド３の電流」、「ＣＡＮ受信値」及び「異常情報」に関連付けられた初期値変化ビットが「０（変化なし）」に設定され、それ以降の車両データが省略されている。即ち、フリーズフレームデータは、初期値変化ビットというパラメータを付加することで圧縮可能となり、必要な記憶領域の削減及びデータ保存時間の短縮を図ることができる。
【００３８】
［工夫２］
フリーズフレームデータについて、図１４に示すように、初期値変化ビットに加え、異常検知３．０秒前の車両データを初期値として、その初期値から同一値の車両データがいくつ連続しているかを示すスキップ数を付加する。ここで、初期値変化ビットは１ビットで表現できるため、初期値変化ビット及びスキップ数に１バイト使用する場合、スキップ数を７ビット（０〜１２７）で表現することができる。なお、図１４に示すフリーズフレームデータでは、異常検知３．０秒前の車両データと異常検知２．５秒前の車両データとの間に初期値変化ビット及びスキップ数が付加されているが、任意の位置に初期値変化ビット及びスキップ数を付加することもできる。
【００３９】
図１２に示すフリーズフレームデータでは、「エンジン回転」、「プライマリ回転」、「実レシオ」、「目標レシオ」、「Ｇセンサ」、「ソレノイド１の電流」及び「ソレノイド２の電流」は、夫々、初期値から時系列で「１回」、「２回」、「５回」、「４回」、「２回」、「３回」及び「１回」変化していない。このため、図１４に示すフリーズフレームデータでは、「エンジン回転」、「プライマリ回転」、「実レシオ」、「目標レシオ」、「Ｇセンサ」、「ソレノイド１の電流」及び「ソレノイド２の電流」に関連付けられたスキップ数が、夫々、「１」、「２」、「５」、「４」、「２」、「３」及び「１」に設定され、それ以降の車両データのうちスキップ数に対応する車両データが省略されている。一例を示すと、「実レシオ」は、そのスキップ数が５であるため、初期値と同じ値をとる異常検知２．５秒前、２．０秒前、１．５秒前、１．０秒前及び０．５秒前の車両データが省略され、異常検知時の車両データのみとなっている。従って、フリーズフレームデータは、初期値変化ビットに加えてスキップ数というパラメータを付加することでさらなる圧縮が可能となり、必要な記憶領域の削減及びデータ保存時間の短縮を図ることができる。
【００４０】
図１４に示すフリーズフレームデータでは、例えば、スキップ数が「１」の場合、必要な記憶領域の削減の効果が弱く、また、データ圧縮に起因する処理速度の低下が発生する可能性がある。そこで、図１５に示すように、不揮発性メモリ１６０の所定領域に「スキップ数適用回数テーブル」を予め保存しておき、そこに設定されている回数を超える場合にのみ、車両データを省略するようにしてもよい。なお、図１５に示すスキップ数適用回数テーブルでは、回数として「２」が設定されている。
【００４１】
図１４に示す圧縮後のフリーズフレームデータにおいて、「エンジン回転」、「プライマリ回転」、「Ｇセンサ」及び「ソレノイド２の電流」に関連付けられたスキップ数は、夫々、「１」、「２」、「２」及び「１」となっている。これらの車両データは、スキップ数適用回数テーブルに設定された回数「２」を超えていないため、初期値以降の車両データの省略が行われず、図１６に示すように、異常検知２．５秒前、２．０秒前、１．５秒前、１．０秒前、０．５秒前及び異常検知時のすべての車両データが含まれている。このようにすれば、処理速度を低下させる車両データの省略を回避して、データ圧縮に起因する処理速度の低下を抑制することができる。なお、図１６に示すフリーズフレームデータでは、エンジン回転、プライマリ回転、Ｇセンサ及びソレノイド２の電流に関連付けられたスキップ数が０となっていないが、これらを０としてもよい。また、例えば、サービス工場などでツールを使用してフリーズフレームデータを読み出すとき、スキップ数適用回数テーブルも併せて参照すれば、圧縮されたフリーズフレームデータを解凍することができる（以下同様）。
【００４２】
［工夫３］
不揮発性メモリ１６０の所定領域に、図１７に示すように、各車両データに関連付けられた車両データの初期値からの最小変化量を設定する「不感帯エリアテーブル」を予め保存しておき、初期値に続く車両データが最小変化量を超えていなければ、その車両データは変化していないとみなすようにしてもよい。図１７に示す不感帯エリアテーブルでは、「レンジ」、「エンジン回転」及び「プライマリ回転」の最小変化量は、夫々、「０」、「５０」及び「６０」に設定されているが、他の車両データも同様に最小変化量が設定されている。従って、「レンジ」では、最小変化量が０に設定されているため不感帯がなく、「エンジン回転」では、初期値から５０以下の変化量のときには初期値と同一とみなし、「プライマリ回転」では、初期値から６０以下の変化量のときには初期値と同一とみなすこととなる。
【００４３】
図１２に示すフリーズフレームデータでは、「エンジン回転」は、異常検知３．０秒前の初期値が１０００であって、異常検知２．５秒前、２．０秒前、１．５秒前、１．０秒前、０．５秒前及び異常検知時の車両データが、夫々、１０００、１００２、１００３、１０１０、９９５及び１００１となっている。この場合、初期値に対する異常検知２．５秒前から異常検知時までのエンジン回転の変化量は、不感帯エリアテーブルに設定されている５０以下であるため、これらは初期値と同一とみなすことができる。このため、図１８に示すように、エンジン回転に関する車両データは、初期値から変化していないと判定され、エンジン回転に関連付けられた初期値変化ビットが０（変化なし）に設定され、それ以降の車両データが省略されている。
【００４４】
一方、図１２に示すフリーズフレームデータでは、「プライマリ回転」は、異常検知３．０秒前の初期値が１２００であって、異常検知２．５秒前、２．０秒前、１．５秒前、１．０秒前、０．５秒前及び異常検知時の車両データが、夫々、１２００、１２００、１２０１、１２０３、１１９８及び０となっている。この場合、初期値に対する異常検知時のプライマリ回転の変化量は、不感帯エリアテーブルに設定されている６０を超えているため、これらは初期値と同一とみなすことができない。このため、図１８に示すように、プライマリ回転は、初期値から変化していると判定され、フリーズフレームデータには初期値に続くすべての車両データが含まれている。なお、他の異常検知対象についても、同様な処理が行われる。
【００４５】
図１４に示すフリーズフレームデータでは、「エンジン回転」に関連付けられたスキップ数が「１」であって、異常検知２．５秒前のエンジン回転が省略され、異常検知２．０秒前、１．５秒前、１．０秒前、０．５秒前及び異常検知時のエンジン回転は、夫々、１００２、１００３、１０１０、９９５及び１００１となっている。この場合、初期値に対する異常検知２．５秒前から異常検知時までのエンジン回転の変化量は、不感帯エリアテーブルに設定されている５０以下であるため、これらは初期値と同一とみなすことができる。このため、図１９に示すように、エンジン回転は、初期値から変化していないと判定され、エンジン回転に関連付けられた初期値変化ビットが０（変化なし）に設定され、それ以降のエンジン回転が省略されている。なお、図１９に示すフリーズフレームデータでは、エンジン回転及びプライマリ回転に関連付けられたスキップ数が「１」及び［５］となっているが、これらを実際に省略した車両データの個数としてもよい。
【００４６】
一方、図１４に示すフリーズフレームデータでは、「プライマリ回転」に関連付けられたスキップ数が「２」であって、異常検知２．５秒前及び２．０秒前のプライマリ回転が省略され、異常検知１．５秒前、１．０秒前、０．５秒前及び異常検知時のエンジン回転は、夫々、１２０１、１２０３、１１９８及び０となっている。この場合、初期値に対する異常検知１．５秒前から０．５秒前までのプライマリ回転の変化量は、不感帯エリアテーブルに設定されている６０以下であるため、これらは初期値と同一とみなすことができる。このため、図１９に示すように、プライマリ回転は、初期値から異常検知０．５秒前まで変化していないと判定され、プライマリ回転に関連付けられたスキップ数が５に設定され、異常検知時のプライマリ回転のみとなっている。
【００４７】
このように不感帯を設けることで、車両データの多少の変化は無視されて同一とみなされるので、フリーズフレームデータの圧縮が促進され、データ保存時間をさらに短縮させることができる。
【００４８】
［工夫４］
不揮発性メモリ１６０の所定領域に、図２０に示すように、異常名に対応付けて、各車両データを保存するか否かを設定する「取得データ一覧テーブル」を予め格納しておく。「取得データ一覧テーブル」は、対象となるすべての異常について設けられている。図２０に示す取得データ一覧テーブルは、Ａ／Ｄ変換異常に関して、これと相関関係が強い車両データが「保存する」に設定され、これと相関関係が弱い車両データが「保存しない」に設定されている。具体的には、Ａ／Ｄ変換異常が検知されたとき、その影響を受けない又は受け難い「ＣＡＮ受信値」が不要であることを考慮し、取得データ一覧テーブルが設定されている。
【００４９】
このようにすれば、Ａ／Ｄ変換異常が検知されたとき、図２１に示すように、Ａ／Ｄ変換異常と相関関係が弱いＣＡＮ受信値が省略され、他の車両データのみを含むフリーズフレームデータが不揮発性メモリ１６０に保存される。従って、このような工夫をすることで、図１２に示すフリーズフレームデータの圧縮率を向上させることができ、不揮発性メモリ１６０にフリーズフレームデータを保存するために必要な時間を短縮することができる。
【００５０】
他の異常についても説明すると、取得データ一覧テーブルには、図２２に示すように、ＣＡＮ受信異常に関して、これと相関関係が強い車両データが「保存する」に設定され、これと相関関係が弱い車両データが「保存しない」に設定されている。具体的には、ＣＡＮ受信異常が検知されたとき、その影響を受けない又は受け難い「エンジン回転」、「プリマリ回転」、「セカンダリ回転」及び「踏込ＡＤ値」が不要であることを考慮し、取得データ一覧テーブルが設定されている。
【００５１】
このようにすれば、ＣＡＮ変換異常が検知されたとき、図２３に示すように、ＣＡＮ変換異常と相関関係が弱いエンジン回転、プライマリ回転、セカンダリ回転及び踏込ＡＤ値が省略され、他の車両データのみを含むフリーズフレームデータが不揮発性メモリ１６０に保存される。従って、このような工夫をすることで、図１２に示すフリーズフレームデータの圧縮率を向上させることができ、不揮発性メモリ１６０にフリーズフレームデータを保存するために必要な時間を短縮することができる。
【００５２】
［工夫５］
上記の技術的思想は、同一又は類似のフリーズフレームデータの保存を極力避けることで、限りある記憶領域に対して多様なフリーズフレームデータを保存できるようにすることを目的としている。ところで、例えば、Ａ／Ｄ変換機能に異常が発生した後には、油温センサの検出値が正常にＡ／Ｄ変換されず、油温センサが正常であるにもかかわらず、これが異常であると検知されてしまうおそれがある。
【００５３】
そこで、不揮発性メモリ１６０の所定領域に、図２４に示すように、各異常に関連付けて、他の異常に関するフリーズフレームデータを保存するか否かを設定した、グルーピングテーブルを予め保存しておく。図２４に示すグルーピングテーブルでは、Ａ／Ｄ変換異常が検知された後には、Ａ／Ｄ変換異常と相関関係が弱いＣＡＮ受信異常及びＣＡＮ送信異常に関するフリーズフレームデータを保存し、Ａ／Ｄ変換異常と相関関係が強い油圧センサ異常及びアクセル開度異常に関するフリーズフレームデータを保存しないことが設定されている。また、ＣＡＮバスオフ異常が検知された後には、ＣＡＮバスオフ異常と相関関係が弱い油圧センサ異常及びアクセル開度異常に関するフリーズフレームデータを保存し、ＣＡＮバスオフ異常と相関関係が強いＣＡＮ受信異常及びＣＡＮ送信異常に関するフリーズフレームデータを保存しないことが設定されている。なお、他の異常に関しても、同様に設定されている。
【００５４】
このようにすれば、図２５に示すように、イグニッションスイッチがＯＮからＯＦＦになるまでのドライビングサイクル中に異常が発生した場合、あるドライビングサイクルにおいてＡ／Ｄ変換異常が発生すると、それ以降のドライビングサイクルで油温センサ異常又はアクセル開度異常が発生しても、そのフリーズフレームデータは不揮発性メモリ１６０に保存されない。また、ＣＡＮバスオフ異常が発生すると、それ以降のドライビングサイクルでＣＡＮ受信異常又はＣＡＮ送信異常が発生しても、そのフリーズフレームデータが不揮発性メモリ１６０に保存されない。従って、不揮発性メモリ１６０に保存するフリーズフレームデータが減少し、必要な記憶領域の削減及びデータ保存時間の短縮を図ることができる。なお、このような工夫は、上記の［工夫１］〜［工夫４］と組み合わせることもできる。この場合、さらなる、必要な記憶領域の削減及びデータ保存時間の短縮を図ることができる。
【００５５】
揮発性メモリ１４０の所定領域には、上述したように、現在時点を基点とした過去の所定時間に亘る車両データが保存され、異常が検知されるまでこれが逐次更新され続けている。そして、異常検知を契機として、揮発性メモリ１４０に保存された車両データの更新が中止、即ち、車両データが確定され、イグニッションスイッチのＯＦＦによって、揮発性メモリ１４０に保存されている車両データがフリーズフレームデータとして不揮発性メモリ１６０に保存される。この場合、揮発性メモリ１４０には、ドライビングサイクルにおいて最初に発生した異常に関する車両データが保存され、その後に、故障解析などのためにより有用な異常が発生しても、その異常に関するフリーズフレームデータを不揮発性メモリ１６０に保存することができなくなってしまう。
【００５６】
そこで、図２６に示すように、揮発性メモリ１４０にフリーズフレームデータの候補となる車両データを保存する２つの記憶領域（ＲＡＭ１面目及びＲＡＭ２面目）を確保しておき、ドライビングサイクルにおいて発生した異常に関する車両データをＲＡＭ１面目に保存して確定し、ＲＡＭ２面目における車両データの更新を継続する。そして、他の異常が発生した場合、ＲＡＭ１面目に保存されている車両データより有用でなければ、その異常に関する車両データを無視（破棄）する。一方、他の異常が発生した場合、ＲＡＭ１面目に保存されている車両データより有用であれば、ＲＡＭ２面目に保存されている車両データをＲＡＭ１面目にコピーして保存する。このとき、ＲＡＭ２面目には、他の異常が検知された時点の車両データが保存されている。
【００５７】
具体的な例を挙げて説明すると、イグニッションスイッチがＯＮになってからＯＦＦになるまでのドライビングサイクルにおいて、図２６に示すように、最初にＢ異常が検知されたとする。この場合、揮発性メモリ１４０のＲＡＭ１面目に、Ｂ異常に関する車両データを保存して確定する。次に、Ｂ異常より有用でないＡ異常が検知されると、Ａ異常に関する車両データが無視され、ＲＡＭ２面目における車両データの更新が継続される。その後、Ｂ異常より有用であるＺ異常が検知されると、ＲＡＭ２面目に保存されているＺ異常発生時の車両データがＲＡＭ１面目にコピーされて保存される。
【００５８】
このようにすれば、ＲＡＭ１面目には、ドライビングサイクルにおいて最も有用な異常に関するフリーズフレームデータの候補となる車両データが保存されていることから、その後の故障原因の究明に資することができる。
【００５９】
車載機器の特徴として、例えば、Ａ／Ｄ変換異常のような電子部品の異常の場合、イグニッションスイッチをＯＮにすると即座に異常が検知されるが、その異常検知から時間をおいて（例えば、２００ｍｓ後）ＣＡＮ異常が検知されることも多い。そこで、揮発性メモリ１４０の所定領域に、図２７に示すように、異常検知時までの所定時間に亘る車両データに加えて、異常検知後の所定時間に亘る車両データを保存可能な領域を確保し、その内容を継続して更新する。このようにすれば、２つの異常が短い時間間隔で検知された場合、１つの記憶領域に２つの異常に関する車両データが重畳した状態で保存されることとなり、必要な記憶領域を削減することができる。そして、１つの異常が検知されてから他の異常が検知された場合、より有用な異常に関する車両データを記憶領域から抽出し、これをフリーズフレームデータとすることができる。
【００６０】
不揮発性メモリ１６０に確保されたブロック１又は２の記憶領域１〜５にフリーズフレームデータが保存されている状態で新たな異常が検知されると、カウント値が最大である複数の異常に関するフリーズフレームデータのいずれかを削除し、そこに新たな異常に関するフリーズフレームデータが上書きされる。削除対象のフリーズフレームデータを選択する方法として、最古のフリーズフレームデータを選択、最新のフリーズフレームデータを選択、類似データの多いフリーズフレームデータを選択、又は、圧縮率が大きいフリーズフレームデータを選択することが考えられる。ここで、圧縮率が大きいフリーズフレームデータは、各車両データについて同一値が連続しているので、圧縮率が小さいフリーズフレームデータよりも有用性が低いと考えることができる。
【００６１】
図２８に示すように、ブロック１の記憶領域１〜５にＡ異常、Ａ異常、Ｂ異常、Ｂ異常及びＡ異常が保存されている場合、Ａ異常のカウント数が「３」、Ｂ異常のカウント数が「２」であるため、Ａ異常に関するフリーズフレームデータのいずれかを選択して削除する。このとき、記憶領域１に走行中のフリーズフレームが保存され、記憶領域２及び５に停車中のフリーズフレームデータが保存されていると、停車中の車両状態は走行中の車両状態より変化が小さいと考えられるため、停車中のフリーズフレームデータを削除することが好ましい。なお、停車中のフリーズフレームデータは２つあるため、他の選択方法を組み合わせて１つ選択すればよい。
【００６２】
類似データを判定可能とするため、不揮発性メモリ１６０の所定領域に、図２９に示すように、異常名に関連付けて、少なくとも１つの車両データについて類似とみなす幅を規定した「類似データ判定テーブル」を予め保存しておく。ここで、類似データ判定テーブルは、異常の数だけ存在してもよいし、すべての異常の類似性を１つのテーブルで規定してもよい（以下同様）。また、不揮発性メモリ１６０の所定領域に、図３０に示すように、異常名に関連付けて、その異常について基準値を特定可能な「サンプルタイムテーブル」を予め保存しておく。そして、特定の異常に関する類似性を判定するにあたり、その異常に関連付けられた類似データ判定テーブル及びサンプルタイムテーブルを参照し、サンプルタイムテーブルにより特定された基準値を基準として、その車両データが類似データ判定テーブルに規定された値以内であれば「類似データ」であると判定する。
【００６３】
図２９及び図３０に示す例について説明すると、類似データ判定テーブルとして、車速信号異常については車速が５、すべての回転センサ断線についてはエンジン回転が５００かつプライマリ回転が５００かつセカンダリ回転が５００、ブレーキスイッチ異常については車速が２０又は踏込ＡＤ値が５０であることが規定されている。また、サンプルタイムテーブルとして、車速信号異常については基準値が異常検知３．０秒前のデータ、すべての回転センサ断線については基準値が異常検知時のデータ、ブレーキスイッチ異常については基準値が異常検知１．５秒前のデータであることが規定されている。
【００６４】
そして、車速信号異常の類似性を判定する場合、特定の異常の異常検知３．０秒前の車速を基準値として、これと他の異常の異常検知３．０秒前の車速とを比較し、その差が５以下であれば「類似データ」であると判定し、そうでなければ「類似データ」でないと判定する。すべての回転センサ断線の類似性を判定する場合、特定の異常の異常検知時のエンジン回転、プライマリ回転及びセカンダリ回転を基準値として、これらと他の異常の異常検知時のエンジン回転、プライマリ回転及びセカンダリ回転とを比較し、それらの差のすべてが５００以内であれば「類似データ」であると判定し、そうでなければ「類似データ」でないと判定する。また、ブレーキスイッチ異常の類似性を判定する場合、特定の異常の異常検知１．５秒前の車速及び踏込ＡＤ値を基準値として、これらと他の異常の異常検知１．５秒前の車速及び踏込ＡＤ値とを比較し、車速の差が２０以内又は踏込ＡＤ値の差が５０以内であれば「類似データ」であると判定し、そうでなければ「類似データ」でないと判定する。
【００６５】
同一の異常に関する２つのフリーズフレームデータの類似性を判定するにあたり、その内容がある程度異なっていれば、これらは多様性の付与に資するため削除対象から除外することが好ましい。そこで、不揮発性メモリ１６０の所定領域に、図３１に示すように、異常名に関連付けて、少なくとも１つの車両データについて削除対象から除外する値を規定した「除外判定テーブル」を予め保存しておく。また、不揮発性メモリ１６０の所定領域に、図３２に示すように、異常名に関連付けて、その異常について基準値を特定可能な「サンプルタイムテーブル」を予め保存しておく。そして、特定の異常に関するフリーズフレームデータを削除するか否かを判定するにあたり、その異常に関連付けられた除外判定テーブル及びサンプルタイムテーブルを参照し、サンプルタイムテーブルにより特定された基準値を基準として、そのデータが除外判定テーブルに規定された値を超えていれば、その異常に関するフリーズフレームデータを削除対象から除外する。
【００６６】
図３１及び図３２に示す例について説明すると、除外判定テーブルとして、車速信号異常については車速が５０、すべての回転センサ断線についてはエンジン回転が２０００またはプライマリ回転が２０００またはセカンダリ回転が２０００、ブレーキスイッチ異常については車速が１００かつ踏込ＡＤ値が２５０であることが規定されている。また、サンプルタイムテーブルとして、車速信号異常については基準値が３．０秒前のデータ、すべての回転センサ断線については基準値が異常検知時のデータ、ブレーキスイッチ異常については基準値が１．５秒前のデータであることが規定されている。
【００６７】
そして、車速信号異常について判定する場合、特定の異常の異常検知３．０秒前の車速を基準値として、これと他の異常の異常検知３．０秒前の車速とを比較し、その差が５０を超えていれば削除対象から除外すると判定し、そうでなければ削除対象となり得ると判定する。すべての回転センサ断線について判定する場合、特定の異常の異常検知時のエンジン回転数、プライマリ回転数及びセカンダリ回転数を基準値として、これらと他の異常の異常検知時のエンジン回転、プライマリ回転及びセカンダリ回転とを比較し、それらの差のいずれか１つが２０００を超えていれば削除対象から除外すると判定し、そうでなければ削除対象となり得ると判定する。また、ブレーキスイッチ異常について判定する場合、特定の異常の異常検知１．５秒前の車速及び踏込ＡＤ値を基準値として、これらと他の異常の異常検知１．５秒前の車速及び踏込ＡＤ値とを比較し、車速の差が１００を超えかつ踏込ＡＤ値の差が２５０を超えていれば削除対象から除外すると判定し、そうでなければ削除対象となり得ると判定する。
【００６８】
各種異常の中には、例えば、検出頻度が稀な異常、安全性に関する異常、検出頻度が高い異常、安全性に係らない異常など、不揮発性メモリ１６０に保存する優先順位を付けることができる異常がある。そこで、不揮発性メモリ１６０の所定領域に、図３３に示すように、異常名に関連付けて、異常をカウントするカウンタ値に対する重み付け値を規定した「重み付けテーブル」を予め保存しておく。そして、削除するフリーズフレームデータを選択するにあたり、重み付けテーブルを参照し、各異常のカウンタ値に対して重み付け値を乗算した値が最大のフリーズフレームデータを削除する。
【００６９】
図３３に示す例について説明すると、重み付けテーブルとして、プライマリ回転センサ断線については１回あたりのカウント値が４、ソレノイド機能故障については１回あたりのカウント値が１、Ａ／Ｄ変換異常については１回あたりのカウント値が２であることが規定されている。即ち、プライマリ回転センサ断線は、検出頻度が高いため削除対象に選択され易いように重み付け値が４となり、ソレノイド機能故障は、検出頻度が稀で故障に至った解析に有用であるため削除対象に選択され難いように重み付け値が１となり、Ａ／Ｄ変換異常は、これらの中間であると考えられるため重み付け値が２となっている。
【００７０】
そして、カウンタ値を参照して削除対象を選択する場合、図３４に示すように、ブロック１の記憶領域１〜５に、プライマリ回転センサ断線、ソレノイド機能故障、ソレノイド機能故障、Ａ／Ｄ変換異常及びソレノイド機能故障が夫々保存されていたと仮定する。この場合、プライマリ回転センサ断線のカウンタ値は「１」、ソレノイド機能故障のカウンタ値は「３」、Ａ／Ｄ変換異常のカウンタ値は「１」となる。重み付けテーブルを参照すると、プライマリ回転センサ断線、ソレノイド機能故障及びＡ／Ｄ変換異常の重み付けは「４」、「１」及び「２」であるので、これらと上記カウンタ値とを乗算すると、プライマリ回転センサ断線、ソレノイド機能故障及びＡ／Ｄ変換異常のカウント値は「４」、「３」及び「２」となる。従って、カウント値が最大のプライマリ回転センサ断線に関するフリーズフレームデータが削除対象となる。
【００７１】
新たな異常が検知されたとき、それまでに検知された異常に関するフリーズフレームデータの中から、異常をカウントするカウント値を用いて削除するフリーズフレームデータを選択するだけでなく、新たな異常も考慮して削除するフリーズフレームデータを選択することもできる。そこで、不揮発性メモリ１６０の所定領域に、図３５に示すように、異常名に関連付けて、今回の異常を考慮するか否かを規定する「考慮規定テーブル」を予め保存しておく。そして、ブロックに保存された異常に関するフリーズフレームのどれを削除するかを選択するにあたり、異常をカウントするカウンタ値に加え、考慮規定テーブルの規定内容に応じて今回の異常もカウント値に含め、カウント値が最大の異常に関するフリーズフレームデータを削除する。
【００７２】
図３５に示す例について説明すると、考慮規定テーブルとして、車速信号異常は今回の異常を考慮する（１）、すべての回転センサ断線は今回の異常を考慮しない（０）、ブレーキスイッチ異常は今回の異常を考慮する（１）と規定されている。従って、車速信号異常及びブレーキスイッチ異常については、カウンタ値に対して１を加えた値を用いることとなる。
【００７３】
そして、カウンタ値及び考慮規定テーブルを参照して削除対象を選択する場合、図３６に示すように、ブロック１の記憶領域１〜５に、すべての回転センサ断線、ブレーキスイッチ異常、車速信号異常、車速信号異常及びブレーキスイッチ異常が夫々保存されていたと仮定する。この状態では、車速信号異常、すべての回転センサ断線及びブレーキスイッチ異常のカウンタ値は、夫々、「２」、「１」及び「２」となる。新たな異常として車速信号異常が検知されると、これが考慮されるべきことが規定されているため、車速信号異常、すべての回転センサ断線及びブレーキスイッチ異常のカウンタ値は、夫々、「３」、「１」及び「２」となる。従って、カウンタ値が最大である車速信号異常に関するフリーズフレームデータが削除対象として選択される。
【００７４】
以上、様々な実施形態及び変形例について説明したが、上記の実施形態及び変形例に限らず、技術的に矛盾がない限りにおいて、上記実施形態及び変形例並びに技術常識を適宜組み合わせ又は組み替えてもよい。
【符号の説明】
【００７５】
１００  電子制御装置
１２０  プロセッサ
１４０  揮発性メモリ
１６０  不揮発性メモリ
１６２  ＥＥＰＲＯＭ
１６４  フラッシュメモリ
【図１】
2020075646.tif 000003
【図２】
2020075646.tif 000004
【図３】
2020075646.tif 000005
【図４】
2020075646.tif 000006
【図５】
2020075646.tif 000007
【図６】
2020075646.tif 000008
【図７】
2020075646.tif 000009
【図８】
2020075646.tif 000010
【図９】
2020075646.tif 000011
【図１０】
2020075646.tif 000012
【図１１】
2020075646.tif 000013
【図１２】
2020075646.tif 000014
【図１３】
2020075646.tif 000015
【図１４】
2020075646.tif 000016
【図１５】
2020075646.tif 000017
【図１６】
2020075646.tif 000018
【図１７】
2020075646.tif 000019
【図１８】
2020075646.tif 000020
【図１９】
2020075646.tif 000021
【図２０】
2020075646.tif 000022
【図２１】
2020075646.tif 000023
【図２２】
2020075646.tif 000024
【図２３】
2020075646.tif 000025
【図２４】
2020075646.tif 000026
【図２５】
2020075646.tif 000027
【図２６】
2020075646.tif 000028
【図２７】
2020075646.tif 000029
【図２８】
2020075646.tif 000030
【図２９】
2020075646.tif 000031
【図３０】
2020075646.tif 000032
【図３１】
2020075646.tif 000033
【図３２】
2020075646.tif 000034
【図３３】
2020075646.tif 000035
【図３４】
2020075646.tif 000036
【図３５】
2020075646.tif 000037
【図３６】
2020075646.tif 000038