(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0006】
一般的な車両の走行距離計については、従来より、表示可能な累積走行距離の最大値を100万kmまでとすることが求められている。しかし、近年では表示可能な累積走行距離の最大値を1000万kmまで増やすことに関する市場の要望もある。
【0007】
例えば、1アドレスあたり16ビット(1ワード)の構成を有する不揮発性メモリを使う場合を想定すると、1アドレスのメモリで「65536」種類の数値を記憶できる。従って、例えば16個のアドレスのメモリを使い、各アドレスのメモリの数値を加算して合計を算出する場合を想定すると、記憶可能な数値の種類D1は次式で表される。
D1=65,536×16=1,048,576
【0008】
この場合、各メモリ領域の数値の最小単位を「1km」と仮定すると、0km〜1048576kmの範囲の走行距離を記憶できる。つまり、表示可能な累積走行距離の最大値を100万kmまでとする要求に対応できる。
【0009】
もしも、上記と同じ条件で表示可能な累積走行距離の最大値を1000万kmまで増やす場合を想定すると、上記の10倍の160個のアドレスのメモリを使う必要がある。この場合に記憶可能な数値の種類D2は次式で表される。
D2=65,536×160=10,485,760
【0010】
つまり、表示可能な累積走行距離の最大値を100万kmから1000万kmまで増やそうとすると、必要な不揮発性メモリの容量が10倍に増えてしまう。従って、走行距離計の製造コストの大幅な上昇は避けられない。
【0011】
一方、不揮発性メモリはデータの書き換えによって劣化する。従って、不揮発性メモリに対するデータ書き込み時やデータ読み出し時のデータエラーの発生を抑制するために、不揮発性メモリの各アドレスの書き換え回数を制限する必要がある。書き換え回数の上限は、例えば100万回程度である。
【0012】
しかし、例えば1000万kmまでの走行距離の表示に対応しようとすると、1km毎に距離データを更新する場合に、データ更新回数が最大で1000万回になる。従って、不揮発性メモリが劣化する可能性があり、1000万kmまでの走行距離の表示には耐えられない。
【0013】
本発明は、上述した事情に鑑みてなされたものであり、その目的は、非常に大きな累積値を管理対象とする場合であっても、必要とするメモリの容量を大幅に増やすことなく、信頼性の高い累積値を得ることが可能な車両用累積値情報管理装置および累積値情報管理方法を提供することにある。
【課題を解決するための手段】
【0014】
前述した目的を達成するために、本発明に係る車両用累積値情報管理装置は、下記(1)〜(
3)を特徴としている。
(1) 車両上で検出される計測結果の累積値を保持し、前記累積値を最新の情報に逐次更新するように管理する車両用累積値情報管理装置であって、
データを保持する不揮発性記憶部と、
前記不揮発性記憶部にアクセスして前記不揮発性記憶部が保持するデータを更新するデータ管理部と、
を備え、
前記不揮発性記憶部は、
前記累積値の一部分を表す数値をそれぞれ保持する複数の個別情報メモリが、複数のアドレスに渡って規則的に配置されたデータエリアと、
前記データエリアに存在する前記個別情報メモリの数と同数の個別ポインタ情報メモリが、前記データエリア外の複数のアドレスに渡って規則的に配置されたポインタエリアと、
を有し、
前記データ管理部は、前記データエリアの複数の個別情報メモリと、前記ポインタエリアの複数の個別ポインタ情報メモリとを互いに対応付けて管理し、
前記データ管理部は、前記データエリアのデータを更新する毎に、前記複数の個別ポインタ情報メモリの中で記憶内容の更新対象とするメモリの位置を順次に切り替え、
前記データ管理部は、前記データエリアのデータを更新する際、前回更新した前記個別ポインタ情報メモリに対して次の順番の前記個別ポインタ情報メモリの記憶内容をインクリメントして今回更新すると共に、今回記憶内容が更新された個別ポインタ情報メモリに対応する前記個別情報メモリの記憶内容をインクリメントして更新し、
前記データ管理部は、前記データエリアに存在する前記複数の個別情報メモリの記憶内容に基づいて、前記累積値を把握する
こと。
(
2) 上記(1)の構成の車両用累積値情報管理装置であって、
前記データ管理部は、前記データエリアの個別情報メモリの記憶内容が予め定めた閾値を超えた場合に、異常な状態とみなして予め定めた特別な処理を実行する
こと。
(
3) 上記(1)の構成の車両用累積値情報管理装置であって、
前記データ管理部は、計測結果に所定値の変化が検出される毎に、前記データエリアの記憶内容を更新する
こと。
【0015】
上記(1)の構成の車両用累積値情報管理装置によれば、累積値を表す数値を複数の個別情報メモリに分散した状態で保持するので、各々の個別情報メモリに対するデータ更新の回数を減らすことができ、不揮発性記憶部のメモリ劣化を抑制できる
。
また、複数の個別ポインタ情報メモリを有するので、各々の個別ポインタ情報メモリのデータ更新の回数を減らすことができ、不揮発性記憶部のメモリ劣化を抑制できる。
また、更新対象の個別情報メモリ及び個別ポインタ情報メモリを順次に切り替えるので、これらに対する更新回数を均一化することができる。例えば、n個の個別情報メモリ及びn個の個別ポインタ情報メモリを有する場合には、各々のメモリの更新回数を全体の(1/n)に減らすことができる。従って、不揮発性記憶部のメモリ劣化を抑制できる。
上記(
2)の構成の車両用累積値情報管理装置によれば、各々の個別情報メモリの更新回数が閾値を超えてメモリが劣化する前に、異常な状態として検出することができる。
上記(
3)の構成の車両用累積値情報管理装置によれば、前記データエリアの記憶内容を更新する回数を減らすことが可能になる。
【0016】
前述した目的を達成するために、本発明に係る累積値情報管理方法は、下記(
4)を特徴としている。
(
4) 逐次検出される計測結果の累積値を保持し、前記累積値を最新の情報に逐次更新するように管理する累積値情報管理方法であって、
前記累積値の一部分を表す数値をそれぞれ保持する複数の個別情報メモリが、複数のアドレスに渡って規則的に配置されたデータエリアと、
前記データエリアに存在する前記個別情報メモリの数と同数の個別ポインタ情報メモリが、前記データエリア外の複数のアドレスに渡って規則的に配置されたポインタエリアと、
を、所定の不揮発性記憶部上に割り当て、
前記データエリアの複数の個別情報メモリと、前記ポインタエリアの複数の個別ポインタ情報メモリとを互いに対応付けて管理し、
前記データエリアのデータを更新する毎に、前記複数の個別ポインタ情報メモリの中で記憶内容の更新対象とするメモリの位置を順次に切り替え、
前記データエリアのデータを更新する際、前回更新した前記個別ポインタ情報メモリに対して次の順番の前記個別ポインタ情報メモリの記憶内容をインクリメントして今回更新すると共に、今回記憶内容が更新された個別ポインタ情報メモリに対応する前記個別情報メモリの記憶内容をインクリメントして更新し、
前記データエリアに存在する前記複数の個別情報メモリの記憶内容に基づいて、前記累積値を把握する
こと。
【0017】
上記(
4)の構成の累積値情報管理方法によれば、累積値を表す数値を複数の個別情報メモリに分散した状態で保持するので、各々の個別情報メモリに対するデータ更新の回数を減らすことができ、不揮発性記憶部のメモリ劣化を抑制できる。
また、複数の個別ポインタ情報メモリを有するので、各々の個別ポインタ情報メモリのデータ更新の回数を減らすことができ、不揮発性記憶部のメモリ劣化を抑制できる。
また、更新対象の個別情報メモリ及び個別ポインタ情報メモリを順次に切り替えるので、これらに対する更新回数を均一化することができる。例えば、n個の個別情報メモリ及びn個の個別ポインタ情報メモリを有する場合には、各々のメモリの更新回数を全体の(1/n)に減らすことができる。従って、不揮発性記憶部のメモリ劣化を抑制できる。
【発明の効果】
【0018】
本発明の車両用累積値情報管理装置および累積値情報管理方法によれば、非常に大きな累積値を管理対象とする場合であっても、必要とするメモリの容量を大幅に増やすことなく、信頼性の高い累積値を得ることが可能になる。例えば、上限が1000万km程度の走行距離の管理も可能になる。
【0019】
以上、本発明について簡潔に説明した。更に、以下に説明される発明を実施するための形態(以下、「実施形態」という。)を添付の図面を参照して通読することにより、本発明の詳細は更に明確化されるであろう。
【発明を実施するための形態】
【0021】
本発明の車両用累積値情報管理装置および累積値情報管理方法に関する具体的な実施形態について、各図を参照しながら以下に説明する。
【0022】
<装置のハードウェア構成例>
本実施形態の車両用累積値情報管理装置の電気回路の構成例を
図1に示す。具体的には、
図1に示した車両用累積値情報管理装置は、車両の計器板に搭載される走行距離計10を構成している。
【0023】
この走行距離計10は、車両が製造された時から現在までの、車両の走行距離の累積値(積算値)をkm単位の数値として管理し表示することができる。本実施形態においては、最大で1000万kmの走行距離まで管理できるように構成してある。また、走行距離計10はユーザが指定した任意の時点からの走行距離を表示するトリップメータとして利用することもできる。
【0024】
図1に示すように、この走行距離計10は、マイクロコンピュータ(CPU)11、不揮発性メモリ12、揮発性メモリ(RAM)13、走行距離算出部14、不揮発性メモリアクセス部15、距離データ加算部16、モード切替部17、表示部18、入出力部(I/O)19、インタフェース(I/F)20及び21を備えている。
【0025】
マイクロコンピュータ11は、予め内部に組み込まれているプログラムを読み出して実行することにより、走行距離計10の全体の制御に必要とされる様々な処理を実行する。具体的な処理の内容については後で説明する。
【0026】
不揮発性メモリ12は、外部から電力を供給しない状態でもデータを保持することができる書き換え可能な半導体メモリであり、例えばフラッシュメモリにより構成される。なお、この不揮発性メモリ12は、書き換え可能な回数に上限がある。すなわち、データの書き換えを繰り返すと劣化が生じ、データの書き込みや読み出しの際にエラーが発生したり、書き換えができない状態になる可能性がある。書き換え回数の上限については、例えば100万回程度が想定される。
【0027】
揮発性メモリ13は、マイクロコンピュータ11等のアクセスによりデータの読み出し及び書き込みが可能な半導体メモリである。揮発性メモリ13は電力の供給が遮断されるとデータが消滅するので、一時的なデータを保存するために利用される。
【0028】
走行距離算出部14は、走行距離を算出するための処理を行う。不揮発性メモリアクセス部15は、不揮発性メモリ12にアクセスするための特別な処理を行う。距離データ加算部16は、車両の所定距離の走行毎に、距離の算出に用いるデータの数値を加算するための処理を行う。
【0029】
なお、走行距離算出部14、不揮発性メモリアクセス部15、距離データ加算部16の各機能については、マイクロコンピュータ11の中に組み込むことも可能であるが、不揮発性メモリ12の内容(走行距離の値)の不正な書き換え等を防止するために、十分な安全対策を施す必要がある。
【0030】
モード切替部17は、ユーザの入力操作に従って様々なモードの切替を行う。例えば、表示する内容として、走行距離の累積値と、トリップメータの計測距離とを切り替えたり、トリップメータの計測距離をリセットすることができる。
【0031】
表示部18は、1000万kmまでの走行距離の「1km」単位の数値を表示することが可能な表示器であり、例えば液晶表示器により構成される。表示部18は、入出力部19を介してマイクロコンピュータ11と接続されている。マイクロコンピュータ11の制御により、走行距離の数値を表示部18に表示することができる。
【0032】
インタフェース20の入力には、車両側から距離パルス(車速パルスとも言う)の電気信号が入力される。この距離パルスには、車両のトランスミッション出力軸が所定量回動する毎に1つのパルス信号が現れる。従って、車両の走行距離は発生した距離パルスのパルス数に比例する。マイクロコンピュータ11は、インタフェース20を介して入力される距離パルスのパルス数を計数する。この計数値から車両の走行距離を把握できる。
【0033】
インタフェース21の入力には、イグニッション(IGN)スイッチと接続された電源からの信号が印加される。マイクロコンピュータ11は、インタフェース21を介してイグニッションのオンオフ状態を把握する。
【0034】
<記憶領域の構成例>
走行距離の累積値のデータを保持するために、不揮発性メモリ12上に割り当てた各記憶領域の具体的な構成例を
図2に示す。
【0035】
図2に示すように、不揮発性メモリ12上には、走行距離データエリア12a及びポインタエリア12bを設けてある。走行距離データエリア12aは、連続的に並んだ20個の個別情報メモリDM(1)〜DM(20)で構成されている。また、ポインタエリア12bは、連続的に並んだ20個の個別ポインタ情報メモリPM(1)〜PM(20)で構成されている。
【0036】
個別情報メモリDM(1)〜DM(20)の各々は、不揮発性メモリ12上で互いに隣接する2つのアドレスのメモリ領域として構成されている。例えば、1番目の個別情報メモリDM(1)は、アドレスが「1」のメモリと、アドレスが「2」のメモリとの組み合わせとして構成してある。また、2番目の個別情報メモリDM(2)は、アドレスが「3」のメモリと、アドレスが「4」のメモリとの組み合わせとして構成してある。
【0037】
本実施形態においては、不揮発性メモリ12の各々のアドレスのメモリは、16ビット分(「word」単位)の2値データ(0/1)を保持するメモリにより構成されている。従って、2つのアドレスのメモリで構成される個別情報メモリDM(1)〜DM(20)の各々は、32ビット構成の2値データを保持することができる。
【0038】
32ビット構成(「long」単位=2単位の「word」)の2値データは、10進数表記で、「0」から「4,294,967,295」までの範囲の数値を表現することができる。また、16進数表記では、「00000000」から「FFFFFFFF」までの範囲の数値になる。
【0039】
図2においては、不揮発性メモリ12上の各アドレスのメモリの内容を、16進数表記の16ビットデータ、すなわち、「0000」から「FFFF」までの範囲のデータとして示してある。
【0040】
従って、個別情報メモリDM(1)〜DM(20)の各々は、10進数表記で「0」から「4,294,967,295」までの範囲の任意の数値を記憶することができる。16進数表記では、「00000000」から「FFFFFFFF」までの範囲の数値になる。
【0041】
一方、個別ポインタ情報メモリPM(1)〜PM(20)の各々は、不揮発性メモリ12上の1つのアドレスのメモリ領域として構成されている。従って、個別ポインタ情報メモリPM(1)〜PM(20)の各々は、10進数表記で「0」から「65,535」までの範囲の任意の数値を記憶することができる。16進数表記では、「0000」から「FFFF」までの範囲の数値になる。
【0042】
本実施形態においては、個別情報メモリDM(1)〜DM(20)の数(20個)と個別ポインタ情報メモリPM(1)〜PM(20)の数とが同数になっている。また、20個の個別ポインタ情報メモリPM(1)〜PM(20)は、それぞれ個別情報メモリDM(1)〜DM(20)の各々に対応付けてある。
【0043】
ポインタエリア12bの個別ポインタ情報メモリPM(1)〜PM(20)の内容は、走行距離データエリア12aの20個の個別情報メモリDM(1)〜DM(20)の中で処理対象とすべき特定の位置を示すために利用する。
【0044】
<記憶領域の利用方法の説明>
図2に示した不揮発性メモリ12上の走行距離データエリア12a及びポインタエリア12bの利用方法の概要について、以下に説明する。
【0045】
<メモリの初期値>
走行距離データエリア12aの個別情報メモリDM(1)〜DM(20)については、各々の初期値を16進数表記で「FFFFFFFF」(10進数では「−1」)とする。また、ポインタエリア12bの個別ポインタ情報メモリPM(1)〜PM(20)の各々の初期値を16進数表記で「FFFF」(10進数では「−1」)とする。
【0046】
<記憶する累積値の更新>
記憶すべき最新の累積値が1単位増える毎に、具体的には走行距離が「1km」増える毎に、個別情報メモリDM(1)〜DM(20)のいずれか1つの内容をインクリメント(「+1」だけ増やす)するように記憶するデータの内容を更新する。
【0047】
走行距離データエリア12aの内容を更新する毎に、更新対象のメモリ位置を個別情報メモリDM(1)〜DM(20)の中で順番に切り替える。このメモリ位置を簡単に把握できるようにポインタエリア12bを利用する。具体的には、次のように処理する。
【0048】
不揮発性メモリ12のデータの更新毎に、個別ポインタ情報メモリPM(1)〜PM(20)のいずれか1つの内容をインクリメント(「+1」だけ増やす)するように記憶するデータの内容を更新する。また、データを更新する個別ポインタ情報メモリPM(1)〜PM(20)を順番に切り替える。
【0049】
つまり、走行距離が「1km」増える毎に、PM(1)の更新、PM(2)の更新、PM(3)の更新、・・・を順番に行う。また、最後のPM(20)を更新した後は、最初のPM(1)の位置に戻って同じように更新を繰り返す。
【0050】
この場合、
図2に示すポインタエリア12bのように、個別ポインタ情報メモリPM(1)〜PM(20)の中でデータの内容が異なる境界の位置は容易に把握できる。つまり、
図2に示す例では、2番目の個別ポインタ情報メモリPM(2)が最後に更新したメモリ位置である。ここで、個別ポインタ情報メモリPM(2)は2番目の個別情報メモリ(アドレスが3、4のメモリ)DM(2)と対応付けてあるので、走行距離データエリア12aにおける更新対象を個別情報メモリDM(2)として特定することができる。この場合は個別情報メモリDM(2)のデータをインクリメントする。
【0051】
上記のような処理を行うことにより、走行距離データエリア12aの20個の個別情報メモリDM(1)〜DM(20)を均等な頻度で更新することができる。つまり、データ書き換え回数を全更新回数の(1/20)に抑制できる。また、ポインタエリア12bについても、個別ポインタ情報メモリPM(1)〜PM(20)を均等な頻度で更新することができ、データ書き換え回数を全更新回数の(1/20)に抑制できる。これにより、不揮発性メモリ12の劣化を抑制できる。
【0052】
<記憶される累積値の説明>
上記のような処理を行う場合には、本来の累積値が複数に分割され、累積値の一部分の値が、20個の個別情報メモリDM(1)〜DM(20)にそれぞれ記憶される。
【0053】
従って、個別情報メモリDM(1)の内容、DM(2)の内容、DM(3)の内容、・・・、DM(20)の内容の総和が本来の累積値になる。つまり、20個の個別情報メモリDM(1)〜DM(20)のデータの全体を加算することにより、記憶した走行距離の数値が得られる。
【0054】
但し、
図2に示した例では、個別情報メモリDM(1)〜DM(20)の初期値が「−1」(16進数表記で「FFFFFFFF」)なので、DM(1)〜DM(20)の各々が記憶しているデータの数値に「+1」を加算するように修正する必要がある。
【0055】
図2に示した例では、個別情報メモリDM(1)及びDM(2)の内容が「00000000」であり、DM(3)〜DM(20)の内容が「FFFFFFFF」になっている。つまり、DM(1)及びDM(2)の内容はそれぞれ10進数の「1km」に対応し、DM(3)〜DM(20)の内容はそれぞれ10進数の「0km」に対応する。これらの内容の全体の総和、すなわち走行距離は「2km」である。
【0056】
<アドレスの計算>
図2に示した例では、走行距離データエリア12aの先頭のメモリアドレスが「1」であり、個別情報メモリDM(1)〜DM(20)の各々が互いに隣接する2つのアドレスを占有するように順番に、すなわち規則的に並んでいる。また、ポインタエリア12bの先頭のメモリアドレスが「41」であり、個別ポインタ情報メモリPM(1)〜PM(20)の各々が1つのアドレスを占有するように順番に、すなわち規則的に並んでいる。
【0057】
従って、個別ポインタ情報メモリPM(1)〜PM(20)の各々と対応関係にある個別情報メモリDM(1)〜DM(20)のメモリアドレスは、次のように簡単に算出することができる。
Apt=Ax×2−81 ・・・(1)
Apt:ポインタが示すアドレス
Ax:注目するn番目の個別ポインタ情報メモリPM(n)自身のアドレス
【0058】
例えば、
図2に示す例では、ポインタエリア12bに順番に並んでいる個別ポインタ情報メモリPM(1)〜PM(20)の中で、データが初期値の「FFFF」から「0000」に最後に最後に更新されたメモリが2番目のPM(2)であることが分かる。つまり、隣接するデータが異なる「0000」と「FFFF」の境界を見つけることにより、PM(2)を特定できる。
【0059】
この場合、最後に更新した個別ポインタ情報メモリPM(2)のアドレス(Ax)が「42」なので、ポインタが示すアドレスAptは次のように算出される。
Apt=42×2−81=3
【0060】
つまり、
図2に示すような状況のタイミングにおいては、アドレスが「3」の16ビットメモリと次のアドレス「4」の16ビットメモリとで構成される2番目の個別情報メモリDM(2)を処理対象として選択すればよい。
【0061】
<走行距離計10の処理の内容>
<メインフロー>
図1に示した走行距離計10の動作に関するメインフローを
図3に示す。この動作は、
図1に示したマイクロコンピュータ11、走行距離算出部14、不揮発性メモリアクセス部15、及び距離データ加算部16の制御によって実現する。車両側の電源から走行距離計10に電力が供給されると、走行距離計10が
図3の動作を開始し、ステップS11の処理に進む。
【0062】
ステップS11では、マイクロコンピュータ11がイグニッションスイッチのオンオフを示す信号をインタフェース21から入力し、オンオフを識別する。オンになるとステップS12に進む。
【0063】
ステップS12では、マイクロコンピュータ11が距離パルスの信号をインタフェース20から入力し、この信号に基づいて走行距離の増加分に関する演算処理を行う。すなわち、入力された距離パルスのパルス数を計数する。この計数値が走行距離に比例するので、予め定めた定数を用いて計数値を走行距離に換算することができる。マイクロコンピュータ11は、ステップS12で検出した距離パルスの計数値に基づいて、走行距離の増加分を検出し、この増加分を、次のステップS13で処理する。
【0064】
ステップS13では、不揮発性メモリ12が保持している走行距離のデータが、ステップS12で検出した最新の走行距離の増加分を反映するように、マイクロコンピュータ11の制御により不揮発性メモリ12の記憶データを更新する。但し、実際の不揮発性メモリ12のデータ更新に際しては、不正なデータ改竄を防止するために、不揮発性メモリアクセス部15及び距離データ加算部16が制御を実施する。ステップS13の詳細については後で説明する。
【0065】
ステップS14では、不揮発性メモリ12が保持している走行距離のデータを読み出して、このデータに基づいて現在の走行距離の累積値を把握し、この走行距離を表示するように、マイクロコンピュータ11が制御を実施する。ステップS14の詳細については後で説明する。
【0066】
<走行距離記憶処理の詳細>
図3に示した「走行距離記憶処理」の詳細を
図4に示す。
図4の処理について、以下に説明する。
【0067】
ステップS21では、マイクロコンピュータ11は前述のステップS12で検出した距離パルスの計数値データ、すなわち走行距離の増加分を処理対象のデータとして取り込む。
【0068】
ステップS22では、マイクロコンピュータ11は、ステップS21で取り込んだ走行距離の増加分が計測単位である「1km」に到達したか否かを識別する。「1km」に到達した場合は次のステップS23に進み、到達していない場合はこの処理を終了する。また、走行距離の増加分が「1km」に到達した場合は、ステップS12で距離パルスを計数するために用いるカウンタの計数値を0にリセットするか、又は「1km」分を減算した計数値に更新する。
【0069】
ステップS23では、マイクロコンピュータ11は、
図2に示したポインタエリア12bの中の、y番目の個別ポインタ情報メモリPM(y)をインクリメント(+1)して更新する。処理対象の個別ポインタ情報メモリPM(y)は、ポインタエリア12bの20個の個別ポインタ情報メモリPM(1)〜PM(20)の中で、最後に更新したメモリの次のアドレスに存在するメモリとする。但し、更新したメモリが存在しない初期状態では、最初のメモリを処理対象とする。
【0070】
例えば、最初に「1km」の距離の走行を検出した場合には、全ての個別ポインタ情報メモリPM(1)〜PM(20)のデータが初期値の「FFFF」であるので、1番目の個別ポインタ情報メモリPM(1)をPM(y)として選択する。
【0071】
また、2回目に「1km」の距離の走行を検出した場合には、1番目の個別ポインタ情報メモリPM(1)のデータが「0000」であり、2番目の個別ポインタ情報メモリPM(2)のデータが「FFFF」である。従って、2番目の個別ポインタ情報メモリPM(2)をPM(y)として選択する。
【0072】
同様に、3回目に「1km」の距離の走行を検出した場合には、1番目及び2番目の個別ポインタ情報メモリPM(1)、PM(2)のデータが「0000」であり、3番目の個別ポインタ情報メモリPM(3)のデータが「FFFF」である。従って、3番目の個別ポインタ情報メモリPM(3)をPM(y)として選択する。
【0073】
ステップS23では、上述の特定の個別ポインタ情報メモリPM(y)について、そのデータを1回インクリメント(+1)するように更新する。
例えば、最初に「1km」の距離の走行を検出した場合には、処理対象のPM(1)のデータが初期値の「FFFF」(10進数の「−1」)なので、このデータを「0000」(10進数の「0」)に更新する。また、2回目に「1km」の距離の走行を検出した場合には、処理対象のPM(2)のデータが初期値の「FFFF」なので、このデータを「0000」に更新する。また、例えばPM(y)のデータが「0000」の場合には、PM(y)のデータを「0001」に更新する。同様に、PM(y)のデータが「0001」の場合には、PM(y)のデータを「0002」に更新する。
【0074】
ステップS24では、マイクロコンピュータ11は、ポインタエリア12bの内容を利用して、今回の走行距離データエリア12aの更新対象位置を特定する。
例えば、直前に実行したステップS23において、2番目の個別ポインタ情報メモリPM(2)を「FFFF」から「0000」に更新して
図2に示すような状態になった場合を想定する。この場合は、PM(2)から対応関係にある2番目の個別情報メモリDM(2)の位置、つまりアドレス「3」を特定する。実際には次式によりアドレスを特定する。
Apt=Ay×2−81 ・・・(2)
Apt:該当するPM(y)が示すアドレス
Ay:注目するy番目の個別ポインタ情報メモリPM(y)自身のアドレス
【0075】
ステップS25では、マイクロコンピュータ11は、ステップS24で特定したアドレス(Apt)の16ビットのデータと、次のアドレス(Apt+1)の16ビットデータとを結合して、1つの個別情報メモリDMの32ビットデータとして扱う。
【0076】
例えば
図2に示す状態では、ポインタエリア12bが示すポインタ(PT)のアドレス(Apt)が「3」なので、不揮発性メモリ12上のアドレスが「3」のデータと、アドレスが「4」のデータとを結合する。つまり、ポインタ(PT)が示す記憶領域を32ビット構成の個別情報メモリDM(2)として扱う。
【0077】
ステップS26では、マイクロコンピュータ11は、ポインタ(PT)が示す位置の32ビット構成の個別情報メモリDMのデータの数値を、予め定めた閾値と比較する。この閾値は、データ更新回数の上限を規制するための値である。本実施形態においては、閾値を「500,000」に定めてある。この閾値は必要に応じて設定変更することが可能である。個別情報メモリDMのデータの数値が閾値以下の場合は次のステップS27に進み、閾値を超える場合はステップS28に進む。
【0078】
ステップS27では、今回処理対象とする1つの個別情報メモリDMが記憶している32ビットデータの内容を1回インクリメント(+1)して増やすように更新処理する。
例えば、ステップS27で1番目の個別情報メモリDM(1)を初回に処理する場合には、初期値の「FFFFFFFF」(10進数の「−1」)をインクリメントして「00000000」(10進数の「0」)に更新する。
【0079】
また、1番目の個別情報メモリDM(1)を2回目に処理する場合には、1回目の更新結果である「00000000」から「00000001」に更新する。同様に、1番目の個別情報メモリDM(1)を3回目に処理する場合には、2回目の更新結果である「00000001」から「00000002」に更新する。
【0080】
実際には、「1km」の走行を検出する毎に、ポインタ(PT)の示す位置が切り替わる(S23)ので、1番目の個別情報メモリDM(1)を更新した後、DM(2)、DM(3)、DM(4)のデータが順番に更新される。そして、20個の個別情報メモリDM(1)〜DM(20)の更新が終了した後で、最初の位置に戻って1番目の個別情報メモリDM(1)を再び更新する。
【0081】
従って、20個の個別情報メモリDM(1)〜DM(20)については、均等な頻度でそれぞれのデータが更新される。
【0082】
ステップS28では、処理対象メモリのアドレスが最終アドレスか否かをマイクロコンピュータ11が識別する。最終アドレスでなければステップS19に進み、最終アドレスの場合はステップS30に進む。「最終アドレス」は、20番目の個別情報メモリDM(20)のアドレス(39)、あるいは20番目の個別ポインタ情報メモリPM(20)のアドレス(60)に相当する。
すなわち、走行距離データエリア12aの全ての個別情報メモリDMについて更新回数が閾値(例えば50万回)を越えてしまった場合にステップS30に進む。
【0083】
ステップS29では、ステップS23と同様に、マイクロコンピュータ11は、
図2に示したポインタエリア12bの中で注目するy番目の個別ポインタ情報メモリPM(y)を前回の次の位置に切り替えて、この個別ポインタ情報メモリPM(y)のデータをインクリメントして更新する。
【0084】
ステップS30では、マイクロコンピュータ11は所定の「記録容量オーバ処理」を実施する。すなわち、不揮発性メモリ12のデータ更新回数が上限値を超えるまで走行距離の記録を行ったので、「記録容量オーバ」として処理する。具体的には、「記録容量オーバ」であるため、これ以降は
図3の処理を停止したり、あるいは表示部18の表示の点滅などの特別な制御を実施して警告を発する。
【0085】
例えば、ステップS26で参照する閾値を「50万」に定めると、走行距離データエリア12aにある20個の個別情報メモリDM(1)〜DM(20)のそれぞれに対して「50万」回の更新を行った後に、ステップS30で「記録容量オーバ処理」が実行されることになる。この閾値を超える更新回数は、走行距離の1000万kmに相当する。
【0086】
<走行距離表示処理の詳細>
図3に示した「走行距離表示処理」の詳細を
図5に示す。
図5の処理について、以下に説明する。
【0087】
ステップS41では、マイクロコンピュータ11は、不揮発性メモリ12上に存在する走行距離データエリア12aの範囲及び各個別情報メモリDMのアドレスを特定する。
図2に示す例では、アドレスの「1」〜「40」の範囲の20個の個別情報メモリDM(1)〜DM(20)の数及び位置を特定する。また、アドレスの「41」以降のメモリは個別情報メモリDMではないことを認識する。
【0088】
実際には、走行距離データエリア12aの先頭アドレス「1」、各個別情報メモリDMが占有するメモリアドレスの数「2」、個別情報メモリDMの数「20」などを定数として予めプログラムの中などに組み込んでおくことにより、全ての個別情報メモリDM(1)〜DM(20)を特定できる。
【0089】
ステップS42では、マイクロコンピュータ11が不揮発性メモリ12から記憶されているデータを読み込んで、現在の走行距離を算出する。例えば、
図2に示すように、走行距離データエリア12aが20個の個別情報メモリDM(1)〜DM(20)で構成されている場合は、20個の個別情報メモリDM(1)〜DM(20)の各々の32ビット構成の記憶データを読み込み、これらに基づいて走行距離を算出する。走行距離は次式により算出される。
走行距離=「DM(1)のデータが表す数値+1」〜「DM(20)のデータが表す数値+1」の総和[km]
【0090】
なお、
図2の例では各個別情報メモリDMのデータの初期値が「−1」(FFFFFFFF)なので、上記の式のように「+1」を加算して数値を補正する必要がある。
【0091】
ステップS43では、マイクロコンピュータ11がステップS42で取得した走行距離の数値を表示部18に出力して、運転者等に見えるように走行距離を表示する。
【0092】
<走行距離計10の利点>
上述の走行距離計10は、1000万kmまでの走行距離を管理することができる。しかも、必要とされる不揮発性メモリ12のアドレス数は、
図2の例では60であり、大きなメモリ容量の不揮発性メモリ12を必要としない。また、各個別情報メモリDMのデータ書き換え回数を抑制できるので、不揮発性メモリ12の劣化による誤動作を防止できる。更に、仮にいずれかの個別情報メモリDMに不具合が発生した場合であっても、複数の個別情報メモリDMが保持しているデータの規則性に基づいて、比較的誤差が少なく信頼性の高い走行距離を出力可能である。
【0093】
<変形の可能性>
図2に示した記憶領域の構成は代表例であり、様々な変形が考えられる。例えば、走行距離データエリア12aを構成する個別情報メモリDMの数(20)や、ポインタエリア12bを構成する個別ポインタ情報メモリPMの数(20)は、必要に応じて変更できる。また、
図2の例では、隣接する2つのアドレスのメモリを組み合わせて32ビット構成の個別情報メモリDMを構成しているが、個別情報メモリDMを構成するメモリの数(2)は必要に応じて変更できる。
【0094】
また、上述の実施形態では1000万kmの走行距離まで対応する可能にするために、各個別情報メモリDMの書き換え回数の上限値を表す閾値を50万回に定めているが、書き換え回数の上限値は必要に応じて変更できる。例えば、個別情報メモリDMの数(20)を増やして書き換え回数の上限値(50万回)を下げることも考えられる。
【0095】
上述の実施形態では、車両用の走行距離計10に本発明を適用する場合を想定しているが、本発明は同じように大きな累積値を扱う様々な用途に適用できる。例えば、電気自動車における充電電力の累積値、放電電力の累積値、あるいは家庭内の電力使用量の累積値などを管理するために利用可能である。
【0096】
<補足説明>
(1)上述の車両用累積値情報管理装置(10)は、不揮発性記憶部(12)と、データ管理部(11,15,16)とを備える。また、前記不揮発性記憶部上には、
図2に示すように、累積値の一部分を表す数値をそれぞれ保持する複数の個別情報メモリ(DM(1)〜DM(20))が、複数のアドレスに渡って規則的に配置されたデータエリア(12a)と、前記データエリア上の前記複数の個別情報メモリの中で、最後に更新した個別情報メモリの位置に関連する特定アドレス情報を保持するポインタエリア(12b)とを有する。また、前記データ管理部は、前記ポインタエリアに保持されている前記特定アドレス情報に基づいて、特定位置の個別情報メモリの記憶内容、および前記ポインタエリアが保持する特定アドレス情報を更新する(S23,S27)。また、前記データ管理部は、前記データエリアに存在する前記複数の個別情報メモリの記憶内容に基づいて、前記累積値を把握する(S41,S42)。
【0097】
(2)また、前記ポインタエリア(12b)は、
図2に示すように前記データエリアに存在する前記個別情報メモリの数と同数の規則的に配置された複数の個別ポインタ情報メモリ(PM(1)〜PM(20))を有する。また、前記データ管理部は、前記データエリアの複数の個別情報メモリと、前記ポインタエリアの複数の個別ポインタ情報メモリとを互いに関連付けて管理する。
【0098】
(3)また、
図2に示すように前記データ管理部は、前記不揮発性記憶部上の複数アドレスの記憶領域を、前記データエリアの各々の個別情報メモリ(DM)に割り当て、各々の個別情報メモリの位置を対応する前記個別ポインタ情報メモリ(12b)の内容に基づいて把握する。
【0099】
(4)また、前記データ管理部は、前記データエリア(12a)のデータを更新する際に、前記複数の個別情報メモリ(DM(1)〜DM(20))の中で更新対象とするメモリの位置を順次に切り替える(S23)。
【0100】
(5)また、前記データ管理部は、前記データエリアのデータを更新する際に、前記複数の個別情報メモリの中で更新対象とするメモリの位置、ならびに前記複数の個別ポインタ情報メモリの中で更新対象とするメモリの位置を順次に切り替える(S23)。
【0101】
(6)また、前記データ管理部は、前記データエリアの個別情報メモリの記憶内容が予め定めた閾値(例えば50万回)を超えた場合(S26)に、異常な状態とみなして予め定めた特別な処理を実行する(S30)。
【0102】
(7)また、前記データ管理部は、走行距離などの計測結果に所定値の変化(例えば1kmの走行距離)が検出される毎に(S22)、前記データエリアの記憶内容を更新する(S27)。
【0103】
(8)また、上述の累積値情報管理方法においては、累積値の一部分を表す数値をそれぞれ保持する複数の個別情報メモリが、複数のアドレスに渡って規則的に配置されたデータエリアと、前記データエリア上の前記複数の個別情報メモリの中で、最後に更新した個別情報メモリの位置に関連する特定アドレス情報を保持するポインタエリアとを、所定の不揮発性記憶部上に割り当てる。また、前記ポインタエリアに保持されている前記特定アドレス情報に基づいて、特定位置の個別情報メモリの記憶内容、および前記ポインタエリアが保持する特定アドレス情報を更新する。また、前記データエリアに存在する前記複数の個別情報メモリの記憶内容に基づいて、前記累積値を把握する。