車載機のオンライン更新方法
【課題】車載機に供給される電源は不安定であるため、プログラムの更新中に電力供給が停止した場合、不正なデータが残る。正しく更新を完了させるためには、起動処理時などに、不正なデータのチェックや復旧処理が必要となりユーザを待たせてしまう。
【解決手段】電源が不安定になる期間の更新処理を中断し、電源電圧の安定している期間に更新処理を行い、ユーザを待たせず、着実に更新処理が進む仕組みを提供する。
【解決手段】電源が不安定になる期間の更新処理を中断し、電源電圧の安定している期間に更新処理を行い、ユーザを待たせず、着実に更新処理が進む仕組みを提供する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車載機のオンライン更新方法に関する。
【背景技術】
【0002】
従来の、ソフトウェアのオンライン更新機能を持たない車載機では、市場に出てしまうと、ソフトウェアの機能更新や不具合修正は困難であった。具体的には、従来の車載機の機能更新は、更新用のCDやSDメモリカードを販売、配布するため、ユーザ登録をされていないユーザや中古車を利用している人には行き渡らないという課題があった。また、郵送による更新の通知や、CDやSDメモリカード配送のため時間がかかっていた。
【0003】
これらの課題を解決する方法として、ネットワークを介してプログラムをダウンロードしてプログラムの更新を行うオンライン更新と呼ばれる方法がある。例えば、特開2003−122575号公報(特許文献1)にあるようなオンライン更新の仕組みを利用すると、オンライン更新機能を備えた車載機の更新は、ネットワークを介してネットワークに繋がった全ての車載機に通知できる。さらに、通知を受け取った車載機のユーザが更新の要求をすれば即座に更新を開始でき通知や配送に時間がかからない。この様にプログラムおよびデータをダウンロードして更新するオンライン更新機能を備えた車載機では、プログラムとデータの更新を行う時間や場所を選ばずにすみ、更新が容易になる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003−122575号公報(段落0002〜0011)
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1には、ファームウェア・アプリケーションをダウンロードして更新する仕組みが記載されている。特許文献1の様なオンライン更新機能を車載機に備えると、時間や場所を選ばず、更新が容易になる。しかし、更新にかかる車載機の再起動など、車載機が本来の機能を果たせない期間が増え、ユーザを待たせてしまう機会が多くなる。
【0006】
例えば、起動前に起動対象のファームウェアのチェックサムなどの検証をすると、その検証期間中はユーザにサービスを提供するプログラムは起動せずユーザを待たせてしまう。さらに、検証の後に更新を始めると、更新期間中もユーザはその処理の完了を待たなければならない。
【0007】
また、車載機に供給される電力は不安定である。ダウンロードや更新中に電力の供給が停止した場合、不正なデータが残るため、起動処理時などに、そのチェックや復旧のための処理が必要となりユーザを待たせる期間が増える。
【0008】
大容量の記憶装置は、書込単位が大きく、その書込に失敗するとペナルティが大きい。例えば、ハードディスクでは、512バイトから4Kバイトの単位でデータを取り扱う。フラッシュメモリの様な不揮発メモリでは、その単位は年々大きくなる傾向にある。特に多値記憶をするフラッシュメモリでは、多値記憶をするメモリセルを複数のアドレスで共有しているため、一つのアドレスの書込単位ブロックへの書込失敗が他のブロックのデータを破壊してしまう場合がある。このため、書込失敗は多くのデータを失う事になる。例えば、ダウンロードデータの書き込みに失敗し、128Kバイトのブロックのデータを失うと、64Kbpsの回線では、少なくとも16秒の再送処理が必要となる。
【0009】
また、動作中のプログラムが利用しているデータやプログラムの更新などをする場合は、車載機の再起動を必要とする場合がある。
【0010】
これは、更新によって動作中のプログラムと、更新対象の記憶装置内のプログラムやデータの間で不整合が発生するためである。この再起動の必要な更新処理を、ダウンロードや更新の前処理が完了した直後に実行すると、いったん車載機を停止させてしまうため、車載機の提供すべきサービスを提供できない期間ができてしまう。起動時に再起動の必要な更新処理を実行する方法もある。しかし、この方法は、車載機のサービスを提供するプログラムが起動するまでの時間が長くなり、ユーザを待たせてしまう。
【課題を解決するための手段】
【0011】
そこで、本明細書では、ユーザを待たせず、電源電圧の安定している期間を選択して、着実に更新が進む仕組みが開示される。
【0012】
本明細書で開示される一例は、以下に説明するダウンロードまたは更新処理の中断と再開の制御である。すなわち、電源の不安定な期間の到来を予測し、ダウンロードおよび更新処理を中断する。そして、電源の安定な期間の継続が予測できるタイミングで中断した処理を再開することによってダウンロードおよび更新処理を電源が安定している期間に行う。
【0013】
車の電源の状態は、エンジンが動いておらず、わずかな電流で動作するセキュリティ装置や学習の必要な車載機、ECU(Electronic Control Unit)のみに通電するACC_OFF状態、走行に直接必要の無いオーディオなどのアクセサリ機器に通電するACC_ON状態、エンジンを始動させるため補助モータに通電しているSTART状態、エンジンが動き発電機から給電されバッテリを充電しているON状態に分類される。
【0014】
なお、ACCとは、エンジンキーや、エンジンスタートボタンの状態で、ON/OFFが制御される電源をさす。なお、エンジンキーや、エンジンスタートボタンの状態に係わらず電力供給する電源として、+Bと呼ばれる電源がある。
【0015】
これら4つの状態のうち、車載機の電源が不安定となる期間は、エンジンを始動させる補助モータが回転するため電源電圧が低下するSTART状態の期間である。電圧低下予測手段によってこの期間を予測し、中断再開のタイミングを決定する。具体的には、走行中と停車後のACC_ON、ACC_OFF期間中を電源が安定な期間と判断し、車速がゼロで制動用ブレーキが作動していることを検出し、エンジンを始動させるSTART状態に遷移することを予測する。
【0016】
ダウンロードを走行中と停車後のACC_ON、ACC_OFF期間中に行い、停車時に制動用ブレーキの作動を検出すると、ダウンロードを中断し、電源電圧が低下するSTART期間に入る前に、処理中の書き込みを完了する。ダウンロードを完了すると更新処理を開始する。
【0017】
再起動が必要な更新処理の場合は、ダウンロードプログラム・データを、不揮発性の記憶装置に書き込む更新プログラムを実行するための再起動を、停車後のACC_OFF期間中に行い、制動用ブレーキの作動を検出すると、更新を中断し、電源電圧が低下するSTART期間に入る前に、処理中の書き込みを完了する。START後のON期間では、通常プログラムを実行し、再び停車後のACC_OFF期間に入った時点、更新プログラムを起動し、更新処理を再開する。
【発明の効果】
【0018】
本発明によれば、ユーザを待たせず、電源電圧の安定している期間を選択して、着実に更新が進む仕組みを提供することができる。
【0019】
上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0020】
【図1】車載機のオンライン更新システムの構成図の例である。
【図2】車載機の電源状態遷移図の例である。
【図3】車載機の電源状態と供給電圧の説明図の例である。
【図4】更新処理部の動作を説明するフローチャートの例である。
【図5】更新進捗データ構成の説明図の例である。
【図6】中断再開検出部の動作を説明するフローチャートの例である。
【図7】再起動処理を含む車載機のオンライン更新システムの構成図の例である。
【図8】再起動処理を含む更新処理部の動作を説明するフローチャートの例である。
【図9】再起動更新を含む更新処理を考慮した更新進捗データ構成の説明図の例である。
【図10】車載機の電源状態と供給電圧状況と車載機の負荷変動の説明図の例である。
【図11】プロセッサ負荷を考慮した中断再開検出部の動作を説明するフローチャートの例である。
【発明を実施するための形態】
【0021】
以下、実施例を図面を用いて説明する。
【実施例1】
【0022】
本実施例では、車載機のオンライン更新を行うシステムの例を説明する。
【0023】
図1は、本実施例のオンライン更新システムの構成図の例である。
【0024】
本実施例のオンライン更新システムは、車載機100、車載機100を搭載する車101、車載機の更新プログラムを配布するセンタ端末102、センタ端末102と車載機100をつなぐネットワーク103から構成される。
【0025】
車載機100は、プロセッサ104、メモリ105、不揮発性の記憶装置106、通信により他端末とデータの送受信を行う通信インタフェース107、視聴者やオペレータ等との入出力を司る入出力装置108(ディスプレイ、スピーカ、タッチパネル、キー等)、車の状態取得インタフェース109、電源インタフェース110を含み、これらはバス等の通信線111により接続される。
【0026】
プロセッサ104は、記憶装置106に格納されるプログラム112をメモリ105に読み込み、実行することにより、種々の処理を行う。これらのプログラムやデータは、予め記憶装置106に格納しておいてもよいし、CD−ROM等の記憶媒体から入力してもよいし、ネットワーク経由で他の装置からダウンロードしてもよい。又、該プログラムにより実現される機能を、専用のハードウェアにより実現してもよい。
【0027】
不揮発性の記憶装置106は、起動フラグ113、サービスプログラムA(以下、プログラムAという)格納領域アドレス114、サービスプログラムB(以下、プログラムBという)格納領域アドレス115、更新フラグ116、更新進捗117、中断フラグ118、プログラムA119、プログラムB120、更新プログラム121を格納する。記憶装置106は、固定的なROM用途のフラッシュメモリ、ストレージ用途のフラッシュメモリのみでは無く、持ち運び可能なメモリ(SDメモリ/USBメモリ)、持ち運び可能なHDD、CD、DVD、BDディスクなどを、車載機100が起動時に格納領域の中から単一または複数の記憶域を選択して参照可能としてよい。つまり、記憶領域は複数の記憶装置からなっていてもよい。
【0028】
以下に説明する機能は、プロセッサ104が上記各プログラムを実行することにより実現されるが、説明の便宜上、各プログラムを実行主体として説明する。
【0029】
起動フラグ113は、起動時にプロセッサ104が読み込むプログラムと更新対象となるプログラムを指示する。具体的には、起動時に関して利用する場合、プロセッサ104が、プログラムA119を読み込んで実行するか、プログラムB120を読み込んで実行するかを指示している。また、本実施例の更新方法は起動に利用しないプログラムの格納されている領域を書き換え新しくする。つまり、起動フラグ113が、プログラムA119を指していれば、プログラムB120の格納されている領域を書き換え更新し、プログラムB120を指していれば、プログラムA119の格納されている領域を書き換え更新する。
【0030】
プログラムA格納領域アドレス114は、プログラムA119を格納するアドレスを示す。車載機100が起動するとき、起動フラグ113が、プログラムA119を指している場合、プロセッサ104は、プログラムA格納領域アドレス114の指しているアドレスからプログラムA119を読み出し、メモリ105に格納して、実行する。また、車載機100の更新をするとき、起動フラグ113が、プログラムB120を指している場合、プロセッサ104によって実行される、更新プログラム121は、プログラムA格納領域アドレス114の指しているアドレスのプログラムおよびデータを書き換えて更新する。
【0031】
プログラムB格納領域アドレス115は、プログラムB120を格納するアドレスを示す。車載機100が起動するとき、起動フラグ113が、プログラムB120を指している場合、プロセッサ104は、プログラムB格納領域アドレス115の指しているアドレスからプログラムB120を読み出し、メモリ105に格納して、実行する。また、車載機100の更新をするとき、起動フラグ113が、プログラムA119を指している場合、プロセッサ104によって実行される、更新プログラム121は、プログラムB格納領域アドレス115の指しているアドレスのプログラムおよびデータを書き換えて更新する。
【0032】
更新フラグ116は、更新中か更新完了の更新状態を示す。この更新フラグ116がオンになっている場合、車載機100は更新中である事を表し、オフになっている場合は、更新が完了していることを表す。車載機100は、起動するとこのフラグを確認する。この更新フラグ116がオンになっていれば、前回、車載機100が停止したときに、更新処理を中断し継続して処理すべき更新処理が残っていることが分かる。つまり、この更新フラグ116を確認することによって、中断した更新の有無を判断できる。
【0033】
更新進捗117は、オンライン更新システムの更新処理の進捗の記録である。
この更新進捗117に更新プログラム121がその処理の進捗を記録しながら処理を進める。このため、更新処理が中断しても、更新進捗117を参照すれば更新処理を継続して再開できる。本実施例の更新プログラム121の更新処理部122の処理は、大きくダウンロード処理とプログラム更新処理の二つに分かれる。これに合わせ、更新進捗117は、図5の更新進捗データ構成の説明図の例に示す様に、実行中更新処理117−10、ダウンロード処理進捗117−20、プログラム更新処理進捗117−30の情報を記録する。
【0034】
実行中更新処理117−10は、実行中の更新処理がダウンロード処理であるか、プログラム更新処理であるかを示す。
【0035】
ダウンロード処理進捗117−20は、ダウンロードサーバ117−21、ダウンロードファイル117−22、ダウンロードファイル書込完了バイト数117−23の情報を含む。ダウンロードサーバ117−21は、更新ファイルを配信しているサーバであるセンタ端末102のアドレスを記録する。ダウンロードファイル117−22は、センタ端末102より配信さ、車載機100がダウンロードするダウンロードファイル情報を記録する。ダウンロードファイル書込完了バイト数117−23は、車載機100がダウンロードファイル117−22の示しているファイルをダウンロードし、記憶装置106に書込完了したバイト数を記録する。
【0036】
プログラム更新処理進捗117−30は、プログラム更新ファイル117−31と、プログラム更新ファイル書込完了バイト数117−32を含む。プログラム更新ファイル117−31は、実行可能プログラムとして、記憶装置106に書き込む処理対象ファイルを記録する。プログラム更新ファイル書込完了バイト数117−32は、ダウンロードファイルから更新データを取り出し、実行可能プログラムとして記憶装置106に書込完了したバイト数を記録する。
【0037】
中断フラグ118は、更新プログラム121の中断再開検出部123から、更新処理部への中断、再開指示を記録する。中断フラグ118がオンになっている場合は、中断再開検出部123から更新処理部122に中断指示が出ている事を示す。中断フラグ118がオフになっている場合は、中断再開検出部123から更新処理部122に再開指示が出ている事を示す。
【0038】
プログラムA119は、車載機100のファームウェア、OS、ドライバ、アプリケーションプログラムなど車載機100の機能を実現するプログラムである。車載機100の起動時に、起動フラグ113がプログラムAを指している場合、プログラムA119が実行される。また、車載機100を更新するとき、起動フラグ113がプログラムBを指している場合、更新プログラム121は、プログラムA119を更新する。
【0039】
プログラムB120は、車載機100のファームウェア、OS、ドライバ、アプリケーションプログラムなど車載機100の機能を実現するプログラムである。車載機100の起動時に、起動フラグ113がプログラムBを指している場合、プログラムB120が実行される。また、車載機100を更新するとき、起動フラグ113がプログラムAを指している場合、更新プログラム121は、プログラムB120を更新する。
【0040】
更新プログラム121は、車載機100の更新を行うプログラムであり、更新処理部122と中断再開検出部123を含む。
【0041】
更新処理部122の動作は、図4のフローチャートに従い、通信インタフェース107、ネットワーク103を介して、センタ端末102より更新ファイルをダウンロードして、更新プログラムを記憶装置106に書き込む。また、更新処理部122は、記憶装置106に記録された情報を参照しながら、プログラムA119または、プログラムB120を更新する。この更新処理部122は、中断再開検出部123によって更新される、中断フラグ118を確認しながら処理を進め、中断フラグ118がオンになっている場合、処理中のデータの書き込みと、更新進捗117の更新を完了してから処理を中断する。これによって、電源電圧の不安定な期間や、ユーザを待たせてしまう期間には、更新処理を行わない制御が出来る。つぎに、車載機100の動作中に、中断フラグ118がオフになった場合、更新進捗117に記録された処理の続きを再開する。車載機100が再起動した場合も、同様に更新進捗117を参照して、中断した処理の続きを再開する。この様に、本実施例のオンライン更新システムは、中断によって書込中のデータを失う事の無いように中断と再開を繰り返しながら更新処理をすすめる。
【0042】
中断再開検出部123は、図6のフローチャートに従い、車の状態取得インタフェース109から制動用ブレーキ状態と、車速および/またはパーキング(駐車用)ブレーキ状態と、を取得し、電源インタフェース110から電源状態を取得する。取得結果から、供給電力が不安定になる可能性の高い状態を検出すると中断フラグ118をオンにし、供給電力が安定である可能性が高く、ユーザを待たせる可能性の低い状態を検出すると中断フラグ118をオフにする。
【0043】
通信インタフェース107は、車載機外のサーバ、他端末と通信するためのインタフェースである。通信インタフェース107は、無線通信インタフェースであっても、有線通信インタフェースであってもよい。状況によって両方利用しても良い。例えば、停車中は有線通信インタフェースを利用し、走行中は無線通信インタフェースを利用する。一般に有線通信インタフェースは、無線通信インタフェースより高速である。このため、有線通信インタフェースを利用すると、ダウンロード時間を短縮出来る。
【0044】
入出力装置108は、車載機のユーザ、視聴者やオペレータからの入力を受け取る、キー、タッチパネル、トラックボールなどのポインティングデバイスと、ユーザ、視聴者、オペレータに対する出力をするディスプレイ、スピーカ、LED等のライトなどを含む。入出力装置108によって、車載機100のユーザは、更新プログラム121を動作させるなどの指示を行え、更新プログラム121の更新処理の進捗を確認することが出来る。
【0045】
車の状態取得インタフェース109は、車101より、制動用ブレーキ状態、車速、パーキングブレーキ状態を受け取るインタフェースである。
【0046】
電源インタフェース110は、車101より、ACCと+Bの2種類の電源信号を受けとり、車載機100に電力を供給する。
電源は、図2に示す4つの状態をとり、電源インタフェース110は、4つの状態のうちACC_OFF状態を検出する。
【0047】
車101は、車載機100を搭載する車である。例えば、ガソリン自動車、電気自動車、ディーゼル自動車、燃料電池自動車、自動二輪車、三輪自動車、動力付自転車などがある。車101は、車載機100に電力を供給する電源を備え、ブレーキ状態、車速、パーキングブレーキ状態など車101の状態を取得し車載機100に通知する装置を備える。
【0048】
センタ端末102は、車載機100に更新プログラムを配信するサーバである。車載機100に対して、更新可能なプログラムの通知と、車載機100からのダウンロード要求に従って、更新ファイルの送信を行う。
【0049】
ネットワーク103は、車載機100とセンタ端末102をつなぐネットワークである。携帯電話網、IEEE 802.11シリーズを利用した無線通信/ IEEE 802.16シリーズを利用した無線通信/ IEEE 802.15シリーズを利用した無線通信/UWB等の無線通信網、有線通信網のいずれかであっても、これらを組み合わせたネットワークであっても良い。
【0050】
図2は、本実施例の車載機の電源状態遷移図の例である。車101より車載機100に供給される電源の状態は、ACC_OFF200、ACC_ON201、START202、ON203の4つの状態をとる。電源状態の遷移は、ACC_OFF200からACC_ON201、ACC_ON201からSTART202または、ACC_OFF200、START202からON203、ON203からACC_ON201がある。
【0051】
ACC_OFF200は、車101のエンジンは停止しており、車載機100に電力は供給されない状態である。ACC_OFF200の状態では、車載機100はユーザに目的地までの経路案内などのサービスを提供しない。ACC_OFF200の状態では、車100のエンジンが停止しているため発電をしておらずバッテリの電圧である約12Vが+Bに供給される。
【0052】
ACC_ON201は、車101のエンジンは停止しており、車載機100に電力が供給される状態である。ACC_ON201の状態では、車載機100はユーザにサービスを提供する。ACC_ON201の状態では、車100のエンジンが停止しているため発電しておらずバッテリの電圧である約12Vが+BとACCに供給される。
【0053】
START202は、車101のエンジンをスタートさせるスタータが動くため、車載機100に供給される電力が不安定な状態である。状況によっては、ACC、+Bに供給される電源電圧は約6Vから約5Vまで低下する。
【0054】
ON203は、車101のエンジンが動き、車載機100に電力が供給される状態である。ON203の状態では、車載機100はユーザにサービスを提供する。ON203の状態では、車100のエンジンが動いているため発電機からバッテリへの充電電圧である約13VがACC、+Bに供給される。
【0055】
ユーザが車101に乗り込み車載機100を起動するときACC_OFF200、ACC_ON201、START202、ON203と遷移する場合が多い。この場合、ACC_ON201の状態とSTART202の状態を取る期間は短い場合が多い。このため、ACC_ON201状態で、車載機100は起動し始め、起動途中で、電力の状態がSTART202で不安定になる為停止し、ON203で再び起動する場合がある。
【0056】
また、ユーザが車101を停車させ、車101からおりるため車載機100を停止させる時ON203、ACC_ON201、ACC_OFF200と遷移する場合が多い。この場合ACC_ON201を取る期間は短い場合が多い。しかし、ACC_ON201から取り得る遷移はACC_OFF200だけでは無くSTART202もある。ユーザがいったん止めたエンジンをスタートさせるため短時間でACC_ON201からSTART202に遷移するため、車載機100に供給される電力は不安定になる。
【0057】
ACC_OFF200の状態である期間には車載機100は所定のサービスを提供しないため、更新などの処理を行ってもユーザを待たせることがないが、更新処理中にSTART202への遷移が起こると供給される電力が不安定になり、記憶装置106への書込が正常に行えない状況が発生する課題がある。同様にACC_ON201の状態でユーザへのサービス提供と並行して更新を行う事も考えられるが、START202への遷移で、記憶装置106への書込が正常に行えず、更新が進まない課題がある。
【0058】
図3は、本実施例の車載機の電源状態と供給される電圧の説明図の例である。これは、ユーザが停車している車101に乗り込み、エンジンをスタートさせ、移動後し、停車後、エンジンを停止し車101から降りる場合の電源電圧の変化を示している。電源の状態はACC_OFF200,ACC_ON201、START202、ON203、ACC_ON201、ACC_OFF200の順に遷移する。この場合、ACC_ON301とACC_ON304の期間は短いケースが多い。
【0059】
ACC_OFF300、ACC_OFF305の期間は、ACC_OFF200の状態であり、+Bへは約12Vが供給され、ACCには供給されない。ACC_ON301、ACC_ON304の期間は、ACC_ON201の状態であり、+B、ACC共に約12Vが供給される。START302の期間は、START202の状態であり、供給される電力が不安定な期間で、+B、ACC共に約6Vから5Vが供給される。
【0060】
図4は、更新処理部122の動作を説明するフローチャートの例である。更新プログラム121の更新処理部122と中断再開検出部123は、車載機100起動後、車載機100のサービスを提供するプログラムA119または、プログラムB120と並行して実行される。更新プログラム121は、通信インタフェース107、ネットワーク103を介してセンタ端末102に接続し、更新プログラムの有無を確認する。更新プログラムがあった場合、実行中更新処理117−10、ダウンロード処理進捗117−20、プログラム更新処理進捗117−30の初期値を設定し、更新フラグ116をたてて(オンにして)、更新中を示す状態にして、更新処理部122の処理をスタートさせる。
【0061】
まず、ステップ401で更新フラグ116を確認し、更新フラグ116がオンになっており更新を示していればステップ402に進み、更新フラグがオフであり新しい更新がない場合は終了する。
【0062】
ステップ402では、更新進捗117の実行中更新処理117−10を確認し、ダウンロード処理中であればステップ403に進み、プログラム更新処理中であればステップ408に進む。
【0063】
ステップ403では、中断フラグ118を確認し、中断フラグ118がオンになっており中断を指示されている場合は、中断が解除されるまで、ステップ403で中断フラグ118の確認を続ける。中断フラグ118がオフになっており中断が解除されている場合は、ステップ404に進む。
【0064】
ステップ404では、更新進捗117のダウンロード進捗117−20のダウンロードサーバ117−21の示すサーバからダウンロードファイル117−22の示すファイルの1ブロックを要求して受信する。1ブロックの受信が完了するとステップ405に進む。
【0065】
ステップ405では、ステップ404で受信した1ブロックのデータを更新進捗117のダウンロード進捗117−20のダウンロードファイル書込完了バイト数117−23の示す記憶装置106の書込場所に書き込む。この場所は、起動フラグ113が、プログラムAを指している場合は、プログラムB120の格納されている領域で、ダウンロードファイル書込完了バイト数117−23の示すバイト数分進んだ場所である。書込が完了すると、ステップ406に進む。
【0066】
ステップ406では、ダウンロード処理進捗117−20のダウンロードファイル書込完了バイト数117−23を更新し、中断した場合も、ダウンロードサーバ117−21の示すサーバからダウンロードファイル117−22の示すファイルのダウンロードファイル書込完了バイト数117−23分進んだ位置のデータを要求できるようにする。
【0067】
ステップ407では、ダウンロードファイル117−21の示すファイルのサイズとダウンロードファイル書込バイト数117−23を比較し、ダウンロードの完了を確認する。完了していなければ、ステップ403に戻りダウンロード処理を継続し、完了していれば実行中更新処理117−10をプログラム更新処理に変更して、ステップ408に進み、プログラム更新処理を開始する。
【0068】
ステップ408では、中断フラグ118を確認し、中断フラグ118がオンになっており中断を指示されている場合は、中断が解除されるまで、ステップ408で中断フラグ118の確認を続ける。中断フラグ118がオフになっており中断が解除されている場合は、ステップ409に進む。
【0069】
ステップ409では、更新進捗117のプログラム更新処理進捗117−30のプログラム更新ファイル117−31の示すファイルの1ブロックから実行可能なプログラムを構築する。1ブロックの構築が完了するとステップ410に進む。
【0070】
ステップ410では、ステップ409で構築したプログラムの1ブロックのデータを更新進捗117のプログラム更新処理進捗117−30のプログラム更新ファイル書込完了バイト数117−32の示す記憶装置106の書込場所に書き込む。この場所は、起動フラグ113が、プログラムAを指している場合は、プログラムB120の格納されている領域で、プログラム更新ファイル書込完了バイト数117−32の示すバイト数分進んだ場所である。書込が完了すると、ステップ411に進む。
【0071】
ステップ411では、プログラム更新処理進捗117−30のプログラム更新ファイル書込完了バイト数117−32を更新し、中断した場合も、プログラム更新ファイル117−31の示すファイルのプログラム更新ファイル書込完了バイト数117−32分進んだ位置のデータの構築から再開できるようにする。
【0072】
ステップ412では、プログラム更新ファイル117−31とプログラム更新ファイル書込完了バイト数117−32を比較し、プログラム更新処理の完了を確認する。完了していなければ、ステップ408に戻りプログラム更新処理を継続し、完了していれば処理を終了する。
【0073】
図6は、中断再開検出部123の動作を説明するフローチャートの例である。このフローチャートは、プログラムの更新処理開始時に開始し、プログラム更新処理完了を条件に終了する。
【0074】
ステップ501では、電源インタフェース110より、電源状態を取得する。つぎにステップ502で、車の状態取得インタフェース109より、制動用ブレーキ状態、車速、パーキングブレーキ状態を取得する。ステップ503では、ステップ501、ステップ502で取得した電源状態、車の状態より、次の中断条件1が成り立っているか判定する。
中断条件1:車速がゼロ、かつ、制動用ブレーキが作動している。
中断条件が成り立っていればステップ504で、中断フラグ118をたて、成り立っていなければステップ505で中断フラグをおろし、ステップ506に進む。ステップ506では、更新フラグ116を確認し、更新処理が完了していれば終了し、更新中であればステップ501に戻り、処理を継続する。
【0075】
ユーザが車載機100の電源状態をSTART202に遷移させる場合、通常の運用では、車101は停車しており、ユーザは制動用ブレーキを作動させてからその操作を行う。このため、中断条件1で更新処理を中断すれば、START202に遷移する前に、記憶装置106に書き込みを完了させ更新処理を中断させることができる。また、ON203状態になれば、ユーザは制動用ブレーキから足をはなす。つまり、START202の状態から抜けてから中断条件1が成り立たなくなる為、電源の状態が安定している期間であるACC_OFF300、ACC_ON301、ON303、ACC_ON304、ACC_OFF305の期間を利用して、着実に更新処理を進め、記録装置106への書き込み失敗に伴う再処理などで更新時間が長くなりユーザを待たせることが無くなる。この中断条件1は、信号で停止してアイドリングストップする場合にも同様に働くため、アイドリングストップにも有効である。
【0076】
中断条件1を次の様な判定条件に変更しても同じ効果が得られる。
中断条件2:パーキングブレーキがかけられている、かつ、制動用ブレーキが作動している。
中断条件3:電源の状態が、ACC_OFF200状態、または、ACC_ON201状態の何れかの状態、かつ、制動用ブレーキが作動している。
【0077】
また、これらの中断条件1、中断条件2、中断条件3何れかの条件が成り立っている事を中断条件としても良い。
【0078】
ACC_ON301の期間、ON303の期間、ACC_ON304の期間は、車載機100の提供するサービスと並行して更新を行うため、サービスを提供するプログラムA119または、プログラムB120の実行速度が低下する場合がある。
【0079】
このような場合は、次の中断条件4に切り替えれば、更新処理は、上記期間を除く、ACC_OFF305、ACC_OFF300の期間に実行されるため、車載機100の提供するサービスの性能に影響を与えることは無くなる。
中断条件4:電源の状態がACC_OFF200状態ではない
本実施例では、通信インタフェース107、センタ端末102から更新データを取得し、記憶装置106のプログラムを更新する場合について述べたが、持ちは混み可能な持ち運び可能なメモリ(SDメモリ/USBメモリ)、持ち運び可能なHDD、CD、DVD、BDディスクなどから更新データを取得しても同様である。
【0080】
また、起動フラグ113は、プログラムA119、プログラムB120の二つのプログラムでは無く、任意の数の起動プログラムから選択出来てもよい。この様にすると、複数バージョンのプログラムを保存できる。また、用途の異なる複数プログラムを選択することもできる。
【0081】
さらに、プログラムA119、プログラムB120の内容に更新プログラム121が含まれても良い。この様にすると更新プログラム121の更新も可能となる。
【実施例2】
【0082】
本実施例では、再起動処理を含むオンライン更新を行うシステムの例を説明する。
【0083】
図7は、実施例2における再起動処理を含む車載機のオンライン更新システムの構成図の例である。図1の車載機のオンライン更新システムのうち、既に説明した図1に示された同一の符号を付された構成と、同一の機能を有する部分については、説明を省略する。
【0084】
起動フラグ113は、プログラムA119とプログラムB120に加え、更新プログラム121を選択出来る。更新プログラム格納領域アドレス601は、更新プログラム121の格納されているアドレスを示す。この様にすると、再起動時に起動フラグ113が更新プログラム121を指していると、更新プログラム格納領域アドレス601を参照して、更新プログラム121を実行出来る。
【0085】
更新進捗117には、再起動更新処理の進捗も記録するため、実行中更新処理117−10は、図9の再起動更新を含む更新処理を考慮した更新進捗データ構成の説明図の例に示す様に、ダウンロード処置と、プログラム更新処理に加え、再起動更新処理も示す様になる。また、更新進捗117に再起動更新処理進捗117−40が追加される。再起動更新処理進捗117−40の情報は、再起動更新ファイル117−41と再起動更新ファイル書込完了バイト数117−42を含む。
【0086】
図8は、実施例2における再起動処理を含む更新処理部の動作を説明するフローチャートの例である。図4の更新処理部の動作を説明するフローチャートのうち、既に説明した図4に示された同一の符号を付されたステップと、同一の機能を有する部分については、説明を省略する。
【0087】
ステップ402では、実行中更新処理117−10を確認する。実行中更新処理117−10が再起動更新処理であった場合、ステップ701を実行する。また、ステップ412でプログラム更新処理の完了が確認された場合、実行中更新処理117−10を再起動更新処理として、ステップ701を実行する。
【0088】
ステップ701では、中断フラグ118を確認し、中断フラグ118がオンになっており中断を指示されている場合は、中断が解除されるまで、ステップ701で中断フラグ118の確認を続ける。中断フラグ118がオフになっており中断が解除されている場合は、ステップ702に進む。
【0089】
ステップ702では、更新進捗117の再起動更新処理進捗117−40の再起動更新ファイル117−41の示すファイルから再起動をしなければ更新できないプログラムのデータを構築する。1ブロックのデータを構築するとステップ703に進む。
【0090】
ステップ703では、ステップ702で構築した1ブロックのデータを更新進捗117の再起動更新処理進捗117−40の再起動更新ファイル書込完了バイト数117−42の示す記憶装置106の書込場所に書き込む。この場所は、起動フラグ113が、プログラムAを指している場合は、プログラムB120の格納されている領域で、ダウンロードファイル書込完了バイト数117−23の示すバイト数分進んだ場所である。書込が完了すると、ステップ704に進む。
【0091】
ステップ704では、再起動更新処理進捗117−40の再起動更新ファイル書込完了バイト数117−42を更新し、中断した場合も、再起動の必要な更新処理を再開できるようにする。
【0092】
ステップ705では、再起動更新ファイル117−41の示すファイルのサイズと再起動更新ファイル書込完了バイト数117−42を比較し、再起動更新処理の完了を確認する。完了していなければ、ステップ701に戻り再起動更新処理を継続し、完了していれば更新処理を終了する。
【0093】
これによって、他のプログラムの実行と並行して実行できない更新処理が出来るようになる。
【0094】
ダウンロード処理とプログラム更新処理は中断条件1を利用し、再起動更新処理は中断条件4を利用すると、ダウンロード処理とプログラム更新処理は、供給電力が安定する、ON303、ACC_ON304、ACC_OFF305、ACC_OFF300、ACC_ON301の期間を利用して更新を進め、再起動更新処理は、ACC_OFF305、ACC_OFF300の期間を利用して実行される。ACC_ON301、ON303、ACC_ON304の期間に再起動をする、再起動中は車載機100が提供すべきサービスを提供できなくなってしまい、ユーザを待たせてしまう。しかし、再起動更新処理の中断条件に中断条件4を用いることで、この様なユーザを待たせる期間を発生させずに更新処理ができる。
【実施例3】
【0095】
本実施例では、電源の不安定な期間だけでなく、プロセッサ104の処理負荷の高い期間の更新処理中断も行えるオンライン更新システムの例を説明する。
【0096】
図10は、図3に、さらに車載機の負荷変動を加えて説明する図の例である。既に説明した図3に示された同一の符号を付された部分については、説明を省略する。
【0097】
車載機100のサービスはACC_ON301の期間から提供するため、ACC_OFF300からACC_ON301に変化したタイミングで起動する。このため、ACC_ON301の期間は負荷が高くなる。START302の期間は電源の状態が不安定なため、起動処理中にSTART302の期間に入ると、車載機100は停止する場合がある。
【0098】
図10では、START302の期間、車載機100が停止した例を示している。START302の期間が終わり、電源の安定しているON303に移ると、START302の期間で車載機100が停止した場合は、再起動して負荷が高い期間801が始まる。起動が完了すると負荷の安定した期間802になる。ACC_ON304の期間は、ユーザから特に指示がない限り、低めの処理負荷となる。ACC_ON304からACC_OFF305に変化すると、車載機100は、更新処理が残っていなければ停止する。
【0099】
車載機100において起動時間は、ユーザを待たせる主な時間である。この期間に更新処理を並列に実行すると更にユーザを待たせてしまう場合がある。また、車載機100の提供するサービスの処理実行中で処理負荷の高い期間はユーザを待たせている場合が多い。
【0100】
図11は、実施例3プロセッサ負荷を考慮した中断再開検出部の動作を説明するフローチャートの例である。図6の中断再開検出部の動作を説明するフローチャートのうち、既に説明した図6に示された同一の符号を付されたステップと、同一の機能を有する部分については、説明を省略する。
【0101】
ステップ901は、車載機100のプロセッサ104の処理負荷を取得するステップである。ステップ503では、ステップ501、ステップ502で取得した電源状態、車の状態とステップ901で取得したプロセッサ104の負荷より、次の中断条件5が成り立っているか判定する。
中断条件5:プロセッサ負荷が60%以上、または、中断条件1
中断条件5が成り立っていればステップ504で、中断フラグ118をオンにして、成り立っていなければステップ505で中断フラグをオフにし、ステップ506に進む。ステップ506では、更新フラグ116を確認し、更新処理が完了していれば終了し、更新中であればステップ501に戻り、処理を継続する。
【0102】
中断条件5を次の様な判定条件に変更しても同じ効果が得られる。
中断条件6:プロセッサ負荷が60%以上、または、中断条件2
中断条件7:プロセッサ負荷が60%以上、または、中断条件3
また、これらの中断条件5、中断条件6、中断条件7を組み合わせて判定しても良い。
【0103】
更新を中断するプロセッサ負荷の値を、この例では60%としているが、対象とする車載機100に適切な値とするとよい。この値をユーザが入出力装置108を利用して設定できるようにしても良い。この値をセンタ端末102から車載機100に送るようにしても良い。
【0104】
本実施例の中断再開処理を実施例1の更新処理で利用すれば、プロセッサ104の処理負荷が安定している期間802、電源が安定してプロセッサ104の処理負荷が低いACC_ON304、ACC_OFF305、ACC_OFF300、ACC_ON301の期間を使って、ダウンロード処理とプログラム更新処理を実行できる。
【0105】
本実施例の中断再開処理を実施例2の更新処理で利用すれば、プロセッサ104の処理負荷が安定している期間802、電源が安定してプロセッサ104の処理負荷が低いACC_ON304、ACC_OFF305、ACC_OFF300、ACC_ON301の期間を使って、ダウンロード処理とプログラム更新処理を実行できる。再起動更新処理に関しては、中断条件4でACC_OFF305とACC_OFF300の、再起動によりユーザを待たせる事の無い期間に実行出来る。
【0106】
この仕組みは、オンライン更新導入で増加する処理時間が起動時間に与える影響を小さくすることができる。これによって、車載機の抱える大きな課題である、ユーザを待たせる時間の短縮とプログラム更新の処理にかかる時間の短縮を実現することができる。
【符号の説明】
【0107】
100 車載機
101 車
102 センタ端末
103 ネットワーク
104 プロセッサ
105 メモリ
106 不揮発性の記憶装置
107 通信インタフェース
108 入出力装置
109 車の状態取得インタフェース
110 電源インタフェース
111 通信線
【技術分野】
【0001】
本発明は、車載機のオンライン更新方法に関する。
【背景技術】
【0002】
従来の、ソフトウェアのオンライン更新機能を持たない車載機では、市場に出てしまうと、ソフトウェアの機能更新や不具合修正は困難であった。具体的には、従来の車載機の機能更新は、更新用のCDやSDメモリカードを販売、配布するため、ユーザ登録をされていないユーザや中古車を利用している人には行き渡らないという課題があった。また、郵送による更新の通知や、CDやSDメモリカード配送のため時間がかかっていた。
【0003】
これらの課題を解決する方法として、ネットワークを介してプログラムをダウンロードしてプログラムの更新を行うオンライン更新と呼ばれる方法がある。例えば、特開2003−122575号公報(特許文献1)にあるようなオンライン更新の仕組みを利用すると、オンライン更新機能を備えた車載機の更新は、ネットワークを介してネットワークに繋がった全ての車載機に通知できる。さらに、通知を受け取った車載機のユーザが更新の要求をすれば即座に更新を開始でき通知や配送に時間がかからない。この様にプログラムおよびデータをダウンロードして更新するオンライン更新機能を備えた車載機では、プログラムとデータの更新を行う時間や場所を選ばずにすみ、更新が容易になる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003−122575号公報(段落0002〜0011)
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1には、ファームウェア・アプリケーションをダウンロードして更新する仕組みが記載されている。特許文献1の様なオンライン更新機能を車載機に備えると、時間や場所を選ばず、更新が容易になる。しかし、更新にかかる車載機の再起動など、車載機が本来の機能を果たせない期間が増え、ユーザを待たせてしまう機会が多くなる。
【0006】
例えば、起動前に起動対象のファームウェアのチェックサムなどの検証をすると、その検証期間中はユーザにサービスを提供するプログラムは起動せずユーザを待たせてしまう。さらに、検証の後に更新を始めると、更新期間中もユーザはその処理の完了を待たなければならない。
【0007】
また、車載機に供給される電力は不安定である。ダウンロードや更新中に電力の供給が停止した場合、不正なデータが残るため、起動処理時などに、そのチェックや復旧のための処理が必要となりユーザを待たせる期間が増える。
【0008】
大容量の記憶装置は、書込単位が大きく、その書込に失敗するとペナルティが大きい。例えば、ハードディスクでは、512バイトから4Kバイトの単位でデータを取り扱う。フラッシュメモリの様な不揮発メモリでは、その単位は年々大きくなる傾向にある。特に多値記憶をするフラッシュメモリでは、多値記憶をするメモリセルを複数のアドレスで共有しているため、一つのアドレスの書込単位ブロックへの書込失敗が他のブロックのデータを破壊してしまう場合がある。このため、書込失敗は多くのデータを失う事になる。例えば、ダウンロードデータの書き込みに失敗し、128Kバイトのブロックのデータを失うと、64Kbpsの回線では、少なくとも16秒の再送処理が必要となる。
【0009】
また、動作中のプログラムが利用しているデータやプログラムの更新などをする場合は、車載機の再起動を必要とする場合がある。
【0010】
これは、更新によって動作中のプログラムと、更新対象の記憶装置内のプログラムやデータの間で不整合が発生するためである。この再起動の必要な更新処理を、ダウンロードや更新の前処理が完了した直後に実行すると、いったん車載機を停止させてしまうため、車載機の提供すべきサービスを提供できない期間ができてしまう。起動時に再起動の必要な更新処理を実行する方法もある。しかし、この方法は、車載機のサービスを提供するプログラムが起動するまでの時間が長くなり、ユーザを待たせてしまう。
【課題を解決するための手段】
【0011】
そこで、本明細書では、ユーザを待たせず、電源電圧の安定している期間を選択して、着実に更新が進む仕組みが開示される。
【0012】
本明細書で開示される一例は、以下に説明するダウンロードまたは更新処理の中断と再開の制御である。すなわち、電源の不安定な期間の到来を予測し、ダウンロードおよび更新処理を中断する。そして、電源の安定な期間の継続が予測できるタイミングで中断した処理を再開することによってダウンロードおよび更新処理を電源が安定している期間に行う。
【0013】
車の電源の状態は、エンジンが動いておらず、わずかな電流で動作するセキュリティ装置や学習の必要な車載機、ECU(Electronic Control Unit)のみに通電するACC_OFF状態、走行に直接必要の無いオーディオなどのアクセサリ機器に通電するACC_ON状態、エンジンを始動させるため補助モータに通電しているSTART状態、エンジンが動き発電機から給電されバッテリを充電しているON状態に分類される。
【0014】
なお、ACCとは、エンジンキーや、エンジンスタートボタンの状態で、ON/OFFが制御される電源をさす。なお、エンジンキーや、エンジンスタートボタンの状態に係わらず電力供給する電源として、+Bと呼ばれる電源がある。
【0015】
これら4つの状態のうち、車載機の電源が不安定となる期間は、エンジンを始動させる補助モータが回転するため電源電圧が低下するSTART状態の期間である。電圧低下予測手段によってこの期間を予測し、中断再開のタイミングを決定する。具体的には、走行中と停車後のACC_ON、ACC_OFF期間中を電源が安定な期間と判断し、車速がゼロで制動用ブレーキが作動していることを検出し、エンジンを始動させるSTART状態に遷移することを予測する。
【0016】
ダウンロードを走行中と停車後のACC_ON、ACC_OFF期間中に行い、停車時に制動用ブレーキの作動を検出すると、ダウンロードを中断し、電源電圧が低下するSTART期間に入る前に、処理中の書き込みを完了する。ダウンロードを完了すると更新処理を開始する。
【0017】
再起動が必要な更新処理の場合は、ダウンロードプログラム・データを、不揮発性の記憶装置に書き込む更新プログラムを実行するための再起動を、停車後のACC_OFF期間中に行い、制動用ブレーキの作動を検出すると、更新を中断し、電源電圧が低下するSTART期間に入る前に、処理中の書き込みを完了する。START後のON期間では、通常プログラムを実行し、再び停車後のACC_OFF期間に入った時点、更新プログラムを起動し、更新処理を再開する。
【発明の効果】
【0018】
本発明によれば、ユーザを待たせず、電源電圧の安定している期間を選択して、着実に更新が進む仕組みを提供することができる。
【0019】
上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0020】
【図1】車載機のオンライン更新システムの構成図の例である。
【図2】車載機の電源状態遷移図の例である。
【図3】車載機の電源状態と供給電圧の説明図の例である。
【図4】更新処理部の動作を説明するフローチャートの例である。
【図5】更新進捗データ構成の説明図の例である。
【図6】中断再開検出部の動作を説明するフローチャートの例である。
【図7】再起動処理を含む車載機のオンライン更新システムの構成図の例である。
【図8】再起動処理を含む更新処理部の動作を説明するフローチャートの例である。
【図9】再起動更新を含む更新処理を考慮した更新進捗データ構成の説明図の例である。
【図10】車載機の電源状態と供給電圧状況と車載機の負荷変動の説明図の例である。
【図11】プロセッサ負荷を考慮した中断再開検出部の動作を説明するフローチャートの例である。
【発明を実施するための形態】
【0021】
以下、実施例を図面を用いて説明する。
【実施例1】
【0022】
本実施例では、車載機のオンライン更新を行うシステムの例を説明する。
【0023】
図1は、本実施例のオンライン更新システムの構成図の例である。
【0024】
本実施例のオンライン更新システムは、車載機100、車載機100を搭載する車101、車載機の更新プログラムを配布するセンタ端末102、センタ端末102と車載機100をつなぐネットワーク103から構成される。
【0025】
車載機100は、プロセッサ104、メモリ105、不揮発性の記憶装置106、通信により他端末とデータの送受信を行う通信インタフェース107、視聴者やオペレータ等との入出力を司る入出力装置108(ディスプレイ、スピーカ、タッチパネル、キー等)、車の状態取得インタフェース109、電源インタフェース110を含み、これらはバス等の通信線111により接続される。
【0026】
プロセッサ104は、記憶装置106に格納されるプログラム112をメモリ105に読み込み、実行することにより、種々の処理を行う。これらのプログラムやデータは、予め記憶装置106に格納しておいてもよいし、CD−ROM等の記憶媒体から入力してもよいし、ネットワーク経由で他の装置からダウンロードしてもよい。又、該プログラムにより実現される機能を、専用のハードウェアにより実現してもよい。
【0027】
不揮発性の記憶装置106は、起動フラグ113、サービスプログラムA(以下、プログラムAという)格納領域アドレス114、サービスプログラムB(以下、プログラムBという)格納領域アドレス115、更新フラグ116、更新進捗117、中断フラグ118、プログラムA119、プログラムB120、更新プログラム121を格納する。記憶装置106は、固定的なROM用途のフラッシュメモリ、ストレージ用途のフラッシュメモリのみでは無く、持ち運び可能なメモリ(SDメモリ/USBメモリ)、持ち運び可能なHDD、CD、DVD、BDディスクなどを、車載機100が起動時に格納領域の中から単一または複数の記憶域を選択して参照可能としてよい。つまり、記憶領域は複数の記憶装置からなっていてもよい。
【0028】
以下に説明する機能は、プロセッサ104が上記各プログラムを実行することにより実現されるが、説明の便宜上、各プログラムを実行主体として説明する。
【0029】
起動フラグ113は、起動時にプロセッサ104が読み込むプログラムと更新対象となるプログラムを指示する。具体的には、起動時に関して利用する場合、プロセッサ104が、プログラムA119を読み込んで実行するか、プログラムB120を読み込んで実行するかを指示している。また、本実施例の更新方法は起動に利用しないプログラムの格納されている領域を書き換え新しくする。つまり、起動フラグ113が、プログラムA119を指していれば、プログラムB120の格納されている領域を書き換え更新し、プログラムB120を指していれば、プログラムA119の格納されている領域を書き換え更新する。
【0030】
プログラムA格納領域アドレス114は、プログラムA119を格納するアドレスを示す。車載機100が起動するとき、起動フラグ113が、プログラムA119を指している場合、プロセッサ104は、プログラムA格納領域アドレス114の指しているアドレスからプログラムA119を読み出し、メモリ105に格納して、実行する。また、車載機100の更新をするとき、起動フラグ113が、プログラムB120を指している場合、プロセッサ104によって実行される、更新プログラム121は、プログラムA格納領域アドレス114の指しているアドレスのプログラムおよびデータを書き換えて更新する。
【0031】
プログラムB格納領域アドレス115は、プログラムB120を格納するアドレスを示す。車載機100が起動するとき、起動フラグ113が、プログラムB120を指している場合、プロセッサ104は、プログラムB格納領域アドレス115の指しているアドレスからプログラムB120を読み出し、メモリ105に格納して、実行する。また、車載機100の更新をするとき、起動フラグ113が、プログラムA119を指している場合、プロセッサ104によって実行される、更新プログラム121は、プログラムB格納領域アドレス115の指しているアドレスのプログラムおよびデータを書き換えて更新する。
【0032】
更新フラグ116は、更新中か更新完了の更新状態を示す。この更新フラグ116がオンになっている場合、車載機100は更新中である事を表し、オフになっている場合は、更新が完了していることを表す。車載機100は、起動するとこのフラグを確認する。この更新フラグ116がオンになっていれば、前回、車載機100が停止したときに、更新処理を中断し継続して処理すべき更新処理が残っていることが分かる。つまり、この更新フラグ116を確認することによって、中断した更新の有無を判断できる。
【0033】
更新進捗117は、オンライン更新システムの更新処理の進捗の記録である。
この更新進捗117に更新プログラム121がその処理の進捗を記録しながら処理を進める。このため、更新処理が中断しても、更新進捗117を参照すれば更新処理を継続して再開できる。本実施例の更新プログラム121の更新処理部122の処理は、大きくダウンロード処理とプログラム更新処理の二つに分かれる。これに合わせ、更新進捗117は、図5の更新進捗データ構成の説明図の例に示す様に、実行中更新処理117−10、ダウンロード処理進捗117−20、プログラム更新処理進捗117−30の情報を記録する。
【0034】
実行中更新処理117−10は、実行中の更新処理がダウンロード処理であるか、プログラム更新処理であるかを示す。
【0035】
ダウンロード処理進捗117−20は、ダウンロードサーバ117−21、ダウンロードファイル117−22、ダウンロードファイル書込完了バイト数117−23の情報を含む。ダウンロードサーバ117−21は、更新ファイルを配信しているサーバであるセンタ端末102のアドレスを記録する。ダウンロードファイル117−22は、センタ端末102より配信さ、車載機100がダウンロードするダウンロードファイル情報を記録する。ダウンロードファイル書込完了バイト数117−23は、車載機100がダウンロードファイル117−22の示しているファイルをダウンロードし、記憶装置106に書込完了したバイト数を記録する。
【0036】
プログラム更新処理進捗117−30は、プログラム更新ファイル117−31と、プログラム更新ファイル書込完了バイト数117−32を含む。プログラム更新ファイル117−31は、実行可能プログラムとして、記憶装置106に書き込む処理対象ファイルを記録する。プログラム更新ファイル書込完了バイト数117−32は、ダウンロードファイルから更新データを取り出し、実行可能プログラムとして記憶装置106に書込完了したバイト数を記録する。
【0037】
中断フラグ118は、更新プログラム121の中断再開検出部123から、更新処理部への中断、再開指示を記録する。中断フラグ118がオンになっている場合は、中断再開検出部123から更新処理部122に中断指示が出ている事を示す。中断フラグ118がオフになっている場合は、中断再開検出部123から更新処理部122に再開指示が出ている事を示す。
【0038】
プログラムA119は、車載機100のファームウェア、OS、ドライバ、アプリケーションプログラムなど車載機100の機能を実現するプログラムである。車載機100の起動時に、起動フラグ113がプログラムAを指している場合、プログラムA119が実行される。また、車載機100を更新するとき、起動フラグ113がプログラムBを指している場合、更新プログラム121は、プログラムA119を更新する。
【0039】
プログラムB120は、車載機100のファームウェア、OS、ドライバ、アプリケーションプログラムなど車載機100の機能を実現するプログラムである。車載機100の起動時に、起動フラグ113がプログラムBを指している場合、プログラムB120が実行される。また、車載機100を更新するとき、起動フラグ113がプログラムAを指している場合、更新プログラム121は、プログラムB120を更新する。
【0040】
更新プログラム121は、車載機100の更新を行うプログラムであり、更新処理部122と中断再開検出部123を含む。
【0041】
更新処理部122の動作は、図4のフローチャートに従い、通信インタフェース107、ネットワーク103を介して、センタ端末102より更新ファイルをダウンロードして、更新プログラムを記憶装置106に書き込む。また、更新処理部122は、記憶装置106に記録された情報を参照しながら、プログラムA119または、プログラムB120を更新する。この更新処理部122は、中断再開検出部123によって更新される、中断フラグ118を確認しながら処理を進め、中断フラグ118がオンになっている場合、処理中のデータの書き込みと、更新進捗117の更新を完了してから処理を中断する。これによって、電源電圧の不安定な期間や、ユーザを待たせてしまう期間には、更新処理を行わない制御が出来る。つぎに、車載機100の動作中に、中断フラグ118がオフになった場合、更新進捗117に記録された処理の続きを再開する。車載機100が再起動した場合も、同様に更新進捗117を参照して、中断した処理の続きを再開する。この様に、本実施例のオンライン更新システムは、中断によって書込中のデータを失う事の無いように中断と再開を繰り返しながら更新処理をすすめる。
【0042】
中断再開検出部123は、図6のフローチャートに従い、車の状態取得インタフェース109から制動用ブレーキ状態と、車速および/またはパーキング(駐車用)ブレーキ状態と、を取得し、電源インタフェース110から電源状態を取得する。取得結果から、供給電力が不安定になる可能性の高い状態を検出すると中断フラグ118をオンにし、供給電力が安定である可能性が高く、ユーザを待たせる可能性の低い状態を検出すると中断フラグ118をオフにする。
【0043】
通信インタフェース107は、車載機外のサーバ、他端末と通信するためのインタフェースである。通信インタフェース107は、無線通信インタフェースであっても、有線通信インタフェースであってもよい。状況によって両方利用しても良い。例えば、停車中は有線通信インタフェースを利用し、走行中は無線通信インタフェースを利用する。一般に有線通信インタフェースは、無線通信インタフェースより高速である。このため、有線通信インタフェースを利用すると、ダウンロード時間を短縮出来る。
【0044】
入出力装置108は、車載機のユーザ、視聴者やオペレータからの入力を受け取る、キー、タッチパネル、トラックボールなどのポインティングデバイスと、ユーザ、視聴者、オペレータに対する出力をするディスプレイ、スピーカ、LED等のライトなどを含む。入出力装置108によって、車載機100のユーザは、更新プログラム121を動作させるなどの指示を行え、更新プログラム121の更新処理の進捗を確認することが出来る。
【0045】
車の状態取得インタフェース109は、車101より、制動用ブレーキ状態、車速、パーキングブレーキ状態を受け取るインタフェースである。
【0046】
電源インタフェース110は、車101より、ACCと+Bの2種類の電源信号を受けとり、車載機100に電力を供給する。
電源は、図2に示す4つの状態をとり、電源インタフェース110は、4つの状態のうちACC_OFF状態を検出する。
【0047】
車101は、車載機100を搭載する車である。例えば、ガソリン自動車、電気自動車、ディーゼル自動車、燃料電池自動車、自動二輪車、三輪自動車、動力付自転車などがある。車101は、車載機100に電力を供給する電源を備え、ブレーキ状態、車速、パーキングブレーキ状態など車101の状態を取得し車載機100に通知する装置を備える。
【0048】
センタ端末102は、車載機100に更新プログラムを配信するサーバである。車載機100に対して、更新可能なプログラムの通知と、車載機100からのダウンロード要求に従って、更新ファイルの送信を行う。
【0049】
ネットワーク103は、車載機100とセンタ端末102をつなぐネットワークである。携帯電話網、IEEE 802.11シリーズを利用した無線通信/ IEEE 802.16シリーズを利用した無線通信/ IEEE 802.15シリーズを利用した無線通信/UWB等の無線通信網、有線通信網のいずれかであっても、これらを組み合わせたネットワークであっても良い。
【0050】
図2は、本実施例の車載機の電源状態遷移図の例である。車101より車載機100に供給される電源の状態は、ACC_OFF200、ACC_ON201、START202、ON203の4つの状態をとる。電源状態の遷移は、ACC_OFF200からACC_ON201、ACC_ON201からSTART202または、ACC_OFF200、START202からON203、ON203からACC_ON201がある。
【0051】
ACC_OFF200は、車101のエンジンは停止しており、車載機100に電力は供給されない状態である。ACC_OFF200の状態では、車載機100はユーザに目的地までの経路案内などのサービスを提供しない。ACC_OFF200の状態では、車100のエンジンが停止しているため発電をしておらずバッテリの電圧である約12Vが+Bに供給される。
【0052】
ACC_ON201は、車101のエンジンは停止しており、車載機100に電力が供給される状態である。ACC_ON201の状態では、車載機100はユーザにサービスを提供する。ACC_ON201の状態では、車100のエンジンが停止しているため発電しておらずバッテリの電圧である約12Vが+BとACCに供給される。
【0053】
START202は、車101のエンジンをスタートさせるスタータが動くため、車載機100に供給される電力が不安定な状態である。状況によっては、ACC、+Bに供給される電源電圧は約6Vから約5Vまで低下する。
【0054】
ON203は、車101のエンジンが動き、車載機100に電力が供給される状態である。ON203の状態では、車載機100はユーザにサービスを提供する。ON203の状態では、車100のエンジンが動いているため発電機からバッテリへの充電電圧である約13VがACC、+Bに供給される。
【0055】
ユーザが車101に乗り込み車載機100を起動するときACC_OFF200、ACC_ON201、START202、ON203と遷移する場合が多い。この場合、ACC_ON201の状態とSTART202の状態を取る期間は短い場合が多い。このため、ACC_ON201状態で、車載機100は起動し始め、起動途中で、電力の状態がSTART202で不安定になる為停止し、ON203で再び起動する場合がある。
【0056】
また、ユーザが車101を停車させ、車101からおりるため車載機100を停止させる時ON203、ACC_ON201、ACC_OFF200と遷移する場合が多い。この場合ACC_ON201を取る期間は短い場合が多い。しかし、ACC_ON201から取り得る遷移はACC_OFF200だけでは無くSTART202もある。ユーザがいったん止めたエンジンをスタートさせるため短時間でACC_ON201からSTART202に遷移するため、車載機100に供給される電力は不安定になる。
【0057】
ACC_OFF200の状態である期間には車載機100は所定のサービスを提供しないため、更新などの処理を行ってもユーザを待たせることがないが、更新処理中にSTART202への遷移が起こると供給される電力が不安定になり、記憶装置106への書込が正常に行えない状況が発生する課題がある。同様にACC_ON201の状態でユーザへのサービス提供と並行して更新を行う事も考えられるが、START202への遷移で、記憶装置106への書込が正常に行えず、更新が進まない課題がある。
【0058】
図3は、本実施例の車載機の電源状態と供給される電圧の説明図の例である。これは、ユーザが停車している車101に乗り込み、エンジンをスタートさせ、移動後し、停車後、エンジンを停止し車101から降りる場合の電源電圧の変化を示している。電源の状態はACC_OFF200,ACC_ON201、START202、ON203、ACC_ON201、ACC_OFF200の順に遷移する。この場合、ACC_ON301とACC_ON304の期間は短いケースが多い。
【0059】
ACC_OFF300、ACC_OFF305の期間は、ACC_OFF200の状態であり、+Bへは約12Vが供給され、ACCには供給されない。ACC_ON301、ACC_ON304の期間は、ACC_ON201の状態であり、+B、ACC共に約12Vが供給される。START302の期間は、START202の状態であり、供給される電力が不安定な期間で、+B、ACC共に約6Vから5Vが供給される。
【0060】
図4は、更新処理部122の動作を説明するフローチャートの例である。更新プログラム121の更新処理部122と中断再開検出部123は、車載機100起動後、車載機100のサービスを提供するプログラムA119または、プログラムB120と並行して実行される。更新プログラム121は、通信インタフェース107、ネットワーク103を介してセンタ端末102に接続し、更新プログラムの有無を確認する。更新プログラムがあった場合、実行中更新処理117−10、ダウンロード処理進捗117−20、プログラム更新処理進捗117−30の初期値を設定し、更新フラグ116をたてて(オンにして)、更新中を示す状態にして、更新処理部122の処理をスタートさせる。
【0061】
まず、ステップ401で更新フラグ116を確認し、更新フラグ116がオンになっており更新を示していればステップ402に進み、更新フラグがオフであり新しい更新がない場合は終了する。
【0062】
ステップ402では、更新進捗117の実行中更新処理117−10を確認し、ダウンロード処理中であればステップ403に進み、プログラム更新処理中であればステップ408に進む。
【0063】
ステップ403では、中断フラグ118を確認し、中断フラグ118がオンになっており中断を指示されている場合は、中断が解除されるまで、ステップ403で中断フラグ118の確認を続ける。中断フラグ118がオフになっており中断が解除されている場合は、ステップ404に進む。
【0064】
ステップ404では、更新進捗117のダウンロード進捗117−20のダウンロードサーバ117−21の示すサーバからダウンロードファイル117−22の示すファイルの1ブロックを要求して受信する。1ブロックの受信が完了するとステップ405に進む。
【0065】
ステップ405では、ステップ404で受信した1ブロックのデータを更新進捗117のダウンロード進捗117−20のダウンロードファイル書込完了バイト数117−23の示す記憶装置106の書込場所に書き込む。この場所は、起動フラグ113が、プログラムAを指している場合は、プログラムB120の格納されている領域で、ダウンロードファイル書込完了バイト数117−23の示すバイト数分進んだ場所である。書込が完了すると、ステップ406に進む。
【0066】
ステップ406では、ダウンロード処理進捗117−20のダウンロードファイル書込完了バイト数117−23を更新し、中断した場合も、ダウンロードサーバ117−21の示すサーバからダウンロードファイル117−22の示すファイルのダウンロードファイル書込完了バイト数117−23分進んだ位置のデータを要求できるようにする。
【0067】
ステップ407では、ダウンロードファイル117−21の示すファイルのサイズとダウンロードファイル書込バイト数117−23を比較し、ダウンロードの完了を確認する。完了していなければ、ステップ403に戻りダウンロード処理を継続し、完了していれば実行中更新処理117−10をプログラム更新処理に変更して、ステップ408に進み、プログラム更新処理を開始する。
【0068】
ステップ408では、中断フラグ118を確認し、中断フラグ118がオンになっており中断を指示されている場合は、中断が解除されるまで、ステップ408で中断フラグ118の確認を続ける。中断フラグ118がオフになっており中断が解除されている場合は、ステップ409に進む。
【0069】
ステップ409では、更新進捗117のプログラム更新処理進捗117−30のプログラム更新ファイル117−31の示すファイルの1ブロックから実行可能なプログラムを構築する。1ブロックの構築が完了するとステップ410に進む。
【0070】
ステップ410では、ステップ409で構築したプログラムの1ブロックのデータを更新進捗117のプログラム更新処理進捗117−30のプログラム更新ファイル書込完了バイト数117−32の示す記憶装置106の書込場所に書き込む。この場所は、起動フラグ113が、プログラムAを指している場合は、プログラムB120の格納されている領域で、プログラム更新ファイル書込完了バイト数117−32の示すバイト数分進んだ場所である。書込が完了すると、ステップ411に進む。
【0071】
ステップ411では、プログラム更新処理進捗117−30のプログラム更新ファイル書込完了バイト数117−32を更新し、中断した場合も、プログラム更新ファイル117−31の示すファイルのプログラム更新ファイル書込完了バイト数117−32分進んだ位置のデータの構築から再開できるようにする。
【0072】
ステップ412では、プログラム更新ファイル117−31とプログラム更新ファイル書込完了バイト数117−32を比較し、プログラム更新処理の完了を確認する。完了していなければ、ステップ408に戻りプログラム更新処理を継続し、完了していれば処理を終了する。
【0073】
図6は、中断再開検出部123の動作を説明するフローチャートの例である。このフローチャートは、プログラムの更新処理開始時に開始し、プログラム更新処理完了を条件に終了する。
【0074】
ステップ501では、電源インタフェース110より、電源状態を取得する。つぎにステップ502で、車の状態取得インタフェース109より、制動用ブレーキ状態、車速、パーキングブレーキ状態を取得する。ステップ503では、ステップ501、ステップ502で取得した電源状態、車の状態より、次の中断条件1が成り立っているか判定する。
中断条件1:車速がゼロ、かつ、制動用ブレーキが作動している。
中断条件が成り立っていればステップ504で、中断フラグ118をたて、成り立っていなければステップ505で中断フラグをおろし、ステップ506に進む。ステップ506では、更新フラグ116を確認し、更新処理が完了していれば終了し、更新中であればステップ501に戻り、処理を継続する。
【0075】
ユーザが車載機100の電源状態をSTART202に遷移させる場合、通常の運用では、車101は停車しており、ユーザは制動用ブレーキを作動させてからその操作を行う。このため、中断条件1で更新処理を中断すれば、START202に遷移する前に、記憶装置106に書き込みを完了させ更新処理を中断させることができる。また、ON203状態になれば、ユーザは制動用ブレーキから足をはなす。つまり、START202の状態から抜けてから中断条件1が成り立たなくなる為、電源の状態が安定している期間であるACC_OFF300、ACC_ON301、ON303、ACC_ON304、ACC_OFF305の期間を利用して、着実に更新処理を進め、記録装置106への書き込み失敗に伴う再処理などで更新時間が長くなりユーザを待たせることが無くなる。この中断条件1は、信号で停止してアイドリングストップする場合にも同様に働くため、アイドリングストップにも有効である。
【0076】
中断条件1を次の様な判定条件に変更しても同じ効果が得られる。
中断条件2:パーキングブレーキがかけられている、かつ、制動用ブレーキが作動している。
中断条件3:電源の状態が、ACC_OFF200状態、または、ACC_ON201状態の何れかの状態、かつ、制動用ブレーキが作動している。
【0077】
また、これらの中断条件1、中断条件2、中断条件3何れかの条件が成り立っている事を中断条件としても良い。
【0078】
ACC_ON301の期間、ON303の期間、ACC_ON304の期間は、車載機100の提供するサービスと並行して更新を行うため、サービスを提供するプログラムA119または、プログラムB120の実行速度が低下する場合がある。
【0079】
このような場合は、次の中断条件4に切り替えれば、更新処理は、上記期間を除く、ACC_OFF305、ACC_OFF300の期間に実行されるため、車載機100の提供するサービスの性能に影響を与えることは無くなる。
中断条件4:電源の状態がACC_OFF200状態ではない
本実施例では、通信インタフェース107、センタ端末102から更新データを取得し、記憶装置106のプログラムを更新する場合について述べたが、持ちは混み可能な持ち運び可能なメモリ(SDメモリ/USBメモリ)、持ち運び可能なHDD、CD、DVD、BDディスクなどから更新データを取得しても同様である。
【0080】
また、起動フラグ113は、プログラムA119、プログラムB120の二つのプログラムでは無く、任意の数の起動プログラムから選択出来てもよい。この様にすると、複数バージョンのプログラムを保存できる。また、用途の異なる複数プログラムを選択することもできる。
【0081】
さらに、プログラムA119、プログラムB120の内容に更新プログラム121が含まれても良い。この様にすると更新プログラム121の更新も可能となる。
【実施例2】
【0082】
本実施例では、再起動処理を含むオンライン更新を行うシステムの例を説明する。
【0083】
図7は、実施例2における再起動処理を含む車載機のオンライン更新システムの構成図の例である。図1の車載機のオンライン更新システムのうち、既に説明した図1に示された同一の符号を付された構成と、同一の機能を有する部分については、説明を省略する。
【0084】
起動フラグ113は、プログラムA119とプログラムB120に加え、更新プログラム121を選択出来る。更新プログラム格納領域アドレス601は、更新プログラム121の格納されているアドレスを示す。この様にすると、再起動時に起動フラグ113が更新プログラム121を指していると、更新プログラム格納領域アドレス601を参照して、更新プログラム121を実行出来る。
【0085】
更新進捗117には、再起動更新処理の進捗も記録するため、実行中更新処理117−10は、図9の再起動更新を含む更新処理を考慮した更新進捗データ構成の説明図の例に示す様に、ダウンロード処置と、プログラム更新処理に加え、再起動更新処理も示す様になる。また、更新進捗117に再起動更新処理進捗117−40が追加される。再起動更新処理進捗117−40の情報は、再起動更新ファイル117−41と再起動更新ファイル書込完了バイト数117−42を含む。
【0086】
図8は、実施例2における再起動処理を含む更新処理部の動作を説明するフローチャートの例である。図4の更新処理部の動作を説明するフローチャートのうち、既に説明した図4に示された同一の符号を付されたステップと、同一の機能を有する部分については、説明を省略する。
【0087】
ステップ402では、実行中更新処理117−10を確認する。実行中更新処理117−10が再起動更新処理であった場合、ステップ701を実行する。また、ステップ412でプログラム更新処理の完了が確認された場合、実行中更新処理117−10を再起動更新処理として、ステップ701を実行する。
【0088】
ステップ701では、中断フラグ118を確認し、中断フラグ118がオンになっており中断を指示されている場合は、中断が解除されるまで、ステップ701で中断フラグ118の確認を続ける。中断フラグ118がオフになっており中断が解除されている場合は、ステップ702に進む。
【0089】
ステップ702では、更新進捗117の再起動更新処理進捗117−40の再起動更新ファイル117−41の示すファイルから再起動をしなければ更新できないプログラムのデータを構築する。1ブロックのデータを構築するとステップ703に進む。
【0090】
ステップ703では、ステップ702で構築した1ブロックのデータを更新進捗117の再起動更新処理進捗117−40の再起動更新ファイル書込完了バイト数117−42の示す記憶装置106の書込場所に書き込む。この場所は、起動フラグ113が、プログラムAを指している場合は、プログラムB120の格納されている領域で、ダウンロードファイル書込完了バイト数117−23の示すバイト数分進んだ場所である。書込が完了すると、ステップ704に進む。
【0091】
ステップ704では、再起動更新処理進捗117−40の再起動更新ファイル書込完了バイト数117−42を更新し、中断した場合も、再起動の必要な更新処理を再開できるようにする。
【0092】
ステップ705では、再起動更新ファイル117−41の示すファイルのサイズと再起動更新ファイル書込完了バイト数117−42を比較し、再起動更新処理の完了を確認する。完了していなければ、ステップ701に戻り再起動更新処理を継続し、完了していれば更新処理を終了する。
【0093】
これによって、他のプログラムの実行と並行して実行できない更新処理が出来るようになる。
【0094】
ダウンロード処理とプログラム更新処理は中断条件1を利用し、再起動更新処理は中断条件4を利用すると、ダウンロード処理とプログラム更新処理は、供給電力が安定する、ON303、ACC_ON304、ACC_OFF305、ACC_OFF300、ACC_ON301の期間を利用して更新を進め、再起動更新処理は、ACC_OFF305、ACC_OFF300の期間を利用して実行される。ACC_ON301、ON303、ACC_ON304の期間に再起動をする、再起動中は車載機100が提供すべきサービスを提供できなくなってしまい、ユーザを待たせてしまう。しかし、再起動更新処理の中断条件に中断条件4を用いることで、この様なユーザを待たせる期間を発生させずに更新処理ができる。
【実施例3】
【0095】
本実施例では、電源の不安定な期間だけでなく、プロセッサ104の処理負荷の高い期間の更新処理中断も行えるオンライン更新システムの例を説明する。
【0096】
図10は、図3に、さらに車載機の負荷変動を加えて説明する図の例である。既に説明した図3に示された同一の符号を付された部分については、説明を省略する。
【0097】
車載機100のサービスはACC_ON301の期間から提供するため、ACC_OFF300からACC_ON301に変化したタイミングで起動する。このため、ACC_ON301の期間は負荷が高くなる。START302の期間は電源の状態が不安定なため、起動処理中にSTART302の期間に入ると、車載機100は停止する場合がある。
【0098】
図10では、START302の期間、車載機100が停止した例を示している。START302の期間が終わり、電源の安定しているON303に移ると、START302の期間で車載機100が停止した場合は、再起動して負荷が高い期間801が始まる。起動が完了すると負荷の安定した期間802になる。ACC_ON304の期間は、ユーザから特に指示がない限り、低めの処理負荷となる。ACC_ON304からACC_OFF305に変化すると、車載機100は、更新処理が残っていなければ停止する。
【0099】
車載機100において起動時間は、ユーザを待たせる主な時間である。この期間に更新処理を並列に実行すると更にユーザを待たせてしまう場合がある。また、車載機100の提供するサービスの処理実行中で処理負荷の高い期間はユーザを待たせている場合が多い。
【0100】
図11は、実施例3プロセッサ負荷を考慮した中断再開検出部の動作を説明するフローチャートの例である。図6の中断再開検出部の動作を説明するフローチャートのうち、既に説明した図6に示された同一の符号を付されたステップと、同一の機能を有する部分については、説明を省略する。
【0101】
ステップ901は、車載機100のプロセッサ104の処理負荷を取得するステップである。ステップ503では、ステップ501、ステップ502で取得した電源状態、車の状態とステップ901で取得したプロセッサ104の負荷より、次の中断条件5が成り立っているか判定する。
中断条件5:プロセッサ負荷が60%以上、または、中断条件1
中断条件5が成り立っていればステップ504で、中断フラグ118をオンにして、成り立っていなければステップ505で中断フラグをオフにし、ステップ506に進む。ステップ506では、更新フラグ116を確認し、更新処理が完了していれば終了し、更新中であればステップ501に戻り、処理を継続する。
【0102】
中断条件5を次の様な判定条件に変更しても同じ効果が得られる。
中断条件6:プロセッサ負荷が60%以上、または、中断条件2
中断条件7:プロセッサ負荷が60%以上、または、中断条件3
また、これらの中断条件5、中断条件6、中断条件7を組み合わせて判定しても良い。
【0103】
更新を中断するプロセッサ負荷の値を、この例では60%としているが、対象とする車載機100に適切な値とするとよい。この値をユーザが入出力装置108を利用して設定できるようにしても良い。この値をセンタ端末102から車載機100に送るようにしても良い。
【0104】
本実施例の中断再開処理を実施例1の更新処理で利用すれば、プロセッサ104の処理負荷が安定している期間802、電源が安定してプロセッサ104の処理負荷が低いACC_ON304、ACC_OFF305、ACC_OFF300、ACC_ON301の期間を使って、ダウンロード処理とプログラム更新処理を実行できる。
【0105】
本実施例の中断再開処理を実施例2の更新処理で利用すれば、プロセッサ104の処理負荷が安定している期間802、電源が安定してプロセッサ104の処理負荷が低いACC_ON304、ACC_OFF305、ACC_OFF300、ACC_ON301の期間を使って、ダウンロード処理とプログラム更新処理を実行できる。再起動更新処理に関しては、中断条件4でACC_OFF305とACC_OFF300の、再起動によりユーザを待たせる事の無い期間に実行出来る。
【0106】
この仕組みは、オンライン更新導入で増加する処理時間が起動時間に与える影響を小さくすることができる。これによって、車載機の抱える大きな課題である、ユーザを待たせる時間の短縮とプログラム更新の処理にかかる時間の短縮を実現することができる。
【符号の説明】
【0107】
100 車載機
101 車
102 センタ端末
103 ネットワーク
104 プロセッサ
105 メモリ
106 不揮発性の記憶装置
107 通信インタフェース
108 入出力装置
109 車の状態取得インタフェース
110 電源インタフェース
111 通信線
【特許請求の範囲】
【請求項1】
車に装着され、プロセッサと記憶装置を備え、前記記憶装置に格納されたプログラムを前記プロセッサが実行する車載機において、
前記車は、制動用ブレーキの状態を含む車の状態を取得する車の状態取得手段を備え、
前記車載機は、前記プログラムの更新処理手段と、中断再開検出部と、を備え、
前記更新処理手段は、
前記車の状態取得手段が取得した当該車の状態が、予め定めた更新処理中断条件を満たしていない場合は、前記プログラムの更新処理を行い、
前記更新処理中断条件を満たしている場合は、前記プログラムの更新処理を中断する
ことを特徴とする車載機。
【請求項2】
請求項1に記載の車載機において、
(1)前記車の状態取得手段が取得した車の状態は、更に車速を含み、前記更新処理中断条件とは、車速がゼロ、かつ、制動用ブレーキが作動している、
または、
(2)前記車の状態取得手段が取得した車の状態は、更に、駐車用ブレーキの状態を含み、前記更新処理中断条件とは、駐車用ブレーキが作動している、かつ、制動用ブレーキが作動している、
または、
(3)前記車の状態取得手段が取得した車の状態は、更に、車の電源の状態を含み、前記更新処理中断条件とは、前記電源の状態が、ACC_OFF状態、または、ACC_ON状態の何れかであり、かつ、制動用ブレーキが作動している、
または、
(4)前記車の状態取得手段が取得した車の状態は、更に、車の電源の状態を含み、前記更新処理中断条件とは、前記電源の状態がACC_OFF状態ではない、
ことを特徴とする車載機。
【請求項3】
請求項1または2に記載の車載機であって、
前記車載機は、さらに、前記プログラムの更新データの取得手段を備え、
前記更新データの取得手段は、
前記車の状態取得手段が取得した当該車の状態が、予め定めた更新データの取得中断条件を満たしていない場合は、前記プログラムの更新データの取得処理を行い、
前記更新データの取得中断条件を満たしている場合は、前記プログラムの更新データの取得処理を中断する
ことを特徴とする車載機。
【請求項4】
請求項3に記載の車載機において、
前記車の状態取得手段が取得した車の状態は、更に車速を含み、前記更新データの取得中断条件とは、車速がゼロ、かつ、制動用ブレーキが作動している
ことを特徴とする車載機。
【請求項5】
請求項1から4のいずれか一に記載の車載機であって、
前記車載機は、さらに、前記プログラムの再起動更新処理手段を備え、
前記再起動更新処理手段は、
前記車の状態取得手段が取得した当該車の状態が、予め定めた再起動更新処理中断条件を満たしていない場合は、前記プログラムの再起動更新処理処理を行い、
前記再起動更新処理中断条件を満たしている場合は、前記プログラムの再起動更新処理処理を中断する
ことを特徴とする車載機。
【請求項6】
請求項5に記載の車載機において、
前記車の状態取得手段が取得した車の状態は、更に、車の電源の状態を含み、前記再起動更新処理中断条件とは、前記電源の状態がACC_OFF状態ではない、
ことを特徴とする車載機。
【請求項7】
請求項1から6のいずれか一に記載の車載機であって、
前記車載機は、さらに、前記プロセッサの負荷取得手段を備え、
前記更新処理手段は、取得した前記プロセッサの負荷が60%未満、または、前記車の状態取得手段が取得した当該車の状態が、前記更新処理中断条件を満たしていない場合は、前記プログラムの更新処理を行い、
取得した前記プロセッサの負荷が60%以上、または、前記更新処理中断条件を満たしている場合は、前記プログラムの更新処理を中断する
ことを特徴とする車載機。
【請求項8】
請求項1から7のいずれか一に記載の車載機であって、
前記更新データ取得手段として、無線/有線通信インタフェースまたは可搬型メモリが接続されるインタフェースを備える
ことを特徴とする車載機。
【請求項1】
車に装着され、プロセッサと記憶装置を備え、前記記憶装置に格納されたプログラムを前記プロセッサが実行する車載機において、
前記車は、制動用ブレーキの状態を含む車の状態を取得する車の状態取得手段を備え、
前記車載機は、前記プログラムの更新処理手段と、中断再開検出部と、を備え、
前記更新処理手段は、
前記車の状態取得手段が取得した当該車の状態が、予め定めた更新処理中断条件を満たしていない場合は、前記プログラムの更新処理を行い、
前記更新処理中断条件を満たしている場合は、前記プログラムの更新処理を中断する
ことを特徴とする車載機。
【請求項2】
請求項1に記載の車載機において、
(1)前記車の状態取得手段が取得した車の状態は、更に車速を含み、前記更新処理中断条件とは、車速がゼロ、かつ、制動用ブレーキが作動している、
または、
(2)前記車の状態取得手段が取得した車の状態は、更に、駐車用ブレーキの状態を含み、前記更新処理中断条件とは、駐車用ブレーキが作動している、かつ、制動用ブレーキが作動している、
または、
(3)前記車の状態取得手段が取得した車の状態は、更に、車の電源の状態を含み、前記更新処理中断条件とは、前記電源の状態が、ACC_OFF状態、または、ACC_ON状態の何れかであり、かつ、制動用ブレーキが作動している、
または、
(4)前記車の状態取得手段が取得した車の状態は、更に、車の電源の状態を含み、前記更新処理中断条件とは、前記電源の状態がACC_OFF状態ではない、
ことを特徴とする車載機。
【請求項3】
請求項1または2に記載の車載機であって、
前記車載機は、さらに、前記プログラムの更新データの取得手段を備え、
前記更新データの取得手段は、
前記車の状態取得手段が取得した当該車の状態が、予め定めた更新データの取得中断条件を満たしていない場合は、前記プログラムの更新データの取得処理を行い、
前記更新データの取得中断条件を満たしている場合は、前記プログラムの更新データの取得処理を中断する
ことを特徴とする車載機。
【請求項4】
請求項3に記載の車載機において、
前記車の状態取得手段が取得した車の状態は、更に車速を含み、前記更新データの取得中断条件とは、車速がゼロ、かつ、制動用ブレーキが作動している
ことを特徴とする車載機。
【請求項5】
請求項1から4のいずれか一に記載の車載機であって、
前記車載機は、さらに、前記プログラムの再起動更新処理手段を備え、
前記再起動更新処理手段は、
前記車の状態取得手段が取得した当該車の状態が、予め定めた再起動更新処理中断条件を満たしていない場合は、前記プログラムの再起動更新処理処理を行い、
前記再起動更新処理中断条件を満たしている場合は、前記プログラムの再起動更新処理処理を中断する
ことを特徴とする車載機。
【請求項6】
請求項5に記載の車載機において、
前記車の状態取得手段が取得した車の状態は、更に、車の電源の状態を含み、前記再起動更新処理中断条件とは、前記電源の状態がACC_OFF状態ではない、
ことを特徴とする車載機。
【請求項7】
請求項1から6のいずれか一に記載の車載機であって、
前記車載機は、さらに、前記プロセッサの負荷取得手段を備え、
前記更新処理手段は、取得した前記プロセッサの負荷が60%未満、または、前記車の状態取得手段が取得した当該車の状態が、前記更新処理中断条件を満たしていない場合は、前記プログラムの更新処理を行い、
取得した前記プロセッサの負荷が60%以上、または、前記更新処理中断条件を満たしている場合は、前記プログラムの更新処理を中断する
ことを特徴とする車載機。
【請求項8】
請求項1から7のいずれか一に記載の車載機であって、
前記更新データ取得手段として、無線/有線通信インタフェースまたは可搬型メモリが接続されるインタフェースを備える
ことを特徴とする車載機。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−103181(P2012−103181A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2010−253389(P2010−253389)
【出願日】平成22年11月12日(2010.11.12)
【出願人】(000001487)クラリオン株式会社 (1,722)
【Fターム(参考)】
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願日】平成22年11月12日(2010.11.12)
【出願人】(000001487)クラリオン株式会社 (1,722)
【Fターム(参考)】
[ Back to top ]