説明

カーナビゲーション装置、制御方法、プログラムおよび制御装置

【課題】休止状態からの再起動時の表示画面を、休止期間に応じて変更することを目的とする。
【解決手段】車両のエンジン起動時は全ての回路に電源を供給する動作モードと、エンジン停止時にはDRAM160を含む一部の回路にバックアップ用の電源を供給するバックアップモードとを制御する電源制御部100を有し、エンジン停止時にはDRAM160の記憶内容や動作途中の情報が保持された休止状態となり、エンジン再起動時には動作途中の状態から継続して動作可能なカーナビゲーション装置1であって、エンジン停止の信号によりバックアップモードに移行する場合に、現在地の地図表示画面以外の表示を行っていたとき、現在地地図データをDRAM160に保存し、休止状態が一定期間を超えて再起動された場合、現在地地図を表示することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カーナビゲーション装置、制御方法、プログラムおよび制御装置に関する。
【背景技術】
【0002】
従来のカーナビゲーション装置は、車両のエンジンキーと連動して電源が投入・切断され、カーナビゲーション装置の起動時には、その都度、初期状態から起動するようになっていた。このようなカーナビゲーション装置は、起動時にプログラムのローディングや各種初期化処理が必要となり、起動時間が10秒以上かかることがあった。
そこで、エンジンキーがOFF状態でもメモリをバックアップすることでカーナビゲーション装置をスタンバイ状態で停止させて、再起動時のプログラムのローディングや初期化処理を省略することで起動時間を短縮する車載情報装置用電源回路およびこの回路を使用した車載情報装置が開示されている(例えば、特許文献1参照)。
また、バッテリバックアップされたメモリ上にマップマッチング用の地図データを記憶させ、再起動時には当該メモリのデータ(マップマッチング用の地図データ)を用いて現在地の地図表示を行うことで、再起動時における現在地の地図表示処理の時間短縮を行うナビゲーション装置が開示されている(特許文献2参照)。
【0003】
さらに、特許文献1に記載の技術のように初期化処理を省略した状態で長期間カーナビゲーション装置を動作させた場合、メモリのフラグメンテーションやメモリリークが発生する危険性がある。フラグメンテーションとは、プログラムがメモリ領域の取得と開放を繰り返す動作を繰り返しているうちにメモリ領域の断片化が発生して、新たにメモリ領域の確保ができなくなる状態である。また、メモリリークとはプログラムの不具合により取得したメモリ領域を用済み後も開放しない状態があり、徐々にメモリ領域が枯渇していくことである。いずれの状態も放置しておくとシステムダウンにつながってしまう。そこで、定期的にメモリの使用状態を監視してメモリ使用量が急激に増えた場合、メモリリーク対策を実施するメモリリーク監視方法、これを実行するプログラムおよび装置が開示されている(特許文献3参照)。
【特許文献1】特開2006−178901号公報
【特許文献2】特開2001−330446号公報
【特許文献3】特開2005−250751号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、特許文献2に記載のナビゲーションは、再起動時には常に現在地の地図表示を行うことになる。例えばメニュー操作中や地図のスクロール操作中に車両のエンジンを停止し、その後再起動した場合でも現在地の地図表示で起動する。もし、操作途中で一時的にエンジンを停止し、その後エンジンを再起動して前記操作を継続しようとしてもできない。エンジンの停止期間が短ければ、使用者は操作の継続を望む可能性が高い。
また、特許文献3に記載の技術のようにメモリリーク対策を実行すると、装置の一部または全部の機能を一時停止させなければならない。従って、車両が走行中のカーナビゲーション装置においてメモリリーク診断・およびその対策を行うことは好ましくない。
【0005】
そこで、本発明は、起動時の高速性を保ちつつ、休止状態からの再起動時の表示画面を、休止期間に応じて変更することを目的とする。
【課題を解決するための手段】
【0006】
前記課題を解決するため、本発明は、車両のエンジン起動時に、各回路に電源を供給する動作モードと、エンジン停止時にはメモリを含む一部の回路にバックアップ用の電源を供給するバックアップモードとを制御する電源制御部を有し、エンジン停止時には、前記バックアップモードに対応して前記メモリの記憶内容や動作途中の情報が保持された休止状態となり、エンジン再起動時には前記動作途中の状態から継続して動作可能な装置であって、前記エンジン停止によりバックアップモードに移行する場合に、現在地の地図表示画面以外の表示を行っていたとき、現在地地図データを前記メモリに保存し、前記休止状態が一定期間を超えて再起動された場合、前記現在地地図を表示することを特徴とする。
【発明の効果】
【0007】
本発明によれば、起動時の高速性を保ちつつ、休止状態からの再起動時の表示画面を、休止期間に応じて変更することが可能となる。
【発明を実施するための最良の形態】
【0008】
次に、本発明を実施するための最良の形態(「実施形態」という)について、適宜図面を参照しながら詳細に説明する。
本発明のカーナビゲーション装置1は、車両のエンジンキー(図示せず)をOFFにした状態でもカーナビゲーション装置1の一部にはバックアップのための通電がなされており、完全な停止ではなく休止状態(スタンバイ状態)となる機能を有している。このためエンジンキーを再度ONした時、休止状態になる前の処理をそのまま続行することにより、初期化処理が不要になり、再起動の高速化が可能となる。
【0009】
図1は、本実施形態に係るカーナビゲーション装置のハード構成を示すブロック図である。
電源制御部100は、カーナビゲーション装置1全体(各回路)に電源を供給するための回路である。電源入力としては、車両のバッテリ(図示せず)から常時12Vの電源を受けるための+B信号110と、車両のエンジンキーのアクセサリON/OFFの状態を検知するためのACC(Accessory)信号120が入力される。電源制御部100は、ACC信号120がONの状態で通常電源による電源供給を行う動作モードと、ACC信号120がOFFの状態でバックアップ電源による電源供給を行うバックアップモードとを切替可能である。また、制御信号として、(1)ACC信号120がONまたはOFFになったことを、電源制御部100が、CPU(Central Processing Unit)1503に通知するためのACC通知250と、(2)電源制御部100が、CPU1503からのバックアップモードに移行するための許可を受け取る電源OFF許可通知240がある。
また、電源制御部100は、通常電源を制御するための通常電源制御信号130を通常電源およびSoC(System on Chip)150に送ったり、バックアップ電源を制御するためのバックアップ電源信号140をバックアップ電源およびSoC150に送ったりする機能を有する。
なお、電源制御部100には、図2に示すスタンバイ制御部600の不具合が発生し、スタンバイ制御部600から電源OFF許可通知240が送られてこない場合に、通常電源を強制終了するための時間をカウントするタイマ1001の機能が内蔵されている。
【0010】
SoC150はカーナビゲーション装置1の中心となるLSI(Large Scale Integration)で、CPU1503、DSP(Digital Signal Processor)1504といったプロセッサ、SoC150の各種入出力を制御するI(Input)/O(Output)制御部1505、メモリであるDRAM(Dynamic Random Access Memory)160の制御を行うためのDRAM制御部1501、時計1502がある。これらの中で、バックアップ電源(図示せず)から電力が供給されるのはDRAM制御部1501と時計1502であり、その他は通常電源(図示せず)から電力が供給される。
【0011】
GPS170(Global Positioning System)170は人工衛星(図示せず)からの電波を受けて現在位置を計測するためのものであり、SoC150は、GPS170、ジャイロ231、車速パルスなどの信号を組み合わせて車両の現在位置を常に計測する。HD180(Hard Disc)180は、地図データや音楽データなどを格納するためのハードディスク装置である。スピーカ190は、ルートガイドのための音声案内や音楽を再生するためのものである。タッチパネル付ディスプレイ200は、地図や映像を表示し、入力機能を有するディスプレイであり、ディスプレイに表示されたキーの位置に対応するタッチパネルの部分を顧客が押下することにより情報がSoC150へ入力される。地デジチューナ230は、地上デジタルテレビ放送を受信するためのチューナである。ROM210(Read Only Memory)210は、カーナビゲーション装置1の動作プログラムを格納する不揮発性のメモリであるが、CPU1503がこのプログラムを実行するときは、高速実行を可能とするためプログラムを一旦DRAM160にコピーした後、DRAM160のプログラムによって実行する。ASIC220(Application Specific IC)220は、SoC150では不足しているI/Oの制御を行うためのLSIで、車速パルスの入力、外部との通信I/F(Interface)、USB(Universal Serial Bus)などの制御を行う。
【0012】
次に、図1を参照しつつ、図2に沿って本実施形態に係るカーナビゲーション装置1のソフトウェア機能を説明する。
図2は、本実施形態に係るカーナビゲーション装置のソフトウェア機能のブロック図である。
カーナビゲーション装置1のソフトウェア機能は、スタンバイ制御部600、起動制御部700、ナビアプリケーション300、デジタル放送アプリケーション400およびオーディオアプリケーション500の5つのアプリケーションに分かれている。
【0013】
スタンバイ制御部600は、カーナビゲーション装置1を休止状態に移行させるための割込み処理を行う機能を有する。この処理を行うための割り込み信号は、電源制御部100からのACC通知250によりACCがOFF状態(ACC OFF)になったことをスタンバイ制御部600が検知したときに発生する。また、スタンバイ制御部600は、電源OFF許可通知240を電源制御部100へ送り、この電源OFF許可通知240を送られた電源制御部は、通常電源をOFFさせる処理を行う。スタンバイ制御部600の退避処理部6010は、再起動時に正しく処理が再開できるように、SoC150やASIC220などのハードウェアのレジスタデータをDRAM160に退避させる処理と、該DRAM160が正しくバックアップされていることを再起動時に検証できるようにするためのチェックサムデータをDRAM160に書き込む機能を有する。SoC150やASIC220などのレジスタは、通常電源がOFFになるとデータが消滅してしまうので、これらのデータは、退避処理部6010によりDRAM160に退避させておく。また、退避処理部6010は、スタンバイ制御部600の割込みが発生する直前のCPU1503のプログラムカウンタやステータスレジスタなどもDRAM160へ退避させる。従って、後記する起動制御部700は、この退避されたレジスタの値を元に戻せば、休止状態になる前の処理を継続できる。またDRAM160はバッテリバックアップされているので、そのメモリの内容はACC OFFの状態でもデータが消えないが、バッテリの取り外しや、バッテリの電圧不足になりデータが消滅することも考えられる。そこで、退避処理部6010は、DRAM160のデータの一部(64バイト程度)を2バイト単位で加算し、その結果をDRAM160へ書き込んでおく。この処理を数箇所(4箇所程度)メモリ空間が離れた場所で実施しておく。
【0014】
スタンバイ処理部のメモリリーク処理部6030は、メモリリークやメモリの断片化が発生していないか否かをチェックし、対処する機能を有し、休止状態に移行するときメモリ容量のうち、一定容量(例えば実装メモリ容量の1割)メモリ取得が可能であるかどうかをチェックする機能を有する。
【0015】
起動制御部700は、ACCがON状態になったに、カーナビゲーション装置1を再起動させる機能を有し、通常電源を使用してCPU1503が起動するときに最初に実行される。起動制御部700の復帰処理部7010は、ACCがON状態になると、まずチェックサムデータのチェックを行う。つまり、退避処理部6010で実施したことと同じように、復帰処理部7010は、チェックサムを計算し、その結果が、退避処理部6010によって書き込まれたチェックサムデータと一致すればDRAM160のデータは正しくバックアップされていたものと判断する。次に、復帰処理部7010は、DRAM160に退避されていたSoC150などのレジスタデータを復帰させる。これにより、ハードウェアが休止状態になる直前の状態に戻るので、カーナビゲーション装置1は、休止状態になる前の処理を継続できる。さらには、復帰処理部7010が、ナビアプリケーション300の表示状態フラグ3071をチェックすることにより、どのアプリケーションのどのような画面で再起動したかを確認することができる。なお、起動制御部700は、通常電源制御信号130の取得をトリガとして起動する。
【0016】
ナビアプリケーション300は、ナビアプリケーション300全体を制御するナビゲーション制御部3000、HD180から必要な地図データをアクセスする地図データアクセス部3010、現在地から目的地までの経路を探索する経路探索部3030、自車位置を常時計測するロケータ3040、経路探索部3030が探索した経路にしたがって車両を誘導する誘導制御部3050、タッチパネル付ディスプレイ200からの運転者の操作を受け付けるための操作制御部3060、および地図やメニューなどの表示をタッチパネル付ディスプレイ200に行わせる表示制御部3070を有する。
【0017】
ナビゲーション制御部3000は、DRAM160におけるナビアプリケーション300の使用領域などを初期化する初期化処理部3001を有する。表示制御部3070は、ナビアプリケーション300の表示だけではなく、他のアプリケーションの画面表示も行う。そのため、現在どのアプリケーションのどのような画面を表示中であるかを管理する表示状態フラグ3071を有する。この表示状態フラグ3071を基にナビゲーションの表示動作が決定され、現在地地図、スクロール地図、設定メニューなどの画面遷移が決まる。更に、表示制御部3070は、他のアプリケーションの画面も管理する。すなわち、デジタル放送アプリケーション400およびオーディオアプリケーション500も、この表示制御部3070が表示するメニューで指定されることによって起動される。この表示状態フラグ3071はDRAM160に記憶されるため、休止状態でも内容が保持される。また、ナビアプリケーション300は、他のアプリケーションを画面に表示している時も常に動作を行う。つまり、オーディオや地上デジタルテレビ放送の画面になっているときでも経路を誘導することができる。
【0018】
デジタル放送アプリケーション400は、地上デジタルテレビ放送を視聴する機能を有する。受信制御部4010が地デジチューナ230から送られてくるTS信号を受信し、映像データ、音声データ、およびデータ放送の3種類に分類する。映像データは、映像制御部4020でデコードされ映像信号として表示制御部3070に送られ、タッチパネル付ディスプレイ200に表示される。音声データは、音声制御部4030でデコードされスピーカ190に送られる。データ放送は、BML(Broadcasting Markup Language)ブラウザ4040によって解析され、データ放送の表示データが生成される。この表示データは表示制御部3070に送られ、タッチパネル付ディスプレイ200で表示される。受信制御部4010は、DRAM160におけるデジタル放送アプリケーション400の使用領域を初期化して起動待ちの状態にする初期化処理部4011を有する。
【0019】
オーディオアプリケーション500は、音楽を再生する機能を有し、HD180に格納された音楽を再生する場合はHDオーディオアクセス5010が、HD180から音楽データを読み込む。一方、USBに接続した外部デバイス(図示しない)の音楽データを再生する場合は、USB入力部5020が音楽データをUSBデバイスから読み出す。このようにして読み出された音楽データはソース選択部5030で選択され、デコーダ5040でデコードされスピーカ190に送られる。また、DRAM160におけるオーディオアプリケーション500の使用領域を初期化して起動待ちの状態にする初期化処理部5050を有する。
【0020】
なお、図2に示す各部は、ROM210や、HD180に格納されたプログラムが、RAMに展開され、CPU1503によって実行されることによって具現化する。
【0021】
図3は、図2に示すアプリケーションが動作するときのメモリマップの例を示す図である。
このメモリマップは、DRAM160に記憶された作業領域を示す。ナビアプリケーション300、オーディオアプリケーション500およびデジタル放送アプリケーション400の各アプリケーションの使用領域と、タッチパネル付ディスプレイ200に表示するための画像データを記憶するためのフレームバッファ、オペレーティングシステム(OS:Operating System)が使用するシステム領域がある。起動開始直後では、使用領域と開放領域が比較的区別されている。オーディオアプリケーション500やデジタル放送アプリケーション400では、処理を行う毎にメモリ領域の取得や開放を繰り返す動作が行われる。これは、これらのアプリケーションが扱うデータのサイズがその時々によって異なり、固定的な領域を確保するのが困難なためである。メモリの取得と開放はOSによって行われる。各アプリケーションを長時間動作させていると、処理に伴うメモリ領域の取得や開放を繰り返すことにより、使用領域の断片化が進んでいく。
【0022】
図4は、本実施形態に係るメモリ取得と開放を管理するためのメモリ管理テーブルの例を示す図であり、(a)は、ナビアプリケーションのメモリ管理テーブルの例であり、(b)は、オーディオアプリケーションのメモリ管理テーブルの例であり、(c)は、デジタル放送アプリケーションのメモリ管理テーブルの例である。
図4に示す例では、アプリケーション毎にメモリ領域は区別されており、このメモリ管理テーブルはアプリケーション毎に管理されている。OSは、アプリケーションからのメモリ取得の要求があるごとに開始アドレスと要求サイズに応じた終了アドレスとを、当該アプリケーションに対応したメモリ管理テーブルに記録し、アプリケーションにポインタとしてその領域のアドレスを通知する。アプリケーションが開放要求を出したときは、その領域を、メモリ管理テーブルから削除する。このような動作を繰り返していると、図3の長期間動作状態で示すように、使用領域の間に断片化が生じる。またプログラムのミスにより未開放領域も生じる可能性がある。このような領域がたくさん生じた場合、動作に必要な領域が新たに確保できなくなる恐れが生じ、システムダウンを引き起こすことになる。なお、図4(a)〜(c)に示す各メモリ管理テーブルは、例えば、記憶部としてのHD180(図1参照)に格納されている。
【0023】
これまでのカーナビゲーション装置1では車両のエンジンを切るとカーナビゲーション装置1の電源もOFF(停止状態)になり、再起動時に、すべての初期化処理を行っていた。したがって、エンジンを切るたびに断片化領域や未開放領域は全て無くなっていた。しかし、特許文献1に記載の技術を用いたカーナビゲーション装置1では、エンジンを切ってもDRAM160の内容は全て保持される。これにより、再起動時に初期化処理を省略することが可能になったが、反面、断片化領域や未開放領域もそのまま残ってしまうことになる。
【0024】
そこで、本実施形態では、システムの動作が異常になる前に、取得可能なメモリ領域が一定値よりも少なくなっていないか否かをチェックすることで、システムダウンを未然に防止する。さらに、本実施形態では、このチェックが再起動の高速化に影響を及ぼさないようにするため、スタンバイ制御部600によって、ACC信号120によってACC OFFを検知する(ACC信号120がOFFとなる)時にチェックを行う。
【0025】
(スタンバイ制御処理)
次に、図1および図2を参照しつつ、図5に沿ってスタンバイ制御処理を説明する。
図5は、本実施形態に係るスタンバイ制御処理の流れを示す図である。
エンジンキーをACC OFFとすることで、ACC信号120がOFFになると、電源制御部100は、ACC OFFを検知し(S101)、スタンバイ制御部600にACC OFFを通知する。すなわち、スタンバイ制御部600には、はACC信号120のOFFの通知(ACC通知250)により割り込みが発生する。この割込みが発生すると、スタンバイ制御部600は、画面の表示をOFFにする(S102)。これはACC OFFと同時にカーナビゲーション装置1の画面が消えることによって、これ以降の処理(S103〜S110の処理をユーザに見えなくし、ユーザに違和感を与えないことを目的とするものである。ステップS102の処理を行う際、表示制御部3070は、表示状態フラグ3071にどのアプリケーションの画面が表示されていたかの情報を保存する。なお、ステップS102の処理は、省略してもよい。
その後、退避処理部6010が、SoC150やASIC220などが持つレジスタの内容、および時計1502のデータをDRAM160に保存するレジスタ退避処理及び時計1502データ退避処理を行う(S103、S104)。
そして、メモリリーク処理部6030は、メモリ管理テーブルに記録されているサイズデータを合計してメモリ消費量をチェックし(S105)、このチェック結果を基に、メモリリーク処理部6030は、メモリリークが発生しているか否かを判定する(S106)。メモリリーク処理部6030は、メモリ消費量がメモリの全領域に対して、例えば所定の割合以下(例えば、10%以下)になっていたらメモリリークが発生したものと判定する。
【0026】
ステップS106で、メモリリークが発生していないと判定された場合(S106→No)、スタンバイ制御部600は、ステップS108へ処理を進める。
ステップS106で、メモリリークが発生していると判定された場合(S106→Yes)、メモリリーク処理部6030は、メモリ開放処理を行う(S107)。メモリリーク開放処理は、メモリリーク処理部6030が、メモリリークを引き起こしたアプリケーションの初期化処理部3001,4011,5050が、DRAM160における当該アプリケーションの使用領域を初期化を行うことによって行われる。さらに、メモリリーク開放処理では、メモリリーク処理部6030が、図4に示すようなメモリ管理テーブルによって、アプリケーション毎のメモリ使用領域をチェックし、割り当て領域同士のアドレスの間隔が数バイト〜数十バイトの細切れ状態が多くなっている場合は断片化が発生していると判断し、ガーベージコレクションを行い、メモリの開放を行う。
【0027】
次に、スタンバイ制御部600は、ACC信号120がOFFになる時にタッチパネル付ディスプレイ200に表示されていたものが、ナビアプリケーション300であったかどうかを判定する。すなわち、スタンバイ制御部600は、ナビアプリケーション300が表示中であったか否かを判定する(S108)。ステップS108の判定は、表示制御部3070に保存されている表示状態フラグ3071の情報を基に、スタンバイ制御部600が判定する。
ステップS108で、ナビアプリケーション300が表示中でなかったと判定された場合(S108→No)、スタンバイ制御部600は、ステップS110の処理へ進む。
ステップS108で、ナビアプリケーション300の画面が表示中であったと判定された場合(S108→Yes)、スタンバイ制御部600は、表示中の画面がナビアプリケーション300であった場合は、表示している内容が、現在地の地図表示であったか否かを判定し、現在地の地図表示でなかった場合、スタンバイ制御部600は、ナビアプリケーション300の地図データアクセス部3010から現在地の地図を読み出し、表示制御部3070が使用しているフレームバッファ領域のワーク領域(図3参照)に現在地の地図(地図データ)を記憶する(S109)。
なお、現在地の地図表示でなかったと判定された場合(S108→No)、スタンバイ制御部600は、ステップS110へ処理を進める。
そして、スタンバイ制御部600は、電源制御部100へ、通常電源OFF許可を通知する(S110)。すなわち、スタンバイ制御部600は、電源制御部100へ、電源OFF許可通知240を送る。
【0028】
ステップS101の処理後、電源制御部100は、電源OFF許可通知240の検知待機状態となっている。すなわち、電源制御部100は、電源OFF許可通知240を検知したか否かを一定時間毎に判定し(S111)、検知しない場合(S111→No)、ステップS111の処理へ戻る。
ステップS111で、電源OFF許可通知240を検知した場合(S111→Yes)、電源制御部100は、通常電源(図示せず)をOFFさせ(S112)、バックアップモードに切り替えた後、カーナビゲーション装置1はスタンバイ状態(休止状態)となる。
【0029】
なお、休止状態では、図1のDRAM制御部1501、時計1502、GPS170、DRAM160がバックアップ電源によって通電されている。ここで、DRAM160のデータを保持するためには定期的にリフレッシュ動作が必要となる。このリフレッシュ動作はDRAM制御部1501が行う。
【0030】
(起動制御処理)
次に、図1および図2を参照しつつ、図6に沿って休止状態から動作状態に復帰するときの起動制御処理を説明する。
図6は、本実施形態に係る起動制御処理の流れを示す図である。
電源制御部100が、ACC信号120によって、ACC ONを検知すると(S201)、電源制御部100は、通常電源をONさせる(S202)。このとき、電源制御部100から通常電源へ送られた通常電源制御信号130は、SoC150で実行されている起動制御部700にも入力され、起動制御部700は、通常電源制御信号130の取得をトリガとして起動制御処理を開始する。なお、電源制御部100は、ステップS202の後、処理を終了する。
そして、起動制御部700は、DRAM160のメモリバックアップが有効であるか否かを判定する(S203)。メモリバックアップが有効であるか否かの判定は、起動制御部700が、前記したチェックサムのデータをチェックすることで行われる。
【0031】
ステップS203で、バッテリの不具合などによりメモリバックアップが無効になっていた場合(S203→No)、DRAM制御部1501は、DRAM160の全初期化処理を行い(S204)、カーナビゲーション装置1の再起動を行う。DRAM160の全初期化を行うと、カーナビゲーション装置1は初期状態となる。この状態で、起動制御部700は、カーナビゲーション装置1を再起動し、ナビアプリケーション300を起動させ(S205)、起動したナビアプリケーション300は、現在位置の表示を行う。そして、起動制御部700は、処理を終了する。
【0032】
ステップS203でバックアップが有効であると判定された場合(S203→Yes)、復帰処理部7010は、図5のステップS103でDRAM160に退避されているレジスタの復帰処理を行う(S206)。そして、起動制御部700は、休止状態になる前(ACC OFF前)の状態が、現在地を表示していたか否かを判定する(S207)。ステップS207の判定は、起動制御部700が、DRAM160にバックアップされていた表示状態フラグ3071の状態を参照して行う。
ステップS207で、現在地を表示していなかった場合(S207→No)、起動制御部700は、後記して説明するステップS210の処理へ進む。
ステップS207で、現在地を表示していた場合(S207→Yes)、起動制御部700は、時計1502から現在の日時データを取得し、図5のステップS104でDRAM160に退避していた日時データと、取得した現在の日時データとを比較し(S208)、休止状態の期間である休止期間が24時間以上経過しているか否かを判定する(S209)。なお、本実施形態では、24時間としたが、これに限らず、何時間でもよい。
【0033】
ステップS209の結果、休止期間が、24時間未満であった場合(S209→24h未満)、起動制御部700は、休止状態になる前のアプリケーションをそのまま再開する(S210)。
ステップS209の結果、休止期間が、24時間以上であった場合(S209→24h以上)、復帰処理部7010が、図5のステップS109でフレームバッファ領域のワーク領域(図3参照)に記憶された地図データをフレームバッファの表示領域(図3参照)にコピーし(S211)、表示状態フラグ3071を現在地地図の表示を行っている状態に変更する(S212)、現在地地図をタッチパネル付ディスプレイ200に表示させる。
さらに、復帰処理部7010は、デジタル放送アプリケーション400の初期化処理部4011およびオーディオアプリケーション500の初期化処理部5050にオーディオアプリケーション初期化処理部DRAM160のオーディオアプリケーション500とデジタル放送アプリケーション400のメモリ使用領域を初期化させ(S213)、処理を終了する。この場合、休止状態になる前における動作中のアプリケーションが、オーディオアプリケーション500やデジタル放送アプリケーション400の場合であっても、休止期間が24時間以上であったら、復帰処理部7010は、ナビアプリケーション300の現在地地図を表示させる。
【0034】
図7は、図5のスタンバイ制御処理および図6の起動制御処理を実行した際の画面例であり、(a)は、ACC OFF時の画面例であり、(b)は、ACC復帰時の画面例である。
図7を用いて、スタンバイ状態の期間の長さに応じて再起動時の画面表示を変える理由について説明する。
ACCをOFFする直前の表示が、ナビアプリケーション300の表示中でありが、現在地地図の表示ではなく、例えば図7(a)に示すような行先設定の操作画面2001のような場合を想定する。ユーザが行先設定の途中でエンジンを切った後、1日以上(24時間以上)も経ってから車両のエンジンを起動させ、図7(a)の操作画面2001が出た場合、ユーザが、この画面の続きの操作を行うことは考え難い。そこで、1日以上のスタンバイ状態が続いた場合、起動制御部700は、再起動時で図7(b)のような、現在位置の地図(現在地地図2002)をタッチパネル付ディスプレイ200に表示させる。操作途中の画面としては行先設定以外にもシステム設定画面や現在位置以外の場所の地図表示等が考えられるが、いずれも、1日以上経過した状態で、ユーザが、同様の操作を行うとは考え難い。したがって、このような場合でも、再起動時には、図7(b)に示す現在地地図2002をタッチパネル付ディスプレイ200に表示させる。
【0035】
(変形例)
次に、図1および図2を参照しつつ、図8および図9に沿って、図5で説明したスタンバイ制御処理の他の例を説明する。なお、図8および図9において、図5と同様の処理には、同一の符号を付して説明を省略する。
図8および図9は、本実施形態におけるスタンバイ制御処理の他の例を示す図である。
図8は、ACC信号120がOFFになって休止状態になるとき、スタンバイ制御部600の不具合により、電源制御部100に対して電源OFF許可通知240が送られない場合があることを想定したものである。ACCがOFFされた状態で、通常電源が長期間通電されたままになっているとバッテリが過放電されてしまい、エンジンの再起動ができなくなる恐れがある。
【0036】
このような問題を解決するため、電源制御部100にタイマ1001を設ける。すなわち、ステップS101において、電源制御部100が、ACCのOFFを検知すると、タイマ1001がカウントを開始する。そして、ステップS111において、電源制御部100が、スタンバイ制御部600から送られる電源OFF許可通知240を検知しなかった場合(S111→No)、電源制御部100は、タイマ1001から現在のカウント秒数を取得し、ACC OFFから(すなわち、ステップS101から)30秒経過したか否かを判定する(S301)。なお、ここでは、30秒としたが、これに限らず、どのような時間でもよい。
ステップS301で、30秒経過していないと判定された場合(S301→No)、電源処理部は、ステップS111へ処理を戻す。
【0037】
ステップS301で、30秒経過したと判定された場合(S301→Yes)、すなわち、30秒経ってもスタンバイ制御部600から電源OFF許可通知240が送られない場合、電源制御部100は、バックアップ電源を切断(OFF)してDRAM160のメモリバックアップを無効化した(S302)後、通常電源をOFFにする(S112)。
これによりDRAM160のデータは消滅してしまうが、バッテリの過放電は回避される。この状態で再起動すると、図6のステップS203において、DRAM160がバックアップされていないのでチェックサムデータが不整合を起こし、バックアップメモリが無効であったと起動制御部700が判定するので(図6のS203→No)、DRAM160の全初期化処理が行われ(図6のS204)、カーナビゲーション装置1は正常に起動することができる。
【0038】
ナビアプリケーション300では、地図データなどの処理するデータの最大サイズを予め承知した上で、最初から必要な分だけメモリを確保するように設計してあるので動的なメモリの取得と開放とを行わないプログラムにすることが可能である。このような場合、ナビアプリケーション300を実行しても、メモリリークやメモリの断片化は発生し難い。
しかしながら、オーディオアプリケーション500やデジタル放送アプリケーション400は、扱うデータサイズが、その時々で異なるので動的にメモリの取得と開放を行う必要がある。このため、オーディオアプリケーション500や、デジタル放送アプリケーション400は、メモリリークやメモリ断片化を引き起こしやすい可能性を持つ。
【0039】
ところで、カーナビゲーション装置1が再起動したときに表示されるこれらのアプリケーション(オーディオアプリケーション500や、デジタル放送アプリケーション400)の画面は、ACCをOFFにした時の画面でなくても、ユーザには違和感を与えない。例えば、デジタル放送アプリケーション400の場合、再起動時にはスタンバイに移行した時の画面の放送は行われていないので、再起動時に休止状態移行時の画面から再開することはなく、当然違う画面から再開することになる。また、オーディオを再生途中の画面のまま休止状態に移行し、その後再起動された場合、休止状態移行時の音楽の続きから再生する必要はなく、例えば、その曲の先頭から再生しても違和感はない。従って、メモリリーク対策を必要とするアプリケーション(オーディオアプリケーション500およびデジタル放送アプリケーション400)について、休止状態に移行する際、毎回初期化処理を行ってメモリ開放を行い、しかも再起動時に必要な画面などの状態を準備してから停止すれば再起動時には常にメモリ領域が正常化されており、また再起動時の画面も運転者に違和感のない画面にすることができる。
【0040】
図9は、このようなメモリリーク対策として、休止状態に移行する時、ナビアプリケーション300以外のアプリケーションを初期化する例を示す。
ステップS104の処理後、スタンバイ制御部600は、デジタル放送アプリケーション400の初期化処理部4011にDRAM160におけるデジタル放送アプリケーション400の使用領域を初期化させる(デジタル放送アプリケーション400の初期化)(S401)。
次に、スタンバイ制御部600は、スタンバイ制御部600は、オーディオアプリケーション500の初期化処理部5050にDRAM160におけるオーディオアプリケーション500の使用領域を初期化させ(オーディオアプリケーション500の初期化)(S402)、ステップS108の処理へ進む。
【0041】
ここで、以下に記載する処理を行ってもよい。
すなわち、ステップS104の処理後、スタンバイ制御部600は、デジタル放送アプリケーション400が動作中であるか否かを判定する。
判定の結果、デジタル放送アプリケーション400が動作中であると判定された場合、スタンバイ制御部600は、デジタル放送アプリケーション400の初期化処理部4011にデジタル放送アプリケーション400の初期化を行わせた後、再起動に備えて、受信していたチャンネルの表示する準備を行っておく。つまり、スタンバイ制御部600は、表示状態フラグ3071に、デジタル放送アプリケーション400が動作中であることと、その時の受信チャンネルを記憶させておく。
判定の結果、動作中でない場合、スタンバイ処理部は、ステップS401の処理を行う。
次に、スタンバイ制御部600は、オーディオアプリケーション500が動作中であるか否かを判定する。
判定の結果、オーディオアプリケーション500が動作中であると判定された場合、スタンバイ制御部600は、オーディオアプリケーション500の初期化処理部5050にオーディオアプリケーション500を初期化させ、現在再生中の楽曲を最初から再生する準備を行っておく。つまり、スタンバイ制御部600は、表示状態フラグ3071に、オーディオアプリケーション500動作中であることと、その時の再生中の楽曲の情報を記憶させておく。判定の結果、動作中でない場合、スタンバイ制御部600は、ステップS402の処理を行う。
このような処理を行うことによって、メモリリークを発生させる可能性があるアプリケーションにDRAM160における使用領域を初期化し、メモリリーク対策を行うと同時に、再起動時の動作の準備を行っているので高速起動も可能である。
【0042】
次に、図1および図2を参照しつつ、図10に沿って、図6で説明した起動制御処理の他の例を説明する。なお、図10において、図6と同様の処理には、同一の符号を付して説明を省略する。
図10は、本実施形態における起動制御処理の他の例を示す図である。
図10は、図6の休止期間を時間管理ではなく、日付管理としたとき処理を示したものである。すなわち、ステップS208の処理において、起動制御部700は、図5のステップS104でDRAM160に退避させていた日時情報と現在の時計1502の日付を比較し、日付が変わっているか否かを判定する(S501)。
ステップS501で、日付が変わっていない場合(S501→No)、起動制御部700は、ステップS210の処理を行う。
ステップS501で、日付が変わっている場合(S501→Yes)、起動制御部700は、ステップS211の処理を行う。
【0043】
本実施形態によれば、操作画面の途中で休止状態に移行し、長期間の休止から再起動するときはカーナビゲーション装置1のデフォルト画面である現在位置地図表示されるので、運転者にとって違和感のない画面となり操作性の向上につながる。この際、本実施形態に係るカーナビゲーション装置1は、車両のエンジンキー(図示せず)をOFFにした状態でもカーナビゲーション装置1の一部にはバックアップのための通電がなされており、完全な停止ではなく休止状態(スタンバイ状態)となる機能を有しているため、起動時の高速性は保たれたままである。
さらに、本実施形態によれば、休止状態に移行するときにメモリリークやメモリ断片化の検出と対策を行ってから休止状態になるため、再起動時にはメモリリークやメモリ断片化が対策されており、常に安定した高速起動を実現することができる。
【0044】
本実施形態では、カーナビゲーション装置1としたが、これに限らず、例えば、図1〜図10を参照して記載したカーナビゲーション装置1の機能を有した制御装置を、カーナビゲーション装置1や、デジタル放送テレビジョンや、オーディオ装置に接続して、これらの機器を制御させてもよい。
また、例えば、ECU(Engine Control Unit)に、図1〜図10を参照して記載したカーナビゲーション装置1の機能を搭載し、カーナビゲーション装置1や、デジタル放送テレビジョンや、オーディオ装置に接続して、これらの機器を制御させてもよい。
【図面の簡単な説明】
【0045】
【図1】本実施形態に係るカーナビゲーション装置のハード構成を示すブロック図である。
【図2】本実施形態に係るカーナビゲーション装置のソフトウェア機能のブロック図である。
【図3】図2に示すアプリケーションが動作するときのメモリマップの例を示す図である。
【図4】本実施形態に係るメモリ取得と開放を管理するためのメモリ管理テーブルの例を示す図であり、(a)は、ナビアプリケーションのメモリ管理テーブルの例であり、(b)は、オーディオアプリケーションのメモリ管理テーブルの例であり、(c)は、デジタル放送アプリケーションのメモリ管理テーブルの例である。
【図5】本実施形態に係るスタンバイ制御処理の流れを示す図である。
【図6】本実施形態に係る起動制御処理の流れを示す図である。
【図7】図5のスタンバイ制御処理および図6の起動制御処理を実行した際の画面例であり、(a)は、ACC OFF時の画面例であり、(b)は、ACC復帰時の画面例である。
【図8】本実施形態におけるスタンバイ制御処理の他の例を示す図である(その1)。
【図9】本実施形態におけるスタンバイ制御処理の他の例を示す図である(その2)。
【図10】本実施形態における起動制御処理の他の例を示す図である。
【符号の説明】
【0046】
1 カーナビゲーション装置
100 電源制御部
110 +B信号
120 信号
120 ACC信号
130 通常電源制御信号
150 SoC
160 DRAM
170 GPS
190 スピーカ
200 タッチパネル付ディスプレイ
210 ROM
220 ASIC
230 地デジチューナ
231 ジャイロ
240 電源OFF許可通知
250 ACC通知
300 ナビアプリケーション
400 デジタル放送アプリケーション
500 オーディオアプリケーション
600 スタンバイ制御部
700 起動制御部
1001 タイマ
1501 DRAM制御部
1502 時計
1503 CPU
1504 DSP
1505 I/O制御部
3000 ナビゲーション制御部
3001 初期化処理部
3010 地図データアクセス部
3030 経路探索部
3040 ロケータ
3050 誘導制御部
3060 操作制御部
3070 表示制御部
3071 表示状態フラグ
4010 受信制御部
4011 初期化処理部
4020 映像制御部
4030 音声制御部
4040 ブラウザ
5010 HDオーディオアクセス
5020 USB入力部
5030 ソース選択部
5040 デコーダ
5050 初期化処理部
6010 退避処理部
6030 メモリリーク処理部
7010 復帰処理部

【特許請求の範囲】
【請求項1】
車両のエンジン起動時は各回路に電源を供給する動作モードと、エンジン停止時にはメモリを含む一部の回路にバックアップ用の電源を供給するバックアップモードとを制御する電源制御部を有し、エンジン停止時には、前記バックアップモードに対応して前記メモリの記憶内容や動作途中の情報が保持された休止状態となり、エンジン再起動時には前記動作途中の状態から継続して動作可能なカーナビゲーション装置であって、
前記エンジン停止によりバックアップモードに移行する場合に、現在地の地図表示画面以外の表示を行っていたとき、現在地地図データを前記メモリに保存してから前記休止状態とするスタンバイ制御部と、
前記休止状態が一定期間を超えて再起動された場合、前記現在地地図を表示する起動制御部とを有することを特徴とするカーナビゲーション装置。
【請求項2】
前記スタンバイ制御部は、
前記メモリから所定容量のメモリ領域が確保できるか否かを判定し、前記所定容量が確保できない場合は、前記メモリにおけるメモリ開放処理を実施してから前記電源制御部をバックアップモードに切り替え、前記休止状態に移行する機能を有することを特徴とする請求項1に記載のカーナビゲーション装置。
【請求項3】
前記カーナビゲーション装置は、
ナビゲーション機能を含む複数の機能と、前記機能単位でメモリの取得と開放を管理する複数のメモリ管理テーブルを格納している記憶部をさらに有し、
前記スタンバイ制御部における前記メモリ開放処理は、前記メモリ管理テーブルごとに前記メモリから所定容量のメモリ領域が確保できるかどうかを確認し、前記容量が確保できない機能について再起動した状態で前記電源制御部をバックアップモードに切り替えることを特徴とする請求項2に記載のカーナビゲーション装置。
【請求項4】
前記電源制御部は、前記エンジン停止の信号を受信して一定時間が経過してもバックアップモードへの切り替え信号を受信しなかった場合、強制的にバックアップモードに移行する機能を有することを特徴とする請求項1から請求項3のいずれか一項に記載のカーナビゲーション装置。
【請求項5】
車両のエンジン起動時は、各回路に電源を供給する動作モードと、エンジン停止時にはメモリを含む一部の回路にバックアップ用の電源を供給するバックアップモードとを制御する電源制御部を有し、エンジン停止時には、前記バックアップモードに対応して前記メモリの記憶内容や動作途中の情報が保持された休止状態となり、エンジン再起動時には前記動作途中の状態から継続して動作可能なカーナビゲーション装置における制御方法であって、
前記カーナビゲーション装置におけるスタンバイ制御部が、
前記エンジン停止によりバックアップモードに移行する場合に、現在地の地図表示画面以外の表示を行っていたとき、現在地地図データを前記メモリに保存してから前記休止状態とし
前記カーナビゲーション装置における起動制御部が、
前記休止状態が一定期間を超えて再起動された場合、前記メモリに保存した現在地地図データを表示することを特徴とする制御方法。
【請求項6】
前記スタンバイ制御部は、
前記メモリから所定容量のメモリ領域が確保できるか否かを判定し、前記所定容量が確保できない場合は、前記メモリにおけるメモリ開放処理を実施してから前記電源制御部をバックアップモードに切り替え、前記休止状態に移行することを特徴とする請求項5に記載の制御方法。
【請求項7】
請求項5または請求項6に記載の制御方法を、コンピュータに実行させることを特徴とするプログラム。
【請求項8】
車両のエンジン起動時は、各回路に電源を供給する動作モードと、エンジン停止時にはメモリを含む一部の回路にバックアップ用の電源を供給するバックアップモードとを制御する電源制御部を有し、エンジン停止時には、前記バックアップモードに対応して前記メモリの記憶内容や動作途中の情報が保持された休止状態となり、エンジン再起動時には前記動作途中の状態から継続して動作可能な制御装置であって、
前記エンジン停止によりバックアップモードに移行する場合に、現在地の地図表示画面以外の表示を行っていたとき、現在地地図データを前記メモリに保存してから前記休止状態とするスタンバイ制御部と、
前記休止状態が一定期間を超えて再起動された場合、前記現在地地図を表示する起動制御部とを有することを特徴とする制御装置。
【請求項9】
前記スタンバイ制御部は、
前記メモリから所定容量のメモリ領域が確保できるか否かを判定し、前記所定容量が確保できない場合は、前記メモリにおけるメモリ開放処理を実施してから前記電源制御部をバックアップモードに切り替え、前記休止状態に移行する機能を有することを特徴とする請求項8に記載の制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2009−128313(P2009−128313A)
【公開日】平成21年6月11日(2009.6.11)
【国際特許分類】
【出願番号】特願2007−306414(P2007−306414)
【出願日】平成19年11月27日(2007.11.27)
【出願人】(000005108)株式会社日立製作所 (27,607)
【出願人】(000001487)クラリオン株式会社 (1,722)
【Fターム(参考)】