(57)【特許請求の範囲】
【請求項１】
車両上で検出される計測結果の累積値を保持し、前記累積値を最新の情報に逐次更新するように管理する車両用累積値情報管理装置であって、
データを保持する不揮発性記憶部と、
前記不揮発性記憶部にアクセスして前記不揮発性記憶部が保持するデータを更新するデータ管理部と、
を備え、
前記不揮発性記憶部は、
前記累積値の一部分を表す数値をそれぞれ保持する複数の個別情報メモリが、複数のアドレスに渡って規則的に配置されたデータエリアと、
前記データエリアに存在する前記個別情報メモリの数と同数の個別ポインタ情報メモリが、前記データエリア外の複数のアドレスに渡って規則的に配置されたポインタエリアと、
を有し、
前記データ管理部は、前記データエリアの複数の個別情報メモリと、前記ポインタエリアの複数の個別ポインタ情報メモリとを互いに対応付けて管理し、
前記データ管理部は、前記データエリアのデータを更新する毎に、前記複数の個別ポインタ情報メモリの中で記憶内容の更新対象とするメモリの位置を順次に切り替え、
前記データ管理部は、前記データエリアのデータを更新する際、前回更新した前記個別ポインタ情報メモリに対して次の順番の前記個別ポインタ情報メモリの記憶内容をインクリメントして今回更新すると共に、今回記憶内容が更新された前記個別ポインタ情報メモリに対応する前記個別情報メモリの記憶内容をインクリメントして更新し、
前記データ管理部は、前記データエリアに存在する前記複数の個別情報メモリの記憶内容に基づいて、前記累積値を把握する
ことを特徴とする車両用累積値情報管理装置。
【請求項２】
逐次検出される計測結果の累積値を保持し、前記累積値を最新の情報に逐次更新するように管理する累積値情報管理方法であって、
前記累積値の一部分を表す数値をそれぞれ保持する複数の個別情報メモリが、複数のアドレスに渡って規則的に配置されたデータエリアと、
前記データエリアに存在する前記個別情報メモリの数と同数の個別ポインタ情報メモリが、前記データエリア外の複数のアドレスに渡って規則的に配置されたポインタエリアと、
を、所定の不揮発性記憶部上に割り当て、
前記データエリアの複数の個別情報メモリと、前記ポインタエリアの複数の個別ポインタ情報メモリとを互いに対応付けて管理し、
前記データエリアのデータを更新する毎に、前記複数の個別ポインタ情報メモリの中で記憶内容の更新対象とするメモリの位置を順次に切り替え、
前記データエリアのデータを更新する際、前回更新した前記個別ポインタ情報メモリに対して次の順番の前記個別ポインタ情報メモリの記憶内容をインクリメントして今回更新すると共に、今回記憶内容が更新された個別ポインタ情報メモリに対応する前記個別情報メモリの記憶内容をインクリメントして更新し、
前記データエリアに存在する前記複数の個別情報メモリの記憶内容に基づいて、前記累積値を把握する
ことを特徴とする累積値情報管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両の計器板等に装備される走行距離計などの用途に利用可能な車両用累積値情報管理装置および累積値情報管理方法に関する。
【背景技術】
【０００２】
自動車などの多くの車両においては、車両の製造時から現在までの累積走行距離を表示する走行距離計を搭載している。このような走行距離計については、常に正しい走行距離を表示できるように様々な工夫が必要になる。
【０００３】
特に、電気的な処理によって走行距離を表示するデジタル走行距離計の場合には、車両からの電力供給が遮断された状態でも距離のデータが消滅しないように考慮する必要がある。また、エラーの発生によって表示する走行距離に大きな誤差が発生しないように、管理するデータの信頼性を高める必要がある。
【０００４】
この種のデジタル走行距離計に関する従来技術が、特許文献１に開示されている。特許文献１に開示されているように、この種のデジタル走行距離計では、走行距離のデータを保存するために不揮発性メモリを用いている。また、不揮発性メモリ上の複数のアドレスのメモリ領域を使って走行距離のデータを保持している。このような特別な制御により、走行距離データの信頼性を高めることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第２８７０６７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一般的な車両の走行距離計については、従来より、表示可能な累積走行距離の最大値を１００万ｋｍまでとすることが求められている。しかし、近年では表示可能な累積走行距離の最大値を１０００万ｋｍまで増やすことに関する市場の要望もある。
【０００７】
例えば、１アドレスあたり１６ビット（１ワード）の構成を有する不揮発性メモリを使う場合を想定すると、１アドレスのメモリで「６５５３６」種類の数値を記憶できる。従って、例えば１６個のアドレスのメモリを使い、各アドレスのメモリの数値を加算して合計を算出する場合を想定すると、記憶可能な数値の種類Ｄ１は次式で表される。
Ｄ１＝６５，５３６×１６＝１，０４８，５７６
【０００８】
この場合、各メモリ領域の数値の最小単位を「１ｋｍ」と仮定すると、０ｋｍ〜１０４８５７６ｋｍの範囲の走行距離を記憶できる。つまり、表示可能な累積走行距離の最大値を１００万ｋｍまでとする要求に対応できる。
【０００９】
もしも、上記と同じ条件で表示可能な累積走行距離の最大値を１０００万ｋｍまで増やす場合を想定すると、上記の１０倍の１６０個のアドレスのメモリを使う必要がある。この場合に記憶可能な数値の種類Ｄ２は次式で表される。
Ｄ２＝６５，５３６×１６０＝１０，４８５，７６０
【００１０】
つまり、表示可能な累積走行距離の最大値を１００万ｋｍから１０００万ｋｍまで増やそうとすると、必要な不揮発性メモリの容量が１０倍に増えてしまう。従って、走行距離計の製造コストの大幅な上昇は避けられない。
【００１１】
一方、不揮発性メモリはデータの書き換えによって劣化する。従って、不揮発性メモリに対するデータ書き込み時やデータ読み出し時のデータエラーの発生を抑制するために、不揮発性メモリの各アドレスの書き換え回数を制限する必要がある。書き換え回数の上限は、例えば１００万回程度である。
【００１２】
しかし、例えば１０００万ｋｍまでの走行距離の表示に対応しようとすると、１ｋｍ毎に距離データを更新する場合に、データ更新回数が最大で１０００万回になる。従って、不揮発性メモリが劣化する可能性があり、１０００万ｋｍまでの走行距離の表示には耐えられない。
【００１３】
本発明は、上述した事情に鑑みてなされたものであり、その目的は、非常に大きな累積値を管理対象とする場合であっても、必要とするメモリの容量を大幅に増やすことなく、信頼性の高い累積値を得ることが可能な車両用累積値情報管理装置および累積値情報管理方法を提供することにある。
【課題を解決するための手段】
【００１４】
前述した目的を達成するために、本発明に係る車両用累積値情報管理装置は、下記（１）〜（３）を特徴としている。
（１）  車両上で検出される計測結果の累積値を保持し、前記累積値を最新の情報に逐次更新するように管理する車両用累積値情報管理装置であって、
データを保持する不揮発性記憶部と、
前記不揮発性記憶部にアクセスして前記不揮発性記憶部が保持するデータを更新するデータ管理部と、
を備え、
前記不揮発性記憶部は、
前記累積値の一部分を表す数値をそれぞれ保持する複数の個別情報メモリが、複数のアドレスに渡って規則的に配置されたデータエリアと、
前記データエリアに存在する前記個別情報メモリの数と同数の個別ポインタ情報メモリが、前記データエリア外の複数のアドレスに渡って規則的に配置されたポインタエリアと、
を有し、
前記データ管理部は、前記データエリアの複数の個別情報メモリと、前記ポインタエリアの複数の個別ポインタ情報メモリとを互いに対応付けて管理し、
前記データ管理部は、前記データエリアのデータを更新する毎に、前記複数の個別ポインタ情報メモリの中で記憶内容の更新対象とするメモリの位置を順次に切り替え、
前記データ管理部は、前記データエリアのデータを更新する際、前回更新した前記個別ポインタ情報メモリに対して次の順番の前記個別ポインタ情報メモリの記憶内容をインクリメントして今回更新すると共に、今回記憶内容が更新された個別ポインタ情報メモリに対応する前記個別情報メモリの記憶内容をインクリメントして更新し、
前記データ管理部は、前記データエリアに存在する前記複数の個別情報メモリの記憶内容に基づいて、前記累積値を把握する
こと。
（２）  上記（１）の構成の車両用累積値情報管理装置であって、
前記データ管理部は、前記データエリアの個別情報メモリの記憶内容が予め定めた閾値を超えた場合に、異常な状態とみなして予め定めた特別な処理を実行する
こと。
（３）  上記（１）の構成の車両用累積値情報管理装置であって、
前記データ管理部は、計測結果に所定値の変化が検出される毎に、前記データエリアの記憶内容を更新する
こと。
【００１５】
上記（１）の構成の車両用累積値情報管理装置によれば、累積値を表す数値を複数の個別情報メモリに分散した状態で保持するので、各々の個別情報メモリに対するデータ更新の回数を減らすことができ、不揮発性記憶部のメモリ劣化を抑制できる。
また、複数の個別ポインタ情報メモリを有するので、各々の個別ポインタ情報メモリのデータ更新の回数を減らすことができ、不揮発性記憶部のメモリ劣化を抑制できる。
また、更新対象の個別情報メモリ及び個別ポインタ情報メモリを順次に切り替えるので、これらに対する更新回数を均一化することができる。例えば、ｎ個の個別情報メモリ及びｎ個の個別ポインタ情報メモリを有する場合には、各々のメモリの更新回数を全体の（１／ｎ）に減らすことができる。従って、不揮発性記憶部のメモリ劣化を抑制できる。
上記（２）の構成の車両用累積値情報管理装置によれば、各々の個別情報メモリの更新回数が閾値を超えてメモリが劣化する前に、異常な状態として検出することができる。
上記（３）の構成の車両用累積値情報管理装置によれば、前記データエリアの記憶内容を更新する回数を減らすことが可能になる。
【００１６】
前述した目的を達成するために、本発明に係る累積値情報管理方法は、下記（４）を特徴としている。
（４）  逐次検出される計測結果の累積値を保持し、前記累積値を最新の情報に逐次更新するように管理する累積値情報管理方法であって、
前記累積値の一部分を表す数値をそれぞれ保持する複数の個別情報メモリが、複数のアドレスに渡って規則的に配置されたデータエリアと、
前記データエリアに存在する前記個別情報メモリの数と同数の個別ポインタ情報メモリが、前記データエリア外の複数のアドレスに渡って規則的に配置されたポインタエリアと、
を、所定の不揮発性記憶部上に割り当て、
前記データエリアの複数の個別情報メモリと、前記ポインタエリアの複数の個別ポインタ情報メモリとを互いに対応付けて管理し、
前記データエリアのデータを更新する毎に、前記複数の個別ポインタ情報メモリの中で記憶内容の更新対象とするメモリの位置を順次に切り替え、
前記データエリアのデータを更新する際、前回更新した前記個別ポインタ情報メモリに対して次の順番の前記個別ポインタ情報メモリの記憶内容をインクリメントして今回更新すると共に、今回記憶内容が更新された個別ポインタ情報メモリに対応する前記個別情報メモリの記憶内容をインクリメントして更新し、
前記データエリアに存在する前記複数の個別情報メモリの記憶内容に基づいて、前記累積値を把握する
こと。
【００１７】
上記（４）の構成の累積値情報管理方法によれば、累積値を表す数値を複数の個別情報メモリに分散した状態で保持するので、各々の個別情報メモリに対するデータ更新の回数を減らすことができ、不揮発性記憶部のメモリ劣化を抑制できる。
また、複数の個別ポインタ情報メモリを有するので、各々の個別ポインタ情報メモリのデータ更新の回数を減らすことができ、不揮発性記憶部のメモリ劣化を抑制できる。
また、更新対象の個別情報メモリ及び個別ポインタ情報メモリを順次に切り替えるので、これらに対する更新回数を均一化することができる。例えば、ｎ個の個別情報メモリ及びｎ個の個別ポインタ情報メモリを有する場合には、各々のメモリの更新回数を全体の（１／ｎ）に減らすことができる。従って、不揮発性記憶部のメモリ劣化を抑制できる。
【発明の効果】
【００１８】
本発明の車両用累積値情報管理装置および累積値情報管理方法によれば、非常に大きな累積値を管理対象とする場合であっても、必要とするメモリの容量を大幅に増やすことなく、信頼性の高い累積値を得ることが可能になる。例えば、上限が１０００万ｋｍ程度の走行距離の管理も可能になる。
【００１９】
以上、本発明について簡潔に説明した。更に、以下に説明される発明を実施するための形態（以下、「実施形態」という。）を添付の図面を参照して通読することにより、本発明の詳細は更に明確化されるであろう。
【図面の簡単な説明】
【００２０】
【図１】図１は、実施形態の車両用累積値情報管理装置の電気回路の構成例を示すブロック図である。
【図２】図２は、不揮発性メモリ上に割り当てた各記憶領域の具体的な構成例を示す模式図である。
【図３】図３は、図１に示した車両用累積値情報管理装置の動作に関するメインフローを示すフローチャートである。
【図４】図４は、図３に示した走行距離記憶処理の詳細を示すフローチャートである。
【図５】図５は、図３に示した走行距離表示処理の詳細を示すフローチャートである。
【発明を実施するための形態】
【００２１】
本発明の車両用累積値情報管理装置および累積値情報管理方法に関する具体的な実施形態について、各図を参照しながら以下に説明する。
【００２２】
＜装置のハードウェア構成例＞
本実施形態の車両用累積値情報管理装置の電気回路の構成例を図１に示す。具体的には、図１に示した車両用累積値情報管理装置は、車両の計器板に搭載される走行距離計１０を構成している。
【００２３】
この走行距離計１０は、車両が製造された時から現在までの、車両の走行距離の累積値（積算値）をｋｍ単位の数値として管理し表示することができる。本実施形態においては、最大で１０００万ｋｍの走行距離まで管理できるように構成してある。また、走行距離計１０はユーザが指定した任意の時点からの走行距離を表示するトリップメータとして利用することもできる。
【００２４】
図１に示すように、この走行距離計１０は、マイクロコンピュータ（ＣＰＵ）１１、不揮発性メモリ１２、揮発性メモリ（ＲＡＭ）１３、走行距離算出部１４、不揮発性メモリアクセス部１５、距離データ加算部１６、モード切替部１７、表示部１８、入出力部（Ｉ／Ｏ）１９、インタフェース（Ｉ／Ｆ）２０及び２１を備えている。
【００２５】
マイクロコンピュータ１１は、予め内部に組み込まれているプログラムを読み出して実行することにより、走行距離計１０の全体の制御に必要とされる様々な処理を実行する。具体的な処理の内容については後で説明する。
【００２６】
不揮発性メモリ１２は、外部から電力を供給しない状態でもデータを保持することができる書き換え可能な半導体メモリであり、例えばフラッシュメモリにより構成される。なお、この不揮発性メモリ１２は、書き換え可能な回数に上限がある。すなわち、データの書き換えを繰り返すと劣化が生じ、データの書き込みや読み出しの際にエラーが発生したり、書き換えができない状態になる可能性がある。書き換え回数の上限については、例えば１００万回程度が想定される。
【００２７】
揮発性メモリ１３は、マイクロコンピュータ１１等のアクセスによりデータの読み出し及び書き込みが可能な半導体メモリである。揮発性メモリ１３は電力の供給が遮断されるとデータが消滅するので、一時的なデータを保存するために利用される。
【００２８】
走行距離算出部１４は、走行距離を算出するための処理を行う。不揮発性メモリアクセス部１５は、不揮発性メモリ１２にアクセスするための特別な処理を行う。距離データ加算部１６は、車両の所定距離の走行毎に、距離の算出に用いるデータの数値を加算するための処理を行う。
【００２９】
なお、走行距離算出部１４、不揮発性メモリアクセス部１５、距離データ加算部１６の各機能については、マイクロコンピュータ１１の中に組み込むことも可能であるが、不揮発性メモリ１２の内容（走行距離の値）の不正な書き換え等を防止するために、十分な安全対策を施す必要がある。
【００３０】
モード切替部１７は、ユーザの入力操作に従って様々なモードの切替を行う。例えば、表示する内容として、走行距離の累積値と、トリップメータの計測距離とを切り替えたり、トリップメータの計測距離をリセットすることができる。
【００３１】
表示部１８は、１０００万ｋｍまでの走行距離の「１ｋｍ」単位の数値を表示することが可能な表示器であり、例えば液晶表示器により構成される。表示部１８は、入出力部１９を介してマイクロコンピュータ１１と接続されている。マイクロコンピュータ１１の制御により、走行距離の数値を表示部１８に表示することができる。
【００３２】
インタフェース２０の入力には、車両側から距離パルス（車速パルスとも言う）の電気信号が入力される。この距離パルスには、車両のトランスミッション出力軸が所定量回動する毎に１つのパルス信号が現れる。従って、車両の走行距離は発生した距離パルスのパルス数に比例する。マイクロコンピュータ１１は、インタフェース２０を介して入力される距離パルスのパルス数を計数する。この計数値から車両の走行距離を把握できる。
【００３３】
インタフェース２１の入力には、イグニッション（ＩＧＮ）スイッチと接続された電源からの信号が印加される。マイクロコンピュータ１１は、インタフェース２１を介してイグニッションのオンオフ状態を把握する。
【００３４】
＜記憶領域の構成例＞
走行距離の累積値のデータを保持するために、不揮発性メモリ１２上に割り当てた各記憶領域の具体的な構成例を図２に示す。
【００３５】
図２に示すように、不揮発性メモリ１２上には、走行距離データエリア１２ａ及びポインタエリア１２ｂを設けてある。走行距離データエリア１２ａは、連続的に並んだ２０個の個別情報メモリＤＭ（１）〜ＤＭ（２０）で構成されている。また、ポインタエリア１２ｂは、連続的に並んだ２０個の個別ポインタ情報メモリＰＭ（１）〜ＰＭ（２０）で構成されている。
【００３６】
個別情報メモリＤＭ（１）〜ＤＭ（２０）の各々は、不揮発性メモリ１２上で互いに隣接する２つのアドレスのメモリ領域として構成されている。例えば、１番目の個別情報メモリＤＭ（１）は、アドレスが「１」のメモリと、アドレスが「２」のメモリとの組み合わせとして構成してある。また、２番目の個別情報メモリＤＭ（２）は、アドレスが「３」のメモリと、アドレスが「４」のメモリとの組み合わせとして構成してある。
【００３７】
本実施形態においては、不揮発性メモリ１２の各々のアドレスのメモリは、１６ビット分（「ｗｏｒｄ」単位）の２値データ（０／１）を保持するメモリにより構成されている。従って、２つのアドレスのメモリで構成される個別情報メモリＤＭ（１）〜ＤＭ（２０）の各々は、３２ビット構成の２値データを保持することができる。
【００３８】
３２ビット構成（「ｌｏｎｇ」単位＝２単位の「ｗｏｒｄ」）の２値データは、１０進数表記で、「０」から「４，２９４，９６７，２９５」までの範囲の数値を表現することができる。また、１６進数表記では、「００００００００」から「ＦＦＦＦＦＦＦＦ」までの範囲の数値になる。
【００３９】
図２においては、不揮発性メモリ１２上の各アドレスのメモリの内容を、１６進数表記の１６ビットデータ、すなわち、「００００」から「ＦＦＦＦ」までの範囲のデータとして示してある。
【００４０】
従って、個別情報メモリＤＭ（１）〜ＤＭ（２０）の各々は、１０進数表記で「０」から「４，２９４，９６７，２９５」までの範囲の任意の数値を記憶することができる。１６進数表記では、「００００００００」から「ＦＦＦＦＦＦＦＦ」までの範囲の数値になる。
【００４１】
一方、個別ポインタ情報メモリＰＭ（１）〜ＰＭ（２０）の各々は、不揮発性メモリ１２上の１つのアドレスのメモリ領域として構成されている。従って、個別ポインタ情報メモリＰＭ（１）〜ＰＭ（２０）の各々は、１０進数表記で「０」から「６５，５３５」までの範囲の任意の数値を記憶することができる。１６進数表記では、「００００」から「ＦＦＦＦ」までの範囲の数値になる。
【００４２】
本実施形態においては、個別情報メモリＤＭ（１）〜ＤＭ（２０）の数（２０個）と個別ポインタ情報メモリＰＭ（１）〜ＰＭ（２０）の数とが同数になっている。また、２０個の個別ポインタ情報メモリＰＭ（１）〜ＰＭ（２０）は、それぞれ個別情報メモリＤＭ（１）〜ＤＭ（２０）の各々に対応付けてある。
【００４３】
ポインタエリア１２ｂの個別ポインタ情報メモリＰＭ（１）〜ＰＭ（２０）の内容は、走行距離データエリア１２ａの２０個の個別情報メモリＤＭ（１）〜ＤＭ（２０）の中で処理対象とすべき特定の位置を示すために利用する。
【００４４】
＜記憶領域の利用方法の説明＞
図２に示した不揮発性メモリ１２上の走行距離データエリア１２ａ及びポインタエリア１２ｂの利用方法の概要について、以下に説明する。
【００４５】
＜メモリの初期値＞
走行距離データエリア１２ａの個別情報メモリＤＭ（１）〜ＤＭ（２０）については、各々の初期値を１６進数表記で「ＦＦＦＦＦＦＦＦ」（１０進数では「−１」）とする。また、ポインタエリア１２ｂの個別ポインタ情報メモリＰＭ（１）〜ＰＭ（２０）の各々の初期値を１６進数表記で「ＦＦＦＦ」（１０進数では「−１」）とする。
【００４６】
＜記憶する累積値の更新＞
記憶すべき最新の累積値が１単位増える毎に、具体的には走行距離が「１ｋｍ」増える毎に、個別情報メモリＤＭ（１）〜ＤＭ（２０）のいずれか１つの内容をインクリメント（「＋１」だけ増やす）するように記憶するデータの内容を更新する。
【００４７】
走行距離データエリア１２ａの内容を更新する毎に、更新対象のメモリ位置を個別情報メモリＤＭ（１）〜ＤＭ（２０）の中で順番に切り替える。このメモリ位置を簡単に把握できるようにポインタエリア１２ｂを利用する。具体的には、次のように処理する。
【００４８】
不揮発性メモリ１２のデータの更新毎に、個別ポインタ情報メモリＰＭ（１）〜ＰＭ（２０）のいずれか１つの内容をインクリメント（「＋１」だけ増やす）するように記憶するデータの内容を更新する。また、データを更新する個別ポインタ情報メモリＰＭ（１）〜ＰＭ（２０）を順番に切り替える。
【００４９】
つまり、走行距離が「１ｋｍ」増える毎に、ＰＭ（１）の更新、ＰＭ（２）の更新、ＰＭ（３）の更新、・・・を順番に行う。また、最後のＰＭ（２０）を更新した後は、最初のＰＭ（１）の位置に戻って同じように更新を繰り返す。
【００５０】
この場合、図２に示すポインタエリア１２ｂのように、個別ポインタ情報メモリＰＭ（１）〜ＰＭ（２０）の中でデータの内容が異なる境界の位置は容易に把握できる。つまり、図２に示す例では、２番目の個別ポインタ情報メモリＰＭ（２）が最後に更新したメモリ位置である。ここで、個別ポインタ情報メモリＰＭ（２）は２番目の個別情報メモリ（アドレスが３、４のメモリ）ＤＭ（２）と対応付けてあるので、走行距離データエリア１２ａにおける更新対象を個別情報メモリＤＭ（２）として特定することができる。この場合は個別情報メモリＤＭ（２）のデータをインクリメントする。
【００５１】
上記のような処理を行うことにより、走行距離データエリア１２ａの２０個の個別情報メモリＤＭ（１）〜ＤＭ（２０）を均等な頻度で更新することができる。つまり、データ書き換え回数を全更新回数の（１／２０）に抑制できる。また、ポインタエリア１２ｂについても、個別ポインタ情報メモリＰＭ（１）〜ＰＭ（２０）を均等な頻度で更新することができ、データ書き換え回数を全更新回数の（１／２０）に抑制できる。これにより、不揮発性メモリ１２の劣化を抑制できる。
【００５２】
＜記憶される累積値の説明＞
上記のような処理を行う場合には、本来の累積値が複数に分割され、累積値の一部分の値が、２０個の個別情報メモリＤＭ（１）〜ＤＭ（２０）にそれぞれ記憶される。
【００５３】
従って、個別情報メモリＤＭ（１）の内容、ＤＭ（２）の内容、ＤＭ（３）の内容、・・・、ＤＭ（２０）の内容の総和が本来の累積値になる。つまり、２０個の個別情報メモリＤＭ（１）〜ＤＭ（２０）のデータの全体を加算することにより、記憶した走行距離の数値が得られる。
【００５４】
但し、図２に示した例では、個別情報メモリＤＭ（１）〜ＤＭ（２０）の初期値が「−１」（１６進数表記で「ＦＦＦＦＦＦＦＦ」）なので、ＤＭ（１）〜ＤＭ（２０）の各々が記憶しているデータの数値に「＋１」を加算するように修正する必要がある。
【００５５】
図２に示した例では、個別情報メモリＤＭ（１）及びＤＭ（２）の内容が「００００００００」であり、ＤＭ（３）〜ＤＭ（２０）の内容が「ＦＦＦＦＦＦＦＦ」になっている。つまり、ＤＭ（１）及びＤＭ（２）の内容はそれぞれ１０進数の「１ｋｍ」に対応し、ＤＭ（３）〜ＤＭ（２０）の内容はそれぞれ１０進数の「０ｋｍ」に対応する。これらの内容の全体の総和、すなわち走行距離は「２ｋｍ」である。
【００５６】
＜アドレスの計算＞
図２に示した例では、走行距離データエリア１２ａの先頭のメモリアドレスが「１」であり、個別情報メモリＤＭ（１）〜ＤＭ（２０）の各々が互いに隣接する２つのアドレスを占有するように順番に、すなわち規則的に並んでいる。また、ポインタエリア１２ｂの先頭のメモリアドレスが「４１」であり、個別ポインタ情報メモリＰＭ（１）〜ＰＭ（２０）の各々が１つのアドレスを占有するように順番に、すなわち規則的に並んでいる。
【００５７】
従って、個別ポインタ情報メモリＰＭ（１）〜ＰＭ（２０）の各々と対応関係にある個別情報メモリＤＭ（１）〜ＤＭ（２０）のメモリアドレスは、次のように簡単に算出することができる。
Ａｐｔ＝Ａｘ×２−８１    ・・・（１）
Ａｐｔ：ポインタが示すアドレス
Ａｘ：注目するｎ番目の個別ポインタ情報メモリＰＭ（ｎ）自身のアドレス
【００５８】
例えば、図２に示す例では、ポインタエリア１２ｂに順番に並んでいる個別ポインタ情報メモリＰＭ（１）〜ＰＭ（２０）の中で、データが初期値の「ＦＦＦＦ」から「００００」に最後に最後に更新されたメモリが２番目のＰＭ（２）であることが分かる。つまり、隣接するデータが異なる「００００」と「ＦＦＦＦ」の境界を見つけることにより、ＰＭ（２）を特定できる。
【００５９】
この場合、最後に更新した個別ポインタ情報メモリＰＭ（２）のアドレス（Ａｘ）が「４２」なので、ポインタが示すアドレスＡｐｔは次のように算出される。
Ａｐｔ＝４２×２−８１＝３
【００６０】
つまり、図２に示すような状況のタイミングにおいては、アドレスが「３」の１６ビットメモリと次のアドレス「４」の１６ビットメモリとで構成される２番目の個別情報メモリＤＭ（２）を処理対象として選択すればよい。
【００６１】
＜走行距離計１０の処理の内容＞
＜メインフロー＞
図１に示した走行距離計１０の動作に関するメインフローを図３に示す。この動作は、図１に示したマイクロコンピュータ１１、走行距離算出部１４、不揮発性メモリアクセス部１５、及び距離データ加算部１６の制御によって実現する。車両側の電源から走行距離計１０に電力が供給されると、走行距離計１０が図３の動作を開始し、ステップＳ１１の処理に進む。
【００６２】
ステップＳ１１では、マイクロコンピュータ１１がイグニッションスイッチのオンオフを示す信号をインタフェース２１から入力し、オンオフを識別する。オンになるとステップＳ１２に進む。
【００６３】
ステップＳ１２では、マイクロコンピュータ１１が距離パルスの信号をインタフェース２０から入力し、この信号に基づいて走行距離の増加分に関する演算処理を行う。すなわち、入力された距離パルスのパルス数を計数する。この計数値が走行距離に比例するので、予め定めた定数を用いて計数値を走行距離に換算することができる。マイクロコンピュータ１１は、ステップＳ１２で検出した距離パルスの計数値に基づいて、走行距離の増加分を検出し、この増加分を、次のステップＳ１３で処理する。
【００６４】
ステップＳ１３では、不揮発性メモリ１２が保持している走行距離のデータが、ステップＳ１２で検出した最新の走行距離の増加分を反映するように、マイクロコンピュータ１１の制御により不揮発性メモリ１２の記憶データを更新する。但し、実際の不揮発性メモリ１２のデータ更新に際しては、不正なデータ改竄を防止するために、不揮発性メモリアクセス部１５及び距離データ加算部１６が制御を実施する。ステップＳ１３の詳細については後で説明する。
【００６５】
ステップＳ１４では、不揮発性メモリ１２が保持している走行距離のデータを読み出して、このデータに基づいて現在の走行距離の累積値を把握し、この走行距離を表示するように、マイクロコンピュータ１１が制御を実施する。ステップＳ１４の詳細については後で説明する。
【００６６】
＜走行距離記憶処理の詳細＞
図３に示した「走行距離記憶処理」の詳細を図４に示す。図４の処理について、以下に説明する。
【００６７】
ステップＳ２１では、マイクロコンピュータ１１は前述のステップＳ１２で検出した距離パルスの計数値データ、すなわち走行距離の増加分を処理対象のデータとして取り込む。
【００６８】
ステップＳ２２では、マイクロコンピュータ１１は、ステップＳ２１で取り込んだ走行距離の増加分が計測単位である「１ｋｍ」に到達したか否かを識別する。「１ｋｍ」に到達した場合は次のステップＳ２３に進み、到達していない場合はこの処理を終了する。また、走行距離の増加分が「１ｋｍ」に到達した場合は、ステップＳ１２で距離パルスを計数するために用いるカウンタの計数値を０にリセットするか、又は「１ｋｍ」分を減算した計数値に更新する。
【００６９】
ステップＳ２３では、マイクロコンピュータ１１は、図２に示したポインタエリア１２ｂの中の、ｙ番目の個別ポインタ情報メモリＰＭ（ｙ）をインクリメント（＋１）して更新する。処理対象の個別ポインタ情報メモリＰＭ（ｙ）は、ポインタエリア１２ｂの２０個の個別ポインタ情報メモリＰＭ（１）〜ＰＭ（２０）の中で、最後に更新したメモリの次のアドレスに存在するメモリとする。但し、更新したメモリが存在しない初期状態では、最初のメモリを処理対象とする。
【００７０】
例えば、最初に「１ｋｍ」の距離の走行を検出した場合には、全ての個別ポインタ情報メモリＰＭ（１）〜ＰＭ（２０）のデータが初期値の「ＦＦＦＦ」であるので、１番目の個別ポインタ情報メモリＰＭ（１）をＰＭ（ｙ）として選択する。
【００７１】
また、２回目に「１ｋｍ」の距離の走行を検出した場合には、１番目の個別ポインタ情報メモリＰＭ（１）のデータが「００００」であり、２番目の個別ポインタ情報メモリＰＭ（２）のデータが「ＦＦＦＦ」である。従って、２番目の個別ポインタ情報メモリＰＭ（２）をＰＭ（ｙ）として選択する。
【００７２】
同様に、３回目に「１ｋｍ」の距離の走行を検出した場合には、１番目及び２番目の個別ポインタ情報メモリＰＭ（１）、ＰＭ（２）のデータが「００００」であり、３番目の個別ポインタ情報メモリＰＭ（３）のデータが「ＦＦＦＦ」である。従って、３番目の個別ポインタ情報メモリＰＭ（３）をＰＭ（ｙ）として選択する。
【００７３】
ステップＳ２３では、上述の特定の個別ポインタ情報メモリＰＭ（ｙ）について、そのデータを１回インクリメント（＋１）するように更新する。
例えば、最初に「１ｋｍ」の距離の走行を検出した場合には、処理対象のＰＭ（１）のデータが初期値の「ＦＦＦＦ」（１０進数の「−１」）なので、このデータを「００００」（１０進数の「０」）に更新する。また、２回目に「１ｋｍ」の距離の走行を検出した場合には、処理対象のＰＭ（２）のデータが初期値の「ＦＦＦＦ」なので、このデータを「００００」に更新する。また、例えばＰＭ（ｙ）のデータが「００００」の場合には、ＰＭ（ｙ）のデータを「０００１」に更新する。同様に、ＰＭ（ｙ）のデータが「０００１」の場合には、ＰＭ（ｙ）のデータを「０００２」に更新する。
【００７４】
ステップＳ２４では、マイクロコンピュータ１１は、ポインタエリア１２ｂの内容を利用して、今回の走行距離データエリア１２ａの更新対象位置を特定する。
例えば、直前に実行したステップＳ２３において、２番目の個別ポインタ情報メモリＰＭ（２）を「ＦＦＦＦ」から「００００」に更新して図２に示すような状態になった場合を想定する。この場合は、ＰＭ（２）から対応関係にある２番目の個別情報メモリＤＭ（２）の位置、つまりアドレス「３」を特定する。実際には次式によりアドレスを特定する。
Ａｐｔ＝Ａｙ×２−８１    ・・・（２）
Ａｐｔ：該当するＰＭ（ｙ）が示すアドレス
Ａｙ：注目するｙ番目の個別ポインタ情報メモリＰＭ（ｙ）自身のアドレス
【００７５】
ステップＳ２５では、マイクロコンピュータ１１は、ステップＳ２４で特定したアドレス（Ａｐｔ）の１６ビットのデータと、次のアドレス（Ａｐｔ＋１）の１６ビットデータとを結合して、１つの個別情報メモリＤＭの３２ビットデータとして扱う。
【００７６】
例えば図２に示す状態では、ポインタエリア１２ｂが示すポインタ（ＰＴ）のアドレス（Ａｐｔ）が「３」なので、不揮発性メモリ１２上のアドレスが「３」のデータと、アドレスが「４」のデータとを結合する。つまり、ポインタ（ＰＴ）が示す記憶領域を３２ビット構成の個別情報メモリＤＭ（２）として扱う。
【００７７】
ステップＳ２６では、マイクロコンピュータ１１は、ポインタ（ＰＴ）が示す位置の３２ビット構成の個別情報メモリＤＭのデータの数値を、予め定めた閾値と比較する。この閾値は、データ更新回数の上限を規制するための値である。本実施形態においては、閾値を「５００，０００」に定めてある。この閾値は必要に応じて設定変更することが可能である。個別情報メモリＤＭのデータの数値が閾値以下の場合は次のステップＳ２７に進み、閾値を超える場合はステップＳ２８に進む。
【００７８】
ステップＳ２７では、今回処理対象とする１つの個別情報メモリＤＭが記憶している３２ビットデータの内容を１回インクリメント（＋１）して増やすように更新処理する。
例えば、ステップＳ２７で１番目の個別情報メモリＤＭ（１）を初回に処理する場合には、初期値の「ＦＦＦＦＦＦＦＦ」（１０進数の「−１」）をインクリメントして「００００００００」（１０進数の「０」）に更新する。
【００７９】
また、１番目の個別情報メモリＤＭ（１）を２回目に処理する場合には、１回目の更新結果である「００００００００」から「０００００００１」に更新する。同様に、１番目の個別情報メモリＤＭ（１）を３回目に処理する場合には、２回目の更新結果である「０００００００１」から「０００００００２」に更新する。
【００８０】
実際には、「１ｋｍ」の走行を検出する毎に、ポインタ（ＰＴ）の示す位置が切り替わる（Ｓ２３）ので、１番目の個別情報メモリＤＭ（１）を更新した後、ＤＭ（２）、ＤＭ（３）、ＤＭ（４）のデータが順番に更新される。そして、２０個の個別情報メモリＤＭ（１）〜ＤＭ（２０）の更新が終了した後で、最初の位置に戻って１番目の個別情報メモリＤＭ（１）を再び更新する。
【００８１】
従って、２０個の個別情報メモリＤＭ（１）〜ＤＭ（２０）については、均等な頻度でそれぞれのデータが更新される。
【００８２】
ステップＳ２８では、処理対象メモリのアドレスが最終アドレスか否かをマイクロコンピュータ１１が識別する。最終アドレスでなければステップＳ１９に進み、最終アドレスの場合はステップＳ３０に進む。「最終アドレス」は、２０番目の個別情報メモリＤＭ（２０）のアドレス（３９）、あるいは２０番目の個別ポインタ情報メモリＰＭ（２０）のアドレス（６０）に相当する。
すなわち、走行距離データエリア１２ａの全ての個別情報メモリＤＭについて更新回数が閾値（例えば５０万回）を越えてしまった場合にステップＳ３０に進む。
【００８３】
ステップＳ２９では、ステップＳ２３と同様に、マイクロコンピュータ１１は、図２に示したポインタエリア１２ｂの中で注目するｙ番目の個別ポインタ情報メモリＰＭ（ｙ）を前回の次の位置に切り替えて、この個別ポインタ情報メモリＰＭ（ｙ）のデータをインクリメントして更新する。
【００８４】
ステップＳ３０では、マイクロコンピュータ１１は所定の「記録容量オーバ処理」を実施する。すなわち、不揮発性メモリ１２のデータ更新回数が上限値を超えるまで走行距離の記録を行ったので、「記録容量オーバ」として処理する。具体的には、「記録容量オーバ」であるため、これ以降は図３の処理を停止したり、あるいは表示部１８の表示の点滅などの特別な制御を実施して警告を発する。
【００８５】
例えば、ステップＳ２６で参照する閾値を「５０万」に定めると、走行距離データエリア１２ａにある２０個の個別情報メモリＤＭ（１）〜ＤＭ（２０）のそれぞれに対して「５０万」回の更新を行った後に、ステップＳ３０で「記録容量オーバ処理」が実行されることになる。この閾値を超える更新回数は、走行距離の１０００万ｋｍに相当する。
【００８６】
＜走行距離表示処理の詳細＞
図３に示した「走行距離表示処理」の詳細を図５に示す。図５の処理について、以下に説明する。
【００８７】
ステップＳ４１では、マイクロコンピュータ１１は、不揮発性メモリ１２上に存在する走行距離データエリア１２ａの範囲及び各個別情報メモリＤＭのアドレスを特定する。図２に示す例では、アドレスの「１」〜「４０」の範囲の２０個の個別情報メモリＤＭ（１）〜ＤＭ（２０）の数及び位置を特定する。また、アドレスの「４１」以降のメモリは個別情報メモリＤＭではないことを認識する。
【００８８】
実際には、走行距離データエリア１２ａの先頭アドレス「１」、各個別情報メモリＤＭが占有するメモリアドレスの数「２」、個別情報メモリＤＭの数「２０」などを定数として予めプログラムの中などに組み込んでおくことにより、全ての個別情報メモリＤＭ（１）〜ＤＭ（２０）を特定できる。
【００８９】
ステップＳ４２では、マイクロコンピュータ１１が不揮発性メモリ１２から記憶されているデータを読み込んで、現在の走行距離を算出する。例えば、図２に示すように、走行距離データエリア１２ａが２０個の個別情報メモリＤＭ（１）〜ＤＭ（２０）で構成されている場合は、２０個の個別情報メモリＤＭ（１）〜ＤＭ（２０）の各々の３２ビット構成の記憶データを読み込み、これらに基づいて走行距離を算出する。走行距離は次式により算出される。
走行距離＝「ＤＭ（１）のデータが表す数値＋１」〜「ＤＭ（２０）のデータが表す数値＋１」の総和［ｋｍ］
【００９０】
なお、図２の例では各個別情報メモリＤＭのデータの初期値が「−１」（ＦＦＦＦＦＦＦＦ）なので、上記の式のように「＋１」を加算して数値を補正する必要がある。
【００９１】
ステップＳ４３では、マイクロコンピュータ１１がステップＳ４２で取得した走行距離の数値を表示部１８に出力して、運転者等に見えるように走行距離を表示する。
【００９２】
＜走行距離計１０の利点＞
上述の走行距離計１０は、１０００万ｋｍまでの走行距離を管理することができる。しかも、必要とされる不揮発性メモリ１２のアドレス数は、図２の例では６０であり、大きなメモリ容量の不揮発性メモリ１２を必要としない。また、各個別情報メモリＤＭのデータ書き換え回数を抑制できるので、不揮発性メモリ１２の劣化による誤動作を防止できる。更に、仮にいずれかの個別情報メモリＤＭに不具合が発生した場合であっても、複数の個別情報メモリＤＭが保持しているデータの規則性に基づいて、比較的誤差が少なく信頼性の高い走行距離を出力可能である。
【００９３】
＜変形の可能性＞
図２に示した記憶領域の構成は代表例であり、様々な変形が考えられる。例えば、走行距離データエリア１２ａを構成する個別情報メモリＤＭの数（２０）や、ポインタエリア１２ｂを構成する個別ポインタ情報メモリＰＭの数（２０）は、必要に応じて変更できる。また、図２の例では、隣接する２つのアドレスのメモリを組み合わせて３２ビット構成の個別情報メモリＤＭを構成しているが、個別情報メモリＤＭを構成するメモリの数（２）は必要に応じて変更できる。
【００９４】
また、上述の実施形態では１０００万ｋｍの走行距離まで対応する可能にするために、各個別情報メモリＤＭの書き換え回数の上限値を表す閾値を５０万回に定めているが、書き換え回数の上限値は必要に応じて変更できる。例えば、個別情報メモリＤＭの数（２０）を増やして書き換え回数の上限値（５０万回）を下げることも考えられる。
【００９５】
上述の実施形態では、車両用の走行距離計１０に本発明を適用する場合を想定しているが、本発明は同じように大きな累積値を扱う様々な用途に適用できる。例えば、電気自動車における充電電力の累積値、放電電力の累積値、あるいは家庭内の電力使用量の累積値などを管理するために利用可能である。
【００９６】
＜補足説明＞
（１）上述の車両用累積値情報管理装置（１０）は、不揮発性記憶部（１２）と、データ管理部（１１，１５，１６）とを備える。また、前記不揮発性記憶部上には、図２に示すように、累積値の一部分を表す数値をそれぞれ保持する複数の個別情報メモリ（ＤＭ（１）〜ＤＭ（２０））が、複数のアドレスに渡って規則的に配置されたデータエリア（１２ａ）と、前記データエリア上の前記複数の個別情報メモリの中で、最後に更新した個別情報メモリの位置に関連する特定アドレス情報を保持するポインタエリア（１２ｂ）とを有する。また、前記データ管理部は、前記ポインタエリアに保持されている前記特定アドレス情報に基づいて、特定位置の個別情報メモリの記憶内容、および前記ポインタエリアが保持する特定アドレス情報を更新する（Ｓ２３，Ｓ２７）。また、前記データ管理部は、前記データエリアに存在する前記複数の個別情報メモリの記憶内容に基づいて、前記累積値を把握する（Ｓ４１，Ｓ４２）。
【００９７】
（２）また、前記ポインタエリア（１２ｂ）は、図２に示すように前記データエリアに存在する前記個別情報メモリの数と同数の規則的に配置された複数の個別ポインタ情報メモリ（ＰＭ（１）〜ＰＭ（２０））を有する。また、前記データ管理部は、前記データエリアの複数の個別情報メモリと、前記ポインタエリアの複数の個別ポインタ情報メモリとを互いに関連付けて管理する。
【００９８】
（３）また、図２に示すように前記データ管理部は、前記不揮発性記憶部上の複数アドレスの記憶領域を、前記データエリアの各々の個別情報メモリ（ＤＭ）に割り当て、各々の個別情報メモリの位置を対応する前記個別ポインタ情報メモリ（１２ｂ）の内容に基づいて把握する。
【００９９】
（４）また、前記データ管理部は、前記データエリア（１２ａ）のデータを更新する際に、前記複数の個別情報メモリ（ＤＭ（１）〜ＤＭ（２０））の中で更新対象とするメモリの位置を順次に切り替える（Ｓ２３）。
【０１００】
（５）また、前記データ管理部は、前記データエリアのデータを更新する際に、前記複数の個別情報メモリの中で更新対象とするメモリの位置、ならびに前記複数の個別ポインタ情報メモリの中で更新対象とするメモリの位置を順次に切り替える（Ｓ２３）。
【０１０１】
（６）また、前記データ管理部は、前記データエリアの個別情報メモリの記憶内容が予め定めた閾値（例えば５０万回）を超えた場合（Ｓ２６）に、異常な状態とみなして予め定めた特別な処理を実行する（Ｓ３０）。
【０１０２】
（７）また、前記データ管理部は、走行距離などの計測結果に所定値の変化（例えば１ｋｍの走行距離）が検出される毎に（Ｓ２２）、前記データエリアの記憶内容を更新する（Ｓ２７）。
【０１０３】
（８）また、上述の累積値情報管理方法においては、累積値の一部分を表す数値をそれぞれ保持する複数の個別情報メモリが、複数のアドレスに渡って規則的に配置されたデータエリアと、前記データエリア上の前記複数の個別情報メモリの中で、最後に更新した個別情報メモリの位置に関連する特定アドレス情報を保持するポインタエリアとを、所定の不揮発性記憶部上に割り当てる。また、前記ポインタエリアに保持されている前記特定アドレス情報に基づいて、特定位置の個別情報メモリの記憶内容、および前記ポインタエリアが保持する特定アドレス情報を更新する。また、前記データエリアに存在する前記複数の個別情報メモリの記憶内容に基づいて、前記累積値を把握する。
【符号の説明】
【０１０４】
１０  走行距離計
１１  マイクロコンピュータ
１２  不揮発性メモリ
１２ａ  走行距離データエリア
１２ｂ  ポインタエリア
１３  揮発性メモリ
１４  走行距離算出部
１５  不揮発性メモリアクセス部
１６  距離データ加算部
１７  モード切替部
１８  表示部
１９  入出力部
２０，２１  インタフェース
ＤＭ  個別情報メモリ
ＰＭ  個別ポインタ情報メモリ
【図１】
0005933294.tif 000002
【図２】
0005933294.tif 000003
【図３】
0005933294.tif 000004
【図４】
0005933294.tif 000005
【図５】
0005933294.tif 000006