(57)【特許請求の範囲】
【請求項１】
複数のデータ部を持つオドエリアと複数のデータ部を持つアドレスエリアとを有する書き換え可能な不揮発性メモリと、
車両に設けられたセンサから出力される車速パルスをカウントし、このカウント結果に基づき、前記オドエリアの各データ部をサイクリックに使用して、走行距離情報を書き込むとともに、前記アドレスエリアの各データ部をサイクリックに使用して、前記オドエリアの各データ部のうち、最後に書き込まれたデータ部を指示する最新指示情報を書き込む走行距離情報更新部と、
走行距離を表示する際には、前記不揮発性メモリの前記アドレスエリアに書き込まれている最新指示情報を読み出し、この最新指示情報に基づき、前記不揮発性メモリの前記オドエリアに書き込まれている走行距離情報を読み出し、この走行距離情報に基づき、表示器上に車両の走行距離を表示する走行距離情報演算表示部とを備え、
前記走行距離情報更新部は、
前記不揮発性メモリに対する書き込み処理を予め定められている第１の書込回数だけ実行する書込処理部と、
前記第１の書込回数だけ書き込み処理を実行しても書き込み処理が失敗した場合には、書込周期よりも短い再書込周期で再書き込み処理を予め定められている第２の書込回数だけ実行する再書込処理部と、
前記第２の書込回数だけ再書き込み処理を実行しても再書き込み処理が失敗した場合には、前記不揮発性メモリが異常であると判定して走行距離情報の積算を停止する第１の積算停止部と、
を備えることを特徴とする電子オドメータ装置。
【請求項２】
請求項１に記載の電子オドメータ装置において、
前記走行距離情報演算表示部は、
前記アドレスエリアに対するベリファイ処理を予め定められている第１のベリファイ回数だけ実行するベリファイ処理部と、
前記第１のベリファイ回数だけベリファイ処理を実行してもベリファイ処理が失敗した場合には、ベリファイ周期よりも短い再ベリファイ周期で再ベリファイ処理を予め定められている第２のベリファイ回数だけ実行する再ベリファイ処理部と、
前記第２のベリファイ回数だけ再ベリファイ処理を実行しても再ベリファイ処理が失敗した場合には、前記不揮発性メモリが異常であると判定して走行距離情報の積算を停止する第２の積算停止部と、
を備えることを特徴とする電子オドメータ装置。
【請求項３】
請求項１または請求項２に記載の電子オドメータ装置において、
前記走行距離情報演算表示部は、前記アドレスエリアの各データ部に書き込まれているデータを順次読み出し各データの変化点に基づき最新指示情報を求めるとともに、前記オドエリアの各データ部に書き込まれているデータを順次、読み出しながら、前記最新指示情報に基づき各データの値を補正して補正済みの値の多数決をとり、前記オドエリアに書き込まれている走行距離情報を決定することを特徴とする電子オドメータ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、車両などに搭載される電子オドメータ装置に係わり、特にビット化けに対する冗長性を向上させる電子オドメータ装置に関する。
【０００２】
【従来の技術】
最近、車両用計器の電子化が進み、液晶、蛍光表示管などの電子式計器を用いて、計器の表示部を構成するようになってきている。このような電子化に伴い、走行距離を表示する走行距離計にも、電子式表示器を使用するとともに、走行距離情報をＲＡＭなどのメモリに記憶しておき、このメモリに記憶している走行距離情報に基づいて表示を行なうようになってきている。
【０００３】
しかし、ＲＡＭなどのメモリの場合、そのバックアップ電源が無くなると、記憶している走行距離情報が失われてしまい、その車両のそれまでの走行距離を表示することができなくなってしまう。
【０００４】
そこで、電源によってバックアップしなくても、記憶情報を保持することができる不揮発性メモリを使用した記憶媒体をＲＡＭなどのメモリと別個に設け、バッテリー交換などのために電源を切り離しても、走行距離情報などが失われることが無いようにしたものが開発されている。
【０００５】
図１７はこのような不揮発性メモリを有する電子オドメータ装置の一例を示すブロック図である。
【０００６】
この図１７に示す電子オドメータ装置１０１は、車両の車軸などに設けられたセンサから出力される車速パルスを取り込んで、これをカウントし、走行距離データを求めるＣＰＵ回路１０２と、このＣＰＵ回路１０２から出力される走行距離データに基づき、それまでの走行距離データを更新するバックアップ電源付きのＲＡＭ回路１０３と、ＣＰＵ回路１０２から出力される走行距離データに基づき、それまでの走行距離データを更新するＥＥＰＲＯＭ回路１０４と、ＣＰＵ回路１０２から出力される表示データを取り込んで、走行距離を表示する表示器１０５とを備えており、ＣＰＵ回路１０２によって、車両の車軸などに設けられたセンサから出力される車速パルスを取り込んで、これをカウントし、走行距離が所定の距離、例えば１ｋｍになる毎に、ＲＡＭ回路１０３に記憶されている走行距離データ、ＥＥＰＲＯＭ回路１０４に記憶されている走行距離データを更新しながら、最新の走行距離データに基づき、表示データを作成して、表示器１０５上に最新の走行距離を表示する。
【０００７】
この際、イグニッションスイッチがオン状態にされたとき、ＣＰＵ回路１０２によってＲＡＭ回路１０３に記憶されているキーワードの内容をチェックし、このキーワードが正しいキーワードであれば、ＲＡＭ回路１０３に記憶されている走行距離データが壊れていないと判断し、ＲＡＭ回路１０３に記憶されている走行距離データを使用して、走行距離の更新を行なう。またＲＡＭ回路１０３に記憶されているキーワードが正しいキーワードでなければ、ＥＥＰＲＯＭ回路１０４に記憶されている走行距離データを使用して、ＲＡＭ回路１０３に記憶されている走行距離データを修正した後、ＲＡＭ回路１０３に記憶されている走行距離データを使用して、走行距離の更新を行なう。
【０００８】
そして、ＲＡＭ回路１０３に記憶されている走行距離データを更新する毎に、以下に述べる手順で、ＥＥＰＲＯＭ回路１０４に記憶されている走行距離データを更新して、これらＥＥＰＲＯＭ回路１０４に記憶されている走行距離データの値と、ＲＡＭ回路１０３に記憶されている走行距離データの値とを一致させる。
【０００９】
まず、ＥＥＰＲＯＭ回路１０４が初期化された状態では、各アドレス“０”〜“４７”に対応するデータ部の値を全て“ＦＦＦＦ”にし、この状態で車両が走行を開始し、その走行距離が１ｋｍを経過する毎に、ＣＰＵ回路１０２によって、図１８の（ａ）に示すように、アドレス“０”〜“４７”を順次、選択し、各アドレス“０”〜“４７”に対応するデータ部に“００００”を書き込む。
【００１０】
この後、走行距離が“４８ｋｍ”を経過し、全てのデータ部に“００００”が書き込まれた状態で、さらに車両が走行すると、その走行距離が１ｋｍを経過する毎に、ＣＰＵ回路１０２によって、図１８の（ｂ）に示すように、アドレス“０”〜“４７”を順次、選択し、各アドレス“０”〜“４７”に対応するデータ部に“０００１”を書き込む。
【００１１】
以下、さらに車両が走行し、その走行距離が“４８ｋｍ”を越える毎に、同様な手順で、データ部に書き込まれる値をインクリメントし、図１８の（ｃ）に示すように、走行距離が“９９９９９９”になったとき、全てのデータ部に書き込まれている値を“ＦＦＦＦ”に戻し、走行距離を初期化する。
【００１２】
そして、ＲＡＭ回路１０３に記憶されている走行距離データを修正するとき、ＥＥＰＲＯＭ回路１０４の各データ部に記憶されている値を読み出して、下記に示す演算式で走行距離データを計算し、この計算結果に基づき、ＲＡＭ回路１０３に記憶されている走行距離データを修正する。
【００１３】
走行距離＝４８×（ポイントデータの値＋１）＋アドレスポイント
【００１４】
【発明が解決しようとする課題】
ところで、このような従来の電子オドメータ装置１０１では、ＥＥＰＲＯＭ回路１０４に記憶されている走行距離データに誤りがあるとき、ポインタＰＴが指定している現在のアドレスが“０”以外のアドレスであれば、図１９に示すように、現在のポインタＰＴで指定されたアドレスのデータ部に書き込まれているデータ（現データ）の値Ｄnと、１つ前のアドレスのデータ部に書き込まれているデータ（前データ）のＤn-1との差を求め、この差に応じて、複数ある修正手続きのいずれるかを使用して、データ部に書き込まれているデータの値を修正しなければならない。
【００１５】
また、前記ポインタＰＴが指定している現在のアドレスが“０”であれば、図２０に示すように、アドレス“０”のデータ部に書き込まれているデータの値Ｄ0と、アドレス“１”のデータ部に書き込まれているデータのＤ1との差を求め、この差に応じて、複数ある修正手続きのいずれるかを使用して、データ部に書き込まれているデータの値を修正しなければならない。
【００１６】
このため、ＥＥＰＲＯＭ回路１０４から走行距離データを読み出す際のプログラムが複雑になって、処理時間が長くなってしまうとともに、プログラムを格納しておくメモリの容量が大きくなってしまうという問題があった。
【００１７】
本発明は、車両の走行距離を計算する際、不揮発性メモリのみを使用し、不揮発性メモリに記憶される走行距離データのビット化けに対する冗長性を高めることができる電子オドメータ装置を提供することにある。
【００１８】
【課題を解決するための手段】
上記の目的を達成するために本発明は、請求項１では、複数のデータ部を持つオドエリアと複数のデータ部を持つアドレスエリアとを有する書き換え可能な不揮発性メモリと、車両に設けられたセンサから出力される車速パルスをカウントし、このカウント結果に基づき、前記オドエリアの各データ部をサイクリックに使用して、走行距離情報を書き込むとともに、前記アドレスエリアの各データ部をサイクリックに使用して、前記オドエリアの各データ部のうち、最後に書き込まれたデータ部を指示する最新指示情報を書き込む走行距離情報更新部と、走行距離を表示する際には、前記不揮発性メモリの前記アドレスエリアに書き込まれている最新指示情報を読み出し、この最新指示情報に基づき、前記不揮発性メモリの前記オドエリアに書き込まれている走行距離情報を読み出し、この走行距離情報に基づき、表示器上に車両の走行距離を表示する走行距離情報演算表示部とを備え、前記走行距離情報更新部は、前記不揮発性メモリに対する書き込み処理を予め定められている第１の書込回数だけ実行する書込処理部と、前記第１の書込回数だけ書き込み処理を実行しても書き込み処理が失敗した場合には、書込周期よりも短い再書込周期で再書き込み処理を予め定められている第２の書込回数だけ実行する再書込処理部と、前記第２の書込回数だけ再書き込み処理を実行しても再書き込み処理が失敗した場合には、前記不揮発性メモリが異常であると判定して走行距離情報の積算を停止する第１の積算停止部とを備えることを特徴とする。
【００１９】
請求項１の発明によれば、走行距離情報更新部において、書込処理部は、不揮発性メモリに対する書き込み処理を予め定められている第１の書込回数だけ実行し、再書込処理部は、第１の書込回数だけ書き込み処理を実行しても書き込み処理が失敗した場合には、書込周期よりも短い再書込周期で再書き込み処理を予め定められている第２の書込回数だけ実行し、第１の積算停止部は、第２の書込回数だけ再書き込み処理を実行しても再書き込み処理が失敗した場合には、不揮発性メモリが異常であると判定して走行距離情報の積算を停止する。これにより、定期的なノイズに対しても走行距離データのビット化けに対する冗長性が高められ、走行中に積算計が停止する現象を抑制することかできる。
【００２０】
請求項２では、請求項１に記載の電子オドメータ装置において、前記走行距離情報演算表示部は、前記アドレスエリアに対するベリファイ処理を予め定められている第１のベリファイ回数だけ実行するベリファイ処理部と、前記第１のベリファイ回数だけベリファイ処理を実行してもベリファイ処理が失敗した場合には、ベリファイ周期よりも短い再ベリファイ周期で再ベリファイ処理を予め定められている第２のベリファイ回数だけ実行する再ベリファイ処理部と、前記第２のベリファイ回数だけ再ベリファイ処理を実行しても再ベリファイ処理が失敗した場合には、前記不揮発性メモリが異常であると判定して走行距離情報の積算を停止する第２の積算停止部とを備えることを特徴とする。
【００２１】
請求項２の発明によれば、走行距離情報演算表示部において、ベリファイ処理部はアドレスエリアに対するベリファイ処理を予め定められている第１のベリファイ回数だけ実行し、再ベリファイ処理部は、第１のベリファイ回数だけベリファイ処理を実行してもベリファイ処理が失敗した場合には、ベリファイ周期よりも短い再ベリファイ周期で再ベリファイ処理を予め定められている第２のベリファイ回数だけ実行し、第２の積算停止部は、第２のベリファイ回数だけ再ベリファイ処理を実行しても再ベリファイ処理が失敗した場合には、前記不揮発性メモリが異常であると判定して走行距離情報の積算を停止する。これにより、アドレスエリアの値が破壊される確率が下がったため、走行距離データのビット化けに対する冗長性を高めることができ、これによって、次回、イグニッションスイッチをオン時にその時のオド値は、必ずイグニションスイッチをオフ時のオド値を示し、積算計の過大表示を防止することができる。
【００２２】
請求項３では、請求項１または請求項２に記載の電子オドメータ装置において、前記走行距離情報演算表示部は、前記アドレスエリアの各データ部に書き込まれているデータを順次読み出し各データの変化点に基づき最新指示情報を求めるとともに、前記オドエリアの各データ部に書き込まれているデータを順次、読み出しながら、前記最新指示情報に基づき各データの値を補正して補正済みの値の多数決をとり、前記オドエリアに書き込まれている走行距離情報を決定することを特徴としている。
【００２３】
請求項３の発明によれば、走行距離情報演算表示部は、前記アドレスエリアの各データ部に書き込まれているデータを順次読み出し、各データの変化点に基づき、最新指示情報を求めるとともに、前記オドエリアの各データ部に書き込まれているデータを順次、読み出しながら、前記最新指示情報に基づき、各データの値を補正して、補正済みの値の多数決をとり、前記オドエリアに書き込まれている走行距離情報を決定する。これにより、不揮発性メモリに記憶される走行距離データのビット化けに対する冗長性を高め、不揮発性メモリに記憶される走行距離データを読み出すときに使用するプログラムを簡素化して、プログラム格納エリアの容量を小さくする。
【００２４】
【発明の実施の形態】
以下、本発明の電子オドメータ装置の実施の形態を図面を参照して説明する。
【００２５】
＜第１の実施の形態＞
図１は本発明による電子オドメータ装置の第１の実施の形態を示すブロック図である。
【００２６】
図１に示す電子オドメータ装置１は、車両の車軸などに設けられたセンサから出力される車速パルスを取り込んで、これをカウントして、走行距離データを求めるＣＰＵ回路２と、図２に示すように、アドレス“０”〜“１７”がオドエリア７として使用され、アドレス“１７”〜“３３”がアドレスエリア８として使用され、ＣＰＵ回路２から出力される走行距離データに基づき、それまでの走行距離データを更新するＥＥＰＲＯＭ回路３と、ＣＰＵ回路２から出力される表示データを取り込んで、走行距離を表示する表示器４とを備えている。
【００２７】
また、ＣＰＵ回路２は、その機能上、走行距離情報更新部５と、走行距離情報演算表示部６とを備え、センサから出力される車速パルスを取り込んでカウントし、走行距離が所定の距離、例えば１ｋｍになる毎に、ＥＥＰＲＯＭ回路３に記憶されている走行距離データを更新しながら、最新の走行距離データに基づき、表示データを作成して表示器４上に最新の走行距離を表示する。
【００２８】
次に、図１に示すブロック図、図２に示す説明図を参照しながら、この実施の形態の動作について詳細に説明する。
【００２９】
＜ＥＥＰＲＯＭ回路３に対する書き込み動作＞
この処理は、主に、ＣＰＵ回路２の走行距離情報更新部５で実行される。まず、車両の走行距離が“０”であるとき、オドエリア７のアドレス“０”〜“１６”にデータ“００００”が書き込まれ、ポインタＡがアドレス“０”を示すようポインタＡの値が設定されるとともに、アドレスエリア８のアドレス“１７”〜“３３”にデータ“００００”が書き込まれ、ポインタＢがアドレス“１７”を示すようにポインタＢの値が設定される。
【００３０】
この状態で、イグニッションスイッチがオン状態にされ、車両が走行を開始すると、図３のフローチャートに示すように、ＣＰＵ回路２によって、車両の車軸などに設けられたセンサから出力される車速パルスがカウントされて、走行距離が所定の距離、例えば１ｋｍ（オドカウンタの値で、“２５４８”）を経過した時点で（ステップＳＴ１）、図４の（ａ）に示すように、前記オドカウンタが初期化されて（ステップＳＴ２）、アドレスエリア８のアドレス“１７”にデータ“ＦＦＦＦ”が書き込まれ、ポインタＢが１つ進められるとともに（ステップＳＴ３）、オドエリア７のアドレス“０”にデータ“０００１”が書き込まれて、ポインタＡが１つ進められた後（ステップＳＴ４）、表示用オドデータの値が“１”だけインクリメントされる（ステップＳＴ５）。
【００３１】
そして、アドレスエリア８、オドエリア７に対するデータの書き込を行なったとき、データが正しく書き込まれていないことを示すベリファイエラー（Verify Error）が発生しても、予め設定されている回数（リトライ回数）、例えば３回まで、上述した書き込み処理が行わわれる。
【００３２】
次いで、ＣＰＵ回路２によって、３回以内のリトライ回数で、アドレスエリア８、オドエリア７に対し、正しくデータを書き込めたかどうかがチェックされ、３回以内のリトライ回数で、アドレスエリア８、オドエリア７に対し、正しくデータが書き込めたとき（ステップＳＴ６）、前記表示用オドデータの値に基づき、表示データが作成され、表示器４上に走行距離“１ｋｍ”が表示される（ステップＳＴ７）。
【００３３】
また、このとき、３回以内のリトライ回数で、アドレスエリア８、オドエリア７に対し、正しくデータを書き込めなければ（ステップＳＴ６）、ＣＰＵ回路２によって、表示器４上に表示されている走行距離がホールドされて、ＥＥＰＲＯＭ回路３に対するアクセスが中止される（ステップＳＴ８）。
【００３４】
この後、車両がさらに走行して、オドカウンタの値が、再度、“２５４８”になった時点で、前記オドカウンタが初期化されて、図４の（ｂ）に示すように、アドレスエリア８のアドレス“１８”にデータ“ＦＦＦＦ”が書き込まれ、ポインタＢが１つ進められるとともに、オドエリア７のアドレス“１”にデータ“０００１”が書き込まれて、ポインタＡが１つ進められた後、表示用オドデータの値が“１”だけインクリメントされる（ステップＳＴ１〜ＳＴ５）。
【００３５】
そして、アドレスエリア８、オドエリア７に対するデータの書き込を行なったとき、データが正しく書き込まれていないことを示すベリファイエラーが発生しても、予め設定されている回数（リトライ回数）、例えば３回まで、上述した書き込み処理が行わわれる。
【００３６】
次いで、ＣＰＵ回路２によって、３回以内のリトライ回数で、アドレスエリア８、オドエリア７に対し、正しくデータを書き込めたかどうかがチェックされ、３回以内のリトライ回数で、アドレスエリア８、オドエリア７に対し、正しくデータを書き込めたとき（ステップＳＴ６）、前記表示用オドデータの値に基づき、表示データが作成され、表示器４上に走行距離“２ｋｍ”が表示される（ステップＳＴ７）。
【００３７】
また、このとき、３回以内のリトライ回数で、アドレスエリア８、オドエリア７に対し、正しくデータを書き込めなければ（ステップＳＴ６）、ＣＰＵ回路２によって、表示器４上に表示されている走行距離がホールドされて、ＥＥＰＲＯＭ回路３に対するアクセスが中止される（ステップＳＴ８）。
【００３８】
以下、車両がさらに走行して、オドカウンタの値が、再度、“２５４８”になる毎に、上述したアドレスエリア８に対するデータ“ＦＦＦＦ”の書き込み処理、ポインタＢのインクリメント処理、オドエリア７に対するデータ“０００１”の書き込み処理、ポインタＡのインクリメント処理、表示用オドデータのインクリメント処理などが順次、行われて、ＥＥＰＲＯＭ回路３に記憶されている走行距離データが更新されるとともに、表示器４上に表示されている走行距離が更新される（ステップＳＴ１〜ＳＴ８）。
【００３９】
そして、図５の（ａ）に示すように、アドレスエリア８のアドレス“３３”に対するデータ“ＦＦＦＦ”の書き込み処理、ポインタＢのインクリメント処理、オドエリア７のアドレス“１６”に対するデータ“０００１”の書き込み処理、ポインタＡのインクリメント処理、表示用オドデータのインクリメント処理などが行われた後、車両がさらに走行して、オドカウンタの値が、再度、“２５４８”になったとき、図５の（ｂ）に示すように、アドレスエリア８のアドレス“１７”にデータ“００００”が書き込まれ、ポインタＢが１つ進められるとともに、オドエリア７のアドレス“０”にデータ“０００２”が書き込まれて、ポインタＡが１つ進められた後、表示用オドデータの値が“１”だけインクリメントされる（ステップＳＴ１〜ＳＴ８）。
【００４０】
そして、アドレスエリア８、オドエリア７に対するデータ書き込みを行なったとき、データが正しく書き込まれていないことを示すベリファイエラー（Verify Error）が発生しても、予め設定されている回数（リトライ回数）、例えば３回まで、上述した書き込み処理が行われる。
【００４１】
次いで、ＣＰＵ回路２によって、３回以内のリトライ回数で、アドレスエリア８、オドエリア７に対し、正しくデータを書き込めたかどうかがチェックされ、３回以内のリトライ回数で、アドレスエリア８、オドエリア７に対し、正しくデータを書き込めたとき、前記表示用オドデータの値に基づき、表示データが作成され、表示器４上に走行距離“１８ｋｍ”が表示される（ステップＳＴ１〜ＳＴ８）。
【００４２】
また、このとき、３回以内のリトライ回数で、アドレスエリア８、オドエリア７に対し、正しくデータを書き込めなければ（ステップＳＴ６）、ＣＰＵ回路２によって、表示器４上に表示されている走行距離がホールドされて、ＥＥＰＲＯＭ回路３に対するアクセスが中止される（ステップＳＴ８）。
【００４３】
以下、車両がさらに走行して、オドカウンタの値が、再度、“２５４８”になる毎に、上述したアドレスエリア８に対するデータ“ＦＦＦＦ”または“００００”の書き込み処理、ポインタＢのインクリメント処理、オドエリア７に対するデータ“０００２”、“０００３”、…の書き込み処理、ポインタＡのインクリメント処理、表示用オドデータのインクリメント処理などが順次、行われて、ＥＥＰＲＯＭ回路３に記憶されている走行距離データが更新されるとともに、表示器４上に表示されている走行距離が更新される（ステップＳＴ１〜ＳＴ７）。
【００４４】
そして、車両が停止状態にされて、イグニッションスイッチがオフ状態にされたとき、ＣＰＵ回路２が動作を停止して、上述したＥＥＰＲＯＭ回路３に記憶されている走行距離データがそのまま保持される。
【００４５】
＜ＥＥＰＲＯＭ回路３に対する読み込み動作＞
読み込み動作は、主にＣＰＵ回路２の走行距離情報演算表示部６で実行される処理である。車両のイグニッションスイッチが再度、オン状態にされたとき、図６のフローチャートに示すように、ＣＰＵ回路２によって、ＥＥＰＲＯＭ回路３を構成しているアドレスエリア８の先頭アドレス“１７”に記憶されているデータが２回、連続して読み出され、各読み出し処理で得られたデータが同一の値であるとき（ステップＳＴ１１）、このデータを構成する最上位ビットを除く下位１５ビットの多数決が求められ、この多数決結果に基づき、前記データの値が“ＦＦＦＦ”か、“００００”かが判定される（ステップＳＴ１２）。
【００４６】
次いで、ＣＰＵ回路２によって、アドレスエリア８を構成する次のアドレス“１８”に記憶されているデータが２回、連続して読み出され、各読み出し処理で得られたデータが同一の値であるとき（ステップＳＴ１１）、このデータを構成する最上位ビットを除く下位１５ビットの多数決が求められ（ステップＳＴ１２）、この多数決結果に基づき、前記データの値が“ＦＦＦＦ”か、“００００”かが判定された後、先頭アドレス“１７”に書き込まれていたデータの値と、次のアドレス“１８”に書き込まれていたデータの値とが比較される。
【００４７】
そして、これらが同一であれば（ステップＳＴ１３）、ＣＰＵ回路２によって、残っているアドレス“１９”〜“３３”に記憶されている各データが順次、２回ずつ、アクセスされて、これらアドレス“１９”に記憶されているデータ〜最終アドレス“３３”に記憶されているデータが順次、読み出されるとともに（ステップＳＴ１１）、各データの最上位ビットを除く下位１５ビットの多数決がとられて、各データの値が“ＦＦＦＦ”か、“００００”かが判定された後（ステップＳＴ１２）、アドレス“１８”〜“３３”に記憶されていたデータの値が変化しているアドレスが見つけ出され、このアドレスの値がポイントＢに格納される。
【００４８】
これにより、図７に示すように、アドレス“１７”、“１８”にデータ“ＦＦＦＦ”が記憶され、アドレス“１９”にデータ“００００”が記憶されていれば、ＣＰＵ回路２によって、アドレス“１９”に記憶されているデータが読み出されたとき、データが変化していると判定されて、アドレス“１９”を示す値がポイントＢに格納される。
【００４９】
また、最終アドレス“３３”まで、アクセスしても、データの変化点が見つからないときには、ＣＰＵ回路２によって、先頭アドレス“１７”から最終アドレス“３３”まで、同じ値のデータが書き込まれていると判定されて、先頭アドレス“１７”を示す値がポイントＢに格納される。
【００５０】
この後、ＣＰＵ回路２によって、ポインタＢに格納されている値から“１７”が減算され、これによって得られた値がポインタＡに格納されるとともに、図８に示すように、上述した変化点検出処理結果に基づき、“００００”または“ＦＦＦＦ”のいずれかが選択され、このデータがポインタＢで指定されたアドレスに書き込まれる次のデータとして記憶される（ステップＳＴ１３）。
【００５１】
次いで、ＣＰＵ回路２によって、オドエリア７を構成する各アドレス“０”〜“１６”に格納されている各データが順次、読み出されるとともに（ステップＳＴ１４）、図９に示すように、内部に設けられているメモリ（ＣＰＵ回路２の内部メモリ）９上で、各アドレス“０”〜“１６”に記憶されていたデータのうち、先頭アドレス“０”に記憶されていたデータからポインタＡの値で指定されたアドレスの１つ前のアドレスに記憶されていたデータがそのままの値に保持されたまま、ポインタＡの値で指定されるアドレスに記憶されていたデータから最終アドレス“１６”に記憶されていたデータに“１”が加算されて、各データの値がそれぞれ比較される（ステップＳＴ１５）。
【００５２】
そして、ＣＰＵ回路２によって、各データの値のうち、同じ値を持つデータの個数がカウントされ、同じ値を持つデータの個数が１０個以上であるとき（ステップＳＴ１６）、このデータの値がポインタＡで指定されたアドレスに書き込まれる次のデータの値として記憶され、また全てのデータについて、データの比較処理を行なっても、同じ値を持つデータの個数が１０個に満たなければ、オドホールド状態にされて、同じ値を持つデータの個数が最も多いデータの値がポインタＡで指定されたアドレスに書き込まれる次のデータの値として記憶される（ステップＳＴ１７）。
【００５３】
この後、ＣＰＵ回路２によって、上述したアドレスエリア８、オドエリア７に対するデータの読み込み処理を行なう際、読み込み開始信号を受信できず、リトライを行なった回数が３回以下かどうか、アドレスエリア８、オドエリア７に対するデータの読み込み処理を２回、連続して行ない、各データの値が異なっていたかどうかがチェックされる。
【００５４】
そして、３回以下のリトライ回数で、アドレスエリア８、オドエリア７に記憶されているデータを正しく読み込めなかったとき、あるいはアドレスエリア８、オドエリア７に対するデータの読み込み処理を２回、連続して行ない、各データの値が異なっていたとき（ステップＳＴ１８）、ＥＥＰＲＯＭ回路３に異常が発生したと判定されて、ＥＥＰＲＯＭ回路３に対する以後のアクセスが中止されて、表示器４上に表示される走行距離がブランク状態にされる（ステップＳＴ２０）。
【００５５】
また、この処理で、ＥＥＰＲＯＭ回路３が正常であると判定されたとき（ステップＳＴ１８）、ＣＰＵ回路２によって、下記に示す演算式で走行距離データが計算され、この計算処理で得られた走行距離データに基づき、表示データが作成され、表示器４上に走行距離が表示される（ステップＳＴ１９）。
【００５６】
走行距離＝（次のデータの値−１）×１７＋ポイントＡの値
この後、車両の走行が開始されると、ＣＰＵ回路２によって、上述したＥＥＰＲＯＭ回路３に対する書き込み動作が開始されて、走行距離が“１ｋｍ”になる毎に、このＥＥＰＲＯＭ回路３に書き込まれている走行距離データが更新される（ステップＳＴ１１〜ＳＴ２０）。
【００５７】
このように、第１の実施の形態では、ＣＰＵ回路２によって、車両の車軸などに設けられたセンサから出力される車速パルスを取り込んで、これをカウントし、走行距離が所定の距離、例えば１ｋｍになる毎に、ＥＥＰＲＯＭ回路３に記憶されている走行距離データを更新しながら、最新の走行距離データに基づき、表示データを作成して、表示器４上に最新の走行距離を表示するようにしているので、車両の走行距離を計算する際、ＥＥＰＲＯＭ回路３などのような不揮発性メモリのみを使用して、車両の走行距離を求めることができ、これによってＲＡＭ素子を使用しない分だけ、部品点数を少なくして、コストを低減させることができるとともに、ビット化けに対する冗長性を高めることができ、これによって不揮発性メモリに記憶される走行距離データを読み出すときに使用するプログラムを簡素化して、プログラム格納エリアの容量を小さくすることができる。
【００５８】
また、第１の実施の形態では、ＥＥＰＲＯＭ回路３のアドレスエリア８の各データ部に書き込まれているデータを順次読み出し、各データの変化点に基づき、最新指示情報を求めるとともに、ＥＥＰＲＯＭ回路３のオドエリア７の各データ部に書き込まれているデータを順次、読み出しながら、前記最新指示情報に基づき、各データの値を補正して、補正済みの値の多数決をとり、オドエリア７に書き込まれている走行距離情報を決定するようにしているので、不揮発性メモリに記憶される走行距離データのビット化けに対する冗長性を高めることができ、これによって不揮発性メモリに記憶される走行距離データを読み出すときに使用するプログラムを簡素化して、プログラム格納エリアの容量を小さくすることができる。
【００５９】
また、第１の実施の形態では、ＥＥＰＲＯＭ回路３に対する書き込み処理、読み出し処理を行なうとき、予め設定されているリトライ回数だけ、リトライしても、正しい書き込み処理、読み出し処理を行なうことができないとき、ＥＥＰＲＯＭ回路３が異常であると判定して、走行距離情報の更新処理、または読み出し処理を中止するようにしているので、ＥＥＰＲＯＭ回路３に走行距離データを記憶させる際または記憶させている走行距離データを読み出す際、何らかの理由により、正しい書き込み処理、正しい読み出し処理を行なえないとき、ＥＥＰＲＯＭ回路３が異常になったのか、単に一時的な書き込みエラー、一時的な読み出しエラーが発生したのかを区別することができ、これによってＥＥＰＲＯＭ回路３の異常に起因する走行距離データの誤りを無くすことができる。
【００６０】
＜第２の実施の形態＞
次に、本発明の電子オドメータ装置の第２の実施の形態を説明する。第１の実施の形態の電子オドメータ装置は、（ａ）及び（ｂ）の問題点を有している。
【００６１】
（ａ）車両が１ｋｍ走行後に、ＥＥＰＲＯＭ回路３への書き込みを行い、書き込みが失敗した場合には、３回まで再書き込みを行い、それでも書き込みが失敗した場合には、走行距離データの積算（更新処理）を中止していた。
【００６２】
しかし、再書き込みは定期的に実行されているため、その再書き込みのタイミングが偶然にもノイズ等に一致した場合には、走行距離データの積算が停止することになる。
【００６３】
（ｂ）また、１ｋｍ走行時のＥＥＰＲＯＭ回路３への書き込みにおいては、書き込み値を再度読み出し、書き込み値と読み出し値との両者が一致した場合に書き込み処理を完了している（この処理をベリファイ処理という。）。このベリファイ処理が失敗した場合には３回まで再書き込み及びベリファイを行い、それでもベリファイが正しく行えない場合には、そのアドレスへの書き込みを中止し、次回１ｋｍ走行時時に次のアドレスへデータを書き込む。この処理は、ＥＥＰＲＯＭ回路３内のオドエリア７及びアドレスエリア８共に行われている。イグニッションスイッチがオン時の積算値は、オドエリア７のアドレスとデータとから算出されている。
【００６４】
しかし、オドエリア７のアドレスは、アドレスエリア８内のデータの変化点から算出しているため、アドレスエリア８のデータが破壊されると、オドエリア７のアドレス及びデータ共に誤った値を示す場合がある。
【００６５】
また、１ｋｍ走行中のベリファイ処理において、アドレスエリア８の書き込み中にエラーが発生し再書き込みも失敗した場合には、アドレスエリア８のデータは、前回の値と同値となる。すなわち、ワード破壊となる。アドレスエリア８はビット破壊には冗長性を持つが、ワード破壊に対しては冗長性が低い。このため、結果として、積算計の過大表示等につながるおそれがある。
【００６６】
第２の実施の形態の電子オドメータ装置は、前述した（ａ）及び（ｂ）の問題点を解決するために、第１の実施の形態の電子オドメータ装置の機能を有するとともに、さらに、以下に説明する書き込み処理機能及びベリファイ処理機能を有する。図１０は本発明による電子オドメータ装置の第２の実施の形態を示すブロック図である。
【００６７】
図１０において、ＣＰＵ回路２ａは、走行距離情報更新部５ａと、走行距離情報演算表示部６ａとを有する。走行距離情報更新部５ａは、（ａ）の問題点を解決するために、ＥＥＰＲＯＭ回路３ａに対する書き込み処理を予め定められている第１の書込回数だけ実行する書込処理部５１と、第１の書込回数だけ書き込み処理を実行しても書き込み処理が失敗した場合には、書込周期よりも短い再書込周期で再書き込み処理を予め定められている第２の書込回数だけ実行する再書込処理部５２と、第２の書込回数だけ再書き込み処理を実行しても再書き込み処理が失敗した場合には、ＥＥＰＲＯＭ回路３ａが異常であると判定して走行距離データの積算を停止する第１の積算停止部５３とを備えている。
【００６８】
また、走行距離情報演算表示部６ａは、（ｂ）の問題点を解決するために、アドレスエリアに対するベリファイ処理を予め定められている第１のベリファイ回数だけ実行するベリファイ処理部６１と、第１のベリファイ回数だけベリファイ処理を実行してもベリファイ処理が失敗した場合には、ベリファイ周期よりも短い再ベリファイ周期で再ベリファイ処理を予め定められている第２のベリファイ回数だけ実行する再ベリファイ処理部６２と、第２のベリファイ回数だけ再ベリファイ処理を実行しても再ベリファイ処理が失敗した場合には、ＥＥＰＲＯＭ回路３ａが異常であると判定して走行距離データの積算を停止する第２の積算停止部６３とを備えている。
【００６９】
次に、図１１のフローチャートを参照してＥＥＰＲＯＭ回路の書き込み動作を説明する。このＥＥＰＲＯＭ回路３ａへのデータの書き込み動作は、走行距離情報更新部５ａによって行われる。
【００７０】
まず、回数Ｍを“０”に設定し（ステップＳＴ３０）、ＥＥＰＲＯＭ回路３ａへのデータの書込回数としてのリトライ回数Ｎを“０”に設定する（ステップＳＴ３１）。
【００７１】
次に、ＥＥＰＲＯＭ回路３ａに対する書き込みを行い、書き込みが失敗した場合には（ステップＳＴ３２）、第１回目の再書き込みを行い、再書き込みが失敗した場合には（ステップＳＴ３３）、リトライ回数Ｎ（＝０）に１を加算してリトライ回数Ｎが１となる（ステップＳＴ３４）。
【００７２】
次に、リトライ回数Ｎ（＝１）が３未満であるため（ステップＳＴ３５）、ステップＳＴ３３に戻り、第２回目の再書き込みを行い、再書き込みが失敗した場合には（ステップＳＴ３３）、リトライ回数Ｎ（＝１）に“１”を加算してリトライ回数Ｎが“２”となる（ステップＳＴ３４）。
【００７３】
次に、リトライ回数Ｎ（＝２）が３未満であるため（ステップＳＴ３５）、ステップＳＴ３３に戻り、第３回目の再書き込みを行い、再書き込みが失敗した場合には（ステップＳＴ３３）、リトライ回数Ｎ（＝２）に“１”を加算してリトライ回数Ｎが“３”となる（ステップＳＴ３４）。
【００７４】
次に、リトライ回数Ｎが“３”となった場合には（ステップＳＴ３５）、回数Ｍ（＝０）に“１”を加算して回数Ｍが“１”となる（ステップＳ３６）。回数Ｍ（＝１）が５未満であるため（ステップＳＴ３７）、走行距離が前回の走行距離よりも０．５ｋｍ増加した場合には（ステップＳＴ３８）、ステップＳＴ３１に戻り、ステップＳＴ３１からステップＳＴ３７までの処理を実行する。
【００７５】
すなわち、次回０．５ｋｍ走行（この例では、再書込周期を０．５ｋｍとした。）時に、書き込みを行い、書き込みが失敗し、３回の再書き込みが失敗した場合には、回数Ｍ（＝１）に“１”を加算して回数Ｍが“２”となる（ステップＳ３６）。回数Ｍ（＝２）が５未満であるため（ステップＳＴ３７）、走行距離が前回の走行距離よりも０．５ｋｍ増加した場合には（ステップＳＴ３８）、ステップＳＴ３１に戻り、ステップＳＴ３１からステップＳＴ３７までの処理を実行する。
【００７６】
すなわち、次回０．５ｋｍ走行時（１．０ｋｍ）に、書き込みを行い、書き込みが失敗し、３回の再書き込みが失敗した場合には、回数Ｍ（＝２）に“１”を加算して回数Ｍが“３”となる（ステップＳ３６）。回数Ｍ（＝３）が５未満であるため（ステップＳＴ３７）、走行距離が前回の走行距離よりも０．５ｋｍ増加した場合には（ステップＳＴ３８）、ステップＳＴ３１に戻り、ステップＳＴ３１からステップＳＴ３７までの処理を実行する。
【００７７】
すなわち、次回０．５ｋｍ走行時（１．５ｋｍ）に、書き込みを行い、書き込みが失敗し、３回の再書き込みが失敗した場合には、回数Ｍ（＝３）に“１”を加算して回数Ｍが“４”となる（ステップＳ３６）。回数Ｍ（＝４）が５未満であるため（ステップＳＴ３７）、走行距離が前回の走行距離よりも０．５ｋｍ増加した場合には（ステップＳＴ３８）、ステップＳＴ３１に戻り、ステップＳＴ３１からステップＳＴ３７までの処理を実行する。
【００７８】
すなわち、次回０．５ｋｍ走行時（２．０ｋｍ）に、書き込みを行い、書き込みが失敗し、３回の再書き込みが失敗した場合には、回数Ｍ（＝４）に“１”を加算して回数Ｍが“５”となる（ステップＳ３６）。回数Ｍが“５”となっため（ステップＳＴ３７）、走行距離データの積算を停止する（ステップＳＴ３９）。
【００７９】
一方、ステップＳＴ３２において書き込みが成功またはステップＳＴ３３において再書き込みが成功した場合には、走行距離データの積算を行う（ステップＳＴ４０）。
【００８０】
なお、書込処理部５１は、ステップＳＴ３２の処理を行い、再書込処理部５２は、ステップＳＴ３３からステップＳＴ３８の処理を行い、第１の積算停止部５３は、ステップＳＴ３９の処理を行う。
【００８１】
このように、第２の実施の形態の電子オドメータ装置によれば、１ｋｍ走行時にＥＥＰＲＯＭ回路３ａへの走行距離データの書き込みを行い、書き込みが失敗した場合には、３回まで再書き込みが行われ、この再書き込みが失敗した場合には、直ちに積算停止とせずに、次回０．５ｋｍ走行毎に再書き込みを実行する。そして、最大２ｋｍ走行分書き込みを行っても書き込みが行えない場合には、積算を停止する。また、再書き込み中は、積算計の加算を中止する。
【００８２】
すなわち、ＥＥＰＲＯＭ回路３ａとの信号線にノイズ等の外乱が発生しても、最大２ｋｍの長期間にわたって再書き込みが行われるため、ノイズ等に対しても、走行距離データのビット化けに対する冗長性を高めることができ、これによって、積算計を停止させる現象を抑制することができる。
【００８３】
なお、再書込周期を０．５ｋｍとしたのは、再書込回数をできるだけ多くして、しかもソフトウェアを複雑にしないで設計するためである。車速パルスを例えば、２５４８パルス／１ｋｍとする。
【００８４】
再書込周期を例えば、２００ｍｓとすると、２５４８／５＝５０９．６パルスである。この場合、走行距離が小数点となるため、ソフトウェア上の処理が複雑になる。
【００８５】
また、再書込周期を例えば、２５０ｍｓとすると、２５４８／４＝６３７パルスである。この場合、３００ｋｍ／ｈ走行では、再書込間隔が３秒となる。しかし、再書込間隔が短く、ＥＥＰＲＯＭ回路３ａへの書き込みリトライ中に２５０ｍ走行する可能性があり、これを回避するソフトウェアは複雑になる。
【００８６】
さらに、再書込周期を例えば、５００ｍｓとすると、２５４８／２＝１２７４パルスである。この場合、３００ｋｍ／ｈ走行では、再書込間隔が６秒となる。このため、再書込時間及び走行距離ともに無理のないものとなり、ソフトウェアもそれほど複雑にならない。従って、５００ｍ毎再書込を採用した。
【００８７】
次に、図１２のフローチャートを参照してＥＥＰＲＯＭ回路内のオドエリア７のベリファイ処理を説明する。ＥＥＰＲＯＭ回路３ａに対するベリファイ処理は、走行距離情報更新部５ａ及び走行距離情報演算表示部６ａによって行われる。
【００８８】
まず、ベリファイ回数としてのリトライ回数Ｎを“０”に設定する（ステップＳＴ４１）。
【００８９】
次に、ＥＥＰＲＯＭ回路３ａに対する走行距離データの書き込みを行い（ステップＳＴ４２）、ベリファイ処理が失敗した場合には（ステップＳＴ４３）、第１回目の再書き込みを行う（ステップＳＴ４４）。そして、再ベリファイ処理が失敗した場合には（ステップＳＴ４５）、リトライ回数Ｎ（＝０）に“１”を加算してリトライ回数Ｎが“１”となる（ステップＳＴ４６）。
【００９０】
次に、リトライ回数Ｎ（＝１）が３未満であるため（ステップＳＴ４７）、ステップＳＴ４４に戻り、第２回目の再書き込みを行い、再ベリファイ処理が失敗した場合には（ステップＳＴ４５）、リトライ回数Ｎ（＝１）に“１”を加算してリトライ回数Ｎが“２”となる（ステップＳＴ４６）。
【００９１】
次に、リトライ回数Ｎ（＝２）が３未満であるため（ステップＳＴ４７）、ステップＳＴ４４に戻り、第３回目の再書き込みを行い、再ベリファイ処理が失敗した場合には（ステップＳＴ４５）、リトライ回数Ｎ（＝２）に“１”を加算してリトライ回数Ｎが“３”となる（ステップＳＴ４６）。
【００９２】
次に、リトライ回数Ｎが“３”となった場合には（ステップＳＴ４７）、次回１ｋｍ走行時に次のアドレスから書き込みを開始する（ステップＳ４８）。以上説明したオドエリア７のベリファイ処理は、第１の実施の形態の電子オドメータ装置のベリファイ処理と同一処理である。
【００９３】
次に、第２の実施の形態の電子オドメータ装置の特徴であるアドレスエリア８のベリファイ処理を図１３のフローチャートを参照して説明する。
【００９４】
まず、回数Ｍを“０”に設定し（ステップＳＴ５０）、ベリファイ回数としてのリトライ回数Ｎを“０”に設定する（ステップＳＴ５１）。
【００９５】
次に、ＥＥＰＲＯＭ回路３ａに対する走行距離データの書き込みを行い（ステップＳＴ５２）、ベリファイ処理が失敗した場合には（ステップＳＴ５３）、第１回目の再書き込みを行う（ステップＳＴ５４）。そして、再ベリファイ処理が失敗した場合には（ステップＳＴ５５）、リトライ回数Ｎ（＝０）に“１”を加算してリトライ回数Ｎが“１”となる（ステップＳＴ５６）。
【００９６】
次に、リトライ回数Ｎ（＝１）が３未満であるため（ステップＳＴ５７）、ステップＳＴ５３に戻り、第２回目の再書き込みを行い（ステップＳＴ５４）、再ベリファイ処理が失敗した場合には（ステップＳＴ５５）、リトライ回数Ｎ（＝１）に“１”を加算してリトライ回数Ｎが“２”となる（ステップＳＴ５６）。
【００９７】
次に、リトライ回数Ｎ（＝２）が３未満であるため（ステップＳＴ５７）、ステップＳＴ５３に戻り、第３回目の再書き込みを行い（ステップＳＴ５４）、再ベリファイ処理が失敗した場合には（ステップＳＴ５５）、リトライ回数Ｎ（＝２）に“１”を加算してリトライ回数Ｎが“３”となる（ステップＳＴ５６）。
【００９８】
次に、リトライ回数Ｎが“３”となった場合には（ステップＳＴ５７）、回数Ｍ（＝０）に“１”を加算して回数Ｍが“１”となる（ステップＳ５８）。回数Ｍ（＝１）が５未満であるため（ステップＳＴ５９）、走行距離が前回の走行距離よりも０．５ｋｍ増加した場合には（ステップＳＴ６０）、ステップＳＴ５１に戻り、ステップＳＴ５１からステップＳＴ５７までの処理を実行する。
【００９９】
すなわち、次回０．５ｋｍ走行時に、書き込みを行い、ベリファイ処理が失敗し、３回の再ベリファイ処理が失敗した場合には、回数Ｍ（＝１）に“１”を加算して回数Ｍが２となる（ステップＳ５８）。回数Ｍ（＝２）が５未満であるため（ステップＳＴ５９）、走行距離が前回の走行距離よりも０．５ｋｍ増加した場合には（ステップＳＴ６０）、ステップＳＴ５１に戻り、ステップＳＴ５１からステップＳＴ５７までの処理を実行する。
【０１００】
すなわち、次回０．５ｋｍ走行時（１．０ｋｍ）に、書き込みを行い、ベリファイ処理が失敗し、３回の再ベリファイ処理が失敗した場合には、回数Ｍ（＝２）に“１”を加算して回数Ｍが“３”となる（ステップＳ５８）。回数Ｍ（＝３）が５未満であるため（ステップＳＴ５９）、走行距離が前回の走行距離よりも０．５ｋｍ増加した場合には（ステップＳＴ６０）、ステップＳＴ５１に戻り、ステップＳＴ５１からステップＳＴ５７までの処理を実行する。
【０１０１】
すなわち、次回０．５ｋｍ走行時（１．５ｋｍ）に、書き込みを行い、ベリファイ処理が失敗し、３回の再ベリファイ処理が失敗した場合には、回数Ｍ（＝３）に“１”を加算して回数Ｍが“４”となる（ステップＳ５８）。回数Ｍ（＝４）が５未満であるため（ステップＳＴ５９）、走行距離が前回の走行距離よりも０．５ｋｍ増加した場合には（ステップＳＴ６０）、ステップＳＴ５１に戻り、ステップＳＴ５１からステップＳＴ５７までの処理を実行する。
【０１０２】
すなわち、次回０．５ｋｍ走行時（２．０ｋｍ）に、書き込みを行い、ベリファイ処理が失敗し、３回の再ベリファイ処理が失敗した場合には、回数Ｍ（＝４）に“１”を加算して回数Ｍが“５”となる（ステップＳ５８）。回数Ｍが“５”となっため（ステップＳＴ５９）、走行距離データの積算を停止する（ステップＳＴ６１）。
【０１０３】
なお、ベリファイ処理部６１は、ステップＳＴ５３の処理を行い、再ベリファイ処理部６２は、ステップＳＴ５５からステップＳＴ６０の処理を行い、第２の積算停止部６３は、ステップＳＴ６１の処理を行う。
【０１０４】
このように、第２の実施の形態の電子オドメータ装置によれば、アドレスエリア８のベリファイ処理が失敗し、３回までの再ベリファイ処理も失敗した場合には、０．５ｋｍ毎で最大２ｋｍまでベリファイ処理を再度行う。それでもベリファイ処理が失敗した場合には、積算を停止させる。また、それ以降のＥＥＰＲＯＭ回路３ａへの走行距離データの書き込みも停止する。
【０１０５】
このため、アドレスエリア８の値が破壊される確率が下がったため、走行距離データのビット化けに対する冗長性を高めることができ、これによって、次回、イグニッションスイッチをオン時のオド値と前回走行中のオド値との間に誤差が発生しにくくなった。これにより、次回、イグニッションスイッチをオン時にその時のオド値は、必ずイグニションスイッチをオフ時のオド値を示し、積算計の過大表示を防止することができる。
【０１０６】
ここで、図１４乃至図１６を参照して、第１の実施の形態のベリファイ処理と第２の実施の形態のベリファイ処理とを比較して説明する。図１４は図１０に示すＥＥＰＲＯＭ回路のベリファイ処理の初期状態を模式的に示す説明図である。図１５は第１の実施の形態の電子オドメータ装置によるＥＥＰＲＯＭ回路のベリファイ処理を模式的に示す説明図である。図１６は第２の実施の形態の電子オドメータ装置によるＥＥＰＲＯＭ回路のベリファイ処理を模式的に示す説明図である。
【０１０７】
図１４に示す状態では、イグニッションスイッチのオン時の読み込みデータとオド値とは、次のようにして求められる。まず、アドレスエリア８において、データが“ＦＦＦＦ”から“００００”に変化する変化点は、アドレスが“３０”である。このため、オドエリア変化点は、３０−１７＝１３番地である。
【０１０８】
また、データは、“１００”であるため、以下の式によりオド値が“１６９６ｋｍ”となる。
【０１０９】
１７×（１００−１）＋１００×１３＝１６９６
このため、積算計表示値が“１６９６ｋｍ”、ＥＥＰＲＯＭ回路３ａ内のデータからの計算値（オド値）が“１６９６ｋｍ”となり、表示値とＥＥＰＲＯＭ回路３ａ内のデータからの計算値とが一致している。
【０１１０】
次に、図１５に示す第１の実施の形態の例では、図１４に示す状態から次回１ｋｍ走行でアドレスが“３０”への書き込み及び再書き込みともに失敗した場合には、図１５（ａ）に示すように、データは“００００”のままである。しかし、積算計の加算は、継続されるため、オドエリア７の１３番地にデータが“１００”と書き込まれる。このため、積算計表示値は、“１７００ｋｍ”となる。
【０１１１】
さらに、次回２ｋｍ走行した場合には、図１５（ｂ）に示すように、アドレスエリア８へのデータの書き込みまたは再書き込みが成功して、アドレスエリア８のアドレス“３１”に“ＦＦＦＦ”が書き込まれ、オドエリア７の１４番地にデータが“１００”と書き込まれる。
【０１１２】
また、アドレスエリア８のアドレス“３２”に“ＦＦＦＦ”が書き込まれ、オドエリア７の１５番地にデータが“１００”と書き込まれる。このため、積算計表示値は、“１７０２ｋｍ”となるが、計算値は“１６９６ｋｍ”であり、両者が一致しない。このため、表示値の過大表示が発生している。
【０１１３】
一方、図１６に示す第２の実施の形態の例では、図１４に示す状態から次回１ｋｍ走行でアドレスが“３０”への書き込み及び再書き込みともに失敗した場合には、図１６（ａ）に示すように、データは“００００”のままであり、積算計の加算は、中止するため、オドエリア７の１３番地のデータは“９９”のままである。このため、積算計表示値は、“１６９６ｋｍ”となる。
【０１１４】
さらに、５００ｍ毎に再書き込みを行ったが、再書き込みが失敗して２ｋｍ走行した場合には、積算を停止するので、図１６（ｂ）に示すように、アドレスエリア８へアドレス“３０”のデータは“００００”のままであり、また、オドエリア７の１３番地のデータも“９９”のまままである。このため、積算計表示値及び計算値（オド値）ともに“１６９６ｋｍ”となり、両者が一致することになる。すなわち、積算計の過大表示を防止することができる。
【０１１５】
【発明の効果】
以上説明したように本発明によれば、請求項１の電子オドメータ装置では、定期的なノイズに対しても走行距離データのビット化けに対する冗長性が高められ、走行中に積算計が停止する現象を抑制することかできる。
【０１１６】
請求項２の電子オドメータ装置では、アドレスエリアの値が破壊される確率が下がったため、走行距離データのビット化けに対する冗長性を高めることができ、これによって、次回、イグニッションスイッチをオン時にその時のオド値は、必ずイグニションスイッチをオフ時のオド値を示し、積算計の過大表示を防止することができる。
【０１１７】
また、請求項３の電子オドメータ装置では、不揮発性メモリに記憶される走行距離データのビット化けに対する冗長性を高めることができ、これによって不揮発性メモリに記憶される走行距離データを読み出すときに使用するプログラムを簡素化して、プログラム格納エリアの容量を小さくすることができる。
【図面の簡単な説明】
【図１】本発明による電子オドメータ装置の第１の実施の形態を示すブロック図である。
【図２】図１に示すＥＥＰＲＯＭ回路の詳細なメモリ構成を模式的に示す説明図である。
【図３】図１に示すＥＥＰＲＯＭ回路の書き込み動作を示すフローチャートである。
【図４】図１に示すＥＥＰＲＯＭ回路の書き込み動作を模式的に示す説明図である。
【図５】図１に示すＥＥＰＲＯＭ回路の書き込み動作を模式的に示す説明図である。
【図６】図１に示すＥＥＰＲＯＭ回路の読み込み動作を示すフローチャートである。
【図７】図１に示すＥＥＰＲＯＭ回路の読み込み動作を模式的に示す説明図である。
【図８】図１に示すＥＥＰＲＯＭ回路の読み込み動作を模式的に示す説明図である。
【図９】図１に示すＣＰＵ回路内に設けられるメモリの使用例を模式的に示す説明図である。
【図１０】本発明による電子オドメータ装置の第２の実施の形態を示すブロック図である。
【図１１】図１０に示すＥＥＰＲＯＭ回路の書き込み動作を示すフローチャートである。
【図１２】図１０に示すＥＥＰＲＯＭ回路内のオドエリアのベリファイ処理を示すフローチャートである。
【図１３】図１０に示すＥＥＰＲＯＭ内のアドレスエリアのベリファイ処理を示すフローチャートである。
【図１４】図１０に示すＥＥＰＲＯＭ回路のベリファイ処理の初期状態を模式的に示す説明図である。
【図１５】第１の実施の形態の電子オドメータ装置によるＥＥＰＲＯＭ回路のベリファイ処理を模式的に示す説明図である。
【図１６】第２の実施の形態の電子オドメータ装置によるＥＥＰＲＯＭ回路のベリファイ処理を模式的に示す説明図である。
【図１７】従来から知られている電子オドメータ装置の一例を示すブロック図である。
【図１８】図１７に示すＥＥＰＲＯＭ回路の使用例を模式的に示す説明図である。
【図１９】図１７に示すＥＥＰＲＯＭ回路に記憶されているデータの修正動作を模式的に示す説明図である。
【図２０】図１７に示すＥＥＰＲＯＭ回路に記憶されているデータの修正動作を模式的に示す説明図である。
【符号の説明】
１  電子オドメータ装置
２  ＣＰＵ回路
３  ＥＥＰＲＯＭ回路
４  表示器
５  走行距離情報更新部
６  走行距離情報演算表示部
７  オドエリア
８  アドレスエリア
９  メモリ
５１  書込処理部
５２  再書込処理部
５３  第１の積算停止部
６１  ベリファイ処理部
６２  再ベリファイ処理部
６３  第２の積算停止部
【図１】
0003749037.tif 000002
【図２】
0003749037.tif 000003
【図３】
0003749037.tif 000004
【図４】
0003749037.tif 000005
【図５】
0003749037.tif 000006
【図６】
0003749037.tif 000007
【図７】
0003749037.tif 000008
【図８】
0003749037.tif 000009
【図９】
0003749037.tif 000010
【図１０】
0003749037.tif 000011
【図１１】
0003749037.tif 000012
【図１２】
0003749037.tif 000013
【図１３】
0003749037.tif 000014
【図１４】
0003749037.tif 000015
【図１５】
0003749037.tif 000016
【図１６】
0003749037.tif 000017
【図１７】
0003749037.tif 000018
【図１８】
0003749037.tif 000019
【図１９】
0003749037.tif 000020
【図２０】
0003749037.tif 000021