(57)【要約】      （修正有）【課題】不揮発性メモリの使用容量を減らしつつ、記憶データの信頼性を確保可能な車両情報記憶装置を提供する。【解決手段】記憶制御部２８は、車両情報Ｉｖを第１車両情報格納領域３０ｖに書き込み、冗長情報Ｉｒを第１冗長情報格納領域３０ｒに書き込み、第１記憶領域３０への格納が完了した後に、車両情報Ｉｖを第２車両情報格納領域３２ｖに書き込み、冗長情報Ｉｒを第２冗長情報格納領域３２ｒに書き込む記憶制御を行う。記憶制御部２８は、第１車両情報格納領域３０ｖに格納されている第１記憶車両情報から算出した第１算出冗長情報と、第１冗長情報格納領域３０ｒに格納されている第１記憶冗長情報とが一致する場合には、第１記憶車両情報は最新であると判断する。【選択図】図１
2019045952.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載され、かつ、前記車両の状態を示す車両情報を記憶する車両情報記憶装置であって、
第１記憶領域及び第２記憶領域を有する不揮発性メモリと、
前記不揮発性メモリに対する記憶制御を行う記憶制御部と、
を備え、
前記第１記憶領域は、前記車両情報が格納される第１車両情報格納領域と、前記車両情報の記憶状態の妥当性を確認するための冗長情報が格納される第１冗長情報格納領域と、を含み、
前記第２記憶領域は、前記車両情報が格納される第２車両情報格納領域と、前記冗長情報が格納される第２冗長情報格納領域と、を含み、
前記記憶制御部は、
前記車両情報と前記冗長情報を、前記第１記憶領域及び前記第２記憶領域にそれぞれ格納する際に、
前記車両情報を前記第１車両情報格納領域に書き込み、前記冗長情報を前記第１冗長情報格納領域に書き込み、
前記第１記憶領域への格納が完了した後に、前記車両情報を前記第２車両情報格納領域に書き込み、前記冗長情報を前記第２冗長情報格納領域に書き込む記憶制御を行い、
前記車両情報を読み出す際に、
前記第１車両情報格納領域に格納されている第１記憶車両情報から算出した第１算出冗長情報と、前記第１冗長情報格納領域に格納されている第１記憶冗長情報とが一致するか否かを判断し、
前記第１算出冗長情報と前記第１記憶冗長情報とが一致する場合には前記第１記憶車両情報は最新であると判断する
ことを特徴とする車両情報記憶装置。
【請求項２】
請求項１に記載の車両情報記憶装置において、
前記記憶制御部は、
前記車両情報を読み出す際に、前記第１算出冗長情報と前記第１記憶冗長情報とが一致しない場合には、
前記第２車両情報格納領域に格納されている第２記憶車両情報から算出した第２算出冗長情報と、前記第２冗長情報格納領域に格納されている第２記憶冗長情報とが一致するか否かを判断し、
前記第２算出冗長情報と前記第２記憶冗長情報とが一致する場合には前記第２記憶車両情報は最新であると判断する
ことを特徴とする車両情報記憶装置。
【請求項３】
請求項２に記載の車両情報記憶装置において、
前記記憶制御部は、
前記第１記憶車両情報と前記第２記憶車両情報のいずれか一方の記憶車両情報のみが最新であると判断した場合、
最新である一方の記憶車両情報に基づいて、他方の記憶車両情報と、該他方の記憶車両情報に対応する他方の冗長情報を更新する記憶制御を行う
ことを特徴とする車両情報記憶装置。
【請求項４】
請求項３に記載の車両情報記憶装置において、
前記記憶制御部は、
前記第１記憶車両情報と前記第２記憶車両情報のいずれか一方の記憶車両情報のみが最新であると判断した場合、
前記他方の記憶車両情報と前記他方の記憶冗長情報を更新する記憶制御が完了するまでの間、前記更新以外での前記第１記憶領域及び前記第２記憶領域の書き込みを行わない
ことを特徴とする車両情報記憶装置。
【請求項５】
請求項１〜４のいずれか１項に記載の車両情報記憶装置において、
前記車両のイグニッションスイッチのオフ動作に応じて電力の供給が停止されることを特徴とする車両情報記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両に搭載され、かつ、当該車両の状態を示す車両情報を記憶する車両情報記憶装置に関する。
【背景技術】
【０００２】
従来から、車両に搭載され、かつ、当該車両の状態を示す車両情報を記憶する車両情報記憶装置が知られている。例えば、車両の自己診断機能（ＯＢＤ；On-Board Diagnostics）に関して、不揮発性メモリに逐次記憶される故障診断情報の信頼性を高めるための技術が種々提案されている。
【０００３】
特許文献１では、同一の故障コード（ＤＴＣ；Diagnostic Trouble Code）を３つの記憶領域に記憶させておき、データの多数決を採ることで、不揮発性メモリの記憶状態に関する異常を判定する装置が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４４７５３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近時、ＯＢＤ２に対応したエンジンＥＣＵ（Electronic Control Unit；電子制御装置）が普及しつつある。このＥＣＵは、故障コードのみならず、当該故障コードを生成した瞬間のフリーズフレームデータを同時に記憶する。
【０００６】
しかしながら、特許文献１で提案された装置では、多数決のために３組の記憶領域を常に用意する必要があるため、２組の場合と比べて、不揮発性メモリの使用容量が５０％だけ増加してしまう。この使用容量は、フリーズフレームデータのサイズに概ね比例するため、この問題が顕著に現われる。
【０００７】
本発明は上記した問題を解決するためになされたものであり、不揮発性メモリの使用容量を減らしつつ、記憶データの信頼性を確保可能な車両情報記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る車両情報記憶装置は、車両に搭載され、かつ、前記車両の状態を示す車両情報を記憶する装置であって、第１記憶領域及び第２記憶領域を有する不揮発性メモリと、前記不揮発性メモリに対する記憶制御を行う記憶制御部と、を備え、前記第１記憶領域は、前記車両情報が格納される第１車両情報格納領域と、前記車両情報の記憶状態の妥当性を確認するための冗長情報が格納される第１冗長情報格納領域と、を含み、前記第２記憶領域は、前記車両情報が格納される第２車両情報格納領域と、前記冗長情報が格納される第２冗長情報格納領域と、を含み、前記記憶制御部は、前記車両情報と前記冗長情報を、前記第１記憶領域及び前記第２記憶領域にそれぞれ格納する際に、前記車両情報を前記第１車両情報格納領域に書き込み、前記冗長情報を前記第１冗長情報格納領域に書き込み、前記第１記憶領域への格納が完了した後に、前記車両情報を前記第２車両情報格納領域に書き込み、前記冗長情報を前記第２冗長情報格納領域に書き込む記憶制御を行い、前記車両情報を読み出す際に、前記第１車両情報格納領域に格納されている第１記憶車両情報から算出した第１算出冗長情報と、前記第１冗長情報格納領域に格納されている第１記憶冗長情報とが一致するか否かを判断し、前記第１算出冗長情報と前記第１記憶冗長情報とが一致する場合には前記第１記憶車両情報は最新であると判断する。
【０００９】
このように構成することで、例えば、電力の瞬断によって更新中の情報が消失した場合であっても、現在格納されている車両情報及び冗長情報の組み合わせに基づいて第１記憶領域の更新状況（最新であるか否か）を判別可能となり、その後に必要な対処を施すことで記憶データを適切に復旧することができる。これにより、不揮発性メモリの使用容量を減らしつつ、記憶データの信頼性を確保することができる。
【００１０】
また、前記記憶制御部は、前記車両情報を読み出す際に、前記第１算出冗長情報と前記第１記憶冗長情報とが一致しない場合には、前記第２車両情報格納領域に格納されている第２記憶車両情報から算出した第２算出冗長情報と、前記第２冗長情報格納領域に格納されている第２記憶冗長情報とが一致するか否かを判断し、前記第２算出冗長情報と前記第２記憶冗長情報とが一致する場合には前記第２記憶車両情報は最新であると判断してもよい。
【００１１】
これにより、現在格納されている車両情報及び冗長情報の組み合わせに基づいて第２記憶領域の更新状況（最新であるか否か）を判別可能となり、その後に必要な対処を施すことで記憶データを適切に復旧することができる。
【００１２】
また、前記記憶制御部は、前記第１記憶車両情報と前記第２記憶車両情報のいずれか一方の記憶車両情報のみが最新であると判断した場合、最新である一方の記憶車両情報に基づいて、他方の記憶車両情報と、該他方の記憶車両情報に対応する他方の冗長情報を更新する記憶制御を行ってもよい。
【００１３】
例えば、第１記憶領域が先行して更新中である状態において、第２記憶領域から車両情報を複製することで直近の記憶状態に戻すことができる。一方、第１記憶領域の更新が先に終了し、かつ第２記憶領域が後行して更新中である状態において、第１記憶領域から車両情報を複製することで最新の記憶状態に移行することができる。
【００１４】
また、前記記憶制御部は、前記第１記憶車両情報と前記第２記憶車両情報のいずれか一方の記憶車両情報のみが最新であると判断した場合、前記他方の記憶車両情報と前記他方の記憶冗長情報を更新する記憶制御が完了するまでの間、前記更新以外の前記第１記憶領域及び前記第２記憶領域の書き込みを行わないようにしてもよい。記憶データの復旧中に当該更新以外の書き込みを禁止することで、記憶状態に関する異常の発生を防止することができる。
【００１５】
また、当該車両情報記憶装置は、前記車両のイグニッションスイッチのオフ動作に応じて電力の供給を停止されてもよい。エンジンを切った後のセルフシャットダウン機能を備えていない車両では、揮発性メモリのデータバックアップを取得できないので特に効果的である。
【発明の効果】
【００１６】
本発明に係る車両情報記憶装置によれば、不揮発性メモリの使用容量を減らしつつ、記憶データの信頼性を確保することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態における車両情報記憶装置が組み込まれた車両故障診断システムの全体構成図である。
【図２】図１に示す不揮発性メモリの記憶状態に関する遷移図である。
【図３】各々の区間における記憶制御の特徴を模式的に示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明に係る車両情報記憶装置について好適な実施形態を挙げ、添付の図面を参照しながら説明する。
【００１９】
［車両故障診断システム１０の構成］
図１は、本発明の一実施形態における車両情報記憶装置が組み込まれた車両故障診断システム１０の全体構成図である。車両故障診断システム１０は、図示しない車両（例えば、二輪車又は四輪車）に搭載され、かつ、この車両の自己診断機能を有するシステムである。この車両故障診断システム１０は、車両情報記憶装置としてのエンジンＥＣＵ１２と、センサ群１４と、エンジン１６と、電源１８と、を含んで構成される。
【００２０】
センサ群１４は、車両の状態を検出可能な１つ又は複数のセンサから構成される。センサの種類として、例えば、水温センサ、油温センサ、車速センサ、クランク角センサ、吸気圧センサ、大気圧センサ、スロットル開度センサ、Ｏ２センサが挙げられる。
【００２１】
電源１８は、車両の各部（エンジンＥＣＵ１２を含む）に対して電力を供給する。ここでは、電源１８は、イグニッションスイッチ２０のオン・オフに連動して、エンジンＥＣＵ１２に対して電力を供給し、又はその供給を停止する。
【００２２】
エンジンＥＣＵ１２は、車両の駆動源であるエンジン１６の運転制御を行い、必要に応じて車両の状態を示す情報（以下、車両情報Ｉｖ）を取得し保存する。具体的には、エンジンＥＣＵ１２は、演算処理装置２２と、不揮発性メモリ２４と、揮発性メモリ２６と、を含んで構成される。
【００２３】
演算処理装置２２は、例えば、ＣＰＵ（Central Processing Unit）又はＭＰＵ（Micro-Processing Unit）から構成される。演算処理装置２２は、図示しないＲＯＭ（Read Only Memory）からプログラムを読み出し実行することで、不揮発性メモリ２４及び揮発性メモリ２６に対する記憶制御を行う記憶制御部２８として機能する。
【００２４】
不揮発性メモリ２４は、電力を供給しなくても記憶データを保持可能なメモリであり、例えば、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）、フラッシュメモリから構成される。
【００２５】
不揮発性メモリ２４は、上記した車両情報Ｉｖの他、車両情報Ｉｖの記憶状態の妥当性を確認するための情報（以下、冗長情報Ｉｒ）を記憶可能である。この不揮発性メモリ２４は、領域サイズが等しい２つの記憶領域（以下、第１記憶領域３０、第２記憶領域３２）を有する。
【００２６】
第１記憶領域３０は、１又は３以上の奇数個分（ここでは、３つ）の冗長情報Ｉｒ１が格納される第１冗長情報格納領域３０ｒと、Ｍ組（Ｍ≧１）の車両情報Ｉｖ１が格納される第１車両情報格納領域３０ｖと、を含む。第２記憶領域３２は、１又は３以上の奇数個分（ここでは、３つ）の冗長情報Ｉｒ２が格納される第２冗長情報格納領域３２ｒと、Ｍ組（Ｍ≧１）の車両情報Ｉｖ２が格納される第２車両情報格納領域３２ｖと、を含む。
【００２７】
ここで、冗長情報Ｉｒ１は車両情報Ｉｖ１に対応する情報であり、冗長情報Ｉｒ２は車両情報Ｉｖ２に対応する情報である。この冗長情報Ｉｒ１、Ｉｒ２は、例えば、チェックサム、ＣＲＣ（Cyclic Redundancy Check）、ハッシュ値であってもよい。また、車両情報Ｉｖ１、Ｉｖ２は、例えば、故障コード（ＤＴＣ）及びフリーズフレームデータ（センサ値の時系列）の１セット分の情報に相当する。
【００２８】
揮発性メモリ２６は、電力が供給された状態下にのみ記憶データを保持可能なメモリであり、例えば、ＤＲＡＭ（Dynamic Random Access Memory）又はＳＲＡＭ（Static Random Access Memory）から構成される。この揮発性メモリ２６には、記憶制御に必要な情報（例えば、最新の車両情報Ｉｖ）が一時的に格納される。
【００２９】
［エンジンＥＣＵ１２の動作］
車両情報記憶装置としてのエンジンＥＣＵ１２は、以上のように構成される。続いて、エンジンＥＣＵ１２（特に、記憶制御部２８）の動作について、図２及び図３を参照しながら詳細に説明する。
【００３０】
図２は、図１に示す不揮発性メモリ２４の記憶状態に関する遷移図である。より詳しくは、本図は、第１記憶領域３０及び第２記憶領域３２の格納値が、複数の処理ステップ（ステップＳ０〜Ｓ７）にわたり変化する状態を示す。なお、格納値の更新があった箇所（格納領域）を太線の矩形枠によって表記している。
【００３１】
ステップＳ０は、５回目の書き換えが正常に行われた記憶状態に相当する。この場合、第１記憶領域３０の冗長情報Ｉｒ１（５回目の車両情報Ｉｖ１に対応）は、第２記憶領域３２の冗長情報Ｉｒ２（５回目の車両情報Ｉｖ２に対応）に等しい。以下、ｎ回目の車両情報Ｉｖ１（Ｉｖ２）に対応する冗長情報Ｉｒ１（Ｉｒ２）を「＃ｎ」と表記する場合がある。
【００３２】
また、第１記憶領域３０の車両情報Ｉｖ１は、第２記憶領域３２の車両情報Ｉｖ２とすべて一致する。その後、記憶制御部２８は、センサ群１４からの最新の車両情報Ｉｖを揮発性メモリ２６に一時的に記憶させる制御を行う。
【００３３】
ステップＳ１において、記憶制御部２８は、一時的に記憶された車両情報Ｉｖを揮発性メモリ２６から読み出し、不揮発性メモリ２４の第１記憶領域３０に書き込む記憶制御を行う。これにより、第１車両情報格納領域３０ｖの格納値（車両情報Ｉｖ１）が、「５回目の情報」から「６回目の情報」に更新される。
【００３４】
ステップＳ２において、記憶制御部２８は、第１車両情報格納領域３０ｖに格納されている１組以上の車両情報Ｉｖ１を用いて、この車両情報Ｉｖ１に対応する冗長情報Ｉｒ１を生成する。
【００３５】
ステップＳ３において、記憶制御部２８は、生成された冗長情報Ｉｒ１を不揮発性メモリ２４の第１記憶領域３０に書き込む記憶制御を行う。これにより、各々の第１冗長情報格納領域３０ｒの格納値（Ｉｒ１）が、「＃５」から「＃６」に更新される。
【００３６】
このように、記憶制御部２８は、車両情報Ｉｖ１を第１車両情報格納領域３０ｖに書き込んだ後、この車両情報Ｉｖ１に対応する冗長情報Ｉｒ１を第１冗長情報格納領域３０ｒに書き込む記憶制御を順次行う（ステップＳ１、Ｓ３）。
【００３７】
ステップＳ４において、記憶制御部２８は、一時的に記憶された車両情報Ｉｖを揮発性メモリ２６から読み出し、不揮発性メモリ２４の第２記憶領域３２に書き込む記憶制御を行う。これにより、第２車両情報格納領域３２ｖの格納値（車両情報Ｉｖ２）が、「５回目の情報」から「６回目の情報」に更新される。
【００３８】
ステップＳ５において、記憶制御部２８は、第２車両情報格納領域３２ｖに格納されている１組以上の車両情報Ｉｖ２を用いて、この車両情報Ｉｖ２に対応する冗長情報Ｉｒ２を生成する。
【００３９】
ステップＳ６において、記憶制御部２８は、生成された冗長情報Ｉｒ２を不揮発性メモリ２４の第２記憶領域３２に書き込む記憶制御を行う。これにより、各々の第２冗長情報格納領域３２ｒの格納値（Ｉｒ２）が、「＃５」から「＃６」に更新される。
【００４０】
このように、記憶制御部２８は、車両情報Ｉｖ２を第２車両情報格納領域３２ｖに書き込んだ後、この車両情報Ｉｖ２に対応する冗長情報Ｉｒ２を第２冗長情報格納領域３２ｒに書き込む記憶制御を順次行う（ステップＳ４、Ｓ６）。
【００４１】
ステップＳ７は、６回目の書き換えが正常に行われた記憶状態に相当する。この場合、第１記憶領域３０の冗長情報Ｉｒ１（６回目の車両情報Ｉｖ１に対応）は、第２記憶領域３２の冗長情報Ｉｒ２（６回目の車両情報Ｉｖ２に対応）に等しい。また、第１記憶領域３０の車両情報Ｉｖ１は、第２記憶領域３２の車両情報Ｉｖ２とすべて一致する。
【００４２】
図３は、各々の区間における記憶制御の特徴を模式的に示す図である。より詳しくは、本図は、状態チェック処理を実行した場合における、処理フェーズ毎の記憶制御の挙動（イベント及び結果）を示す。この処理フェーズは、図２に示す７個の区間（第１〜第７区間）により分類される。
【００４３】
ここで、「状態チェック」とは、不揮発性メモリ２４の記憶状態に対する確認処理であり、具体的には、車両情報Ｉｖ１、Ｉｖ２が最新の車両情報Ｉｖであるか否かについて確認することを意味する。この処理は、３つの判断工程から構成される。
【００４４】
第１工程として、記憶制御部２８は、第１車両情報格納領域３０ｖから読み出した車両情報Ｉｖ１を用いて冗長情報Ｉｒ１を算出し、得られた冗長情報（第１算出冗長情報）が第１冗長情報格納領域３０ｒの格納値（第１記憶冗長情報）と一致するか否かを判断する。
【００４５】
冗長情報Ｉｒ１の一致性がある場合に車両情報Ｉｖ１の記憶状態は妥当である旨の判断がなされ、冗長情報Ｉｒ１の一致性がない場合に車両情報Ｉｖ１の記憶状態は妥当でない旨の判断がなされる。なお、車両情報Ｉｖ１の記憶状態が妥当ではない場合には、車両情報Ｉｖ２が最新である旨の判断がなされる。
【００４６】
第２工程として、記憶制御部２８は、第２車両情報格納領域３２ｖから読み出した車両情報Ｉｖ２を用いて冗長情報Ｉｒ２を算出し、得られた冗長情報（第２算出冗長情報）が第２冗長情報格納領域３２ｒの格納値（第２記憶冗長情報）と一致するか否かを判断する。
【００４７】
冗長情報Ｉｒ２の一致性がある場合に車両情報Ｉｖ２の記憶状態は妥当である旨の判断がなされ、冗長情報Ｉｒ２の一致性がない場合に車両情報Ｉｖ２の記憶状態は妥当でない旨の判断がなされる。なお、車両情報Ｉｖ２の記憶状態が妥当ではない場合には、車両情報Ｉｖ１が最新である旨の判断がなされる。
【００４８】
ところで、第１冗長情報格納領域３０ｒに複数の冗長情報Ｉｒ１が格納されている場合は、多数決（最頻値）により格納値を決定してもよい。同様に、第２冗長情報格納領域３２ｒに複数の冗長情報Ｉｒ２が格納されている場合は、多数決（最頻値）により格納値を決定してもよい。
【００４９】
第３工程として、冗長情報Ｉｒ１、Ｉｒ２の両方に一致性があった場合に限り、記憶制御部２８は、冗長情報Ｉｒ１と、冗長情報Ｉｒ２とが一致するか否かを判断する。両者の一致性がある場合に両方の車両情報Ｉｖ１、Ｉｖ２は最新である旨の判断がなされ、両者の一致性がない場合に一方の車両情報Ｉｖ１のみ最新である旨の判断がなされる。
【００５０】
なお、記憶制御部２８は、この状態チェック処理を不定期に実行してもよいし、定期的に実行してもよい。不定期の例としては、［１］不揮発性メモリ２４の読み出し要求時、［２］イグニッションスイッチ２０のオン動作の直後、或いは［３］図２に示す一連の動作の終了時点から所定時間が経過した時、が挙げられる。
【００５１】
第１区間では、冗長情報Ｉｒ１、Ｉｒ２を用いたチェックにより、車両情報Ｉｖ１、Ｉｖ２はいずれも妥当である旨（ＹＥＳ）の判断がなされると共に、冗長情報Ｉｒ１、Ｉｒ２は一致する（ＹＥＳ）。その結果、車両情報Ｉｖ１、Ｉｖ２はいずれも最新である旨の判断がなされる。この場合、記憶制御部２８は、不揮発性メモリ２４に対して特別な処理を行わない。つまり、不揮発性メモリ２４は、５回目の車両情報Ｉｖ１、Ｉｖ２を記憶した状態（データ同期が保たれた状態）を維持する。
【００５２】
第２、第３区間では、冗長情報Ｉｒ１を用いたチェックにより車両情報Ｉｖ１が妥当でない一方（ＮＯ）、冗長情報Ｉｒ２を用いたチェックにより車両情報Ｉｖ２が妥当である旨（ＹＥＳ）の判断がなされる。つまり、第１記憶領域３０が先行して更新中である状態において、第２記憶領域３２から少なくとも車両情報Ｉｖ２を複製することで直近の記憶状態に戻すことができる。
【００５３】
この場合、記憶制御部２８は、［１］（Ｉｒ１←Ｉｒ２）第２冗長情報格納領域３２ｒの冗長情報Ｉｒ２を複製して第１冗長情報格納領域３０ｒに格納すると共に、［２］（Ｉｖ１←Ｉｖ２）第２車両情報格納領域３２ｖの車両情報Ｉｖ２を複製して第１車両情報格納領域３０ｖに格納する記憶制御を行う。なお、冗長情報Ｉｒ２の複製に代わって、複製後の車両情報Ｉｖ１を用いて新たに生成された冗長情報Ｉｒ１を第１冗長情報格納領域３０ｒに格納してもよい。
【００５４】
その結果、不揮発性メモリ２４は、５回目の車両情報Ｉｖ１、Ｉｖ２を記憶した状態（つまり、データ同期が保たれた状態）に戻る。
【００５５】
なお、記憶制御部２８は、車両情報Ｉｖ２及び冗長情報Ｉｒ２を更新する記憶制御が完了するまでの間、この更新以外での第１記憶領域３０及び第２記憶領域３２の書き込みを行わない。記憶データの復旧中にこの更新以外の書き込みを禁止することで、記憶状態に関する異常の発生を防止することができる。
【００５６】
第４区間では、冗長情報Ｉｒ１、Ｉｒ２を用いたチェックにより、車両情報Ｉｖ１、Ｉｖ２はいずれも妥当である旨（ＹＥＳ）の判断がなされる一方、冗長情報Ｉｒ１、Ｉｒ２は一致しない（ＮＯ）。つまり、第１記憶領域３０が更新後であり、かつ、第２記憶領域３２が更新前である状態において、第１記憶領域３０から少なくとも車両情報Ｉｖ１を複製することで最新の記憶状態に移行することができる。
【００５７】
この場合、記憶制御部２８は、［１］（Ｉｒ２←Ｉｒ１）第１冗長情報格納領域３０ｒの冗長情報Ｉｒ１を複製して第２冗長情報格納領域３２ｒに格納すると共に、［２］（Ｉｖ２←Ｉｖ１）第１車両情報格納領域３０ｖの車両情報Ｉｖ１を複製して第２車両情報格納領域３２ｖに格納する記憶制御を行う。
【００５８】
第２、第３区間の場合と同様に、記憶制御部２８は、車両情報Ｉｖ１及び冗長情報Ｉｒ１を更新する記憶制御が完了するまでの間、この更新以外での第１記憶領域３０及び第２記憶領域３２の書き込みを行わない。その結果、不揮発性メモリ２４は、６回目の車両情報Ｉｖ１、Ｉｖ２を記憶した状態（つまり、データ同期が保たれた状態）に移行する。
【００５９】
第５、第６区間では、冗長情報Ｉｒ１を用いたチェックにより車両情報Ｉｖ１が妥当である一方（ＹＥＳ）、冗長情報Ｉｒ２を用いたチェックにより車両情報Ｉｖ２が妥当ではない旨（ＮＯ）の判断がなされるので、車両情報Ｉｖ１のみが最新である旨の判断がなされる。つまり、第１記憶領域３０の更新が先に終了し、かつ、第２記憶領域３２が後行して更新中である状態において、第１記憶領域３０から少なくとも車両情報Ｉｖ１を複製することで最新の記憶状態に移行することができる。
【００６０】
この場合、記憶制御部２８は、［１］（Ｉｒ２←Ｉｒ１）第１冗長情報格納領域３０ｒの冗長情報Ｉｒ１を複製し、第２冗長情報格納領域３２ｒに格納すると共に、［２］（Ｉｖ２←Ｉｖ１）第１車両情報格納領域３０ｖの車両情報Ｉｖ１を複製し、第２車両情報格納領域３２ｖに格納する記憶制御を行う。
【００６１】
第４区間の場合と同様に、記憶制御部２８は、車両情報Ｉｖ１及び冗長情報Ｉｒ１を更新する記憶制御が完了するまでの間、この更新以外での第１記憶領域３０及び第２記憶領域３２の書き込みを行わないようにする。その結果、不揮発性メモリ２４は、６回目の車両情報Ｉｖ１、Ｉｖ２を記憶した状態（つまり、データ同期が保たれた状態）に移行する。
【００６２】
第７区間では、冗長情報Ｉｒ１、Ｉｒ２を用いたチェックにより、車両情報Ｉｖ１、Ｉｖ２はいずれも最新である旨（ＹＥＳ）の判断がなされると共に、冗長情報Ｉｒ１、Ｉｒ２は一致する（ＹＥＳ）。この場合、記憶制御部２８は、不揮発性メモリ２４に対して特別な処理を行わない。つまり、不揮発性メモリ２４は、６回目の車両情報Ｉｖ１、Ｉｖ２を記憶した状態（データ同期が保たれた状態）を維持する。
【００６３】
［エンジンＥＣＵ１２（車両情報記憶装置）による効果］
以上のように、エンジンＥＣＵ１２は、車両に搭載され、かつ、車両の状態を示す車両情報Ｉｖ１、Ｉｖ２を記憶し、［１］第１記憶領域３０及び第２記憶領域３２を有する不揮発性メモリ２４と、［２］不揮発性メモリ２４に対する記憶制御を行う記憶制御部２８と、を備え、［３］第１記憶領域３０は、車両情報Ｉｖ１が格納される第１車両情報格納領域３０ｖと、車両情報Ｉｖ１の記憶状態の妥当性を確認するための冗長情報Ｉｒ１が格納される第１冗長情報格納領域３０ｒと、を含み、［４］第２記憶領域３２は、車両情報Ｉｖ２が格納される第２車両情報格納領域３２ｖと、車両情報Ｉｖ２の記憶状態の妥当性を確認するための冗長情報Ｉｒ２が格納される第２冗長情報格納領域３２ｒと、を含む。
【００６４】
［５］記憶制御部２８は、車両情報Ｉｖと冗長情報Ｉｒを、第１記憶領域３０及び第２記憶領域３２にそれぞれ格納する際に、（５ａ）車両情報Ｉｖを第１車両情報格納領域３０ｖに書き込み、冗長情報Ｉｒを第１冗長情報格納領域３０ｒに書き込み、（５ｂ）第１記憶領域３０への格納が完了した後に、車両情報Ｉｖを第２車両情報格納領域３２ｖに書き込み、冗長情報Ｉｒを第２冗長情報格納領域３２ｒに書き込む記憶制御を行う。
【００６５】
［６］記憶制御部２８は、車両情報Ｉｖを読み出す際に、（６ａ）第１車両情報格納領域３０ｖに格納されている第１記憶車両情報（Ｉｖ１）から算出した第１算出冗長情報と、第１冗長情報格納領域３０ｒに格納されている第１記憶冗長情報（Ｉｒ１）とが一致するか否かを判断し、（６ｂ）第１算出冗長情報と第１記憶冗長情報とが一致する場合には第１記憶車両情報（Ｉｖ１）は最新であると判断する。
【００６６】
このように構成することで、例えば、電力の瞬断によって更新中の情報が消失した場合であっても、現在格納されている車両情報Ｉｖ１及び冗長情報Ｉｒ１の組み合わせに基づいて第１記憶領域３０の更新状況（最新であるか否か）を判別可能となり、その後に必要な対処を施すことで記憶データを適切に復旧することができる。これにより、不揮発性メモリ２４の使用容量を減らしつつ、記憶データの信頼性を確保することができる。
【００６７】
また、［７］記憶制御部２８は、車両情報Ｉｖを読み出す際に、（７ａ）第１算出冗長情報と第１記憶冗長情報とが一致しない場合には、第２車両情報格納領域３２ｖに格納されている第２記憶車両情報（Ｉｖ２）から算出した第２算出冗長情報と、第２冗長情報格納領域３２ｒに格納されている第２記憶冗長情報（Ｉｒ２）とが一致するか否かを判断し、（７ｂ）第２算出冗長情報と第２記憶冗長情報とが一致する場合には第２記憶車両情報（Ｉｖ２）は最新であると判断してもよい。
【００６８】
これにより、現在格納されている車両情報Ｉｖ２及び冗長情報Ｉｒ２の組み合わせに基づいて第２記憶領域３２の更新状況（最新であるか否か）を判別可能となり、その後に必要な対処を施すことで記憶データを適切に復旧することができる。
【００６９】
また、記憶制御部２８は、第１記憶車両情報と第２記憶車両情報のいずれか一方の記憶車両情報のみが最新であると判断した場合、最新である一方の記憶車両情報に基づいて、他方の記憶車両情報と、該他方の記憶車両情報に対応する他方の冗長情報を更新する記憶制御を行ってもよい。
【００７０】
例えば、第１記憶領域３０が先行して更新中である状態において、第２記憶領域３２から車両情報Ｉｖ２を複製することで直近の記憶状態に戻すことができる。一方、第１記憶領域３０の更新が先に終了し、かつ第２記憶領域３２が後行して更新中である状態において、第１記憶領域３０から車両情報Ｉｖ１を複製することで最新の記憶状態に移行することができる。
【００７１】
また、記憶制御部２８は、第１記憶車両情報と第２記憶車両情報のいずれか一方の記憶車両情報のみが最新であると判断した場合、他方の記憶車両情報と他方の記憶冗長情報を更新する記憶制御が完了するまでの間、この更新以外での第１記憶領域３０及び第２記憶領域３２の書き込みを行わないようにしてもよい。記憶データの復旧中に当該更新以外の書き込みを禁止することで、記憶状態に関する異常の発生を防止することができる。
【００７２】
また、車両のイグニッションスイッチ２０のオフ動作に応じて、電力の供給が停止されるエンジンＥＣＵ１２に適用することがより好ましい。エンジン１６を切った後のセルフシャットダウン機能を備えていない車両では、揮発性メモリ２６のデータバックアップを取得できないので特に効果的である。
【００７３】
［補足］
なお、この発明は、上述した実施形態に限定されるものではなく、この発明の主旨を逸脱しない範囲で自由に変更できることは勿論である。或いは、技術的に矛盾が生じない範囲で各々の構成を任意に組み合わせてもよい。
【符号の説明】
【００７４】
１０…車両故障診断システム              １２…エンジンＥＣＵ（車両情報記憶装置）
１４…センサ群                          １６…エンジン
１８…電源                              ２０…イグニッションスイッチ
２２…演算処理装置                      ２４…不揮発性メモリ
２６…揮発性メモリ                      ２８…記憶制御部
３０…第１記憶領域                      ３０ｒ…第１冗長情報格納領域
３０ｖ…第１車両情報格納領域            ３２…第２記憶領域
３２ｒ…第２冗長情報格納領域            ３２ｖ…第２車両情報格納領域
Ｉｒ、Ｉｒ１、Ｉｒ２…冗長情報          Ｉｖ、Ｉｖ１、Ｉｖ２…車両情報
【図１】
2019045952.tif 000003
【図２】
2019045952.tif 000004
【図３】
2019045952.tif 000005