(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
近時、OBD2に対応したエンジンECU(Electronic Control Unit;電子制御装置)が普及しつつある。このECUは、故障コードのみならず、当該故障コードを生成した瞬間のフリーズフレームデータを同時に記憶する。
【0006】
しかしながら、特許文献1で提案された装置では、多数決のために3組の記憶領域を常に用意する必要があるため、2組の場合と比べて、不揮発性メモリの使用容量が50%だけ増加してしまう。この使用容量は、フリーズフレームデータのサイズに概ね比例するため、この問題が顕著に現われる。
【0007】
本発明は上記した問題を解決するためになされたものであり、不揮発性メモリの使用容量を減らしつつ、記憶データの信頼性を確保可能な車両情報記憶装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明に係る車両情報記憶装置は、車両に搭載され、かつ、前記車両の状態を示す車両情報を記憶する車両情報記憶装置であって、第1記憶領域及び第2記憶領域を有する不揮発性メモリと、前記車両情報の書換回数
と、最新の車両情報とを
一時的に記憶する揮発性メモリと、前記不揮発性メモリ及び前記揮発性メモリに対する記憶制御を行う記憶制御部と、を備え、前記第1記憶領域は、前記車両情報が格納される第1情報格納領域と、
前記第1情報格納領域の書換回数を示す第1書換回数が格納される第1回数格納領域と、を含み、前記第2記憶領域は、前記車両情報が格納される第2情報格納領域と、
前記第2情報格納領域の書換回数を示す第2書換回数が格納される第2回数格納領域と、を含み、前記記憶制御部は、前記第1情報格納領域の更新を開始する前に、
前記最新の車両情報と、前記第1回数格納領域から読み出した前記
第1書換回数
とを前記揮発性メモリに書き込み、かつ、前記
第1書換回数のカウントに使用しない不使用値を前記第1回数格納領域に書き込み、
前記第1情報格納領域の更新を開始する前に前記揮発性メモリに書き込まれた前記最新の車両情報に基づいて前記第1情報格納領域
を更
新した後に、前記揮発性メモリから読み出した前記
第1書換回数をカウント更新し、かつ、
更新された前記第1書換回数を前記第1回数格納領域に書き込む記憶制御を行い、前記第2情報格納領域の更新を開始する前に、前記第2回数格納領域から読み出した前記
第2書換回数を前記揮発性メモリに書き込み、かつ、前記
第2書換回数のカウントに使用しない不使用値を前記第2回数格納領域に書き込み、
前記第1情報格納領域の更新を開始する前に前記揮発性メモリに書き込まれた前記最新の車両情報に基づいて前記第2情報格納領域
を更
新した後に、前記揮発性メモリから読み出した前記
第2書換回数をカウント更新し、かつ、
更新された前記第2書換回数を前記第2回数格納領域に書き込む記憶制御を行う。
【0009】
このように構成することで、例えば、電力の瞬断によって揮発性メモリに一時的に記憶された情報が消失した場合であっても、現在格納されている2つの書換回数の数値関係(単独値又は相対値)に基づいて第1記憶領域及び第2記憶領域の更新状況を判別可能となり、その後に必要な対処を施すことで記憶データを適切に復旧することができる。これにより、不揮発性メモリの使用容量を減らしつつ、記憶データの信頼性を確保することができる。
【0010】
また、前記記憶制御部は、前記第1回数格納領域に格納された前記書換回数が前記不使用値であって、かつ、前記第2回数格納領域に格納された前記書換回数が前記不使用値でない場合、前記第2回数格納領域の前記書換回数を複製して前記第1回数格納領域に書き込むと共に、前記第2情報格納領域の前記車両情報を複製して前記第1情報格納領域に書き込む記憶制御を行い、前記第1回数格納領域に格納された前記書換回数が前記不使用値でなく、かつ、前記第2回数格納領域に格納された前記書換回数が前記不使用値である場合、前記第1回数格納領域の前記書換回数を複製して前記第2回数格納領域に書き込むと共に、前記第1情報格納領域の前記車両情報を複製して前記第2情報格納領域に書き込む記憶制御を行ってもよい。
【0011】
これにより、書換回数が不使用値である一方の記憶領域が更新中である状態において、他方の記憶領域から書換回数及び車両情報を複製することで直近の記憶状態に戻すことができる。
【0012】
また、前記記憶制御部は、前記第1回数格納領域に格納された前記書換回数が、前記第2回数格納領域に格納された前記書換回数よりも大きい場合、前記第1情報格納領域の前記車両情報を複製し、前記第2情報格納領域に書き込む記憶制御を行い、前記第1回数格納領域に格納された前記書換回数が、前記第2回数格納領域に格納された前記書換回数よりも小さい場合、前記第2情報格納領域の前記車両情報を複製し、前記第1情報格納領域に書き込む記憶制御を行ってもよい。
【0013】
これにより、書換回数が大きい一方の記憶領域が更新後であり、かつ、他方の記憶領域が更新前である状態において、一方の記憶領域から車両情報を複製することで最新の記憶状態に移行することができる。
【0014】
また、前記記憶制御部は、前記車両情報を複製する記憶制御が完了するまでの間、前記複製以外の前記第1記憶領域及び前記第2記憶領域への書き込みを行わないようにしてもよい。記憶データの復旧中に複製以外の書き込みを禁止することで、記憶状態に関する異常の発生を防止することができる。
【0015】
また、当該車両情報記憶装置は、前記車両のイグニッションスイッチのオフ動作に応じて電力の供給を停止されてもよい。エンジンを切った後のセルフシャットダウン機能を備えていない車両では、揮発性メモリのデータバックアップを取得できないので特に効果的である。
【発明の効果】
【0016】
本発明に係る車両情報記憶装置によれば、不揮発性メモリの使用容量を減らしつつ、記憶データの信頼性を確保することができる。
【発明を実施するための形態】
【0018】
以下、本発明に係る車両情報記憶装置について好適な実施形態を挙げ、添付の図面を参照しながら説明する。
【0019】
[車両故障診断システム10の構成]
図1は、本発明の一実施形態における車両情報記憶装置が組み込まれた車両故障診断システム10の全体構成図である。車両故障診断システム10は、図示しない車両(例えば、二輪車又は四輪車)に搭載され、かつ、この車両の自己診断機能を有するシステムである。この車両故障診断システム10は、車両情報記憶装置としてのエンジンECU12と、センサ群14と、エンジン16と、電源18と、を含んで構成される。
【0020】
センサ群14は、車両の状態を検出可能な1つ又は複数のセンサから構成される。センサの種類として、例えば、水温センサ、油温センサ、車速センサ、クランク角センサ、吸気圧センサ、大気圧センサ、スロットル開度センサ、O2センサが挙げられる。
【0021】
電源18は、車両の各部(エンジンECU12を含む)に対して電力を供給する。ここでは、電源18は、イグニッションスイッチ20のオン・オフに連動して、エンジンECU12に対して電力を供給し、又はその供給を停止する。
【0022】
エンジンECU12は、車両の駆動源であるエンジン16の運転制御を行い、必要に応じて車両の状態を示す情報(以下、車両情報)を取得し保存する。具体的には、エンジンECU12は、演算処理装置22と、不揮発性メモリ24と、揮発性メモリ26と、を含んで構成される。
【0023】
演算処理装置22は、例えば、CPU(Central Processing Unit)又はMPU(Micro-Processing Unit)から構成される。演算処理装置22は、図示しないROM(Read Only Memory)からプログラムを読み出し実行することで、不揮発性メモリ24及び揮発性メモリ26に対する記憶制御を行う記憶制御部28として機能する。
【0024】
不揮発性メモリ24は、電力を供給しなくても記憶データを保持可能なメモリであり、例えば、EEPROM(Electrically Erasable Programmable Read-Only Memory)、フラッシュメモリから構成される。不揮発性メモリ24は、領域サイズが等しい2つの記憶領域(以下、第1記憶領域30、第2記憶領域32)を有する。
【0025】
第1記憶領域30は、1個の書換回数Nr1が格納される第1回数格納領域30nと、M組(M≧1)の車両情報Iv1が格納される第1情報格納領域30vと、を含む。第2記憶領域32は、1個の書換回数Nr2が格納される第2回数格納領域32nと、M組(M≧1)の車両情報Iv2が格納される第2情報格納領域32vと、を含む。
【0026】
なお、書換回数Nr1は第1記憶領域30の書き換え(車両情報Iv1の更新)に成功した回数であり、書換回数Nr2は第2記憶領域32の書き換え(車両情報Iv2の更新)に成功した回数である。また、車両情報Iv1、Iv2は、例えば、故障コード(DTC)及びフリーズフレームデータ(センサ値の時系列)の1セット分の情報に相当する。
【0027】
揮発性メモリ26は、電力が供給された状態下にのみ記憶データを保持可能なメモリであり、例えば、DRAM(Dynamic Random Access Memory)又はSRAM(Static Random Access Memory)から構成される。揮発性メモリ26は、記憶制御に必要な情報(具体的には、第1書換回数A、第2書換回数B、最新車両情報Iv)が一時的に格納される記憶領域34を有する。
【0028】
[エンジンECU12の動作]
車両情報記憶装置としてのエンジンECU12は、以上のように構成される。続いて、エンジンECU12(特に、記憶制御部28)の動作について、
図2及び
図3を参照しながら詳細に説明する。
【0029】
図2は、
図1に示す不揮発性メモリ24及び揮発性メモリ26の記憶状態に関する遷移図である。より詳しくは、本図は、各々の処理ステップS0〜S10での、第1記憶領域30、第2記憶領域32及び記憶領域34における格納値の段階的変化を示す。なお、格納値の更新があった箇所(格納領域)を太線の矩形枠によって表記している。
【0030】
ステップS0は、5回目の書き換えが正常に行われた記憶状態に相当する。この場合、第1記憶領域30の書換回数Nr1(=5)は、第2記憶領域32の書換回数Nr2(=5)に等しい。また、第1記憶領域30の車両情報Iv1は、第2記憶領域32の車両情報Iv2とすべて一致する。なお、記憶制御部28の初期化動作により、記憶領域34には「NULL」の値が格納されている。
【0031】
ステップS1において、記憶制御部28は、センサ群14からの最新の車両情報(以下、最新車両情報Iv)を揮発性メモリ26に書き込むことで、最新車両情報Ivを一時的に記憶させる制御を行う。これにより、記憶領域34の格納値(最新車両情報Iv)が、「NULL」から「6回目の情報」に更新される。
【0032】
ステップS2において、記憶制御部28は、第1記憶領域30の書換回数Nr1を不揮発性メモリ24から読み出し、揮発性メモリ26の記憶領域34に書き込むことで、最新車両情報Ivを一時的に記憶させる制御を行う。これにより、記憶領域34の格納値(第1書換回数A)が、「NULL」から「5」に更新される。
【0033】
ステップS3において、記憶制御部28は、第1記憶領域30(具体的には、第1回数格納領域30n)の書換回数Nr1を、カウントに使用しない値(以下、不使用値という)に更新する制御を行う。この不使用値は、例えば0を含む、書換回数Nr1の運用範囲から逸脱した任意の値(具体的には、上限値よりも大きい値)であってもよい。
【0034】
このように、記憶制御部28は、第1情報格納領域30vの更新を開始する前に、第1回数格納領域30nから読み出した書換回数Nr1を揮発性メモリ26に書き込み、かつ、書換回数Nr1のカウントに使用しない不使用値を第1回数格納領域30nに書き込む記憶制御を行う(ステップS2、S3)。
【0035】
ステップS4において、記憶制御部28は、一時的に記憶された最新車両情報Ivを揮発性メモリ26から読み出し、不揮発性メモリ24の第1記憶領域30に書き込む制御を行う。これにより、第1情報格納領域30vの格納値(車両情報Iv1)が、「5回目の情報」から「6回目の情報」に更新される。
【0036】
ステップS5において、記憶制御部28は、一時的に記憶された第1書換回数Aを揮発性メモリ26から読み出し、カウント更新(A←A+1)した後に、不揮発性メモリ24の第1記憶領域30に書き込む制御を行う。これにより、第1回数格納領域30nの格納値(書換回数Nr1)が、「0」から「6」に更新される。
【0037】
このように、記憶制御部28は、第1情報格納領域30vの更新が終了した後に、揮発性メモリ26から読み出した書換回数Nr1をカウント更新し、かつ、第1回数格納領域30nに書き込む記憶制御を行う(ステップS4、S5)。
【0038】
ステップS6において、記憶制御部28は、第2記憶領域32の書換回数Nr2を不揮発性メモリ24から読み出し、揮発性メモリ26の記憶領域34に書き込むことで、書換回数Nr2を一時的に記憶させる制御を行う。これにより、記憶領域34の格納値(第2書換回数B)が、「NULL」から「5」に更新される。
【0039】
ステップS7において、記憶制御部28は、第2記憶領域32(具体的には、第2回数格納領域32n)に格納された書換回数Nr2を、不使用値(0)に更新する制御を行う。ここで、書換回数Nr2の不使用値は、書換回数Nr1の不使用値と同一であってもよいし、異なっていてもよい。
【0040】
このように、記憶制御部28は、第2情報格納領域32vの更新を開始する前に、第2回数格納領域32nから読み出した書換回数Nr2を揮発性メモリ26に書き込み、かつ、書換回数Nr2のカウントに使用しない不使用値を第2回数格納領域32nに書き込む記憶制御を行う(ステップS6、S7)。
【0041】
ステップS8において、記憶制御部28は、一時的に記憶された最新車両情報Ivを揮発性メモリ26から読み出し、不揮発性メモリ24の第2記憶領域32に書き込む制御を行う。これにより、第2情報格納領域32vの格納値(車両情報Iv2)が、「5回目の情報」から「6回目の情報」に更新される。
【0042】
ステップS9において、記憶制御部28は、一時的に記憶された第2書換回数Bを揮発性メモリ26から読み出し、カウント更新(B←B+1)した後に、不揮発性メモリ24の第2記憶領域32に書き込む制御を行う。これにより、第2回数格納領域32nの格納値(書換回数Nr2)が、「0」から「6」に更新される。
【0043】
このように、記憶制御部28は、第2情報格納領域32vの更新が終了した後に、揮発性メモリ26から読み出した書換回数Nr2をカウント更新し、かつ、第2回数格納領域32nに書き込む記憶制御を行う(ステップS8、S9)。
【0044】
ステップS10は、6回目の書き換えが正常に行われた記憶状態に相当する。記憶制御部28の初期化動作により、記憶領域34には「NULL」の値が格納される。ここで、第1記憶領域30の書換回数Nr1(=6)は、第2記憶領域32の書換回数Nr2(=6)に等しい。また、第1記憶領域30の車両情報Iv1は、第2記憶領域32の車両情報Iv2とすべて一致する。
【0045】
図3は、各々の区間における記憶制御の特徴を模式的に示す図である。より詳しくは、本図は、状態チェック処理を実行した場合における、処理タイミング毎の記憶制御の挙動(イベント及び結果)を示す。
【0046】
ここで、「状態チェック」とは、不揮発性メモリ24の記憶状態に対する確認処理であり、具体的には、書換回数Nr1と、書換回数Nr2とが一致するか否かについて確認することを意味する。また、処理フェーズは、
図2に示す10個の区間(第1〜第10区間)により分類される。
【0047】
なお、記憶制御部28は、この状態チェック処理を不定期に実行してもよいし、定期的に実行してもよい。不定期の例として、[1]不揮発性メモリ24の読み出し要求時、[2]イグニッションスイッチ20のオン動作の直後、或いは[3]
図2に示す一連の動作の終了時点から所定時間が経過したとき、が挙げられる。
【0048】
第1〜第3区間では、書換回数Nr1、Nr2は、互いに等しい(Nr1=Nr2=5)。この場合、記憶制御部28は、車両情報Iv1、Iv2がいずれも最新であると判断し、不揮発性メモリ24に対して特別な処理を行わない。つまり、不揮発性メモリ24は、5回目の車両情報Iv1、Iv2を記憶した状態(データ同期が保たれた状態)を維持する。
【0049】
第4、第5区間では、第1回数格納領域30nに格納された書換回数Nr1が不使用値(つまり、Nr1=0)であって、第2回数格納領域32nに格納された書換回数Nr2が不使用値でない(Nr2=5)。この場合、記憶制御部28は、車両情報Iv2のみが最新であると判断する。
【0050】
つまり、書換回数Nr1が不使用値である一方の記憶領域(第1記憶領域30)が更新中である状態において、他方の記憶領域(第2記憶領域32)から書換回数Nr2及び車両情報Iv2を複製することで直近の記憶状態に戻すことができる。
【0051】
この場合、記憶制御部28は、[1](Nr1←Nr2)第2回数格納領域32nの書換回数Nr2を複製して第1回数格納領域30nに書き込むと共に、[2](Iv1←Iv2)第2情報格納領域32vの車両情報Iv2を複製して第1情報格納領域30vに書き込む記憶制御を行う。その結果、不揮発性メモリ24は、5回目の車両情報Iv1、Iv2を記憶した状態(つまり、データ同期が保たれた状態)に戻る。
【0052】
ここで、記憶制御部28は、車両情報Iv2を複製する記憶制御が完了するまでの間、この複製以外での第1記憶領域30及び第2記憶領域32への書き込みを行わない。記憶データの復旧中に複製以外の書き込みを禁止することで、記憶状態に関する異常の発生を防止することができる。
【0053】
第6、第7区間では、書換回数Nr1(=6)、Nr2(=5)はいずれも不使用値ではなく、かつ、Nr1>Nr2の大小関係を満たしている。この場合、記憶制御部28は、車両情報Iv1のみが最新であると判断する。
【0054】
つまり、書換回数Nr1が大きい一方の記憶領域(第1記憶領域30)が更新後であり、かつ、他方の記憶領域(第2記憶領域32)が更新前である状態において、第1記憶領域30から車両情報Iv1を複製することで最新の記憶状態に移行することができる。
【0055】
この場合、記憶制御部28は、[1](Nr2←Nr1)第1回数格納領域30nの書換回数Nr1を複製して第2回数格納領域32nに書き込むと共に、[2](Iv2←Iv1)第1情報格納領域30vの車両情報Iv1を複製して第2情報格納領域32vに書き込む記憶制御を行う。なお、書換回数Nr1の複製に代わって、カウント更新した書換回数Nr2を第2回数格納領域32nに書き込んでもよい。
【0056】
第4、第5区間の場合と同様に、記憶制御部28は、車両情報Iv1を複製する記憶制御が完了するまでの間、この複製以外での第1記憶領域30及び第2記憶領域32への書き込みを行わないようにする。その結果、不揮発性メモリ24は、6回目の車両情報Iv1、Iv2を記憶した状態(つまり、データ同期が保たれた状態)になる。
【0057】
第8、第9区間では、第1回数格納領域30nに格納された書換回数Nr1が不使用値ではなく(Nr1=6)、第2回数格納領域32nに格納された書換回数Nr2が不使用値(つまり、Nr2=0)である。この場合、記憶制御部28は、車両情報Iv1のみが最新であると判断する。
【0058】
つまり、書換回数Nr2が不使用値である一方の記憶領域(第2記憶領域32)が更新中である状態において、他方の記憶領域(第1記憶領域30)から書換回数Nr1及び車両情報Iv1を複製することで最新の記憶状態に移行することができる。
【0059】
この場合、記憶制御部28は、[1](Nr2←Nr1)第1回数格納領域30nの書換回数Nr1を複製して第2回数格納領域32nに書き込むと共に、[2](Iv2←Iv1)第1情報格納領域30vの車両情報Iv1を複製して第2情報格納領域32vに書き込む記憶制御を行う。
【0060】
第6、第7区間の場合と同様に、記憶制御部28は、車両情報Iv1を複製する記憶制御が完了するまでの間、この複製以外での第1記憶領域30及び第2記憶領域32への書き込みを行わないようにする。その結果、不揮発性メモリ24は、6回目の車両情報Iv1、Iv2を記憶した状態(つまり、データ同期が保たれた状態)になる。
【0061】
第10区間では、書換回数Nr1、Nr2は、互いに等しい(Nr1=Nr2=6)。この場合、記憶制御部28は、車両情報Iv1、Iv2がいずれも最新であると判断し、不揮発性メモリ24に対して特別な処理を行わない。つまり、不揮発性メモリ24は、6回目の車両情報Iv1、Iv2を記憶した状態(データ同期が保たれた状態)を維持する。
【0062】
[エンジンECU12(車両情報記憶装置)による効果]
以上のように、エンジンECU12は、車両に搭載され、かつ、車両の状態を示す車両情報Iv1、Iv2を記憶し、[1]第1記憶領域30及び第2記憶領域32を有する不揮発性メモリ24と、[2]車両情報Iv1、Iv2の書換回数Nr1、Nr2を少なくとも記憶する揮発性メモリ26と、[3]不揮発性メモリ24及び揮発性メモリ26に対する記憶制御を行う記憶制御部28と、を備え、[4]第1記憶領域30は、車両情報Iv1が格納される第1情報格納領域30vと、書換回数Nr1が格納される第1回数格納領域30nと、を含み、[5]第2記憶領域32は、車両情報Iv2が格納される第2情報格納領域32vと、書換回数Nr2が格納される第2回数格納領域32nと、を含む。
【0063】
そして、[6]記憶制御部28は、第1情報格納領域30vの更新を開始する前に、(6a)第1回数格納領域30nから読み出した書換回数Nr1を揮発性メモリ26に書き込み、(6b)書換回数Nr1のカウントに使用しない不使用値(=0)を第1回数格納領域30nに書き込む。[7]記憶制御部28は、第1情報格納領域30vの更新が終了した後に、(7a)揮発性メモリ26から読み出した書換回数Nr1をカウント更新し、(7b)第1回数格納領域30nに書き込む記憶制御を行う。
【0064】
そして、[8]記憶制御部28は、第2情報格納領域32vの更新を開始する前に、(8a)第2回数格納領域32nから読み出した書換回数Nr2を揮発性メモリ26に書き込み、(8b)書換回数Nr2のカウントに使用しない不使用値(=0)を第2回数格納領域32nに書き込む。[9]記憶制御部28は、第2情報格納領域32vの更新が終了した後に、(9a)揮発性メモリ26から読み出した書換回数Nr2をカウント更新し、(9b)第2回数格納領域32nに書き込む記憶制御を行う。
【0065】
このように構成することで、例えば、電力の瞬断によって揮発性メモリ26に一時的に記憶された情報が消失した場合であっても、現在格納されている2つの書換回数Nr1、Nr2の数値関係(単独値又は相対値)に基づいて第1記憶領域30及び第2記憶領域32の更新状況を判別可能となり、その後に必要な対処を施すことで記憶データを適切に復旧することができる。これにより、不揮発性メモリ24の使用容量を減らしつつ、記憶データの信頼性を確保することができる。
【0066】
また、車両のイグニッションスイッチ20のオフ動作に応じて、電力の供給が停止されるエンジンECU12に適用することがより好ましい。エンジン16を切った後のセルフシャットダウン機能を備えていない車両では、揮発性メモリ26のデータバックアップを取得できないので特に効果的である。
【0067】
[補足]
なお、この発明は、上述した実施形態に限定されるものではなく、この発明の主旨を逸脱しない範囲で自由に変更できることは勿論である。或いは、技術的に矛盾が生じない範囲で各々の構成を任意に組み合わせてもよい。
【0068】
例えば、この実施形態では、第1記憶領域30→第2記憶領域32の更新順に従って更新を行っているが、逆の更新順(つまり、第2記憶領域32→第1記憶領域30)であってもよい。また、データ同期が保たれるのであれば、更新順は固定されていなくてもよい。
【0069】
また、この実施形態では、第1回数格納領域30nには1個の書換回数Nr1が格納されているが、同一の値を2個以上格納可能な領域を設け、いわゆるデータの多重化を図ってもよい。具体的には、すべての値が一致する場合に正常値として判定したり、多数決により格納値を決定したりすることで、データ同期処理の信頼性がさらに向上する。また、第2回数格納領域32n(書換回数Nr2)に関しても同様である。