電子機器及びプログラム
【課題】簡単且つ適切に、データ揮発を抑えることができるようにする。
【解決手段】ナビゲーション装置は、メモリカードに記憶されている地図データに基づき地図表示や経路案内等の処理を実現する。また、メモリカード内のデータについては、読出回数が多くなると揮発する確率が上がるため、読出回数の多いデータについては、RAMに保持し、メモリカードからの読出回数を減らす。また、ナビゲーション装置は、メモリカードに記録されているデータ書込日時からの経過時間を算出し、経過時間が閾値T1を越える度(S330でYes)、メモリカード内のデータ全体をリフレッシュする(S340)。但し、初回に限っては、経過時間が閾値T1よりも短い閾値T2を超えた時点で(S325でYes)、リフレッシュする。そして、リフレッシュ後には、メモリカードに、現在日時の情報を、データ書込日時として記録する(S350)。
【解決手段】ナビゲーション装置は、メモリカードに記憶されている地図データに基づき地図表示や経路案内等の処理を実現する。また、メモリカード内のデータについては、読出回数が多くなると揮発する確率が上がるため、読出回数の多いデータについては、RAMに保持し、メモリカードからの読出回数を減らす。また、ナビゲーション装置は、メモリカードに記録されているデータ書込日時からの経過時間を算出し、経過時間が閾値T1を越える度(S330でYes)、メモリカード内のデータ全体をリフレッシュする(S340)。但し、初回に限っては、経過時間が閾値T1よりも短い閾値T2を超えた時点で(S325でYes)、リフレッシュする。そして、リフレッシュ後には、メモリカードに、現在日時の情報を、データ書込日時として記録する(S350)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フラッシュメモリ等の電気的にデータ書換可能な不揮発性メモリから、データを読み出して、当該データに基づく処理を実行する電子機器に関する。
【背景技術】
【0002】
従来、電気的にデータ書換可能な不揮発性メモリとしては、フラッシュメモリが知られている。近年では、メモリセルを多値化して、大容量のフラッシュメモリを開発することに成功しており、フラッシュメモリの記憶容量も、ハードディスク装置の記憶容量と遜色がなくなってきている。
【0003】
このため、近年では、記録媒体として、従来採用されていたハードディスク装置に代えて、大容量の多値フラッシュメモリを採用して、パーソナルコンピュータや、カーナビゲーション装置等を構成することが、考えられている。
【0004】
カーナビゲーション装置等の振動の激しい環境下で使用される電子機器においては、ハードディスク装置に代えて、フラッシュメモリ等を採用すると、物理的なクラッシュがなくなるので、振動による故障を防止することができるといった利点がある。
【0005】
しかしながら、多値フラッシュメモリについては、二値フラッシュメモリやハードディスク装置等の他の記録媒体と比較して、データの記憶保持能力(リテンション)が低いため、長期に渡るデータ記憶保持に劣るといった問題がある。
【0006】
周知のように、フラッシュメモリは、高温に晒されると、リテンションが低下する性質を有する。また、フラッシュメモリにおいては、書込回数が増えると、ある回数を境に、急激にリテンションが低下する。この他、フラッシュメモリにおいては、データ読出回数が増えるにつれて、メモリセルが保持するデータが揮発する可能性が高くなるといった問題がある。
【0007】
多値フラッシュメモリは、従来の二値フラッシュメモリと比較して、このような問題が発生しやすいため、パーソナルコンピュータやカーナビゲーション装置等において、記録媒体に、多値フラッシュメモリを採用すると、データ揮発によるトラブルが発生しやすくなることが予想される。
【0008】
尚、このような問題の対処方法としては、従来、不揮発性メモリ(フラッシュメモリ等)が記憶するデータを、一旦読み出して、これを再書込することにより、不揮発性メモリが記憶するデータをリフレッシュする方法が知られている(特許文献1,2参照)。この技術を用いれば、データ揮発によるトラブルを抑えることができる。
【特許文献1】特開2005−78489号公報
【特許文献2】特開2006−301993号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかしながら、従来のリフレッシュ方法では、不揮発性メモリにメモリセルの状態を検知するための回路を設けて、リフレッシュの要否を判定するので、回路設置にコストがかかり、簡単且つ安価に、データの揮発を抑えることができないといった問題があった。
【0010】
この他、従来技術(特許文献2参照)では、外部環境によるリテンション低下の影響を抑えるために、外部環境を表す物理量(温度等)が閾値を超えた時点で、データのリフレッシュを行うようにしているが、このような手法では、例えば、高温時のデータ揮発を抑える場合、高温に晒された時間を考慮にいれず、温度が閾値を超えた時点でリフレッシュを行うことになるので、常時、適切なタイミング(必要十分なタイミング)で、リフレッシュを行うことができないといった問題があった。
【0011】
特に、フラッシュメモリでは、書込回数に応じてリテンションが低下するので、必要以上に、リフレッシュを行うと、不揮発性メモリ(フラッシュメモリ)の寿命が短くなる。
本発明は、こうした問題に鑑みなされたものであり、簡単且つ適切に、データ揮発を抑えることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0012】
かかる目的を達成するためになされた本発明の電子機器は、予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリ(フラッシュメモリ等)に接続されて、不揮発性メモリが記憶するデータに基づく処理を実行するものである。例えば、電子機器がカーナビゲーション装置等の地図表示装置である場合には、不揮発性メモリに記憶された地図データに基づき、現在位置周辺の地図を表す地図画面を表示するといった具合である。
【0013】
この電子機器は、不揮発性メモリが記憶するデータを一時記憶可能な記憶手段を備えると共に、不揮発性メモリが記憶するデータをリフレッシュするためのデータ更新手段を備える。即ち、データ更新手段は、不揮発性メモリが記憶するデータを、不揮発性メモリから読み出して記憶手段に記憶させ、当該記憶手段に記憶させたデータを、不揮発性メモリに再書込するデータ更新処理を実行することにより、不揮発性メモリが記憶するデータを更新する。
【0014】
また、本発明の電子機器は、データ更新処理の実行を制御する更新制御手段と、書込後経過時間推定手段を備え、更新制御手段は、書込後経過時間推定手段により推定された書込後経過時間が閾値を超える度、データ更新手段にデータ更新処理を実行させる。一方、書込後経過時間推定手段は、書込後経過時間として、不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの経過時間を、推定する。
【0015】
即ち、この電子機器では、不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの経過時間、が閾値を超えたと推定される度、不揮発性メモリが記憶するデータを、リフレッシュする。
【0016】
周知のように、不揮発性メモリが記憶するデータは、読出回数が増加したり、高温に晒された時間が長くなる程、揮発する可能性が高くなるが、これらの原因によるデータ揮発の発生率は、不揮発性メモリにデータが書き込まれた時点からの経過時間と相関がある。
【0017】
従って、本発明のように、データ書込後の経過時間を推定し、推定した経過時間に基づき、データ更新処理を実行するタイミングを制御すれば、不揮発性メモリに対してメモリセルの状態を検知するための回路を設けることなく、ソフトウェア的な手法により、適切なタイミングでデータ更新を行うことができる。即ち、簡単且つ適切に、不揮発性メモリでのデータ揮発を抑えることができる。
【0018】
尚、書込後経過時間推定手段は、データ更新手段により最後にデータ更新処理が実行された時点からの経過時間を、書込後経過時間として推定する構成にすることができる(請求項2)。
【0019】
例えば、データ更新処理を実行した日時を記憶しておき、その日時からの経過時間を、書込後経過時間として推定するといった具合である。このようにして、書込後経過時間を推定すれば、簡単な手順で、不揮発性メモリが記憶するデータを、長時間良好に保持することができる。
【0020】
また、書込後経過時間推定手段は、データ更新処理を実行した日時を自身にて記憶保持する構成にされてもよいが、不揮発性メモリに、その日時を記録する構成にされると一層好ましい。即ち、電子機器は、データ更新処理の実行時に、現在日時の情報を、データ書込日時の情報として、不揮発性メモリに書き込む構成にされるとよい。そして、書込後経過時間推定手段は、不揮発性メモリに記憶されたデータ書込日時からの経過時間を、書込後経過時間として推定する構成にされるとよい(請求項3)。
【0021】
この電子機器によれば、不揮発性メモリにてデータ書込日時の情報を管理するので、データ書込日時の情報を、不揮発性メモリに記憶されたリフレッシュ対象のデータと共に消失しないように管理することができ、データ書込日時の情報を別管理することで、データ書込日時の情報が消失して、不揮発性メモリに記憶されたデータをリフレッシュするタイミングが不明になるのを防止することができる。
【0022】
また、このように電子機器を構成すれば、出荷前の不揮発性メモリに対し、上記所定のデータを書き込む工程で、データ書込日時の情報も記録しておく程度で、不揮発性メモリへの初回データ書込時からの経過時間を、電子機器側で正確に把握できるようにすることができ、不揮発性メモリの出荷後、不揮発性メモリが消費者により購入され使用されるまでの期間に依らず、適切なタイミングで、初回のデータ更新処理を実行することができる。
【0023】
また、スロット部を介してメモリカードと接続され、メモリカードが内包する不揮発性メモリが記憶するデータに基づく処理を実行する電子機器に、上述の発明(請求項2)を適用する場合には、具体的に、書込後経過時間推定手段を、次のように構成するとよい。
【0024】
即ち、書込後経過時間推定手段は、データ更新手段により最後にデータ更新処理が実行された時点からの経過時間を、書込後経過時間として推定すると共に、メモリカードが内包する不揮発性メモリに対して過去にデータ更新処理が実行されていないとき、メモリカードがスロット部に最初に接続された時点からの経過時間を、書込後経過時間として推定する構成にされると一層好ましい(請求項4)。
【0025】
具体的に、不揮発性メモリにデータ書込日時を記録する発明(請求項3)に、この思想を適用する場合には、メモリカードがスロット部に最初に接続(装着)された時点で、メモリカードが内包する不揮発性メモリに、その時点での日時を、データ書込日時の情報として記録すればよい。
【0026】
このように電子機器を構成すれば、出荷前における初回データ書込時の日時が不明であっても、スロット部に新しく接続されたメモリカードに対し、必要なタイミングで、データ更新処理を実行することができる。
【0027】
但し、このようにして、書込後経過時間を推定する場合には、初回にデータ更新処理を実行するまで、書込後経過時間推定手段により推定される書込後経過時間と真の書込後経過時間との間にずれが生じる。このため、更新制御手段は、次のように構成されるとよい。
【0028】
即ち、更新制御手段は、不揮発性メモリに対して過去にデータ更新処理が実行されている場合、書込後経過時間推定手段により推定された書込後経過時間が、第一の閾値を超えた時点で、データ更新手段にデータ更新処理を実行させるが、不揮発性メモリに対して過去にデータ更新処理が実行されていない場合には、書込後経過時間推定手段により推定された書込後経過時間が、第一の閾値よりも小さい第二の閾値を超えた時点で、データ更新手段にデータ更新処理を実行させる構成にされるとよい(請求項5)。
【0029】
このように電子機器を構成すれば、初回にデータ更新処理を実行するまでの期間に生じうる上記「ずれ」を考慮して、早めに、データ更新処理を実行することができ、データ揮発を適切に抑えることができる。
【0030】
また、上記電子機器には、不揮発性メモリが所定温度以上の高温環境下におかれた時間を推定する高温時間推定手段を設け、更新制御手段は、高温時間推定手段により推定された時間が閾値を超える度、データ更新手段にデータ更新処理を実行させる構成にされるとよい(請求項6,7)。
【0031】
高温環境下においては、急激にリテンションが低下するので、不揮発性メモリが高温に晒された場合には、不揮発性メモリが記憶するデータをリフレッシュするのがよいが、不揮発性メモリが極短期間高温に晒された程度では、その事象がリテンション低下に与える影響は小さいので、不揮発性メモリが短期間高温に晒された程度で、データ更新処理を実行すると、データ更新処理の実行回数が不要に多くなり、不揮発性メモリの寿命を縮めることになる。
【0032】
特に、電子機器が車載機器である場合には、夏季に頻繁に不揮発性メモリが高温環境下におかれることになるので、不揮発性メモリが高温になる度、データ更新処理を実行していたのでは、データのリフレッシュを必要以上に実行することになり、不揮発性メモリの寿命が短くなる。
【0033】
一方、本発明のように、不揮発性メモリが所定温度以上の高温環境下におかれた時間を推定し、この推定時間に基づいて、データ更新処理の実行を制御するようにすれば、不要にデータ更新処理を実行しなくて済む。
【0034】
即ち、この発明によれば、適切なタイミングでデータ更新処理を実行することができ、不揮発性メモリの寿命が短くならないようにしつつ、不揮発性メモリにおいてデータが揮発するのを抑えることができる。また、この発明によれば、ソフトウェア的な手法により、適切なタイミングでデータ更新を行うことができるので、簡単且つ適切に、不揮発性メモリでのデータ揮発を抑えることができるといった利点がある。
【0035】
この他、不揮発性メモリにおけるリテンションは、読出回数が増えることでも低下するので、上記電子機器は、次のように構成されると一層好ましい。
即ち、上記電子機器には、不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが不揮発性メモリから読み出された回数(読出回数)を計測する読出回数計測手段を設け、更新制御手段は、読出回数計測手段の計測結果に基づき、各単位データについて、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定し、データ更新手段にデータ更新処理を実行させる構成にされるとよい。
【0036】
また、これに合わせて、データ更新手段は、更新制御手段から処理対象データが指定されると、データ更新処理として、不揮発性メモリが記憶するデータの内、更新制御手段から指定された処理対象データを選択的に不揮発性メモリから読み出して記憶手段に記憶させ、当該記憶手段に記憶させたデータを、不揮発性メモリに再書込する処理を実行する構成にされるとよい(請求項8,9)。
【0037】
不揮発性メモリが記憶する各メモリセルのデータの読出回数にばらつきがある場合には、読出回数が多いメモリセルのデータが、他のメモリセルのデータに対して揮発しやすくなるため、不揮発性メモリが記憶するデータを所定時間毎にリフレッシュする程度では、読出回数の多いデータに合わせて、冗長にデータ更新を行わないと、読出回数の多いメモリセルで、データ揮発が生じる可能性が高くなる。
【0038】
本発明の電子機器によれば、読出回数に応じて、単位データ毎に、適切なタイミングで、データ更新処理を実行することができるので、読出回数にばらつきがある場合でも、不揮発性メモリ内のデータが揮発するのを極力防止することができる。そして、この発明によれば、ソフトウェア的な手法により、適切なタイミングでデータ更新を行うことができるので、簡単且つ適切に、不揮発性メモリでのデータ揮発を抑えることができる。
【0039】
また、更新制御手段は、不揮発性メモリが記憶するデータを構成する単位データ群の内、予め設定された監視対象の単位データに限って、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定して、データ更新手段にデータ更新処理を実行させる構成にされるとよい。換言すれば、更新制御手段は、監視対象に設定されていない単位データについては、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定し、データ更新手段にデータ更新処理を実行させる処理を実行しない構成にされるとよい(請求項10)。
【0040】
このように、一部のデータに限定して読出回数を計測してデータ更新処理を実行するように、電子機器を構成すれば、全データについて読出回数を計測する場合よりも、処理負荷が小さくて済み、電子機器を安価に製造することができる。
【0041】
特に、書込後経過時間に基づきデータ更新処理を実行する電子機器に、この思想を採用する場合には、データ書込後、所定時間が経過した時点で、読出回数に依らずに、データ更新処理を実行することになるので、読出頻度の低いデータについて、読出回数を計測しても、読出回数が閾値を超える前に上記所定時間が経過することになり、無駄である。従って、本発明(請求項10)のように電子機器を構成すれば、効率的に、データ揮発を抑えることができる。
【0042】
尚、電子機器が、不揮発性メモリに記憶された地図データに基づき、現在位置周辺の地図を表す地図画面を表示する地図表示装置であって、ユーザインタフェースを通じて登録された地点の情報を、地図画面を通じて案内する機能を有する地図表示装置である場合には、上記ユーザインタフェースを通じて登録された地点の情報に基づき、監視対象のデータを設定する監視対象設定手段を、上記電子機器に設けるとよい(請求項11)。
【0043】
ユーザにより地図表示装置に登録される地点周辺は、ユーザが訪問する可能性が高い地域であるので、必然的に、当該登録地点周辺の地図データも、地図画面表示のために、不揮発性メモリから読み出される可能性が高くなる。従って、この登録地点の情報に基づき、監視対象を設定するように、電子機器を構成すれば、ユーザの使用状況に合わせて、監視対象を設定することができ、効率的に、データ揮発を抑えることができる。
【0044】
また、上述の電子機器には、読出指令が入力されると、当該読出指令にて指定されたデータを読み出し、当該読み出したデータを、読出指令元に出力する読出制御手段と、不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが読出制御手段により読み出された回数である総読出回数を計測する総読出回数計測手段と、総読出回数計測手段の計測結果に基づき、不揮発性メモリが記憶するデータの内、一部のデータを、記憶手段の特定領域に記憶保持させるコピーデータ生成手段と、を設けるとよい。そして、読出制御手段は、次のように構成されるとよい。
【0045】
即ち、読出制御手段は、読出指令にて指定されたデータが、コピーデータ生成手段の動作により記憶手段の特定領域に記憶保持されている場合、記憶手段の特定領域から読出指令にて指定されたデータを読み出し、読出指令にて指定されたデータが、コピーデータ生成手段の動作により記憶手段の特定領域に記憶保持されていない場合には、不揮発性メモリから読出指令にて指定されたデータを読み出す構成にされるとよい(請求項12,13)。具体的に、コピーデータ生成手段は、読出回数の多いデータを、記憶手段の特定領域に記憶保持させる構成にすることができる。
【0046】
このように構成された電子機器によれば、読出回数の多いデータを、不揮発性メモリから読み出さずに済むので、読出回数の増加によってリテンション低下し、不揮発性メモリ内の該当データが揮発してしまうのを極力抑えることができる。従って、この発明によれば、ソフトウェア的な手法で、簡単且つ適切に、不揮発性メモリでのデータ揮発を抑えることができる。
【0047】
この他、不揮発性メモリには、特定種のデータについて、同一データを、複数個、予め書き込むことで、重要データ等については、不揮発性メモリにデータを多重持ちするようにするとよい。そして、電子機器は、次のように構成されるとよい。即ち、電子機器は、データ修復手段により、複数個ある特定種のデータ内の一つに異常が生じると、複数個ある特定種のデータの内、異常が生じていない同一のデータに基づき、異常が生じた特定種のデータを修復する構成にされるとよい(請求項14)。
【0048】
このように電子機器を構成すれば、データ揮発等を原因として、重要データ等に、万が一、異常が生じた場合でも、当該異常を解消することができ、データ揮発に強い耐久性に優れた電子機器を提供することができる。
【0049】
また、上述した電子機器を車両に搭載して使用する場合には、バッテリを電子機器に接続して、電子機器を作動させることになるが、エンジンを始動させるためにセルモータを回転させるときなどには、電源に急激な電圧降下が生じて、電子機器が突然シャットダウンされる可能性がある。また、車両の停車等には、ユーザにより車両からバッテリが取り外されて、電子機器が突然シャットダウンされる可能性がある。そして、電子機器が突然シャットダウンされる可能性があるときに、不揮発性メモリが記憶するデータを更新しようとすると、不揮発性メモリからデータが消失してしまう可能性がある。
【0050】
周知のように、フラッシュメモリ等の不揮発性メモリが記憶するデータを更新する場合には、書込先の領域を一旦消去しなければ、その領域に新たにデータを書き込むことができないため、一時的に、不揮発性メモリから更新対象のデータが消去された状態になる。従って、このときに、電子機器が突然シャットダウンされると、更新対象のデータが失われてしまうことになるのである。
【0051】
勿論、データ更新処理の実行に際して、更新対象のデータを別の不揮発性メモリにバックアップしておけば、このようなデータ消失の問題を解決することができる。しかしながら、更新対象のデータを別の不揮発性メモリにバックアップしておくためには、当該別の不揮発性メモリを用意する必要があるし、この不揮発性メモリに十分な空き領域を確保しておく必要があり、電子機器の製造コストが高くなる。
【0052】
従って、データ更新処理については、電子機器が突然シャットダウンされる可能性の低いときにのみ実行されるようにするとよい。
即ち、車両に搭載されて使用される電子機器には、自車両の運転状態を表す情報を取得する車両情報取得手段と、車両情報取得手段が取得した自車両の運転状態を表す情報に基づき、自車両の運転状態が所定条件を満足する期間、データ更新手段によるデータ更新処理の実行を禁止する禁止手段と、を設けるのが好ましい。
【0053】
尚、自車両の運転状態を表す情報としては、エンジンの始動有無を表す情報や、自車両の走行速度を表す情報等を挙げることができる(請求項15,請求項16)。
このように電子機器を構成すれば、電圧降下が生じる可能性があるエンジンが始動される前の期間や、バッテリが取り外される可能性のある自車両が走行していない期間(走行速度ゼロの期間)に、データ更新処理が実行されるのを避けることができて、突然のシャットダウンを原因として、不揮発性メモリ内のデータが失われるのを回避することができる。
【0054】
また、具体的に、禁止手段は、車両情報取得手段が取得した自車両の走行速度を表す情報に基づき、自車両の運転状態が所定条件を満足する期間として、自車両の走行速度が閾値未満である期間、データ更新手段によるデータ更新処理の実行を禁止する構成にすることができる(請求項17)。
【0055】
車両が停止等しているときには、バッテリが取り外される可能性があるし、エンジンが始動していないときには、セルモータの回転による電圧降下も生じうる。一方、エンジンが始動して車両がある程度の速度で走行し始めれば、電源の電圧降下が起こることはないし、バッテリの取り外しも起こらない。
【0056】
従って、自車両の走行速度が閾値未満である期間、データ更新手段によるデータ更新処理の実行を禁止するようにすれば、突然のシャットダウンによるデータ消失のリスクを回避することができて、良好にデータ更新を行うことができる。
【0057】
また、車載用の電子機器においては、走行距離に比例して読出回数が増える特性があるため、不揮発性メモリが記憶するデータをリフレッシュしなければ、当該電子機器が搭載された車両の走行距離が長くなる程、データ揮発の発生率が高くなる。
【0058】
従って、車載用の電子機器においては、不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの自車両の走行距離を、推定する走行距離推定手段を設けて、走行距離推定手段により推定された走行距離が閾値を超える度、データ更新手段にデータ更新処理を実行させるように更新制御手段を構成してもよい(請求項18及び請求項19)。
【0059】
走行距離を計測するためのセンサ類は、もともと車両に取り付けられているので、このように、走行距離に基づいて、データ更新処理を実行するタイミングを制御するようにしても、ソフトウェア的な手法により、適切なタイミングでデータ更新を行うことができ、簡単且つ適切に、不揮発性メモリでのデータ揮発を抑えることができる。
【0060】
また、データ更新処理を実行するタイミングを、走行距離及び書込後経過時間の両者に基づいて制御するように電子機器を構成すれば、書込後経過時間の閾値を長めに設定することで、車両をよく利用するユーザ、そうでないユーザの夫々の環境下においても、適切に、不揮発性メモリ内のデータをリフレッシュすることができる(請求項18)。
【0061】
また、データ揮発の発生率は、電子機器の動作時間(電子機器がオンにされている時間)が長くなる程、高くなるので、上記電子機器においては、不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの当該電子機器の動作時間を推定する動作時間推定手段を設けて、動作時間推定手段により推定された動作時間が閾値を超える度、データ更新手段にデータ更新処理を実行させるように更新制御手段を構成してもよい(請求項20及び請求項21)。
【0062】
電子機器の動作時間に基づいて、データ更新処理を実行するタイミングを制御すれば、簡単且つ適切に、不揮発性メモリでのデータ揮発を抑えることができる。
また、データ更新処理を実行するタイミングを、動作時間及び書込後経過時間の両者に基づいて制御するように電子機器を構成すれば、書込後経過時間の閾値を長めに設定することで、車両をよく利用するユーザ、そうでないユーザの夫々の環境下においても、適切に、不揮発性メモリ内のデータをリフレッシュすることができる(請求項20)。
【0063】
また、上記記憶手段以外の各手段としての機能は、プログラム(請求項22〜請求項27)により、コンピュータに実現させることができるので、上述の電子機器は、この種のプログラムと、コンピュータとを搭載し、プログラムにより、上記各手段としての機能を実現する構成にされると好ましい。
【発明を実施するための最良の形態】
【0064】
以下、本発明の実施例について、図面と共に説明する。
【実施例1】
【0065】
図1は、本発明が適用された第一実施例のカーナビゲーション装置1の構成を表すブロック図である。本実施例のナビゲーション装置1は、車両(自動車等)に搭載されて、使用される。
【0066】
このナビゲーション装置1は、図1に示すように、位置検出器11と、操作スイッチ群13と、リモートコントロール端末(以下、リモコンと称す)15aと、リモコン15aからの送信信号を検知するリモコンセンサ15bと、地図データを記憶するメモリカード19aが接続(装着)されるカードスロット部19と、画面上に各種画像を表示するための表示部21と、各種音声を出力するための音声出力部23と、装置内各部を統括制御する制御部25と、を備える。
【0067】
位置検出器11は、GPS(Global Positioning System)用の人工衛星からの送信電波を、GPSアンテナを介して受信し、現在地点の緯度・経度を検出するGPS受信機11aと、ナビゲーション装置1が搭載された車両に加えられる回転運動の大きさを検出するジャイロスコープ11bと、車両の走行距離を検出する距離センサ11cと、地磁気から車両の進行方位を検出する地磁気センサ11dとを備え、これら各部11a〜11dの検出信号を、制御部25に入力する。
【0068】
一方、操作スイッチ群13は、表示部21の周囲に設けられたメカニカルなキースイッチ、及び、表示部21と一体に構成されたタッチパネルから構成されており、ユーザが操作可能なユーザインタフェースとして機能する。
【0069】
また、表示部21は、液晶モニタで構成され、表示部21の画面上には、制御部25の制御により、現在地点周辺の地図や、ユーザにより指定された目的地までの経路などが表示される。この他、音声出力部23は、スピーカやアンプを備え、制御部25に制御されて、目的地までの経路に係るガイド音声等を出力する。
【0070】
その他、カードスロット部19は、メモリカード19aと電気的に接続されて、制御部25からメモリカード19aへのデータ書込及びメモリカード19aから制御部25へのデータ読出を実現するものであり、メモリカード19aを着脱自在に接続可能な構成を有する。具体的に、メモリカード19aには、電気的にデータ書換可能な不揮発性メモリとしてのNAND型フラッシュメモリが内蔵されており、カードスロット部19は、制御部25からの指令に従って、制御部25からフラッシュメモリへのデータ書込及びフラッシュメモリから制御部25へのデータ読出を実現する。
【0071】
また、ナビゲーション装置1に装着されるメモリカード19aには、予め当該装置がナビゲーション装置1として機能するのに必要なデータ(プログラムも含む)が記録されている。即ち、ナビゲーション装置1は、当該ナビゲーション装置1と同時又は別個に販売されるメモリカード19aが、カードスロット部19に接続されると、メモリカード19aが記憶するデータに基づいて、ナビゲーション装置1としての機能を実現する。
【0072】
具体的に、このメモリカード19aには、制御部25が実行するプログラムの他、道路の接続関係や施設・地形等の情報を内包する地図データが、予め出荷前に記録される。詳述すると、メモリカード19aに記録される地図データは、地図データ全体の構造及び詳細データの参照先を表す地図管理データ、道路形状や背景構造(地形)等を表す道路・背景データ、道路の接続関係を表す道路ネットワークデータ、施設の位置・名称等を表す施設データ、及び、経路案内や操作説明に用いる音声データ等を備える。
【0073】
この他、制御部25は、各種演算処理を実行するCPU25a、CPU25aによる処理実行時に作業領域として使用されるRAM25b、設定情報などを記憶するNVRAM25c、及び、ブートプログラム等の基本プログラムを記憶するROM(図示せず)を備えた構成にされている。この制御部25は、CPU25aにて、ROMやメモリカード19aが記憶するプログラムに従って、各種処理を実行することにより、経路案内等、ナビゲーション装置1が果たすべき機能を実現する。
【0074】
尚、制御部25が備えるNVRAM25cは、メモリカード19aとは異なり、少ない記憶容量で、その用途を果たすことができるため、このNVRAM25cには、データ記憶保持能力の高いメモリを用いる。例えば、NVRAM25cには、NOR型のフラッシュメモリを用いることができる。
【0075】
この他、制御部25が備えるRAM25bは、一時記憶手段であるが、ナビゲーション装置1のオフ時にデータが揮発しないように、ナビゲーション装置1のオン/オフに拘わらず、常時、車両に搭載されたバッテリからの電源供給を受けて、データを記憶保持する構成にされている。
【0076】
即ち、本実施例のナビゲーション装置1におけるRAM25bは、バッテリが車両から取り外されるか、バッテリが空になるなどして、バッテリからの電源供給が途絶えない限り、不揮発性メモリと同様に長期に渡って、データ保持可能にされている。
【0077】
制御部25は、メモリカード19aがカードスロット部19に接続された時点で、メモリカード19aに記憶されたメモリカード19a内のデータ構造を表すデータ管理情報(FAT等)及び地図管理データを、メモリカード19aから読み出して、これを、上記RAM25bの管理情報記憶領域に保存する。そして、以後、メモリカード19aからデータを読み出す際には、RAM25bに記憶されているデータ管理情報及び地図管理データに従って、読み出すべきデータが記憶されているメモリカード19a上の位置を特定する。
【0078】
また、制御部25は、メモリカード19aがカードスロット部19に接続された時点で、メモリカード19aに記憶されたプログラムを、メモリカード19aから読み出して、これを、RAM25bのプログラム記憶領域に保存する。そして、以後、RAM25bに保存されたプログラムに基づき、各種処理を実行する。
【0079】
具体的に、制御部25は、上記プログラムに基づいて、位置検出器11の検出信号により特定される自車位置周辺の地図データを、メモリカード19aから読み出し、読み出した地図データに基づき、自車位置周辺の地図画面を表示部21に表示する地図表示処理を実行する。以下では、この地図表示処理を実現するタスクを、「地図表示処理タスク」と称する。
【0080】
また、制御部25は、上記プログラムに基づき、現在地から、ユーザインタフェースを通じて指定された目的地までの経路を、メモリカード19aが記憶する地図データを用いて探索し、探索の結果得られた目的地までの経路を、表示部21や音声出力部23を通じて、ユーザに案内する経路案内処理を実行する。以下では、この経路案内処理を実現するタスクを、「経路案内処理タスク」と称する。
【0081】
例えば、制御部25は、表示部21に表示された自車周辺の地図画面上に、目的地までの経路を、太線等で重ねて表示すると共に、車両の旋回を伴う交差点付近で、車両の旋回方向を音声出力部23を通じて音声案内する。
【0082】
この他、制御部25は、上記プログラムに基づいて、ユーザインタフェースを通じた地点登録の操作を受け付け、ユーザにより指定された地点の情報を、NVRAM25cに登録し、登録地点(自宅等)に対応する地図画面上の位置に、アイコンを表示して、登録地点を、ユーザに向けて案内する登録地点表示処理を実行する。
【0083】
また、ナビゲーション装置1において、制御部25が実行する各種プログラムは、基本的に、図2に示す読出制御処理を実現するプログラムを呼び出し、この読出制御処理を通じて、メモリカード19aに記憶されたプログラム以外のデータを取得する構成にされている。例えば、地図表示処理や経路案内処理を実現するプログラムは、図2(b)に示す読出制御処理を通じ、必要な地図データを取得する構成にされている。
【0084】
従って、以下では、まず、データ取得時に制御部25が実行する読出制御処理について、図2を用いて説明する。図2(a)は、読取制御処理を通じたデータの取得態様を示した説明図であり、図2(b)は、経路案内処理タスクや地図表示処理タスク等のタスクから読出指令が入力されると、制御部25が実行する読出制御処理を表すフローチャートである。
【0085】
読出指令が入力されて読出制御処理を開始すると、制御部25は、まず、読出指令により指定された読出対象のデータを、RAM25bの特定領域内で探索し、特定領域に読出対象のデータが存在する場合には、これをRAM25bの特定領域から読み出す(S110)。この特定領域は、メモリカード19aが記憶するデータの内、読出回数の多いデータを、一時的に記憶しておくための領域であり、RAM25bにおいて、他の作業領域(管理情報記憶領域及びプログラム記憶領域も含む)とは別に、独立して固定サイズで設けられている。この特定領域には、後述するS190の処理により、読出回数の多いデータが書き込まれる。
【0086】
制御部25は、読出対象のデータをRAM25bの特定領域から読み出すことに成功した場合(S120でYes)、RAM25bから読み出した上記読出対象のデータを、読出指令元のタスクに出力する(渡す)処理を行う(S130)。また、この処理を終えると、S140に移行し、読み出したデータに対応するブロックの読出カウンタCNを、1カウントアップする(CN←CN+1)。
【0087】
ここでいうブロックとは、フラッシュメモリを構成する周知のブロックのことである。また、読出カウンタCNとは、対応するブロックに記憶されたデータの読出回数を表すパラメータのことである。本実施例においては、メモリカード19a内の各ブロックに対して、読出カウンタCNを割り当てており、各ブロックの読出カウンタCNを、NVRAM25cに記憶している。
【0088】
即ち、本実施例では、メモリカード19aに対し、ブロック単位でしかデータを読み書きすることができないので、1ブロックを、データ読出及び書込可能なメモリアクセス単位として取り扱い、フラッシュメモリから読み出されるデータの読出回数を、ブロック毎にカウントする。
【0089】
この読出カウンタCNは、初回に、NVRAM25cからRAM25bに読み出された後、当該読出制御処理により該当するデータの読出がある度、カウントアップされる。そして、カウントアップ後の値は、定期的に、NVRAM25cに書き込まれて、NVRAM25cが記憶する読出カウンタCNに反映される。
【0090】
S140で読出カウンタCNを更新(カウントアップ)すると、制御部25は、当該読出制御処理を終了する。
一方、制御部25は、RAM25bの特定領域に、読出対象のデータが記憶されておらず、RAM25bからのデータ読出に失敗すると(S120でNo)、S150に移行する。そして、カードスロット部19を通じメモリカード19aにアクセスし、メモリカード19aから読出対象のデータを読み出す。そして、メモリカード19aから読み出した上記読出対象のデータを、読出指令元のタスクに出力する処理を行う(S160)。
【0091】
また、S160の処理を終えると、制御部25は、上記読み出したデータに対応するブロックの読出カウンタCNを1カウントアップして更新する(S170)。即ち、読み出したデータに対応するブロックに割り当てられた読出カウンタCNの値を1増加させる。
【0092】
その後、制御部25は、更新後の読出カウンタCN(上記読み出したデータに対応するブロックの読出カウンタCN)が、予め定められた閾値を超えたか否かを判断する(S180)。そして、読出カウンタCNが閾値以下であると判断すると(S180でNo)、S190の処理を実行することなく、当該読出制御処理を終了する。
【0093】
一方、制御部25は、読出カウンタCNが閾値を超えたと判断すると(S180でYes)、S190に移行して、閾値を超えた上記読出カウンタCNに対応するブロックのデータ(即ち、S150でメモリカード19aから読み出したデータ)を、RAM25bの上記特定領域に書き込む。
【0094】
但し、特定領域は、上述したように、固定サイズの領域として予め確保されており、この特定領域には、所定ブロック数分のデータしか記憶できない。このため、S190でのデータ書込時に、特定領域に空き領域がない場合には、過去に書き込まれたデータを特定領域から消去し、今回読み出したデータを、RAM25bの上記特定領域に書き込む。
【0095】
即ち、制御部25は、読出回数が閾値以上のブロックのデータをメモリカード19aから読み出す度、特定領域に書き込まれたデータを書込の古い順に消去して、新しく読み出したブロックのデータを特定領域に登録することにより、最近、読出のあったブロックのデータから、所定ブロック数分のデータを、RAM25bに記憶保持する。
【0096】
また、S190での処理を終えると、制御部25は、当該読出制御処理を終了する。このようにして、制御部25は、読出回数が多いブロックのデータを、RAM25bに記憶保持して、メモリカード19aからのデータ読出回数を抑え、読出回数が増加することにより、メモリカード19a内のデータが揮発するのを防止する。
【0097】
また、このナビゲーション装置1では、メモリカード19aに書き込まれた地図データ等が時間経過と共に揮発するのを防止するため、これらのデータがメモリカード19aに書き込まれた日時からの経過時間を推定し、経過時間が閾値を超えた時点で、メモリカード19a全体を、リフレッシュする。
【0098】
続いて、このリフレッシュ動作を実現するために、制御部25が実行する処理について、図3〜図7を用いて説明する。図3は、アクセサリ(ACC)スイッチがオンにされて、ナビゲーション装置1がオンにされた直後に、制御部25が実行する起動後処理を表すフローチャートである。但し、制御部25は、ナビゲーション装置1がオンにされた時点で、メモリカード19aがカードスロット部19に接続されていない場合、カードスロット部19にメモリカード19aが接続された時点で、当該起動後処理を開始する。
【0099】
図3に示す起動後処理を開始すると、制御部25は、まず、カードスロット部19に接続されているメモリカード19aがカードスロット部19に初めて接続されたものであるか否かを判断する(S210)。尚、本実施例では、S230にて、初めて接続されたメモリカード19aの所定領域に、データ書込日時の情報を記録する。従って、S210では、メモリカード19aの所定領域にデータ書込日時の情報が記録されているか否かを判断することにより、接続されたメモリカード19aがカードスロット部19に初めて接続されたものであるか否かを判断する。
【0100】
そして、初めて接続されたメモリカード19aであると判断すると(S210でYes)、制御部25は、上述したように、メモリカード19aの所定領域に、現在日時を、データ書込日時の情報として記録する(S230)。同時に、メモリカード19aの所定領域に、未更新フラグの情報として、値「1」を記録して、未更新フラグをセット状態にする。尚、未更新フラグは、メモリカード19aが最初に接続されてから、メモリカード19aに対し最初にリフレッシュ動作がなされるまでの期間、セット状態にされ、その後、リセット状態(値「0」)にされるものである(詳細後述)。
【0101】
また、このようにしてS230での処理を終えると、制御部25は、図4に示すカード管理処理の実行を開始し(S250)、その後、当該起動後処理を終了する。詳しくは後述するが、カード書込処理では、未更新フラグがリセット状態のとき、メモリカード19aに記録されたデータ書込日時からの経過時間が、閾値T1(例えば、1年)を越えた時点で、メモリカード19aに対するリフレッシュ動作を実行する。一方、未更新フラグがセット状態のとき、メモリカード19aに記録されたデータ書込日時からの経過時間が、上記閾値T1よりも短い閾値T2(例えば1月)を超えた時点で、メモリカード19aに対するリフレッシュ動作を実行する。未更新フラグは、このような処理の切替のために用いられるものである。
【0102】
また、制御部25は、カードスロット部19に接続されたメモリカード19aが初めて接続されたメモリカード19aではないと判断すると(S210でNo)、S240に移行し、図7に示す再起動時処理を実行する。
【0103】
詳しくは後述するが、この再起動時処理では、メモリカード19aに対するリフレッシュ動作が何らかの原因で中断されているとき、そのリフレッシュ動作を再開する動作を行う。この他、制御部25は、リフレッシュ動作が中断されている状態にないとき、何もせずに再起動時処理を終了する。
【0104】
このようにして、S240における再起動時処理を終えると、制御部25は、直前の再起動時処理にてメモリカード19aに対するリフレッシュ動作が完了したか否か(具体的には、S690又はS645でYesと判断して再起動時処理が終了したか否か)を判断し(S243)、リフレッシュ動作が完了したと判断すると(S243でYes)、メモリカード19aの所定領域に記憶されているデータ書込日時を、現在日時に更新する(S247)。その後、S250に移行して、図4に示すカード管理処理の実行を開始し、当該起動後処理を終了する。
【0105】
一方、再起動時処理にて、メモリカード19aに対するリフレッシュ動作が完了していない場合(即ち、S610でNoと判断するか、S625又はS675でYesと判断して、再起動時処理が終了している場合)には(S243でNo)、S247の処理を実行することなく、S250に移行する。そして、図4に示すカード管理処理の実行を開始し(S250)、当該起動後処理を終了する。但し、S625又はS675でYesと判断した場合には、S250の処理を実行することなく、当該起動後処理を終了し、ナビゲーション装置1をオフにする。
【0106】
続いて、制御部25が、S250で実行を開始するカード管理処理について説明する。図4は、制御部25が実行するカード管理処理を表すフローチャートである。
このカード管理処理を開始すると、制御部25は、カードスロット部19に接続されたメモリカード19aの所定領域に記録されているデータ書込日時の情報に基づき、当該データ書込日時からの経過時間を算出する(S310)。更に、メモリカード19aが記憶する上記未更新フラグを参照し、未更新フラグがリセット状態にあるか否かを判断する(S320)。そして、未更新フラグがリセット状態にあると判断すると(S320でYes)、S330に移行する。
【0107】
また、S330では、S310で算出された経過時間が、予め定められた閾値T1(例えば1年)を超えているか否かを判断し、経過時間が閾値T1を超えていないと判断すると(S330でNo)、S310に移行する。このようにして、制御部25は、未更新フラグがリセット状態にある場合、経過時間が閾値T1を越えるまで待機する。
【0108】
そして、経過時間が閾値T1を超えていると判断すると(S330でYes)、S340に移行し、メモリカード19aの全ブロックを、リフレッシュする対象である再書込領域に設定し、図5に示す再書込制御処理を実行する。これにより、メモリカード19a内のデータ全体をリフレッシュする(詳細後述)。そして、全ブロックの再書込処理が終了することで再書込制御処理が終了すると、メモリカード19aが記憶するデータ書込日時を、現在日時に更新し(S350)、当該カード管理処理を終了する。
【0109】
一方、未更新フラグがセット状態にあると判断すると(S320でNo)、制御部25は、S325に移行し、S310で算出された経過時間が、閾値T2(例えば1月)を超えているか否かを判断し、経過時間が閾値T2を超えていないと判断すると(S325でNo)、S310に移行する。このようにして、制御部25は、未更新フラグがセット状態にある場合、経過時間が閾値T2を越えるまで待機する。
【0110】
そして、経過時間が閾値T2を超えていると判断すると(S325でYes)、S340に移行し、上述したように、メモリカード19aの全ブロックを再書込領域に設定して、再書込制御処理を実行する。これにより、メモリカード19a内のデータ全体をリフレッシュする。また、全ブロックの再書込処理が終了することでS340の処理を終えると、メモリカード19aが記憶するデータ書込日時を、現在日時に更新すると共に、メモリカード19aが記憶するセット状態の未更新フラグをリセット状態に更新する(S350)。その後、当該カード管理処理を終了する。
【0111】
続いて、S340で制御部25が実行する再書込制御処理について説明する。図5は、制御部25が実行する再書込制御処理を表すフローチャートである。上述のリフレッシュ動作は、この再書込制御処理により実現される。
【0112】
再書込制御処理を開始すると、制御部25は、再書込制御処理の実行時に設定された再書込領域の情報に基づき、再書込領域内の先頭ブロックを、処理対象ブロックとして設定する(S410)、その後、後続の処理(S420以降)を実行する。
【0113】
即ち、S410で処理対象ブロックを設定すると、制御部25は、S420に移行し、処理対象ブロックに記憶されたデータを、メモリカード19aから読み出し、読み出したデータを、RAM25bに一時記憶する。尚、ここでの読み出しは、上記読出制御処理を介さずに行うものとする。また、S420では、RAM25bの特定領域とは独立した作業領域に、上記読み出したデータを書き込んで、このデータを、RAM25bに一時記憶する。
【0114】
また、この処理を終えると、制御部25は、処理対象ブロックのデータがトラブル等で消失してしまうのを防止するため、この処理対象ブロックのデータを、NVRAM25cにバックアップ保存する。同時に、上記トラブルに備えて、再書込制御処理の進み具合を表す再書込進捗情報をNVRAM25cに記録する(S430)。例えば、再書込制御処理の実行時に設定された再書込領域の情報及び再書込処理が完了したブロックの情報を記録する。
【0115】
そして、S430での処理を終えると、制御部25は、RAM25bに読み出した上記処理対象ブロックのデータを、RAM25bからメモリカード19aに再書込する処理(再書込処理)を開始して(S440)、メモリカード19aが記憶する処理対象ブロックのデータをリフレッシュする。この動作により、メモリカード19aが記憶する処理対象ブロックのデータは更新され、メモリセルにおいて時間経過と共に低下していた電位は、正常な電位に回復する。
【0116】
尚、制御部25は、この再書込処理を開始した後、当該再書込処理が完了するまでの期間、エラー検出処理を並行して実行する(S450)。図6は、制御部25が実行するエラー検出処理を表すフローチャートである。
【0117】
エラー検出処理を開始すると、制御部25は、車両のACCスイッチがオフにされることにより、ナビゲーション装置1に対しオフ操作がなされたか否かを判断し(S510)、ナビゲーション装置1に対してオフ操作がなされたと判断すると(S510でYes)、S520に移行し、ナビゲーション装置1に対するオフ操作がなされていないと判断すると(S510でNo)、S560に移行する。
【0118】
S520に移行すると、制御部25は、現在再書込処理中の処理対象ブロックについての当該再書込処理が全て終了するまで待機し、再書込処理が全て終了すると(S520でYes)、NVRAM25cにバックアップ保存されている当該処理対象ブロックのデータを消去する(S530)。同時に、NVRAM25cに記憶されている再書込進捗情報を更新する(S540)。具体的に、S540では、再書込進捗情報が示す再書込処理が完了したブロックの情報を、現状況に合わせて更新すると共に、中断原因を表す情報として、オフ操作による中断の旨の情報を、再書込進捗情報に付加する。
【0119】
また、S540での処理を終えると、制御部25は、「中断要」と判定して(S550)、当該エラー検出処理を終了する。
一方、S560に移行すると、制御部25は、カードスロット部19からメモリカード19aが抜かれたか否かを判断し、カードスロット部19からメモリカード19aが抜かれていなければ(S560でNo)、S570〜S597の処理を実行することなく、当該エラー検出処理を終了する。
【0120】
これに対し、カードスロット部19からメモリカード19aが抜かれていると判断すると(S560でYes)、制御部25は、S570に移行して、表示部21に、メモリカード19aが接続されていない旨のメッセージを表示し、ユーザに対し、メモリカード19aのカードスロット部19への接続を促す。
【0121】
その後、制御部25は、メモリカード19aがカードスロット部19に接続されたか否かを判断し(S580)、メモリカード19aがカードスロット部19に接続されていなければ(S580でNo)、ナビゲーション装置1に対するオフ操作がなされたか否かを判断し(S585)、ナビゲーション装置1に対するオフ操作がなされていなければ(S585でNo)、S580に移行する。このようにして、制御部25は、メモリカード19aがカードスロット部19に接続されるか、ナビゲーション装置1に対してオフ操作がなされるまで待機する。
【0122】
そして、ナビゲーション装置1に対してオフ操作がなされると(S585でYes)、NVRAM25c内の再書込進捗情報を更新し(S595)、「中断要」と判定した後(S597)、当該エラー検出処理を終了する。具体的にS595では、再書込進捗情報が示す再書込処理が完了したブロックの情報を、現状況に合わせて更新すると共に、中断原因を表す情報として、メモリカードの抜き出しによる中断の旨の情報を、再書込進捗情報に付加する。その後、「中断要」と判定し(S597)、エラー検出処理を終了する。
【0123】
この他、制御部25は、カードスロット部19にメモリカード19aが接続された場合(S580でYes)、カードスロット部19に接続されたメモリカード19aが前回と同じカードであるか否かを判断する(S590)。
【0124】
詳述すると、S590では、メモリカード19aに予め記録された個体番号に基づき、カードスロット部19に接続されたメモリカード19aが前回、即ち、最後にカードスロット部19に接続されたメモリカード19aと同じカードであるか否かを判断する。
【0125】
そして、今回接続されたメモリカード19aが前回と同じカードであると判断すると(S590でYes)、再書込処理を、メモリカード19aの抜き出しにより中断された位置から開始し(S593)、その後、当該エラー検出処理を終了する。
【0126】
これに対し、今回接続されたメモリカード19aが前回と同じカードではないと判断すると(S590でNo)、制御部25は、S595に移行して、NVRAM25c内の再書込進捗情報を更新し、その後、「中断要」判定して(S597)、当該エラー検出処理を終了する。
【0127】
また、S450でエラー検出処理を実行し終えると、制御部25は、S460に移行し、エラー検出処理で「中断要」判定がなされたか否かを判断する(S460)。そして、「中断要」判定がなされたと判断すると(S460でYes)、S470以降の処理を実行せずに当該再書込制御処理(換言すれば、リフレッシュ動作)を中断する。尚、S340において、「中断要」判定により再書込制御処理を中断した場合、制御部25は、S350の処理を実行せずに、ナビゲーション装置1をオフにする。
【0128】
一方、エラー検出処理で「中断要」判定がなされていないと判断すると(S460でNo)、制御部25は、S470に移行し、処理対象ブロックについての再書込処理が完了したか否かを判断する。即ち、処理対象ブロックのデータが、全てメモリカード19aに書き込まれたか否かを判断する。そして、処理対象ブロックについての再書込処理が完了していないと判断すると(S470でNo)、S450に移行する。
【0129】
また、処理対象ブロックについて再書込処理が完了すると(S470でYes)、制御部25は、NVRAM25cにバックアップ保存されている処理対象ブロックのデータを、NVRAM25cから消去する(S480)。その後、再書込領域内の全てのブロックについて、再書込処理が終了し、対応するブロックのデータが全てリフレッシュされたか否かを判断する(S490)。
【0130】
そして、S490で再書込領域内の全てのブロックについて、再書込処理が終了していないと判断すると(S490でNo)、制御部25は、処理対象ブロックを、次ブロックに設定変更して(S495)、この処理対象ブロックについて、S420以降の処理を実行する。
【0131】
このようにして、制御部25は、ブロック毎に、再書込処理を実行し、再書込領域内の全てのブロックについて、再書込処理が終了すると(S490でYes)、当該再書込制御処理を終了する。
【0132】
続いて、制御部25が、S240(図3参照)にて実行する再起動時処理について、図7を用いて説明する。図7は、制御部25が実行する再起動時処理を表すフローチャートである。
【0133】
再起動時処理を開始すると、制御部25は、NVRAM25cに再書込進捗情報が記録されているか否かを判断することにより、ナビゲーション装置1において開始されたリフレッシュ動作(再書込制御処理)が中断されているか否かを判断する(S610)。尚、再書込進捗情報は、メモリカード19aのデータ書込日時が更新される時点(S247,S350)で、NVRAM25cから消去されるものとする。
【0134】
制御部25は、NVRAM25cに再書込進捗情報が記録されている場合、リフレッシュ動作(再書込制御処理)が中断されていると判断して(S610でYes)、S620に移行する。一方、NVRAM25cに再書込進捗情報が記録されていない場合には、否定判断して(S610でNo)、S620〜S695の処理を実行することなく、当該再起動時処理を終了する。
【0135】
S620に移行すると、制御部25は、リフレッシュ動作の中断直前にカードスロット部19に接続されていたメモリカード19aと同一のカードが、カードスロット部19に接続されているか否かを判断し、同一のカードがカードスロット部19に接続されていないと判断すると(S620でNo)、ナビゲーション装置1に対するオフ操作がなされたか否かを判断する(S625)。
【0136】
そして、ナビゲーション装置1に対するオフ操作がなされていないと判断すると(S625でNo)、S620に移行する。このようにして、制御部25は、カードスロット部19に、中断直前に接続されていたメモリカード19aと同一のメモリカード19aが接続されるか、ナビゲーション装置1に対するオフ操作がなされるまで待機する。そして、ナビゲーション装置1に対するオフ操作がなされると(S625でYes)、当該再起動時処理を終了する。
【0137】
一方、カードスロット部19に中断直前に接続されていたメモリカード19aと同一のメモリカード19aが接続されると(S620でYes)、制御部25は、S630に移行し、リフレッシュ動作が異常終了しているか否かを判断する。ここでは、NVRAM25cに中断原因を表す情報が記録されていない場合、リフレッシュ動作が異常終了していると肯定判断し(S630でYes)、NVRAM25cに中断原因を表す情報が記録されている場合には、否定判断する(S630でNo)。
【0138】
そして、異常終了していると判断すると(S630でYes)、制御部25は、NVRAM25cにバックアップ保存されている処理対象ブロックのデータを読み出して、RAM25bに記憶し(S633)、NVRAM25cに記録されている再書込進捗情報に基づいて、その処理対象ブロックのデータを、RAM25bからメモリカード19aに再書込する処理(再書込処理)を開始する(S637)。その後、S670に移行する。
【0139】
一方、異常終了していないと判断すると(S630でNo)、制御部25は、S640に移行し、NVRAM25cに記録されている中断原因を表す情報に基づき、中断原因が、オフ操作によるものであるのか、それとも、メモリカードの抜き出しによるものであるのかを判断する。
【0140】
そして、中断原因が、メモリカードの抜き出しによるものであると判断すると、制御部25は、S633に移行して、上述したように、NVRAM25cにバックアップ保存されている処理対象ブロックのデータを読み出してRAM25bに記憶し、その処理対象ブロックのデータを、RAM25bからメモリカード19aに再書込する処理を開始する(S637)。その後、S670に移行する。
【0141】
この他、中断原因が、オフ操作によるものであると判断すると、制御部25は、S645に移行して、NVRAM25cに記憶されている再書込進捗情報に基づき、現在設定されている再書込領域内の全ブロックに対して、上述の再書込処理を終了したか否かを判断し(S645)、再書込領域内の全ブロックに対する再書込処理を終了したと判断すると(S645でYes)、当該再起動時処理を終了する。
【0142】
一方、再書込領域内の全ブロックに対して、上述の再書込処理を終了していないと判断すると(S645でNo)、S650に移行し、再書込処理が未完了のブロック群の中で先頭のブロックを、処理対象ブロックに設定する。
【0143】
その後、制御部25は、S650で設定した処理対象ブロックのデータを、メモリカード19aから読み出して、これをRAM25bに書き込む(S655)。同時に、読み出した処理対象ブロックのデータを、NVRAM25cにバックアップ保存し、更に、NVRAM25cに記憶されている再書込進捗情報を更新する(S660)。具体的に、ここでは、再書込進捗情報の内、中断原因を表す情報を、NVRAM25cから消去する処理を行って、再書込進捗情報を更新する。
【0144】
そして、S660での処理を終えると、制御部25は、処理対象ブロックのデータを、RAM25bからメモリカード19aに再書込する処理を開始する(S665)。その後、S670に移行する。
【0145】
この他、S670では、図6に示すエラー検出処理を実行し(S670)、エラー検出処理が終了すると、当該エラー検出処理にて「中断要」判定がなされたか否かを判断する(S675)。そして、「中断要」判定がなされたと判断すると(S675でYes)、S680以降の処理を実行せずに当該再起動時処理(換言すれば、リフレッシュ動作)を中断する。
【0146】
一方、エラー検出処理にて「中断要」判定がなされなかったと判断すると(S675でNo)、制御部25は、S680に移行して、S470での処理と同様に、処理対象ブロックについての再書込処理が完了したか否かを判断する。そして、処理対象ブロックについての再書込処理が完了していないと判断すると(S680でNo)、S670に移行する。
【0147】
また、処理対象ブロックについて再書込処理が完了すると(S680でYes)、制御部25は、NVRAM25cにバックアップ保存されている処理対象ブロックのデータを、NVRAM25cから消去する(S685)。その後、再書込領域内の全ブロックについて、再書込処理が終了したか否かを判断する(S690)。
【0148】
そして、S690で再書込処理が終了していないと判断すると(S690でNo)、処理対象ブロックを、次ブロックに設定変更して(S695)、この処理対象ブロックについて、S655以降の処理を実行する。
【0149】
このようにして、制御部25は、ブロック毎に、再書込処理を実行し、再書込領域内の全ブロックについて、再書込処理が終了すると(S690でYes)、当該再起動時処理を終了する。
【0150】
以上、第一実施例のナビゲーション装置1の構成について説明したが、このナビゲーション装置1によれば、メモリカード19aにデータが書き込まれた時点からの経過時間を、メモリカード19aに記録されたデータ書込日時の情報に基づいて推定し(S310)、データ書込日時からの経過時間が閾値T1(初回のみ閾値T2)を超える度、再書込制御処理を実行して(S340)、メモリカード19a内のデータ全体をリフレッシュする。
【0151】
従って、このナビゲーション装置1によれば、時間経過と共に、メモリカード19a内のデータが揮発してしまうのを防止することができ、データの揮発により、ナビゲーション装置1に誤動作が生じるのを防止することができる。そして、本実施例によれば、このような動作を、制御部25でのプログラム実行により実現しているので、メモリセルの状態を検知するための回路を設ける必要がなく、簡単に、適切なタイミングで、メモリカード19a内をリフレッシュすることができ、簡単且つ適切に、データ揮発を抑えることができる。
【0152】
この他、本実施例では、メモリカード19aに地図データ等が書き込まれた時点からの経過時間を、メモリカード19aに記録されたデータ書込日時の情報に基づき、推定するので、メモリカード19aの出荷前におけるデータ書込時に、メモリカード19aにデータ書込日時の情報を記録するようにすれば、工場での初回データ書込時からの経過時間を、ナビゲーション装置1で正確に把握することができ、メモリカード19aの出荷後、メモリカード19aが消費者により購入され使用されるまでの期間に依らず、適切なタイミングで、初回のリフレッシュ動作を実行することができる。
【0153】
また、本実施例では、データ書込日時の情報が記録されていないメモリカード19aに対し、ナビゲーション装置1への初回接続時に、その接続日時を、データ書込日時の情報として記録する(S230)。そして、ナビゲーション装置1では、メモリカード19aに記録されたデータ書込日時の情報に基づいて、メモリカード19aがカードスロット部19に最初に接続された時点からの経過時間を、メモリカード19aにデータが書き込まれた時点からの経過時間として推定し、当該経過時間が閾値を超えた時点で、リフレッシュ動作を実行する。
【0154】
従って、本実施例のナビゲーション装置1によれば、工場でデータ書込日時の情報がメモリカード19aに記録されない場合でも、適切なタイミングで、メモリカード19a内のデータを更新することができ、データの揮発を防止することができる。
【0155】
特に、本実施例では、メモリカード19aがカードスロット部19に最初に接続された時点からの経過時間を、メモリカード19aにデータが書き込まれた時点からの経過時間として推定するときの誤差を考慮して、閾値T2を閾値T1よりも短く設定し、初回のリフレッシュ動作については、早めに実行するようにした。
【0156】
従って、本実施例によれば、工場出荷前のデータ書込日時を正確に把握できない場合でも、適切なタイミングで、リフレッシュ動作を実行することができる。
また、本実施例では、読出回数の多いデータについては、毎回、メモリカード19aからデータを読み出さなくても済むように、このコピーデータをRAM25bの特定領域に一時保存するようにした(S190)。このナビゲーション装置1によれば、読出回数の多いデータを、メモリカード19aから毎回読み出さずに済むので、メモリカード19aからの読出回数が増加することによってリテンションが低下し、メモリカード19aにおいて、読出回数の多いデータが、S340での処理を実行する前に、揮発してしまうのを防止することができる。従って、本実施例によれば、データ揮発によるエラーが起こりにくい優れたナビゲーション装置を提供することができる。
【0157】
尚、本発明(請求項1〜5,12,13)におけるデータ更新手段としての機能は、本実施例において、制御部25がS340で実行する再書込制御処理及びS350の処理等にて実現され、書込後経過時間推定手段としての機能は、S230,S310の処理にて実現されている。
【0158】
また、更新制御手段としての機能は、S320〜S330の処理にて実現され、読出制御手段としての機能は、S110〜S130,S150〜S160の処理にて実現されている。この他、総読出回数計測手段としての機能は、S140,S170の処理にて実現され、コピーデータ生成手段としての機能は、S180〜S190の処理にて実現されている。
【実施例2】
【0159】
続いて、第二実施例のカーナビゲーション装置1について説明する。但し、第二実施例のナビゲーション装置1のハードウェア構成は、第一実施例のナビゲーション装置1と同一であるので、ここでは、ハードウェア構成の説明を省略し、制御部25がソフトウェア的に実現する処理の内容についてのみ選択的に説明する。
【0160】
図8(a)は、制御部25が、図3に示す起動後処理に代えて実行する第二実施例の起動後処理を表すフローチャートである。
制御部25は、ACCスイッチがオンにされて、ナビゲーション装置1がオンにされた直後に、図8(a)に示す起動後処理の実行を開始する。但し、制御部25は、ナビゲーション装置1がオンにされた時点で、メモリカード19aがカードスロット部19に接続されていない場合、カードスロット部19にメモリカード19aが接続された時点で、当該起動後処理を開始する。
【0161】
制御部25は、この起動後処理を開始すると、まず、図8(b)に示す監視対象設定処理を実行する(S710)。図8(b)は、制御部25が、S710で実行する監視対象設定処理を表すフローチャートである。
【0162】
S710で監視対象設定処理を開始すると、制御部25は、まず、NVRAM25cに記憶されている登録地点データを読み出す(S713)。本実施例のナビゲーション装置1は、第一実施例と同様、ユーザインタフェースを通じ、地点登録操作を受け付けて、ユーザにより指定された地点の情報を、NVRAM25cに、登録地点データとして登録し、この登録地点データに基づき、登録地点(自宅等)に対応する地図画面上の位置に、アイコンを表示して、登録地点を、ユーザに向けて案内する。
【0163】
S713では、上記地点登録操作により登録された地点を表す登録地点データを、NVRAM25cから読み出す。そして、読み出した登録地点データの情報に基づき、登録地点データが示す各登録地点について、この登録地点を基点とした周辺地域の地図データを、監視対象に設定し、この設定内容をNVRAM25cに記録する(S717)。例えば、登録地点と同一の行政区(市町村等)の地図データを、監視対象に設定する。そして、この設定内容を、NVRAM25cに記録する。その後、監視対象設定処理を終了する。
【0164】
制御部25は、このような内容の監視対象設定処理をS710で終了すると、S730に移行し、S210での処理と同様に、カードスロット部19に接続されたメモリカード19aがカードスロット部19に初めて接続されたものであるか否かを判断する(S730)。
【0165】
そして、初めて接続されたメモリカード19aであると判断すると(S730でYes)、第一実施例と同様、メモリカード19aの所定領域に、現在日時を、データ書込日時の情報として記録する(S740)。同時に、メモリカード19aの所定領域に、未更新フラグの情報として、値「1」を記録して、未更新フラグをセット状態にする。
【0166】
また、S740での処理を終えると、制御部25は、図4に示すカード管理処理の実行を開始し(S760)、その後、当該起動後処理を終了する。
このようにして、制御部25は、ナビゲーション装置1がオンにされている期間、カード管理処理により、データ書込日時から所定時間(閾値T1,T2)が経過したか否かを判断し、所定時間が経過した場合には、メモリカード19a内の全ブロックを再書込領域に設定して、メモリカード19a内のデータ全体をリフレッシュする。
【0167】
また、リフレッシュ動作がオフ操作等により中断された場合には、ナビゲーション装置がオンにされたときに、図7に示す再起動後処理を実行して(S750)、リフレッシュ動作を再開し、リフレッシュ動作を完了させる。
【0168】
即ち、制御部25は、カードスロット部19に接続されたメモリカード19aが初めて接続されたメモリカード19aではないと判断すると(S730でNo)、S750に移行し、図7に示す再起動時処理を実行する。
【0169】
また、再起動時処理を終えると、制御部25は、直前の再起動時処理にて、メモリカード19aに対するリフレッシュ動作が完了したか否か(具体的には、S690又はS645でYesと判断して再起動時処理が終了したか否か)を判断し、リフレッシュ動作が完了したと判断すると(S753でYes)、NVRAM25cに記憶されている再書込進捗情報に基づき、完了したリフレッシュ動作に対応した処理を実行し、その後、再書込進捗情報を、NVRAM25cから消去する(S757)。
【0170】
具体的に、カード管理処理にて実行を開始したリフレッシュ動作(再書込制御処理)が完了し、メモリカード19a内の全ブロックがリフレッシュされた場合には、第一実施例におけるS247の処理と同様、メモリカード19aの所定領域に記憶されているデータ書込日時を、現在日時に更新し、未更新フラグをリセットする。
【0171】
また、このようにしてS757での処理を終えると、制御部25は、S760に移行し、図4に示すカード管理処理の実行を開始する。その後、当該起動後処理を終了する。
この他、本実施例のナビゲーション装置1では、制御部25が、メモリカード19aにおいて読出回数の多いデータのブロックを、個別に、再書込領域に設定して再書込制御処理を実行するので(詳細後述)、この再書込制御処理の中断を原因として、再起動時処理にて実行されたリフレッシュ動作が完了し、再書込領域に設定されたブロックがリフレッシュされた場合には、S757において、メモリカード19aのデータ書込日時を更新することなく、リフレッシュされたブロックに対応する読出カウンタCNをゼロにリセットすると共に、再書込進捗情報を、NVRAM25cから消去する。その後、S760に移行して、図4に示すカード管理処理の実行を開始した後、当該起動後処理を終了する。
【0172】
一方、再起動時処理にて、メモリカード19aに対するリフレッシュ動作が完了していない場合(即ち、S610でNoと判断するか、S625又はS675でYesと判断して、再起動時処理が終了している場合)には(S753でNo)、S757の処理を実行することなく、S760に移行する。但し、S625又はS675でYesと判断した場合には、S760の処理を実行することなく、当該起動後処理を終了し、ナビゲーション装置1をオフにする。
【0173】
ところで、本実施例のナビゲーション装置1では、上述したように、メモリカード19aからの読出回数が多いデータを、個別に再書込処理し、リフレッシュするのであるが、この動作は、制御部25が、図9に示す読出制御処理を実行することにより実現される。即ち、制御部25が実行する各種プログラムは、基本的に、第一実施例とは異なり、図9に示す読出制御処理を実現するプログラムを呼び出し、この読出制御処理を通じて、メモリカード19aに記憶されたデータを取得する構成にされている。
【0174】
次には、この読出制御処理の内容について、図9を用いて説明する。図9は、経路案内処理タスクや地図表示処理タスク等のタスクから読出指令が入力されると、制御部25が実行する第二実施例の読出制御処理を表すフローチャートである。
【0175】
読出指令が入力されて、この読出制御処理を開始すると、制御部25は、読出指令により指定された読出対象のデータを、メモリカード19aから読み出し、これを読出指令元のタスクに渡す処理を行う。ここで、言及しておくが、本実施例においては、第一実施例と異なり、RAM25bに上述の特定領域が設けられていないものとする。
【0176】
また、この処理を終えると、制御部25は、読出対象のデータが、監視対象に設定されているデータであるか否かを判断し(S820)、読出対象のデータが、監視対象に設定されているデータではないと判断すると(S820でNo)、S830〜S860の処理を実行することなく、当該読出制御処理を終了する。
【0177】
一方、制御部25は、読出対象のデータが、監視対象に設定されているデータであると判断すると(S820でYes)、S830に移行し、読み出したデータに対応するブロックの読出カウンタCNを、1カウントアップする(CN←CN+1)。
【0178】
尚、本実施例においては、監視対象のデータが記憶されているメモリカード19aの各ブロックに対して、読出カウンタCNを割り当てるようにしており、各ブロックの読出カウンタCNは、NVRAM25cに記憶される。この読出カウンタCNは、NVRAM25cからRAM25bに読み出された後、当該読出制御処理により該当するデータの読出がある度、カウントアップされる。そして、カウントアップ後の値は、定期的に、NVRAM25cに書き込まれて、NVRAM25cが記憶する読出カウンタCNに反映される。
【0179】
S830で、この読出カウンタCNを更新(カウントアップ)すると、制御部25は、S840に移行し、更新後の読出カウンタCN(上記読み出したデータに対応するブロックの読出カウンタCN)が、予め定められた閾値を超えたか否かを判断する(S840)。そして、読出カウンタCNが閾値以下であると判断すると(S840でNo)、S850〜S860の処理を実行することなく、当該読出制御処理を終了する。
【0180】
一方、制御部25は、読出カウンタCNが閾値を超えたと判断すると(S840でYes)、S850に移行して、閾値を超えた上記読出カウンタCNに対応するブロック(即ち、S810でメモリカード19aから読み出したデータのブロック)を、再書込領域に設定し、図5に示す再書込制御処理を実行する。これにより、メモリカード19a内の上記読出対象のデータをリフレッシュする。そして、再書込制御処理が終了すると、データがリフレッシュされたブロックの読出カウンタCNの値をゼロにリセットする(S860)。また、再書込進捗情報をNVRAM25cから消去する。その後、当該読出制御処理を終了する。
【0181】
但し、S850で、再書込制御処理が中断された場合、制御部25は、S860の処理を実行することなく、当該読出制御処理を終了し、その後、ナビゲーション装置1をオフにする。
【0182】
この他、読出制御処理で開始したリフレッシュ動作(再書込制御処理)が中断された場合、制御部25は、次のナビゲーション装置1のオン時に、再起動時処理(S750)にて、中断されたリフレッシュ動作を開始して、該当するブロックのデータをリフレッシュする。
【0183】
そして、リフレッシュ動作が完了すると、S757にて、リフレッシュしたブロックの上記読出カウンタCNの値を、上述したように、ゼロにリセットする。この他、上述しなかったが、本実施例では、カード管理処理にて開始されたリフレッシュ動作が完了した時点でも、読出カウンタCNをゼロにリセットする。具体的には、S350,S757でデータ書込日時を更新する際、監視対象のデータに対応する全読出カウンタCNをゼロにリセットする。このようにして、本実施例では、読出カウンタCNを管理する。
【0184】
以上、第二実施例のナビゲーション装置1について説明したが、本実施例では、メモリカード19a全体が、所定時間経過毎にリフレッシュされると共に、監視対象のデータが、読出回数が閾値を超える度に、リフレッシュされる。
【0185】
各ブロックのデータの読出回数にばらつきがある場合には、読出回数が多いブロックのデータが、他のブロックのデータに対して揮発しやすくなるため、メモリカード19aが記憶する各ブロックのデータを、所定時間毎にリフレッシュする程度では、読出回数が多いブロックの読出頻度に合わせて、冗長にデータ更新を行わないと、読出回数の多いブロックで、データ揮発が生じる可能性が高くなる。
【0186】
本実施例では、このような問題に鑑み、読出回数が多いと推定されるデータを予め監視対象に設定して、監視対象のデータが記憶されたブロックの当該データを、読出回数が閾値を超える度、個別にリフレッシュするようにした。従って、本実施例によれば、読出回数にばらつきがある場合でも、メモリカード19a内のデータを効率的に更新して、データが揮発するのを極力防止することができる。また、冗長にデータ更新することにより、書込回数が増えて、メモリカード19aの寿命が縮まるのを抑えることができる。
【0187】
ところで、本実施例では、メモリカード19a内のデータ全体を一括管理して、データ書込日時からの経過時間が閾値を超える度、データ全体をリフレッシュするが、ナビゲーション装置1では、1ブロック毎、若しくは、所定数のブロック毎に、データ書込日時及び未更新フラグの情報を、メモリカード19aに記録し、1ブロック毎、若しくは、所定数のブロック毎に、データ書込日時からの経過時間が閾値を超える度、閾値を越えたブロックのデータを選択的にリフレッシュするようにしてもよい。
【0188】
第二実施例では、読出制御処理により、監視対象のデータについて、個別にリフレッシュするので、カード管理処理にて、メモリカード19a内のデータ全体を一括管理し、データ書込日時からの経過時間が閾値を超える度、データ全体をリフレッシュすると、次のような問題が生じる。即ち、読出制御処理にて再書込制御処理を実行した直後に、カード管理処理にて再書込制御処理が実行されて、監視対象のデータが冗長に更新されるといった問題が生じる。
【0189】
カード管理処理では1年等の比較的長い時間間隔でリフレッシュ動作を実行するため、データが冗長に更新されるといっても、たいしたことではないが、上述したように、1ブロック毎、若しくは、所定数のブロック毎に、データ書込日時からの経過時間が、閾値を越えたブロックのデータを、リフレッシュすれば、このような冗長さを改善することができる。
【0190】
この他、本実施例では、メモリカード19aが記憶するデータの内、一部データのみを監視対象に設定し、上述の処理を実行するようにしたが、監視対象を設定せずに、メモリカード19aにおける全ブロックのデータについて、上述の監視対象と同様の処理を実行するようにしてもよい。また、この場合には、カード管理処理によるリフレッシュ動作を実行しないようにしてもよい。
【0191】
このように、制御部25が実行するプログラムを構成すれば、メモリカード19aを構成する各ブロックのデータについて、読出回数に応じて、個別にリフレッシュすることができる。
【0192】
また、本実施例では、登録地点の情報から、読出回数の多いデータを推定して、監視対象を設定する程度であるため、常に監視対象として、適切なデータを設定できるとは限らない。例えば、地点登録の機能を、利用しないユーザのナビゲーション装置1においては、監視対象の設定を、適切に行えない。
【0193】
従って、S710で実行する監視対象設定処理は、図10(a)に示す内容に変更してもよい。図10(a)は、変形例の監視対象設定処理を表すフローチャートである。
ここで、図10を用いて、変形例の監視対象設定処理について説明すると、この処理を開始した制御部25は、現在カードスロット部19に接続されているメモリカード19aに対して、監視対象が設定されているか否かを判断し(S910)、監視対象が設定されていると判断すると(S910でYes)、S920以降の処理を実行せずに、当該監視対象設定処理を終了する。尚、本変形例において、監視対象は、後述するS930で設定されるものとする。
【0194】
一方、監視対象が未だ設定されていないと判断すると(S910でNo)、制御部25は、S920に移行し、現在カードスロット部19に接続されているメモリカード19aについて、当該カードスロット部19への初回接続時から、所定時間が経過したか否かを判断する(S920)。
【0195】
そして、所定時間が経過していないと判断すると(S920でNo)、当該監視対象設定処理を終了し、当該監視対象設定処理の終了後には、メモリカード19aからデータの読出がある度、読み出されたデータに対応するブロックの読出カウンタCNを1カウントアップする処理を実行して、上記初回接続時から所定時間が経過するまで、メモリカード19aにおける各ブロックのデータ読出回数をカウントする。
【0196】
具体的には、図9に示す読出制御処理に代えて、図10(b)に示す読出制御処理を実行することにより、読み出されたデータに対応するブロックの読出カウンタCNを1カウントアップする動作を実行する。図10(b)は、制御部25が実行する変形例の読出制御処理を表すフローチャートである。尚、この読出制御処理においては、S820以降の処理の流れが、図9に示す読出制御処理と同一であるので、図10(b)では、S830以降の処理について、その図示を省略する。
【0197】
図10(b)に示す読出制御処理を開始すると、制御部25は、読出指令により指定された読出対象のデータを、メモリカード19aから読み出し、これを読出指令元のタスクに渡す処理を行う。その後(S810)、S815に移行し、メモリカード19aに対して、監視対象を設定済であるか否かを判断する。
【0198】
そして、監視対象が設定済であると判断すると(S815でYes)、S820に移行する。一方、監視対象が未設定であると判断すると(S815でNo)、読み出されたデータに対応するブロックの読出カウンタCNを1カウントアップする(S817)。その後、当該読出制御処理を終了する。尚、変形例では、メモリカード19aを構成する各ブロック毎に、読出カウンタCNが割り当てられているものとする。
【0199】
このようにして、制御部25は、メモリカード19aの初回接続時から所定時間が経過するまでの期間、メモリカード19aを構成する各ブロックのデータの読出回数をカウントする(S817)。
【0200】
そして、メモリカード19aの初回接続時から所定時間が経過した後、初めて、ナビゲーション装置1がオンにされたときに、S920でYesと判断し、その時点で読出カウンタCNの値が大きいものから所定数のブロックのデータを、監視対象のデータに設定する(S930)。その後、この監視対象の設定情報を、NVRAM25cに保持し、次回以降、ナビゲーション装置1がオンにされた場合には、S910でYesと判断して、それまでに設定した上記監視対象のデータについて、読出カウンタCNの値が閾値を超える度、リフレッシュ動作を実行する。
【0201】
以上、変形例について説明したが、この変形例のように、メモリカード19aが初回に接続されてから所定時間が経過するまでの期間に、読出回数の多かったデータを、監視対象に設定すれば、ユーザの使用方法に合わせて、好適に、監視対象を設定することができ、一層適切に、データの揮発を防止することができる。
【0202】
尚、本発明(請求項8〜11)における読出回数計測手段としての機能は、本実施例において、制御部25が実行するS830の処理にて実現され、更新制御手段としての機能は、S820,S840〜S850の処理にて実現されている。また、監視対象設定手段としての機能は、S710の処理にて実現されている。
【実施例3】
【0203】
続いて、第三実施例のカーナビゲーション装置1について説明する。但し、第三実施例のナビゲーション装置1は、上記実施例(第一又は第二実施例)のナビゲーション装置1に対して更に機能を付加した程度ものであるので、ここでは、当該付加機能に係る処理の説明を、選択的に説明するに留める。
【0204】
第三実施例のナビゲーション装置1は、カードスロット部19に温度センサ(図示せず)が内蔵された構成にされており、この温度センサから得られるカードスロット部周辺の温度情報に基づき、制御部25にて、図11に示す高温時間推定処理を実行する。
【0205】
図11は、制御部25が実行する高温時間推定処理を表すフローチャートである。具体的に、制御部25は、この高温時間推定処理を、起動後処理のS250又はS760で、カード管理処理と共に開始する。
【0206】
高温時間推定処理を開始すると、制御部25は、まず、カードスロット部19に接続されたメモリカード19aが初めてカードスロット部19に接続されたものであるか否かを判断する(S1010)。
【0207】
具体的に、ここでは、今回接続されているメモリカード19aについての高温時間Tx及び終了日時の情報(詳細後述)がNVRAM25cに記録されているか否かを判断することにより、カードスロット部19に接続されたメモリカード19aが初めてカードスロット部19に接続されたものであるか否かを判断する。
【0208】
そして、メモリカード19aが初めてカードスロット部19に接続されたものであると判断すると、高温時間Tx=0に設定した後(S1020)、S1050に移行する。そして、S1050以降では、所定時間Ts毎に、温度センサを用いて周辺温度を計測し、この温度情報に基づいて、高温時間Txを更新する動作を行う。
【0209】
具体的に、S1050に移行すると、制御部25は、前回、周辺温度を計測し、その温度情報を取得した時点から、所定時間Tsが経過したか否かを判断する。但し、ナビゲーション装置1がオンにされた直後のS1050では、形式的に所定時間Tsが経過したと判断する。
【0210】
そして、所定時間Tsが経過したと判断すると(S1050でYes)、温度センサを用いて周辺温度を計測し、温度センサから温度情報を取得する(S1060)。また、この処理を終えると、得られた情報に基づき、カードスロット部19の周辺温度が、閾値以上であるか否かを判断する(S1070)。尚、閾値は、メモリカード19aのリテンション低下が無視できない温度(例えば、摂氏80度等)に、予め設計段階で定められるものとする。
【0211】
そして、周辺温度が閾値未満であると判断すると(S1070でNo)、制御部25は、S1050に移行し、周辺温度が閾値以上であると判断すると(S1070でYes)、S1075に移行する。また、S1075では、現在設定されている高温時間Txに、上記時間Tsを加算して、高温時間Txを更新する(Tx←Tx+Ts)。
【0212】
また、S1075での処理を終えると、制御部25は、現在の高温時間Txが、予め定められた閾値を超えているか否かを判断し(S1080)、高温時間Txが閾値以下であると判断すると(S1080でNo)、S1050に移行し、高温時間Txが閾値を越えていると判断すると(S1080でYes)、S1083に移行する。そして、S1083では、メモリカード19aの全ブロックを、再書込領域に設定して、図5に示す再書込制御処理を実行する。これにより、メモリカード19a内のデータ全体をリフレッシュする。
【0213】
そして、全ブロックの再書込処理が終了することで再書込制御処理が終了すると、制御部25は、S1085でNoと判断して、メモリカード19aが記憶するデータ書込日時を、現在日時に更新すると共に(S1087)、未更新フラグをリセット状態にする。また、再書込進捗情報を消去し、更に、高温時間Txをゼロにリセットする(S1089)。その後、S1050に移行する。
【0214】
一方、S1083で再書込制御処理が中断された場合、制御部25は、S1085でYesと判断して、当該高温時間推定処理を終了し、ナビゲーション装置1をオフにする。そして、次回、ナビゲーション装置1がオンにされたときに、再起動時処理にて、中断されたリフレッシュ動作を再開する。そして、リフレッシュ動作が終了した時点で、データ書込日時を更新し、未更新フラグをリセットし、高温時間Txをゼロにリセットすると共に、再書込進捗情報を消去する(S247,S757)。尚、本実施例においては、S247,S350,S757等で、メモリカード19aのデータ書込日時を更新する際には、このメモリカード19aの高温時間Txを、必ず、Tx=0にリセットするものとする。
【0215】
また、S1050で所定時間Tsが経過していないと判断すると、制御部25は、S1090に移行し、ACCスイッチがオフにされることにより、ナビゲーション装置1に対してオフ操作がなされたか否かを判断し、ナビゲーション装置1に対してオフ操作がなされていないと判断すると(S1090でNo)、カードスロット部19からメモリカード19aが抜かれたか否かを判断する(S1093)。そして、カードスロット部19からメモリカード19aが抜かれていなければ(S1093でNo)、S1050に移行する。
【0216】
一方、カードスロット部19からメモリカード19aが抜かれたと判断すると(S1093でYes)、制御部25は、S1090に移行し、オフ操作がなされるか、カードスロット部19に同一のメモリカード19aが接続されるまで待機し、カードスロット部19に同一のメモリカード19aが接続されると(S1093でNo)、S1050に移行し、オフ操作がなされた場合には(S1090でYes)、S1095に移行する。
【0217】
また、S1095に移行すると、制御部25は、NVRAM25cに、今回接続されたメモリカード19aについての現時点での高温時間Txの情報を記録すると共に、現在日時を、当該高温時間推定処理の終了日時の情報として、NVRAM25cに記録する。その後、当該高温時間推定処理を終了する。
【0218】
この他、S1010でメモリカード19aが初めてカードスロット部19に接続されたものではないと判断すると(S1010でNo)、制御部25は、前回のナビゲーション装置1のオフ時に、NVRAM25cに書き込まれた当該メモリカード19aについての高温時間Tx及び終了日時の情報を、NVRAM25cから読み出し(S1030)、この読み出した高温時間Tx及び終了日時の情報と、メモリカード19aに記憶されている高温推定期間データとに基づき、改めて高温時間Txを設定する(S1040)。
【0219】
尚、高温推定期間データとは、車内温度がS1070で用いられる閾値と同程度の温度であると推定される期間(即ち、高温推定期間)を表すデータである。ここでは、例えば、7月〜9月の7時〜19時までが高温推定期間として定義されているものとする。
【0220】
詳述すると、S1040では、高温推定期間データにおいて定義された高温推定期間が、上記読み出した情報が示す終了日時から現在日時までの期間内に存在する場合、上記読み出した情報が示す終了日時から現在日時までの期間内に存在する高温推定期間の合計時間Tmを算出して、これをNVRAM25cから読み出した高温時間Txに加算し、その加算値を、高温時間Txに設定する(Tx←Tx+Tm)。
【0221】
終了日時が7月10日の20時で、現在日時が7月13日の8時である場合は、7月11日の7時〜19時、7月12日の7時〜19時、7月13日の7時〜8時が高温推定期間に該当するので、Tm=25時間と算出して、高温時間Txを設定する。
【0222】
また、このようにして、S1040での処理を終えると、制御部25は、S1040で設定した高温時間Txを起点にして、上述したようにS1050以降の処理を実行し、高温時間Txを更新する。そして、高温時間Txが閾値を越えた時点で(S1080でYes)、メモリカード19aの全ブロックを、再書込領域に設定して、図5に示す再書込制御処理を実行する(S1083)。これにより、メモリカード19a内のデータ全体をリフレッシュする。
【0223】
尚、本実施例では、カード管理処理及び高温時間推定処理が並列実行され、夫々が個別のタイミングで、メモリカード19aのリフレッシュ動作を開始する。このため、カード管理処理及び高温時間推定処理では、既にリフレッシュ動作が他の処理にて開始されている場合、再書込制御処理を実行しないようにして、カード管理処理及び高温時間推定処理で同時にリフレッシュ動作が開始されるのを回避する。
【0224】
例えば、高温時間推定処理でリフレッシュ動作(再書込制御処理)が開始されている場合、カード管理処理では、形式的にS325及びS330でNoと判断して、再書込制御処理を実行しないようにする。また、カード管理処理でリフレッシュ動作が開始されている場合、高温時間推定処理では、形式的にS1080でNoと判断して、再書込制御処理を実行しないようにする。
【0225】
以上、第三実施例のナビゲーション装置1について説明したが、本実施例では、メモリカード19aが高温環境下におかれた時間を、上記高温時間Txとして推定し、この時間Txが閾値を超える度、メモリカード19aのリフレッシュ動作を開始する。特に、本実施例では、ナビゲーション装置1がオフのときにメモリカード19aが高温に晒されていた時間を、高温推定期間データに基づいて推定する。
【0226】
従って、本実施例によれば、高温によるリテンション低下に合わせて、適切なタイミングで、メモリカード19a内のデータを更新することができ、メモリカード19aが高温環境下に晒されることにより、データが揮発してしまうのを防止することができる。
【0227】
尚、本発明(請求項6,7)における更新制御手段としての機能は、S1080の処理にて実現され、データ更新手段としての機能は、制御部25がS1083で実行する再書込制御処理及びS1087の処理等にて実現されている。また、高温時間推定手段としての機能は、S1020,S1040,S1075,S1089等の処理により実現されている。
【実施例4】
【0228】
続いて、第四実施例のカーナビゲーション装置1について説明する。但し、第四実施例のナビゲーション装置1は、上記実施例(第一〜第三実施例のいずれか)のナビゲーション装置1に対して更に機能を付加した程度ものであるので、ここでは、当該付加機能に係る説明を、選択的に説明するに留める。
【0229】
まず前提として、本実施例では、重要なデータを予め設計段階で定め、この重要データを、メモリカード19aに、二重に書き込む。即ち、メモリカード19aには、出荷前のデータ書込み時に、重要データについて、同一のデータを、複数書き込む。ここでは、例えば、プログラムや地図管理データ等を、重要データに定めることができる。
【0230】
また、制御部25が、上記メモリカード19aが接続されると、その後、図12に示す処理を周期的に繰返し実行するように、プログラムを設計し、これをメモリカード19a又はROMに記録する。このようにして、本実施例では、重要データの一つに異常が生じても、異常が生じていない同一のデータに基づき、異常が生じたデータを修復できるようにする。
【0231】
図12は、第四実施例のナビゲーション装置1において、制御部25が、カードスロット部19にメモリカード19aが接続されている期間、周期的に繰返し実行するデータ監視修復処理を表すフローチャートである。
【0232】
このデータ監視修復処理を開始すると、制御部25は、重要データが記憶されたブロックの一つを、検査対象ブロックに設定し(S1110)、検査対象ブロックが記憶するデータを、メモリカード19aから読み出す(S1120)、また、データ書込み時に、検査対象ブロックと同一のデータが書き込まれたブロックのデータを、メモリカード19aから読み出す(S1130)。尚、以下では、S1120で読み出したデータをメインデータ、S1130で読み出したデータをサブデータと称する。
【0233】
また、S1130での処理を終えると、制御部25は、上記メモリカード19aから読み出したメインデータ及びサブデータが、両方とも、揮発していない正常なデータであるか否かを判断する(S1140)。尚、読み出したデータが正常なデータであるか否かは、例えば、チェックサム等の周知技術を用いて判定することができる。
【0234】
そして、読み出したメインデータ及びサブデータが両方とも正常なデータであると判断すると(S1140でYes)、S1180に移行する。
一方、読み出したメインデータ及びサブデータの少なくとも一方が正常なデータではないと判断した場合であって(S1140でNo)、サブデータが正常なデータではなく、メインデータが正常なデータであると判断した場合には(S1150でYes)、メモリカード19aにおいてサブデータが記憶されているブロックのデータを、読み出したメインデータで書き換えて、サブデータが記憶されているブロックのデータを正常値に修復する(S1155)。その後、S1180に移行する。
【0235】
この他、読み出したメインデータ及びサブデータの少なくとも一方が正常なデータではないと判断した場合であって(S1140でNo)、メインデータが正常なデータではなくサブデータが正常なデータであると判断した場合(S1150でNo、S1160でYes)、制御部25は、メモリカード19aにおいてメインデータが記憶されている検査対象ブロックのデータを、読み出したサブデータで書き換えて、検査対象ブロックのデータを正常値に修復する(S1165)。その後、S1180に移行する。
【0236】
この他、メインデータ及びサブデータの両者が正常なデータではないと判断すると(S1160でNo)、表示部21に、メモリカード19aに異常がある旨のメッセージを表示することで、異常をユーザに向けて報知する(S1170)。その後、S1180に移行する。
【0237】
また、S1180に移行すると、制御部25は、重要データが記憶されたブロックを一通り、検査対象ブロックに設定したか否かを判断し、一通り検査対象ブロックに設定していない場合には、S1110に移行して、検査対象ブロックに設定していないブロックの一つを、検査対象ブロックに設定する。その後、S1120以降の処理を実行する。但し、データ監視修復処理では、同一の重要データが記憶された1対のブロックの内の一方のみを、検査対象ブロックに設定するものとする。
【0238】
そして、重要データが記憶されたブロックを一通り、検査対象ブロックに設定したと判断すると(S1180)、当該データ監視修復処理を終了する。このような内容のデータ管理修復処理を、制御部25は、周期的に繰返し実行する。
【0239】
以上、第四実施例のナビゲーション装置1について説明したが、本実施例によれば、重要データを、メモリカード19aに二重持ちしているので、データ揮発等を原因として、重要データの一方に、異常が生じた場合でも、当該異常を解消することができる。従って、本実施例によれば、データ揮発に強い耐久性に優れたナビゲーション装置1を、ユーザに対して提供することができる。
【0240】
尚、本発明(請求項14)におけるデータ修復手段としての機能は、本実施例において、制御部25が実行するデータ監視修復処理にて実現されている。
【実施例5】
【0241】
続いて、第五実施例について、図13〜図17を用いて説明する。
但し、第五実施例のナビゲーション装置1のハードウェア構成は、第一実施例のナビゲーション装置1と同一であるので、ここでは、同一構成の説明を適宜省略し、主として、制御部25がソフトウェア的に実現する処理の内容について、第一実施例と異なる部分を選択的に説明する。
【0242】
まず初めに、第五実施例の概要を説明する。第一実施例においては、ナビゲーション装置1の突然のシャットダウン等に備えるために、再書込制御処理において、処理対象ブロックのデータを、NVRAM25cにバックアップするようにしたが、バックアップするためには、NVRAM25cに、そのための領域を確保しておく必要がある。
【0243】
周知のように、フラッシュメモリにおいて、既にデータが書き込まれたブロックに対し、上書きするように新規データを書き込む場合には、そのブロック全体を一旦消去した後、新規データを書き込む必要があり、単純に、新規データを上書きすることはできない。従って、処理対象ブロックのデータをメモリカード19aへ再書込する際(例えば、S440の実行時)には、最初に、処理対象ブロック内のデータを消去することになる。
【0244】
従って、この時点から、処理対象ブロックへの再書込が完了するまでの間(S470でYesと判断されるまでの間)に、突然のシャットダウンが生じると、その処理対象ブロックにおいては、一部データが消去されたままの状態になる。
【0245】
このような理由から、第一実施例では、再書込制御処理において、処理対象ブロックのデータを、NVRAM25cにバックアップしているのだが、このようにバックアップする場合には、バックアップ用の領域を確保するために容量が大きめのNVRAM25cを、制御部25に用意しなければならないといった欠点がある。即ち、この手法では、製品(ナビゲーション装置1)の製造コストが高くなる。
【0246】
そこで、第五実施例では、処理対象ブロックのデータを、NVRAM25cにバックアップしない代わりに、ナビゲーション装置1が突然シャットダウンする可能性が高い環境では、処理対象ブロックのデータをメモリカード19aへ再書込する処理を実行しないように、ナビゲーション装置1を構成している。
【0247】
図13(a)に示すように、本実施例のナビゲーション装置1は、第一実施例のナビゲーション装置1と同様、アクセサリ(ACC)スイッチのオン/オフに連動して電力供給されるアクセサリ電源とバッテリが接続されている間には常時電力供給される常時電源とに接続されており、アクセサリスイッチがオンされると起動し、アクセサリスイッチがオフにされると、常時電源により、S520〜S550等の終了処理を実行する。
【0248】
しかしながら、周知のようにエンジン始動時には、セルモータの回転等を原因として、図13(b)に示すように、電圧降下が生じ、正常に終了処理を実行できないまま、ナビゲーション装置1が突然シャットダウンしてしまう可能性がある。
【0249】
そして、この場合には、処理対象ブロックの再書込処理が完了しないまま、ナビゲーション装置1が停止し、メモリカード19aにおいてデータが消失してしまうことになる。また、この問題は、電圧降下以外にも、ユーザによってバッテリそのものが車両から外された場合にも生じる。
【0250】
尚、図13(a)は、ナビゲーション装置1に対する電源の接続態様を表す説明図であり、図13(b)は、アクセサリ電源及び常時電源の電圧変化の態様、並びに、ナビゲーション装置1のオン/オフ変化の態様を表したタイムチャートである。
【0251】
但し、突然のシャットダウンは、主に、クランキング時(セルモータの回転時)やバッテリの取り外し時に生じ、これらが生じるのは、いずれも車両の停止時である。
換言すると、車両が高速走行している場合には、既にエンジンが始動しているので、クランキングによる電圧降下は生じえない。また、車両が高速走行している場合には、ユーザが車両のボンネットを開けてバッテリを取り外すことも、常識的にありえない。
【0252】
そこで、本実施例では、車両が低速走行中には、処理対象ブロックのデータをメモリカード19aへ再書込する処理を実行しないようにし、車両が高速走行中のときに限って、処理対象ブロックのデータをメモリカード19aへ再書込する処理を実行するようにしている。
【0253】
具体的に、制御部25は、図5に示す再書込制御処理に代えて、図14に示す再書込制御処理を実行することにより、上述の機能を実現する。図14は、第五実施例において、制御部25が実行する再書込制御処理を表すフローチャートである。
【0254】
尚、第五実施例の制御部25は、第一実施例と同様にして、図2に示す読出制御処理、図3に示す起動処理、及び、図4に示すカード管理処理を実行すると共に、カード管理処理のS340にて、図14に示す再書込制御処理を実行する。
【0255】
この再書込制御処理を開始すると、制御部25は、第一実施例と同様にS410の処理を実行した後、S415に移行し、図15(a)に示す再書込安全判定処理を実行する。図15(a)は、制御部25が実行する再書込安全判定処理を表すフローチャートである。
【0256】
S415において再書込安全判定処理を開始すると、制御部25は、まず、再書込許可フラグがセットされているか否かを判断する(S1210)。尚、再書込許可フラグは、セットされた状態で再書込を許可することを意味するフラグであり、ナビゲーション装置1の起動時に、リセットされる。即ち、ナビゲーション装置1の起動後、初回の再書込制御処理では、S1210において、再書込許可フラグがリセットされていると判断する。
【0257】
制御部25は、再書込許可フラグがリセットされていると判断すると(S1210でNo)、S1220に移行し、自車両の現在の走行速度を特定する。例えば、位置検出器11(距離センサ11c)の検出信号から自車両の走行速度を求める。
【0258】
その後、S1225に移行し、自車両の現在の走行速度が、予め定められた第一閾値VHを超えているか否かを判断する。第一閾値VHとしては、例えば、時速20kmを設定することができる。
【0259】
そして、自車両の現在の走行速度が第一閾値VH以下であると判断すると(S1225でNo)、所定時間待機(例えば、0.1秒待機)した後(S1230)、S1220に移行する。
【0260】
一方、自車両の現在の走行速度が第一閾値VHを超えていると判断すると(S1225でYes)、再書込許可フラグをセットした後(S1240)、当該再書込安全判定処理を終了し、S420に移行する。
【0261】
即ち、自車両の走行速度が第一閾値VH以下であるときには、S1220〜S1230を繰返し実行してS420に移行しないようにすることで、再書込処理の実行を禁止し、自車両の現在の走行速度が第一閾値VHを超えている場合には、S420へ移行することで、再書込処理の実行を許可する。
【0262】
これに対し、S1210で再書込許可フラグがセットされていると判断すると(S1210でYes)、制御部25は、S1250に移行し、S1220での処理と同様にして、自車両の現在の走行速度を特定した後、自車両の現在の走行速度が、予め定められた第二閾値VL未満であるか否かを判断する(S1255)。尚、第二閾値VLは、第一閾値VHよりも小さい値に設定される(第二閾値VL<第一閾値VH)。第二閾値VLとしては、例えば、時速10kmを設定することができる。
【0263】
ここで、自車両の現在の走行速度が第二閾値VL以上であると判断すると(S1255でNo)、制御部25は、再書込許可フラグをセットしたまま、当該再書込安全判定処理を終了して、S420に移行する。
【0264】
一方、自車両の現在の走行速度が第二閾値VL未満であると判断すると(S1255でYes)、S1260に移行して、再書込許可フラグをリセットする。その後、所定時間待機して(S1270)、S1220に移行する。
【0265】
即ち、本実施例では、図15(b)に示すように、自車両の走行速度が第一閾値VHを超えた場合には、その後、走行速度が第二閾値VL未満となるまで、再書込処理の実行を許可し、自車両の走行速度が第二閾値VL未満となった場合には、自車両の走行速度が第一閾値VHを超えるまで、再書込処理の実行を禁止する。
【0266】
また、S420に移行すると、制御部25は、処理対象ブロックに記憶されたデータを、メモリカード19aから読み出し、読み出したデータを、RAM25bに一時記憶する。
【0267】
また、この処理を終えると、制御部25は、第一実施例とは異なり、処理対象ブロックのデータを、NVRAM25cにバックアップ保存せずに、S440に移行し、RAM25bに読み出した上記処理対象ブロックのデータを、RAM25bからメモリカード19aに再書込する処理(再書込処理)を開始して(S440)、メモリカード19aが記憶する処理対象ブロックのデータをリフレッシュする。
【0268】
そして、制御部25は、この再書込処理を開始した後、当該再書込処理が完了するまでの期間、エラー検出処理を並行して実行する(S450)。但し、本実施例では、図6に示すエラー検出処理に代えて、図16に示すエラー検出処理を実行する。図16は、第五実施例において、制御部25が実行するエラー検出処理を表すフローチャートである。
【0269】
図16に示すエラー検出処理を開始すると、制御部25は、第一実施例と同様にして、ナビゲーション装置1に対しオフ操作がなされたか否かを判断し(S510)、ナビゲーション装置1に対してオフ操作がなされたと判断すると(S510でYes)、S520に移行する。
【0270】
そして、S520では、現在再書込処理中の処理対象ブロックについての当該再書込処理が全て終了するまで待機し、再書込処理が全て終了すると(S520でYes)、NVRAM25cに再書込進捗情報を書き込む(S545)。具体的に、S545では、再書込制御処理の実行時に設定された再書込領域の情報及び再書込処理が完了したブロックの情報を記録する。また、S545での処理を終えると、制御部25は、「中断要」と判定して(S550)、当該エラー検出処理を終了する。
【0271】
一方、ナビゲーション装置1に対しオフ操作がなされていないと判断すると、制御部25は、S520〜S550の処理を実行することなく、当該エラー検出処理を終了する。尚、本実施例では、再書込処理を実行する際に、データのバックアップをとらないため、再書込処理時にカードスロット部19からメモリカード19aが抜かれると都合がわるい。
【0272】
このため、本実施例では、正規の手続きを経ない限りは、カードスロット部19からメモリカード19aを抜くことができないような機構をカードスロット部19に設けて、ユーザからの指令を受け付けたときに限って、ナビゲーション装置1がカードスロット部19からメモリカード19を吐き出すようにし、再書込制御処理の実行時には、ユーザからの指令を受け付けないようにしている。
【0273】
また、このようにしてS450でのエラー検出処理を終了すると、その後には、第一実施例と同様に、エラー検出処理で「中断要」判定がなされたか否かを判断する(S460)。そして、「中断要」判定がなされたと判断すると(S460でYes)、S470以降の処理を実行せずに当該再書込制御処理を中断する。
【0274】
一方、エラー検出処理で「中断要」判定がなされていないと判断すると(S460でNo)、処理対象ブロックについての再書込処理が完了したか否かを判断し(S470)、処理対象ブロックについての再書込処理が完了していないと判断すると(S470でNo)、S450に移行する。
【0275】
また、処理対象ブロックについて再書込処理が完了すると(S470でYes)、S490に移行して、第一実施例と同様の判断を行い、再書込領域内の全てのブロックについて、再書込処理が終了していないと判断すると(S490でNo)、処理対象ブロックを、次ブロックに設定変更し(S495)、S415に移行する。
【0276】
このようにして、制御部25は、ブロック毎に、再書込安全判定処理を実行し、車両が高速走行しているときに限って、再書込処理を実行する。そして、再書込領域内の全てのブロックについて、再書込処理が終了すると(S490でYes)、当該再書込制御処理を終了する。
【0277】
また、再書込制御処理及びエラー検出処理が上述したように第一実施例と異なる関係上、第五実施例において、起動後処理のS240では、S630,S633,S637,S640,S660,S685の手順を抜かした図17に示す手順で再起動時処理を実行する。即ち、S620でYesと判断した場合には、S630,S640の処理を実行せずに、S645に移行し、S655の実行後には、S660の処理を実行せずに、S665に移行し、S680でYesと判断した場合には、S685の処理を実行せずに、S690に移行する。
【0278】
以上、第五実施例のナビゲーション装置1について説明したが、本実施例のナビゲーション装置1によれば、車両の走行速度が閾値VL未満であるときには再書込処理の実行を禁止するようにしたので、再書込処理を実行するに当たって、NVRAM23cに、リフレッシュ対象のデータをバックアップしなくとも、再書込処理に失敗して、メモリカード19a内のデータが消失してしまう可能性を極力小さくすることができ、安価にナビゲーション装置1を構成することができる。
【0279】
尚、本発明の車両情報取得手段は、本実施例において、S1220,S1250の処理により実現され、禁止手段は、S1220,S1250を除く再書込安全判定処理の各ステップにより実現されている。
【実施例6】
【0280】
続いて、第六実施例のカーナビゲーション装置1について説明する。但し、第六実施例のナビゲーション装置1のハードウェア構成は、第一実施例を含む上述の各実施例のナビゲーション装置1と同一であるので、ここでは、ハードウェア構成の説明を省略し、制御部25がソフトウェア的に実現する処理の内容についてのみ選択的に説明する。
【0281】
尚、本実施例は、上述の各実施例に対して、メモリカード19aに対するリフレッシュ動作の実行条件が異なる程度のものである。つまり、第六実施例の制御部25が実行する処理については、再書込制御処理の実行条件が異なることに伴う手順の違いを除けば、基本的に、上述した各実施例と同様に構成できる。例えば、再書込制御処理では、第一実施例と同様に、処理対象ブロックのデータをNVRAM25cへバックアップ(S430)すればよい。その他、S440で行う再書込処理の内容も同じである。従って、以下では、特に、上記実行条件が異なることに伴う手順の違いについてを説明する。
【0282】
図18は、制御部25が、図3に示す起動後処理に代えて実行する第六実施例の起動後処理を表すフローチャートである。
制御部25は、この起動後処理を開始すると、まず、カードスロット部19に接続されているメモリカード19aがカードスロット部19に初めて接続されたものであるか否かを判断する(S1310)。尚、本実施例では、S1330にて、初めて接続されたメモリカード19aに、通算走行距離Ds及び未更新フラグの情報を記録する。従って、S1310では、メモリカード19aに通算走行距離Ds及び未更新フラグの情報が記録されているか否かを判断することにより、接続されたメモリカード19aがカードスロット部19に初めて接続されたものであるか否かを判断する。
【0283】
そして、初めて接続されたメモリカード19aであると判断すると(S1310でYes)、制御部25は、メモリカード19aの所定領域に、通算走行距離Ds及び未更新フラグの情報を記録する(S1330)。但し、この際には、通算走行距離Dsとして値「0」を書き込むことにより、通算走行距離Dsを値「0」に設定し、未更新フラグの情報として、値「1」を記録することにより、未更新フラグをセット状態にする。
【0284】
更に、バックアップ距離Dbとして値「0」をRAM25bに書き込むことにより、RAM25bが記憶するバックアップ距離Dbを値「0」に設定する(S1335)。尚、バックアップ距離Dbは、ナビゲーション装置1のオン/オフに拘わらず、RAM25bに記憶保持される。
【0285】
また、S1335での処理を終えると、制御部25は、図19に示すカード管理処理の実行を開始し(S1350)、その後、当該起動後処理を終了する。尚、S1350でカード管理処理の実行を開始した後には、ナビゲーション装置1の終了時まで、繰返しカード管理処理を実行する。
【0286】
一方、カードスロット部19に接続されたメモリカード19aが初めて接続されたメモリカード19aではないと判断すると(S1310でNo)、制御部25は、S1340に移行して、図7に示す再起動時処理を実行する。
【0287】
また、この再起動時処理を終えると、制御部25は、直前の再起動時処理にてメモリカード19aに対するリフレッシュ動作が完了したか否か(具体的には、S690又はS645でYesと判断して再起動時処理が終了したか否か)を判断し(S1343)、リフレッシュ動作が完了したと判断すると(S1343でYes)、メモリカード19aの所定領域に記憶されている通算走行距離Dsを値「0」に更新すると共に、未更新フラグをリセット状態にする。更に、RAM25bが記憶するバックアップ距離を値「0」に更新する(S1347)。その後、S1350に移行して、図19に示すカード管理処理の実行を開始し、当該起動後処理を終了する。
【0288】
一方、再起動時処理にて、メモリカード19aに対するリフレッシュ動作が完了していない場合(即ち、S610でNoと判断するか、S625又はS675でYesと判断して、再起動時処理が終了している場合)には(S1343でNo)、S1347の処理を実行することなく、S1350に移行する。そして、図19に示すカード管理処理の実行を開始し(S1350)、当該起動後処理を終了する。但し、S625又はS675でYesと判断した場合には、S1350の処理を実行することなく、当該起動後処理を終了し、ナビゲーション装置1をオフにする。
【0289】
続いて、制御部25が、S1350で実行を開始するカード管理処理について説明する。図19は、制御部25が実行するカード管理処理を表すフローチャートである。
カード管理処理を開始すると、制御部25は、まず、S1411で、S1411の前回実行時点からの自車両の走行距離Dnを特定する。但し、ナビゲーション装置1の起動後において、S1411の初回実行時には、ナビゲーション装置1の起動時からの自車両の走行距離Dnを特定する。
【0290】
例えば、ナビゲーション装置1の起動時に、当該起動時からの走行距離を位置検出器11の検出信号に基づいて計測するタスクを起動し、S1411では、S1411の前回実行時点で上記タスクにより計測された走行距離と、今回の走行距離との差分を求めることにより、走行距離Dnを特定する。
【0291】
S1411での処理を終えると、制御部25は、S1413に移行し、RAM25bが記憶するバックアップ距離Dbを、現在値にS1411で特定した走行距離Dnを加算した値(Db+Dn)に更新する(Db←Db+Dn)。そして、更新後のバックアップ距離Dbが、予め設計段階で定められた規定値D0(例えば、100km)を超えているか否かを判断する(S1415)。
【0292】
S1415において、バックアップ距離が規定値D0以下であると判断すると(S1415でNo)、制御部25は、S1411に移行し、バックアップ距離が規定値D0を超えるまで繰返し、バックアップ距離Dbを更新する処理を行う(S1411〜S1415)。
【0293】
そして、バックアップ距離が規定値D0を超えると(S1415でYes)、制御部25は、S1417に移行し、カードスロット部19に接続されたメモリカード19aにアクセスして、メモリカード19aが記憶する通算走行距離Dsを、上記規定値D0を加算した値(Ds+D0)に更新する(Ds←Ds+D0)。
【0294】
また、S1417での処理を終えると、制御部25は、S1419に移行し、RAM25bが記憶するバックアップ距離Dbを、現在値から規定値D0を減算した値に更新する(Db←Db−D0)。
【0295】
尚、本実施例において、通算走行距離Dsの更新を、規定値D0毎としているのは、メモリカード19aへのアクセス数(データ書込回数)を減らすためである。上述したように、メモリカード19aへのアクセス数が増えると、リテンションが低下するため、本実施例では、このようにして、通算走行距離Dsの更新によるリテンションの低下を抑えている。
【0296】
また、S1419の処理後には、メモリカード19aが記憶する上記未更新フラグを参照し、未更新フラグがリセット状態にあるか否かを判断する(S1420)。そして、未更新フラグがリセット状態にあると判断すると(S1420でYes)、S1430に移行する。
【0297】
そして、S1430では、S1417での更新後の通算走行距離Dsが閾値D1を超えているか否かを判断し、更新後の通算走行距離Dsが閾値D1を超えていないと判断した場合には(S1430でNo)、S1411に移行する。このようにして、制御部25は、未更新フラグがリセット状態にある場合、通算走行距離Dsが閾値D1を超えるまで、上述した手順で、バックアップ距離Db及び通算走行距離Dsを更新する。
【0298】
一方、更新後の通算走行距離Dsが閾値D1を超えていると判断すると(S1430でYes)、制御部25は、S1440に移行して、メモリカード19aの全ブロックを、リフレッシュする対象である再書込領域に設定し、図5に示す再書込制御処理を実行する(S1440)。
【0299】
そして、全ブロックの再書込処理が終了することで再書込制御処理が終了すると、メモリカード19aが記憶する通算走行距離Dsを値「0」に更新すると共に、バックアップ距離Dbを値「0」に更新して(S1450)、当該カード管理処理を一旦終了する。そして、再度、S1411からカード管理処理を開始する。
【0300】
一方、S1420で、メモリカード19aが記憶する上記未更新フラグがセット状態にあると判断すると(S1420でNo)、制御部25は、S1425に移行し、S1417での更新後の通算走行距離Dsが閾値D2を超えているか否かを判断する。
【0301】
但し、閾値D2は、閾値D1よりも小さい値に予め定められているものとする。具体的に、閾値D1と閾値D2と規定値D0との間には、次の関係式D1>D2>D0が成り立つ。尚、閾値D1及び閾値D2については、リテンションを考慮して設計段階で定めればよい。
【0302】
S1425で、更新後の通算走行距離Dsが閾値D2を超えていないと判断した場合には(S1425でNo)、S1411に移行する。このようにして、制御部25は、未更新フラグがセット状態にある場合、通算走行距離Dsが閾値D2を超えるまで、上述した手順で、バックアップ距離Db及び通算走行距離Dsを更新する。
【0303】
そして、上記更新後の通算走行距離Dsが閾値D2を超えていると判断すると(S1425でYes)、制御部25は、S1440の処理を実行し、更に、S1450の処理を実行する。但し、S1425での判断を行う場合には、未更新フラグがセット状態にあるので、S1450では、メモリカード19aが記憶するセット状態の未更新フラグをリセット状態に更新する。その後、制御部25は、当該カード管理処理を一旦終了し、再度、S1411からカード管理処理を開始する。
【0304】
以上、第六実施例のナビゲーション装置1について説明したが、本実施例のナビゲーション装置1によれば、メモリカード19aにデータが書き込まれた時点からの車両の走行距離に応じて、再書込制御処理を実行して(S1440)、メモリカード19a内のデータ全体をリフレッシュする。
【0305】
従って、このナビゲーション装置1によれば、メモリカード19a内のデータが揮発してしまうのを防止することができ、データの揮発により、ナビゲーション装置1に誤動作が生じるのを防止することができる。
【0306】
即ち、ナビゲーション装置1は、車両の走行に必要な情報を車両乗員に提供するものであるので、ナビゲーション装置1に必要なデータ(プログラムも含む)が記憶されたメモリカード19aへのアクセス数と車両の走行距離との間には、相関がある。
【0307】
従って、本実施例のように走行距離に基づいてメモリカード19a内のデータをリフレッシュするようにしても、適切な時期にリフレッシュ動作を実行することができ、データの揮発により、ナビゲーション装置1に誤動作が生じるのを防止することができるのである。また、本実施例によれば、そのような機能を、ソフトウェアにより簡素に実現できる。
【0308】
また、第六実施例のナビゲーション装置1は、通算走行距離Dsに代えて、通算使用時間を、メモリカード19aに記録する構成にされてもよい。
即ち、S1411では、走行距離Dnに代えて、前回S1411実行時からの経過時間を特定する。但し、ナビゲーション装置1起動後の初回のみナビゲーション装置1起動時からの経過時間を特定する。
【0309】
そして、この経過時間を、RAM25bがバックアップ距離Dbの代わりに記憶するバックアップ時間に加算する。そして、このような動作を繰返し実行し(S1411〜S1413)、バックアップ時間が、規定時間を超えた時点で(S1415でYes)、メモリカードが記憶する通算使用時間を上記規定時間加算した値に更新する(S1417)。更に、バックアップ時間から規定時間を減算する(S1419)。
【0310】
そして、未更新フラグの状態に応じて閾値を切り替えつつ、通算使用時間が閾値を超えているか否かを判断し(S1420〜S1430)、通算使用時間を超えていない場合には、S1411に移行し、通算使用時間が閾値を超えている場合には、S1440の処理を実行して、メモリカード19a内のデータをリフレッシュする。そして、リフレッシュ後には、メモリカード19aが記憶する通算使用時間をゼロにリセットすると共に、RAM25bが記憶するバックアップ距離をゼロにリセットし、更には、未更新フラグをリセット状態にする。
【0311】
このようにナビゲーション装置1を構成しても、適切な時期にリフレッシュ動作を実行することができ、データの揮発により、ナビゲーション装置1に誤動作が生じるのを防止することができる。
【0312】
尚、本発明(請求項18,19)における走行距離推定手段としての機能は、本実施例において、通算走行距離Dsを更新するS1417の処理等により実現されており、更新制御手段としての機能は、S1420〜S1430の処理にて実現されている。
【0313】
同様に、本発明(請求項20,21)における動作時間推定手段としての機能は、通算使用時間を更新する動作により実現され、更新制御手段としての機能は、通算使用時間と閾値との比較により、処理を切り替える動作(S1420〜S1430)により実現される。
【0314】
また、以上には、本発明の実施例として、第一〜第六実施例について説明したが、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。
例えば、上記実施例では、メモリカード19a内のデータをリフレッシュする際、メモリカード19aから読み出したデータを、メモリカード19aにおける読出元のブロックに再書込するようにしたが、本発明は、読み出したデータを別ブロックに書き込み、読出元ブロックのデータを消去することでも、リフレッシュ動作(データ更新動作)を実現することができる。このようにすれば、データ管理は煩雑になるものの、メモリカード19a内のメモリセルを万遍なく使用することができ、メモリカード19aの寿命を長くすることができる。
【0315】
また、S430,S660においては、処理対象ブロックのデータを、NVRAM25cにバックアップするようにしたが、メモリカード19aの特定領域に、処理対象ブロックのデータをバックアップするようにしてもよい。同様に、再書込進捗情報についても、メモリカード19aに記録すればよい。
【0316】
この他、カード管理処理における閾値T1,T2の設定方法について、上では述べなかったが、閾値T1,T2については、データ破壊の確率が一定以上高くなる経過時間と、データ破壊の確率が一定以上高くなるデータ書込回数と、製品の保証期間と、を考慮して定められるのがよい。
【0317】
例えば、データ破壊の確率が高くなる経過時間が1年であり、データ破壊の確率が高くなるメモリセルへのデータ書込回数が20回である場合に、製品保証期間を10年に設定する場合には、閾値T1として、0.5年から1年の時間を設定するのがよい。また、データ破壊の確率が高くなる経過時間が0.1年であり、データ破壊の確率が高くなるメモリセルへのデータ書込回数が100回である場合に、製品保証期間を10年に設定する場合には、閾値T1として、0.1年程度の時間を設定するのがよい。
【0318】
この他、高温によるリテンション低下を極力抑えるため、ナビゲーション装置1の設置位置は、メモリカード19aが高温に晒されないように工夫されるのが好ましい。この他、ナビゲーション装置1周辺に断熱材を設けたり、ファンなどを用いて、ナビゲーション装置1の放熱構造を工夫されると、一層好ましい。
【0319】
また、第三実施例では、カードスロット部19内部に温度センサを設けるようにしたが、カードスロット部19内部に温度センサを設けずに、高温時間推定処理では、車両に搭載された外気温センサに基づいて各ステップを実行するようにしてもよい。
【0320】
この他、第一及び第二実施例では、読出カウンタCNを、各ブロック毎に設けたが、読出カウンタCNは、所定数のブロック単位で設けられてもよい。
また、以上には、現在日時の取得方法について詳しく言及しなかったが、周知のように、GPS衛星から送信されてくる信号に基づき、絶対時間を把握することが可能であるので、本発明を、ナビゲーション装置に適用する場合には、GPS受信機を通じて、現在日時の情報を取得すればよい。また、GPS受信機から取得した時刻情報に基づいて、定期的に、電子機器の内部時計を調整するようにし、この内部時計に基づいて、メモリカード19aに、データ書込日時を記録するようにしてもよい。
【0321】
この他、電子機器に時計機能を設けると共に、必要に応じ、ユーザ側で時刻を調整できるようにしてもよいし、車両が有する別の時計に基づいて、電子機器の内部時計が刻む時刻を調整できるようにしてもよい。その他、電子機器に通信機能を設け、外部ネットワーク経由で時刻情報を取得し、電子機器の内部時計が刻む時刻を調整できるようにしてもよい。
【図面の簡単な説明】
【0322】
【図1】ナビゲーション装置1の構成を表すブロック図である。
【図2】読取制御処理を通じたデータ取得態様を表す説明図(a)及び制御部25が実行する読出制御処理を表すフローチャート(b)である。
【図3】制御部25が実行する起動後処理を表すフローチャートである。
【図4】制御部25が実行するカード管理処理を表すフローチャートである。
【図5】制御部25が実行する再書込制御処理を表すフローチャートである。
【図6】制御部25が実行するエラー検出処理を表すフローチャートである。
【図7】制御部25が実行する再起動時処理を表すフローチャートである。
【図8】第二実施例の起動後処理を表すフローチャート(a)及び制御部25が実行する監視対象設定処理を表すフローチャート(b)である。
【図9】第二実施例の読出制御処理を表すフローチャートである
【図10】変形例の監視対象設定処理を表すフローチャート(a)及び変形例の読出制御処理を表すフローチャート(b)である。
【図11】制御部25が実行する高温時間推定処理を表すフローチャートである。
【図12】制御部25が実行するデータ監視修復処理を表すフローチャートである。
【図13】電源の接続態様を表す説明図(a)並びにアクセサリ電源及び常時電源の電圧変化の態様を表したタイムチャート(b)である。
【図14】第五実施例の再書込制御処理を表すフローチャートである。
【図15】制御部25が実行する再書込安全判定処理を表すフローチャート(a)及び再書込許可フラグの変化態様を表した説明図(b)である。
【図16】第五実施例のエラー検出処理を表すフローチャートである。
【図17】第五実施例の再起動時処理を表すフローチャートである。
【図18】第六実施例の起動後処理を表すフローチャートである。
【図19】第六実施例のカード管理処理を表すフローチャートである。
【符号の説明】
【0323】
1…ナビゲーション装置、11…位置検出器、13…操作スイッチ群、19…カードスロット部、19a…メモリカード、21…表示部、23…音声出力部、25…制御部、25a…CPU、25b…RAM、25c…NVRAM
【技術分野】
【0001】
本発明は、フラッシュメモリ等の電気的にデータ書換可能な不揮発性メモリから、データを読み出して、当該データに基づく処理を実行する電子機器に関する。
【背景技術】
【0002】
従来、電気的にデータ書換可能な不揮発性メモリとしては、フラッシュメモリが知られている。近年では、メモリセルを多値化して、大容量のフラッシュメモリを開発することに成功しており、フラッシュメモリの記憶容量も、ハードディスク装置の記憶容量と遜色がなくなってきている。
【0003】
このため、近年では、記録媒体として、従来採用されていたハードディスク装置に代えて、大容量の多値フラッシュメモリを採用して、パーソナルコンピュータや、カーナビゲーション装置等を構成することが、考えられている。
【0004】
カーナビゲーション装置等の振動の激しい環境下で使用される電子機器においては、ハードディスク装置に代えて、フラッシュメモリ等を採用すると、物理的なクラッシュがなくなるので、振動による故障を防止することができるといった利点がある。
【0005】
しかしながら、多値フラッシュメモリについては、二値フラッシュメモリやハードディスク装置等の他の記録媒体と比較して、データの記憶保持能力(リテンション)が低いため、長期に渡るデータ記憶保持に劣るといった問題がある。
【0006】
周知のように、フラッシュメモリは、高温に晒されると、リテンションが低下する性質を有する。また、フラッシュメモリにおいては、書込回数が増えると、ある回数を境に、急激にリテンションが低下する。この他、フラッシュメモリにおいては、データ読出回数が増えるにつれて、メモリセルが保持するデータが揮発する可能性が高くなるといった問題がある。
【0007】
多値フラッシュメモリは、従来の二値フラッシュメモリと比較して、このような問題が発生しやすいため、パーソナルコンピュータやカーナビゲーション装置等において、記録媒体に、多値フラッシュメモリを採用すると、データ揮発によるトラブルが発生しやすくなることが予想される。
【0008】
尚、このような問題の対処方法としては、従来、不揮発性メモリ(フラッシュメモリ等)が記憶するデータを、一旦読み出して、これを再書込することにより、不揮発性メモリが記憶するデータをリフレッシュする方法が知られている(特許文献1,2参照)。この技術を用いれば、データ揮発によるトラブルを抑えることができる。
【特許文献1】特開2005−78489号公報
【特許文献2】特開2006−301993号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかしながら、従来のリフレッシュ方法では、不揮発性メモリにメモリセルの状態を検知するための回路を設けて、リフレッシュの要否を判定するので、回路設置にコストがかかり、簡単且つ安価に、データの揮発を抑えることができないといった問題があった。
【0010】
この他、従来技術(特許文献2参照)では、外部環境によるリテンション低下の影響を抑えるために、外部環境を表す物理量(温度等)が閾値を超えた時点で、データのリフレッシュを行うようにしているが、このような手法では、例えば、高温時のデータ揮発を抑える場合、高温に晒された時間を考慮にいれず、温度が閾値を超えた時点でリフレッシュを行うことになるので、常時、適切なタイミング(必要十分なタイミング)で、リフレッシュを行うことができないといった問題があった。
【0011】
特に、フラッシュメモリでは、書込回数に応じてリテンションが低下するので、必要以上に、リフレッシュを行うと、不揮発性メモリ(フラッシュメモリ)の寿命が短くなる。
本発明は、こうした問題に鑑みなされたものであり、簡単且つ適切に、データ揮発を抑えることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0012】
かかる目的を達成するためになされた本発明の電子機器は、予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリ(フラッシュメモリ等)に接続されて、不揮発性メモリが記憶するデータに基づく処理を実行するものである。例えば、電子機器がカーナビゲーション装置等の地図表示装置である場合には、不揮発性メモリに記憶された地図データに基づき、現在位置周辺の地図を表す地図画面を表示するといった具合である。
【0013】
この電子機器は、不揮発性メモリが記憶するデータを一時記憶可能な記憶手段を備えると共に、不揮発性メモリが記憶するデータをリフレッシュするためのデータ更新手段を備える。即ち、データ更新手段は、不揮発性メモリが記憶するデータを、不揮発性メモリから読み出して記憶手段に記憶させ、当該記憶手段に記憶させたデータを、不揮発性メモリに再書込するデータ更新処理を実行することにより、不揮発性メモリが記憶するデータを更新する。
【0014】
また、本発明の電子機器は、データ更新処理の実行を制御する更新制御手段と、書込後経過時間推定手段を備え、更新制御手段は、書込後経過時間推定手段により推定された書込後経過時間が閾値を超える度、データ更新手段にデータ更新処理を実行させる。一方、書込後経過時間推定手段は、書込後経過時間として、不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの経過時間を、推定する。
【0015】
即ち、この電子機器では、不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの経過時間、が閾値を超えたと推定される度、不揮発性メモリが記憶するデータを、リフレッシュする。
【0016】
周知のように、不揮発性メモリが記憶するデータは、読出回数が増加したり、高温に晒された時間が長くなる程、揮発する可能性が高くなるが、これらの原因によるデータ揮発の発生率は、不揮発性メモリにデータが書き込まれた時点からの経過時間と相関がある。
【0017】
従って、本発明のように、データ書込後の経過時間を推定し、推定した経過時間に基づき、データ更新処理を実行するタイミングを制御すれば、不揮発性メモリに対してメモリセルの状態を検知するための回路を設けることなく、ソフトウェア的な手法により、適切なタイミングでデータ更新を行うことができる。即ち、簡単且つ適切に、不揮発性メモリでのデータ揮発を抑えることができる。
【0018】
尚、書込後経過時間推定手段は、データ更新手段により最後にデータ更新処理が実行された時点からの経過時間を、書込後経過時間として推定する構成にすることができる(請求項2)。
【0019】
例えば、データ更新処理を実行した日時を記憶しておき、その日時からの経過時間を、書込後経過時間として推定するといった具合である。このようにして、書込後経過時間を推定すれば、簡単な手順で、不揮発性メモリが記憶するデータを、長時間良好に保持することができる。
【0020】
また、書込後経過時間推定手段は、データ更新処理を実行した日時を自身にて記憶保持する構成にされてもよいが、不揮発性メモリに、その日時を記録する構成にされると一層好ましい。即ち、電子機器は、データ更新処理の実行時に、現在日時の情報を、データ書込日時の情報として、不揮発性メモリに書き込む構成にされるとよい。そして、書込後経過時間推定手段は、不揮発性メモリに記憶されたデータ書込日時からの経過時間を、書込後経過時間として推定する構成にされるとよい(請求項3)。
【0021】
この電子機器によれば、不揮発性メモリにてデータ書込日時の情報を管理するので、データ書込日時の情報を、不揮発性メモリに記憶されたリフレッシュ対象のデータと共に消失しないように管理することができ、データ書込日時の情報を別管理することで、データ書込日時の情報が消失して、不揮発性メモリに記憶されたデータをリフレッシュするタイミングが不明になるのを防止することができる。
【0022】
また、このように電子機器を構成すれば、出荷前の不揮発性メモリに対し、上記所定のデータを書き込む工程で、データ書込日時の情報も記録しておく程度で、不揮発性メモリへの初回データ書込時からの経過時間を、電子機器側で正確に把握できるようにすることができ、不揮発性メモリの出荷後、不揮発性メモリが消費者により購入され使用されるまでの期間に依らず、適切なタイミングで、初回のデータ更新処理を実行することができる。
【0023】
また、スロット部を介してメモリカードと接続され、メモリカードが内包する不揮発性メモリが記憶するデータに基づく処理を実行する電子機器に、上述の発明(請求項2)を適用する場合には、具体的に、書込後経過時間推定手段を、次のように構成するとよい。
【0024】
即ち、書込後経過時間推定手段は、データ更新手段により最後にデータ更新処理が実行された時点からの経過時間を、書込後経過時間として推定すると共に、メモリカードが内包する不揮発性メモリに対して過去にデータ更新処理が実行されていないとき、メモリカードがスロット部に最初に接続された時点からの経過時間を、書込後経過時間として推定する構成にされると一層好ましい(請求項4)。
【0025】
具体的に、不揮発性メモリにデータ書込日時を記録する発明(請求項3)に、この思想を適用する場合には、メモリカードがスロット部に最初に接続(装着)された時点で、メモリカードが内包する不揮発性メモリに、その時点での日時を、データ書込日時の情報として記録すればよい。
【0026】
このように電子機器を構成すれば、出荷前における初回データ書込時の日時が不明であっても、スロット部に新しく接続されたメモリカードに対し、必要なタイミングで、データ更新処理を実行することができる。
【0027】
但し、このようにして、書込後経過時間を推定する場合には、初回にデータ更新処理を実行するまで、書込後経過時間推定手段により推定される書込後経過時間と真の書込後経過時間との間にずれが生じる。このため、更新制御手段は、次のように構成されるとよい。
【0028】
即ち、更新制御手段は、不揮発性メモリに対して過去にデータ更新処理が実行されている場合、書込後経過時間推定手段により推定された書込後経過時間が、第一の閾値を超えた時点で、データ更新手段にデータ更新処理を実行させるが、不揮発性メモリに対して過去にデータ更新処理が実行されていない場合には、書込後経過時間推定手段により推定された書込後経過時間が、第一の閾値よりも小さい第二の閾値を超えた時点で、データ更新手段にデータ更新処理を実行させる構成にされるとよい(請求項5)。
【0029】
このように電子機器を構成すれば、初回にデータ更新処理を実行するまでの期間に生じうる上記「ずれ」を考慮して、早めに、データ更新処理を実行することができ、データ揮発を適切に抑えることができる。
【0030】
また、上記電子機器には、不揮発性メモリが所定温度以上の高温環境下におかれた時間を推定する高温時間推定手段を設け、更新制御手段は、高温時間推定手段により推定された時間が閾値を超える度、データ更新手段にデータ更新処理を実行させる構成にされるとよい(請求項6,7)。
【0031】
高温環境下においては、急激にリテンションが低下するので、不揮発性メモリが高温に晒された場合には、不揮発性メモリが記憶するデータをリフレッシュするのがよいが、不揮発性メモリが極短期間高温に晒された程度では、その事象がリテンション低下に与える影響は小さいので、不揮発性メモリが短期間高温に晒された程度で、データ更新処理を実行すると、データ更新処理の実行回数が不要に多くなり、不揮発性メモリの寿命を縮めることになる。
【0032】
特に、電子機器が車載機器である場合には、夏季に頻繁に不揮発性メモリが高温環境下におかれることになるので、不揮発性メモリが高温になる度、データ更新処理を実行していたのでは、データのリフレッシュを必要以上に実行することになり、不揮発性メモリの寿命が短くなる。
【0033】
一方、本発明のように、不揮発性メモリが所定温度以上の高温環境下におかれた時間を推定し、この推定時間に基づいて、データ更新処理の実行を制御するようにすれば、不要にデータ更新処理を実行しなくて済む。
【0034】
即ち、この発明によれば、適切なタイミングでデータ更新処理を実行することができ、不揮発性メモリの寿命が短くならないようにしつつ、不揮発性メモリにおいてデータが揮発するのを抑えることができる。また、この発明によれば、ソフトウェア的な手法により、適切なタイミングでデータ更新を行うことができるので、簡単且つ適切に、不揮発性メモリでのデータ揮発を抑えることができるといった利点がある。
【0035】
この他、不揮発性メモリにおけるリテンションは、読出回数が増えることでも低下するので、上記電子機器は、次のように構成されると一層好ましい。
即ち、上記電子機器には、不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが不揮発性メモリから読み出された回数(読出回数)を計測する読出回数計測手段を設け、更新制御手段は、読出回数計測手段の計測結果に基づき、各単位データについて、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定し、データ更新手段にデータ更新処理を実行させる構成にされるとよい。
【0036】
また、これに合わせて、データ更新手段は、更新制御手段から処理対象データが指定されると、データ更新処理として、不揮発性メモリが記憶するデータの内、更新制御手段から指定された処理対象データを選択的に不揮発性メモリから読み出して記憶手段に記憶させ、当該記憶手段に記憶させたデータを、不揮発性メモリに再書込する処理を実行する構成にされるとよい(請求項8,9)。
【0037】
不揮発性メモリが記憶する各メモリセルのデータの読出回数にばらつきがある場合には、読出回数が多いメモリセルのデータが、他のメモリセルのデータに対して揮発しやすくなるため、不揮発性メモリが記憶するデータを所定時間毎にリフレッシュする程度では、読出回数の多いデータに合わせて、冗長にデータ更新を行わないと、読出回数の多いメモリセルで、データ揮発が生じる可能性が高くなる。
【0038】
本発明の電子機器によれば、読出回数に応じて、単位データ毎に、適切なタイミングで、データ更新処理を実行することができるので、読出回数にばらつきがある場合でも、不揮発性メモリ内のデータが揮発するのを極力防止することができる。そして、この発明によれば、ソフトウェア的な手法により、適切なタイミングでデータ更新を行うことができるので、簡単且つ適切に、不揮発性メモリでのデータ揮発を抑えることができる。
【0039】
また、更新制御手段は、不揮発性メモリが記憶するデータを構成する単位データ群の内、予め設定された監視対象の単位データに限って、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定して、データ更新手段にデータ更新処理を実行させる構成にされるとよい。換言すれば、更新制御手段は、監視対象に設定されていない単位データについては、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定し、データ更新手段にデータ更新処理を実行させる処理を実行しない構成にされるとよい(請求項10)。
【0040】
このように、一部のデータに限定して読出回数を計測してデータ更新処理を実行するように、電子機器を構成すれば、全データについて読出回数を計測する場合よりも、処理負荷が小さくて済み、電子機器を安価に製造することができる。
【0041】
特に、書込後経過時間に基づきデータ更新処理を実行する電子機器に、この思想を採用する場合には、データ書込後、所定時間が経過した時点で、読出回数に依らずに、データ更新処理を実行することになるので、読出頻度の低いデータについて、読出回数を計測しても、読出回数が閾値を超える前に上記所定時間が経過することになり、無駄である。従って、本発明(請求項10)のように電子機器を構成すれば、効率的に、データ揮発を抑えることができる。
【0042】
尚、電子機器が、不揮発性メモリに記憶された地図データに基づき、現在位置周辺の地図を表す地図画面を表示する地図表示装置であって、ユーザインタフェースを通じて登録された地点の情報を、地図画面を通じて案内する機能を有する地図表示装置である場合には、上記ユーザインタフェースを通じて登録された地点の情報に基づき、監視対象のデータを設定する監視対象設定手段を、上記電子機器に設けるとよい(請求項11)。
【0043】
ユーザにより地図表示装置に登録される地点周辺は、ユーザが訪問する可能性が高い地域であるので、必然的に、当該登録地点周辺の地図データも、地図画面表示のために、不揮発性メモリから読み出される可能性が高くなる。従って、この登録地点の情報に基づき、監視対象を設定するように、電子機器を構成すれば、ユーザの使用状況に合わせて、監視対象を設定することができ、効率的に、データ揮発を抑えることができる。
【0044】
また、上述の電子機器には、読出指令が入力されると、当該読出指令にて指定されたデータを読み出し、当該読み出したデータを、読出指令元に出力する読出制御手段と、不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが読出制御手段により読み出された回数である総読出回数を計測する総読出回数計測手段と、総読出回数計測手段の計測結果に基づき、不揮発性メモリが記憶するデータの内、一部のデータを、記憶手段の特定領域に記憶保持させるコピーデータ生成手段と、を設けるとよい。そして、読出制御手段は、次のように構成されるとよい。
【0045】
即ち、読出制御手段は、読出指令にて指定されたデータが、コピーデータ生成手段の動作により記憶手段の特定領域に記憶保持されている場合、記憶手段の特定領域から読出指令にて指定されたデータを読み出し、読出指令にて指定されたデータが、コピーデータ生成手段の動作により記憶手段の特定領域に記憶保持されていない場合には、不揮発性メモリから読出指令にて指定されたデータを読み出す構成にされるとよい(請求項12,13)。具体的に、コピーデータ生成手段は、読出回数の多いデータを、記憶手段の特定領域に記憶保持させる構成にすることができる。
【0046】
このように構成された電子機器によれば、読出回数の多いデータを、不揮発性メモリから読み出さずに済むので、読出回数の増加によってリテンション低下し、不揮発性メモリ内の該当データが揮発してしまうのを極力抑えることができる。従って、この発明によれば、ソフトウェア的な手法で、簡単且つ適切に、不揮発性メモリでのデータ揮発を抑えることができる。
【0047】
この他、不揮発性メモリには、特定種のデータについて、同一データを、複数個、予め書き込むことで、重要データ等については、不揮発性メモリにデータを多重持ちするようにするとよい。そして、電子機器は、次のように構成されるとよい。即ち、電子機器は、データ修復手段により、複数個ある特定種のデータ内の一つに異常が生じると、複数個ある特定種のデータの内、異常が生じていない同一のデータに基づき、異常が生じた特定種のデータを修復する構成にされるとよい(請求項14)。
【0048】
このように電子機器を構成すれば、データ揮発等を原因として、重要データ等に、万が一、異常が生じた場合でも、当該異常を解消することができ、データ揮発に強い耐久性に優れた電子機器を提供することができる。
【0049】
また、上述した電子機器を車両に搭載して使用する場合には、バッテリを電子機器に接続して、電子機器を作動させることになるが、エンジンを始動させるためにセルモータを回転させるときなどには、電源に急激な電圧降下が生じて、電子機器が突然シャットダウンされる可能性がある。また、車両の停車等には、ユーザにより車両からバッテリが取り外されて、電子機器が突然シャットダウンされる可能性がある。そして、電子機器が突然シャットダウンされる可能性があるときに、不揮発性メモリが記憶するデータを更新しようとすると、不揮発性メモリからデータが消失してしまう可能性がある。
【0050】
周知のように、フラッシュメモリ等の不揮発性メモリが記憶するデータを更新する場合には、書込先の領域を一旦消去しなければ、その領域に新たにデータを書き込むことができないため、一時的に、不揮発性メモリから更新対象のデータが消去された状態になる。従って、このときに、電子機器が突然シャットダウンされると、更新対象のデータが失われてしまうことになるのである。
【0051】
勿論、データ更新処理の実行に際して、更新対象のデータを別の不揮発性メモリにバックアップしておけば、このようなデータ消失の問題を解決することができる。しかしながら、更新対象のデータを別の不揮発性メモリにバックアップしておくためには、当該別の不揮発性メモリを用意する必要があるし、この不揮発性メモリに十分な空き領域を確保しておく必要があり、電子機器の製造コストが高くなる。
【0052】
従って、データ更新処理については、電子機器が突然シャットダウンされる可能性の低いときにのみ実行されるようにするとよい。
即ち、車両に搭載されて使用される電子機器には、自車両の運転状態を表す情報を取得する車両情報取得手段と、車両情報取得手段が取得した自車両の運転状態を表す情報に基づき、自車両の運転状態が所定条件を満足する期間、データ更新手段によるデータ更新処理の実行を禁止する禁止手段と、を設けるのが好ましい。
【0053】
尚、自車両の運転状態を表す情報としては、エンジンの始動有無を表す情報や、自車両の走行速度を表す情報等を挙げることができる(請求項15,請求項16)。
このように電子機器を構成すれば、電圧降下が生じる可能性があるエンジンが始動される前の期間や、バッテリが取り外される可能性のある自車両が走行していない期間(走行速度ゼロの期間)に、データ更新処理が実行されるのを避けることができて、突然のシャットダウンを原因として、不揮発性メモリ内のデータが失われるのを回避することができる。
【0054】
また、具体的に、禁止手段は、車両情報取得手段が取得した自車両の走行速度を表す情報に基づき、自車両の運転状態が所定条件を満足する期間として、自車両の走行速度が閾値未満である期間、データ更新手段によるデータ更新処理の実行を禁止する構成にすることができる(請求項17)。
【0055】
車両が停止等しているときには、バッテリが取り外される可能性があるし、エンジンが始動していないときには、セルモータの回転による電圧降下も生じうる。一方、エンジンが始動して車両がある程度の速度で走行し始めれば、電源の電圧降下が起こることはないし、バッテリの取り外しも起こらない。
【0056】
従って、自車両の走行速度が閾値未満である期間、データ更新手段によるデータ更新処理の実行を禁止するようにすれば、突然のシャットダウンによるデータ消失のリスクを回避することができて、良好にデータ更新を行うことができる。
【0057】
また、車載用の電子機器においては、走行距離に比例して読出回数が増える特性があるため、不揮発性メモリが記憶するデータをリフレッシュしなければ、当該電子機器が搭載された車両の走行距離が長くなる程、データ揮発の発生率が高くなる。
【0058】
従って、車載用の電子機器においては、不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの自車両の走行距離を、推定する走行距離推定手段を設けて、走行距離推定手段により推定された走行距離が閾値を超える度、データ更新手段にデータ更新処理を実行させるように更新制御手段を構成してもよい(請求項18及び請求項19)。
【0059】
走行距離を計測するためのセンサ類は、もともと車両に取り付けられているので、このように、走行距離に基づいて、データ更新処理を実行するタイミングを制御するようにしても、ソフトウェア的な手法により、適切なタイミングでデータ更新を行うことができ、簡単且つ適切に、不揮発性メモリでのデータ揮発を抑えることができる。
【0060】
また、データ更新処理を実行するタイミングを、走行距離及び書込後経過時間の両者に基づいて制御するように電子機器を構成すれば、書込後経過時間の閾値を長めに設定することで、車両をよく利用するユーザ、そうでないユーザの夫々の環境下においても、適切に、不揮発性メモリ内のデータをリフレッシュすることができる(請求項18)。
【0061】
また、データ揮発の発生率は、電子機器の動作時間(電子機器がオンにされている時間)が長くなる程、高くなるので、上記電子機器においては、不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの当該電子機器の動作時間を推定する動作時間推定手段を設けて、動作時間推定手段により推定された動作時間が閾値を超える度、データ更新手段にデータ更新処理を実行させるように更新制御手段を構成してもよい(請求項20及び請求項21)。
【0062】
電子機器の動作時間に基づいて、データ更新処理を実行するタイミングを制御すれば、簡単且つ適切に、不揮発性メモリでのデータ揮発を抑えることができる。
また、データ更新処理を実行するタイミングを、動作時間及び書込後経過時間の両者に基づいて制御するように電子機器を構成すれば、書込後経過時間の閾値を長めに設定することで、車両をよく利用するユーザ、そうでないユーザの夫々の環境下においても、適切に、不揮発性メモリ内のデータをリフレッシュすることができる(請求項20)。
【0063】
また、上記記憶手段以外の各手段としての機能は、プログラム(請求項22〜請求項27)により、コンピュータに実現させることができるので、上述の電子機器は、この種のプログラムと、コンピュータとを搭載し、プログラムにより、上記各手段としての機能を実現する構成にされると好ましい。
【発明を実施するための最良の形態】
【0064】
以下、本発明の実施例について、図面と共に説明する。
【実施例1】
【0065】
図1は、本発明が適用された第一実施例のカーナビゲーション装置1の構成を表すブロック図である。本実施例のナビゲーション装置1は、車両(自動車等)に搭載されて、使用される。
【0066】
このナビゲーション装置1は、図1に示すように、位置検出器11と、操作スイッチ群13と、リモートコントロール端末(以下、リモコンと称す)15aと、リモコン15aからの送信信号を検知するリモコンセンサ15bと、地図データを記憶するメモリカード19aが接続(装着)されるカードスロット部19と、画面上に各種画像を表示するための表示部21と、各種音声を出力するための音声出力部23と、装置内各部を統括制御する制御部25と、を備える。
【0067】
位置検出器11は、GPS(Global Positioning System)用の人工衛星からの送信電波を、GPSアンテナを介して受信し、現在地点の緯度・経度を検出するGPS受信機11aと、ナビゲーション装置1が搭載された車両に加えられる回転運動の大きさを検出するジャイロスコープ11bと、車両の走行距離を検出する距離センサ11cと、地磁気から車両の進行方位を検出する地磁気センサ11dとを備え、これら各部11a〜11dの検出信号を、制御部25に入力する。
【0068】
一方、操作スイッチ群13は、表示部21の周囲に設けられたメカニカルなキースイッチ、及び、表示部21と一体に構成されたタッチパネルから構成されており、ユーザが操作可能なユーザインタフェースとして機能する。
【0069】
また、表示部21は、液晶モニタで構成され、表示部21の画面上には、制御部25の制御により、現在地点周辺の地図や、ユーザにより指定された目的地までの経路などが表示される。この他、音声出力部23は、スピーカやアンプを備え、制御部25に制御されて、目的地までの経路に係るガイド音声等を出力する。
【0070】
その他、カードスロット部19は、メモリカード19aと電気的に接続されて、制御部25からメモリカード19aへのデータ書込及びメモリカード19aから制御部25へのデータ読出を実現するものであり、メモリカード19aを着脱自在に接続可能な構成を有する。具体的に、メモリカード19aには、電気的にデータ書換可能な不揮発性メモリとしてのNAND型フラッシュメモリが内蔵されており、カードスロット部19は、制御部25からの指令に従って、制御部25からフラッシュメモリへのデータ書込及びフラッシュメモリから制御部25へのデータ読出を実現する。
【0071】
また、ナビゲーション装置1に装着されるメモリカード19aには、予め当該装置がナビゲーション装置1として機能するのに必要なデータ(プログラムも含む)が記録されている。即ち、ナビゲーション装置1は、当該ナビゲーション装置1と同時又は別個に販売されるメモリカード19aが、カードスロット部19に接続されると、メモリカード19aが記憶するデータに基づいて、ナビゲーション装置1としての機能を実現する。
【0072】
具体的に、このメモリカード19aには、制御部25が実行するプログラムの他、道路の接続関係や施設・地形等の情報を内包する地図データが、予め出荷前に記録される。詳述すると、メモリカード19aに記録される地図データは、地図データ全体の構造及び詳細データの参照先を表す地図管理データ、道路形状や背景構造(地形)等を表す道路・背景データ、道路の接続関係を表す道路ネットワークデータ、施設の位置・名称等を表す施設データ、及び、経路案内や操作説明に用いる音声データ等を備える。
【0073】
この他、制御部25は、各種演算処理を実行するCPU25a、CPU25aによる処理実行時に作業領域として使用されるRAM25b、設定情報などを記憶するNVRAM25c、及び、ブートプログラム等の基本プログラムを記憶するROM(図示せず)を備えた構成にされている。この制御部25は、CPU25aにて、ROMやメモリカード19aが記憶するプログラムに従って、各種処理を実行することにより、経路案内等、ナビゲーション装置1が果たすべき機能を実現する。
【0074】
尚、制御部25が備えるNVRAM25cは、メモリカード19aとは異なり、少ない記憶容量で、その用途を果たすことができるため、このNVRAM25cには、データ記憶保持能力の高いメモリを用いる。例えば、NVRAM25cには、NOR型のフラッシュメモリを用いることができる。
【0075】
この他、制御部25が備えるRAM25bは、一時記憶手段であるが、ナビゲーション装置1のオフ時にデータが揮発しないように、ナビゲーション装置1のオン/オフに拘わらず、常時、車両に搭載されたバッテリからの電源供給を受けて、データを記憶保持する構成にされている。
【0076】
即ち、本実施例のナビゲーション装置1におけるRAM25bは、バッテリが車両から取り外されるか、バッテリが空になるなどして、バッテリからの電源供給が途絶えない限り、不揮発性メモリと同様に長期に渡って、データ保持可能にされている。
【0077】
制御部25は、メモリカード19aがカードスロット部19に接続された時点で、メモリカード19aに記憶されたメモリカード19a内のデータ構造を表すデータ管理情報(FAT等)及び地図管理データを、メモリカード19aから読み出して、これを、上記RAM25bの管理情報記憶領域に保存する。そして、以後、メモリカード19aからデータを読み出す際には、RAM25bに記憶されているデータ管理情報及び地図管理データに従って、読み出すべきデータが記憶されているメモリカード19a上の位置を特定する。
【0078】
また、制御部25は、メモリカード19aがカードスロット部19に接続された時点で、メモリカード19aに記憶されたプログラムを、メモリカード19aから読み出して、これを、RAM25bのプログラム記憶領域に保存する。そして、以後、RAM25bに保存されたプログラムに基づき、各種処理を実行する。
【0079】
具体的に、制御部25は、上記プログラムに基づいて、位置検出器11の検出信号により特定される自車位置周辺の地図データを、メモリカード19aから読み出し、読み出した地図データに基づき、自車位置周辺の地図画面を表示部21に表示する地図表示処理を実行する。以下では、この地図表示処理を実現するタスクを、「地図表示処理タスク」と称する。
【0080】
また、制御部25は、上記プログラムに基づき、現在地から、ユーザインタフェースを通じて指定された目的地までの経路を、メモリカード19aが記憶する地図データを用いて探索し、探索の結果得られた目的地までの経路を、表示部21や音声出力部23を通じて、ユーザに案内する経路案内処理を実行する。以下では、この経路案内処理を実現するタスクを、「経路案内処理タスク」と称する。
【0081】
例えば、制御部25は、表示部21に表示された自車周辺の地図画面上に、目的地までの経路を、太線等で重ねて表示すると共に、車両の旋回を伴う交差点付近で、車両の旋回方向を音声出力部23を通じて音声案内する。
【0082】
この他、制御部25は、上記プログラムに基づいて、ユーザインタフェースを通じた地点登録の操作を受け付け、ユーザにより指定された地点の情報を、NVRAM25cに登録し、登録地点(自宅等)に対応する地図画面上の位置に、アイコンを表示して、登録地点を、ユーザに向けて案内する登録地点表示処理を実行する。
【0083】
また、ナビゲーション装置1において、制御部25が実行する各種プログラムは、基本的に、図2に示す読出制御処理を実現するプログラムを呼び出し、この読出制御処理を通じて、メモリカード19aに記憶されたプログラム以外のデータを取得する構成にされている。例えば、地図表示処理や経路案内処理を実現するプログラムは、図2(b)に示す読出制御処理を通じ、必要な地図データを取得する構成にされている。
【0084】
従って、以下では、まず、データ取得時に制御部25が実行する読出制御処理について、図2を用いて説明する。図2(a)は、読取制御処理を通じたデータの取得態様を示した説明図であり、図2(b)は、経路案内処理タスクや地図表示処理タスク等のタスクから読出指令が入力されると、制御部25が実行する読出制御処理を表すフローチャートである。
【0085】
読出指令が入力されて読出制御処理を開始すると、制御部25は、まず、読出指令により指定された読出対象のデータを、RAM25bの特定領域内で探索し、特定領域に読出対象のデータが存在する場合には、これをRAM25bの特定領域から読み出す(S110)。この特定領域は、メモリカード19aが記憶するデータの内、読出回数の多いデータを、一時的に記憶しておくための領域であり、RAM25bにおいて、他の作業領域(管理情報記憶領域及びプログラム記憶領域も含む)とは別に、独立して固定サイズで設けられている。この特定領域には、後述するS190の処理により、読出回数の多いデータが書き込まれる。
【0086】
制御部25は、読出対象のデータをRAM25bの特定領域から読み出すことに成功した場合(S120でYes)、RAM25bから読み出した上記読出対象のデータを、読出指令元のタスクに出力する(渡す)処理を行う(S130)。また、この処理を終えると、S140に移行し、読み出したデータに対応するブロックの読出カウンタCNを、1カウントアップする(CN←CN+1)。
【0087】
ここでいうブロックとは、フラッシュメモリを構成する周知のブロックのことである。また、読出カウンタCNとは、対応するブロックに記憶されたデータの読出回数を表すパラメータのことである。本実施例においては、メモリカード19a内の各ブロックに対して、読出カウンタCNを割り当てており、各ブロックの読出カウンタCNを、NVRAM25cに記憶している。
【0088】
即ち、本実施例では、メモリカード19aに対し、ブロック単位でしかデータを読み書きすることができないので、1ブロックを、データ読出及び書込可能なメモリアクセス単位として取り扱い、フラッシュメモリから読み出されるデータの読出回数を、ブロック毎にカウントする。
【0089】
この読出カウンタCNは、初回に、NVRAM25cからRAM25bに読み出された後、当該読出制御処理により該当するデータの読出がある度、カウントアップされる。そして、カウントアップ後の値は、定期的に、NVRAM25cに書き込まれて、NVRAM25cが記憶する読出カウンタCNに反映される。
【0090】
S140で読出カウンタCNを更新(カウントアップ)すると、制御部25は、当該読出制御処理を終了する。
一方、制御部25は、RAM25bの特定領域に、読出対象のデータが記憶されておらず、RAM25bからのデータ読出に失敗すると(S120でNo)、S150に移行する。そして、カードスロット部19を通じメモリカード19aにアクセスし、メモリカード19aから読出対象のデータを読み出す。そして、メモリカード19aから読み出した上記読出対象のデータを、読出指令元のタスクに出力する処理を行う(S160)。
【0091】
また、S160の処理を終えると、制御部25は、上記読み出したデータに対応するブロックの読出カウンタCNを1カウントアップして更新する(S170)。即ち、読み出したデータに対応するブロックに割り当てられた読出カウンタCNの値を1増加させる。
【0092】
その後、制御部25は、更新後の読出カウンタCN(上記読み出したデータに対応するブロックの読出カウンタCN)が、予め定められた閾値を超えたか否かを判断する(S180)。そして、読出カウンタCNが閾値以下であると判断すると(S180でNo)、S190の処理を実行することなく、当該読出制御処理を終了する。
【0093】
一方、制御部25は、読出カウンタCNが閾値を超えたと判断すると(S180でYes)、S190に移行して、閾値を超えた上記読出カウンタCNに対応するブロックのデータ(即ち、S150でメモリカード19aから読み出したデータ)を、RAM25bの上記特定領域に書き込む。
【0094】
但し、特定領域は、上述したように、固定サイズの領域として予め確保されており、この特定領域には、所定ブロック数分のデータしか記憶できない。このため、S190でのデータ書込時に、特定領域に空き領域がない場合には、過去に書き込まれたデータを特定領域から消去し、今回読み出したデータを、RAM25bの上記特定領域に書き込む。
【0095】
即ち、制御部25は、読出回数が閾値以上のブロックのデータをメモリカード19aから読み出す度、特定領域に書き込まれたデータを書込の古い順に消去して、新しく読み出したブロックのデータを特定領域に登録することにより、最近、読出のあったブロックのデータから、所定ブロック数分のデータを、RAM25bに記憶保持する。
【0096】
また、S190での処理を終えると、制御部25は、当該読出制御処理を終了する。このようにして、制御部25は、読出回数が多いブロックのデータを、RAM25bに記憶保持して、メモリカード19aからのデータ読出回数を抑え、読出回数が増加することにより、メモリカード19a内のデータが揮発するのを防止する。
【0097】
また、このナビゲーション装置1では、メモリカード19aに書き込まれた地図データ等が時間経過と共に揮発するのを防止するため、これらのデータがメモリカード19aに書き込まれた日時からの経過時間を推定し、経過時間が閾値を超えた時点で、メモリカード19a全体を、リフレッシュする。
【0098】
続いて、このリフレッシュ動作を実現するために、制御部25が実行する処理について、図3〜図7を用いて説明する。図3は、アクセサリ(ACC)スイッチがオンにされて、ナビゲーション装置1がオンにされた直後に、制御部25が実行する起動後処理を表すフローチャートである。但し、制御部25は、ナビゲーション装置1がオンにされた時点で、メモリカード19aがカードスロット部19に接続されていない場合、カードスロット部19にメモリカード19aが接続された時点で、当該起動後処理を開始する。
【0099】
図3に示す起動後処理を開始すると、制御部25は、まず、カードスロット部19に接続されているメモリカード19aがカードスロット部19に初めて接続されたものであるか否かを判断する(S210)。尚、本実施例では、S230にて、初めて接続されたメモリカード19aの所定領域に、データ書込日時の情報を記録する。従って、S210では、メモリカード19aの所定領域にデータ書込日時の情報が記録されているか否かを判断することにより、接続されたメモリカード19aがカードスロット部19に初めて接続されたものであるか否かを判断する。
【0100】
そして、初めて接続されたメモリカード19aであると判断すると(S210でYes)、制御部25は、上述したように、メモリカード19aの所定領域に、現在日時を、データ書込日時の情報として記録する(S230)。同時に、メモリカード19aの所定領域に、未更新フラグの情報として、値「1」を記録して、未更新フラグをセット状態にする。尚、未更新フラグは、メモリカード19aが最初に接続されてから、メモリカード19aに対し最初にリフレッシュ動作がなされるまでの期間、セット状態にされ、その後、リセット状態(値「0」)にされるものである(詳細後述)。
【0101】
また、このようにしてS230での処理を終えると、制御部25は、図4に示すカード管理処理の実行を開始し(S250)、その後、当該起動後処理を終了する。詳しくは後述するが、カード書込処理では、未更新フラグがリセット状態のとき、メモリカード19aに記録されたデータ書込日時からの経過時間が、閾値T1(例えば、1年)を越えた時点で、メモリカード19aに対するリフレッシュ動作を実行する。一方、未更新フラグがセット状態のとき、メモリカード19aに記録されたデータ書込日時からの経過時間が、上記閾値T1よりも短い閾値T2(例えば1月)を超えた時点で、メモリカード19aに対するリフレッシュ動作を実行する。未更新フラグは、このような処理の切替のために用いられるものである。
【0102】
また、制御部25は、カードスロット部19に接続されたメモリカード19aが初めて接続されたメモリカード19aではないと判断すると(S210でNo)、S240に移行し、図7に示す再起動時処理を実行する。
【0103】
詳しくは後述するが、この再起動時処理では、メモリカード19aに対するリフレッシュ動作が何らかの原因で中断されているとき、そのリフレッシュ動作を再開する動作を行う。この他、制御部25は、リフレッシュ動作が中断されている状態にないとき、何もせずに再起動時処理を終了する。
【0104】
このようにして、S240における再起動時処理を終えると、制御部25は、直前の再起動時処理にてメモリカード19aに対するリフレッシュ動作が完了したか否か(具体的には、S690又はS645でYesと判断して再起動時処理が終了したか否か)を判断し(S243)、リフレッシュ動作が完了したと判断すると(S243でYes)、メモリカード19aの所定領域に記憶されているデータ書込日時を、現在日時に更新する(S247)。その後、S250に移行して、図4に示すカード管理処理の実行を開始し、当該起動後処理を終了する。
【0105】
一方、再起動時処理にて、メモリカード19aに対するリフレッシュ動作が完了していない場合(即ち、S610でNoと判断するか、S625又はS675でYesと判断して、再起動時処理が終了している場合)には(S243でNo)、S247の処理を実行することなく、S250に移行する。そして、図4に示すカード管理処理の実行を開始し(S250)、当該起動後処理を終了する。但し、S625又はS675でYesと判断した場合には、S250の処理を実行することなく、当該起動後処理を終了し、ナビゲーション装置1をオフにする。
【0106】
続いて、制御部25が、S250で実行を開始するカード管理処理について説明する。図4は、制御部25が実行するカード管理処理を表すフローチャートである。
このカード管理処理を開始すると、制御部25は、カードスロット部19に接続されたメモリカード19aの所定領域に記録されているデータ書込日時の情報に基づき、当該データ書込日時からの経過時間を算出する(S310)。更に、メモリカード19aが記憶する上記未更新フラグを参照し、未更新フラグがリセット状態にあるか否かを判断する(S320)。そして、未更新フラグがリセット状態にあると判断すると(S320でYes)、S330に移行する。
【0107】
また、S330では、S310で算出された経過時間が、予め定められた閾値T1(例えば1年)を超えているか否かを判断し、経過時間が閾値T1を超えていないと判断すると(S330でNo)、S310に移行する。このようにして、制御部25は、未更新フラグがリセット状態にある場合、経過時間が閾値T1を越えるまで待機する。
【0108】
そして、経過時間が閾値T1を超えていると判断すると(S330でYes)、S340に移行し、メモリカード19aの全ブロックを、リフレッシュする対象である再書込領域に設定し、図5に示す再書込制御処理を実行する。これにより、メモリカード19a内のデータ全体をリフレッシュする(詳細後述)。そして、全ブロックの再書込処理が終了することで再書込制御処理が終了すると、メモリカード19aが記憶するデータ書込日時を、現在日時に更新し(S350)、当該カード管理処理を終了する。
【0109】
一方、未更新フラグがセット状態にあると判断すると(S320でNo)、制御部25は、S325に移行し、S310で算出された経過時間が、閾値T2(例えば1月)を超えているか否かを判断し、経過時間が閾値T2を超えていないと判断すると(S325でNo)、S310に移行する。このようにして、制御部25は、未更新フラグがセット状態にある場合、経過時間が閾値T2を越えるまで待機する。
【0110】
そして、経過時間が閾値T2を超えていると判断すると(S325でYes)、S340に移行し、上述したように、メモリカード19aの全ブロックを再書込領域に設定して、再書込制御処理を実行する。これにより、メモリカード19a内のデータ全体をリフレッシュする。また、全ブロックの再書込処理が終了することでS340の処理を終えると、メモリカード19aが記憶するデータ書込日時を、現在日時に更新すると共に、メモリカード19aが記憶するセット状態の未更新フラグをリセット状態に更新する(S350)。その後、当該カード管理処理を終了する。
【0111】
続いて、S340で制御部25が実行する再書込制御処理について説明する。図5は、制御部25が実行する再書込制御処理を表すフローチャートである。上述のリフレッシュ動作は、この再書込制御処理により実現される。
【0112】
再書込制御処理を開始すると、制御部25は、再書込制御処理の実行時に設定された再書込領域の情報に基づき、再書込領域内の先頭ブロックを、処理対象ブロックとして設定する(S410)、その後、後続の処理(S420以降)を実行する。
【0113】
即ち、S410で処理対象ブロックを設定すると、制御部25は、S420に移行し、処理対象ブロックに記憶されたデータを、メモリカード19aから読み出し、読み出したデータを、RAM25bに一時記憶する。尚、ここでの読み出しは、上記読出制御処理を介さずに行うものとする。また、S420では、RAM25bの特定領域とは独立した作業領域に、上記読み出したデータを書き込んで、このデータを、RAM25bに一時記憶する。
【0114】
また、この処理を終えると、制御部25は、処理対象ブロックのデータがトラブル等で消失してしまうのを防止するため、この処理対象ブロックのデータを、NVRAM25cにバックアップ保存する。同時に、上記トラブルに備えて、再書込制御処理の進み具合を表す再書込進捗情報をNVRAM25cに記録する(S430)。例えば、再書込制御処理の実行時に設定された再書込領域の情報及び再書込処理が完了したブロックの情報を記録する。
【0115】
そして、S430での処理を終えると、制御部25は、RAM25bに読み出した上記処理対象ブロックのデータを、RAM25bからメモリカード19aに再書込する処理(再書込処理)を開始して(S440)、メモリカード19aが記憶する処理対象ブロックのデータをリフレッシュする。この動作により、メモリカード19aが記憶する処理対象ブロックのデータは更新され、メモリセルにおいて時間経過と共に低下していた電位は、正常な電位に回復する。
【0116】
尚、制御部25は、この再書込処理を開始した後、当該再書込処理が完了するまでの期間、エラー検出処理を並行して実行する(S450)。図6は、制御部25が実行するエラー検出処理を表すフローチャートである。
【0117】
エラー検出処理を開始すると、制御部25は、車両のACCスイッチがオフにされることにより、ナビゲーション装置1に対しオフ操作がなされたか否かを判断し(S510)、ナビゲーション装置1に対してオフ操作がなされたと判断すると(S510でYes)、S520に移行し、ナビゲーション装置1に対するオフ操作がなされていないと判断すると(S510でNo)、S560に移行する。
【0118】
S520に移行すると、制御部25は、現在再書込処理中の処理対象ブロックについての当該再書込処理が全て終了するまで待機し、再書込処理が全て終了すると(S520でYes)、NVRAM25cにバックアップ保存されている当該処理対象ブロックのデータを消去する(S530)。同時に、NVRAM25cに記憶されている再書込進捗情報を更新する(S540)。具体的に、S540では、再書込進捗情報が示す再書込処理が完了したブロックの情報を、現状況に合わせて更新すると共に、中断原因を表す情報として、オフ操作による中断の旨の情報を、再書込進捗情報に付加する。
【0119】
また、S540での処理を終えると、制御部25は、「中断要」と判定して(S550)、当該エラー検出処理を終了する。
一方、S560に移行すると、制御部25は、カードスロット部19からメモリカード19aが抜かれたか否かを判断し、カードスロット部19からメモリカード19aが抜かれていなければ(S560でNo)、S570〜S597の処理を実行することなく、当該エラー検出処理を終了する。
【0120】
これに対し、カードスロット部19からメモリカード19aが抜かれていると判断すると(S560でYes)、制御部25は、S570に移行して、表示部21に、メモリカード19aが接続されていない旨のメッセージを表示し、ユーザに対し、メモリカード19aのカードスロット部19への接続を促す。
【0121】
その後、制御部25は、メモリカード19aがカードスロット部19に接続されたか否かを判断し(S580)、メモリカード19aがカードスロット部19に接続されていなければ(S580でNo)、ナビゲーション装置1に対するオフ操作がなされたか否かを判断し(S585)、ナビゲーション装置1に対するオフ操作がなされていなければ(S585でNo)、S580に移行する。このようにして、制御部25は、メモリカード19aがカードスロット部19に接続されるか、ナビゲーション装置1に対してオフ操作がなされるまで待機する。
【0122】
そして、ナビゲーション装置1に対してオフ操作がなされると(S585でYes)、NVRAM25c内の再書込進捗情報を更新し(S595)、「中断要」と判定した後(S597)、当該エラー検出処理を終了する。具体的にS595では、再書込進捗情報が示す再書込処理が完了したブロックの情報を、現状況に合わせて更新すると共に、中断原因を表す情報として、メモリカードの抜き出しによる中断の旨の情報を、再書込進捗情報に付加する。その後、「中断要」と判定し(S597)、エラー検出処理を終了する。
【0123】
この他、制御部25は、カードスロット部19にメモリカード19aが接続された場合(S580でYes)、カードスロット部19に接続されたメモリカード19aが前回と同じカードであるか否かを判断する(S590)。
【0124】
詳述すると、S590では、メモリカード19aに予め記録された個体番号に基づき、カードスロット部19に接続されたメモリカード19aが前回、即ち、最後にカードスロット部19に接続されたメモリカード19aと同じカードであるか否かを判断する。
【0125】
そして、今回接続されたメモリカード19aが前回と同じカードであると判断すると(S590でYes)、再書込処理を、メモリカード19aの抜き出しにより中断された位置から開始し(S593)、その後、当該エラー検出処理を終了する。
【0126】
これに対し、今回接続されたメモリカード19aが前回と同じカードではないと判断すると(S590でNo)、制御部25は、S595に移行して、NVRAM25c内の再書込進捗情報を更新し、その後、「中断要」判定して(S597)、当該エラー検出処理を終了する。
【0127】
また、S450でエラー検出処理を実行し終えると、制御部25は、S460に移行し、エラー検出処理で「中断要」判定がなされたか否かを判断する(S460)。そして、「中断要」判定がなされたと判断すると(S460でYes)、S470以降の処理を実行せずに当該再書込制御処理(換言すれば、リフレッシュ動作)を中断する。尚、S340において、「中断要」判定により再書込制御処理を中断した場合、制御部25は、S350の処理を実行せずに、ナビゲーション装置1をオフにする。
【0128】
一方、エラー検出処理で「中断要」判定がなされていないと判断すると(S460でNo)、制御部25は、S470に移行し、処理対象ブロックについての再書込処理が完了したか否かを判断する。即ち、処理対象ブロックのデータが、全てメモリカード19aに書き込まれたか否かを判断する。そして、処理対象ブロックについての再書込処理が完了していないと判断すると(S470でNo)、S450に移行する。
【0129】
また、処理対象ブロックについて再書込処理が完了すると(S470でYes)、制御部25は、NVRAM25cにバックアップ保存されている処理対象ブロックのデータを、NVRAM25cから消去する(S480)。その後、再書込領域内の全てのブロックについて、再書込処理が終了し、対応するブロックのデータが全てリフレッシュされたか否かを判断する(S490)。
【0130】
そして、S490で再書込領域内の全てのブロックについて、再書込処理が終了していないと判断すると(S490でNo)、制御部25は、処理対象ブロックを、次ブロックに設定変更して(S495)、この処理対象ブロックについて、S420以降の処理を実行する。
【0131】
このようにして、制御部25は、ブロック毎に、再書込処理を実行し、再書込領域内の全てのブロックについて、再書込処理が終了すると(S490でYes)、当該再書込制御処理を終了する。
【0132】
続いて、制御部25が、S240(図3参照)にて実行する再起動時処理について、図7を用いて説明する。図7は、制御部25が実行する再起動時処理を表すフローチャートである。
【0133】
再起動時処理を開始すると、制御部25は、NVRAM25cに再書込進捗情報が記録されているか否かを判断することにより、ナビゲーション装置1において開始されたリフレッシュ動作(再書込制御処理)が中断されているか否かを判断する(S610)。尚、再書込進捗情報は、メモリカード19aのデータ書込日時が更新される時点(S247,S350)で、NVRAM25cから消去されるものとする。
【0134】
制御部25は、NVRAM25cに再書込進捗情報が記録されている場合、リフレッシュ動作(再書込制御処理)が中断されていると判断して(S610でYes)、S620に移行する。一方、NVRAM25cに再書込進捗情報が記録されていない場合には、否定判断して(S610でNo)、S620〜S695の処理を実行することなく、当該再起動時処理を終了する。
【0135】
S620に移行すると、制御部25は、リフレッシュ動作の中断直前にカードスロット部19に接続されていたメモリカード19aと同一のカードが、カードスロット部19に接続されているか否かを判断し、同一のカードがカードスロット部19に接続されていないと判断すると(S620でNo)、ナビゲーション装置1に対するオフ操作がなされたか否かを判断する(S625)。
【0136】
そして、ナビゲーション装置1に対するオフ操作がなされていないと判断すると(S625でNo)、S620に移行する。このようにして、制御部25は、カードスロット部19に、中断直前に接続されていたメモリカード19aと同一のメモリカード19aが接続されるか、ナビゲーション装置1に対するオフ操作がなされるまで待機する。そして、ナビゲーション装置1に対するオフ操作がなされると(S625でYes)、当該再起動時処理を終了する。
【0137】
一方、カードスロット部19に中断直前に接続されていたメモリカード19aと同一のメモリカード19aが接続されると(S620でYes)、制御部25は、S630に移行し、リフレッシュ動作が異常終了しているか否かを判断する。ここでは、NVRAM25cに中断原因を表す情報が記録されていない場合、リフレッシュ動作が異常終了していると肯定判断し(S630でYes)、NVRAM25cに中断原因を表す情報が記録されている場合には、否定判断する(S630でNo)。
【0138】
そして、異常終了していると判断すると(S630でYes)、制御部25は、NVRAM25cにバックアップ保存されている処理対象ブロックのデータを読み出して、RAM25bに記憶し(S633)、NVRAM25cに記録されている再書込進捗情報に基づいて、その処理対象ブロックのデータを、RAM25bからメモリカード19aに再書込する処理(再書込処理)を開始する(S637)。その後、S670に移行する。
【0139】
一方、異常終了していないと判断すると(S630でNo)、制御部25は、S640に移行し、NVRAM25cに記録されている中断原因を表す情報に基づき、中断原因が、オフ操作によるものであるのか、それとも、メモリカードの抜き出しによるものであるのかを判断する。
【0140】
そして、中断原因が、メモリカードの抜き出しによるものであると判断すると、制御部25は、S633に移行して、上述したように、NVRAM25cにバックアップ保存されている処理対象ブロックのデータを読み出してRAM25bに記憶し、その処理対象ブロックのデータを、RAM25bからメモリカード19aに再書込する処理を開始する(S637)。その後、S670に移行する。
【0141】
この他、中断原因が、オフ操作によるものであると判断すると、制御部25は、S645に移行して、NVRAM25cに記憶されている再書込進捗情報に基づき、現在設定されている再書込領域内の全ブロックに対して、上述の再書込処理を終了したか否かを判断し(S645)、再書込領域内の全ブロックに対する再書込処理を終了したと判断すると(S645でYes)、当該再起動時処理を終了する。
【0142】
一方、再書込領域内の全ブロックに対して、上述の再書込処理を終了していないと判断すると(S645でNo)、S650に移行し、再書込処理が未完了のブロック群の中で先頭のブロックを、処理対象ブロックに設定する。
【0143】
その後、制御部25は、S650で設定した処理対象ブロックのデータを、メモリカード19aから読み出して、これをRAM25bに書き込む(S655)。同時に、読み出した処理対象ブロックのデータを、NVRAM25cにバックアップ保存し、更に、NVRAM25cに記憶されている再書込進捗情報を更新する(S660)。具体的に、ここでは、再書込進捗情報の内、中断原因を表す情報を、NVRAM25cから消去する処理を行って、再書込進捗情報を更新する。
【0144】
そして、S660での処理を終えると、制御部25は、処理対象ブロックのデータを、RAM25bからメモリカード19aに再書込する処理を開始する(S665)。その後、S670に移行する。
【0145】
この他、S670では、図6に示すエラー検出処理を実行し(S670)、エラー検出処理が終了すると、当該エラー検出処理にて「中断要」判定がなされたか否かを判断する(S675)。そして、「中断要」判定がなされたと判断すると(S675でYes)、S680以降の処理を実行せずに当該再起動時処理(換言すれば、リフレッシュ動作)を中断する。
【0146】
一方、エラー検出処理にて「中断要」判定がなされなかったと判断すると(S675でNo)、制御部25は、S680に移行して、S470での処理と同様に、処理対象ブロックについての再書込処理が完了したか否かを判断する。そして、処理対象ブロックについての再書込処理が完了していないと判断すると(S680でNo)、S670に移行する。
【0147】
また、処理対象ブロックについて再書込処理が完了すると(S680でYes)、制御部25は、NVRAM25cにバックアップ保存されている処理対象ブロックのデータを、NVRAM25cから消去する(S685)。その後、再書込領域内の全ブロックについて、再書込処理が終了したか否かを判断する(S690)。
【0148】
そして、S690で再書込処理が終了していないと判断すると(S690でNo)、処理対象ブロックを、次ブロックに設定変更して(S695)、この処理対象ブロックについて、S655以降の処理を実行する。
【0149】
このようにして、制御部25は、ブロック毎に、再書込処理を実行し、再書込領域内の全ブロックについて、再書込処理が終了すると(S690でYes)、当該再起動時処理を終了する。
【0150】
以上、第一実施例のナビゲーション装置1の構成について説明したが、このナビゲーション装置1によれば、メモリカード19aにデータが書き込まれた時点からの経過時間を、メモリカード19aに記録されたデータ書込日時の情報に基づいて推定し(S310)、データ書込日時からの経過時間が閾値T1(初回のみ閾値T2)を超える度、再書込制御処理を実行して(S340)、メモリカード19a内のデータ全体をリフレッシュする。
【0151】
従って、このナビゲーション装置1によれば、時間経過と共に、メモリカード19a内のデータが揮発してしまうのを防止することができ、データの揮発により、ナビゲーション装置1に誤動作が生じるのを防止することができる。そして、本実施例によれば、このような動作を、制御部25でのプログラム実行により実現しているので、メモリセルの状態を検知するための回路を設ける必要がなく、簡単に、適切なタイミングで、メモリカード19a内をリフレッシュすることができ、簡単且つ適切に、データ揮発を抑えることができる。
【0152】
この他、本実施例では、メモリカード19aに地図データ等が書き込まれた時点からの経過時間を、メモリカード19aに記録されたデータ書込日時の情報に基づき、推定するので、メモリカード19aの出荷前におけるデータ書込時に、メモリカード19aにデータ書込日時の情報を記録するようにすれば、工場での初回データ書込時からの経過時間を、ナビゲーション装置1で正確に把握することができ、メモリカード19aの出荷後、メモリカード19aが消費者により購入され使用されるまでの期間に依らず、適切なタイミングで、初回のリフレッシュ動作を実行することができる。
【0153】
また、本実施例では、データ書込日時の情報が記録されていないメモリカード19aに対し、ナビゲーション装置1への初回接続時に、その接続日時を、データ書込日時の情報として記録する(S230)。そして、ナビゲーション装置1では、メモリカード19aに記録されたデータ書込日時の情報に基づいて、メモリカード19aがカードスロット部19に最初に接続された時点からの経過時間を、メモリカード19aにデータが書き込まれた時点からの経過時間として推定し、当該経過時間が閾値を超えた時点で、リフレッシュ動作を実行する。
【0154】
従って、本実施例のナビゲーション装置1によれば、工場でデータ書込日時の情報がメモリカード19aに記録されない場合でも、適切なタイミングで、メモリカード19a内のデータを更新することができ、データの揮発を防止することができる。
【0155】
特に、本実施例では、メモリカード19aがカードスロット部19に最初に接続された時点からの経過時間を、メモリカード19aにデータが書き込まれた時点からの経過時間として推定するときの誤差を考慮して、閾値T2を閾値T1よりも短く設定し、初回のリフレッシュ動作については、早めに実行するようにした。
【0156】
従って、本実施例によれば、工場出荷前のデータ書込日時を正確に把握できない場合でも、適切なタイミングで、リフレッシュ動作を実行することができる。
また、本実施例では、読出回数の多いデータについては、毎回、メモリカード19aからデータを読み出さなくても済むように、このコピーデータをRAM25bの特定領域に一時保存するようにした(S190)。このナビゲーション装置1によれば、読出回数の多いデータを、メモリカード19aから毎回読み出さずに済むので、メモリカード19aからの読出回数が増加することによってリテンションが低下し、メモリカード19aにおいて、読出回数の多いデータが、S340での処理を実行する前に、揮発してしまうのを防止することができる。従って、本実施例によれば、データ揮発によるエラーが起こりにくい優れたナビゲーション装置を提供することができる。
【0157】
尚、本発明(請求項1〜5,12,13)におけるデータ更新手段としての機能は、本実施例において、制御部25がS340で実行する再書込制御処理及びS350の処理等にて実現され、書込後経過時間推定手段としての機能は、S230,S310の処理にて実現されている。
【0158】
また、更新制御手段としての機能は、S320〜S330の処理にて実現され、読出制御手段としての機能は、S110〜S130,S150〜S160の処理にて実現されている。この他、総読出回数計測手段としての機能は、S140,S170の処理にて実現され、コピーデータ生成手段としての機能は、S180〜S190の処理にて実現されている。
【実施例2】
【0159】
続いて、第二実施例のカーナビゲーション装置1について説明する。但し、第二実施例のナビゲーション装置1のハードウェア構成は、第一実施例のナビゲーション装置1と同一であるので、ここでは、ハードウェア構成の説明を省略し、制御部25がソフトウェア的に実現する処理の内容についてのみ選択的に説明する。
【0160】
図8(a)は、制御部25が、図3に示す起動後処理に代えて実行する第二実施例の起動後処理を表すフローチャートである。
制御部25は、ACCスイッチがオンにされて、ナビゲーション装置1がオンにされた直後に、図8(a)に示す起動後処理の実行を開始する。但し、制御部25は、ナビゲーション装置1がオンにされた時点で、メモリカード19aがカードスロット部19に接続されていない場合、カードスロット部19にメモリカード19aが接続された時点で、当該起動後処理を開始する。
【0161】
制御部25は、この起動後処理を開始すると、まず、図8(b)に示す監視対象設定処理を実行する(S710)。図8(b)は、制御部25が、S710で実行する監視対象設定処理を表すフローチャートである。
【0162】
S710で監視対象設定処理を開始すると、制御部25は、まず、NVRAM25cに記憶されている登録地点データを読み出す(S713)。本実施例のナビゲーション装置1は、第一実施例と同様、ユーザインタフェースを通じ、地点登録操作を受け付けて、ユーザにより指定された地点の情報を、NVRAM25cに、登録地点データとして登録し、この登録地点データに基づき、登録地点(自宅等)に対応する地図画面上の位置に、アイコンを表示して、登録地点を、ユーザに向けて案内する。
【0163】
S713では、上記地点登録操作により登録された地点を表す登録地点データを、NVRAM25cから読み出す。そして、読み出した登録地点データの情報に基づき、登録地点データが示す各登録地点について、この登録地点を基点とした周辺地域の地図データを、監視対象に設定し、この設定内容をNVRAM25cに記録する(S717)。例えば、登録地点と同一の行政区(市町村等)の地図データを、監視対象に設定する。そして、この設定内容を、NVRAM25cに記録する。その後、監視対象設定処理を終了する。
【0164】
制御部25は、このような内容の監視対象設定処理をS710で終了すると、S730に移行し、S210での処理と同様に、カードスロット部19に接続されたメモリカード19aがカードスロット部19に初めて接続されたものであるか否かを判断する(S730)。
【0165】
そして、初めて接続されたメモリカード19aであると判断すると(S730でYes)、第一実施例と同様、メモリカード19aの所定領域に、現在日時を、データ書込日時の情報として記録する(S740)。同時に、メモリカード19aの所定領域に、未更新フラグの情報として、値「1」を記録して、未更新フラグをセット状態にする。
【0166】
また、S740での処理を終えると、制御部25は、図4に示すカード管理処理の実行を開始し(S760)、その後、当該起動後処理を終了する。
このようにして、制御部25は、ナビゲーション装置1がオンにされている期間、カード管理処理により、データ書込日時から所定時間(閾値T1,T2)が経過したか否かを判断し、所定時間が経過した場合には、メモリカード19a内の全ブロックを再書込領域に設定して、メモリカード19a内のデータ全体をリフレッシュする。
【0167】
また、リフレッシュ動作がオフ操作等により中断された場合には、ナビゲーション装置がオンにされたときに、図7に示す再起動後処理を実行して(S750)、リフレッシュ動作を再開し、リフレッシュ動作を完了させる。
【0168】
即ち、制御部25は、カードスロット部19に接続されたメモリカード19aが初めて接続されたメモリカード19aではないと判断すると(S730でNo)、S750に移行し、図7に示す再起動時処理を実行する。
【0169】
また、再起動時処理を終えると、制御部25は、直前の再起動時処理にて、メモリカード19aに対するリフレッシュ動作が完了したか否か(具体的には、S690又はS645でYesと判断して再起動時処理が終了したか否か)を判断し、リフレッシュ動作が完了したと判断すると(S753でYes)、NVRAM25cに記憶されている再書込進捗情報に基づき、完了したリフレッシュ動作に対応した処理を実行し、その後、再書込進捗情報を、NVRAM25cから消去する(S757)。
【0170】
具体的に、カード管理処理にて実行を開始したリフレッシュ動作(再書込制御処理)が完了し、メモリカード19a内の全ブロックがリフレッシュされた場合には、第一実施例におけるS247の処理と同様、メモリカード19aの所定領域に記憶されているデータ書込日時を、現在日時に更新し、未更新フラグをリセットする。
【0171】
また、このようにしてS757での処理を終えると、制御部25は、S760に移行し、図4に示すカード管理処理の実行を開始する。その後、当該起動後処理を終了する。
この他、本実施例のナビゲーション装置1では、制御部25が、メモリカード19aにおいて読出回数の多いデータのブロックを、個別に、再書込領域に設定して再書込制御処理を実行するので(詳細後述)、この再書込制御処理の中断を原因として、再起動時処理にて実行されたリフレッシュ動作が完了し、再書込領域に設定されたブロックがリフレッシュされた場合には、S757において、メモリカード19aのデータ書込日時を更新することなく、リフレッシュされたブロックに対応する読出カウンタCNをゼロにリセットすると共に、再書込進捗情報を、NVRAM25cから消去する。その後、S760に移行して、図4に示すカード管理処理の実行を開始した後、当該起動後処理を終了する。
【0172】
一方、再起動時処理にて、メモリカード19aに対するリフレッシュ動作が完了していない場合(即ち、S610でNoと判断するか、S625又はS675でYesと判断して、再起動時処理が終了している場合)には(S753でNo)、S757の処理を実行することなく、S760に移行する。但し、S625又はS675でYesと判断した場合には、S760の処理を実行することなく、当該起動後処理を終了し、ナビゲーション装置1をオフにする。
【0173】
ところで、本実施例のナビゲーション装置1では、上述したように、メモリカード19aからの読出回数が多いデータを、個別に再書込処理し、リフレッシュするのであるが、この動作は、制御部25が、図9に示す読出制御処理を実行することにより実現される。即ち、制御部25が実行する各種プログラムは、基本的に、第一実施例とは異なり、図9に示す読出制御処理を実現するプログラムを呼び出し、この読出制御処理を通じて、メモリカード19aに記憶されたデータを取得する構成にされている。
【0174】
次には、この読出制御処理の内容について、図9を用いて説明する。図9は、経路案内処理タスクや地図表示処理タスク等のタスクから読出指令が入力されると、制御部25が実行する第二実施例の読出制御処理を表すフローチャートである。
【0175】
読出指令が入力されて、この読出制御処理を開始すると、制御部25は、読出指令により指定された読出対象のデータを、メモリカード19aから読み出し、これを読出指令元のタスクに渡す処理を行う。ここで、言及しておくが、本実施例においては、第一実施例と異なり、RAM25bに上述の特定領域が設けられていないものとする。
【0176】
また、この処理を終えると、制御部25は、読出対象のデータが、監視対象に設定されているデータであるか否かを判断し(S820)、読出対象のデータが、監視対象に設定されているデータではないと判断すると(S820でNo)、S830〜S860の処理を実行することなく、当該読出制御処理を終了する。
【0177】
一方、制御部25は、読出対象のデータが、監視対象に設定されているデータであると判断すると(S820でYes)、S830に移行し、読み出したデータに対応するブロックの読出カウンタCNを、1カウントアップする(CN←CN+1)。
【0178】
尚、本実施例においては、監視対象のデータが記憶されているメモリカード19aの各ブロックに対して、読出カウンタCNを割り当てるようにしており、各ブロックの読出カウンタCNは、NVRAM25cに記憶される。この読出カウンタCNは、NVRAM25cからRAM25bに読み出された後、当該読出制御処理により該当するデータの読出がある度、カウントアップされる。そして、カウントアップ後の値は、定期的に、NVRAM25cに書き込まれて、NVRAM25cが記憶する読出カウンタCNに反映される。
【0179】
S830で、この読出カウンタCNを更新(カウントアップ)すると、制御部25は、S840に移行し、更新後の読出カウンタCN(上記読み出したデータに対応するブロックの読出カウンタCN)が、予め定められた閾値を超えたか否かを判断する(S840)。そして、読出カウンタCNが閾値以下であると判断すると(S840でNo)、S850〜S860の処理を実行することなく、当該読出制御処理を終了する。
【0180】
一方、制御部25は、読出カウンタCNが閾値を超えたと判断すると(S840でYes)、S850に移行して、閾値を超えた上記読出カウンタCNに対応するブロック(即ち、S810でメモリカード19aから読み出したデータのブロック)を、再書込領域に設定し、図5に示す再書込制御処理を実行する。これにより、メモリカード19a内の上記読出対象のデータをリフレッシュする。そして、再書込制御処理が終了すると、データがリフレッシュされたブロックの読出カウンタCNの値をゼロにリセットする(S860)。また、再書込進捗情報をNVRAM25cから消去する。その後、当該読出制御処理を終了する。
【0181】
但し、S850で、再書込制御処理が中断された場合、制御部25は、S860の処理を実行することなく、当該読出制御処理を終了し、その後、ナビゲーション装置1をオフにする。
【0182】
この他、読出制御処理で開始したリフレッシュ動作(再書込制御処理)が中断された場合、制御部25は、次のナビゲーション装置1のオン時に、再起動時処理(S750)にて、中断されたリフレッシュ動作を開始して、該当するブロックのデータをリフレッシュする。
【0183】
そして、リフレッシュ動作が完了すると、S757にて、リフレッシュしたブロックの上記読出カウンタCNの値を、上述したように、ゼロにリセットする。この他、上述しなかったが、本実施例では、カード管理処理にて開始されたリフレッシュ動作が完了した時点でも、読出カウンタCNをゼロにリセットする。具体的には、S350,S757でデータ書込日時を更新する際、監視対象のデータに対応する全読出カウンタCNをゼロにリセットする。このようにして、本実施例では、読出カウンタCNを管理する。
【0184】
以上、第二実施例のナビゲーション装置1について説明したが、本実施例では、メモリカード19a全体が、所定時間経過毎にリフレッシュされると共に、監視対象のデータが、読出回数が閾値を超える度に、リフレッシュされる。
【0185】
各ブロックのデータの読出回数にばらつきがある場合には、読出回数が多いブロックのデータが、他のブロックのデータに対して揮発しやすくなるため、メモリカード19aが記憶する各ブロックのデータを、所定時間毎にリフレッシュする程度では、読出回数が多いブロックの読出頻度に合わせて、冗長にデータ更新を行わないと、読出回数の多いブロックで、データ揮発が生じる可能性が高くなる。
【0186】
本実施例では、このような問題に鑑み、読出回数が多いと推定されるデータを予め監視対象に設定して、監視対象のデータが記憶されたブロックの当該データを、読出回数が閾値を超える度、個別にリフレッシュするようにした。従って、本実施例によれば、読出回数にばらつきがある場合でも、メモリカード19a内のデータを効率的に更新して、データが揮発するのを極力防止することができる。また、冗長にデータ更新することにより、書込回数が増えて、メモリカード19aの寿命が縮まるのを抑えることができる。
【0187】
ところで、本実施例では、メモリカード19a内のデータ全体を一括管理して、データ書込日時からの経過時間が閾値を超える度、データ全体をリフレッシュするが、ナビゲーション装置1では、1ブロック毎、若しくは、所定数のブロック毎に、データ書込日時及び未更新フラグの情報を、メモリカード19aに記録し、1ブロック毎、若しくは、所定数のブロック毎に、データ書込日時からの経過時間が閾値を超える度、閾値を越えたブロックのデータを選択的にリフレッシュするようにしてもよい。
【0188】
第二実施例では、読出制御処理により、監視対象のデータについて、個別にリフレッシュするので、カード管理処理にて、メモリカード19a内のデータ全体を一括管理し、データ書込日時からの経過時間が閾値を超える度、データ全体をリフレッシュすると、次のような問題が生じる。即ち、読出制御処理にて再書込制御処理を実行した直後に、カード管理処理にて再書込制御処理が実行されて、監視対象のデータが冗長に更新されるといった問題が生じる。
【0189】
カード管理処理では1年等の比較的長い時間間隔でリフレッシュ動作を実行するため、データが冗長に更新されるといっても、たいしたことではないが、上述したように、1ブロック毎、若しくは、所定数のブロック毎に、データ書込日時からの経過時間が、閾値を越えたブロックのデータを、リフレッシュすれば、このような冗長さを改善することができる。
【0190】
この他、本実施例では、メモリカード19aが記憶するデータの内、一部データのみを監視対象に設定し、上述の処理を実行するようにしたが、監視対象を設定せずに、メモリカード19aにおける全ブロックのデータについて、上述の監視対象と同様の処理を実行するようにしてもよい。また、この場合には、カード管理処理によるリフレッシュ動作を実行しないようにしてもよい。
【0191】
このように、制御部25が実行するプログラムを構成すれば、メモリカード19aを構成する各ブロックのデータについて、読出回数に応じて、個別にリフレッシュすることができる。
【0192】
また、本実施例では、登録地点の情報から、読出回数の多いデータを推定して、監視対象を設定する程度であるため、常に監視対象として、適切なデータを設定できるとは限らない。例えば、地点登録の機能を、利用しないユーザのナビゲーション装置1においては、監視対象の設定を、適切に行えない。
【0193】
従って、S710で実行する監視対象設定処理は、図10(a)に示す内容に変更してもよい。図10(a)は、変形例の監視対象設定処理を表すフローチャートである。
ここで、図10を用いて、変形例の監視対象設定処理について説明すると、この処理を開始した制御部25は、現在カードスロット部19に接続されているメモリカード19aに対して、監視対象が設定されているか否かを判断し(S910)、監視対象が設定されていると判断すると(S910でYes)、S920以降の処理を実行せずに、当該監視対象設定処理を終了する。尚、本変形例において、監視対象は、後述するS930で設定されるものとする。
【0194】
一方、監視対象が未だ設定されていないと判断すると(S910でNo)、制御部25は、S920に移行し、現在カードスロット部19に接続されているメモリカード19aについて、当該カードスロット部19への初回接続時から、所定時間が経過したか否かを判断する(S920)。
【0195】
そして、所定時間が経過していないと判断すると(S920でNo)、当該監視対象設定処理を終了し、当該監視対象設定処理の終了後には、メモリカード19aからデータの読出がある度、読み出されたデータに対応するブロックの読出カウンタCNを1カウントアップする処理を実行して、上記初回接続時から所定時間が経過するまで、メモリカード19aにおける各ブロックのデータ読出回数をカウントする。
【0196】
具体的には、図9に示す読出制御処理に代えて、図10(b)に示す読出制御処理を実行することにより、読み出されたデータに対応するブロックの読出カウンタCNを1カウントアップする動作を実行する。図10(b)は、制御部25が実行する変形例の読出制御処理を表すフローチャートである。尚、この読出制御処理においては、S820以降の処理の流れが、図9に示す読出制御処理と同一であるので、図10(b)では、S830以降の処理について、その図示を省略する。
【0197】
図10(b)に示す読出制御処理を開始すると、制御部25は、読出指令により指定された読出対象のデータを、メモリカード19aから読み出し、これを読出指令元のタスクに渡す処理を行う。その後(S810)、S815に移行し、メモリカード19aに対して、監視対象を設定済であるか否かを判断する。
【0198】
そして、監視対象が設定済であると判断すると(S815でYes)、S820に移行する。一方、監視対象が未設定であると判断すると(S815でNo)、読み出されたデータに対応するブロックの読出カウンタCNを1カウントアップする(S817)。その後、当該読出制御処理を終了する。尚、変形例では、メモリカード19aを構成する各ブロック毎に、読出カウンタCNが割り当てられているものとする。
【0199】
このようにして、制御部25は、メモリカード19aの初回接続時から所定時間が経過するまでの期間、メモリカード19aを構成する各ブロックのデータの読出回数をカウントする(S817)。
【0200】
そして、メモリカード19aの初回接続時から所定時間が経過した後、初めて、ナビゲーション装置1がオンにされたときに、S920でYesと判断し、その時点で読出カウンタCNの値が大きいものから所定数のブロックのデータを、監視対象のデータに設定する(S930)。その後、この監視対象の設定情報を、NVRAM25cに保持し、次回以降、ナビゲーション装置1がオンにされた場合には、S910でYesと判断して、それまでに設定した上記監視対象のデータについて、読出カウンタCNの値が閾値を超える度、リフレッシュ動作を実行する。
【0201】
以上、変形例について説明したが、この変形例のように、メモリカード19aが初回に接続されてから所定時間が経過するまでの期間に、読出回数の多かったデータを、監視対象に設定すれば、ユーザの使用方法に合わせて、好適に、監視対象を設定することができ、一層適切に、データの揮発を防止することができる。
【0202】
尚、本発明(請求項8〜11)における読出回数計測手段としての機能は、本実施例において、制御部25が実行するS830の処理にて実現され、更新制御手段としての機能は、S820,S840〜S850の処理にて実現されている。また、監視対象設定手段としての機能は、S710の処理にて実現されている。
【実施例3】
【0203】
続いて、第三実施例のカーナビゲーション装置1について説明する。但し、第三実施例のナビゲーション装置1は、上記実施例(第一又は第二実施例)のナビゲーション装置1に対して更に機能を付加した程度ものであるので、ここでは、当該付加機能に係る処理の説明を、選択的に説明するに留める。
【0204】
第三実施例のナビゲーション装置1は、カードスロット部19に温度センサ(図示せず)が内蔵された構成にされており、この温度センサから得られるカードスロット部周辺の温度情報に基づき、制御部25にて、図11に示す高温時間推定処理を実行する。
【0205】
図11は、制御部25が実行する高温時間推定処理を表すフローチャートである。具体的に、制御部25は、この高温時間推定処理を、起動後処理のS250又はS760で、カード管理処理と共に開始する。
【0206】
高温時間推定処理を開始すると、制御部25は、まず、カードスロット部19に接続されたメモリカード19aが初めてカードスロット部19に接続されたものであるか否かを判断する(S1010)。
【0207】
具体的に、ここでは、今回接続されているメモリカード19aについての高温時間Tx及び終了日時の情報(詳細後述)がNVRAM25cに記録されているか否かを判断することにより、カードスロット部19に接続されたメモリカード19aが初めてカードスロット部19に接続されたものであるか否かを判断する。
【0208】
そして、メモリカード19aが初めてカードスロット部19に接続されたものであると判断すると、高温時間Tx=0に設定した後(S1020)、S1050に移行する。そして、S1050以降では、所定時間Ts毎に、温度センサを用いて周辺温度を計測し、この温度情報に基づいて、高温時間Txを更新する動作を行う。
【0209】
具体的に、S1050に移行すると、制御部25は、前回、周辺温度を計測し、その温度情報を取得した時点から、所定時間Tsが経過したか否かを判断する。但し、ナビゲーション装置1がオンにされた直後のS1050では、形式的に所定時間Tsが経過したと判断する。
【0210】
そして、所定時間Tsが経過したと判断すると(S1050でYes)、温度センサを用いて周辺温度を計測し、温度センサから温度情報を取得する(S1060)。また、この処理を終えると、得られた情報に基づき、カードスロット部19の周辺温度が、閾値以上であるか否かを判断する(S1070)。尚、閾値は、メモリカード19aのリテンション低下が無視できない温度(例えば、摂氏80度等)に、予め設計段階で定められるものとする。
【0211】
そして、周辺温度が閾値未満であると判断すると(S1070でNo)、制御部25は、S1050に移行し、周辺温度が閾値以上であると判断すると(S1070でYes)、S1075に移行する。また、S1075では、現在設定されている高温時間Txに、上記時間Tsを加算して、高温時間Txを更新する(Tx←Tx+Ts)。
【0212】
また、S1075での処理を終えると、制御部25は、現在の高温時間Txが、予め定められた閾値を超えているか否かを判断し(S1080)、高温時間Txが閾値以下であると判断すると(S1080でNo)、S1050に移行し、高温時間Txが閾値を越えていると判断すると(S1080でYes)、S1083に移行する。そして、S1083では、メモリカード19aの全ブロックを、再書込領域に設定して、図5に示す再書込制御処理を実行する。これにより、メモリカード19a内のデータ全体をリフレッシュする。
【0213】
そして、全ブロックの再書込処理が終了することで再書込制御処理が終了すると、制御部25は、S1085でNoと判断して、メモリカード19aが記憶するデータ書込日時を、現在日時に更新すると共に(S1087)、未更新フラグをリセット状態にする。また、再書込進捗情報を消去し、更に、高温時間Txをゼロにリセットする(S1089)。その後、S1050に移行する。
【0214】
一方、S1083で再書込制御処理が中断された場合、制御部25は、S1085でYesと判断して、当該高温時間推定処理を終了し、ナビゲーション装置1をオフにする。そして、次回、ナビゲーション装置1がオンにされたときに、再起動時処理にて、中断されたリフレッシュ動作を再開する。そして、リフレッシュ動作が終了した時点で、データ書込日時を更新し、未更新フラグをリセットし、高温時間Txをゼロにリセットすると共に、再書込進捗情報を消去する(S247,S757)。尚、本実施例においては、S247,S350,S757等で、メモリカード19aのデータ書込日時を更新する際には、このメモリカード19aの高温時間Txを、必ず、Tx=0にリセットするものとする。
【0215】
また、S1050で所定時間Tsが経過していないと判断すると、制御部25は、S1090に移行し、ACCスイッチがオフにされることにより、ナビゲーション装置1に対してオフ操作がなされたか否かを判断し、ナビゲーション装置1に対してオフ操作がなされていないと判断すると(S1090でNo)、カードスロット部19からメモリカード19aが抜かれたか否かを判断する(S1093)。そして、カードスロット部19からメモリカード19aが抜かれていなければ(S1093でNo)、S1050に移行する。
【0216】
一方、カードスロット部19からメモリカード19aが抜かれたと判断すると(S1093でYes)、制御部25は、S1090に移行し、オフ操作がなされるか、カードスロット部19に同一のメモリカード19aが接続されるまで待機し、カードスロット部19に同一のメモリカード19aが接続されると(S1093でNo)、S1050に移行し、オフ操作がなされた場合には(S1090でYes)、S1095に移行する。
【0217】
また、S1095に移行すると、制御部25は、NVRAM25cに、今回接続されたメモリカード19aについての現時点での高温時間Txの情報を記録すると共に、現在日時を、当該高温時間推定処理の終了日時の情報として、NVRAM25cに記録する。その後、当該高温時間推定処理を終了する。
【0218】
この他、S1010でメモリカード19aが初めてカードスロット部19に接続されたものではないと判断すると(S1010でNo)、制御部25は、前回のナビゲーション装置1のオフ時に、NVRAM25cに書き込まれた当該メモリカード19aについての高温時間Tx及び終了日時の情報を、NVRAM25cから読み出し(S1030)、この読み出した高温時間Tx及び終了日時の情報と、メモリカード19aに記憶されている高温推定期間データとに基づき、改めて高温時間Txを設定する(S1040)。
【0219】
尚、高温推定期間データとは、車内温度がS1070で用いられる閾値と同程度の温度であると推定される期間(即ち、高温推定期間)を表すデータである。ここでは、例えば、7月〜9月の7時〜19時までが高温推定期間として定義されているものとする。
【0220】
詳述すると、S1040では、高温推定期間データにおいて定義された高温推定期間が、上記読み出した情報が示す終了日時から現在日時までの期間内に存在する場合、上記読み出した情報が示す終了日時から現在日時までの期間内に存在する高温推定期間の合計時間Tmを算出して、これをNVRAM25cから読み出した高温時間Txに加算し、その加算値を、高温時間Txに設定する(Tx←Tx+Tm)。
【0221】
終了日時が7月10日の20時で、現在日時が7月13日の8時である場合は、7月11日の7時〜19時、7月12日の7時〜19時、7月13日の7時〜8時が高温推定期間に該当するので、Tm=25時間と算出して、高温時間Txを設定する。
【0222】
また、このようにして、S1040での処理を終えると、制御部25は、S1040で設定した高温時間Txを起点にして、上述したようにS1050以降の処理を実行し、高温時間Txを更新する。そして、高温時間Txが閾値を越えた時点で(S1080でYes)、メモリカード19aの全ブロックを、再書込領域に設定して、図5に示す再書込制御処理を実行する(S1083)。これにより、メモリカード19a内のデータ全体をリフレッシュする。
【0223】
尚、本実施例では、カード管理処理及び高温時間推定処理が並列実行され、夫々が個別のタイミングで、メモリカード19aのリフレッシュ動作を開始する。このため、カード管理処理及び高温時間推定処理では、既にリフレッシュ動作が他の処理にて開始されている場合、再書込制御処理を実行しないようにして、カード管理処理及び高温時間推定処理で同時にリフレッシュ動作が開始されるのを回避する。
【0224】
例えば、高温時間推定処理でリフレッシュ動作(再書込制御処理)が開始されている場合、カード管理処理では、形式的にS325及びS330でNoと判断して、再書込制御処理を実行しないようにする。また、カード管理処理でリフレッシュ動作が開始されている場合、高温時間推定処理では、形式的にS1080でNoと判断して、再書込制御処理を実行しないようにする。
【0225】
以上、第三実施例のナビゲーション装置1について説明したが、本実施例では、メモリカード19aが高温環境下におかれた時間を、上記高温時間Txとして推定し、この時間Txが閾値を超える度、メモリカード19aのリフレッシュ動作を開始する。特に、本実施例では、ナビゲーション装置1がオフのときにメモリカード19aが高温に晒されていた時間を、高温推定期間データに基づいて推定する。
【0226】
従って、本実施例によれば、高温によるリテンション低下に合わせて、適切なタイミングで、メモリカード19a内のデータを更新することができ、メモリカード19aが高温環境下に晒されることにより、データが揮発してしまうのを防止することができる。
【0227】
尚、本発明(請求項6,7)における更新制御手段としての機能は、S1080の処理にて実現され、データ更新手段としての機能は、制御部25がS1083で実行する再書込制御処理及びS1087の処理等にて実現されている。また、高温時間推定手段としての機能は、S1020,S1040,S1075,S1089等の処理により実現されている。
【実施例4】
【0228】
続いて、第四実施例のカーナビゲーション装置1について説明する。但し、第四実施例のナビゲーション装置1は、上記実施例(第一〜第三実施例のいずれか)のナビゲーション装置1に対して更に機能を付加した程度ものであるので、ここでは、当該付加機能に係る説明を、選択的に説明するに留める。
【0229】
まず前提として、本実施例では、重要なデータを予め設計段階で定め、この重要データを、メモリカード19aに、二重に書き込む。即ち、メモリカード19aには、出荷前のデータ書込み時に、重要データについて、同一のデータを、複数書き込む。ここでは、例えば、プログラムや地図管理データ等を、重要データに定めることができる。
【0230】
また、制御部25が、上記メモリカード19aが接続されると、その後、図12に示す処理を周期的に繰返し実行するように、プログラムを設計し、これをメモリカード19a又はROMに記録する。このようにして、本実施例では、重要データの一つに異常が生じても、異常が生じていない同一のデータに基づき、異常が生じたデータを修復できるようにする。
【0231】
図12は、第四実施例のナビゲーション装置1において、制御部25が、カードスロット部19にメモリカード19aが接続されている期間、周期的に繰返し実行するデータ監視修復処理を表すフローチャートである。
【0232】
このデータ監視修復処理を開始すると、制御部25は、重要データが記憶されたブロックの一つを、検査対象ブロックに設定し(S1110)、検査対象ブロックが記憶するデータを、メモリカード19aから読み出す(S1120)、また、データ書込み時に、検査対象ブロックと同一のデータが書き込まれたブロックのデータを、メモリカード19aから読み出す(S1130)。尚、以下では、S1120で読み出したデータをメインデータ、S1130で読み出したデータをサブデータと称する。
【0233】
また、S1130での処理を終えると、制御部25は、上記メモリカード19aから読み出したメインデータ及びサブデータが、両方とも、揮発していない正常なデータであるか否かを判断する(S1140)。尚、読み出したデータが正常なデータであるか否かは、例えば、チェックサム等の周知技術を用いて判定することができる。
【0234】
そして、読み出したメインデータ及びサブデータが両方とも正常なデータであると判断すると(S1140でYes)、S1180に移行する。
一方、読み出したメインデータ及びサブデータの少なくとも一方が正常なデータではないと判断した場合であって(S1140でNo)、サブデータが正常なデータではなく、メインデータが正常なデータであると判断した場合には(S1150でYes)、メモリカード19aにおいてサブデータが記憶されているブロックのデータを、読み出したメインデータで書き換えて、サブデータが記憶されているブロックのデータを正常値に修復する(S1155)。その後、S1180に移行する。
【0235】
この他、読み出したメインデータ及びサブデータの少なくとも一方が正常なデータではないと判断した場合であって(S1140でNo)、メインデータが正常なデータではなくサブデータが正常なデータであると判断した場合(S1150でNo、S1160でYes)、制御部25は、メモリカード19aにおいてメインデータが記憶されている検査対象ブロックのデータを、読み出したサブデータで書き換えて、検査対象ブロックのデータを正常値に修復する(S1165)。その後、S1180に移行する。
【0236】
この他、メインデータ及びサブデータの両者が正常なデータではないと判断すると(S1160でNo)、表示部21に、メモリカード19aに異常がある旨のメッセージを表示することで、異常をユーザに向けて報知する(S1170)。その後、S1180に移行する。
【0237】
また、S1180に移行すると、制御部25は、重要データが記憶されたブロックを一通り、検査対象ブロックに設定したか否かを判断し、一通り検査対象ブロックに設定していない場合には、S1110に移行して、検査対象ブロックに設定していないブロックの一つを、検査対象ブロックに設定する。その後、S1120以降の処理を実行する。但し、データ監視修復処理では、同一の重要データが記憶された1対のブロックの内の一方のみを、検査対象ブロックに設定するものとする。
【0238】
そして、重要データが記憶されたブロックを一通り、検査対象ブロックに設定したと判断すると(S1180)、当該データ監視修復処理を終了する。このような内容のデータ管理修復処理を、制御部25は、周期的に繰返し実行する。
【0239】
以上、第四実施例のナビゲーション装置1について説明したが、本実施例によれば、重要データを、メモリカード19aに二重持ちしているので、データ揮発等を原因として、重要データの一方に、異常が生じた場合でも、当該異常を解消することができる。従って、本実施例によれば、データ揮発に強い耐久性に優れたナビゲーション装置1を、ユーザに対して提供することができる。
【0240】
尚、本発明(請求項14)におけるデータ修復手段としての機能は、本実施例において、制御部25が実行するデータ監視修復処理にて実現されている。
【実施例5】
【0241】
続いて、第五実施例について、図13〜図17を用いて説明する。
但し、第五実施例のナビゲーション装置1のハードウェア構成は、第一実施例のナビゲーション装置1と同一であるので、ここでは、同一構成の説明を適宜省略し、主として、制御部25がソフトウェア的に実現する処理の内容について、第一実施例と異なる部分を選択的に説明する。
【0242】
まず初めに、第五実施例の概要を説明する。第一実施例においては、ナビゲーション装置1の突然のシャットダウン等に備えるために、再書込制御処理において、処理対象ブロックのデータを、NVRAM25cにバックアップするようにしたが、バックアップするためには、NVRAM25cに、そのための領域を確保しておく必要がある。
【0243】
周知のように、フラッシュメモリにおいて、既にデータが書き込まれたブロックに対し、上書きするように新規データを書き込む場合には、そのブロック全体を一旦消去した後、新規データを書き込む必要があり、単純に、新規データを上書きすることはできない。従って、処理対象ブロックのデータをメモリカード19aへ再書込する際(例えば、S440の実行時)には、最初に、処理対象ブロック内のデータを消去することになる。
【0244】
従って、この時点から、処理対象ブロックへの再書込が完了するまでの間(S470でYesと判断されるまでの間)に、突然のシャットダウンが生じると、その処理対象ブロックにおいては、一部データが消去されたままの状態になる。
【0245】
このような理由から、第一実施例では、再書込制御処理において、処理対象ブロックのデータを、NVRAM25cにバックアップしているのだが、このようにバックアップする場合には、バックアップ用の領域を確保するために容量が大きめのNVRAM25cを、制御部25に用意しなければならないといった欠点がある。即ち、この手法では、製品(ナビゲーション装置1)の製造コストが高くなる。
【0246】
そこで、第五実施例では、処理対象ブロックのデータを、NVRAM25cにバックアップしない代わりに、ナビゲーション装置1が突然シャットダウンする可能性が高い環境では、処理対象ブロックのデータをメモリカード19aへ再書込する処理を実行しないように、ナビゲーション装置1を構成している。
【0247】
図13(a)に示すように、本実施例のナビゲーション装置1は、第一実施例のナビゲーション装置1と同様、アクセサリ(ACC)スイッチのオン/オフに連動して電力供給されるアクセサリ電源とバッテリが接続されている間には常時電力供給される常時電源とに接続されており、アクセサリスイッチがオンされると起動し、アクセサリスイッチがオフにされると、常時電源により、S520〜S550等の終了処理を実行する。
【0248】
しかしながら、周知のようにエンジン始動時には、セルモータの回転等を原因として、図13(b)に示すように、電圧降下が生じ、正常に終了処理を実行できないまま、ナビゲーション装置1が突然シャットダウンしてしまう可能性がある。
【0249】
そして、この場合には、処理対象ブロックの再書込処理が完了しないまま、ナビゲーション装置1が停止し、メモリカード19aにおいてデータが消失してしまうことになる。また、この問題は、電圧降下以外にも、ユーザによってバッテリそのものが車両から外された場合にも生じる。
【0250】
尚、図13(a)は、ナビゲーション装置1に対する電源の接続態様を表す説明図であり、図13(b)は、アクセサリ電源及び常時電源の電圧変化の態様、並びに、ナビゲーション装置1のオン/オフ変化の態様を表したタイムチャートである。
【0251】
但し、突然のシャットダウンは、主に、クランキング時(セルモータの回転時)やバッテリの取り外し時に生じ、これらが生じるのは、いずれも車両の停止時である。
換言すると、車両が高速走行している場合には、既にエンジンが始動しているので、クランキングによる電圧降下は生じえない。また、車両が高速走行している場合には、ユーザが車両のボンネットを開けてバッテリを取り外すことも、常識的にありえない。
【0252】
そこで、本実施例では、車両が低速走行中には、処理対象ブロックのデータをメモリカード19aへ再書込する処理を実行しないようにし、車両が高速走行中のときに限って、処理対象ブロックのデータをメモリカード19aへ再書込する処理を実行するようにしている。
【0253】
具体的に、制御部25は、図5に示す再書込制御処理に代えて、図14に示す再書込制御処理を実行することにより、上述の機能を実現する。図14は、第五実施例において、制御部25が実行する再書込制御処理を表すフローチャートである。
【0254】
尚、第五実施例の制御部25は、第一実施例と同様にして、図2に示す読出制御処理、図3に示す起動処理、及び、図4に示すカード管理処理を実行すると共に、カード管理処理のS340にて、図14に示す再書込制御処理を実行する。
【0255】
この再書込制御処理を開始すると、制御部25は、第一実施例と同様にS410の処理を実行した後、S415に移行し、図15(a)に示す再書込安全判定処理を実行する。図15(a)は、制御部25が実行する再書込安全判定処理を表すフローチャートである。
【0256】
S415において再書込安全判定処理を開始すると、制御部25は、まず、再書込許可フラグがセットされているか否かを判断する(S1210)。尚、再書込許可フラグは、セットされた状態で再書込を許可することを意味するフラグであり、ナビゲーション装置1の起動時に、リセットされる。即ち、ナビゲーション装置1の起動後、初回の再書込制御処理では、S1210において、再書込許可フラグがリセットされていると判断する。
【0257】
制御部25は、再書込許可フラグがリセットされていると判断すると(S1210でNo)、S1220に移行し、自車両の現在の走行速度を特定する。例えば、位置検出器11(距離センサ11c)の検出信号から自車両の走行速度を求める。
【0258】
その後、S1225に移行し、自車両の現在の走行速度が、予め定められた第一閾値VHを超えているか否かを判断する。第一閾値VHとしては、例えば、時速20kmを設定することができる。
【0259】
そして、自車両の現在の走行速度が第一閾値VH以下であると判断すると(S1225でNo)、所定時間待機(例えば、0.1秒待機)した後(S1230)、S1220に移行する。
【0260】
一方、自車両の現在の走行速度が第一閾値VHを超えていると判断すると(S1225でYes)、再書込許可フラグをセットした後(S1240)、当該再書込安全判定処理を終了し、S420に移行する。
【0261】
即ち、自車両の走行速度が第一閾値VH以下であるときには、S1220〜S1230を繰返し実行してS420に移行しないようにすることで、再書込処理の実行を禁止し、自車両の現在の走行速度が第一閾値VHを超えている場合には、S420へ移行することで、再書込処理の実行を許可する。
【0262】
これに対し、S1210で再書込許可フラグがセットされていると判断すると(S1210でYes)、制御部25は、S1250に移行し、S1220での処理と同様にして、自車両の現在の走行速度を特定した後、自車両の現在の走行速度が、予め定められた第二閾値VL未満であるか否かを判断する(S1255)。尚、第二閾値VLは、第一閾値VHよりも小さい値に設定される(第二閾値VL<第一閾値VH)。第二閾値VLとしては、例えば、時速10kmを設定することができる。
【0263】
ここで、自車両の現在の走行速度が第二閾値VL以上であると判断すると(S1255でNo)、制御部25は、再書込許可フラグをセットしたまま、当該再書込安全判定処理を終了して、S420に移行する。
【0264】
一方、自車両の現在の走行速度が第二閾値VL未満であると判断すると(S1255でYes)、S1260に移行して、再書込許可フラグをリセットする。その後、所定時間待機して(S1270)、S1220に移行する。
【0265】
即ち、本実施例では、図15(b)に示すように、自車両の走行速度が第一閾値VHを超えた場合には、その後、走行速度が第二閾値VL未満となるまで、再書込処理の実行を許可し、自車両の走行速度が第二閾値VL未満となった場合には、自車両の走行速度が第一閾値VHを超えるまで、再書込処理の実行を禁止する。
【0266】
また、S420に移行すると、制御部25は、処理対象ブロックに記憶されたデータを、メモリカード19aから読み出し、読み出したデータを、RAM25bに一時記憶する。
【0267】
また、この処理を終えると、制御部25は、第一実施例とは異なり、処理対象ブロックのデータを、NVRAM25cにバックアップ保存せずに、S440に移行し、RAM25bに読み出した上記処理対象ブロックのデータを、RAM25bからメモリカード19aに再書込する処理(再書込処理)を開始して(S440)、メモリカード19aが記憶する処理対象ブロックのデータをリフレッシュする。
【0268】
そして、制御部25は、この再書込処理を開始した後、当該再書込処理が完了するまでの期間、エラー検出処理を並行して実行する(S450)。但し、本実施例では、図6に示すエラー検出処理に代えて、図16に示すエラー検出処理を実行する。図16は、第五実施例において、制御部25が実行するエラー検出処理を表すフローチャートである。
【0269】
図16に示すエラー検出処理を開始すると、制御部25は、第一実施例と同様にして、ナビゲーション装置1に対しオフ操作がなされたか否かを判断し(S510)、ナビゲーション装置1に対してオフ操作がなされたと判断すると(S510でYes)、S520に移行する。
【0270】
そして、S520では、現在再書込処理中の処理対象ブロックについての当該再書込処理が全て終了するまで待機し、再書込処理が全て終了すると(S520でYes)、NVRAM25cに再書込進捗情報を書き込む(S545)。具体的に、S545では、再書込制御処理の実行時に設定された再書込領域の情報及び再書込処理が完了したブロックの情報を記録する。また、S545での処理を終えると、制御部25は、「中断要」と判定して(S550)、当該エラー検出処理を終了する。
【0271】
一方、ナビゲーション装置1に対しオフ操作がなされていないと判断すると、制御部25は、S520〜S550の処理を実行することなく、当該エラー検出処理を終了する。尚、本実施例では、再書込処理を実行する際に、データのバックアップをとらないため、再書込処理時にカードスロット部19からメモリカード19aが抜かれると都合がわるい。
【0272】
このため、本実施例では、正規の手続きを経ない限りは、カードスロット部19からメモリカード19aを抜くことができないような機構をカードスロット部19に設けて、ユーザからの指令を受け付けたときに限って、ナビゲーション装置1がカードスロット部19からメモリカード19を吐き出すようにし、再書込制御処理の実行時には、ユーザからの指令を受け付けないようにしている。
【0273】
また、このようにしてS450でのエラー検出処理を終了すると、その後には、第一実施例と同様に、エラー検出処理で「中断要」判定がなされたか否かを判断する(S460)。そして、「中断要」判定がなされたと判断すると(S460でYes)、S470以降の処理を実行せずに当該再書込制御処理を中断する。
【0274】
一方、エラー検出処理で「中断要」判定がなされていないと判断すると(S460でNo)、処理対象ブロックについての再書込処理が完了したか否かを判断し(S470)、処理対象ブロックについての再書込処理が完了していないと判断すると(S470でNo)、S450に移行する。
【0275】
また、処理対象ブロックについて再書込処理が完了すると(S470でYes)、S490に移行して、第一実施例と同様の判断を行い、再書込領域内の全てのブロックについて、再書込処理が終了していないと判断すると(S490でNo)、処理対象ブロックを、次ブロックに設定変更し(S495)、S415に移行する。
【0276】
このようにして、制御部25は、ブロック毎に、再書込安全判定処理を実行し、車両が高速走行しているときに限って、再書込処理を実行する。そして、再書込領域内の全てのブロックについて、再書込処理が終了すると(S490でYes)、当該再書込制御処理を終了する。
【0277】
また、再書込制御処理及びエラー検出処理が上述したように第一実施例と異なる関係上、第五実施例において、起動後処理のS240では、S630,S633,S637,S640,S660,S685の手順を抜かした図17に示す手順で再起動時処理を実行する。即ち、S620でYesと判断した場合には、S630,S640の処理を実行せずに、S645に移行し、S655の実行後には、S660の処理を実行せずに、S665に移行し、S680でYesと判断した場合には、S685の処理を実行せずに、S690に移行する。
【0278】
以上、第五実施例のナビゲーション装置1について説明したが、本実施例のナビゲーション装置1によれば、車両の走行速度が閾値VL未満であるときには再書込処理の実行を禁止するようにしたので、再書込処理を実行するに当たって、NVRAM23cに、リフレッシュ対象のデータをバックアップしなくとも、再書込処理に失敗して、メモリカード19a内のデータが消失してしまう可能性を極力小さくすることができ、安価にナビゲーション装置1を構成することができる。
【0279】
尚、本発明の車両情報取得手段は、本実施例において、S1220,S1250の処理により実現され、禁止手段は、S1220,S1250を除く再書込安全判定処理の各ステップにより実現されている。
【実施例6】
【0280】
続いて、第六実施例のカーナビゲーション装置1について説明する。但し、第六実施例のナビゲーション装置1のハードウェア構成は、第一実施例を含む上述の各実施例のナビゲーション装置1と同一であるので、ここでは、ハードウェア構成の説明を省略し、制御部25がソフトウェア的に実現する処理の内容についてのみ選択的に説明する。
【0281】
尚、本実施例は、上述の各実施例に対して、メモリカード19aに対するリフレッシュ動作の実行条件が異なる程度のものである。つまり、第六実施例の制御部25が実行する処理については、再書込制御処理の実行条件が異なることに伴う手順の違いを除けば、基本的に、上述した各実施例と同様に構成できる。例えば、再書込制御処理では、第一実施例と同様に、処理対象ブロックのデータをNVRAM25cへバックアップ(S430)すればよい。その他、S440で行う再書込処理の内容も同じである。従って、以下では、特に、上記実行条件が異なることに伴う手順の違いについてを説明する。
【0282】
図18は、制御部25が、図3に示す起動後処理に代えて実行する第六実施例の起動後処理を表すフローチャートである。
制御部25は、この起動後処理を開始すると、まず、カードスロット部19に接続されているメモリカード19aがカードスロット部19に初めて接続されたものであるか否かを判断する(S1310)。尚、本実施例では、S1330にて、初めて接続されたメモリカード19aに、通算走行距離Ds及び未更新フラグの情報を記録する。従って、S1310では、メモリカード19aに通算走行距離Ds及び未更新フラグの情報が記録されているか否かを判断することにより、接続されたメモリカード19aがカードスロット部19に初めて接続されたものであるか否かを判断する。
【0283】
そして、初めて接続されたメモリカード19aであると判断すると(S1310でYes)、制御部25は、メモリカード19aの所定領域に、通算走行距離Ds及び未更新フラグの情報を記録する(S1330)。但し、この際には、通算走行距離Dsとして値「0」を書き込むことにより、通算走行距離Dsを値「0」に設定し、未更新フラグの情報として、値「1」を記録することにより、未更新フラグをセット状態にする。
【0284】
更に、バックアップ距離Dbとして値「0」をRAM25bに書き込むことにより、RAM25bが記憶するバックアップ距離Dbを値「0」に設定する(S1335)。尚、バックアップ距離Dbは、ナビゲーション装置1のオン/オフに拘わらず、RAM25bに記憶保持される。
【0285】
また、S1335での処理を終えると、制御部25は、図19に示すカード管理処理の実行を開始し(S1350)、その後、当該起動後処理を終了する。尚、S1350でカード管理処理の実行を開始した後には、ナビゲーション装置1の終了時まで、繰返しカード管理処理を実行する。
【0286】
一方、カードスロット部19に接続されたメモリカード19aが初めて接続されたメモリカード19aではないと判断すると(S1310でNo)、制御部25は、S1340に移行して、図7に示す再起動時処理を実行する。
【0287】
また、この再起動時処理を終えると、制御部25は、直前の再起動時処理にてメモリカード19aに対するリフレッシュ動作が完了したか否か(具体的には、S690又はS645でYesと判断して再起動時処理が終了したか否か)を判断し(S1343)、リフレッシュ動作が完了したと判断すると(S1343でYes)、メモリカード19aの所定領域に記憶されている通算走行距離Dsを値「0」に更新すると共に、未更新フラグをリセット状態にする。更に、RAM25bが記憶するバックアップ距離を値「0」に更新する(S1347)。その後、S1350に移行して、図19に示すカード管理処理の実行を開始し、当該起動後処理を終了する。
【0288】
一方、再起動時処理にて、メモリカード19aに対するリフレッシュ動作が完了していない場合(即ち、S610でNoと判断するか、S625又はS675でYesと判断して、再起動時処理が終了している場合)には(S1343でNo)、S1347の処理を実行することなく、S1350に移行する。そして、図19に示すカード管理処理の実行を開始し(S1350)、当該起動後処理を終了する。但し、S625又はS675でYesと判断した場合には、S1350の処理を実行することなく、当該起動後処理を終了し、ナビゲーション装置1をオフにする。
【0289】
続いて、制御部25が、S1350で実行を開始するカード管理処理について説明する。図19は、制御部25が実行するカード管理処理を表すフローチャートである。
カード管理処理を開始すると、制御部25は、まず、S1411で、S1411の前回実行時点からの自車両の走行距離Dnを特定する。但し、ナビゲーション装置1の起動後において、S1411の初回実行時には、ナビゲーション装置1の起動時からの自車両の走行距離Dnを特定する。
【0290】
例えば、ナビゲーション装置1の起動時に、当該起動時からの走行距離を位置検出器11の検出信号に基づいて計測するタスクを起動し、S1411では、S1411の前回実行時点で上記タスクにより計測された走行距離と、今回の走行距離との差分を求めることにより、走行距離Dnを特定する。
【0291】
S1411での処理を終えると、制御部25は、S1413に移行し、RAM25bが記憶するバックアップ距離Dbを、現在値にS1411で特定した走行距離Dnを加算した値(Db+Dn)に更新する(Db←Db+Dn)。そして、更新後のバックアップ距離Dbが、予め設計段階で定められた規定値D0(例えば、100km)を超えているか否かを判断する(S1415)。
【0292】
S1415において、バックアップ距離が規定値D0以下であると判断すると(S1415でNo)、制御部25は、S1411に移行し、バックアップ距離が規定値D0を超えるまで繰返し、バックアップ距離Dbを更新する処理を行う(S1411〜S1415)。
【0293】
そして、バックアップ距離が規定値D0を超えると(S1415でYes)、制御部25は、S1417に移行し、カードスロット部19に接続されたメモリカード19aにアクセスして、メモリカード19aが記憶する通算走行距離Dsを、上記規定値D0を加算した値(Ds+D0)に更新する(Ds←Ds+D0)。
【0294】
また、S1417での処理を終えると、制御部25は、S1419に移行し、RAM25bが記憶するバックアップ距離Dbを、現在値から規定値D0を減算した値に更新する(Db←Db−D0)。
【0295】
尚、本実施例において、通算走行距離Dsの更新を、規定値D0毎としているのは、メモリカード19aへのアクセス数(データ書込回数)を減らすためである。上述したように、メモリカード19aへのアクセス数が増えると、リテンションが低下するため、本実施例では、このようにして、通算走行距離Dsの更新によるリテンションの低下を抑えている。
【0296】
また、S1419の処理後には、メモリカード19aが記憶する上記未更新フラグを参照し、未更新フラグがリセット状態にあるか否かを判断する(S1420)。そして、未更新フラグがリセット状態にあると判断すると(S1420でYes)、S1430に移行する。
【0297】
そして、S1430では、S1417での更新後の通算走行距離Dsが閾値D1を超えているか否かを判断し、更新後の通算走行距離Dsが閾値D1を超えていないと判断した場合には(S1430でNo)、S1411に移行する。このようにして、制御部25は、未更新フラグがリセット状態にある場合、通算走行距離Dsが閾値D1を超えるまで、上述した手順で、バックアップ距離Db及び通算走行距離Dsを更新する。
【0298】
一方、更新後の通算走行距離Dsが閾値D1を超えていると判断すると(S1430でYes)、制御部25は、S1440に移行して、メモリカード19aの全ブロックを、リフレッシュする対象である再書込領域に設定し、図5に示す再書込制御処理を実行する(S1440)。
【0299】
そして、全ブロックの再書込処理が終了することで再書込制御処理が終了すると、メモリカード19aが記憶する通算走行距離Dsを値「0」に更新すると共に、バックアップ距離Dbを値「0」に更新して(S1450)、当該カード管理処理を一旦終了する。そして、再度、S1411からカード管理処理を開始する。
【0300】
一方、S1420で、メモリカード19aが記憶する上記未更新フラグがセット状態にあると判断すると(S1420でNo)、制御部25は、S1425に移行し、S1417での更新後の通算走行距離Dsが閾値D2を超えているか否かを判断する。
【0301】
但し、閾値D2は、閾値D1よりも小さい値に予め定められているものとする。具体的に、閾値D1と閾値D2と規定値D0との間には、次の関係式D1>D2>D0が成り立つ。尚、閾値D1及び閾値D2については、リテンションを考慮して設計段階で定めればよい。
【0302】
S1425で、更新後の通算走行距離Dsが閾値D2を超えていないと判断した場合には(S1425でNo)、S1411に移行する。このようにして、制御部25は、未更新フラグがセット状態にある場合、通算走行距離Dsが閾値D2を超えるまで、上述した手順で、バックアップ距離Db及び通算走行距離Dsを更新する。
【0303】
そして、上記更新後の通算走行距離Dsが閾値D2を超えていると判断すると(S1425でYes)、制御部25は、S1440の処理を実行し、更に、S1450の処理を実行する。但し、S1425での判断を行う場合には、未更新フラグがセット状態にあるので、S1450では、メモリカード19aが記憶するセット状態の未更新フラグをリセット状態に更新する。その後、制御部25は、当該カード管理処理を一旦終了し、再度、S1411からカード管理処理を開始する。
【0304】
以上、第六実施例のナビゲーション装置1について説明したが、本実施例のナビゲーション装置1によれば、メモリカード19aにデータが書き込まれた時点からの車両の走行距離に応じて、再書込制御処理を実行して(S1440)、メモリカード19a内のデータ全体をリフレッシュする。
【0305】
従って、このナビゲーション装置1によれば、メモリカード19a内のデータが揮発してしまうのを防止することができ、データの揮発により、ナビゲーション装置1に誤動作が生じるのを防止することができる。
【0306】
即ち、ナビゲーション装置1は、車両の走行に必要な情報を車両乗員に提供するものであるので、ナビゲーション装置1に必要なデータ(プログラムも含む)が記憶されたメモリカード19aへのアクセス数と車両の走行距離との間には、相関がある。
【0307】
従って、本実施例のように走行距離に基づいてメモリカード19a内のデータをリフレッシュするようにしても、適切な時期にリフレッシュ動作を実行することができ、データの揮発により、ナビゲーション装置1に誤動作が生じるのを防止することができるのである。また、本実施例によれば、そのような機能を、ソフトウェアにより簡素に実現できる。
【0308】
また、第六実施例のナビゲーション装置1は、通算走行距離Dsに代えて、通算使用時間を、メモリカード19aに記録する構成にされてもよい。
即ち、S1411では、走行距離Dnに代えて、前回S1411実行時からの経過時間を特定する。但し、ナビゲーション装置1起動後の初回のみナビゲーション装置1起動時からの経過時間を特定する。
【0309】
そして、この経過時間を、RAM25bがバックアップ距離Dbの代わりに記憶するバックアップ時間に加算する。そして、このような動作を繰返し実行し(S1411〜S1413)、バックアップ時間が、規定時間を超えた時点で(S1415でYes)、メモリカードが記憶する通算使用時間を上記規定時間加算した値に更新する(S1417)。更に、バックアップ時間から規定時間を減算する(S1419)。
【0310】
そして、未更新フラグの状態に応じて閾値を切り替えつつ、通算使用時間が閾値を超えているか否かを判断し(S1420〜S1430)、通算使用時間を超えていない場合には、S1411に移行し、通算使用時間が閾値を超えている場合には、S1440の処理を実行して、メモリカード19a内のデータをリフレッシュする。そして、リフレッシュ後には、メモリカード19aが記憶する通算使用時間をゼロにリセットすると共に、RAM25bが記憶するバックアップ距離をゼロにリセットし、更には、未更新フラグをリセット状態にする。
【0311】
このようにナビゲーション装置1を構成しても、適切な時期にリフレッシュ動作を実行することができ、データの揮発により、ナビゲーション装置1に誤動作が生じるのを防止することができる。
【0312】
尚、本発明(請求項18,19)における走行距離推定手段としての機能は、本実施例において、通算走行距離Dsを更新するS1417の処理等により実現されており、更新制御手段としての機能は、S1420〜S1430の処理にて実現されている。
【0313】
同様に、本発明(請求項20,21)における動作時間推定手段としての機能は、通算使用時間を更新する動作により実現され、更新制御手段としての機能は、通算使用時間と閾値との比較により、処理を切り替える動作(S1420〜S1430)により実現される。
【0314】
また、以上には、本発明の実施例として、第一〜第六実施例について説明したが、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。
例えば、上記実施例では、メモリカード19a内のデータをリフレッシュする際、メモリカード19aから読み出したデータを、メモリカード19aにおける読出元のブロックに再書込するようにしたが、本発明は、読み出したデータを別ブロックに書き込み、読出元ブロックのデータを消去することでも、リフレッシュ動作(データ更新動作)を実現することができる。このようにすれば、データ管理は煩雑になるものの、メモリカード19a内のメモリセルを万遍なく使用することができ、メモリカード19aの寿命を長くすることができる。
【0315】
また、S430,S660においては、処理対象ブロックのデータを、NVRAM25cにバックアップするようにしたが、メモリカード19aの特定領域に、処理対象ブロックのデータをバックアップするようにしてもよい。同様に、再書込進捗情報についても、メモリカード19aに記録すればよい。
【0316】
この他、カード管理処理における閾値T1,T2の設定方法について、上では述べなかったが、閾値T1,T2については、データ破壊の確率が一定以上高くなる経過時間と、データ破壊の確率が一定以上高くなるデータ書込回数と、製品の保証期間と、を考慮して定められるのがよい。
【0317】
例えば、データ破壊の確率が高くなる経過時間が1年であり、データ破壊の確率が高くなるメモリセルへのデータ書込回数が20回である場合に、製品保証期間を10年に設定する場合には、閾値T1として、0.5年から1年の時間を設定するのがよい。また、データ破壊の確率が高くなる経過時間が0.1年であり、データ破壊の確率が高くなるメモリセルへのデータ書込回数が100回である場合に、製品保証期間を10年に設定する場合には、閾値T1として、0.1年程度の時間を設定するのがよい。
【0318】
この他、高温によるリテンション低下を極力抑えるため、ナビゲーション装置1の設置位置は、メモリカード19aが高温に晒されないように工夫されるのが好ましい。この他、ナビゲーション装置1周辺に断熱材を設けたり、ファンなどを用いて、ナビゲーション装置1の放熱構造を工夫されると、一層好ましい。
【0319】
また、第三実施例では、カードスロット部19内部に温度センサを設けるようにしたが、カードスロット部19内部に温度センサを設けずに、高温時間推定処理では、車両に搭載された外気温センサに基づいて各ステップを実行するようにしてもよい。
【0320】
この他、第一及び第二実施例では、読出カウンタCNを、各ブロック毎に設けたが、読出カウンタCNは、所定数のブロック単位で設けられてもよい。
また、以上には、現在日時の取得方法について詳しく言及しなかったが、周知のように、GPS衛星から送信されてくる信号に基づき、絶対時間を把握することが可能であるので、本発明を、ナビゲーション装置に適用する場合には、GPS受信機を通じて、現在日時の情報を取得すればよい。また、GPS受信機から取得した時刻情報に基づいて、定期的に、電子機器の内部時計を調整するようにし、この内部時計に基づいて、メモリカード19aに、データ書込日時を記録するようにしてもよい。
【0321】
この他、電子機器に時計機能を設けると共に、必要に応じ、ユーザ側で時刻を調整できるようにしてもよいし、車両が有する別の時計に基づいて、電子機器の内部時計が刻む時刻を調整できるようにしてもよい。その他、電子機器に通信機能を設け、外部ネットワーク経由で時刻情報を取得し、電子機器の内部時計が刻む時刻を調整できるようにしてもよい。
【図面の簡単な説明】
【0322】
【図1】ナビゲーション装置1の構成を表すブロック図である。
【図2】読取制御処理を通じたデータ取得態様を表す説明図(a)及び制御部25が実行する読出制御処理を表すフローチャート(b)である。
【図3】制御部25が実行する起動後処理を表すフローチャートである。
【図4】制御部25が実行するカード管理処理を表すフローチャートである。
【図5】制御部25が実行する再書込制御処理を表すフローチャートである。
【図6】制御部25が実行するエラー検出処理を表すフローチャートである。
【図7】制御部25が実行する再起動時処理を表すフローチャートである。
【図8】第二実施例の起動後処理を表すフローチャート(a)及び制御部25が実行する監視対象設定処理を表すフローチャート(b)である。
【図9】第二実施例の読出制御処理を表すフローチャートである
【図10】変形例の監視対象設定処理を表すフローチャート(a)及び変形例の読出制御処理を表すフローチャート(b)である。
【図11】制御部25が実行する高温時間推定処理を表すフローチャートである。
【図12】制御部25が実行するデータ監視修復処理を表すフローチャートである。
【図13】電源の接続態様を表す説明図(a)並びにアクセサリ電源及び常時電源の電圧変化の態様を表したタイムチャート(b)である。
【図14】第五実施例の再書込制御処理を表すフローチャートである。
【図15】制御部25が実行する再書込安全判定処理を表すフローチャート(a)及び再書込許可フラグの変化態様を表した説明図(b)である。
【図16】第五実施例のエラー検出処理を表すフローチャートである。
【図17】第五実施例の再起動時処理を表すフローチャートである。
【図18】第六実施例の起動後処理を表すフローチャートである。
【図19】第六実施例のカード管理処理を表すフローチャートである。
【符号の説明】
【0323】
1…ナビゲーション装置、11…位置検出器、13…操作スイッチ群、19…カードスロット部、19a…メモリカード、21…表示部、23…音声出力部、25…制御部、25a…CPU、25b…RAM、25c…NVRAM
【特許請求の範囲】
【請求項1】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、
前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段と、
前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込するデータ更新処理を実行することにより、前記不揮発性メモリが記憶するデータを更新するデータ更新手段と、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの経過時間である書込後経過時間を、推定する書込後経過時間推定手段と、
前記書込後経過時間推定手段により推定された書込後経過時間が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる更新制御手段と、
を備えることを特徴とする電子機器。
【請求項2】
前記書込後経過時間推定手段は、前記データ更新手段により最後に前記データ更新処理が実行された時点からの経過時間を、前記書込後経過時間として推定する構成にされていることを特徴とする請求項1記載の電子機器。
【請求項3】
前記データ更新手段は、前記データ更新処理の実行時に、現在日時の情報を、データ書込日時の情報として、前記不揮発性メモリに書き込む構成にされ、
前記書込後経過時間推定手段は、前記不揮発性メモリに記憶された前記データ書込日時からの経過時間を、前記書込後経過時間として推定する構成にされていること
を特徴とする請求項1記載の電子機器。
【請求項4】
前記不揮発性メモリを内包するメモリカードを着脱自在に接続可能なスロット部を備え、前記スロット部を介して前記メモリカードと接続されて、前記メモリカードが内包する前記不揮発性メモリが記憶するデータに基づく処理を実行する請求項2記載の電子機器であって、
前記書込後経過時間推定手段は、前記メモリカードが内包する前記不揮発性メモリに対して過去に前記データ更新処理が実行されていないとき、前記メモリカードが前記スロット部に最初に接続された時点からの経過時間を、前記書込後経過時間として推定する構成にされていること
を特徴とする電子機器。
【請求項5】
前記更新制御手段は、前記不揮発性メモリに対して過去に前記データ更新処理が実行されている場合、前記書込後経過時間推定手段により推定された書込後経過時間が、第一の閾値を超えた時点で、前記データ更新手段に前記データ更新処理を実行させるが、前記不揮発性メモリに対して過去に前記データ更新処理が実行されていない場合には、前記書込後経過時間推定手段により推定された書込後経過時間が、前記第一の閾値よりも小さい第二の閾値を超えた時点で、前記データ更新手段に前記データ更新処理を実行させる構成にされていることを特徴とする請求項4記載の電子機器。
【請求項6】
前記不揮発性メモリが所定温度以上の高温環境下におかれた時間を推定する高温時間推定手段
を備え、
前記更新制御手段は、更に、前記高温時間推定手段により推定された時間が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる構成にされていること
を特徴とする請求項1〜請求項5のいずれかに記載の電子機器。
【請求項7】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、
前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段と、
前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込するデータ更新処理を実行することにより、前記不揮発性メモリが記憶するデータを更新するデータ更新手段と、
前記不揮発性メモリが所定温度以上の高温環境下におかれた時間を推定する高温時間推定手段と、
前記高温時間推定手段により推定された時間が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる更新制御手段と、
を備えることを特徴とする電子機器。
【請求項8】
前記不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが前記不揮発性メモリから読み出された回数である読出回数を計測する読出回数計測手段
を備え、
前記更新制御手段は、更に、前記読出回数計測手段の計測結果に基づき、前記各単位データについて、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定し、前記データ更新手段に前記データ更新処理を実行させる構成にされ、
前記データ更新手段は、前記更新制御手段から前記処理対象データが指定されると、前記データ更新処理として、前記不揮発性メモリが記憶するデータの内、前記更新制御手段から指定された処理対象データを選択的に前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行する構成にされていること
を特徴とする請求項1〜請求項7のいずれかに記載の電子機器。
【請求項9】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、
前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段と、
前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込するデータ更新処理を実行することにより、前記不揮発性メモリが記憶するデータを更新するデータ更新手段と、
前記不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが前記不揮発性メモリから読み出された回数である読出回数を計測する読出回数計測手段と、
前記読出回数計測手段の計測結果に基づき、前記各単位データについて、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定し、前記データ更新手段に前記データ更新処理を実行させる更新制御手段と、
を備え、
前記データ更新手段は、前記データ更新処理として、前記不揮発性メモリが記憶するデータの内、前記更新制御手段から指定された処理対象データを選択的に前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行する構成にされていること
を特徴とする電子機器。
【請求項10】
前記更新制御手段は、前記不揮発性メモリが記憶するデータを構成する単位データ群の内、予め設定された監視対象の単位データに限って、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定し、前記データ更新手段に前記データ更新処理を実行させる構成にされ、前記監視対象に設定されていない単位データについては、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定し、前記データ更新手段に前記データ更新処理を実行させる処理を実行しない構成にされていること
を特徴とする請求項8又は請求項9記載の電子機器。
【請求項11】
前記電子機器は、前記不揮発性メモリに記憶された地図データに基づき、現在位置周辺の地図を表す地図画面を表示する地図表示装置であって、更にユーザインタフェースを通じて登録された地点の情報を、前記地図画面を通じて案内する機能を有するものであり、
前記ユーザインタフェースを通じて登録された地点の情報に基づき、前記更新制御手段に対し、前記監視対象を設定する監視対象設定手段
を備えること特徴とする請求項10記載の電子機器。
【請求項12】
読出指令が入力されると、当該読出指令にて指定されたデータを読み出し、当該読み出したデータを、前記読出指令元に出力する読出制御手段と、
前記不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが前記読出制御手段により読み出された回数である総読出回数を計測する総読出回数計測手段と、
前記総読出回数計測手段の計測結果に基づき、前記不揮発性メモリが記憶するデータの内、一部のデータを前記記憶手段の特定領域に記憶保持させるコピーデータ生成手段と、
を備え、
前記読出制御手段は、前記読出指令にて指定されたデータが、前記コピーデータ生成手段の動作により前記記憶手段の特定領域に記憶保持されている場合、前記記憶手段の特定領域から前記読出指令にて指定されたデータを読み出し、前記読出指令にて指定されたデータが、前記コピーデータ生成手段の動作により前記記憶手段の特定領域に記憶保持されていない場合には、前記不揮発性メモリから前記読出指令にて指定されたデータを読み出す構成にされていること
を特徴とする請求項1〜請求項7のいずれかに記載の電子機器。
【請求項13】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、
前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段と、
読出指令が入力されると、前記読出指令にて指定されたデータを読み出し、当該読み出したデータを、前記読出指令元に出力する読出制御手段と、
前記不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが前記読出制御手段により読み出された回数である総読出回数を計測する総読出回数計測手段と、
前記総読出回数計測手段の計測結果に基づき、前記不揮発性メモリが記憶するデータの内、一部のデータを前記記憶手段の特定領域に記憶保持させるコピーデータ生成手段と、
を備え、
前記読出制御手段は、前記読出指令にて指定されたデータが、前記コピーデータ生成手段の動作によって前記記憶手段の特定領域に記憶保持されている場合、前記記憶手段の特定領域から前記読出指令にて指定されたデータを読み出し、前記読出指令にて指定されたデータが、前記コピーデータ生成手段の動作によって前記記憶手段の特定領域に記憶保持されていない場合には、前記不揮発性メモリから前記読出指令にて指定されたデータを読み出す構成にされていること
を特徴とする電子機器。
【請求項14】
前記不揮発性メモリにおいては、特定種のデータに関して、同一のデータが、複数個、予め書き込まれており、
前記電子機器は、複数個ある前記特定種のデータ内の一つに異常が生じると、前記複数個ある特定種のデータの内、異常が生じていない同一のデータに基づき、前記異常が生じた特定種のデータを修復するデータ修復手段を備える構成にされていること
を特徴とする請求項1〜請求項13のいずれかに記載の電子機器。
【請求項15】
車両に搭載されて使用される請求項1〜請求項12のいずれかに記載の電子機器であって、
当該電子機器が搭載された自車両の運転状態を表す情報を取得する車両情報取得手段と、
前記車両情報取得手段が取得した前記自車両の運転状態を表す情報に基づき、自車両の運転状態が所定条件を満足する期間、前記データ更新手段による前記データ更新処理の実行を禁止する禁止手段と、
を備えることを特徴とする電子機器。
【請求項16】
前記車両情報取得手段は、前記自車両の運転状態を表す情報として、自車両の走行速度を表す情報を取得する構成にされていることを特徴とする請求項15記載の電子機器。
【請求項17】
前記禁止手段は、前記車両情報取得手段が取得した前記自車両の走行速度を表す情報に基づき、前記自車両の運転状態が所定条件を満足する期間として、自車両の走行速度が閾値未満である期間、前記データ更新手段による前記データ更新処理の実行を禁止する構成にされていること
を特徴とする請求項16記載の電子機器。
【請求項18】
車載用の電子機器であって、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの自車両の走行距離を、推定する走行距離推定手段
を備え、
前記更新制御手段は、更に、前記走行距離推定手段により推定された走行距離が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる構成にされていること
を特徴とする請求項1〜請求項8及び請求項12及び請求項14〜請求項17のいずれかに記載の電子機器。
【請求項19】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する車載用の電子機器であって、
前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段と、
前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込するデータ更新処理を実行することにより、前記不揮発性メモリが記憶するデータを更新するデータ更新手段と、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの自車両の走行距離を、推定する走行距離推定手段と、
前記走行距離推定手段により推定された走行距離が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる更新制御手段と、
を備えることを特徴とする電子機器。
【請求項20】
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの当該電子機器の動作時間を推定する動作時間推定手段
を備え、
前記更新制御手段は、更に、前記動作時間推定手段により推定された動作時間が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる構成にされていること
を特徴とする請求項1〜請求項8及び請求項12及び請求項14〜請求項17のいずれかに記載の電子機器。
【請求項21】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、
前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段と、
前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込するデータ更新処理を実行することにより、前記不揮発性メモリが記憶するデータを更新するデータ更新手段と、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの当該電子機器の動作時間を推定する動作時間推定手段と、
前記動作時間推定手段により推定された動作時間が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる更新制御手段と、
を備えることを特徴とする電子機器。
【請求項22】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段を備える電子機器
のコンピュータに、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの経過時間である書込後経過時間を、推定する書込後経過時間推定手順と、
前記書込後経過時間推定手順で推定された書込後経過時間が閾値を超える度、前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行して、前記不揮発性メモリが記憶するデータを更新する更新制御手順と、
を実行させるためのプログラム。
【請求項23】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段を備える電子機器
のコンピュータに、
前記不揮発性メモリが所定温度以上の高温環境下におかれた時間を推定する高温時間推定手順と、
前記高温時間推定手順で推定された時間が閾値を超える度、前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行して、前記不揮発性メモリが記憶するデータを更新する更新制御手順と、
を実行させるためのプログラム。
【請求項24】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段を備える電子機器
のコンピュータに、
前記不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが前記不揮発性メモリから読み出された回数である読出回数を計測する読出回数計測手順と、
前記読出回数計測手順での計測結果に基づき、前記各単位データについて、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを、選択的に前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行して、前記不揮発性メモリが記憶するデータを更新するデータ更新手順と、
を実行させるためのプログラム。
【請求項25】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段を備える電子機器
のコンピュータに、
読出指令が入力されると、前記読出指令にて指定されたデータを読み出し、当該読み出したデータを、前記読出指令元に出力する読出制御手順と、
前記不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが前記読出制御手順により読み出された回数である総読出回数を計測する総読出回数計測手順と、
前記総読出回数計測手順での計測結果に基づき、前記不揮発性メモリが記憶するデータの内、一部のデータを前記記憶手段の特定領域に記憶保持させるコピーデータ生成手順と、
を実行させ、
前記読出制御手順では、前記読出指令にて指定されたデータが、前記コピーデータ生成手順によって前記記憶手段の特定領域に記憶保持されている場合、前記記憶手段の特定領域から前記読出指令にて指定されたデータを読み出し、前記読出指令にて指定されたデータが、前記コピーデータ生成手順によって前記記憶手段の特定領域に記憶保持されていない場合には、前記不揮発性メモリから前記読出指令にて指定されたデータを読み出す処理を、前記コンピュータに実行させるためのプログラム。
【請求項26】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する車載用の電子機器であって、前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段を備える電子機器
のコンピュータに、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの自車両の走行距離を、推定する走行距離推定手順と、
前記走行距離推定手順で推定された走行距離が閾値を超える度、前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行して、前記不揮発性メモリが記憶するデータを更新する更新制御手順と、
を実行させるためのプログラム。
【請求項27】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段を備える電子機器
のコンピュータに、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの当該電子機器の動作時間を推定する動作時間推定手順と、
前記動作時間推定手順により推定された動作時間が閾値を超える度、前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行して、前記不揮発性メモリが記憶するデータを更新する更新制御手順と、
を実行させるためのプログラム。
【請求項1】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、
前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段と、
前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込するデータ更新処理を実行することにより、前記不揮発性メモリが記憶するデータを更新するデータ更新手段と、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの経過時間である書込後経過時間を、推定する書込後経過時間推定手段と、
前記書込後経過時間推定手段により推定された書込後経過時間が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる更新制御手段と、
を備えることを特徴とする電子機器。
【請求項2】
前記書込後経過時間推定手段は、前記データ更新手段により最後に前記データ更新処理が実行された時点からの経過時間を、前記書込後経過時間として推定する構成にされていることを特徴とする請求項1記載の電子機器。
【請求項3】
前記データ更新手段は、前記データ更新処理の実行時に、現在日時の情報を、データ書込日時の情報として、前記不揮発性メモリに書き込む構成にされ、
前記書込後経過時間推定手段は、前記不揮発性メモリに記憶された前記データ書込日時からの経過時間を、前記書込後経過時間として推定する構成にされていること
を特徴とする請求項1記載の電子機器。
【請求項4】
前記不揮発性メモリを内包するメモリカードを着脱自在に接続可能なスロット部を備え、前記スロット部を介して前記メモリカードと接続されて、前記メモリカードが内包する前記不揮発性メモリが記憶するデータに基づく処理を実行する請求項2記載の電子機器であって、
前記書込後経過時間推定手段は、前記メモリカードが内包する前記不揮発性メモリに対して過去に前記データ更新処理が実行されていないとき、前記メモリカードが前記スロット部に最初に接続された時点からの経過時間を、前記書込後経過時間として推定する構成にされていること
を特徴とする電子機器。
【請求項5】
前記更新制御手段は、前記不揮発性メモリに対して過去に前記データ更新処理が実行されている場合、前記書込後経過時間推定手段により推定された書込後経過時間が、第一の閾値を超えた時点で、前記データ更新手段に前記データ更新処理を実行させるが、前記不揮発性メモリに対して過去に前記データ更新処理が実行されていない場合には、前記書込後経過時間推定手段により推定された書込後経過時間が、前記第一の閾値よりも小さい第二の閾値を超えた時点で、前記データ更新手段に前記データ更新処理を実行させる構成にされていることを特徴とする請求項4記載の電子機器。
【請求項6】
前記不揮発性メモリが所定温度以上の高温環境下におかれた時間を推定する高温時間推定手段
を備え、
前記更新制御手段は、更に、前記高温時間推定手段により推定された時間が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる構成にされていること
を特徴とする請求項1〜請求項5のいずれかに記載の電子機器。
【請求項7】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、
前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段と、
前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込するデータ更新処理を実行することにより、前記不揮発性メモリが記憶するデータを更新するデータ更新手段と、
前記不揮発性メモリが所定温度以上の高温環境下におかれた時間を推定する高温時間推定手段と、
前記高温時間推定手段により推定された時間が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる更新制御手段と、
を備えることを特徴とする電子機器。
【請求項8】
前記不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが前記不揮発性メモリから読み出された回数である読出回数を計測する読出回数計測手段
を備え、
前記更新制御手段は、更に、前記読出回数計測手段の計測結果に基づき、前記各単位データについて、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定し、前記データ更新手段に前記データ更新処理を実行させる構成にされ、
前記データ更新手段は、前記更新制御手段から前記処理対象データが指定されると、前記データ更新処理として、前記不揮発性メモリが記憶するデータの内、前記更新制御手段から指定された処理対象データを選択的に前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行する構成にされていること
を特徴とする請求項1〜請求項7のいずれかに記載の電子機器。
【請求項9】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、
前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段と、
前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込するデータ更新処理を実行することにより、前記不揮発性メモリが記憶するデータを更新するデータ更新手段と、
前記不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが前記不揮発性メモリから読み出された回数である読出回数を計測する読出回数計測手段と、
前記読出回数計測手段の計測結果に基づき、前記各単位データについて、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定し、前記データ更新手段に前記データ更新処理を実行させる更新制御手段と、
を備え、
前記データ更新手段は、前記データ更新処理として、前記不揮発性メモリが記憶するデータの内、前記更新制御手段から指定された処理対象データを選択的に前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行する構成にされていること
を特徴とする電子機器。
【請求項10】
前記更新制御手段は、前記不揮発性メモリが記憶するデータを構成する単位データ群の内、予め設定された監視対象の単位データに限って、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定し、前記データ更新手段に前記データ更新処理を実行させる構成にされ、前記監視対象に設定されていない単位データについては、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定し、前記データ更新手段に前記データ更新処理を実行させる処理を実行しない構成にされていること
を特徴とする請求項8又は請求項9記載の電子機器。
【請求項11】
前記電子機器は、前記不揮発性メモリに記憶された地図データに基づき、現在位置周辺の地図を表す地図画面を表示する地図表示装置であって、更にユーザインタフェースを通じて登録された地点の情報を、前記地図画面を通じて案内する機能を有するものであり、
前記ユーザインタフェースを通じて登録された地点の情報に基づき、前記更新制御手段に対し、前記監視対象を設定する監視対象設定手段
を備えること特徴とする請求項10記載の電子機器。
【請求項12】
読出指令が入力されると、当該読出指令にて指定されたデータを読み出し、当該読み出したデータを、前記読出指令元に出力する読出制御手段と、
前記不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが前記読出制御手段により読み出された回数である総読出回数を計測する総読出回数計測手段と、
前記総読出回数計測手段の計測結果に基づき、前記不揮発性メモリが記憶するデータの内、一部のデータを前記記憶手段の特定領域に記憶保持させるコピーデータ生成手段と、
を備え、
前記読出制御手段は、前記読出指令にて指定されたデータが、前記コピーデータ生成手段の動作により前記記憶手段の特定領域に記憶保持されている場合、前記記憶手段の特定領域から前記読出指令にて指定されたデータを読み出し、前記読出指令にて指定されたデータが、前記コピーデータ生成手段の動作により前記記憶手段の特定領域に記憶保持されていない場合には、前記不揮発性メモリから前記読出指令にて指定されたデータを読み出す構成にされていること
を特徴とする請求項1〜請求項7のいずれかに記載の電子機器。
【請求項13】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、
前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段と、
読出指令が入力されると、前記読出指令にて指定されたデータを読み出し、当該読み出したデータを、前記読出指令元に出力する読出制御手段と、
前記不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが前記読出制御手段により読み出された回数である総読出回数を計測する総読出回数計測手段と、
前記総読出回数計測手段の計測結果に基づき、前記不揮発性メモリが記憶するデータの内、一部のデータを前記記憶手段の特定領域に記憶保持させるコピーデータ生成手段と、
を備え、
前記読出制御手段は、前記読出指令にて指定されたデータが、前記コピーデータ生成手段の動作によって前記記憶手段の特定領域に記憶保持されている場合、前記記憶手段の特定領域から前記読出指令にて指定されたデータを読み出し、前記読出指令にて指定されたデータが、前記コピーデータ生成手段の動作によって前記記憶手段の特定領域に記憶保持されていない場合には、前記不揮発性メモリから前記読出指令にて指定されたデータを読み出す構成にされていること
を特徴とする電子機器。
【請求項14】
前記不揮発性メモリにおいては、特定種のデータに関して、同一のデータが、複数個、予め書き込まれており、
前記電子機器は、複数個ある前記特定種のデータ内の一つに異常が生じると、前記複数個ある特定種のデータの内、異常が生じていない同一のデータに基づき、前記異常が生じた特定種のデータを修復するデータ修復手段を備える構成にされていること
を特徴とする請求項1〜請求項13のいずれかに記載の電子機器。
【請求項15】
車両に搭載されて使用される請求項1〜請求項12のいずれかに記載の電子機器であって、
当該電子機器が搭載された自車両の運転状態を表す情報を取得する車両情報取得手段と、
前記車両情報取得手段が取得した前記自車両の運転状態を表す情報に基づき、自車両の運転状態が所定条件を満足する期間、前記データ更新手段による前記データ更新処理の実行を禁止する禁止手段と、
を備えることを特徴とする電子機器。
【請求項16】
前記車両情報取得手段は、前記自車両の運転状態を表す情報として、自車両の走行速度を表す情報を取得する構成にされていることを特徴とする請求項15記載の電子機器。
【請求項17】
前記禁止手段は、前記車両情報取得手段が取得した前記自車両の走行速度を表す情報に基づき、前記自車両の運転状態が所定条件を満足する期間として、自車両の走行速度が閾値未満である期間、前記データ更新手段による前記データ更新処理の実行を禁止する構成にされていること
を特徴とする請求項16記載の電子機器。
【請求項18】
車載用の電子機器であって、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの自車両の走行距離を、推定する走行距離推定手段
を備え、
前記更新制御手段は、更に、前記走行距離推定手段により推定された走行距離が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる構成にされていること
を特徴とする請求項1〜請求項8及び請求項12及び請求項14〜請求項17のいずれかに記載の電子機器。
【請求項19】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する車載用の電子機器であって、
前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段と、
前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込するデータ更新処理を実行することにより、前記不揮発性メモリが記憶するデータを更新するデータ更新手段と、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの自車両の走行距離を、推定する走行距離推定手段と、
前記走行距離推定手段により推定された走行距離が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる更新制御手段と、
を備えることを特徴とする電子機器。
【請求項20】
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの当該電子機器の動作時間を推定する動作時間推定手段
を備え、
前記更新制御手段は、更に、前記動作時間推定手段により推定された動作時間が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる構成にされていること
を特徴とする請求項1〜請求項8及び請求項12及び請求項14〜請求項17のいずれかに記載の電子機器。
【請求項21】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、
前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段と、
前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込するデータ更新処理を実行することにより、前記不揮発性メモリが記憶するデータを更新するデータ更新手段と、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの当該電子機器の動作時間を推定する動作時間推定手段と、
前記動作時間推定手段により推定された動作時間が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる更新制御手段と、
を備えることを特徴とする電子機器。
【請求項22】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段を備える電子機器
のコンピュータに、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの経過時間である書込後経過時間を、推定する書込後経過時間推定手順と、
前記書込後経過時間推定手順で推定された書込後経過時間が閾値を超える度、前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行して、前記不揮発性メモリが記憶するデータを更新する更新制御手順と、
を実行させるためのプログラム。
【請求項23】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段を備える電子機器
のコンピュータに、
前記不揮発性メモリが所定温度以上の高温環境下におかれた時間を推定する高温時間推定手順と、
前記高温時間推定手順で推定された時間が閾値を超える度、前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行して、前記不揮発性メモリが記憶するデータを更新する更新制御手順と、
を実行させるためのプログラム。
【請求項24】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段を備える電子機器
のコンピュータに、
前記不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが前記不揮発性メモリから読み出された回数である読出回数を計測する読出回数計測手順と、
前記読出回数計測手順での計測結果に基づき、前記各単位データについて、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを、選択的に前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行して、前記不揮発性メモリが記憶するデータを更新するデータ更新手順と、
を実行させるためのプログラム。
【請求項25】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段を備える電子機器
のコンピュータに、
読出指令が入力されると、前記読出指令にて指定されたデータを読み出し、当該読み出したデータを、前記読出指令元に出力する読出制御手順と、
前記不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが前記読出制御手順により読み出された回数である総読出回数を計測する総読出回数計測手順と、
前記総読出回数計測手順での計測結果に基づき、前記不揮発性メモリが記憶するデータの内、一部のデータを前記記憶手段の特定領域に記憶保持させるコピーデータ生成手順と、
を実行させ、
前記読出制御手順では、前記読出指令にて指定されたデータが、前記コピーデータ生成手順によって前記記憶手段の特定領域に記憶保持されている場合、前記記憶手段の特定領域から前記読出指令にて指定されたデータを読み出し、前記読出指令にて指定されたデータが、前記コピーデータ生成手順によって前記記憶手段の特定領域に記憶保持されていない場合には、前記不揮発性メモリから前記読出指令にて指定されたデータを読み出す処理を、前記コンピュータに実行させるためのプログラム。
【請求項26】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する車載用の電子機器であって、前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段を備える電子機器
のコンピュータに、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの自車両の走行距離を、推定する走行距離推定手順と、
前記走行距離推定手順で推定された走行距離が閾値を超える度、前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行して、前記不揮発性メモリが記憶するデータを更新する更新制御手順と、
を実行させるためのプログラム。
【請求項27】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段を備える電子機器
のコンピュータに、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの当該電子機器の動作時間を推定する動作時間推定手順と、
前記動作時間推定手順により推定された動作時間が閾値を超える度、前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行して、前記不揮発性メモリが記憶するデータを更新する更新制御手順と、
を実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【公開番号】特開2010−27021(P2010−27021A)
【公開日】平成22年2月4日(2010.2.4)
【国際特許分類】
【出願番号】特願2008−243166(P2008−243166)
【出願日】平成20年9月22日(2008.9.22)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】
【公開日】平成22年2月4日(2010.2.4)
【国際特許分類】
【出願日】平成20年9月22日(2008.9.22)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】
[ Back to top ]