(57)【要約】【課題】休止状態からの再起動時の表示画面を、休止期間に応じて変更することを目的とする。【解決手段】車両のエンジン起動時は全ての回路に電源を供給する動作モードと、エンジン停止時にはＤＲＡＭ１６０を含む一部の回路にバックアップ用の電源を供給するバックアップモードとを制御する電源制御部１００を有し、エンジン停止時にはＤＲＡＭ１６０の記憶内容や動作途中の情報が保持された休止状態となり、エンジン再起動時には動作途中の状態から継続して動作可能なカーナビゲーション装置１であって、エンジン停止の信号によりバックアップモードに移行する場合に、現在地の地図表示画面以外の表示を行っていたとき、現在地地図データをＤＲＡＭ１６０に保存し、休止状態が一定期間を超えて再起動された場合、現在地地図を表示することを特徴とする。【選択図】図１
2009128313.tif 000002
【特許請求の範囲】
【請求項１】
車両のエンジン起動時は各回路に電源を供給する動作モードと、エンジン停止時にはメモリを含む一部の回路にバックアップ用の電源を供給するバックアップモードとを制御する電源制御部を有し、エンジン停止時には、前記バックアップモードに対応して前記メモリの記憶内容や動作途中の情報が保持された休止状態となり、エンジン再起動時には前記動作途中の状態から継続して動作可能なカーナビゲーション装置であって、
前記エンジン停止によりバックアップモードに移行する場合に、現在地の地図表示画面以外の表示を行っていたとき、現在地地図データを前記メモリに保存してから前記休止状態とするスタンバイ制御部と、
前記休止状態が一定期間を超えて再起動された場合、前記現在地地図を表示する起動制御部とを有することを特徴とするカーナビゲーション装置。
【請求項２】
前記スタンバイ制御部は、
前記メモリから所定容量のメモリ領域が確保できるか否かを判定し、前記所定容量が確保できない場合は、前記メモリにおけるメモリ開放処理を実施してから前記電源制御部をバックアップモードに切り替え、前記休止状態に移行する機能を有することを特徴とする請求項１に記載のカーナビゲーション装置。
【請求項３】
前記カーナビゲーション装置は、
ナビゲーション機能を含む複数の機能と、前記機能単位でメモリの取得と開放を管理する複数のメモリ管理テーブルを格納している記憶部をさらに有し、
前記スタンバイ制御部における前記メモリ開放処理は、前記メモリ管理テーブルごとに前記メモリから所定容量のメモリ領域が確保できるかどうかを確認し、前記容量が確保できない機能について再起動した状態で前記電源制御部をバックアップモードに切り替えることを特徴とする請求項２に記載のカーナビゲーション装置。
【請求項４】
前記電源制御部は、前記エンジン停止の信号を受信して一定時間が経過してもバックアップモードへの切り替え信号を受信しなかった場合、強制的にバックアップモードに移行する機能を有することを特徴とする請求項１から請求項３のいずれか一項に記載のカーナビゲーション装置。
【請求項５】
車両のエンジン起動時は、各回路に電源を供給する動作モードと、エンジン停止時にはメモリを含む一部の回路にバックアップ用の電源を供給するバックアップモードとを制御する電源制御部を有し、エンジン停止時には、前記バックアップモードに対応して前記メモリの記憶内容や動作途中の情報が保持された休止状態となり、エンジン再起動時には前記動作途中の状態から継続して動作可能なカーナビゲーション装置における制御方法であって、
前記カーナビゲーション装置におけるスタンバイ制御部が、
前記エンジン停止によりバックアップモードに移行する場合に、現在地の地図表示画面以外の表示を行っていたとき、現在地地図データを前記メモリに保存してから前記休止状態とし
前記カーナビゲーション装置における起動制御部が、
前記休止状態が一定期間を超えて再起動された場合、前記メモリに保存した現在地地図データを表示することを特徴とする制御方法。
【請求項６】
前記スタンバイ制御部は、
前記メモリから所定容量のメモリ領域が確保できるか否かを判定し、前記所定容量が確保できない場合は、前記メモリにおけるメモリ開放処理を実施してから前記電源制御部をバックアップモードに切り替え、前記休止状態に移行することを特徴とする請求項５に記載の制御方法。
【請求項７】
請求項５または請求項６に記載の制御方法を、コンピュータに実行させることを特徴とするプログラム。
【請求項８】
車両のエンジン起動時は、各回路に電源を供給する動作モードと、エンジン停止時にはメモリを含む一部の回路にバックアップ用の電源を供給するバックアップモードとを制御する電源制御部を有し、エンジン停止時には、前記バックアップモードに対応して前記メモリの記憶内容や動作途中の情報が保持された休止状態となり、エンジン再起動時には前記動作途中の状態から継続して動作可能な制御装置であって、
前記エンジン停止によりバックアップモードに移行する場合に、現在地の地図表示画面以外の表示を行っていたとき、現在地地図データを前記メモリに保存してから前記休止状態とするスタンバイ制御部と、
前記休止状態が一定期間を超えて再起動された場合、前記現在地地図を表示する起動制御部とを有することを特徴とする制御装置。
【請求項９】
前記スタンバイ制御部は、
前記メモリから所定容量のメモリ領域が確保できるか否かを判定し、前記所定容量が確保できない場合は、前記メモリにおけるメモリ開放処理を実施してから前記電源制御部をバックアップモードに切り替え、前記休止状態に移行する機能を有することを特徴とする請求項８に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カーナビゲーション装置、制御方法、プログラムおよび制御装置に関する。
【背景技術】
【０００２】
従来のカーナビゲーション装置は、車両のエンジンキーと連動して電源が投入・切断され、カーナビゲーション装置の起動時には、その都度、初期状態から起動するようになっていた。このようなカーナビゲーション装置は、起動時にプログラムのローディングや各種初期化処理が必要となり、起動時間が１０秒以上かかることがあった。
そこで、エンジンキーがＯＦＦ状態でもメモリをバックアップすることでカーナビゲーション装置をスタンバイ状態で停止させて、再起動時のプログラムのローディングや初期化処理を省略することで起動時間を短縮する車載情報装置用電源回路およびこの回路を使用した車載情報装置が開示されている（例えば、特許文献１参照）。
また、バッテリバックアップされたメモリ上にマップマッチング用の地図データを記憶させ、再起動時には当該メモリのデータ（マップマッチング用の地図データ）を用いて現在地の地図表示を行うことで、再起動時における現在地の地図表示処理の時間短縮を行うナビゲーション装置が開示されている（特許文献２参照）。
【０００３】
さらに、特許文献１に記載の技術のように初期化処理を省略した状態で長期間カーナビゲーション装置を動作させた場合、メモリのフラグメンテーションやメモリリークが発生する危険性がある。フラグメンテーションとは、プログラムがメモリ領域の取得と開放を繰り返す動作を繰り返しているうちにメモリ領域の断片化が発生して、新たにメモリ領域の確保ができなくなる状態である。また、メモリリークとはプログラムの不具合により取得したメモリ領域を用済み後も開放しない状態があり、徐々にメモリ領域が枯渇していくことである。いずれの状態も放置しておくとシステムダウンにつながってしまう。そこで、定期的にメモリの使用状態を監視してメモリ使用量が急激に増えた場合、メモリリーク対策を実施するメモリリーク監視方法、これを実行するプログラムおよび装置が開示されている（特許文献３参照）。
【特許文献１】特開２００６−１７８９０１号公報
【特許文献２】特開２００１−３３０４４６号公報
【特許文献３】特開２００５−２５０７５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献２に記載のナビゲーションは、再起動時には常に現在地の地図表示を行うことになる。例えばメニュー操作中や地図のスクロール操作中に車両のエンジンを停止し、その後再起動した場合でも現在地の地図表示で起動する。もし、操作途中で一時的にエンジンを停止し、その後エンジンを再起動して前記操作を継続しようとしてもできない。エンジンの停止期間が短ければ、使用者は操作の継続を望む可能性が高い。
また、特許文献３に記載の技術のようにメモリリーク対策を実行すると、装置の一部または全部の機能を一時停止させなければならない。従って、車両が走行中のカーナビゲーション装置においてメモリリーク診断・およびその対策を行うことは好ましくない。
【０００５】
そこで、本発明は、起動時の高速性を保ちつつ、休止状態からの再起動時の表示画面を、休止期間に応じて変更することを目的とする。
【課題を解決するための手段】
【０００６】
前記課題を解決するため、本発明は、車両のエンジン起動時に、各回路に電源を供給する動作モードと、エンジン停止時にはメモリを含む一部の回路にバックアップ用の電源を供給するバックアップモードとを制御する電源制御部を有し、エンジン停止時には、前記バックアップモードに対応して前記メモリの記憶内容や動作途中の情報が保持された休止状態となり、エンジン再起動時には前記動作途中の状態から継続して動作可能な装置であって、前記エンジン停止によりバックアップモードに移行する場合に、現在地の地図表示画面以外の表示を行っていたとき、現在地地図データを前記メモリに保存し、前記休止状態が一定期間を超えて再起動された場合、前記現在地地図を表示することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、起動時の高速性を保ちつつ、休止状態からの再起動時の表示画面を、休止期間に応じて変更することが可能となる。
【発明を実施するための最良の形態】
【０００８】
次に、本発明を実施するための最良の形態（「実施形態」という）について、適宜図面を参照しながら詳細に説明する。
本発明のカーナビゲーション装置１は、車両のエンジンキー（図示せず）をＯＦＦにした状態でもカーナビゲーション装置１の一部にはバックアップのための通電がなされており、完全な停止ではなく休止状態（スタンバイ状態）となる機能を有している。このためエンジンキーを再度ＯＮした時、休止状態になる前の処理をそのまま続行することにより、初期化処理が不要になり、再起動の高速化が可能となる。
【０００９】
図１は、本実施形態に係るカーナビゲーション装置のハード構成を示すブロック図である。
電源制御部１００は、カーナビゲーション装置１全体（各回路）に電源を供給するための回路である。電源入力としては、車両のバッテリ（図示せず）から常時１２Ｖの電源を受けるための＋Ｂ信号１１０と、車両のエンジンキーのアクセサリＯＮ／ＯＦＦの状態を検知するためのＡＣＣ（Accessory）信号１２０が入力される。電源制御部１００は、ＡＣＣ信号１２０がＯＮの状態で通常電源による電源供給を行う動作モードと、ＡＣＣ信号１２０がＯＦＦの状態でバックアップ電源による電源供給を行うバックアップモードとを切替可能である。また、制御信号として、（１）ＡＣＣ信号１２０がＯＮまたはＯＦＦになったことを、電源制御部１００が、ＣＰＵ（Central Processing Unit）１５０３に通知するためのＡＣＣ通知２５０と、（２）電源制御部１００が、ＣＰＵ１５０３からのバックアップモードに移行するための許可を受け取る電源ＯＦＦ許可通知２４０がある。
また、電源制御部１００は、通常電源を制御するための通常電源制御信号１３０を通常電源およびＳｏＣ（System on Chip）１５０に送ったり、バックアップ電源を制御するためのバックアップ電源信号１４０をバックアップ電源およびＳｏＣ１５０に送ったりする機能を有する。
なお、電源制御部１００には、図２に示すスタンバイ制御部６００の不具合が発生し、スタンバイ制御部６００から電源ＯＦＦ許可通知２４０が送られてこない場合に、通常電源を強制終了するための時間をカウントするタイマ１００１の機能が内蔵されている。
【００１０】
ＳｏＣ１５０はカーナビゲーション装置１の中心となるＬＳＩ（Large Scale Integration）で、ＣＰＵ１５０３、ＤＳＰ（Digital Signal Processor）１５０４といったプロセッサ、ＳｏＣ１５０の各種入出力を制御するＩ（Input）／Ｏ（Output）制御部１５０５、メモリであるＤＲＡＭ（Dynamic Random Access Memory）１６０の制御を行うためのＤＲＡＭ制御部１５０１、時計１５０２がある。これらの中で、バックアップ電源（図示せず）から電力が供給されるのはＤＲＡＭ制御部１５０１と時計１５０２であり、その他は通常電源（図示せず）から電力が供給される。
【００１１】
ＧＰＳ１７０（Global Positioning System）１７０は人工衛星（図示せず）からの電波を受けて現在位置を計測するためのものであり、ＳｏＣ１５０は、ＧＰＳ１７０、ジャイロ２３１、車速パルスなどの信号を組み合わせて車両の現在位置を常に計測する。ＨＤ１８０（Hard Disc）１８０は、地図データや音楽データなどを格納するためのハードディスク装置である。スピーカ１９０は、ルートガイドのための音声案内や音楽を再生するためのものである。タッチパネル付ディスプレイ２００は、地図や映像を表示し、入力機能を有するディスプレイであり、ディスプレイに表示されたキーの位置に対応するタッチパネルの部分を顧客が押下することにより情報がＳｏＣ１５０へ入力される。地デジチューナ２３０は、地上デジタルテレビ放送を受信するためのチューナである。ＲＯＭ２１０（Read Only Memory）２１０は、カーナビゲーション装置１の動作プログラムを格納する不揮発性のメモリであるが、ＣＰＵ１５０３がこのプログラムを実行するときは、高速実行を可能とするためプログラムを一旦ＤＲＡＭ１６０にコピーした後、ＤＲＡＭ１６０のプログラムによって実行する。ＡＳＩＣ２２０（Application Specific IC）２２０は、ＳｏＣ１５０では不足しているＩ／Ｏの制御を行うためのＬＳＩで、車速パルスの入力、外部との通信Ｉ／Ｆ（Interface）、ＵＳＢ（Universal Serial Bus）などの制御を行う。
【００１２】
次に、図１を参照しつつ、図２に沿って本実施形態に係るカーナビゲーション装置１のソフトウェア機能を説明する。
図２は、本実施形態に係るカーナビゲーション装置のソフトウェア機能のブロック図である。
カーナビゲーション装置１のソフトウェア機能は、スタンバイ制御部６００、起動制御部７００、ナビアプリケーション３００、デジタル放送アプリケーション４００およびオーディオアプリケーション５００の５つのアプリケーションに分かれている。
【００１３】
スタンバイ制御部６００は、カーナビゲーション装置１を休止状態に移行させるための割込み処理を行う機能を有する。この処理を行うための割り込み信号は、電源制御部１００からのＡＣＣ通知２５０によりＡＣＣがＯＦＦ状態（ＡＣＣ  ＯＦＦ）になったことをスタンバイ制御部６００が検知したときに発生する。また、スタンバイ制御部６００は、電源ＯＦＦ許可通知２４０を電源制御部１００へ送り、この電源ＯＦＦ許可通知２４０を送られた電源制御部は、通常電源をＯＦＦさせる処理を行う。スタンバイ制御部６００の退避処理部６０１０は、再起動時に正しく処理が再開できるように、ＳｏＣ１５０やＡＳＩＣ２２０などのハードウェアのレジスタデータをＤＲＡＭ１６０に退避させる処理と、該ＤＲＡＭ１６０が正しくバックアップされていることを再起動時に検証できるようにするためのチェックサムデータをＤＲＡＭ１６０に書き込む機能を有する。ＳｏＣ１５０やＡＳＩＣ２２０などのレジスタは、通常電源がＯＦＦになるとデータが消滅してしまうので、これらのデータは、退避処理部６０１０によりＤＲＡＭ１６０に退避させておく。また、退避処理部６０１０は、スタンバイ制御部６００の割込みが発生する直前のＣＰＵ１５０３のプログラムカウンタやステータスレジスタなどもＤＲＡＭ１６０へ退避させる。従って、後記する起動制御部７００は、この退避されたレジスタの値を元に戻せば、休止状態になる前の処理を継続できる。またＤＲＡＭ１６０はバッテリバックアップされているので、そのメモリの内容はＡＣＣ  ＯＦＦの状態でもデータが消えないが、バッテリの取り外しや、バッテリの電圧不足になりデータが消滅することも考えられる。そこで、退避処理部６０１０は、ＤＲＡＭ１６０のデータの一部（６４バイト程度）を２バイト単位で加算し、その結果をＤＲＡＭ１６０へ書き込んでおく。この処理を数箇所（４箇所程度）メモリ空間が離れた場所で実施しておく。
【００１４】
スタンバイ処理部のメモリリーク処理部６０３０は、メモリリークやメモリの断片化が発生していないか否かをチェックし、対処する機能を有し、休止状態に移行するときメモリ容量のうち、一定容量（例えば実装メモリ容量の１割）メモリ取得が可能であるかどうかをチェックする機能を有する。
【００１５】
起動制御部７００は、ＡＣＣがＯＮ状態になったに、カーナビゲーション装置１を再起動させる機能を有し、通常電源を使用してＣＰＵ１５０３が起動するときに最初に実行される。起動制御部７００の復帰処理部７０１０は、ＡＣＣがＯＮ状態になると、まずチェックサムデータのチェックを行う。つまり、退避処理部６０１０で実施したことと同じように、復帰処理部７０１０は、チェックサムを計算し、その結果が、退避処理部６０１０によって書き込まれたチェックサムデータと一致すればＤＲＡＭ１６０のデータは正しくバックアップされていたものと判断する。次に、復帰処理部７０１０は、ＤＲＡＭ１６０に退避されていたＳｏＣ１５０などのレジスタデータを復帰させる。これにより、ハードウェアが休止状態になる直前の状態に戻るので、カーナビゲーション装置１は、休止状態になる前の処理を継続できる。さらには、復帰処理部７０１０が、ナビアプリケーション３００の表示状態フラグ３０７１をチェックすることにより、どのアプリケーションのどのような画面で再起動したかを確認することができる。なお、起動制御部７００は、通常電源制御信号１３０の取得をトリガとして起動する。
【００１６】
ナビアプリケーション３００は、ナビアプリケーション３００全体を制御するナビゲーション制御部３０００、ＨＤ１８０から必要な地図データをアクセスする地図データアクセス部３０１０、現在地から目的地までの経路を探索する経路探索部３０３０、自車位置を常時計測するロケータ３０４０、経路探索部３０３０が探索した経路にしたがって車両を誘導する誘導制御部３０５０、タッチパネル付ディスプレイ２００からの運転者の操作を受け付けるための操作制御部３０６０、および地図やメニューなどの表示をタッチパネル付ディスプレイ２００に行わせる表示制御部３０７０を有する。
【００１７】
ナビゲーション制御部３０００は、ＤＲＡＭ１６０におけるナビアプリケーション３００の使用領域などを初期化する初期化処理部３００１を有する。表示制御部３０７０は、ナビアプリケーション３００の表示だけではなく、他のアプリケーションの画面表示も行う。そのため、現在どのアプリケーションのどのような画面を表示中であるかを管理する表示状態フラグ３０７１を有する。この表示状態フラグ３０７１を基にナビゲーションの表示動作が決定され、現在地地図、スクロール地図、設定メニューなどの画面遷移が決まる。更に、表示制御部３０７０は、他のアプリケーションの画面も管理する。すなわち、デジタル放送アプリケーション４００およびオーディオアプリケーション５００も、この表示制御部３０７０が表示するメニューで指定されることによって起動される。この表示状態フラグ３０７１はＤＲＡＭ１６０に記憶されるため、休止状態でも内容が保持される。また、ナビアプリケーション３００は、他のアプリケーションを画面に表示している時も常に動作を行う。つまり、オーディオや地上デジタルテレビ放送の画面になっているときでも経路を誘導することができる。
【００１８】
デジタル放送アプリケーション４００は、地上デジタルテレビ放送を視聴する機能を有する。受信制御部４０１０が地デジチューナ２３０から送られてくるＴＳ信号を受信し、映像データ、音声データ、およびデータ放送の３種類に分類する。映像データは、映像制御部４０２０でデコードされ映像信号として表示制御部３０７０に送られ、タッチパネル付ディスプレイ２００に表示される。音声データは、音声制御部４０３０でデコードされスピーカ１９０に送られる。データ放送は、ＢＭＬ（Broadcasting Markup Language）ブラウザ４０４０によって解析され、データ放送の表示データが生成される。この表示データは表示制御部３０７０に送られ、タッチパネル付ディスプレイ２００で表示される。受信制御部４０１０は、ＤＲＡＭ１６０におけるデジタル放送アプリケーション４００の使用領域を初期化して起動待ちの状態にする初期化処理部４０１１を有する。
【００１９】
オーディオアプリケーション５００は、音楽を再生する機能を有し、ＨＤ１８０に格納された音楽を再生する場合はＨＤオーディオアクセス５０１０が、ＨＤ１８０から音楽データを読み込む。一方、ＵＳＢに接続した外部デバイス（図示しない）の音楽データを再生する場合は、ＵＳＢ入力部５０２０が音楽データをＵＳＢデバイスから読み出す。このようにして読み出された音楽データはソース選択部５０３０で選択され、デコーダ５０４０でデコードされスピーカ１９０に送られる。また、ＤＲＡＭ１６０におけるオーディオアプリケーション５００の使用領域を初期化して起動待ちの状態にする初期化処理部５０５０を有する。
【００２０】
なお、図２に示す各部は、ＲＯＭ２１０や、ＨＤ１８０に格納されたプログラムが、ＲＡＭに展開され、ＣＰＵ１５０３によって実行されることによって具現化する。
【００２１】
図３は、図２に示すアプリケーションが動作するときのメモリマップの例を示す図である。
このメモリマップは、ＤＲＡＭ１６０に記憶された作業領域を示す。ナビアプリケーション３００、オーディオアプリケーション５００およびデジタル放送アプリケーション４００の各アプリケーションの使用領域と、タッチパネル付ディスプレイ２００に表示するための画像データを記憶するためのフレームバッファ、オペレーティングシステム（ＯＳ:Operating System）が使用するシステム領域がある。起動開始直後では、使用領域と開放領域が比較的区別されている。オーディオアプリケーション５００やデジタル放送アプリケーション４００では、処理を行う毎にメモリ領域の取得や開放を繰り返す動作が行われる。これは、これらのアプリケーションが扱うデータのサイズがその時々によって異なり、固定的な領域を確保するのが困難なためである。メモリの取得と開放はＯＳによって行われる。各アプリケーションを長時間動作させていると、処理に伴うメモリ領域の取得や開放を繰り返すことにより、使用領域の断片化が進んでいく。
【００２２】
図４は、本実施形態に係るメモリ取得と開放を管理するためのメモリ管理テーブルの例を示す図であり、（ａ）は、ナビアプリケーションのメモリ管理テーブルの例であり、（ｂ）は、オーディオアプリケーションのメモリ管理テーブルの例であり、（ｃ）は、デジタル放送アプリケーションのメモリ管理テーブルの例である。
図４に示す例では、アプリケーション毎にメモリ領域は区別されており、このメモリ管理テーブルはアプリケーション毎に管理されている。ＯＳは、アプリケーションからのメモリ取得の要求があるごとに開始アドレスと要求サイズに応じた終了アドレスとを、当該アプリケーションに対応したメモリ管理テーブルに記録し、アプリケーションにポインタとしてその領域のアドレスを通知する。アプリケーションが開放要求を出したときは、その領域を、メモリ管理テーブルから削除する。このような動作を繰り返していると、図３の長期間動作状態で示すように、使用領域の間に断片化が生じる。またプログラムのミスにより未開放領域も生じる可能性がある。このような領域がたくさん生じた場合、動作に必要な領域が新たに確保できなくなる恐れが生じ、システムダウンを引き起こすことになる。なお、図４（ａ）〜（ｃ）に示す各メモリ管理テーブルは、例えば、記憶部としてのＨＤ１８０（図１参照）に格納されている。
【００２３】
これまでのカーナビゲーション装置１では車両のエンジンを切るとカーナビゲーション装置１の電源もＯＦＦ（停止状態）になり、再起動時に、すべての初期化処理を行っていた。したがって、エンジンを切るたびに断片化領域や未開放領域は全て無くなっていた。しかし、特許文献１に記載の技術を用いたカーナビゲーション装置１では、エンジンを切ってもＤＲＡＭ１６０の内容は全て保持される。これにより、再起動時に初期化処理を省略することが可能になったが、反面、断片化領域や未開放領域もそのまま残ってしまうことになる。
【００２４】
そこで、本実施形態では、システムの動作が異常になる前に、取得可能なメモリ領域が一定値よりも少なくなっていないか否かをチェックすることで、システムダウンを未然に防止する。さらに、本実施形態では、このチェックが再起動の高速化に影響を及ぼさないようにするため、スタンバイ制御部６００によって、ＡＣＣ信号１２０によってＡＣＣ  ＯＦＦを検知する（ＡＣＣ信号１２０がＯＦＦとなる）時にチェックを行う。
【００２５】
（スタンバイ制御処理）
次に、図１および図２を参照しつつ、図５に沿ってスタンバイ制御処理を説明する。
図５は、本実施形態に係るスタンバイ制御処理の流れを示す図である。
エンジンキーをＡＣＣ  ＯＦＦとすることで、ＡＣＣ信号１２０がＯＦＦになると、電源制御部１００は、ＡＣＣ  ＯＦＦを検知し（Ｓ１０１）、スタンバイ制御部６００にＡＣＣ  ＯＦＦを通知する。すなわち、スタンバイ制御部６００には、はＡＣＣ信号１２０のＯＦＦの通知（ＡＣＣ通知２５０）により割り込みが発生する。この割込みが発生すると、スタンバイ制御部６００は、画面の表示をＯＦＦにする（Ｓ１０２）。これはＡＣＣ  ＯＦＦと同時にカーナビゲーション装置１の画面が消えることによって、これ以降の処理（Ｓ１０３〜Ｓ１１０の処理をユーザに見えなくし、ユーザに違和感を与えないことを目的とするものである。ステップＳ１０２の処理を行う際、表示制御部３０７０は、表示状態フラグ３０７１にどのアプリケーションの画面が表示されていたかの情報を保存する。なお、ステップＳ１０２の処理は、省略してもよい。
その後、退避処理部６０１０が、ＳｏＣ１５０やＡＳＩＣ２２０などが持つレジスタの内容、および時計１５０２のデータをＤＲＡＭ１６０に保存するレジスタ退避処理及び時計１５０２データ退避処理を行う（Ｓ１０３、Ｓ１０４）。
そして、メモリリーク処理部６０３０は、メモリ管理テーブルに記録されているサイズデータを合計してメモリ消費量をチェックし（Ｓ１０５）、このチェック結果を基に、メモリリーク処理部６０３０は、メモリリークが発生しているか否かを判定する（Ｓ１０６）。メモリリーク処理部６０３０は、メモリ消費量がメモリの全領域に対して、例えば所定の割合以下（例えば、１０％以下）になっていたらメモリリークが発生したものと判定する。
【００２６】
ステップＳ１０６で、メモリリークが発生していないと判定された場合（Ｓ１０６→Ｎｏ）、スタンバイ制御部６００は、ステップＳ１０８へ処理を進める。
ステップＳ１０６で、メモリリークが発生していると判定された場合（Ｓ１０６→Ｙｅｓ）、メモリリーク処理部６０３０は、メモリ開放処理を行う（Ｓ１０７）。メモリリーク開放処理は、メモリリーク処理部６０３０が、メモリリークを引き起こしたアプリケーションの初期化処理部３００１，４０１１，５０５０が、ＤＲＡＭ１６０における当該アプリケーションの使用領域を初期化を行うことによって行われる。さらに、メモリリーク開放処理では、メモリリーク処理部６０３０が、図４に示すようなメモリ管理テーブルによって、アプリケーション毎のメモリ使用領域をチェックし、割り当て領域同士のアドレスの間隔が数バイト〜数十バイトの細切れ状態が多くなっている場合は断片化が発生していると判断し、ガーベージコレクションを行い、メモリの開放を行う。
【００２７】
次に、スタンバイ制御部６００は、ＡＣＣ信号１２０がＯＦＦになる時にタッチパネル付ディスプレイ２００に表示されていたものが、ナビアプリケーション３００であったかどうかを判定する。すなわち、スタンバイ制御部６００は、ナビアプリケーション３００が表示中であったか否かを判定する（Ｓ１０８）。ステップＳ１０８の判定は、表示制御部３０７０に保存されている表示状態フラグ３０７１の情報を基に、スタンバイ制御部６００が判定する。
ステップＳ１０８で、ナビアプリケーション３００が表示中でなかったと判定された場合（Ｓ１０８→Ｎｏ）、スタンバイ制御部６００は、ステップＳ１１０の処理へ進む。
ステップＳ１０８で、ナビアプリケーション３００の画面が表示中であったと判定された場合（Ｓ１０８→Ｙｅｓ）、スタンバイ制御部６００は、表示中の画面がナビアプリケーション３００であった場合は、表示している内容が、現在地の地図表示であったか否かを判定し、現在地の地図表示でなかった場合、スタンバイ制御部６００は、ナビアプリケーション３００の地図データアクセス部３０１０から現在地の地図を読み出し、表示制御部３０７０が使用しているフレームバッファ領域のワーク領域（図３参照）に現在地の地図（地図データ）を記憶する（Ｓ１０９）。
なお、現在地の地図表示でなかったと判定された場合（Ｓ１０８→Ｎｏ）、スタンバイ制御部６００は、ステップＳ１１０へ処理を進める。
そして、スタンバイ制御部６００は、電源制御部１００へ、通常電源ＯＦＦ許可を通知する（Ｓ１１０）。すなわち、スタンバイ制御部６００は、電源制御部１００へ、電源ＯＦＦ許可通知２４０を送る。
【００２８】
ステップＳ１０１の処理後、電源制御部１００は、電源ＯＦＦ許可通知２４０の検知待機状態となっている。すなわち、電源制御部１００は、電源ＯＦＦ許可通知２４０を検知したか否かを一定時間毎に判定し（Ｓ１１１）、検知しない場合（Ｓ１１１→Ｎｏ）、ステップＳ１１１の処理へ戻る。
ステップＳ１１１で、電源ＯＦＦ許可通知２４０を検知した場合（Ｓ１１１→Ｙｅｓ）、電源制御部１００は、通常電源（図示せず）をＯＦＦさせ（Ｓ１１２）、バックアップモードに切り替えた後、カーナビゲーション装置１はスタンバイ状態（休止状態）となる。
【００２９】
なお、休止状態では、図１のＤＲＡＭ制御部１５０１、時計１５０２、ＧＰＳ１７０、ＤＲＡＭ１６０がバックアップ電源によって通電されている。ここで、ＤＲＡＭ１６０のデータを保持するためには定期的にリフレッシュ動作が必要となる。このリフレッシュ動作はＤＲＡＭ制御部１５０１が行う。
【００３０】
（起動制御処理）
次に、図１および図２を参照しつつ、図６に沿って休止状態から動作状態に復帰するときの起動制御処理を説明する。
図６は、本実施形態に係る起動制御処理の流れを示す図である。
電源制御部１００が、ＡＣＣ信号１２０によって、ＡＣＣ  ＯＮを検知すると（Ｓ２０１）、電源制御部１００は、通常電源をＯＮさせる（Ｓ２０２）。このとき、電源制御部１００から通常電源へ送られた通常電源制御信号１３０は、ＳｏＣ１５０で実行されている起動制御部７００にも入力され、起動制御部７００は、通常電源制御信号１３０の取得をトリガとして起動制御処理を開始する。なお、電源制御部１００は、ステップＳ２０２の後、処理を終了する。
そして、起動制御部７００は、ＤＲＡＭ１６０のメモリバックアップが有効であるか否かを判定する（Ｓ２０３）。メモリバックアップが有効であるか否かの判定は、起動制御部７００が、前記したチェックサムのデータをチェックすることで行われる。
【００３１】
ステップＳ２０３で、バッテリの不具合などによりメモリバックアップが無効になっていた場合（Ｓ２０３→Ｎｏ）、ＤＲＡＭ制御部１５０１は、ＤＲＡＭ１６０の全初期化処理を行い（Ｓ２０４）、カーナビゲーション装置１の再起動を行う。ＤＲＡＭ１６０の全初期化を行うと、カーナビゲーション装置１は初期状態となる。この状態で、起動制御部７００は、カーナビゲーション装置１を再起動し、ナビアプリケーション３００を起動させ（Ｓ２０５）、起動したナビアプリケーション３００は、現在位置の表示を行う。そして、起動制御部７００は、処理を終了する。
【００３２】
ステップＳ２０３でバックアップが有効であると判定された場合（Ｓ２０３→Ｙｅｓ）、復帰処理部７０１０は、図５のステップＳ１０３でＤＲＡＭ１６０に退避されているレジスタの復帰処理を行う（Ｓ２０６）。そして、起動制御部７００は、休止状態になる前（ＡＣＣ  ＯＦＦ前）の状態が、現在地を表示していたか否かを判定する（Ｓ２０７）。ステップＳ２０７の判定は、起動制御部７００が、ＤＲＡＭ１６０にバックアップされていた表示状態フラグ３０７１の状態を参照して行う。
ステップＳ２０７で、現在地を表示していなかった場合（Ｓ２０７→Ｎｏ）、起動制御部７００は、後記して説明するステップＳ２１０の処理へ進む。
ステップＳ２０７で、現在地を表示していた場合（Ｓ２０７→Ｙｅｓ）、起動制御部７００は、時計１５０２から現在の日時データを取得し、図５のステップＳ１０４でＤＲＡＭ１６０に退避していた日時データと、取得した現在の日時データとを比較し（Ｓ２０８）、休止状態の期間である休止期間が２４時間以上経過しているか否かを判定する（Ｓ２０９）。なお、本実施形態では、２４時間としたが、これに限らず、何時間でもよい。
【００３３】
ステップＳ２０９の結果、休止期間が、２４時間未満であった場合（Ｓ２０９→２４ｈ未満）、起動制御部７００は、休止状態になる前のアプリケーションをそのまま再開する（Ｓ２１０）。
ステップＳ２０９の結果、休止期間が、２４時間以上であった場合（Ｓ２０９→２４ｈ以上）、復帰処理部７０１０が、図５のステップＳ１０９でフレームバッファ領域のワーク領域（図３参照）に記憶された地図データをフレームバッファの表示領域（図３参照）にコピーし（Ｓ２１１）、表示状態フラグ３０７１を現在地地図の表示を行っている状態に変更する（Ｓ２１２）、現在地地図をタッチパネル付ディスプレイ２００に表示させる。
さらに、復帰処理部７０１０は、デジタル放送アプリケーション４００の初期化処理部４０１１およびオーディオアプリケーション５００の初期化処理部５０５０にオーディオアプリケーション初期化処理部ＤＲＡＭ１６０のオーディオアプリケーション５００とデジタル放送アプリケーション４００のメモリ使用領域を初期化させ（Ｓ２１３）、処理を終了する。この場合、休止状態になる前における動作中のアプリケーションが、オーディオアプリケーション５００やデジタル放送アプリケーション４００の場合であっても、休止期間が２４時間以上であったら、復帰処理部７０１０は、ナビアプリケーション３００の現在地地図を表示させる。
【００３４】
図７は、図５のスタンバイ制御処理および図６の起動制御処理を実行した際の画面例であり、（ａ）は、ＡＣＣ  ＯＦＦ時の画面例であり、（ｂ）は、ＡＣＣ復帰時の画面例である。
図７を用いて、スタンバイ状態の期間の長さに応じて再起動時の画面表示を変える理由について説明する。
ＡＣＣをＯＦＦする直前の表示が、ナビアプリケーション３００の表示中でありが、現在地地図の表示ではなく、例えば図７（ａ）に示すような行先設定の操作画面２００１のような場合を想定する。ユーザが行先設定の途中でエンジンを切った後、１日以上（２４時間以上）も経ってから車両のエンジンを起動させ、図７（ａ）の操作画面２００１が出た場合、ユーザが、この画面の続きの操作を行うことは考え難い。そこで、１日以上のスタンバイ状態が続いた場合、起動制御部７００は、再起動時で図７（ｂ）のような、現在位置の地図（現在地地図２００２）をタッチパネル付ディスプレイ２００に表示させる。操作途中の画面としては行先設定以外にもシステム設定画面や現在位置以外の場所の地図表示等が考えられるが、いずれも、１日以上経過した状態で、ユーザが、同様の操作を行うとは考え難い。したがって、このような場合でも、再起動時には、図７（ｂ）に示す現在地地図２００２をタッチパネル付ディスプレイ２００に表示させる。
【００３５】
（変形例）
次に、図１および図２を参照しつつ、図８および図９に沿って、図５で説明したスタンバイ制御処理の他の例を説明する。なお、図８および図９において、図５と同様の処理には、同一の符号を付して説明を省略する。
図８および図９は、本実施形態におけるスタンバイ制御処理の他の例を示す図である。
図８は、ＡＣＣ信号１２０がＯＦＦになって休止状態になるとき、スタンバイ制御部６００の不具合により、電源制御部１００に対して電源ＯＦＦ許可通知２４０が送られない場合があることを想定したものである。ＡＣＣがＯＦＦされた状態で、通常電源が長期間通電されたままになっているとバッテリが過放電されてしまい、エンジンの再起動ができなくなる恐れがある。
【００３６】
このような問題を解決するため、電源制御部１００にタイマ１００１を設ける。すなわち、ステップＳ１０１において、電源制御部１００が、ＡＣＣのＯＦＦを検知すると、タイマ１００１がカウントを開始する。そして、ステップＳ１１１において、電源制御部１００が、スタンバイ制御部６００から送られる電源ＯＦＦ許可通知２４０を検知しなかった場合（Ｓ１１１→Ｎｏ）、電源制御部１００は、タイマ１００１から現在のカウント秒数を取得し、ＡＣＣ  ＯＦＦから（すなわち、ステップＳ１０１から）３０秒経過したか否かを判定する（Ｓ３０１）。なお、ここでは、３０秒としたが、これに限らず、どのような時間でもよい。
ステップＳ３０１で、３０秒経過していないと判定された場合（Ｓ３０１→Ｎｏ）、電源処理部は、ステップＳ１１１へ処理を戻す。
【００３７】
ステップＳ３０１で、３０秒経過したと判定された場合（Ｓ３０１→Ｙｅｓ）、すなわち、３０秒経ってもスタンバイ制御部６００から電源ＯＦＦ許可通知２４０が送られない場合、電源制御部１００は、バックアップ電源を切断（ＯＦＦ）してＤＲＡＭ１６０のメモリバックアップを無効化した（Ｓ３０２）後、通常電源をＯＦＦにする（Ｓ１１２）。
これによりＤＲＡＭ１６０のデータは消滅してしまうが、バッテリの過放電は回避される。この状態で再起動すると、図６のステップＳ２０３において、ＤＲＡＭ１６０がバックアップされていないのでチェックサムデータが不整合を起こし、バックアップメモリが無効であったと起動制御部７００が判定するので（図６のＳ２０３→Ｎｏ）、ＤＲＡＭ１６０の全初期化処理が行われ（図６のＳ２０４）、カーナビゲーション装置１は正常に起動することができる。
【００３８】
ナビアプリケーション３００では、地図データなどの処理するデータの最大サイズを予め承知した上で、最初から必要な分だけメモリを確保するように設計してあるので動的なメモリの取得と開放とを行わないプログラムにすることが可能である。このような場合、ナビアプリケーション３００を実行しても、メモリリークやメモリの断片化は発生し難い。
しかしながら、オーディオアプリケーション５００やデジタル放送アプリケーション４００は、扱うデータサイズが、その時々で異なるので動的にメモリの取得と開放を行う必要がある。このため、オーディオアプリケーション５００や、デジタル放送アプリケーション４００は、メモリリークやメモリ断片化を引き起こしやすい可能性を持つ。
【００３９】
ところで、カーナビゲーション装置１が再起動したときに表示されるこれらのアプリケーション（オーディオアプリケーション５００や、デジタル放送アプリケーション４００）の画面は、ＡＣＣをＯＦＦにした時の画面でなくても、ユーザには違和感を与えない。例えば、デジタル放送アプリケーション４００の場合、再起動時にはスタンバイに移行した時の画面の放送は行われていないので、再起動時に休止状態移行時の画面から再開することはなく、当然違う画面から再開することになる。また、オーディオを再生途中の画面のまま休止状態に移行し、その後再起動された場合、休止状態移行時の音楽の続きから再生する必要はなく、例えば、その曲の先頭から再生しても違和感はない。従って、メモリリーク対策を必要とするアプリケーション（オーディオアプリケーション５００およびデジタル放送アプリケーション４００）について、休止状態に移行する際、毎回初期化処理を行ってメモリ開放を行い、しかも再起動時に必要な画面などの状態を準備してから停止すれば再起動時には常にメモリ領域が正常化されており、また再起動時の画面も運転者に違和感のない画面にすることができる。
【００４０】
図９は、このようなメモリリーク対策として、休止状態に移行する時、ナビアプリケーション３００以外のアプリケーションを初期化する例を示す。
ステップＳ１０４の処理後、スタンバイ制御部６００は、デジタル放送アプリケーション４００の初期化処理部４０１１にＤＲＡＭ１６０におけるデジタル放送アプリケーション４００の使用領域を初期化させる（デジタル放送アプリケーション４００の初期化）（Ｓ４０１）。
次に、スタンバイ制御部６００は、スタンバイ制御部６００は、オーディオアプリケーション５００の初期化処理部５０５０にＤＲＡＭ１６０におけるオーディオアプリケーション５００の使用領域を初期化させ（オーディオアプリケーション５００の初期化）（Ｓ４０２）、ステップＳ１０８の処理へ進む。
【００４１】
ここで、以下に記載する処理を行ってもよい。
すなわち、ステップＳ１０４の処理後、スタンバイ制御部６００は、デジタル放送アプリケーション４００が動作中であるか否かを判定する。
判定の結果、デジタル放送アプリケーション４００が動作中であると判定された場合、スタンバイ制御部６００は、デジタル放送アプリケーション４００の初期化処理部４０１１にデジタル放送アプリケーション４００の初期化を行わせた後、再起動に備えて、受信していたチャンネルの表示する準備を行っておく。つまり、スタンバイ制御部６００は、表示状態フラグ３０７１に、デジタル放送アプリケーション４００が動作中であることと、その時の受信チャンネルを記憶させておく。
判定の結果、動作中でない場合、スタンバイ処理部は、ステップＳ４０１の処理を行う。
次に、スタンバイ制御部６００は、オーディオアプリケーション５００が動作中であるか否かを判定する。
判定の結果、オーディオアプリケーション５００が動作中であると判定された場合、スタンバイ制御部６００は、オーディオアプリケーション５００の初期化処理部５０５０にオーディオアプリケーション５００を初期化させ、現在再生中の楽曲を最初から再生する準備を行っておく。つまり、スタンバイ制御部６００は、表示状態フラグ３０７１に、オーディオアプリケーション５００動作中であることと、その時の再生中の楽曲の情報を記憶させておく。判定の結果、動作中でない場合、スタンバイ制御部６００は、ステップＳ４０２の処理を行う。
このような処理を行うことによって、メモリリークを発生させる可能性があるアプリケーションにＤＲＡＭ１６０における使用領域を初期化し、メモリリーク対策を行うと同時に、再起動時の動作の準備を行っているので高速起動も可能である。
【００４２】
次に、図１および図２を参照しつつ、図１０に沿って、図６で説明した起動制御処理の他の例を説明する。なお、図１０において、図６と同様の処理には、同一の符号を付して説明を省略する。
図１０は、本実施形態における起動制御処理の他の例を示す図である。
図１０は、図６の休止期間を時間管理ではなく、日付管理としたとき処理を示したものである。すなわち、ステップＳ２０８の処理において、起動制御部７００は、図５のステップＳ１０４でＤＲＡＭ１６０に退避させていた日時情報と現在の時計１５０２の日付を比較し、日付が変わっているか否かを判定する（Ｓ５０１）。
ステップＳ５０１で、日付が変わっていない場合（Ｓ５０１→Ｎｏ）、起動制御部７００は、ステップＳ２１０の処理を行う。
ステップＳ５０１で、日付が変わっている場合（Ｓ５０１→Ｙｅｓ）、起動制御部７００は、ステップＳ２１１の処理を行う。
【００４３】
本実施形態によれば、操作画面の途中で休止状態に移行し、長期間の休止から再起動するときはカーナビゲーション装置１のデフォルト画面である現在位置地図表示されるので、運転者にとって違和感のない画面となり操作性の向上につながる。この際、本実施形態に係るカーナビゲーション装置１は、車両のエンジンキー（図示せず）をＯＦＦにした状態でもカーナビゲーション装置１の一部にはバックアップのための通電がなされており、完全な停止ではなく休止状態（スタンバイ状態）となる機能を有しているため、起動時の高速性は保たれたままである。
さらに、本実施形態によれば、休止状態に移行するときにメモリリークやメモリ断片化の検出と対策を行ってから休止状態になるため、再起動時にはメモリリークやメモリ断片化が対策されており、常に安定した高速起動を実現することができる。
【００４４】
本実施形態では、カーナビゲーション装置１としたが、これに限らず、例えば、図１〜図１０を参照して記載したカーナビゲーション装置１の機能を有した制御装置を、カーナビゲーション装置１や、デジタル放送テレビジョンや、オーディオ装置に接続して、これらの機器を制御させてもよい。
また、例えば、ＥＣＵ（Engine Control Unit）に、図１〜図１０を参照して記載したカーナビゲーション装置１の機能を搭載し、カーナビゲーション装置１や、デジタル放送テレビジョンや、オーディオ装置に接続して、これらの機器を制御させてもよい。
【図面の簡単な説明】
【００４５】
【図１】本実施形態に係るカーナビゲーション装置のハード構成を示すブロック図である。
【図２】本実施形態に係るカーナビゲーション装置のソフトウェア機能のブロック図である。
【図３】図２に示すアプリケーションが動作するときのメモリマップの例を示す図である。
【図４】本実施形態に係るメモリ取得と開放を管理するためのメモリ管理テーブルの例を示す図であり、（ａ）は、ナビアプリケーションのメモリ管理テーブルの例であり、（ｂ）は、オーディオアプリケーションのメモリ管理テーブルの例であり、（ｃ）は、デジタル放送アプリケーションのメモリ管理テーブルの例である。
【図５】本実施形態に係るスタンバイ制御処理の流れを示す図である。
【図６】本実施形態に係る起動制御処理の流れを示す図である。
【図７】図５のスタンバイ制御処理および図６の起動制御処理を実行した際の画面例であり、（ａ）は、ＡＣＣ  ＯＦＦ時の画面例であり、（ｂ）は、ＡＣＣ復帰時の画面例である。
【図８】本実施形態におけるスタンバイ制御処理の他の例を示す図である（その１）。
【図９】本実施形態におけるスタンバイ制御処理の他の例を示す図である（その２）。
【図１０】本実施形態における起動制御処理の他の例を示す図である。
【符号の説明】
【００４６】
１      カーナビゲーション装置
１００  電源制御部
１１０  ＋Ｂ信号
１２０  信号
１２０  ＡＣＣ信号
１３０  通常電源制御信号
１５０  ＳｏＣ
１６０  ＤＲＡＭ
１７０  ＧＰＳ
１９０  スピーカ
２００  タッチパネル付ディスプレイ
２１０  ＲＯＭ
２２０  ＡＳＩＣ
２３０  地デジチューナ
２３１  ジャイロ
２４０  電源ＯＦＦ許可通知
２５０  ＡＣＣ通知
３００  ナビアプリケーション
４００  デジタル放送アプリケーション
５００  オーディオアプリケーション
６００  スタンバイ制御部
７００  起動制御部
１００１  タイマ
１５０１  ＤＲＡＭ制御部
１５０２  時計
１５０３  ＣＰＵ
１５０４  ＤＳＰ
１５０５  Ｉ／Ｏ制御部
３０００  ナビゲーション制御部
３００１  初期化処理部
３０１０  地図データアクセス部
３０３０  経路探索部
３０４０  ロケータ
３０５０  誘導制御部
３０６０  操作制御部
３０７０  表示制御部
３０７１  表示状態フラグ
４０１０  受信制御部
４０１１  初期化処理部
４０２０  映像制御部
４０３０  音声制御部
４０４０  ブラウザ
５０１０  ＨＤオーディオアクセス
５０２０  ＵＳＢ入力部
５０３０  ソース選択部
５０４０  デコーダ
５０５０  初期化処理部
６０１０  退避処理部
６０３０  メモリリーク処理部
７０１０  復帰処理部
【図１】
2009128313.tif 000003
【図２】
2009128313.tif 000004
【図３】
2009128313.tif 000005
【図４】
2009128313.tif 000006
【図５】
2009128313.tif 000007
【図６】
2009128313.tif 000008
【図７】
2009128313.tif 000009
【図８】
2009128313.tif 000010
【図９】
2009128313.tif 000011
【図１０】
2009128313.tif 000012