情報処理装置、データ記録方法
【課題】フラッシュメモリの使用効率を向上させる情報車両データ記録装置を提供すること。
【解決手段】予め定められた車両状況が検出されると車両データを不揮発性のリングバッファに記憶する情報処理装置100において、車両状況が検出された前後の車両データを収集する車両データ収集手段32と、車両データを一次記憶する車両データ一次記憶手段21と、リングバッファの車両データを消去単位ブロック毎に古い順に消去するデータ消去手段34と、車両データ一次記憶手段に記憶された車両データをリングバッファの最後尾の車両データに続けて書き込むデータ書き込み手段35と、を有し、データ消去手段は、車両データのサイズ以上の空き領域がなくなっても前記車両状況が検出されるまで、最も古い車両データが記憶されている消去単位ブロックの車両データを保持する、ことを特徴とする。
【解決手段】予め定められた車両状況が検出されると車両データを不揮発性のリングバッファに記憶する情報処理装置100において、車両状況が検出された前後の車両データを収集する車両データ収集手段32と、車両データを一次記憶する車両データ一次記憶手段21と、リングバッファの車両データを消去単位ブロック毎に古い順に消去するデータ消去手段34と、車両データ一次記憶手段に記憶された車両データをリングバッファの最後尾の車両データに続けて書き込むデータ書き込み手段35と、を有し、データ消去手段は、車両データのサイズ以上の空き領域がなくなっても前記車両状況が検出されるまで、最も古い車両データが記憶されている消去単位ブロックの車両データを保持する、ことを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、予め定められた車両状況が検出されると車両データを不揮発性のリングバッファに記憶する情報処理装置に関する。
【背景技術】
【0002】
走行中の車両データは、メーカ等が故障の原因を特定したり不具合の発生当時の状況を解析するために役立つことが多い。このため、車両に、車両データを記録する車両データ記録装置が搭載されることがある。車両データには車載された各種のセンサの検出値が含まれる。車両データはイベントの発生を契機にして記録されるため、走行している限り不定期に発生しうる。
【0003】
車両データ記録装置の記録媒体としては、IG‐OFF後も記録を保持するように、不揮発メモリが利用される。不揮発メモリにはフラッシュメモリ、HDD、EEPROM等があるが、サイズ、安定性、コスト、及び、書き込み速度などの点からフラッシュメモリが採用されることが少なくない。しかしながら、フラッシュメモリは、ブロック単位(イレーズブロック)でしかデータの消去が行えないという制約を有している(書き込みはバイト又はワード単位で可能)。また、車両データ記録装置が単にデータの書き変えを繰り返すと特定のブロックのデータの書き換え回数が増大する。ところが、フラッシュメモリは書き換え可能な回数に上限があるため、そのブロックだけ早く寿命を迎えてしまい、フラッシュメモリ全体の製品寿命が短くなってしまう。
【0004】
このため、あるブロックへの書き換えが集中することを回避したり、ブロックの書き換え回数を平均化する技術が知られている(例えば、特許文献1参照。)。特許文献1には、ブロックを順番に並べた論理的なリングバッファを構成し、フラッシュメモリにデータを記録するときには消去済みセクタを有するメモリブロック内の先頭の消去済みセクタから順次データを記録するデータ記録法が開示されている。このデータ記録方は、メモリブロックの最終セクタにデータが記録された後にはリングバッファ上における次のメモリブロックのデータを消去しておき、次回の記録時は、メモリブロックの先頭セクタから順次データの記録を継続する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004‐071033号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に記載されたデータ記録法では、ブロックを消去してから次回のイベントで車両データを書き込むまで、ブロックに何もデータが書き込まれていない状態が生じているという問題がある。
【0007】
図1は従来のデータ記録法の問題を説明する図の一例である。1〜Nの四角は消去単位のブロックを表し、各ブロックが論理的に連結されてリングバッファを形成している。
(i) 車両データ記録装置は、イベントが発生する前後の車両データを収集する。
(ii) 車両データ記録装置はフラッシュメモリに車両データを書き込む(図ではN番目のブロック)。
(iii) ブロックの最後に車両データを書き込むと、車両データ記録装置は、次のブロックを消去する(図では1番目のブロック)。
(iv) 車両データ記録装置は、次のイベントが発生するとイベントの前後の車両データを収集する。
(v) 車両データ記録装置は、すでに消去してあるブロック(図では1番目のブロック)の先頭に車両データを書き込む。
【0008】
このように(iii)〜(v)の間、フラッシュメモリのブロックには車両データが記録されていない時間が生じてしまい、メモリの使用効率が低下している。
【0009】
本発明は、上記課題に鑑み、フラッシュメモリの使用効率を向上させる情報車両データ記録装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明は、予め定められた車両状況が検出されると車両データを不揮発性のリングバッファに記憶する情報処理装置において、前記車両状況が検出された前後の車両データを収集する車両データ収集手段と、前記車両データ収集手段が収集した車両データを一次記憶する車両データ一次記憶手段と、車両データのサイズ以上の空き領域がなくなると、前記リングバッファの車両データを消去単位ブロック毎に古い順に消去するデータ消去手段と、前記車両データ一次記憶手段に記憶された車両データを、前記リングバッファの最後尾の車両データに続けて書き込むデータ書き込み手段と、を有し、前記データ消去手段は、車両データのサイズ以上の空き領域がなくなっても前記車両状況が検出されるまで、最も古い車両データが記憶されている消去単位ブロックの車両データを保持し、前記車両状況が検出されたことを契機に最も古い車両データが記憶されている消去単位ブロックの車両データを消去する、ことを特徴とする。
【発明の効果】
【0011】
フラッシュメモリの使用効率を向上させる情報車両データ記録装置を提供することができる。
【図面の簡単な説明】
【0012】
【図1】従来のデータ記録法の問題を説明する図の一例である。
【図2】本実施形態の車両データ記録装置による車両データの記録を模式的に説明する図の一例である。
【図3】車両データ記録装置の構成図の一例である。
【図4】車両データ記録装置の機能ブロック図の一例である。
【図5】車両データ記録装置の動作手順を示すフローチャート図の一例である。
【図6】ブロックサイズと車両データのサイズの関係を模式的に説明する図の一例である。
【図7】ブロック間に車両データが跨って記憶されている不揮発メモリを模式的に説明する図の一例である。
【図8】車両データ記録装置による車両データの記録を模式的に説明する図の一例である(実施例2)。
【図9】車両データ記録装置の機能ブロック図の一例である(実施例2)。
【図10】車両データ記録装置の動作手順を示すフローチャート図の一例である。
【図11】退避領域の空き容量と車両データのサイズの関係を模式的に説明する図の一例である。
【発明を実施するための形態】
【0013】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【実施例1】
【0014】
図2は、本実施形態の車両データ記録装置による車両データの記録を模式的に説明する図の一例である。
(i) 車両データ記録装置は、イベントが発生する前後の車両データを収集する。
(ii) 車両データ記録装置はフラッシュメモリに車両データを書き込む(図ではN番目のブロック)。
(iii) 車両データ記録装置はブロックに車両データを書き込んでも、次のブロックを消去しない。
(iv) 車両データ記録装置は、次のイベントが発生する前後の車両データを収集する。
(v) ブロックに空き領域がない場合、車両データ記録装置は、リングバッファにおける次のブロックを消去する(図では1番目のブロック)。
(vi) 車両データ記録装置は、消去したブロックの先頭に車両データを書き込む。
【0015】
車両データ記録装置は、(iii)において次のブロックを消去せず、次のイベントが発生した段階でブロックを消去するので、ブロックに車両データが記録されていない時間がほとんどなくなり、フラッシュメモリの使用効率を向上できる。
【0016】
〔構成例〕
図3は、本実施形態の車両データ記録装置100の構成図の一例を示す。車両データ記録装置100は、1つ以上のECU(Electronic Control Unit)により構成され、各ECUは車載ネットワーク13を介して接続されている。車載ネットワーク13のプロトコルには、CAN(Controller Area Network)、FlexRay、Lin(Local Interconnect Network)等があるが、本実施形態ではCANを例にして説明する。
【0017】
送信制御ECU12はCANデータ(車両データ)を受信制御ECU11に送信するECUである。図では1つの送信制御ECU12しかないが、車両データを生成するECUは2台以上あってもよい。送信制御ECU12のハード的な構成は受信制御ECU11と同等なので図示は省略した。なお、受信制御ECU11及び送信制御ECU12は機能的な呼称であり、車載装置を制御するECUが受信制御ECU11及び送信制御ECU12を兼ねることができる。受信制御ECU11としては、例えば、メータECU、ボディECU、ナビECU、通信制御ECU等が挙げられる。送信制御ECU12としては、エンジンECU、ブレーキECU、パワステECU、エアバッグECU、トランスミッションECU等が挙げられる。受信制御ECU自身が車両データを生成することもある。
【0018】
メータECUは、スイッチ類(例えば、ターンシグナルスイッチ、ハンドブレーキスイッチ等)の操作状態、他のECUから取得した信号(車速、エンジン回転数、ドアロック状態、シートベルト装着状態、ワイパ作動状態等)を数値や揺動する針の指針位置に変換して表示する。ボディECUは、カーテシスイッチのオン/オフを検出したり、車内灯を制御したり、乗員の操作に基づきドアロック/アンロック等を行う。ナビECUは、GNSS(Global Navigation Satellite Systems)などを使用して車両の位置情報を検出し、周辺の道路地図と自車位置アイコンを液晶ディスプレイなどの表示装置に表示する。また、目的地までの経路を算出し右左折や車線変更などの経路案内を行う。ナビECUにはラジオやテレビの受信機能、CD,DVD,BDプレーヤなどのオーディオビジュアル機能が搭載されることがある。通信制御ECUは、携帯電話網や無線LAN、WIMAXなどの無線通信網に接続して、各種のサーバと通信する。不揮発メモリに記憶された車両データの一部又は全体を外部のサーバに送信することがある。
【0019】
エンジンECUは、アクセル開度等を検出してスロットル開度や燃料噴射量を決定し、また、クランク角に基づき点火タイミングを制御する。ブレーキECUは各車輪の回転速度からスリップを検出し、スリップしている車輪の制動力を低減することで車輪ロックを回避するABS(Anti‐lock Brake System)制御や、発信時の車輪の空転を検出した場合に車輪に制動力を加えるTRC(Traction Control)制御を行う。この他、ヨーレート、ステアリング舵角、車輪速度等に基づき、各輪の制動力を調整するESC(Electronic Stability Control)制御を行う。パワステECUは運転者の操舵トルクを検出して、モータを駆動させ運転者の操舵方向にステアリングシャフトを回転させる操舵支援を行う。また、LKA(Lane Keeping Assist system)が作動している間は、カメラECUが認識した走行レーンの略中央を走行するようにステアリングシャフトを回転駆動する。エアバッグECUは、車両に働いた加減速度や横減速度を解析して対応するエアバッグ(運転席、助手席、サイドエアバッグ、カーテンエアバッグ等)を展開する。トランスミッションECUは、アクセル開度やブレーキ操作によるエンジン回転数の増減、加速度、及び、車速等に応じてトランスミッションフルードが通過するバルブを開閉してギアを切り換える。
【0020】
受信制御ECU11は、OS/CANドライバ25、マイコン24、RAM21、ROM22、及び、不揮発メモリ23を有する。OSはマイコン24の汎用的な機能を抽象化してCPUが実行するプログラムがマイコン24の機能を利用することを可能にする。また、OSは、マルチタスク環境ではタスク管理したり、タスク毎にデータを保護したり、タスク間通信を行う。
【0021】
CANドライバは、不図示のCANコントローラにCANデータの送信を要求したり、CANコントローラが受信したCANデータからデータ部分を取り出す。すなわち、CANドライバは、プログラムが送信要求したデータを、CANプロトコルのフォーマットに格納し、CANコントローラのバッファに設定する。また、CANコントローラが予め定められたCAN IDのCANデータを受信した場合、CANドライバはCANプロトコルのフォーマットに従いCANデータから取り出したデータをプログラムに送出する。
【0022】
マイコン24は、主にCPU、不図示のRAM、ROM、DMAC(Direct Memory Access)、INTC(Interrupt Controller)を有する。また、図では、受信制御ECU11がマイコン24外に、RAM21、ROM22、及び、不揮発メモリ23を有するが、これらをマイコン24内に格納して、1つのマイコン24として構成することもできる。RAM21はプログラム(車載されたアプリケーション)が使用する揮発性の記憶手段であり、ROM22は車載されたプログラムを記憶する不揮発メモリ23である。不揮発メモリ23は、車両データを記憶する本実施形態のフラッシュメモリである。不揮発メモリ23は、消去単位であるブロック毎に論理的な順番が付与されており、リングバッファを構成している。
【0023】
図4は、車両データ記録装置100の機能ブロック図の一例である。図4の各機能はROM22に記憶されたプログラムをマイコン24のCPUが実行し、不揮発メモリ23や、DMAC及びCANコントローラなどのICと協働することで実現される。
【0024】
受信制御ECU11は、イベント検出部31、車両データ収集部32、空き領域判定部33、ブロック消去部34、及び、車両データ書き込み部35を有する。イベント検出部31は、車両データを記憶する契機となるイベントの発生を検出する。イベントには、例えば、IG‐ON、IG‐OFF、車速が発進したこと、停止したこと、走行中に車速が所定値以上になったこと、加速度/減速度/横加速度が所定値以上になったこと、ヨーレートが所定値以上になったころ、ABS・ESCが働いたこと、エアバッグが展開したこと、等がある。イベント検出部31は、センサが検出した検出信号や送信制御ECU12が送信するCANデータに基づきイベントを検出する。また、送信制御ECU12からイベント発生の通知そのものを取得してもよい。イベント検出部31は、イベントを検出すると車両データ収集部32に車両データの収集を要求する。
【0025】
車両データ収集部32は、送信制御ECU12から車両データを収集する。記憶される車両データは、車速、加速度(減速度)、アクセル開度、プレーキペダルの踏み込み量、エンジン回転数、ヨーレート、位置情報などである。さらに、カメラが撮影した車両前方、側方、後方等の画像を記録してもよい。
【0026】
車両データの内容はイベントの種類に関係なく固定である。しかし、車両データの内容はイベントの種類により変えてもよいし、車両データのサイズを変えることは困難ではない。しかし、イベント毎にデータサイズが変わってしまうと、後の解析の際にどのアドレスでイベントが切り替わったのかを判別しにくい。よって、車両データの内容がイベントの種類により変わったとしても、車両データのサイズは共通であることが好ましい。
【0027】
また、イベントの種類により車両データのサイズを変える場合、車両データにイベントIDを追加することが好適である。イベントIDにより、1回の車両データのサイズが定まるので、不揮発メモリ23の車両データがどのアドレスで次の車両データに切り替わったのかを判別できる。
【0028】
また、車両データ収集部32は、イベント発生前の車両データとイベント発生後の車両データとをそれぞれ収集する。イベント発生前の車両データとしては、車速、加速度(減速度)、アクセル開度やブレーキペダルの踏み込み量などが挙げられる。イベント発生後の車両データとしては、エンジン回転数、ヨーレート、位置情報などが挙げられる。イベント発生の前と後で、同じデータを収集することを妨げるものではない。車両データ収集部32は、イベントの発生が検出される前から、例えば定期的にイベント発生前の車両データをRAM21に記憶しておく。そして、イベントの発生が検出されると、イベント発生後の車両データをRAM21に記憶する。車両データ書き込み部35は、RAM21に記憶されているイベント発生前の車両データ、及び、イベント発生後の車両データを不揮発メモリ23に書き込む。
【0029】
空き領域判定部33は、不揮発メモリ23のブロックに空き領域があるか否かを判定する。1回の車両データのサイズ、最後に車両データが書き込まれたアドレス、及び、ブロックのサイズは既知である。よって、空き領域判定部33は、ブロック内に1回分の車両データのサイズの空き領域があるか否かに基づき、不揮発メモリ23のブロックに空き領域があるか否かを判定する。1回分の車両データのサイズの空き領域がない場合、ブロック消去部34に1ブロックの消去を要求する。1回分の車両データのサイズの空き領域がある場合、車両データ書き込み部35に車両データの不揮発メモリ23への書き込みを要求する。
【0030】
ブロック消去部34は、ブロック内に1回分の車両データのサイズの空き領域がない場合、最後に車両データが書き込まれたブロックの次のブロックを消去する。これにより、空き領域が確保される。上記のように、フラッシュメモリはブロック単位でしか消去できない。
【0031】
車両データ書き込み部35は、RAM21に記憶された車両データを不揮発メモリ23に書き込む。具体的には、最後に車両データを書き込んだアドレスの次のアドレスから車両データを書き込む。不揮発メモリ23に記憶された車両データの最後のアドレスを、ポインタとして次回の書き込みのためRAM21等に保持しておく。
【0032】
〔動作手順〕
図5は、本実施例の車両データ記録装置100の動作手順を示すフローチャート図の一例である。図5の手順は、例えばIG‐ON後(ハイブリッド車や電気自動車の場合はシステムの起動後)繰り返し実行される。
【0033】
車両データ収集部32は、イベント前の車両データを収集する(S10)。
【0034】
車両データ収集部32は、イベント前の車両データを収集しながら、イベント検出部31がイベントの発生を検出したか否かを判定する(S20)。イベント検出部31がイベントの発生を検出しない場合(S20のNo)、車両データ収集部32はイベント前の車両データの収集を継続する。
【0035】
イベント検出部31がイベントの発生を検出した場合(S20のYes)、車両データ収集部32はイベント後の車両データを収集する(S30)。これにより、イベント発生時に記憶すべき車両データを収集できた。
【0036】
空き領域判定部33は、不揮発メモリ23に車両データを記憶するために必要な空き領域があるか否かを判定する(S40)。空き領域判定部33は、ポインタにより特定した車両データの書き込み先の先頭アドレスに車両データのサイズを加えた値が、1ブロックの最後のアドレスより大きいか否かを判定する。1ブロックの大きさは固定なので、1ブロックの最後のアドレスは既知である。
【0037】
ブロックに空き領域がある場合(S40のYes)、車両データ書き込み部35は車両データを空き領域に書き込む(S50)。
【0038】
一方、ブロックに空き領域がない場合(S40のNo)、ブロック消去部34はブロック単位でブロックを消去する(S60)。
【0039】
車両データ書き込み部35は、消去により生成された空き領域に車両データを書き込む(S50)。
【0040】
次に、車両データ書き込み部35は、書き込まれた車両データのサイズにしたがい、ポインタを更新する(S70)。これにより、ポインタは、不揮発メモリ23における次回の車両データの書き込み先の先頭アドレスを示す。
【0041】
このように、イベント発生後の車両データを書き込む直前に、1ブロック消去することで、ブロックが消去されている時間を短くでき、不揮発メモリ23の使用効率を向上できる。
【0042】
〔変形例〕
これまで説明したように、イベント発生後に1ブロック消去することで、不揮発メモリ23の使用効率を向上できた。しかし、1ブロックのサイズ(以下、ブロックサイズという)に比べ、車両データのサイズが小さいと、ブロックにデータが記憶されていない時間が長くなり使用効率の向上効果が低下する。
【0043】
図6は、ブロックサイズと車両データのサイズの関係を模式的に説明する図の一例である。図6(a)では、ブロックサイズよりも車両データのサイズの方が小さいため、データが記憶されていない領域が大きくなってしまう。イベントが発生することで、データが記憶されていない領域は、順次、小さくなるが、データが記憶されていない領域はメモリの使用効率を低下させている。
【0044】
これに対し、図6(b)では車両データのサイズがブロックサイズの半分程度になっている。この場合、ブロックが消去され、1つの車両データが書き込まれた直後から、データが記憶されていない領域をブロックサイズの半分以下に抑制することができる。したがって、ブロックサイズに対し車両データのサイズが大きいほど、メモリの使用効率を向上させやすい。
【0045】
図6(c)では、車両データのサイズとブロックサイズが同じになっている。この場合、ブロックが消去され、1つの車両データが書き込まれた直後から、データが記憶されていない領域をゼロにすることができる。
【0046】
また、図6(d)では、車両データのサイズがブロックサイズの整数倍になっている。この場合、2ブロックが消去され、1つの車両データが書き込まれた直後から、データが記憶されていない領域をゼロにすることができる。したがって、図6(c)(d)のように、車両データのサイズがブロックサイズの整数倍の場合に、最もメモリの使用効率を向上させることができる。
【実施例2】
【0047】
本実施例では、ブロック間に車両データが跨って記憶されている場合について説明する。
図7は、ブロック間に車両データが跨って記憶されている不揮発メモリ23を模式的に説明する図の一例である。図の斜線の四角が1つの車両データであり、1番目のブロックと2番目のブロックに跨っている。ブロックのサイズが車両データのサイズの整数倍でない場合、1つの車両データがブロック間に跨って記録されることがある。ブロックのサイズが車両データのサイズの整数倍であっても、車両データ以外のデータが記憶されていれば、1つの車両データがブロック間に跨って記録されるおそれがある。
【0048】
イベントが発生し、1番目のブロックに車両データを書き込む場合、ブロック消去部34は1番目のブロックを消去するので、1番目のブロックと2番目のブロックに跨っていた車両データは一部のみが消去される。このため、1番目のブロックと2番目のブロックに跨っていた車両データに連続性がなくなり、車両データとしての有用性が低下してしまう(解析に使えなくなる)。連続性がなくなった車両データは解析に使用できないとすれば、実質的に消去された場合と同様に不揮発メモリ23の使用効率を低下させてしまう。
【0049】
そこで、本実施例では、不揮発メモリ23に退避領域を設けておき、退避領域に1ブロック分の車両データが記憶されたら、不揮発メモリ23のブロックを消去して、退避領域の1ブロック分の車両データを書き込む車両データ記録装置100について説明する。
【0050】
図8は、本実施例の車両データ記録装置100による車両データの記録を模式的に説明する図の一例である。図8では1ブロック分の退避領域が設けられている。退避領域は、不揮発メモリ23に設けられている。退避領域をRAM21に設けてもよい。
(i) イベントが発生したため、車両データ記録装置100がイベント発生前後の車両データを収集する。
(ii) すでに、不揮発メモリ23の空き領域がなくなっている。このため、車両データ記録装置100は、退避領域に車両データを書き込む。
(iii) 続いて、イベントが発生したため、車両データ記録装置100がイベント発生前後の車両データを収集する。
(iv) 車両データ記録装置100は、退避領域に車両データを書き込むと、1ブロック分以上か否かを判定し、1ブロック分以上の車両データが退避される場合、1番目のブロックを消去する。
(v) 1ブロックの空き容量が生成されたので、退避領域の車両データ及び最も新しい車両データを書き込む。退避領域の車両データは不要になったので消去しておく。
【0051】
このような手順によれば、従来では(ii)の時点で1ブロック分の車両データが消去されたのに比べ、(iv)で1ブロック分の車両データが消去されるまで、1番目のブロックと2番目のブロックに跨った車両データの連続性がなくなる時間を短くできる。
【0052】
図9は、本実施例の車両データ記録装置100の機能ブロック図の一例を示す。図9において図4と同一部には同一の符号を付しその説明は省略する。
【0053】
本実施例の空き領域判定部33は、不揮発メモリ23の各ブロックへの書き込みが一巡するまで、ブロックに空き領域があるか否かを判定する。しかし、本実施例では、最後のNブロックへの書き込みが終了すると、常にブロックには空き領域がなくなるので、各ブロックへの書き込みが一巡した後は、空き領域判定部33が空き領域の有無を判定する必要がない。ただ、各ブロックへの書き込みが一巡した後も空き領域判定部33がブロックに空き領域があるか否かを判定しても不都合はない。
【0054】
同様に、車両データ書き込み部35は、各ブロックへの書き込みが一巡するまで、車両データをブロックに書き込むが、その後、ブロックに直接、車両データを書き込むことはない。
【0055】
各ブロックへの書き込みが一巡した後、不揮発メモリ23には空き領域がないので、本実施例では退避領域書き込み部36が退避領域に車両データを書き込む。いったん、退避領域に書き込むことで、2つのブロックに跨った車両データの一部が消去され、車両データに連続性がなくなる時間を短くできる。
【0056】
退避領域操作部37は、退避領域に1ブロック分以上の車両データが記憶されるか否かを実際に記憶する前に判定する。1ブロック分以上の車両データが記憶される場合、ブロック消去部34にブロックの消去を要求する。ブロック消去部34が1ブロックを消去すると、退避領域操作部37は退避領域の車両データ及び最新の車両データを不揮発メモリ23のブロックに書き込む。
【0057】
図10は、本実施例の車両データ記録装置100の動作手順を示すフローチャート図の一例である。図10のS30までの手順は、図5と同様である。すなわち、イベント検出部31がイベントの発生を検出すると、車両データ収集部32はイベント後の車両データを収集する(S30)。これにより、イベント発生時に記憶すべき車両データを収集できた。
【0058】
次に、空き領域判定部33は、不揮発メモリ23に車両データを記憶するために必要な空き領域があるか否かを判定する(S40)。空き領域判定部33は、ポインタにより特定した車両データの書き込み先の先頭アドレスに車両データのサイズを加えた値が、1ブロックの最後のアドレスより大きいか否かを判定する。本実施例では1ブロックを消去しないので、不揮発メモリ23への記憶の一巡後、S40の判定はNoとなる。ブロックに空き領域がある場合(S40のYes)、車両データ書き込み部35は車両データを空き領域に書き込む(S50)。
【0059】
ブロックに空き領域がない場合(S40のNo)、退避領域操作部37は、退避領域に1ブロック分以上の車両データを記憶するか否かを判定する(S110)。すなわち、実際に記録する前に、退避領域にすでに書き込まれた車両データのサイズと、これから書き込む車両データのサイズの合計が、1ブロック分か否かを判定する。書き込む前に判定することで、退避領域のサイズを1ブロック以下に抑制できる。
【0060】
退避領域に1ブロック分以上の車両データが記憶されない場合(S110のNo)、退避領域書き込み部36は、退避領域の空き領域に車両データを書き込む(S120)。また、不揮発メモリ23のブロックを消去すべきでないので、処理はS10に戻る。
【0061】
退避領域に合計で1ブロック分以上の車両データが記憶される場合(S110のYes)、ブロック消去部34はブロック単位で不揮発メモリ23の1ブロックを消去する(S130)。
【0062】
次に、退避領域操作部37は退避領域の車両データを、消去したブロックに複写する(S140)。
【0063】
そして、RAM21に保持している、最新の車両データを、車両データ書き込み部35が消去したブロックに書き込む(S150)。
【0064】
退避領域操作部37は退避領域の車両データを消去する(S160)。
【0065】
車両データ書き込み部35は、車両データを書き込んだサイズにしたがい、ポインタを更新する(S70)。これにより、ポインタは、不揮発メモリ23における次回の車両データの書き込み先の先頭アドレスを示す。
【0066】
このように、退避領域を設けることで、2つのブロックに車両データが跨って記憶されている場合、跨った車両データの連続性がなくなる時間を最小限にできる。
【0067】
〔1ブロック超過分の車両データについて〕
例えば、ステップS110で退避領域に1ブロックより大きい車両データが記憶される場合、超過分の車両データについて説明する。
【0068】
図11(a)は、退避領域の空き容量と車両データのサイズの関係を模式的に説明する図の一例である。退避領域の空き容量よりも車両データの方が大きい場合、不揮発メモリ23を1ブロック分消去しても、退避領域と車両データを全て、不揮発メモリ23の1ブロックには記憶できない。
【0069】
そこで、このような場合、退避領域操作部37は退避領域と最新の車両データで合計1ブロック分を不揮発メモリ23に書き込む。そして、最新の車両データのうち不揮発メモリ23の1ブロックに記憶可能な1ブロック分だけ記憶しておき、1ブロックの超過分は退避メモリに記憶しておけばよい。こうすることで、退避領域は1ブロックしかなくても、1ブロックを超過した分の車両データに対応できる。
【0070】
または、図11(b)のように退避領域を2ブロック設けてもよい。この場合は、退避領域が2ブロックあることを利用して、RAM21に記憶されている最新の車両データをいったん退避領域に記憶することができる。
【0071】
退避領域に記憶された車両データのサイズが1ブロック以上になった場合、退避領域操作部37が退避領域の1ブロック分を不揮発メモリ23に書き込む。そして、1ブロックの超過分は2番目の退避メモリに記憶しておく。
【0072】
退避領域操作部37は次回の車両データは2番目の退避メモリに続けて記憶し、2番目の退避領域に空き領域がなくなると1番目の退避領域に記憶する。すなわち、退避領域もリングバッファのように使用される。こうすることで、退避領域は2ブロック必要になるが、車両データの書き込み処理を図11(a)よりも簡易化することができる。
【符号の説明】
【0073】
11 受信制御ECU
12 送信制御ECU
13 車載ネットワーク
21 RAM
22 ROM
23 不揮発メモリ
24 マイコン
25 OS/CANドライバ
100 車両データ記録装置
【技術分野】
【0001】
本発明は、予め定められた車両状況が検出されると車両データを不揮発性のリングバッファに記憶する情報処理装置に関する。
【背景技術】
【0002】
走行中の車両データは、メーカ等が故障の原因を特定したり不具合の発生当時の状況を解析するために役立つことが多い。このため、車両に、車両データを記録する車両データ記録装置が搭載されることがある。車両データには車載された各種のセンサの検出値が含まれる。車両データはイベントの発生を契機にして記録されるため、走行している限り不定期に発生しうる。
【0003】
車両データ記録装置の記録媒体としては、IG‐OFF後も記録を保持するように、不揮発メモリが利用される。不揮発メモリにはフラッシュメモリ、HDD、EEPROM等があるが、サイズ、安定性、コスト、及び、書き込み速度などの点からフラッシュメモリが採用されることが少なくない。しかしながら、フラッシュメモリは、ブロック単位(イレーズブロック)でしかデータの消去が行えないという制約を有している(書き込みはバイト又はワード単位で可能)。また、車両データ記録装置が単にデータの書き変えを繰り返すと特定のブロックのデータの書き換え回数が増大する。ところが、フラッシュメモリは書き換え可能な回数に上限があるため、そのブロックだけ早く寿命を迎えてしまい、フラッシュメモリ全体の製品寿命が短くなってしまう。
【0004】
このため、あるブロックへの書き換えが集中することを回避したり、ブロックの書き換え回数を平均化する技術が知られている(例えば、特許文献1参照。)。特許文献1には、ブロックを順番に並べた論理的なリングバッファを構成し、フラッシュメモリにデータを記録するときには消去済みセクタを有するメモリブロック内の先頭の消去済みセクタから順次データを記録するデータ記録法が開示されている。このデータ記録方は、メモリブロックの最終セクタにデータが記録された後にはリングバッファ上における次のメモリブロックのデータを消去しておき、次回の記録時は、メモリブロックの先頭セクタから順次データの記録を継続する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004‐071033号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に記載されたデータ記録法では、ブロックを消去してから次回のイベントで車両データを書き込むまで、ブロックに何もデータが書き込まれていない状態が生じているという問題がある。
【0007】
図1は従来のデータ記録法の問題を説明する図の一例である。1〜Nの四角は消去単位のブロックを表し、各ブロックが論理的に連結されてリングバッファを形成している。
(i) 車両データ記録装置は、イベントが発生する前後の車両データを収集する。
(ii) 車両データ記録装置はフラッシュメモリに車両データを書き込む(図ではN番目のブロック)。
(iii) ブロックの最後に車両データを書き込むと、車両データ記録装置は、次のブロックを消去する(図では1番目のブロック)。
(iv) 車両データ記録装置は、次のイベントが発生するとイベントの前後の車両データを収集する。
(v) 車両データ記録装置は、すでに消去してあるブロック(図では1番目のブロック)の先頭に車両データを書き込む。
【0008】
このように(iii)〜(v)の間、フラッシュメモリのブロックには車両データが記録されていない時間が生じてしまい、メモリの使用効率が低下している。
【0009】
本発明は、上記課題に鑑み、フラッシュメモリの使用効率を向上させる情報車両データ記録装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明は、予め定められた車両状況が検出されると車両データを不揮発性のリングバッファに記憶する情報処理装置において、前記車両状況が検出された前後の車両データを収集する車両データ収集手段と、前記車両データ収集手段が収集した車両データを一次記憶する車両データ一次記憶手段と、車両データのサイズ以上の空き領域がなくなると、前記リングバッファの車両データを消去単位ブロック毎に古い順に消去するデータ消去手段と、前記車両データ一次記憶手段に記憶された車両データを、前記リングバッファの最後尾の車両データに続けて書き込むデータ書き込み手段と、を有し、前記データ消去手段は、車両データのサイズ以上の空き領域がなくなっても前記車両状況が検出されるまで、最も古い車両データが記憶されている消去単位ブロックの車両データを保持し、前記車両状況が検出されたことを契機に最も古い車両データが記憶されている消去単位ブロックの車両データを消去する、ことを特徴とする。
【発明の効果】
【0011】
フラッシュメモリの使用効率を向上させる情報車両データ記録装置を提供することができる。
【図面の簡単な説明】
【0012】
【図1】従来のデータ記録法の問題を説明する図の一例である。
【図2】本実施形態の車両データ記録装置による車両データの記録を模式的に説明する図の一例である。
【図3】車両データ記録装置の構成図の一例である。
【図4】車両データ記録装置の機能ブロック図の一例である。
【図5】車両データ記録装置の動作手順を示すフローチャート図の一例である。
【図6】ブロックサイズと車両データのサイズの関係を模式的に説明する図の一例である。
【図7】ブロック間に車両データが跨って記憶されている不揮発メモリを模式的に説明する図の一例である。
【図8】車両データ記録装置による車両データの記録を模式的に説明する図の一例である(実施例2)。
【図9】車両データ記録装置の機能ブロック図の一例である(実施例2)。
【図10】車両データ記録装置の動作手順を示すフローチャート図の一例である。
【図11】退避領域の空き容量と車両データのサイズの関係を模式的に説明する図の一例である。
【発明を実施するための形態】
【0013】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【実施例1】
【0014】
図2は、本実施形態の車両データ記録装置による車両データの記録を模式的に説明する図の一例である。
(i) 車両データ記録装置は、イベントが発生する前後の車両データを収集する。
(ii) 車両データ記録装置はフラッシュメモリに車両データを書き込む(図ではN番目のブロック)。
(iii) 車両データ記録装置はブロックに車両データを書き込んでも、次のブロックを消去しない。
(iv) 車両データ記録装置は、次のイベントが発生する前後の車両データを収集する。
(v) ブロックに空き領域がない場合、車両データ記録装置は、リングバッファにおける次のブロックを消去する(図では1番目のブロック)。
(vi) 車両データ記録装置は、消去したブロックの先頭に車両データを書き込む。
【0015】
車両データ記録装置は、(iii)において次のブロックを消去せず、次のイベントが発生した段階でブロックを消去するので、ブロックに車両データが記録されていない時間がほとんどなくなり、フラッシュメモリの使用効率を向上できる。
【0016】
〔構成例〕
図3は、本実施形態の車両データ記録装置100の構成図の一例を示す。車両データ記録装置100は、1つ以上のECU(Electronic Control Unit)により構成され、各ECUは車載ネットワーク13を介して接続されている。車載ネットワーク13のプロトコルには、CAN(Controller Area Network)、FlexRay、Lin(Local Interconnect Network)等があるが、本実施形態ではCANを例にして説明する。
【0017】
送信制御ECU12はCANデータ(車両データ)を受信制御ECU11に送信するECUである。図では1つの送信制御ECU12しかないが、車両データを生成するECUは2台以上あってもよい。送信制御ECU12のハード的な構成は受信制御ECU11と同等なので図示は省略した。なお、受信制御ECU11及び送信制御ECU12は機能的な呼称であり、車載装置を制御するECUが受信制御ECU11及び送信制御ECU12を兼ねることができる。受信制御ECU11としては、例えば、メータECU、ボディECU、ナビECU、通信制御ECU等が挙げられる。送信制御ECU12としては、エンジンECU、ブレーキECU、パワステECU、エアバッグECU、トランスミッションECU等が挙げられる。受信制御ECU自身が車両データを生成することもある。
【0018】
メータECUは、スイッチ類(例えば、ターンシグナルスイッチ、ハンドブレーキスイッチ等)の操作状態、他のECUから取得した信号(車速、エンジン回転数、ドアロック状態、シートベルト装着状態、ワイパ作動状態等)を数値や揺動する針の指針位置に変換して表示する。ボディECUは、カーテシスイッチのオン/オフを検出したり、車内灯を制御したり、乗員の操作に基づきドアロック/アンロック等を行う。ナビECUは、GNSS(Global Navigation Satellite Systems)などを使用して車両の位置情報を検出し、周辺の道路地図と自車位置アイコンを液晶ディスプレイなどの表示装置に表示する。また、目的地までの経路を算出し右左折や車線変更などの経路案内を行う。ナビECUにはラジオやテレビの受信機能、CD,DVD,BDプレーヤなどのオーディオビジュアル機能が搭載されることがある。通信制御ECUは、携帯電話網や無線LAN、WIMAXなどの無線通信網に接続して、各種のサーバと通信する。不揮発メモリに記憶された車両データの一部又は全体を外部のサーバに送信することがある。
【0019】
エンジンECUは、アクセル開度等を検出してスロットル開度や燃料噴射量を決定し、また、クランク角に基づき点火タイミングを制御する。ブレーキECUは各車輪の回転速度からスリップを検出し、スリップしている車輪の制動力を低減することで車輪ロックを回避するABS(Anti‐lock Brake System)制御や、発信時の車輪の空転を検出した場合に車輪に制動力を加えるTRC(Traction Control)制御を行う。この他、ヨーレート、ステアリング舵角、車輪速度等に基づき、各輪の制動力を調整するESC(Electronic Stability Control)制御を行う。パワステECUは運転者の操舵トルクを検出して、モータを駆動させ運転者の操舵方向にステアリングシャフトを回転させる操舵支援を行う。また、LKA(Lane Keeping Assist system)が作動している間は、カメラECUが認識した走行レーンの略中央を走行するようにステアリングシャフトを回転駆動する。エアバッグECUは、車両に働いた加減速度や横減速度を解析して対応するエアバッグ(運転席、助手席、サイドエアバッグ、カーテンエアバッグ等)を展開する。トランスミッションECUは、アクセル開度やブレーキ操作によるエンジン回転数の増減、加速度、及び、車速等に応じてトランスミッションフルードが通過するバルブを開閉してギアを切り換える。
【0020】
受信制御ECU11は、OS/CANドライバ25、マイコン24、RAM21、ROM22、及び、不揮発メモリ23を有する。OSはマイコン24の汎用的な機能を抽象化してCPUが実行するプログラムがマイコン24の機能を利用することを可能にする。また、OSは、マルチタスク環境ではタスク管理したり、タスク毎にデータを保護したり、タスク間通信を行う。
【0021】
CANドライバは、不図示のCANコントローラにCANデータの送信を要求したり、CANコントローラが受信したCANデータからデータ部分を取り出す。すなわち、CANドライバは、プログラムが送信要求したデータを、CANプロトコルのフォーマットに格納し、CANコントローラのバッファに設定する。また、CANコントローラが予め定められたCAN IDのCANデータを受信した場合、CANドライバはCANプロトコルのフォーマットに従いCANデータから取り出したデータをプログラムに送出する。
【0022】
マイコン24は、主にCPU、不図示のRAM、ROM、DMAC(Direct Memory Access)、INTC(Interrupt Controller)を有する。また、図では、受信制御ECU11がマイコン24外に、RAM21、ROM22、及び、不揮発メモリ23を有するが、これらをマイコン24内に格納して、1つのマイコン24として構成することもできる。RAM21はプログラム(車載されたアプリケーション)が使用する揮発性の記憶手段であり、ROM22は車載されたプログラムを記憶する不揮発メモリ23である。不揮発メモリ23は、車両データを記憶する本実施形態のフラッシュメモリである。不揮発メモリ23は、消去単位であるブロック毎に論理的な順番が付与されており、リングバッファを構成している。
【0023】
図4は、車両データ記録装置100の機能ブロック図の一例である。図4の各機能はROM22に記憶されたプログラムをマイコン24のCPUが実行し、不揮発メモリ23や、DMAC及びCANコントローラなどのICと協働することで実現される。
【0024】
受信制御ECU11は、イベント検出部31、車両データ収集部32、空き領域判定部33、ブロック消去部34、及び、車両データ書き込み部35を有する。イベント検出部31は、車両データを記憶する契機となるイベントの発生を検出する。イベントには、例えば、IG‐ON、IG‐OFF、車速が発進したこと、停止したこと、走行中に車速が所定値以上になったこと、加速度/減速度/横加速度が所定値以上になったこと、ヨーレートが所定値以上になったころ、ABS・ESCが働いたこと、エアバッグが展開したこと、等がある。イベント検出部31は、センサが検出した検出信号や送信制御ECU12が送信するCANデータに基づきイベントを検出する。また、送信制御ECU12からイベント発生の通知そのものを取得してもよい。イベント検出部31は、イベントを検出すると車両データ収集部32に車両データの収集を要求する。
【0025】
車両データ収集部32は、送信制御ECU12から車両データを収集する。記憶される車両データは、車速、加速度(減速度)、アクセル開度、プレーキペダルの踏み込み量、エンジン回転数、ヨーレート、位置情報などである。さらに、カメラが撮影した車両前方、側方、後方等の画像を記録してもよい。
【0026】
車両データの内容はイベントの種類に関係なく固定である。しかし、車両データの内容はイベントの種類により変えてもよいし、車両データのサイズを変えることは困難ではない。しかし、イベント毎にデータサイズが変わってしまうと、後の解析の際にどのアドレスでイベントが切り替わったのかを判別しにくい。よって、車両データの内容がイベントの種類により変わったとしても、車両データのサイズは共通であることが好ましい。
【0027】
また、イベントの種類により車両データのサイズを変える場合、車両データにイベントIDを追加することが好適である。イベントIDにより、1回の車両データのサイズが定まるので、不揮発メモリ23の車両データがどのアドレスで次の車両データに切り替わったのかを判別できる。
【0028】
また、車両データ収集部32は、イベント発生前の車両データとイベント発生後の車両データとをそれぞれ収集する。イベント発生前の車両データとしては、車速、加速度(減速度)、アクセル開度やブレーキペダルの踏み込み量などが挙げられる。イベント発生後の車両データとしては、エンジン回転数、ヨーレート、位置情報などが挙げられる。イベント発生の前と後で、同じデータを収集することを妨げるものではない。車両データ収集部32は、イベントの発生が検出される前から、例えば定期的にイベント発生前の車両データをRAM21に記憶しておく。そして、イベントの発生が検出されると、イベント発生後の車両データをRAM21に記憶する。車両データ書き込み部35は、RAM21に記憶されているイベント発生前の車両データ、及び、イベント発生後の車両データを不揮発メモリ23に書き込む。
【0029】
空き領域判定部33は、不揮発メモリ23のブロックに空き領域があるか否かを判定する。1回の車両データのサイズ、最後に車両データが書き込まれたアドレス、及び、ブロックのサイズは既知である。よって、空き領域判定部33は、ブロック内に1回分の車両データのサイズの空き領域があるか否かに基づき、不揮発メモリ23のブロックに空き領域があるか否かを判定する。1回分の車両データのサイズの空き領域がない場合、ブロック消去部34に1ブロックの消去を要求する。1回分の車両データのサイズの空き領域がある場合、車両データ書き込み部35に車両データの不揮発メモリ23への書き込みを要求する。
【0030】
ブロック消去部34は、ブロック内に1回分の車両データのサイズの空き領域がない場合、最後に車両データが書き込まれたブロックの次のブロックを消去する。これにより、空き領域が確保される。上記のように、フラッシュメモリはブロック単位でしか消去できない。
【0031】
車両データ書き込み部35は、RAM21に記憶された車両データを不揮発メモリ23に書き込む。具体的には、最後に車両データを書き込んだアドレスの次のアドレスから車両データを書き込む。不揮発メモリ23に記憶された車両データの最後のアドレスを、ポインタとして次回の書き込みのためRAM21等に保持しておく。
【0032】
〔動作手順〕
図5は、本実施例の車両データ記録装置100の動作手順を示すフローチャート図の一例である。図5の手順は、例えばIG‐ON後(ハイブリッド車や電気自動車の場合はシステムの起動後)繰り返し実行される。
【0033】
車両データ収集部32は、イベント前の車両データを収集する(S10)。
【0034】
車両データ収集部32は、イベント前の車両データを収集しながら、イベント検出部31がイベントの発生を検出したか否かを判定する(S20)。イベント検出部31がイベントの発生を検出しない場合(S20のNo)、車両データ収集部32はイベント前の車両データの収集を継続する。
【0035】
イベント検出部31がイベントの発生を検出した場合(S20のYes)、車両データ収集部32はイベント後の車両データを収集する(S30)。これにより、イベント発生時に記憶すべき車両データを収集できた。
【0036】
空き領域判定部33は、不揮発メモリ23に車両データを記憶するために必要な空き領域があるか否かを判定する(S40)。空き領域判定部33は、ポインタにより特定した車両データの書き込み先の先頭アドレスに車両データのサイズを加えた値が、1ブロックの最後のアドレスより大きいか否かを判定する。1ブロックの大きさは固定なので、1ブロックの最後のアドレスは既知である。
【0037】
ブロックに空き領域がある場合(S40のYes)、車両データ書き込み部35は車両データを空き領域に書き込む(S50)。
【0038】
一方、ブロックに空き領域がない場合(S40のNo)、ブロック消去部34はブロック単位でブロックを消去する(S60)。
【0039】
車両データ書き込み部35は、消去により生成された空き領域に車両データを書き込む(S50)。
【0040】
次に、車両データ書き込み部35は、書き込まれた車両データのサイズにしたがい、ポインタを更新する(S70)。これにより、ポインタは、不揮発メモリ23における次回の車両データの書き込み先の先頭アドレスを示す。
【0041】
このように、イベント発生後の車両データを書き込む直前に、1ブロック消去することで、ブロックが消去されている時間を短くでき、不揮発メモリ23の使用効率を向上できる。
【0042】
〔変形例〕
これまで説明したように、イベント発生後に1ブロック消去することで、不揮発メモリ23の使用効率を向上できた。しかし、1ブロックのサイズ(以下、ブロックサイズという)に比べ、車両データのサイズが小さいと、ブロックにデータが記憶されていない時間が長くなり使用効率の向上効果が低下する。
【0043】
図6は、ブロックサイズと車両データのサイズの関係を模式的に説明する図の一例である。図6(a)では、ブロックサイズよりも車両データのサイズの方が小さいため、データが記憶されていない領域が大きくなってしまう。イベントが発生することで、データが記憶されていない領域は、順次、小さくなるが、データが記憶されていない領域はメモリの使用効率を低下させている。
【0044】
これに対し、図6(b)では車両データのサイズがブロックサイズの半分程度になっている。この場合、ブロックが消去され、1つの車両データが書き込まれた直後から、データが記憶されていない領域をブロックサイズの半分以下に抑制することができる。したがって、ブロックサイズに対し車両データのサイズが大きいほど、メモリの使用効率を向上させやすい。
【0045】
図6(c)では、車両データのサイズとブロックサイズが同じになっている。この場合、ブロックが消去され、1つの車両データが書き込まれた直後から、データが記憶されていない領域をゼロにすることができる。
【0046】
また、図6(d)では、車両データのサイズがブロックサイズの整数倍になっている。この場合、2ブロックが消去され、1つの車両データが書き込まれた直後から、データが記憶されていない領域をゼロにすることができる。したがって、図6(c)(d)のように、車両データのサイズがブロックサイズの整数倍の場合に、最もメモリの使用効率を向上させることができる。
【実施例2】
【0047】
本実施例では、ブロック間に車両データが跨って記憶されている場合について説明する。
図7は、ブロック間に車両データが跨って記憶されている不揮発メモリ23を模式的に説明する図の一例である。図の斜線の四角が1つの車両データであり、1番目のブロックと2番目のブロックに跨っている。ブロックのサイズが車両データのサイズの整数倍でない場合、1つの車両データがブロック間に跨って記録されることがある。ブロックのサイズが車両データのサイズの整数倍であっても、車両データ以外のデータが記憶されていれば、1つの車両データがブロック間に跨って記録されるおそれがある。
【0048】
イベントが発生し、1番目のブロックに車両データを書き込む場合、ブロック消去部34は1番目のブロックを消去するので、1番目のブロックと2番目のブロックに跨っていた車両データは一部のみが消去される。このため、1番目のブロックと2番目のブロックに跨っていた車両データに連続性がなくなり、車両データとしての有用性が低下してしまう(解析に使えなくなる)。連続性がなくなった車両データは解析に使用できないとすれば、実質的に消去された場合と同様に不揮発メモリ23の使用効率を低下させてしまう。
【0049】
そこで、本実施例では、不揮発メモリ23に退避領域を設けておき、退避領域に1ブロック分の車両データが記憶されたら、不揮発メモリ23のブロックを消去して、退避領域の1ブロック分の車両データを書き込む車両データ記録装置100について説明する。
【0050】
図8は、本実施例の車両データ記録装置100による車両データの記録を模式的に説明する図の一例である。図8では1ブロック分の退避領域が設けられている。退避領域は、不揮発メモリ23に設けられている。退避領域をRAM21に設けてもよい。
(i) イベントが発生したため、車両データ記録装置100がイベント発生前後の車両データを収集する。
(ii) すでに、不揮発メモリ23の空き領域がなくなっている。このため、車両データ記録装置100は、退避領域に車両データを書き込む。
(iii) 続いて、イベントが発生したため、車両データ記録装置100がイベント発生前後の車両データを収集する。
(iv) 車両データ記録装置100は、退避領域に車両データを書き込むと、1ブロック分以上か否かを判定し、1ブロック分以上の車両データが退避される場合、1番目のブロックを消去する。
(v) 1ブロックの空き容量が生成されたので、退避領域の車両データ及び最も新しい車両データを書き込む。退避領域の車両データは不要になったので消去しておく。
【0051】
このような手順によれば、従来では(ii)の時点で1ブロック分の車両データが消去されたのに比べ、(iv)で1ブロック分の車両データが消去されるまで、1番目のブロックと2番目のブロックに跨った車両データの連続性がなくなる時間を短くできる。
【0052】
図9は、本実施例の車両データ記録装置100の機能ブロック図の一例を示す。図9において図4と同一部には同一の符号を付しその説明は省略する。
【0053】
本実施例の空き領域判定部33は、不揮発メモリ23の各ブロックへの書き込みが一巡するまで、ブロックに空き領域があるか否かを判定する。しかし、本実施例では、最後のNブロックへの書き込みが終了すると、常にブロックには空き領域がなくなるので、各ブロックへの書き込みが一巡した後は、空き領域判定部33が空き領域の有無を判定する必要がない。ただ、各ブロックへの書き込みが一巡した後も空き領域判定部33がブロックに空き領域があるか否かを判定しても不都合はない。
【0054】
同様に、車両データ書き込み部35は、各ブロックへの書き込みが一巡するまで、車両データをブロックに書き込むが、その後、ブロックに直接、車両データを書き込むことはない。
【0055】
各ブロックへの書き込みが一巡した後、不揮発メモリ23には空き領域がないので、本実施例では退避領域書き込み部36が退避領域に車両データを書き込む。いったん、退避領域に書き込むことで、2つのブロックに跨った車両データの一部が消去され、車両データに連続性がなくなる時間を短くできる。
【0056】
退避領域操作部37は、退避領域に1ブロック分以上の車両データが記憶されるか否かを実際に記憶する前に判定する。1ブロック分以上の車両データが記憶される場合、ブロック消去部34にブロックの消去を要求する。ブロック消去部34が1ブロックを消去すると、退避領域操作部37は退避領域の車両データ及び最新の車両データを不揮発メモリ23のブロックに書き込む。
【0057】
図10は、本実施例の車両データ記録装置100の動作手順を示すフローチャート図の一例である。図10のS30までの手順は、図5と同様である。すなわち、イベント検出部31がイベントの発生を検出すると、車両データ収集部32はイベント後の車両データを収集する(S30)。これにより、イベント発生時に記憶すべき車両データを収集できた。
【0058】
次に、空き領域判定部33は、不揮発メモリ23に車両データを記憶するために必要な空き領域があるか否かを判定する(S40)。空き領域判定部33は、ポインタにより特定した車両データの書き込み先の先頭アドレスに車両データのサイズを加えた値が、1ブロックの最後のアドレスより大きいか否かを判定する。本実施例では1ブロックを消去しないので、不揮発メモリ23への記憶の一巡後、S40の判定はNoとなる。ブロックに空き領域がある場合(S40のYes)、車両データ書き込み部35は車両データを空き領域に書き込む(S50)。
【0059】
ブロックに空き領域がない場合(S40のNo)、退避領域操作部37は、退避領域に1ブロック分以上の車両データを記憶するか否かを判定する(S110)。すなわち、実際に記録する前に、退避領域にすでに書き込まれた車両データのサイズと、これから書き込む車両データのサイズの合計が、1ブロック分か否かを判定する。書き込む前に判定することで、退避領域のサイズを1ブロック以下に抑制できる。
【0060】
退避領域に1ブロック分以上の車両データが記憶されない場合(S110のNo)、退避領域書き込み部36は、退避領域の空き領域に車両データを書き込む(S120)。また、不揮発メモリ23のブロックを消去すべきでないので、処理はS10に戻る。
【0061】
退避領域に合計で1ブロック分以上の車両データが記憶される場合(S110のYes)、ブロック消去部34はブロック単位で不揮発メモリ23の1ブロックを消去する(S130)。
【0062】
次に、退避領域操作部37は退避領域の車両データを、消去したブロックに複写する(S140)。
【0063】
そして、RAM21に保持している、最新の車両データを、車両データ書き込み部35が消去したブロックに書き込む(S150)。
【0064】
退避領域操作部37は退避領域の車両データを消去する(S160)。
【0065】
車両データ書き込み部35は、車両データを書き込んだサイズにしたがい、ポインタを更新する(S70)。これにより、ポインタは、不揮発メモリ23における次回の車両データの書き込み先の先頭アドレスを示す。
【0066】
このように、退避領域を設けることで、2つのブロックに車両データが跨って記憶されている場合、跨った車両データの連続性がなくなる時間を最小限にできる。
【0067】
〔1ブロック超過分の車両データについて〕
例えば、ステップS110で退避領域に1ブロックより大きい車両データが記憶される場合、超過分の車両データについて説明する。
【0068】
図11(a)は、退避領域の空き容量と車両データのサイズの関係を模式的に説明する図の一例である。退避領域の空き容量よりも車両データの方が大きい場合、不揮発メモリ23を1ブロック分消去しても、退避領域と車両データを全て、不揮発メモリ23の1ブロックには記憶できない。
【0069】
そこで、このような場合、退避領域操作部37は退避領域と最新の車両データで合計1ブロック分を不揮発メモリ23に書き込む。そして、最新の車両データのうち不揮発メモリ23の1ブロックに記憶可能な1ブロック分だけ記憶しておき、1ブロックの超過分は退避メモリに記憶しておけばよい。こうすることで、退避領域は1ブロックしかなくても、1ブロックを超過した分の車両データに対応できる。
【0070】
または、図11(b)のように退避領域を2ブロック設けてもよい。この場合は、退避領域が2ブロックあることを利用して、RAM21に記憶されている最新の車両データをいったん退避領域に記憶することができる。
【0071】
退避領域に記憶された車両データのサイズが1ブロック以上になった場合、退避領域操作部37が退避領域の1ブロック分を不揮発メモリ23に書き込む。そして、1ブロックの超過分は2番目の退避メモリに記憶しておく。
【0072】
退避領域操作部37は次回の車両データは2番目の退避メモリに続けて記憶し、2番目の退避領域に空き領域がなくなると1番目の退避領域に記憶する。すなわち、退避領域もリングバッファのように使用される。こうすることで、退避領域は2ブロック必要になるが、車両データの書き込み処理を図11(a)よりも簡易化することができる。
【符号の説明】
【0073】
11 受信制御ECU
12 送信制御ECU
13 車載ネットワーク
21 RAM
22 ROM
23 不揮発メモリ
24 マイコン
25 OS/CANドライバ
100 車両データ記録装置
【特許請求の範囲】
【請求項1】
予め定められた車両状況が検出されると車両データを不揮発性のリングバッファに記憶する情報処理装置において、
前記車両状況が検出された前後の車両データを収集する車両データ収集手段と、
前記車両データ収集手段が収集した車両データを一次記憶する車両データ一次記憶手段と、
車両データのサイズ以上の空き領域がなくなると、前記リングバッファの車両データを古い順に消去単位ブロックで消去するデータ消去手段と、
前記車両データ一次記憶手段に記憶された車両データを、前記リングバッファの最後尾の車両データに続けて書き込むデータ書き込み手段と、を有し、
前記データ消去手段は、車両データのサイズ以上の空き領域がなくなっても前記車両状況が検出されるまで、最も古い車両データが記憶されている消去単位ブロックの車両データを保持し、前記車両状況が検出されたことを契機に最も古い車両データが記憶されている消去単位ブロックの車両データを消去する、
ことを特徴とする情報処理装置。
【請求項2】
消去単位ブロックと同じサイズの退避メモリと、
前記退避メモリに車両データを書き込む退避領域書き込み手段と、を有し、
前記データ消去手段は、退避領域に書き込まれている車両データと、前記車両状況が検出されたために新たに生じた車両データの合計サイズが消去単位ブロック以上のサイズである場合に、最も古い車両データが記憶されている消去単位ブロックの車両データを消去する、
ことを特徴とする請求項1記載の情報処理装置。
【請求項3】
退避領域に書き込まれている車両データと、前記車両状況が検出されたために新たに生じた車両データの合計サイズが消去単位ブロックより大きい場合、
前記退避領域に書き込まれている車両データ及び前記車両状況が検出されたために新たに生じた車両データのうち1消去単位ブロック分を、前記データ消去手段が消去した消去単位ブロックの空き領域に書き込み、1消去単位ブロックの超過分を前記退避領域に書き込む退避領域操作手段、を有することを特徴とする請求項2記載の情報処理装置。
【請求項4】
消去単位ブロックのサイズは、車両データのサイズの整数倍である、ことを特徴とする請求項1記載の情報処理装置。
【請求項5】
前記不揮発メモリはフラッシュメモリであり、前記車両データ一次記憶手段は揮発性のランダムアクセスメモリである、ことを特徴とする請求項1〜4いずれか1項記載の情報処理装置。
【請求項6】
予め定められた車両状況が検出されると車両データを不揮発性のリングバッファに記憶する情報処理装置のデータ記録方法において、
車両データ収集手段が、前記車両状況が検出された前後の車両データを収集し、車両データ一次記憶手段に一次記憶させるステップと、
データ書き込み手段が、前記車両データ一次記憶手段に記憶された車両データを、前記リングバッファの最後尾の車両データに続いて書き込むステップと、
車両データのサイズ以上の空き領域がなくなった場合、データ消去手段が、前記車両状況が検出されるまで、最も古い車両データが記憶されている消去単位ブロックの車両データを保持し、前記車両状況が検出されたことを契機に最も古い車両データが記憶されている消去単位ブロックの車両データを消去するステップと、
ことを特徴とするデータ記録方法。
【請求項1】
予め定められた車両状況が検出されると車両データを不揮発性のリングバッファに記憶する情報処理装置において、
前記車両状況が検出された前後の車両データを収集する車両データ収集手段と、
前記車両データ収集手段が収集した車両データを一次記憶する車両データ一次記憶手段と、
車両データのサイズ以上の空き領域がなくなると、前記リングバッファの車両データを古い順に消去単位ブロックで消去するデータ消去手段と、
前記車両データ一次記憶手段に記憶された車両データを、前記リングバッファの最後尾の車両データに続けて書き込むデータ書き込み手段と、を有し、
前記データ消去手段は、車両データのサイズ以上の空き領域がなくなっても前記車両状況が検出されるまで、最も古い車両データが記憶されている消去単位ブロックの車両データを保持し、前記車両状況が検出されたことを契機に最も古い車両データが記憶されている消去単位ブロックの車両データを消去する、
ことを特徴とする情報処理装置。
【請求項2】
消去単位ブロックと同じサイズの退避メモリと、
前記退避メモリに車両データを書き込む退避領域書き込み手段と、を有し、
前記データ消去手段は、退避領域に書き込まれている車両データと、前記車両状況が検出されたために新たに生じた車両データの合計サイズが消去単位ブロック以上のサイズである場合に、最も古い車両データが記憶されている消去単位ブロックの車両データを消去する、
ことを特徴とする請求項1記載の情報処理装置。
【請求項3】
退避領域に書き込まれている車両データと、前記車両状況が検出されたために新たに生じた車両データの合計サイズが消去単位ブロックより大きい場合、
前記退避領域に書き込まれている車両データ及び前記車両状況が検出されたために新たに生じた車両データのうち1消去単位ブロック分を、前記データ消去手段が消去した消去単位ブロックの空き領域に書き込み、1消去単位ブロックの超過分を前記退避領域に書き込む退避領域操作手段、を有することを特徴とする請求項2記載の情報処理装置。
【請求項4】
消去単位ブロックのサイズは、車両データのサイズの整数倍である、ことを特徴とする請求項1記載の情報処理装置。
【請求項5】
前記不揮発メモリはフラッシュメモリであり、前記車両データ一次記憶手段は揮発性のランダムアクセスメモリである、ことを特徴とする請求項1〜4いずれか1項記載の情報処理装置。
【請求項6】
予め定められた車両状況が検出されると車両データを不揮発性のリングバッファに記憶する情報処理装置のデータ記録方法において、
車両データ収集手段が、前記車両状況が検出された前後の車両データを収集し、車両データ一次記憶手段に一次記憶させるステップと、
データ書き込み手段が、前記車両データ一次記憶手段に記憶された車両データを、前記リングバッファの最後尾の車両データに続いて書き込むステップと、
車両データのサイズ以上の空き領域がなくなった場合、データ消去手段が、前記車両状況が検出されるまで、最も古い車両データが記憶されている消去単位ブロックの車両データを保持し、前記車両状況が検出されたことを契機に最も古い車両データが記憶されている消去単位ブロックの車両データを消去するステップと、
ことを特徴とするデータ記録方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2013−73609(P2013−73609A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−214782(P2011−214782)
【出願日】平成23年9月29日(2011.9.29)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願日】平成23年9月29日(2011.9.29)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】
[ Back to top ]