(57)【要約】【課題】プログラムの更新が正常に終了しなかった場合にも情報処理装置の起動および更新の再開を可能とする。【解決手段】情報処理装置に、第一領域３１１および第二領域３１２の何れに記録された起動用プログラムを起動処理に用いるかを指定する情報を指定情報記録領域３１０に記録する情報記録部２２と、指定された起動用プログラムを用いて情報処理装置を起動させる起動部２３と、第一領域３１１に記録された起動用プログラムを更新する第一更新部２４と、第一領域３１１の更新が完了している場合に、第二領域３１２を更新する第二更新部２５と、を備え、情報記録部２２は、第一更新部２４による更新開始前に、起動処理に第二領域３１２の起動用プログラムを用いることを示す情報を記録し、第一更新部２４による更新終了後且つ第二更新部２５による更新開始前に、起動処理に第一領域３１１に記録された起動用プログラムを用いることを示す情報を記録する。【選択図】図２
2010140183.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性記憶装置に接続された情報処理装置であって、
該情報処理装置の起動処理に実際に用いられる起動用プログラムが、前記不揮発性記憶装置における第一の領域に記録された起動用プログラム、および該不揮発性記憶装置における第二の領域に記録された起動用プログラムの何れであるかを指定する起動用プログラム指定情報を、前記不揮発性記憶装置に記録する情報記録手段と、
該情報処理装置の起動開始時に前記情報記録手段によって記録された前記起動用プログラム指定情報を参照し、指定された起動用プログラムを用いて該情報処理装置を起動させる指定プログラム起動手段と、
前記第一の領域に記録された、該情報処理装置の起動処理のための起動用プログラムの更新を行う第一の更新手段と、
前記第一の領域に記録された起動用プログラムの更新が完了している場合に、前記第二の領域に記録された起動用プログラムの更新を行う第二の更新手段と、を備え、
前記情報記録手段は、前記第一の更新手段による更新処理が開始される前に、該情報処理装置の起動処理に前記第二の領域に記録された起動用プログラムを指定した前記起動用プログラム指定情報を記録し、前記第一の更新手段による更新処理の終了後且つ前記第二の更新手段による更新処理が開始される前に、該情報処理装置の起動処理に前記第一の領域に記録された起動用プログラムを指定した前記起動用プログラム指定情報を記録する、情報処理装置。
【請求項２】
前記不揮発性記憶装置に、起動処理に前記第二の領域に記録された起動用プログラムを用いることを示す情報が記録されている場合に、前記第一の更新手段による更新処理を開始させ、前記不揮発性記憶装置に、起動処理に前記第一の領域に記録された起動用プログラムを用いることを示す情報が記録されている場合に、前記第二の更新手段による更新処理を開始させる、更新処理再開手段を更に備える、
請求項１に記載の情報処理装置。
【請求項３】
前記情報記録手段は、前記第二の領域に記録された起動用プログラムの更新が完了した後に、該情報処理装置の起動処理に、前記第一の領域に記録された起動用プログラムおよび前記第二の領域に記録された起動用プログラムの何れを用いてもよいことを示す前記起動用プログラム指定情報を記録する、
請求項１または２に記載の情報処理装置。
【請求項４】
前記第二の更新手段は、前記第一の領域に記録された更新済みの起動用プログラムに基づいて、前記第二の領域に記録された起動用プログラムの更新を行う、
請求項１から３の何れか一項に記載の情報処理装置。
【請求項５】
不揮発性記憶装置に接続されたコンピュータによって、
該コンピュータの起動処理に実際に用いられる起動用プログラムが、前記不揮発性記憶装置における第一の領域に記録された起動用プログラム、および該不揮発性記憶装置における第二の領域に記録された起動用プログラムの何れであるかを指定する起動用プログラム指定情報を、前記不揮発性記憶装置に記録する情報記録ステップと、
該コンピュータの起動開始時に前記情報記録ステップで記録された前記起動用プログラム指定情報を参照し、指定された起動用プログラムを用いて該コンピュータを起動させる指定プログラム起動ステップと、
前記第一の領域に記録された、該コンピュータの起動処理のための起動用プログラムの更新を行う第一の更新ステップと、
前記第一の領域に記録された起動用プログラムの更新が完了している場合に、前記第二の領域に記録された起動用プログラムの更新を行う第二の更新ステップと、が実行され、
前記情報記録ステップでは、前記第一の更新ステップにおける更新処理が開始される前に、該コンピュータの起動処理に前記第二の領域に記録された起動用プログラムを指定した前記起動用プログラム指定情報が記録され、前記第一の更新ステップにおける更新処理の終了後且つ前記第二の更新ステップにおける更新処理が開始される前に、該コンピュータの起動処理に前記第一の領域に記録された起動用プログラムを指定した前記起動用プログラム指定情報が記録される、プログラム更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラム更新方法およびプログラムに関する。
【背景技術】
【０００２】
従来、複数のＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）を使用して各々のＲＯＭにプログラムを格納し、何れかのＲＯＭを選択させることによって動作させるプログラムを決定し、プログラムをアップデートする際には、動作していないＲＯＭを書き換える技術がある。
【０００３】
また、最新のプログラムをダウンロードする場合に、ＢＯＯＴプログラムおよび運用プログラムを起動するために参照されるＲＡＭ上の割り込みベクタをＢＯＯＴプログラム用に書き換えて、最新のプログラムを予備プログラム領域にダウンロードすると共に、運用プログラム領域と予備プログラム領域のアドレスを交換する切替フラグを反転し、通常動作時には割り込みベクタを運用プログラム用に書き換えるプログラム切替え制御装置がある（特許文献１を参照）。
【特許文献１】特開２００５−３３２２２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
一般に、情報処理装置では、プログラムを最新の状態に保つために、プログラムの更新が行われる。また、プログラム更新の利便性を向上させるために、プログラムの更新情報を情報処理装置に随時通知し、更新プログラムがある場合には情報処理装置が自動でプログラムを更新する技術がある。しかし、このようなプログラム更新処理では、情報処理装置の電源断等によって、プログラムが壊れてしまう虞がある。特に、自動的なプログラム更新は、ユーザにとって更新処理の開始のタイミングが予測困難であるため、望ましくないタイミングでの電源断が発生し易い。更に、ここでシステムの起動処理を担うプログラム（所謂ブートプログラム等）が壊れてしまった場合には、システムを起動させること自体が出来なくなる虞があり、ユーザの手で修正を行うことは非常に困難となる。
【０００５】
本発明は、上記した問題に鑑み、情報処理装置におけるプログラムの更新が正常に終了しなかった場合にも、情報処理装置の起動および更新の再開を可能とすることを課題とする。
【課題を解決するための手段】
【０００６】
本発明は、上記した課題を解決するために、更新対象のプログラムのうち、情報処理装置の起動用プログラムを、不揮発性記憶装置上に複数記録し、これらを順次更新しつつ、更新の進行に従って、更新中でない起動用プログラムを実際の起動に用いられる起動用プログラムとして指定することで、情報処理装置におけるプログラムの更新が正常に終了しなかった場合にも、情報処理装置の起動および更新の再開を可能にした。
【０００７】
詳細には、本発明は、不揮発性記憶装置に接続された情報処理装置であって、該情報処理装置の起動処理に実際に用いられる起動用プログラムが、前記不揮発性記憶装置における第一の領域に記録された起動用プログラム、および該不揮発性記憶装置における第二の領域に記録された起動用プログラムの何れであるかを指定する起動用プログラム指定情報を、前記不揮発性記憶装置に記録する情報記録手段と、該情報処理装置の起動開始時に前記情報記録手段によって記録された前記起動用プログラム指定情報を参照し、指定された起動用プログラムを用いて該情報処理装置を起動させる指定プログラム起動手段と、前記
第一の領域に記録された、該情報処理装置の起動処理のための起動用プログラムの更新を行う第一の更新手段と、前記第一の領域に記録された起動用プログラムの更新が完了している場合に、前記第二の領域に記録された起動用プログラムの更新を行う第二の更新手段と、を備え、前記情報記録手段は、前記第一の更新手段による更新処理が開始される前に、該情報処理装置の起動処理に前記第二の領域に記録された起動用プログラムを指定した前記起動用プログラム指定情報を記録し、前記第一の更新手段による更新処理の終了後且つ前記第二の更新手段による更新処理が開始される前に、該情報処理装置の起動処理に前記第一の領域に記録された起動用プログラムを指定した前記起動用プログラム指定情報を記録する、情報処理装置である。
【０００８】
ここで、起動用プログラムとは、情報処理装置がユーザに対して通常の稼動状態における機能を提供可能な状態まで起動する処理のために実行されるプログラムであり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を起動するための所謂ブートプログラムの他、ＯＳ起動後に、情報処理装置が専ら提供する所定の機能のために実行されるアプリケーションプログラムのうち、該アプリケーションプログラムを起動する際に実行されるプログラムであってもよい。
【０００９】
本発明に係る情報処理装置では、このような起動用プログラムが、起動に際して情報処理装置によってプログラム読み出しの対象となる不揮発性記憶装置に、複数記録されている。但し、不揮発性記憶装置に複数記録される起動用プログラムは、完全なコピーでなく、一部が変更されたものであってもよい。本発明では、起動用プログラムの更新に際して、第一の領域に記録された起動用プログラムと、第二の領域に記録された起動用プログラムと、を順に更新する。そして、起動処理に実際に用いられる起動用プログラムとして、第一の領域に記録された起動用プログラムの更新中には、第二の領域に記録された起動用プログラムを、第二の領域に記録された起動用プログラムの更新中には、第一の領域に記録された起動用プログラムを指定することで、更新処理が正常に終了しなかった場合にも、予備の更新用プログラムを用いて情報処理装置の起動が問題なく行えるようにしている。
【００１０】
また、本発明に係る情報処理装置は、前記不揮発性記憶装置に、起動処理に前記第二の領域に記録された起動用プログラムを用いることを示す情報が記録されている場合に、前記第一の更新手段による更新処理を開始させ、前記不揮発性記憶装置に、起動処理に前記第一の領域に記録された起動用プログラムを用いることを示す情報が記録されている場合に、前記第二の更新手段による更新処理を開始させる、更新処理再開手段を更に備えてもよい。
【００１１】
即ち、本発明に係る情報処理装置によれば、更新処理が正常に終了しなかった場合にも、次回起動時に更新処理が再開される。ここで、更新処理の再開位置を、前回終了時に指定されていた起動用プログラムに基づいて判定することで、正しい再開位置から更新処理を再開することが出来る。より具体的には、起動用プログラムとして第二の領域に記録された起動用プログラムが指定されている場合には、前回終了時に第一の領域に記録された起動用プログラムの更新処理が行われていたと判断することが出来るし、起動用プログラムとして第一の領域に記録された起動用プログラムが指定されている場合には、前回終了時に第二の領域に記録された起動用プログラムの更新処理が行われていたと判断することが出来る。
【００１２】
なお、前回終了時に起動用プログラムの更新中であったか否かは、情報記録手段によって起動用プログラム指定情報とは別に記録される、前回終了時に起動用プログラムの更新中であったか否かを判定するための情報を参照することで判定されてもよいし、起動用プログラム指定情報を参照することで判定されてもよい。。例えば、更新処理が行われてい
ない場合には、情報記録手段によって、何れの起動用プログラムを用いて起動してもよい旨を指定する起動用プログラム指定情報が記録されることで、第一の更新処理再開手段および第二の更新処理再開手段は、第一の領域に記録された起動用プログラムを指定する起動用プログラム指定情報または第二の領域に記録された起動用プログラムを指定する起動用プログラム指定情報が記録されている場合には、前回終了時に起動用プログラムの更新中であったと判断することが出来る。
【００１３】
即ち、前記情報記録手段は、前記第二の領域に記録された起動用プログラムの更新が完了した後に、該情報処理装置の起動処理に、前記第一の領域に記録された起動用プログラムおよび前記第二の領域に記録された起動用プログラムの何れを用いてもよいことを示す前記起動用プログラム指定情報を記録してもよい。
【００１４】
また、前記第二の更新手段は、前記第一の領域に記録された更新済みの起動用プログラムに基づいて、前記第二の領域に記録された起動用プログラムの更新を行ってもよい。このようにすることで、外部から更新プログラムを取得してプログラムの更新を行う場合に、外部との通信に係る処理負荷や、通信に掛かるコストを削減することが出来る。
【００１５】
更に、本発明は、コンピュータが実行する方法、又はコンピュータを上記各手段として機能させるためのプログラムとしても把握することが可能である。また、本発明は、そのようなプログラムをコンピュータその他の装置、機械等が読み取り可能な記録媒体に記録したものでもよい。ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。
【発明の効果】
【００１６】
本発明によって、情報処理装置におけるプログラムの更新が正常に終了しなかった場合にも、情報処理装置の起動および更新の再開が可能となる。
【発明を実施するための最良の形態】
【００１７】
本発明に係る情報処理装置、プログラム更新方法およびプログラムの実施の形態について、図面に基づいて説明する。
【００１８】
図１は、本実施形態に係る車載機、および該車載機に含まれる情報処理装置のプログラムを更新するシステムの概略を示す図である。車載機１は、ユーザに対して情報を表示し、ユーザからの入力を受け付けるタッチパネルディスプレイ２、タッチパネルディスプレイ２からのユーザ入力に応じて、タッチパネルディスプレイ２に地図画像等を表示させることでナビゲーションを行うためのナビゲーション装置３、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）やラジオ放送波等のソースから音響信号を生成して車内に設置されたスピーカを介してユーザに音響を提供するオーディオ装置４、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）から映像信号および音響信号を生成してタッチパネルディスプレイ２およびスピーカから出力するＤＶＤデッキ５、受信されたデジタル放送波に基づく映像信号および音響信号を生成してタッチパネルディスプレイ２およびスピーカから出力することでユーザにデジタルテレビ放送を視聴させるＤＴＶ装置６、等の各情報処理装置を備え、これらの装置は互いに通信可能に接続されている。
【００１９】
車載機１に備えられる各情報処理装置は、夫々が専用または汎用のプロセッサ、ＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を有し、ＲＯＭまたはＲＡＭに展開されたプログラムをプロセッサが実行することで、夫々の情報処理装置が有する機能を、ユーザまたは接続された他の情報処理装置へ提供するコンピュータである。そして、本実施形態において、各情報処理装置による機能提供のために実行されるプログラムは
、ネットワークを介して更新可能となっている。
【００２０】
プログラムの更新は、サーバ９に保存された更新プログラム９１をネットワーク経由でダウンロードし、従前のプログラムを書き換える（通常、上書きされる）ことで行われる。なお、プログラムの更新は、車載機１が搭載された車両のＡＣＣオン時にナビゲーション装置３が起動するタイミングや、ユーザ設定に基づくタイミング、ナビゲーション装置において目的地設定された地点（例えば、ユーザの自宅等）に車両が到着したタイミングで、サーバ９の更新情報を有するセンタに問合せを行い、サーバ９に更新プログラムがあることが検知されたことを契機として開始される。ここで、本実施形態における車載機１には携帯電話端末７接続用のインターフェースが設けられており、車載機１は、このインターフェースを介して接続された携帯電話端末７を用いて、インターネット等のネットワーク越しにサーバ９に接続して更新プログラム９１をダウンロードする。なお、車載機１に設けられる携帯電話端末７接続用のインターフェースは、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ
Ｓｅｒｉａｌ  Ｂｕｓ）等の有線インターフェースであってもよいし、Ｂｌｕｅｔｏｏｔｈ等の無線インターフェースであってもよい。
【００２１】
以下、車載機１に備えられたナビゲーション装置３のプログラム更新処理について説明する。但し、車載機１を構成するその他の情報処理装置、例えば、タッチパネルディスプレイ２、オーディオ装置４、ＤＶＤデッキ５、ＤＴＶ装置６等についても、更新処理を行うことが可能であり、また、更新処理の流れは、以下に説明するナビゲーション装置３による更新処理の流れと同様である。
【００２２】
図２は、本実施形態に係るナビゲーション装置３のＲＯＭに記録されたプログラムの構成を示す図である。ナビゲーション装置３のＲＯＭには、プロセッサによって実行されることでナビゲーション装置３による各種機能を実現するためのプログラムが記録されているが、本実施形態では、このようなプログラムが記録されるＲＯＭ上の領域を、ナビゲーション装置３の起動および更新処理を行うにあたって必要となる起動用プログラムが記録されるブート部３１と、起動後のナビゲーション装置３において通常の機能をユーザや周辺装置等へ提供するためのアプリケーションプログラムが記録されるアプリケーション部３２と、に分けている。
【００２３】
更に、本実施形態では、ブート部３１は、起動用プログラムが記録される第一領域（以下、「ＢＯＯＴ＿１」とも称する）３１１と、第一領域３１１に記録される起動用プログラムと同一の起動用プログラムが記録されている第二領域（以下、「ＢＯＯＴ＿２」とも称する）３１２と、実際に起動処理において実行される起動用プログラムが第一領域３１１に記録された起動用プログラムおよび第二領域３１２に記録された起動用プログラムの何れであるかを指定するための起動用プログラム指定情報が記録される指定情報記録領域（以下、「ＢＯＯＴ＿０」とも称する）３１０と、に分けられる。
【００２４】
ここで、指定情報記録領域３１０には、０から２の値が設定され、ＢＯＯＴ＿０＝０はナビゲーション装置３の起動処理において何れの領域に記録された起動用プログラムが用いられてもよいことを示し、ＢＯＯＴ＿０＝１はナビゲーション装置３の起動処理において第一領域３１１に記録された起動用プログラムを用いることを示し、ＢＯＯＴ＿０＝２はナビゲーション装置３の起動処理において第二領域３１２に記録された起動用プログラムを用いることを示す。更に、ＢＯＯＴ＿０＝０は、前回終了時にブート部３１の更新処理の途中ではなかったことを示し、ＢＯＯＴ＿０＝１およびＢＯＯＴ＿０＝２は、前回終了時にブート部３１の更新処理の途中であったことを示す。
【００２５】
図３は、本実施形態に係るナビゲーション装置３の機能構成を示す図である。本実施形態に係るナビゲーション装置３は、ＲＯＭまたはＲＡＭに展開されたプログラムをプロセ
ッサが実行することで、ユーザ入力に従ってタッチパネルディスプレイ２に地図画像等を表示させることでナビゲーションを行うナビゲーション部２１と、ＲＯＭに起動用プログラムの指定情報を記録する情報記録部２２と、情報記録部２２によって記録された指定情報に従って起動用プログラムを実行し、装置を起動させる起動部２３と、第一領域３１１に記録された起動用プログラムを更新する第一更新部２４と、第二領域３１２に記録された起動用プログラムを更新する第二更新部２５と、起動用プログラムの更新が正常に終了しなかった場合に次回起動時に更新処理を再開する更新処理再開部２６と、起動用プログラムの更新が終了した状態でアプリケーション部３２の更新を行うアプリケーション更新部２７と、を備えるナビゲーション装置３として機能する。
【００２６】
図４は、本実施形態に係るナビゲーション装置３の、プログラム更新の流れの概要と、これに伴う指定情報記録領域３１０の更新の流れを示す図である。ナビゲーション装置３は、電源が投入されると、指定情報記録領域３１０を参照して起動用プログラムを特定し、特定された起動用プログラムを実行することで装置を起動させる。通常、この時点で指定情報記録領域３１０には、第一領域３１１および第二領域３１２の何れの領域に記録された起動用プログラムを用いて起動してもよい旨を意味する「０」が記録されているため、ナビゲーション装置３は、第一領域３１１および第二領域３１２に記録された起動用プログラムのうち任意のものを実行することで装置を起動させる。但し、何れの起動用プログラムを用いてもよい場合には優先的に第一領域３１１に記録された起動用プログラムが用いられる等、優先順位が設けられていてもよい。
【００２７】
車載機１の起動後、現在ナビゲーション装置３にインストールされているプログラムが最新のプログラムでなく、サーバ９に更新プログラム９１があることが検知されると、更新プログラム９１のダウンロードおよび更新処理（既存プログラムへの上書き）が行われる。この際、更新は、第一領域（ＢＯＯＴ＿１）３１１に記録されている起動用プログラム、第二領域（ＢＯＯＴ＿２）３１２に記録されている起動用プログラム、そしてアプリケーションプログラム、の順に行われる。そして、この際、第一領域３１１の更新開始前には、指定情報記録領域３１０に２が設定され、第一領域３１１の更新完了後、第二領域３１２の更新開始前には、指定情報記録領域３１０に１が設定され、第二領域３１２の更新完了後、アプリケーション部３２の更新開始前には、指定情報記録領域３１０に０が設定される。アプリケーション部３２の更新が完了すると、プログラム更新処理は終了する。
【００２８】
ここで、プログラム更新処理の途中で、車載機１の電源断等の理由で更新が正常に終了しなかった場合について説明する。ナビゲーション装置３は、車載機１の一部であるため、プログラム更新が不意のタイミングで開始された場合、ユーザが電源を切ってしまう可能性がある。特に、車載機１が搭載された車両をユーザが離れる場合には、更新が完了するまで電源を入れたままにしておくとバッテリの充電分が使い果たされてしまう等の弊害があるため、オフィス内や家庭内で用いられる情報処理装置に比べて、ユーザが突然電源を切ってしまう可能性は高い。以下、電源断のタイミングに応じて、電源断後、ナビゲーションが再び起動された場合の起動処理について説明する。
【００２９】
図４に示すケース１は、起動後、第一領域３１１の更新が開始される前に電源が切られた場合を示している。これは、ナビゲーション装置３を通常使用している状態で電源を切った場合と同様であり、起動用プログラムの更新は開始されておらず、指定情報記録領域３１０にも、第一領域３１１と第二領域３１２の何れの起動用プログラムを用いて起動してもよいことを示す「０」が設定されているため、次回起動時も通常通り正常に起動する。
【００３０】
ケース２は、第一領域３１１の更新中に電源が切られた場合を示している。この場合、
第一領域３１１の更新途中であるために、第一領域３１１に記録されている起動用プログラムは破損している可能性があるが、指定情報記録領域３１０に、第二領域３１２の起動用プログラムを用いて起動すべきことを示す「２」が設定されているため、次回起動時には破損していない第二領域３１２の起動用プログラムを用いて正常に起動する。
【００３１】
ケース３は、第一領域３１１の更新完了後、第二領域３１２の更新開始前に電源が切られた場合を示している。この場合、第一領域３１１の起動用プログラムの更新は完了し、第二領域３１２の起動用プログラムは未更新であり、何れの起動用プログラムも破損していない。ここでは、指定情報記録領域３１０に、第一領域３１１の起動用プログラムを用いて起動すべきことを示す「１」が設定されているため、次回起動時には、更新済みで最新の状態となっている第一領域３１１の起動用プログラムを用いて正常に起動する。
【００３２】
ケース４は、第二領域３１２の更新中に電源が切られた場合を示している。この場合、第二領域３１２に記録されている起動用プログラムは破損している可能性があるが、指定情報記録領域３１０に、第一領域３１１の起動用プログラムを用いて起動すべきことを示す「１」が設定されているため、更新済みの第一領域３１１の起動用プログラムを用いて正常に起動する。
【００３３】
ケース５では、第二領域３１２の更新完了後、アプリケーション部３２の更新開始前に電源が切られた場合を示している。この場合、第一領域３１１および第二領域３１２の起動用プログラムの更新は完了し、何れの起動用プログラムも破損が無く且つ最新の状態である。ここでは、指定情報記録領域３１０に、第一領域３１１と第二領域３１２の何れの起動用プログラムを用いて起動してもよいことを示す「０」が設定されているため、次回起動時も通常通り正常に起動する。
【００３４】
上記説明したように、本実施形態に係る情報処理装置によれば、起動用プログラムの更新中に突然電源が切られ、更新中の起動用プログラムが破損してしまった場合でも、正常に装置を起動することが可能である。更に、本実施形態に係る情報処理装置は、更新途中で電源が切られた場合でも、次回起動時に、更新が中断された位置に近い最も適切な位置から更新処理を再開する機能を有する。以下、フローチャートを用いて、本実施形態に係る情報処理装置の起動処理および更新処理の流れをより具体的に説明する。
【００３５】
図５は、本実施形態に係るナビゲーション装置３の起動処理の流れを示すフローチャートである。本フローチャートに示された処理は、ナビゲーション装置３の電源が投入されることで開始される。なお、本フローチャートに示された処理の順序は一例であり、本発明の範囲を逸脱しない範囲で、実施の形態に応じて適宜処理順序を変更することも可能である。
【００３６】
ステップＳ１０１では、起動に用いられる起動用プログラムが決定される。ナビゲーション装置３のプロセッサは、電源が投入されると、指定情報記録領域３１０を参照することで、起動処理において実行される起動用プログラムが、第一領域３１１に記録された起動用プログラムであるか、または第二領域３１２に記録された起動用プログラムであるかを決定する。図２を用いて説明した通り、ＢＯＯＴ＿０＝０は何れの領域に記録された起動用プログラムが用いられてもよいことを示し、ＢＯＯＴ＿０＝１は第一領域３１１に記録された起動用プログラムを用いることを示し、ＢＯＯＴ＿０＝２は第二領域３１２に記録された起動用プログラムを用いることを示す。ＢＯＯＴ＿０＝０の場合、処理はステップＳ１０２へ進み、ＢＯＯＴ＿０＝１の場合、処理はステップＳ１０３へ進み、ＢＯＯＴ＿０＝２の場合、処理はステップＳ１０４へ進む。
【００３７】
ステップＳ１０２からステップＳ１０４では、起動用プログラムに従ってナビゲーショ
ン装置３が起動される。起動部２３は、ステップＳ１０１における判定の結果に従って第一領域（ＢＯＯＴ＿１）３１１または第二領域（ＢＯＯＴ＿２）３１２の何れかに記録された起動用プログラムを実行することでナビゲーション装置３を起動する。ここで、第一領域３１１および第二領域３１２の夫々に記録された起動用プログラムは基本的に同一のプログラムである。なお、通常の起動時には、ＢＯＯＴ＿０には「０」が設定されているため、ステップＳ１０２において第一領域３１１の起動用プログラムが実行される。その後、処理はステップＳ１０５へ進む。
【００３８】
ステップＳ１０５およびステップＳ１０６では、今回のナビゲーション装置３の起動が初回起動である場合に、指定情報記録領域３１０の初期設定が行われる。プロセッサは、ナビゲーション装置３における設定内容や外部からの入力信号に基づいて、今回の起動が車載機１が車両に搭載された後最初の起動であるか否かを判定する（ステップＳ１０５）。ここで、今回の起動が初回起動でない場合、図５に示した起動処理は終了し、更新処理へ進む。今回の起動が初回起動である場合、指定情報記録領域３１０に「０」が設定される（ステップＳ１０６）。その後、本フローチャートに示された処理は終了し、処理は更新処理へ進む。
【００３９】
図６および図７は、本実施形態に係るナビゲーション装置３の更新処理の流れを示すフローチャートである。本フローチャートに示された処理は、図５に示した更新処理の終了後、現在ナビゲーション装置３にインストールされているプログラムが最新のプログラムでなく、サーバ９に更新プログラム９１があることが検知された場合に開始される。なお、本フローチャートに示された処理の順序は一例であり、本発明の範囲を逸脱しない範囲で、実施の形態に応じて適宜処理順序を変更することも可能である。
【００４０】
ステップＳ２０１からステップＳ２０４では、指定情報記録領域３１０の内容およびブート部３１更新要求の有無に基づいて、更新の対象となるプログラムおよび領域が決定される。更新処理再開部２６は、指定情報記録領域３１０を参照し、「２」が設定されている場合には、前回終了時に第一領域３１１の起動用プログラムが更新途中であったと判断して、ステップＳ２０５以降の第一領域更新処理へ進む（ステップＳ２０１）。更新処理再開部２６によって指定情報記録領域３１０が参照され、「１」が設定されていると判定された場合には、前回終了時に第二領域３１２の起動用プログラムが更新途中であったと判断して、ステップＳ２１１以降の第二領域更新処理へ進む（ステップＳ２０２）。
【００４１】
指定情報記録領域３１０に「１」および「２」以外の値（通常は「０」が設定されている）が設定されている場合、更新処理再開部２６は、サーバ９に保存されている更新プログラム９１に起動用プログラムの更新プログラムが含まれているか否か（即ち、ブート部３１の更新が必要であるか否か）を判定し、ブート部３１の更新が必要でないと判定された場合には、情報記録部２２によって指定情報記録領域３１０に初期値である「０」が設定され（ステップＳ２０４）、ステップＳ２２２以降のアプリケーション部更新処理へ進む。これは、ブート部３１の更新が行われず、起動用プログラムの破損の恐れがないために、フェールセーフ処理として次回起動に第一領域３１１および第二領域３１２の何れの起動用プログラムを用いてもよいことを改めて再設定するものである。一方、ブート部３１の更新が必要であると判定された場合には、ステップＳ２０５以降の第一領域更新処理へ進む（ステップＳ２０３）。
【００４２】
即ち、本実施形態に係るナビゲーション装置３では、指定情報記録領域３１０の情報を、起動に用いる起動用プログラムを指定するための情報のみならず、前回終了時に起動用プログラムの更新中であったか否かを判定するための情報としても用いている。即ち、指定情報記録領域３１０に「０」が設定されている場合、前回終了時に起動用プログラムの更新中ではなかったと判定され、指定情報記録領域３１０に「１」または「２」が設定さ
れている場合、前回終了時に起動用プログラムの更新中であったと判定される。但し、前回終了時に起動用プログラムの更新中であったか否かを判定するための情報は、指定情報記録領域３１０とは別に記録されてもよい。この場合、情報記録部２２は、指定情報記録領域３１０に対する起動用プログラムの指定と併せて、前回終了時に起動用プログラムの更新中であったか否かを判定するための情報を記録する。
【００４３】
ステップＳ２０５からステップＳ２０８では、第一領域３１１の更新処理が行われる。はじめに、情報記録部２２は、指定情報記録領域３１０に「２」を設定する（ステップＳ２０５）。このようにすることで、続く第一領域３１１の更新処理の途中で電源断等によって更新処理が異常終了した場合にも、次回起動時に第二領域３１２の起動用プログラムを用いてナビゲーション装置３を正常に起動させることが出来る。そして、第一更新部２４は、サーバ９から最新の起動用プログラムをダウンロードして、ダウンロードされた起動用プログラムで第一領域３１１に記録されている既存の起動用プログラムを上書きすることで、第一領域３１１の更新を行う（ステップＳ２０６）。
【００４４】
第一領域３１１の更新が終了すると（ステップＳ２０７）、情報記録部２２は、指定情報記録領域３１０に「１」を設定する（ステップＳ２０８）。即ち、ステップＳ２０８以降、更新処理の途中で突然電源が切られてしまったような場合でも、ナビゲーション装置３は、次回起動時に、最新の状態に更新された第一領域３１１の起動用プログラムを用いて起動することが出来る。その後、処理はステップＳ２１１以降の第二領域更新処理へ進む。
【００４５】
ステップＳ２１１からステップＳ２１３では、第二領域３１２の更新処理が行われる。この時点で、ステップＳ２０８において、情報記録部２２によって指定情報記録領域３１０に「１」が設定されているため、第二領域３１２の更新処理の途中で電源断等によって更新処理が異常終了した場合にも、次回起動時に第一領域３１１の起動用プログラムを用いてナビゲーション装置３を正常に起動させることが出来る。ここで、第二更新部２５は、更新済みの第一領域３１１から最新の起動用プログラムを読み出して、読み出された起動用プログラムで第二領域３１２に記録されている既存の起動用プログラムを上書きすることで、第二領域３１２の更新を行う（ステップＳ２１１）。
【００４６】
第二領域３１２の更新が終了すると（ステップＳ２１２）、情報記録部２２は、指定情報記録領域３１０に「０」を設定する（ステップＳ２１３）。即ち、ステップＳ２１３以降、ナビゲーション装置３は、最新の状態に更新された第一領域３１１または第二領域３１２の起動用プログラムを任意に用いて起動することが出来る。その後、処理はステップＳ２２１以降のアプリケーション部更新処理へ進む。
【００４７】
ステップＳ２２１からステップＳ２２３では、アプリケーション部３２の更新処理が行われる。ステップＳ２２１以降では、既に起動用プログラムの更新は完了し、アプリケーション部３２の更新処理において起動用プログラムが破損することは無いため、指定情報記録領域３１０を用いた起動用プログラムの指定制御は行われない。プロセッサは、サーバ９に保存されている更新プログラム９１にアプリケーションプログラムの更新プログラムが含まれているか否か（即ち、アプリケーション部３２の更新が必要であるか否か）を判定する（ステップＳ２２１）。アプリケーション部３２の更新が必要であると判定された場合、処理はステップＳ２２２へ進む。アプリケーション部３２の更新が必要でないと判定された場合、本フローチャートに示された処理は終了し、ナビゲーション装置３は再起動する。
【００４８】
ステップＳ２２１でアプリケーション部３２の更新が必要であると判定された場合、アプリケーション更新部２７は、サーバ９から最新のアプリケーションプログラムをダウン
ロードして、ダウンロードされたアプリケーションプログラムでアプリケーション部３２に記録されている既存のアプリケーションプログラムを上書きすることで、アプリケーション部３２の更新を行う（ステップＳ２２２）。アプリケーション部３２の更新が終了すると（ステップＳ２２３）、本フローチャートに示された処理は終了し、ナビゲーション装置３は再起動する。
【００４９】
本実施形態によれば、プログラムの更新処理の途中で、電源断等の理由に依って起動用プログラムが破損してしまった場合でも、指定情報記録領域３１０によって破損の無い起動用プログラムが示されているため、正常に情報処理装置を起動することが出来る。更に、本実施形態によれば、更新処理において、指定情報記録領域３１０を参照することで前回終了時に更新処理の途中であったか否か、および前回終了時の更新処理の進行度合いを判定し、更新処理を再開することで、電源断等の理由によって更新処理が中断されてしまった場合でも、最適な位置から更新処理を再開することが可能である。
【００５０】
また、上記実施形態では、ナビゲーション装置３のプログラム更新処理について説明したが、本発明は、プログラムの更新が行われる情報処理装置であれば適用することが可能である。例えば、車載機１を構成するタッチパネルディスプレイ２、オーディオ装置４、ＤＶＤデッキ５、ＤＴＶ装置６その他の情報処理装置についても、上記説明したものと同様の更新処理を行うことによって、更新途中の電源断によって起動用プログラムが破損した場合にも、正常な再起動および更新処理の再開を行うことが出来る。
【図面の簡単な説明】
【００５１】
【図１】実施形態に係る車載機、および該車載機に含まれる情報処理装置のプログラムを更新するシステムの概略を示す図である。
【図２】実施形態に係るナビゲーション装置のＲＯＭに記録されたプログラムの構成を示す図である。
【図３】実施形態に係るナビゲーション装置の機能構成を示す図である。
【図４】実施形態に係るナビゲーション装置の、プログラム更新の流れの概要と、これに伴う指定情報記録領域の更新の流れを示す図である。
【図５】実施形態に係るナビゲーション装置の起動処理の流れを示すフローチャートである。
【図６】実施形態に係るナビゲーション装置の更新処理の流れを示すフローチャートである。
【図７】実施形態に係るナビゲーション装置の更新処理の流れを示すフローチャートである。
【符号の説明】
【００５２】
１  車載機
３  ナビゲーション装置
３１  ブート部
３２  アプリケーション部
３１０  指定情報記録領域（ＢＯＯＴ＿０）
３１１  第一領域（ＢＯＯＴ＿１）
３１２  第二領域（ＢＯＯＴ＿２）
２２  情報記録部
２３  起動部
２４  第一更新部
２５  第二更新部
２６  更新処理再開部
【図１】
2010140183.tif 000003
【図２】
2010140183.tif 000004
【図３】
2010140183.tif 000005
【図４】
2010140183.tif 000006
【図５】
2010140183.tif 000007
【図６】
2010140183.tif 000008
【図７】
2010140183.tif 000009
【手続補正書】
【提出日】平成22年4月12日(2010.4.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
不揮発性記憶装置に接続された情報処理装置であって、
該情報処理装置の起動処理に実際に用いられるブートプログラムが、前記不揮発性記憶装置における第一の領域に記録されたブートプログラム、および該不揮発性記憶装置における第二の領域に記録されたブートプログラムの何れであるかを指定する起動用プログラム指定情報を、前記不揮発性記憶装置に記録する情報記録手段と、
該情報処理装置の起動開始時、ブートプログラムが実行される前に前記情報記録手段によって記録された前記起動用プログラム指定情報を参照し、指定されたブートプログラムを用いて該情報処理装置を起動させる指定プログラム起動手段と、
前記第一の領域に記録された、該情報処理装置の起動処理のためのブートプログラムの更新を行う第一の更新手段と、
前記第一の領域に記録されたブートプログラムの更新が完了している場合に、前記第二の領域に記録されたブートプログラムの更新を行う第二の更新手段と、を備え、
前記情報記録手段は、前記第一の更新手段による更新処理が開始される前に、該情報処理装置の起動処理に前記第二の領域に記録されたブートプログラムを指定した前記起動用プログラム指定情報を記録し、前記第一の更新手段による更新処理の終了後且つ前記第二の更新手段による更新処理が開始される前に、該情報処理装置の起動処理に前記第一の領域に記録されたブートプログラムを指定した前記起動用プログラム指定情報を記録する、情報処理装置。
【請求項２】
前記不揮発性記憶装置に、起動処理に前記第二の領域に記録されたブートプログラムを用いることを示す情報が記録されている場合に、前記第一の更新手段による更新処理を開始させ、前記不揮発性記憶装置に、起動処理に前記第一の領域に記録されたブートプログラムを用いることを示す情報が記録されている場合に、前記第二の更新手段による更新処理を開始させる、更新処理再開手段を更に備える、
請求項１に記載の情報処理装置。
【請求項３】
前記情報記録手段は、前記第二の領域に記録されたブートプログラムの更新が完了した後に、該情報処理装置の起動処理に、前記第一の領域に記録されたブートプログラムおよび前記第二の領域に記録されたブートプログラムの何れを用いてもよいことを示す前記起動用プログラム指定情報を記録する、
請求項１または２に記載の情報処理装置。
【請求項４】
前記第二の更新手段は、前記第一の領域に記録された更新済みのブートプログラムを読み出して、前記第二の領域に記録することで、該第二の領域に記録されたブートプログラムの更新を行う、
請求項１から３の何れか一項に記載の情報処理装置。
【請求項５】
不揮発性記憶装置に接続されたコンピュータによって、
該コンピュータの起動処理に実際に用いられるブートプログラムが、前記不揮発性記憶装置における第一の領域に記録されたブートプログラム、および該不揮発性記憶装置における第二の領域に記録されたブートプログラムの何れであるかを指定する起動用プログラム指定情報を、前記不揮発性記憶装置に記録する情報記録ステップと、
該コンピュータの起動開始時、ブートプログラムが実行される前に前記情報記録ステップで記録された前記起動用プログラム指定情報を参照し、指定されたブートプログラムを用いて該コンピュータを起動させる指定プログラム起動ステップと、
前記第一の領域に記録された、該コンピュータの起動処理のためのブートプログラムの更新を行う第一の更新ステップと、
前記第一の領域に記録されたブートプログラムの更新が完了している場合に、前記第二の領域に記録されたブートプログラムの更新を行う第二の更新ステップと、が実行され、
前記情報記録ステップでは、前記第一の更新ステップにおける更新処理が開始される前に、該コンピュータの起動処理に前記第二の領域に記録されたブートプログラムを指定した前記起動用プログラム指定情報が記録され、前記第一の更新ステップにおける更新処理の終了後且つ前記第二の更新ステップにおける更新処理が開始される前に、該コンピュータの起動処理に前記第一の領域に記録されたブートプログラムを指定した前記起動用プログラム指定情報が記録される、プログラム更新方法。