ナビゲーション装置
【課題】地図データ格納部23内のデータへのアクセス速度の低下を抑えることができるナビゲーション装置20を提供する
【解決手段】本発明では、地図データ格納部23内の物理的な位置を識別する単位領域識別情報を、当該物理的な位置に格納されているデータの識別番号に対応付けると共に、当該データの識別番号が昇順あるいは降順となるように格納されているファイル管理テーブル231を参照して、目的のデータが格納されている地図データ格納部23内の物理的な位置にアクセスする。
【解決手段】本発明では、地図データ格納部23内の物理的な位置を識別する単位領域識別情報を、当該物理的な位置に格納されているデータの識別番号に対応付けると共に、当該データの識別番号が昇順あるいは降順となるように格納されているファイル管理テーブル231を参照して、目的のデータが格納されている地図データ格納部23内の物理的な位置にアクセスする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両の現在位置を算出して表示するナビゲーション装置に関する。
【背景技術】
【0002】
従来、車両の現在位置の表示や、目的地までの経路の誘導等を行うための地図データをハードディスク型記録装置(以下、HDDと称する)に格納するナビゲーション装置が知られている。このようなHDDを有するナビゲーション装置では、ユーザの設定情報や、最新の地図データとの差分情報等を、HDDに記録する場合がある。一般的に、HDDに対して、データの書き込みや消去を繰り返すと、HDD内の格納領域にフラグメンテーションが発生する。そのため、データへのアクセス速度が低下する場合がある。
【0003】
これを回避するために、特許文献1には、所定の条件が満たされる場合に、HDDのフラグメンテーションを解消するためのデフラグを行う技術が開示されている。
【0004】
【特許文献1】特開2001−280976号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、デフラグを実行中は、ナビゲーション装置を操作することができない場合がある。また、HDDの格納容量が大きい場合には、デフラグに長い時間がかかる場合がある。そのため、デフラグを実行中はナビゲーション装置に電源を供給し続けなければならず、デフラグが終了するまで車両のエンジンを停止することができない場合があった。
【0006】
本発明は上記事情を鑑みてなされたものであり、本発明の目的は、HDD内のデータへのアクセス速度の低下を抑えることができるナビゲーション装置を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明では、記憶装置内の物理的な位置を識別する単位領域識別情報を、当該物理的な位置に格納されているデータの識別番号に対応付けると共に、当該データの識別番号が昇順あるいは降順となるように格納されているテーブルを参照して、目的のデータが格納されている記憶装置内の物理的な位置にアクセスする。
【0008】
また、本発明は、例えば、車両の現在位置を表示装置に表示する車載用のナビゲーション装置であって、地図データを構成する複数のファイル格納する地図データ格納手段と、地図データを構成する複数のファイルの地図格納手段内の物理的な位置を管理するためのファイル管理テーブルと、現在位置を地図データ格納手段に格納されている地図データと共に表示装置に表示する現在位置表示手段とを備え、地図データ格納手段は、アクセス可能な最小の単位であり、それぞれに識別番号が割り当てられている単位領域により構成され、ファイルを単位領域1つあたりの容量に分割した分割データを、複数の単位領域のそれぞれに格納しており、ファイル管理テーブルは、ファイルのそれぞれについて、当該ファイルを構成する分割データのそれぞれに、当該ファイル内での順番に従ってデータ識別番号を割り当て、当該データ識別番号を昇順または降順に連続して格納すると共に、当該分割データが格納されている単位領域の単位領域識別番号を当該データ識別番号に対応付けて格納し、現在位置表示手段は、単位領域1つあたりの容量およびアクセス対象のデータのファイル内の位置に基づいて、アクセス対象のデータに対応する分割データのデータ識別番号を算出し、ファイル管理テーブルを参照して、算出したデータ識別番号に対応する単位領域識別番号を特定することにより、アクセスすべきデータが格納されている単位領域にアクセスすることを特徴とするナビゲーション装置を提供する。
【発明の効果】
【0009】
本発明によれば、記憶装置内のデータへのアクセス速度の低下を抑えることができるナビゲーション装置を提供することができる。
【発明を実施するための最良の形態】
【0010】
以下に、本発明の実施の形態について、図面を参照しながら説明する。
【0011】
図1は、本発明の一実施形態に係るナビゲーションシステム10のシステム構成図である。ナビゲーションシステム10は、基地局11、地図データ配信サーバ13、および車両14を備える。
【0012】
基地局11は、電波を介して、例えば、WCDMA(Wideband-Code Division Multiple Access)やPHS(Personal Handyphone System)、無線LAN等の無線通信方式に基づいて車両14と通信すると共に、インターネット等の通信網12を介して、地図データ配信サーバ13と通信を行う。通信網12は、全て有線通信網によって構成されていてもよく、部分的に無線通信網によって構成されていてもよい。
【0013】
地図データ配信サーバ13は、施設や道路等の新たな建設、道路の規制内容の変更等に基づいて、道路データを含む地図データを更新する。また、基地局11および通信網12を介して、更新された地図データの要求を車両14から受信した場合に、当該更新された地図データを通信網12および基地局11を介して車両14へ送信する。
【0014】
なお、本実施形態において、地図データ配信サーバ13が作成する地図データは、道路データや住宅データ等の複数のカテゴリに分けられており、それぞれのカテゴリは、さらに、地図を複数の領域に分割することによって得られるメッシュ単位に分けられている。地図データ配信サーバ13は、それぞれのカテゴリにおいて、メッシュ単位の地図データを1つのファイルとして作成する。そして、地図データ配信サーバ13は、更新された地図データの要求を車両14から受信すると、変更のあったファイルを車両14へ送信する。
【0015】
車両14は、表示装置15、センサ16、通信端末17、およびナビゲーション装置20を有する。通信端末17は、最寄りの基地局11と、電波を介して、例えば、WCDMA(Wideband-Code Division Multiple Access)やPHS(Personal Handyphone System)、無線LAN等の無線通信方式に基づいて通信する。
【0016】
センサ16は、GPS受信機や、方位センサ、車速センサ等であり、測地衛星に対する車両14の現在位置や、車両14の進行方位、車両14の移動距離等を測定し、測定信号をナビゲーション装置20へ送信する。
【0017】
ナビゲーション装置20は、道路データを含む地図データを格納しており、センサ16からの測定信号に基づいて、車両14の相対変位を算出し、地図データおよび算出した相対変位に基づいて、車両14の現在位置を地図上に算出して、表示装置15に表示させる。
【0018】
なお、表示装置15は、車両14の現在位置を画像として表示するが、音声を再生する機能を有し、ナビゲーション装置20が車両14の現在位置と共に生成した音声ガイダンス等を、当該車両14の現在位置と共に再生してもよい。
【0019】
図2は、ナビゲーション装置20の詳細な機能構成の一例を示すブロック図である。ナビゲーション装置20は、現在位置表示部21、現在位置算出部22、地図データ格納部23、およびデータ取得部24を備える。
【0020】
地図データ格納部23は、複数のファイルで構成される地図データを格納している。また、地図データ格納部23は、物理的にアクセス可能な最小の単位である単位領域によって構成されており、それぞれのファイルをそれぞれの単位領域の容量で分割した分割ファイルを、それぞれの単位領域に格納することにより、当該分割データによって構成されるファイルを格納する。また、地図データ格納部23は、格納すべきファイルを構成する分割データを、地図データ格納部23内において連続する単位領域に格納する。
【0021】
本例において、地図データ格納部23は、例えば、ハードディスク型記録装置であり、クラスタと呼ばれる最小の領域単位で物理的にアクセスが可能である。それぞれのクラスタには、クラスタ番号が割り当てられており、本実施形態では、連続するクラスタには、連続するクラスタ番号が、地図データ格納部23内の所定の領域を基準として昇順に割り当てられている。また、他の例として、地図データ格納部23は、フラッシュROMやEEP(Electrically Erasable Programmable)ROM、Fe(Ferroelectric)RAM、M(Magnetoresistive)RAM等の不揮発性メモリであってもよい。
【0022】
地図データ格納部23は、ディレクトリエントリ230、ファイル管理テーブル231、および地図データ232を格納している。地図データ232は、道路データや住宅データ、交通規制情報等のデータをファイルとして格納する。
【0023】
ディレクトリエントリ230は、地図データ232に格納されているそれぞれのファイルについて、当該ファイルの先頭のデータが格納されている地図データ格納部23内の単位領域の識別番号等を、当該ファイルの識別情報に対応付けて格納している。
【0024】
ファイル管理テーブル231は、地図データ232に格納されているそれぞれのファイルについて、当該ファイルを構成するデータのそれぞれを識別するデータ識別番号を、当該データ識別番号に対応するデータが格納されている単位領域の識別番号と共に格納している。
【0025】
データ取得部24は、通信端末17を介して、更新された地図データを地図データ配信サーバ13に要求し、当該要求に応答して地図データ配信サーバ13から送信された地図データを受信する。そして、データ取得部24は、受信した地図データを地図データ格納部23に格納する。このとき、現在位置算出部22は、更新されたデータを地図データ232に追加する処理、更新されたデータに対応する情報をディレクトリエントリ230およびファイル管理テーブル231に追加する処理等を行う。
【0026】
現在位置算出部22は、センサ16からの測定信号に基づいて、車両14の相対変位を算出し、算出した相対変位および地図データ格納部23に格納されている地図データに基づいて、車両14の現在位置を算出する。
【0027】
この際、現在位置算出部22は、ディレクトリエントリ230を参照して、読み出すべき地図データを含むファイルに対応する先頭のレコード番号を読み出す。そして、現在位置算出部22は、読み出すべき地図データを含むファイルの先頭のレコード番号と、読み出すべきデータの対応するファイル内の位置と、単位領域1つあたりの容量とに基づいてファイル管理テーブル231を参照し、読み出すべき地図データが格納されている単位領域の識別番号が格納されているレコードを読み出すことにより、読み出すべき地図データが格納されている単位領域の識別番号を特定する。そして、現在位置算出部22は、地図データ格納部23内の、特定した識別番号に対応する単位領域に格納されている地図データを読み出す。
【0028】
現在位置表示部21は、現在位置算出部22が算出した車両14の現在位置に基づいて、表示装置15に表示する地図データを地図データ格納部23から取得し、取得した地図データと共に現在位置算出部22が算出した車両14の現在位置を表示装置15に表示する。
【0029】
この際、現在位置算出部22の場合と同様に、現在位置表示部21は、ディレクトリエントリ230を参照して、読み出すべき地図データを含むファイルに対応する先頭のレコード番号を読み出し、ファイル管理テーブル231を参照して、読み出すべき地図データが格納されている単位領域を特定し、地図データ格納部23内の、特定した識別番号に対応する単位領域に格納されている地図データを読み出す。
【0030】
図3は、ディレクトリエントリ230の詳細なデータ構造の一例を示す。ディレクトリエントリ230は、それぞれのファイルの先頭の分割データの識別番号が格納されている現在位置算出部221内の先頭レコード番号2301、それぞれのファイルの先頭の分割データが格納されている地図データ格納部23内の先頭クラスタ番号2302、およびそれぞれのファイルのデータサイズ2303を、それぞれのファイルを識別するファイルID2300に対応付けて格納する。
【0031】
ディレクトリエントリ230を参照することにより、現在位置表示部21および現在位置算出部22は、読み出すべき地図データが含まれるファイルを構成する分割データのうち、先頭の分割データに対応するファイル管理テーブル231内のレコード番号を取得することができる。
【0032】
また、ディレクトリエントリ230は、それぞれのファイルの作成日時、更新日時、および属性等を、それぞれのファイルID2300に対応付けて格納していてもよい。
【0033】
図4は、ファイル管理テーブル231の詳細なデータ構造の一例を示す。ファイル管理テーブル231は、それぞれのファイルのファイルID2310毎に、ファイルを構成する分割データを識別する現在位置算出部2212および当該分割データのそれぞれが格納されているクラスタの現在位置算出部2213を、ファイル管理テーブル231が格納する全てのレコードを一意に識別する現在位置算出部2211に対応付けて格納している。
【0034】
本例において、データ番号2312は、対応するファイルの先頭の分割ファイルを0として、ファイル内の順番に従って、それぞれの分割データに割り当てられており、それぞれのファイル毎に、現在位置算出部2212が昇順となるようにファイル管理テーブル231に格納されている。本例では、連続するクラスタのそれぞれに、昇順となるようにクラスタ番号が割り当てられているので、小さい値のデータ番号2312に対応する分割データは、小さい値のクラスタ番号2313に対応するクラスタに格納され、大きい値のデータ番号2312に対応する分割データは、大きい値のクラスタ番号2313に対応するクラスタに格納される。
【0035】
ファイル管理テーブル231を参照することにより、現在位置表示部21および現在位置算出部22は、読み出すべき地図データが含まれている分割データが格納されているクラスタ番号を取得することができる。
【0036】
図5は、地図データ232の詳細なデータ構造の一例を示す。地図データ232は、異なる容量を有する複数の領域2320、領域2321、および領域2322を備える。
【0037】
なお、領域2320、領域2321、および領域2322のそれぞれは、地図データ格納部23に物理的に構成された記憶領域であり、地図データ格納部23は、この他に、ディレクトリエントリ230およびファイル管理テーブル231を格納する領域や、ナビゲーション装置20が動作するためのプログラムやパラメータ等を格納する領域を有する。また、地図データ格納部23は、この他に、外部から取得した音楽データやアプリケーションプログラム等を格納する領域を有してもよい。
【0038】
領域2320は、同一の容量を有する複数の領域によって構成される。領域2320を構成する複数の領域のそれぞれは、例えば2Gbyteの容量を有しており、それぞれの領域には、例えば、1Gbyteよりも大きく、かつ、2Gbyte以下のデータサイズのファイルが格納される。
【0039】
領域2321は、同一の容量を有する複数の領域によって構成され、それぞれの領域は、例えば1Gbyteの容量を有する。それぞれの領域には、例えば、500Mbyteよりも大きく、かつ、1Gbyte以下のデータサイズのファイルが格納される。
【0040】
領域2322は、同一の容量を有する複数の領域によって構成され、それぞれの領域は、例えば500MGbyteの容量を有する。それぞれの領域には、例えば、500Mbyte以下のデータサイズのファイルが格納される。
【0041】
領域2320、領域2321、および領域2322のそれぞれには、予備領域が設けられ、データ取得部24が地図データ配信サーバ13等から取得したファイルを新たに追加する場合、データ取得部24は、新たに追加するファイルをこの予備領域に格納する。また、データ取得部24が、領域2320、領域2321、および領域2322のそれぞれに格納されているファイルを書き換えることにより更新する場合、例えば、データ取得部24は、最新のファイルをそれぞれの領域に設けられた予備領域に書き込み、更新されるべきファイルが格納されている領域を予備領域にする。
【0042】
ここで、現在位置表示部21および現在位置算出部22が地図データ格納部23から所望の地図データを読み出す過程を詳しく説明する。現在位置表示部21および現在位置算出部22は、例えば、予め定められた処理によって、読み出すべきデータが含まれるファイルを特定すると共に、特定したファイル内での読み出すべきデータの位置を算出する。本例において、読み出すべきデータを含むファイルは、例えば、AAAA0001.DATであり、読み出すべきデータの当該ファイル中の位置は、先頭から80kbyteであると仮定する。なお、クラスタ1つあたりのデータサイズは、予め定められており、本例では16kbyteと仮定する。
【0043】
現在位置表示部21および現在位置算出部22は、読み出すべき地図データの対応するファイル中の位置をクラスタ1つあたりのデータサイズで除した商を算出することにより、読み出すべき地図データを含む分割データのデータ番号を算出する。例えば、ファイルの先頭から80kbyte目に読み出すべき地図データが含まれている場合、80kbyte÷16kbyte=5が読み出すべき地図データを含む分割データのデータ番号として算出される。
【0044】
そして、現在位置表示部21および現在位置算出部22は、ディレクトリエントリ230を参照して、読み出すべき地図データを含むファイルの先頭の分割データに関する情報が格納されているファイル管理テーブル231内のレコード番号を取得する。
【0045】
例えば、現在位置表示部21および現在位置算出部22は、図3のディレクトリエントリ230を参照して、AAAA0001.DATの先頭の分割データに関する情報が格納されているファイル管理テーブル231内のレコード番号である1を取得する。
【0046】
そして、現在位置表示部21および現在位置算出部22は、ディレクトリエントリ230を参照して取得したレコード番号に、読み出すべき地図データを含む分割データのデータ番号を加えることにより、読み出すべき地図データを含む分割データに関する情報を格納しているファイル管理テーブル231内のレコード番号を特定する。
【0047】
例えば、現在位置表示部21および現在位置算出部22は、ディレクトリエントリ230を参照して取得したレコード番号である1に、読み出すべき地図データを含む分割データのデータ番号である5を加えることにより、読み出すべき地図データを含む分割データに関する情報を格納しているファイル管理テーブル231内のレコード番号である6を特定する。
【0048】
そして、現在位置表示部21および現在位置算出部22は、特定したレコード番号に対応するレコードを含むファイル管理テーブル231の一部のデータを地図データ格納部23から読み出す。そして、読み出したレコードを参照して、現在位置表示部21および現在位置算出部22は、読み出すべき地図データが格納されているクラスタのクラスタ番号を特定する。そして、特定したクラスタ番号に対応する地図データ格納部23内の記憶領域にアクセスすることにより、現在位置表示部21および現在位置算出部22は、所望の地図データを地図データ格納部23から読み出すことができる。
【0049】
ここで、地図データ格納部23がFAT(File Allocation Table)ファイルシステムによって構成されているとすれば、現在位置表示部21および現在位置算出部22は、図3に示したディレクトリエントリ230および図6に示すようなFAT240を参照して、地図データ格納部23内の所望のデータにアクセスすることになる。
【0050】
例えば、現在位置表示部21現在位置算出部22は、予め定められた処理によって、読み出すべきデータが含まれるファイルを特定すると共に、特定したファイル内での読み出すべき地図データの位置を算出する。そして、現在位置表示部21および現在位置算出部22は、読み出すべき地図データの対応するファイル中の位置を、クラスタ1つあたりのデータサイズで除することにより、読み出すべき地図データに対応する分割データを格納しているクラスタが、当該ファイルを格納しているクラスタの中で何個目かを算出する。
【0051】
そして、現在位置表示部21および現在位置算出部22は、FAT240を参照して、(算出したクラスタの個数−1)回分、FAT240をたどることにより、読み出すべき分割データを格納しているクラスタのクラスタ番号を特定し、対応するクラスタから分割データを読み出す。
【0052】
例えば、読み出すべき地図データを含むファイルがBBBB0002.DATであり、読み出すべき地図データを含む分割データが、当該ファイルの先頭から3個目のクラスタに格納されている場合、現在位置表示部21および現在位置算出部22は、ディレクトリエントリ230を参照して、BBBB0002.DATが格納されている先頭のクラスタ番号である263000を取得する。そして、現在位置表示部21および現在位置算出部22は、FAT240を参照して、26300の次のクラスタ番号である26002を取得し、取得した26002の次のクラスタ番号である26003を取得する。このように、現在位置表示部21および現在位置算出部22は、FAT240を(算出したクラスタの個数−1)=2回参照することにより、目的の分割データが格納されているクラスタを特定し、対応するクラスタから目的の地図データを含む分割データを読み出す。
【0053】
ここで、それぞれのクラスタのアドレスが32bitの場合、FAT240内の1レコードは、クラスタ番号2400と次のクラスタ番号2401とで合計64bit、すなわち8byteのデータとなる。また、地図データ格納部23内の地図データ232の部分の容量が10Gbyteであり、クラスタ1つあたりの容量が16kbyteである場合、地図データ232に対応する記憶領域には、(1024×1024×1024×10)/(1024×16)=655,360個のクラスタが存在する。
【0054】
FAT240は、それぞれのクラスタについて、クラスタ番号2400および次のクラスタ番号2401を有するので、FAT240のデータサイズは、655,360×8=5,242,880byte=5×1024×1024=5Mbyteとなる。
【0055】
ナビゲーション装置20等の機器では、消費電力の低減や低コスト化等のために、データ展開用のメモリとして大きな容量のメモリを搭載できない場合が多い。そのため、5MbyteのFAT240をメモリに常駐させることができない場合が多い。そのため、現在位置表示部21は、FAT240を複数のブロックに分け、FAT240の一部をメモリ上に展開することにより、目的のデータにアクセスする場合がある。
【0056】
このような場合、例えば、分割されたFAT240の1つを参照して、特定された次のクラスタ番号が、他の分割されたFAT240内に存在すると、クラスタ番号の参照回数分、分割されたFAT240を地図データ格納部23から読み込む必要がある。
【0057】
上記の例では、FAT240を2回参照することにより、目的のデータを読み出すことができたが、1Gbyteのファイルの最終に格納されている分割データにアクセスする場合、FAT240を65,536回参照することにより、目的のデータを読み出すことになる。この場合、1つの分割されたFAT240によって参照されるクラスタ番号が他の分割されたFAT240に格納されているとすれば、現在位置表示部21および現在位置算出部22は、地図データ格納部23から、最大65,536回、FAT240をメモリ上に読み出す必要があり、目的のデータを読み出すのに多くの時間がかかる。
【0058】
これに対して、本実施形態の現在位置表示部21および現在位置算出部22は、1Gbyteのファイルの最終に格納されているデータを読み出す場合であっても、対応するファイル内の目的のデータの位置およびクラスタ1つあたりの容量に基づいて、目的のデータを含む分割データのデータ番号を算出し、ディレクトリエントリ230およびファイル管理テーブル231をそれぞれ1回ずつ参照することにより、目的の分割データが格納されているクラスタ番号を特定することができる。従って、従来のFATシステムに比べて、より高速に目的のデータにアクセスすることができる。
【0059】
また、目的のファイルを構成する分割データの複数をメモリ上に読み込む場合、図7に示すように、ファイル250を構成するそれぞれの分割データが、磁気ディスク270内において連続するクラスタに格納されていないとすれば、現在位置表示部21および現在位置算出部22は、例えば、分割データ251を読み出すためにヘッドをシークさせ、分割データ251を読み出した後に、分割データ252を読み出すためにヘッドをさらにシークさせ、分割データ252を読み出した後に、分割データ253を読み出すためにヘッドをさらにシークさせることになる。そのため、ファイル250をメモリ上に読み込むのに時間がかかる場合がある。
【0060】
これに対して、本実施形態の地図データ格納部23は、図8に示すように、磁気ディスク270内において、1つのファイルを構成する複数の分割ファイルを連続するクラスタに格納するので、1回のシークで、ファイル260を構成する分割データ261、分割データ262、および分割データ263を読み出すことができる。このように、本実施形態のナビゲーション装置20は、より少ないシーク回数で、より迅速に目的の複数の分割データを読み出すことができる。
【0061】
図9は、地図データの読出処理の一例を示すフローチャートである。本フローチャートに示す処理は、現在位置表示部21によって行われる現在位置表示処理および現在位置算出部22によって行われる現在位置算出処理の中で、現在位置表示部21および現在位置算出部22によって行われる処理である。
【0062】
まず、現在位置表示部21または現在位置算出部22は、予め定められた処理によって、読み出すべきデータが含まれるファイルを特定すると共に、特定したファイル内での読み出すべき地図データの位置を算出する(S100)。
【0063】
次に、現在位置表示部21または現在位置算出部22は、読み出すべき地図データの、対応するファイル中の位置をクラスタ1つあたりのデータサイズで除することにより、読み出すべき地図データを含む分割データのデータ番号を算出する(S101)。
【0064】
そして、現在位置表示部21または現在位置算出部22は、ディレクトリエントリ230を参照して、読み出すべき地図データが含まれるファイルを構成する分割データの中で、先頭の分割データに対応するファイル管理テーブル231内のレコード番号を特定する。そして、現在位置表示部21または現在位置算出部22は、ディレクトリエントリ230を参照して取得したレコード番号に、読み出すべき地図データを含む分割データのデータ番号を加えることにより、読み出すべき地図データを含む分割データに関する情報を格納しているファイル管理テーブル231内のレコード番号を特定する(S102)。
【0065】
次に、現在位置表示部21または現在位置算出部22は、特定したレコード番号に対応するレコードを含むファイル管理テーブル231の一部のデータを地図データ格納部23から読み出す。そして、現在位置表示部21または現在位置算出部22は、読み出したレコードを参照して、読み出すべき地図データが格納されているクラスタのクラスタ番号を特定する(S103)。
【0066】
そして、現在位置表示部21または現在位置算出部22は、特定したクラスタ番号に対応する地図データ格納部23内の記憶領域にアクセスすることにより、目的の地図データを含む分割データを地図データ格納部23から読み出し(S104)、本フローチャートに示す地図データの読出処理は終了する。
【0067】
図10は、地図データの取得処理の一例を示すフローチャートである。本フローチャートに示す処理は、更新された地図データを地図データ配信サーバ13から取得する場合にデータ取得部24によって行われる処理である。
【0068】
まず、データ取得部24は、通信端末17を介して、更新された地図データを地図データ配信サーバ13から取得するタイミングか否かを判定する(S200)。更新された地図データを取得するタイミングではない場合(S200:No)、データ取得部24は、更新された地図データを取得するタイミングになるまで、ステップ200を繰り返す。
【0069】
更新された地図データを取得するタイミングである場合(S200:Yes)、データ取得部24は、通信網12を介して、更新された地図データを地図データ配信サーバ13へ要求する。そして、データ取得部24は、地図データ配信サーバ13から更新された地図データを取得する(S201)。データ取得部24は、例えば、最後に更新された地図データを取得した日時から所定時間が経過した場合に、ステップ201を実行する。また、他の例として、図示しない入力手段を介して、ナビゲーション装置20のユーザから、更新された地図データの取得指示を受け付けた場合に、データ取得部24は、ステップ201を実行してもよい。
【0070】
次に、データ取得部24は、取得したファイルのデータサイズを算出する。そして、データ取得部24は、算出したファイルのデータサイズに基づいて、地図データ232内の予備領域において、取得したファイルのデータサイズ以上であり、かつ最小の容量を有する領域を特定し(S202)、特定した予備領域に、取得したファイルを格納する(S203)。このとき、データ取得部24は、地図データ格納部23を構成するクラスタ1つあたりの容量で取得したファイルを分割し、分割したデータのそれぞれに、ファイル内のデータの順番に従ってデータ番号を割り当てる。そして、データ取得部24は、それぞれの分割データを、特定した領域の連続したクラスタに、データ番号順に格納する。
【0071】
そして、データ取得部24は、取得したファイルのファイルIDをファイル管理テーブル231に追加すると共に、当該ファイルを構成する分割データを格納したクラスタのクラスタ番号を、格納した分割データのデータ番号に対応付けて、ファイル管理テーブル231に格納することにより、ファイル管理テーブル231を更新する(S204)。
【0072】
次に、データ取得部24は、取得したファイルを構成する分割データのうち、先頭の分割データに関する情報を格納しているファイル管理テーブル231内のレコード番号を、取得したファイルのファイルIDに対応付けてディレクトリエントリ230に追加することにより、ディレクトリエントリ230を更新し(S205)、再びステップ200に示した処理を行う。
【0073】
以上、本発明の実施の形態について説明した。
【0074】
上記説明から明らかなように、本実施形態によれば、記憶装置内のデータへのアクセス速度の低下を抑えることができるナビゲーション装置20を提供することができる。
【0075】
なお、本発明は上記の実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【0076】
例えば、ナビゲーション装置20内の現在位置表示部21、現在位置算出部22、およびデータ取得部24は、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積ロジックICによりハード的に実現されるものでもよく、DSP(Digital Signal Processor)や汎用計算機によりソフトウェア的に実現されてもよく、あるいは、部分的にハードウェアまたはソフトウェアで実現させた機能ブロックを組み合わせてもよい。
【0077】
また、本実施形態では、データ取得部24は、通信端末17を介して地図データ配信サーバ13から更新されたファイルを取得したが、他の例として、データ取得部24は、ケーブル等を介して直接地図データ配信サーバ13から更新されたファイルを取得してもよく、CD−ROMやDVD−ROM、メモリカード等の可搬性の記録媒体を介して、更新されたファイルを取得してもよい。
【図面の簡単な説明】
【0078】
【図1】本発明の一実施形態に係るナビゲーションシステム10のシステム構成図である。
【図2】ナビゲーション装置20の詳細な機能構成の一例を示すブロック図である。
【図3】ディレクトリエントリ230の詳細なデータ構造の一例を示す図である。
【図4】ファイル管理テーブル231の詳細なデータ構造の一例を示す図である。
【図5】地図データ232の詳細なデータ構造の一例を示す図である。
【図6】従来のFAT240の詳細なデータ構造の一例を示す図である。
【図7】従来のデータ記憶位置を説明するための概念図である。
【図8】本発明のデータ記憶位置を説明するための概念図である。
【図9】地図データの読出処理の一例を示すフローチャートである。
【図10】地図データの取得処理の一例を示すフローチャートである。
【符号の説明】
【0079】
10・・・ナビゲーションシステム、11・・・基地局、12・・・通信網、13・・・地図データ配信サーバ、14・・・車両、15・・・表示装置、16・・・センサ、17・・・通信端末、20・・・ナビゲーション装置、21・・・現在位置表示部、22・・・現在位置算出部、23・・・地図データ格納部、230・・・ディレクトリエントリ、2300、2310・・・ファイルID、2301・・・先頭レコード番号、2302・・・先頭クラスタ番号、2303・・・データサイズ、231・・・ファイル管理テーブル、2311・・・レコード番号、2312・・・データ番号、2313、2400・・・クラスタ番号、232・・・地図データ、2320、2321、2322・・・領域、24・・・データ取得部、240・・・FAT、2401・・・次のクラスタ番号、250、260・・・ファイル、251、252、253、261、262、263・・・分割データ、270・・・磁気ディスク
【技術分野】
【0001】
本発明は、車両の現在位置を算出して表示するナビゲーション装置に関する。
【背景技術】
【0002】
従来、車両の現在位置の表示や、目的地までの経路の誘導等を行うための地図データをハードディスク型記録装置(以下、HDDと称する)に格納するナビゲーション装置が知られている。このようなHDDを有するナビゲーション装置では、ユーザの設定情報や、最新の地図データとの差分情報等を、HDDに記録する場合がある。一般的に、HDDに対して、データの書き込みや消去を繰り返すと、HDD内の格納領域にフラグメンテーションが発生する。そのため、データへのアクセス速度が低下する場合がある。
【0003】
これを回避するために、特許文献1には、所定の条件が満たされる場合に、HDDのフラグメンテーションを解消するためのデフラグを行う技術が開示されている。
【0004】
【特許文献1】特開2001−280976号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、デフラグを実行中は、ナビゲーション装置を操作することができない場合がある。また、HDDの格納容量が大きい場合には、デフラグに長い時間がかかる場合がある。そのため、デフラグを実行中はナビゲーション装置に電源を供給し続けなければならず、デフラグが終了するまで車両のエンジンを停止することができない場合があった。
【0006】
本発明は上記事情を鑑みてなされたものであり、本発明の目的は、HDD内のデータへのアクセス速度の低下を抑えることができるナビゲーション装置を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明では、記憶装置内の物理的な位置を識別する単位領域識別情報を、当該物理的な位置に格納されているデータの識別番号に対応付けると共に、当該データの識別番号が昇順あるいは降順となるように格納されているテーブルを参照して、目的のデータが格納されている記憶装置内の物理的な位置にアクセスする。
【0008】
また、本発明は、例えば、車両の現在位置を表示装置に表示する車載用のナビゲーション装置であって、地図データを構成する複数のファイル格納する地図データ格納手段と、地図データを構成する複数のファイルの地図格納手段内の物理的な位置を管理するためのファイル管理テーブルと、現在位置を地図データ格納手段に格納されている地図データと共に表示装置に表示する現在位置表示手段とを備え、地図データ格納手段は、アクセス可能な最小の単位であり、それぞれに識別番号が割り当てられている単位領域により構成され、ファイルを単位領域1つあたりの容量に分割した分割データを、複数の単位領域のそれぞれに格納しており、ファイル管理テーブルは、ファイルのそれぞれについて、当該ファイルを構成する分割データのそれぞれに、当該ファイル内での順番に従ってデータ識別番号を割り当て、当該データ識別番号を昇順または降順に連続して格納すると共に、当該分割データが格納されている単位領域の単位領域識別番号を当該データ識別番号に対応付けて格納し、現在位置表示手段は、単位領域1つあたりの容量およびアクセス対象のデータのファイル内の位置に基づいて、アクセス対象のデータに対応する分割データのデータ識別番号を算出し、ファイル管理テーブルを参照して、算出したデータ識別番号に対応する単位領域識別番号を特定することにより、アクセスすべきデータが格納されている単位領域にアクセスすることを特徴とするナビゲーション装置を提供する。
【発明の効果】
【0009】
本発明によれば、記憶装置内のデータへのアクセス速度の低下を抑えることができるナビゲーション装置を提供することができる。
【発明を実施するための最良の形態】
【0010】
以下に、本発明の実施の形態について、図面を参照しながら説明する。
【0011】
図1は、本発明の一実施形態に係るナビゲーションシステム10のシステム構成図である。ナビゲーションシステム10は、基地局11、地図データ配信サーバ13、および車両14を備える。
【0012】
基地局11は、電波を介して、例えば、WCDMA(Wideband-Code Division Multiple Access)やPHS(Personal Handyphone System)、無線LAN等の無線通信方式に基づいて車両14と通信すると共に、インターネット等の通信網12を介して、地図データ配信サーバ13と通信を行う。通信網12は、全て有線通信網によって構成されていてもよく、部分的に無線通信網によって構成されていてもよい。
【0013】
地図データ配信サーバ13は、施設や道路等の新たな建設、道路の規制内容の変更等に基づいて、道路データを含む地図データを更新する。また、基地局11および通信網12を介して、更新された地図データの要求を車両14から受信した場合に、当該更新された地図データを通信網12および基地局11を介して車両14へ送信する。
【0014】
なお、本実施形態において、地図データ配信サーバ13が作成する地図データは、道路データや住宅データ等の複数のカテゴリに分けられており、それぞれのカテゴリは、さらに、地図を複数の領域に分割することによって得られるメッシュ単位に分けられている。地図データ配信サーバ13は、それぞれのカテゴリにおいて、メッシュ単位の地図データを1つのファイルとして作成する。そして、地図データ配信サーバ13は、更新された地図データの要求を車両14から受信すると、変更のあったファイルを車両14へ送信する。
【0015】
車両14は、表示装置15、センサ16、通信端末17、およびナビゲーション装置20を有する。通信端末17は、最寄りの基地局11と、電波を介して、例えば、WCDMA(Wideband-Code Division Multiple Access)やPHS(Personal Handyphone System)、無線LAN等の無線通信方式に基づいて通信する。
【0016】
センサ16は、GPS受信機や、方位センサ、車速センサ等であり、測地衛星に対する車両14の現在位置や、車両14の進行方位、車両14の移動距離等を測定し、測定信号をナビゲーション装置20へ送信する。
【0017】
ナビゲーション装置20は、道路データを含む地図データを格納しており、センサ16からの測定信号に基づいて、車両14の相対変位を算出し、地図データおよび算出した相対変位に基づいて、車両14の現在位置を地図上に算出して、表示装置15に表示させる。
【0018】
なお、表示装置15は、車両14の現在位置を画像として表示するが、音声を再生する機能を有し、ナビゲーション装置20が車両14の現在位置と共に生成した音声ガイダンス等を、当該車両14の現在位置と共に再生してもよい。
【0019】
図2は、ナビゲーション装置20の詳細な機能構成の一例を示すブロック図である。ナビゲーション装置20は、現在位置表示部21、現在位置算出部22、地図データ格納部23、およびデータ取得部24を備える。
【0020】
地図データ格納部23は、複数のファイルで構成される地図データを格納している。また、地図データ格納部23は、物理的にアクセス可能な最小の単位である単位領域によって構成されており、それぞれのファイルをそれぞれの単位領域の容量で分割した分割ファイルを、それぞれの単位領域に格納することにより、当該分割データによって構成されるファイルを格納する。また、地図データ格納部23は、格納すべきファイルを構成する分割データを、地図データ格納部23内において連続する単位領域に格納する。
【0021】
本例において、地図データ格納部23は、例えば、ハードディスク型記録装置であり、クラスタと呼ばれる最小の領域単位で物理的にアクセスが可能である。それぞれのクラスタには、クラスタ番号が割り当てられており、本実施形態では、連続するクラスタには、連続するクラスタ番号が、地図データ格納部23内の所定の領域を基準として昇順に割り当てられている。また、他の例として、地図データ格納部23は、フラッシュROMやEEP(Electrically Erasable Programmable)ROM、Fe(Ferroelectric)RAM、M(Magnetoresistive)RAM等の不揮発性メモリであってもよい。
【0022】
地図データ格納部23は、ディレクトリエントリ230、ファイル管理テーブル231、および地図データ232を格納している。地図データ232は、道路データや住宅データ、交通規制情報等のデータをファイルとして格納する。
【0023】
ディレクトリエントリ230は、地図データ232に格納されているそれぞれのファイルについて、当該ファイルの先頭のデータが格納されている地図データ格納部23内の単位領域の識別番号等を、当該ファイルの識別情報に対応付けて格納している。
【0024】
ファイル管理テーブル231は、地図データ232に格納されているそれぞれのファイルについて、当該ファイルを構成するデータのそれぞれを識別するデータ識別番号を、当該データ識別番号に対応するデータが格納されている単位領域の識別番号と共に格納している。
【0025】
データ取得部24は、通信端末17を介して、更新された地図データを地図データ配信サーバ13に要求し、当該要求に応答して地図データ配信サーバ13から送信された地図データを受信する。そして、データ取得部24は、受信した地図データを地図データ格納部23に格納する。このとき、現在位置算出部22は、更新されたデータを地図データ232に追加する処理、更新されたデータに対応する情報をディレクトリエントリ230およびファイル管理テーブル231に追加する処理等を行う。
【0026】
現在位置算出部22は、センサ16からの測定信号に基づいて、車両14の相対変位を算出し、算出した相対変位および地図データ格納部23に格納されている地図データに基づいて、車両14の現在位置を算出する。
【0027】
この際、現在位置算出部22は、ディレクトリエントリ230を参照して、読み出すべき地図データを含むファイルに対応する先頭のレコード番号を読み出す。そして、現在位置算出部22は、読み出すべき地図データを含むファイルの先頭のレコード番号と、読み出すべきデータの対応するファイル内の位置と、単位領域1つあたりの容量とに基づいてファイル管理テーブル231を参照し、読み出すべき地図データが格納されている単位領域の識別番号が格納されているレコードを読み出すことにより、読み出すべき地図データが格納されている単位領域の識別番号を特定する。そして、現在位置算出部22は、地図データ格納部23内の、特定した識別番号に対応する単位領域に格納されている地図データを読み出す。
【0028】
現在位置表示部21は、現在位置算出部22が算出した車両14の現在位置に基づいて、表示装置15に表示する地図データを地図データ格納部23から取得し、取得した地図データと共に現在位置算出部22が算出した車両14の現在位置を表示装置15に表示する。
【0029】
この際、現在位置算出部22の場合と同様に、現在位置表示部21は、ディレクトリエントリ230を参照して、読み出すべき地図データを含むファイルに対応する先頭のレコード番号を読み出し、ファイル管理テーブル231を参照して、読み出すべき地図データが格納されている単位領域を特定し、地図データ格納部23内の、特定した識別番号に対応する単位領域に格納されている地図データを読み出す。
【0030】
図3は、ディレクトリエントリ230の詳細なデータ構造の一例を示す。ディレクトリエントリ230は、それぞれのファイルの先頭の分割データの識別番号が格納されている現在位置算出部221内の先頭レコード番号2301、それぞれのファイルの先頭の分割データが格納されている地図データ格納部23内の先頭クラスタ番号2302、およびそれぞれのファイルのデータサイズ2303を、それぞれのファイルを識別するファイルID2300に対応付けて格納する。
【0031】
ディレクトリエントリ230を参照することにより、現在位置表示部21および現在位置算出部22は、読み出すべき地図データが含まれるファイルを構成する分割データのうち、先頭の分割データに対応するファイル管理テーブル231内のレコード番号を取得することができる。
【0032】
また、ディレクトリエントリ230は、それぞれのファイルの作成日時、更新日時、および属性等を、それぞれのファイルID2300に対応付けて格納していてもよい。
【0033】
図4は、ファイル管理テーブル231の詳細なデータ構造の一例を示す。ファイル管理テーブル231は、それぞれのファイルのファイルID2310毎に、ファイルを構成する分割データを識別する現在位置算出部2212および当該分割データのそれぞれが格納されているクラスタの現在位置算出部2213を、ファイル管理テーブル231が格納する全てのレコードを一意に識別する現在位置算出部2211に対応付けて格納している。
【0034】
本例において、データ番号2312は、対応するファイルの先頭の分割ファイルを0として、ファイル内の順番に従って、それぞれの分割データに割り当てられており、それぞれのファイル毎に、現在位置算出部2212が昇順となるようにファイル管理テーブル231に格納されている。本例では、連続するクラスタのそれぞれに、昇順となるようにクラスタ番号が割り当てられているので、小さい値のデータ番号2312に対応する分割データは、小さい値のクラスタ番号2313に対応するクラスタに格納され、大きい値のデータ番号2312に対応する分割データは、大きい値のクラスタ番号2313に対応するクラスタに格納される。
【0035】
ファイル管理テーブル231を参照することにより、現在位置表示部21および現在位置算出部22は、読み出すべき地図データが含まれている分割データが格納されているクラスタ番号を取得することができる。
【0036】
図5は、地図データ232の詳細なデータ構造の一例を示す。地図データ232は、異なる容量を有する複数の領域2320、領域2321、および領域2322を備える。
【0037】
なお、領域2320、領域2321、および領域2322のそれぞれは、地図データ格納部23に物理的に構成された記憶領域であり、地図データ格納部23は、この他に、ディレクトリエントリ230およびファイル管理テーブル231を格納する領域や、ナビゲーション装置20が動作するためのプログラムやパラメータ等を格納する領域を有する。また、地図データ格納部23は、この他に、外部から取得した音楽データやアプリケーションプログラム等を格納する領域を有してもよい。
【0038】
領域2320は、同一の容量を有する複数の領域によって構成される。領域2320を構成する複数の領域のそれぞれは、例えば2Gbyteの容量を有しており、それぞれの領域には、例えば、1Gbyteよりも大きく、かつ、2Gbyte以下のデータサイズのファイルが格納される。
【0039】
領域2321は、同一の容量を有する複数の領域によって構成され、それぞれの領域は、例えば1Gbyteの容量を有する。それぞれの領域には、例えば、500Mbyteよりも大きく、かつ、1Gbyte以下のデータサイズのファイルが格納される。
【0040】
領域2322は、同一の容量を有する複数の領域によって構成され、それぞれの領域は、例えば500MGbyteの容量を有する。それぞれの領域には、例えば、500Mbyte以下のデータサイズのファイルが格納される。
【0041】
領域2320、領域2321、および領域2322のそれぞれには、予備領域が設けられ、データ取得部24が地図データ配信サーバ13等から取得したファイルを新たに追加する場合、データ取得部24は、新たに追加するファイルをこの予備領域に格納する。また、データ取得部24が、領域2320、領域2321、および領域2322のそれぞれに格納されているファイルを書き換えることにより更新する場合、例えば、データ取得部24は、最新のファイルをそれぞれの領域に設けられた予備領域に書き込み、更新されるべきファイルが格納されている領域を予備領域にする。
【0042】
ここで、現在位置表示部21および現在位置算出部22が地図データ格納部23から所望の地図データを読み出す過程を詳しく説明する。現在位置表示部21および現在位置算出部22は、例えば、予め定められた処理によって、読み出すべきデータが含まれるファイルを特定すると共に、特定したファイル内での読み出すべきデータの位置を算出する。本例において、読み出すべきデータを含むファイルは、例えば、AAAA0001.DATであり、読み出すべきデータの当該ファイル中の位置は、先頭から80kbyteであると仮定する。なお、クラスタ1つあたりのデータサイズは、予め定められており、本例では16kbyteと仮定する。
【0043】
現在位置表示部21および現在位置算出部22は、読み出すべき地図データの対応するファイル中の位置をクラスタ1つあたりのデータサイズで除した商を算出することにより、読み出すべき地図データを含む分割データのデータ番号を算出する。例えば、ファイルの先頭から80kbyte目に読み出すべき地図データが含まれている場合、80kbyte÷16kbyte=5が読み出すべき地図データを含む分割データのデータ番号として算出される。
【0044】
そして、現在位置表示部21および現在位置算出部22は、ディレクトリエントリ230を参照して、読み出すべき地図データを含むファイルの先頭の分割データに関する情報が格納されているファイル管理テーブル231内のレコード番号を取得する。
【0045】
例えば、現在位置表示部21および現在位置算出部22は、図3のディレクトリエントリ230を参照して、AAAA0001.DATの先頭の分割データに関する情報が格納されているファイル管理テーブル231内のレコード番号である1を取得する。
【0046】
そして、現在位置表示部21および現在位置算出部22は、ディレクトリエントリ230を参照して取得したレコード番号に、読み出すべき地図データを含む分割データのデータ番号を加えることにより、読み出すべき地図データを含む分割データに関する情報を格納しているファイル管理テーブル231内のレコード番号を特定する。
【0047】
例えば、現在位置表示部21および現在位置算出部22は、ディレクトリエントリ230を参照して取得したレコード番号である1に、読み出すべき地図データを含む分割データのデータ番号である5を加えることにより、読み出すべき地図データを含む分割データに関する情報を格納しているファイル管理テーブル231内のレコード番号である6を特定する。
【0048】
そして、現在位置表示部21および現在位置算出部22は、特定したレコード番号に対応するレコードを含むファイル管理テーブル231の一部のデータを地図データ格納部23から読み出す。そして、読み出したレコードを参照して、現在位置表示部21および現在位置算出部22は、読み出すべき地図データが格納されているクラスタのクラスタ番号を特定する。そして、特定したクラスタ番号に対応する地図データ格納部23内の記憶領域にアクセスすることにより、現在位置表示部21および現在位置算出部22は、所望の地図データを地図データ格納部23から読み出すことができる。
【0049】
ここで、地図データ格納部23がFAT(File Allocation Table)ファイルシステムによって構成されているとすれば、現在位置表示部21および現在位置算出部22は、図3に示したディレクトリエントリ230および図6に示すようなFAT240を参照して、地図データ格納部23内の所望のデータにアクセスすることになる。
【0050】
例えば、現在位置表示部21現在位置算出部22は、予め定められた処理によって、読み出すべきデータが含まれるファイルを特定すると共に、特定したファイル内での読み出すべき地図データの位置を算出する。そして、現在位置表示部21および現在位置算出部22は、読み出すべき地図データの対応するファイル中の位置を、クラスタ1つあたりのデータサイズで除することにより、読み出すべき地図データに対応する分割データを格納しているクラスタが、当該ファイルを格納しているクラスタの中で何個目かを算出する。
【0051】
そして、現在位置表示部21および現在位置算出部22は、FAT240を参照して、(算出したクラスタの個数−1)回分、FAT240をたどることにより、読み出すべき分割データを格納しているクラスタのクラスタ番号を特定し、対応するクラスタから分割データを読み出す。
【0052】
例えば、読み出すべき地図データを含むファイルがBBBB0002.DATであり、読み出すべき地図データを含む分割データが、当該ファイルの先頭から3個目のクラスタに格納されている場合、現在位置表示部21および現在位置算出部22は、ディレクトリエントリ230を参照して、BBBB0002.DATが格納されている先頭のクラスタ番号である263000を取得する。そして、現在位置表示部21および現在位置算出部22は、FAT240を参照して、26300の次のクラスタ番号である26002を取得し、取得した26002の次のクラスタ番号である26003を取得する。このように、現在位置表示部21および現在位置算出部22は、FAT240を(算出したクラスタの個数−1)=2回参照することにより、目的の分割データが格納されているクラスタを特定し、対応するクラスタから目的の地図データを含む分割データを読み出す。
【0053】
ここで、それぞれのクラスタのアドレスが32bitの場合、FAT240内の1レコードは、クラスタ番号2400と次のクラスタ番号2401とで合計64bit、すなわち8byteのデータとなる。また、地図データ格納部23内の地図データ232の部分の容量が10Gbyteであり、クラスタ1つあたりの容量が16kbyteである場合、地図データ232に対応する記憶領域には、(1024×1024×1024×10)/(1024×16)=655,360個のクラスタが存在する。
【0054】
FAT240は、それぞれのクラスタについて、クラスタ番号2400および次のクラスタ番号2401を有するので、FAT240のデータサイズは、655,360×8=5,242,880byte=5×1024×1024=5Mbyteとなる。
【0055】
ナビゲーション装置20等の機器では、消費電力の低減や低コスト化等のために、データ展開用のメモリとして大きな容量のメモリを搭載できない場合が多い。そのため、5MbyteのFAT240をメモリに常駐させることができない場合が多い。そのため、現在位置表示部21は、FAT240を複数のブロックに分け、FAT240の一部をメモリ上に展開することにより、目的のデータにアクセスする場合がある。
【0056】
このような場合、例えば、分割されたFAT240の1つを参照して、特定された次のクラスタ番号が、他の分割されたFAT240内に存在すると、クラスタ番号の参照回数分、分割されたFAT240を地図データ格納部23から読み込む必要がある。
【0057】
上記の例では、FAT240を2回参照することにより、目的のデータを読み出すことができたが、1Gbyteのファイルの最終に格納されている分割データにアクセスする場合、FAT240を65,536回参照することにより、目的のデータを読み出すことになる。この場合、1つの分割されたFAT240によって参照されるクラスタ番号が他の分割されたFAT240に格納されているとすれば、現在位置表示部21および現在位置算出部22は、地図データ格納部23から、最大65,536回、FAT240をメモリ上に読み出す必要があり、目的のデータを読み出すのに多くの時間がかかる。
【0058】
これに対して、本実施形態の現在位置表示部21および現在位置算出部22は、1Gbyteのファイルの最終に格納されているデータを読み出す場合であっても、対応するファイル内の目的のデータの位置およびクラスタ1つあたりの容量に基づいて、目的のデータを含む分割データのデータ番号を算出し、ディレクトリエントリ230およびファイル管理テーブル231をそれぞれ1回ずつ参照することにより、目的の分割データが格納されているクラスタ番号を特定することができる。従って、従来のFATシステムに比べて、より高速に目的のデータにアクセスすることができる。
【0059】
また、目的のファイルを構成する分割データの複数をメモリ上に読み込む場合、図7に示すように、ファイル250を構成するそれぞれの分割データが、磁気ディスク270内において連続するクラスタに格納されていないとすれば、現在位置表示部21および現在位置算出部22は、例えば、分割データ251を読み出すためにヘッドをシークさせ、分割データ251を読み出した後に、分割データ252を読み出すためにヘッドをさらにシークさせ、分割データ252を読み出した後に、分割データ253を読み出すためにヘッドをさらにシークさせることになる。そのため、ファイル250をメモリ上に読み込むのに時間がかかる場合がある。
【0060】
これに対して、本実施形態の地図データ格納部23は、図8に示すように、磁気ディスク270内において、1つのファイルを構成する複数の分割ファイルを連続するクラスタに格納するので、1回のシークで、ファイル260を構成する分割データ261、分割データ262、および分割データ263を読み出すことができる。このように、本実施形態のナビゲーション装置20は、より少ないシーク回数で、より迅速に目的の複数の分割データを読み出すことができる。
【0061】
図9は、地図データの読出処理の一例を示すフローチャートである。本フローチャートに示す処理は、現在位置表示部21によって行われる現在位置表示処理および現在位置算出部22によって行われる現在位置算出処理の中で、現在位置表示部21および現在位置算出部22によって行われる処理である。
【0062】
まず、現在位置表示部21または現在位置算出部22は、予め定められた処理によって、読み出すべきデータが含まれるファイルを特定すると共に、特定したファイル内での読み出すべき地図データの位置を算出する(S100)。
【0063】
次に、現在位置表示部21または現在位置算出部22は、読み出すべき地図データの、対応するファイル中の位置をクラスタ1つあたりのデータサイズで除することにより、読み出すべき地図データを含む分割データのデータ番号を算出する(S101)。
【0064】
そして、現在位置表示部21または現在位置算出部22は、ディレクトリエントリ230を参照して、読み出すべき地図データが含まれるファイルを構成する分割データの中で、先頭の分割データに対応するファイル管理テーブル231内のレコード番号を特定する。そして、現在位置表示部21または現在位置算出部22は、ディレクトリエントリ230を参照して取得したレコード番号に、読み出すべき地図データを含む分割データのデータ番号を加えることにより、読み出すべき地図データを含む分割データに関する情報を格納しているファイル管理テーブル231内のレコード番号を特定する(S102)。
【0065】
次に、現在位置表示部21または現在位置算出部22は、特定したレコード番号に対応するレコードを含むファイル管理テーブル231の一部のデータを地図データ格納部23から読み出す。そして、現在位置表示部21または現在位置算出部22は、読み出したレコードを参照して、読み出すべき地図データが格納されているクラスタのクラスタ番号を特定する(S103)。
【0066】
そして、現在位置表示部21または現在位置算出部22は、特定したクラスタ番号に対応する地図データ格納部23内の記憶領域にアクセスすることにより、目的の地図データを含む分割データを地図データ格納部23から読み出し(S104)、本フローチャートに示す地図データの読出処理は終了する。
【0067】
図10は、地図データの取得処理の一例を示すフローチャートである。本フローチャートに示す処理は、更新された地図データを地図データ配信サーバ13から取得する場合にデータ取得部24によって行われる処理である。
【0068】
まず、データ取得部24は、通信端末17を介して、更新された地図データを地図データ配信サーバ13から取得するタイミングか否かを判定する(S200)。更新された地図データを取得するタイミングではない場合(S200:No)、データ取得部24は、更新された地図データを取得するタイミングになるまで、ステップ200を繰り返す。
【0069】
更新された地図データを取得するタイミングである場合(S200:Yes)、データ取得部24は、通信網12を介して、更新された地図データを地図データ配信サーバ13へ要求する。そして、データ取得部24は、地図データ配信サーバ13から更新された地図データを取得する(S201)。データ取得部24は、例えば、最後に更新された地図データを取得した日時から所定時間が経過した場合に、ステップ201を実行する。また、他の例として、図示しない入力手段を介して、ナビゲーション装置20のユーザから、更新された地図データの取得指示を受け付けた場合に、データ取得部24は、ステップ201を実行してもよい。
【0070】
次に、データ取得部24は、取得したファイルのデータサイズを算出する。そして、データ取得部24は、算出したファイルのデータサイズに基づいて、地図データ232内の予備領域において、取得したファイルのデータサイズ以上であり、かつ最小の容量を有する領域を特定し(S202)、特定した予備領域に、取得したファイルを格納する(S203)。このとき、データ取得部24は、地図データ格納部23を構成するクラスタ1つあたりの容量で取得したファイルを分割し、分割したデータのそれぞれに、ファイル内のデータの順番に従ってデータ番号を割り当てる。そして、データ取得部24は、それぞれの分割データを、特定した領域の連続したクラスタに、データ番号順に格納する。
【0071】
そして、データ取得部24は、取得したファイルのファイルIDをファイル管理テーブル231に追加すると共に、当該ファイルを構成する分割データを格納したクラスタのクラスタ番号を、格納した分割データのデータ番号に対応付けて、ファイル管理テーブル231に格納することにより、ファイル管理テーブル231を更新する(S204)。
【0072】
次に、データ取得部24は、取得したファイルを構成する分割データのうち、先頭の分割データに関する情報を格納しているファイル管理テーブル231内のレコード番号を、取得したファイルのファイルIDに対応付けてディレクトリエントリ230に追加することにより、ディレクトリエントリ230を更新し(S205)、再びステップ200に示した処理を行う。
【0073】
以上、本発明の実施の形態について説明した。
【0074】
上記説明から明らかなように、本実施形態によれば、記憶装置内のデータへのアクセス速度の低下を抑えることができるナビゲーション装置20を提供することができる。
【0075】
なお、本発明は上記の実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【0076】
例えば、ナビゲーション装置20内の現在位置表示部21、現在位置算出部22、およびデータ取得部24は、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積ロジックICによりハード的に実現されるものでもよく、DSP(Digital Signal Processor)や汎用計算機によりソフトウェア的に実現されてもよく、あるいは、部分的にハードウェアまたはソフトウェアで実現させた機能ブロックを組み合わせてもよい。
【0077】
また、本実施形態では、データ取得部24は、通信端末17を介して地図データ配信サーバ13から更新されたファイルを取得したが、他の例として、データ取得部24は、ケーブル等を介して直接地図データ配信サーバ13から更新されたファイルを取得してもよく、CD−ROMやDVD−ROM、メモリカード等の可搬性の記録媒体を介して、更新されたファイルを取得してもよい。
【図面の簡単な説明】
【0078】
【図1】本発明の一実施形態に係るナビゲーションシステム10のシステム構成図である。
【図2】ナビゲーション装置20の詳細な機能構成の一例を示すブロック図である。
【図3】ディレクトリエントリ230の詳細なデータ構造の一例を示す図である。
【図4】ファイル管理テーブル231の詳細なデータ構造の一例を示す図である。
【図5】地図データ232の詳細なデータ構造の一例を示す図である。
【図6】従来のFAT240の詳細なデータ構造の一例を示す図である。
【図7】従来のデータ記憶位置を説明するための概念図である。
【図8】本発明のデータ記憶位置を説明するための概念図である。
【図9】地図データの読出処理の一例を示すフローチャートである。
【図10】地図データの取得処理の一例を示すフローチャートである。
【符号の説明】
【0079】
10・・・ナビゲーションシステム、11・・・基地局、12・・・通信網、13・・・地図データ配信サーバ、14・・・車両、15・・・表示装置、16・・・センサ、17・・・通信端末、20・・・ナビゲーション装置、21・・・現在位置表示部、22・・・現在位置算出部、23・・・地図データ格納部、230・・・ディレクトリエントリ、2300、2310・・・ファイルID、2301・・・先頭レコード番号、2302・・・先頭クラスタ番号、2303・・・データサイズ、231・・・ファイル管理テーブル、2311・・・レコード番号、2312・・・データ番号、2313、2400・・・クラスタ番号、232・・・地図データ、2320、2321、2322・・・領域、24・・・データ取得部、240・・・FAT、2401・・・次のクラスタ番号、250、260・・・ファイル、251、252、253、261、262、263・・・分割データ、270・・・磁気ディスク
【特許請求の範囲】
【請求項1】
車両の現在位置を表示装置に表示する車載用のナビゲーション装置であって、
地図データを構成する複数のファイル格納する地図データ格納手段と、
前記地図データを構成する複数のファイルの前記地図格納手段内の物理的な位置を管理するためのファイル管理テーブルと、
前記現在位置を前記地図データ格納手段に格納されている地図データと共に前記表示装置に表示する現在位置表示手段と
を備え、
前記地図データ格納手段は、
アクセス可能な最小の単位であり、それぞれに識別番号が割り当てられている単位領域により構成され、前記ファイルを前記単位領域1つあたりの容量に分割した分割データを、複数の前記単位領域のそれぞれに格納しており、
前記ファイル管理テーブルは、
前記ファイルのそれぞれについて、当該ファイルを構成する分割データのそれぞれに、当該ファイル内での順番に従ってデータ識別番号を割り当て、当該データ識別番号を昇順または降順に連続して格納すると共に、当該分割データが格納されている単位領域の単位領域識別番号を当該データ識別番号に対応付けて格納し、
前記現在位置表示手段は、
前記単位領域1つあたりの容量およびアクセス対象のデータのファイル内の位置に基づいて、前記アクセス対象のデータに対応する分割データのデータ識別番号を算出し、前記ファイル管理テーブルを参照して、算出したデータ識別番号に対応する単位領域識別番号を特定することにより、アクセスすべきデータが格納されている単位領域にアクセスすること
を特徴とするナビゲーション装置。
【請求項2】
請求項1に記載のナビゲーション装置であって、
前記地図データ格納手段は、
前記ファイルのそれぞれを、連続した単位領域で構成されるファイル領域に格納することを特徴とするナビゲーション装置。
【請求項3】
請求項3に記載のナビゲーション装置であって、
前記地図データ格納手段は、
複数の前記単位領域で構成され、異なる容量を有する複数のファイル領域を有し、前記ファイルのデータサイズよりも大きい容量を有するファイル領域の中で、最小の容量を有するファイル領域に、当該ファイルを格納すること
を特徴とするナビゲーション装置。
【請求項4】
請求項1から3のいずれかに記載のナビゲーション装置であって、
前記地図データ格納手段は、ハードディスク型記録装置であることを特徴とするナビゲーション装置。
【請求項1】
車両の現在位置を表示装置に表示する車載用のナビゲーション装置であって、
地図データを構成する複数のファイル格納する地図データ格納手段と、
前記地図データを構成する複数のファイルの前記地図格納手段内の物理的な位置を管理するためのファイル管理テーブルと、
前記現在位置を前記地図データ格納手段に格納されている地図データと共に前記表示装置に表示する現在位置表示手段と
を備え、
前記地図データ格納手段は、
アクセス可能な最小の単位であり、それぞれに識別番号が割り当てられている単位領域により構成され、前記ファイルを前記単位領域1つあたりの容量に分割した分割データを、複数の前記単位領域のそれぞれに格納しており、
前記ファイル管理テーブルは、
前記ファイルのそれぞれについて、当該ファイルを構成する分割データのそれぞれに、当該ファイル内での順番に従ってデータ識別番号を割り当て、当該データ識別番号を昇順または降順に連続して格納すると共に、当該分割データが格納されている単位領域の単位領域識別番号を当該データ識別番号に対応付けて格納し、
前記現在位置表示手段は、
前記単位領域1つあたりの容量およびアクセス対象のデータのファイル内の位置に基づいて、前記アクセス対象のデータに対応する分割データのデータ識別番号を算出し、前記ファイル管理テーブルを参照して、算出したデータ識別番号に対応する単位領域識別番号を特定することにより、アクセスすべきデータが格納されている単位領域にアクセスすること
を特徴とするナビゲーション装置。
【請求項2】
請求項1に記載のナビゲーション装置であって、
前記地図データ格納手段は、
前記ファイルのそれぞれを、連続した単位領域で構成されるファイル領域に格納することを特徴とするナビゲーション装置。
【請求項3】
請求項3に記載のナビゲーション装置であって、
前記地図データ格納手段は、
複数の前記単位領域で構成され、異なる容量を有する複数のファイル領域を有し、前記ファイルのデータサイズよりも大きい容量を有するファイル領域の中で、最小の容量を有するファイル領域に、当該ファイルを格納すること
を特徴とするナビゲーション装置。
【請求項4】
請求項1から3のいずれかに記載のナビゲーション装置であって、
前記地図データ格納手段は、ハードディスク型記録装置であることを特徴とするナビゲーション装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2006−275857(P2006−275857A)
【公開日】平成18年10月12日(2006.10.12)
【国際特許分類】
【出願番号】特願2005−97175(P2005−97175)
【出願日】平成17年3月30日(2005.3.30)
【出願人】(591132335)株式会社ザナヴィ・インフォマティクス (745)
【Fターム(参考)】
【公開日】平成18年10月12日(2006.10.12)
【国際特許分類】
【出願日】平成17年3月30日(2005.3.30)
【出願人】(591132335)株式会社ザナヴィ・インフォマティクス (745)
【Fターム(参考)】
[ Back to top ]