(57)【特許請求の範囲】
【請求項１】
車に装着され、プロセッサと記憶装置を備え、前記記憶装置に格納されたプログラムを前記プロセッサが実行する車載機において、
前記車は、車の状態を取得する車の状態取得手段を備え、
前記車載機は、前記プログラムの更新処理手段と、前記車の状態取得手段が取得した当該車の状態が、予め定められた更新処理中断条件を満たしているかどうかを検出する中断再開検出部と、を備え、
前記更新処理手段は、
前記車の状態が前記更新処理中断条件を満たしていることを前記中断再開検出部が検出した場合は、前記プログラムの更新処理を中断し、
前記プログラムの更新処理が中断しているときに、前記車の状態が前記更新処理中断条件を満たしていないことを前記中断再開検出部が検出した場合は、前記プログラムの更新処理を再開することを特徴とする車載機。
【請求項２】
請求項１に記載の車載機において、
前記車の状態は制動用ブレーキの状態を含み、
（１）前記車の状態取得手段が取得した車の状態は、更に車速を含み、前記更新処理中断条件とは、車速がゼロ、かつ、制動用ブレーキが作動している、または、
（２）前記車の状態取得手段が取得した車の状態は、更に、駐車用ブレーキの状態を含み、前記更新処理中断条件とは、駐車用ブレーキが作動している、かつ、制動用ブレーキが作動している、または、
（３）前記車の状態取得手段が取得した車の状態は、更に、車の電源の状態を含み、前記更新処理中断条件とは、前記電源の状態が、ＡＣＣ＿ＯＦＦ状態、または、ＡＣＣ＿ＯＮ状態の何れかであり、かつ、制動用ブレーキが作動している、または、
（４）前記車の状態取得手段が取得した車の状態は、更に、車の電源の状態を含み、前記更新処理中断条件とは、前記電源の状態がＡＣＣ＿ＯＦＦ状態ではない、ことを特徴とする車載機。
【請求項３】
請求項１または２に記載の車載機であって、
前記車載機は、さらに、前記プログラムの更新データの取得手段を備え、
前記更新データの取得手段は、
前記車の状態取得手段が取得した当該車の状態が、予め定めた更新データの取得中断条件を満たしていない場合は、前記プログラムの更新データの取得処理を行い、
前記更新データの取得中断条件を満たしている場合は、前記プログラムの更新データの取得処理を中断することを特徴とする車載機。
【請求項４】
請求項３に記載の車載機において、
前記車の状態取得手段が取得した車の状態は、更に車速を含み、前記更新データの取得中断条件とは、車速がゼロ、かつ、制動用ブレーキが作動していることを特徴とする車載機。
【請求項５】
請求項１から４のいずれか一に記載の車載機であって、
前記車載機は、さらに、前記プログラムの再起動更新処理手段を備え、
前記再起動更新処理手段は、
前記車の状態取得手段が取得した当該車の状態が、予め定めた再起動更新処理中断条件を満たしていない場合は、前記プログラムの再起動更新処理を行い、
前記再起動更新処理中断条件を満たしている場合は、前記プログラムの再起動更新処理を中断することを特徴とする車載機。
【請求項６】
請求項５に記載の車載機において、
前記車の状態取得手段が取得した車の状態は、更に、車の電源の状態を含み、前記再起動更新処理中断条件とは、前記電源の状態がＡＣＣ＿ＯＦＦ状態ではない、ことを特徴とする車載機。
【請求項７】
請求項１から６のいずれか一に記載の車載機であって、
前記車載機は、さらに、前記プロセッサの負荷取得手段を備え、
前記更新処理手段は、取得した前記プロセッサの負荷が６０％未満、または、前記車の状態取得手段が取得した当該車の状態が、前記更新処理中断条件を満たしていない場合は、前記プログラムの更新処理を行い、
取得した前記プロセッサの負荷が６０％以上、または、前記更新処理中断条件を満たしている場合は、前記プログラムの更新処理を中断することを特徴とする車載機。
【請求項８】
請求項１から７のいずれか一に記載の車載機であって、
前記更新データ取得手段として、無線／有線通信インタフェースまたは可搬型メモリが接続されるインタフェースを備えることを特徴とする車載機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載機のオンライン更新方法に関する。
【背景技術】
【０００２】
従来の、ソフトウェアのオンライン更新機能を持たない車載機では、市場に出てしまうと、ソフトウェアの機能更新や不具合修正は困難であった。具体的には、従来の車載機の機能更新は、更新用のCDやSDメモリカードを販売、配布するため、ユーザ登録をされていないユーザや中古車を利用している人には行き渡らないという課題があった。また、郵送による更新の通知や、CDやSDメモリカード配送のため時間がかかっていた。
【０００３】
これらの課題を解決する方法として、ネットワークを介してプログラムをダウンロードしてプログラムの更新を行うオンライン更新と呼ばれる方法がある。例えば、特開２００３−１２２５７５号公報（特許文献１）にあるようなオンライン更新の仕組みを利用すると、オンライン更新機能を備えた車載機の更新は、ネットワークを介してネットワークに繋がった全ての車載機に通知できる。さらに、通知を受け取った車載機のユーザが更新の要求をすれば即座に更新を開始でき通知や配送に時間がかからない。この様にプログラムおよびデータをダウンロードして更新するオンライン更新機能を備えた車載機では、プログラムとデータの更新を行う時間や場所を選ばずにすみ、更新が容易になる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１２２５７５号公報（段落０００２〜００１１）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１には、ファームウェア・アプリケーションをダウンロードして更新する仕組みが記載されている。特許文献１の様なオンライン更新機能を車載機に備えると、時間や場所を選ばず、更新が容易になる。しかし、更新にかかる車載機の再起動など、車載機が本来の機能を果たせない期間が増え、ユーザを待たせてしまう機会が多くなる。
【０００６】
例えば、起動前に起動対象のファームウェアのチェックサムなどの検証をすると、その検証期間中はユーザにサービスを提供するプログラムは起動せずユーザを待たせてしまう。さらに、検証の後に更新を始めると、更新期間中もユーザはその処理の完了を待たなければならない。
【０００７】
また、車載機に供給される電力は不安定である。ダウンロードや更新中に電力の供給が停止した場合、不正なデータが残るため、起動処理時などに、そのチェックや復旧のための処理が必要となりユーザを待たせる期間が増える。
【０００８】
大容量の記憶装置は、書込単位が大きく、その書込に失敗するとペナルティが大きい。例えば、ハードディスクでは、５１２バイトから４Ｋバイトの単位でデータを取り扱う。フラッシュメモリの様な不揮発メモリでは、その単位は年々大きくなる傾向にある。特に多値記憶をするフラッシュメモリでは、多値記憶をするメモリセルを複数のアドレスで共有しているため、一つのアドレスの書込単位ブロックへの書込失敗が他のブロックのデータを破壊してしまう場合がある。このため、書込失敗は多くのデータを失う事になる。例えば、ダウンロードデータの書き込みに失敗し、１２８Ｋバイトのブロックのデータを失うと、６４Ｋｂｐｓの回線では、少なくとも１６秒の再送処理が必要となる。
【０００９】
また、動作中のプログラムが利用しているデータやプログラムの更新などをする場合は、車載機の再起動を必要とする場合がある。
【００１０】
これは、更新によって動作中のプログラムと、更新対象の記憶装置内のプログラムやデータの間で不整合が発生するためである。この再起動の必要な更新処理を、ダウンロードや更新の前処理が完了した直後に実行すると、いったん車載機を停止させてしまうため、車載機の提供すべきサービスを提供できない期間ができてしまう。起動時に再起動の必要な更新処理を実行する方法もある。しかし、この方法は、車載機のサービスを提供するプログラムが起動するまでの時間が長くなり、ユーザを待たせてしまう。
【課題を解決するための手段】
【００１１】
そこで、本明細書では、ユーザを待たせず、電源電圧の安定している期間を選択して、着実に更新が進む仕組みが開示される。
【００１２】
本明細書で開示される一例は、以下に説明するダウンロードまたは更新処理の中断と再開の制御である。すなわち、電源の不安定な期間の到来を予測し、ダウンロードおよび更新処理を中断する。そして、電源の安定な期間の継続が予測できるタイミングで中断した処理を再開することによってダウンロードおよび更新処理を電源が安定している期間に行う。
【００１３】
車の電源の状態は、エンジンが動いておらず、わずかな電流で動作するセキュリティ装置や学習の必要な車載機、ＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ Ｕｎｉｔ）のみに通電するＡＣＣ＿ＯＦＦ状態、走行に直接必要の無いオーディオなどのアクセサリ機器に通電するＡＣＣ＿ＯＮ状態、エンジンを始動させるため補助モータに通電しているＳＴＡＲＴ状態、エンジンが動き発電機から給電されバッテリを充電しているＯＮ状態に分類される。
【００１４】
なお、ＡＣＣとは、エンジンキーや、エンジンスタートボタンの状態で、ＯＮ／ＯＦＦが制御される電源をさす。なお、エンジンキーや、エンジンスタートボタンの状態に係わらず電力供給する電源として、＋Ｂと呼ばれる電源がある。
【００１５】
これら４つの状態のうち、車載機の電源が不安定となる期間は、エンジンを始動させる補助モータが回転するため電源電圧が低下するＳＴＡＲＴ状態の期間である。電圧低下予測手段によってこの期間を予測し、中断再開のタイミングを決定する。具体的には、走行中と停車後のＡＣＣ＿ＯＮ、ＡＣＣ＿ＯＦＦ期間中を電源が安定な期間と判断し、車速がゼロで制動用ブレーキが作動していることを検出し、エンジンを始動させるＳＴＡＲＴ状態に遷移することを予測する。
【００１６】
ダウンロードを走行中と停車後のＡＣＣ＿ＯＮ、ＡＣＣ＿ＯＦＦ期間中に行い、停車時に制動用ブレーキの作動を検出すると、ダウンロードを中断し、電源電圧が低下するＳＴＡＲＴ期間に入る前に、処理中の書き込みを完了する。ダウンロードを完了すると更新処理を開始する。
【００１７】
再起動が必要な更新処理の場合は、ダウンロードプログラム・データを、不揮発性の記憶装置に書き込む更新プログラムを実行するための再起動を、停車後のＡＣＣ＿ＯＦＦ期間中に行い、制動用ブレーキの作動を検出すると、更新を中断し、電源電圧が低下するＳＴＡＲＴ期間に入る前に、処理中の書き込みを完了する。ＳＴＡＲＴ後のＯＮ期間では、通常プログラムを実行し、再び停車後のＡＣＣ＿ＯＦＦ期間に入った時点、更新プログラムを起動し、更新処理を再開する。
【発明の効果】
【００１８】
本発明によれば、ユーザを待たせず、電源電圧の安定している期間を選択して、着実に更新が進む仕組みを提供することができる。
【００１９】
上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００２０】
【図１】車載機のオンライン更新システムの構成図の例である。
【図２】車載機の電源状態遷移図の例である。
【図３】車載機の電源状態と供給電圧の説明図の例である。
【図４】更新処理部の動作を説明するフローチャートの例である。
【図５】更新進捗データ構成の説明図の例である。
【図６】中断再開検出部の動作を説明するフローチャートの例である。
【図７】再起動処理を含む車載機のオンライン更新システムの構成図の例である。
【図８】再起動処理を含む更新処理部の動作を説明するフローチャートの例である。
【図９】再起動更新を含む更新処理を考慮した更新進捗データ構成の説明図の例である。
【図１０】車載機の電源状態と供給電圧状況と車載機の負荷変動の説明図の例である。
【図１１】プロセッサ負荷を考慮した中断再開検出部の動作を説明するフローチャートの例である。
【発明を実施するための形態】
【００２１】
以下、実施例を図面を用いて説明する。
【実施例１】
【００２２】
本実施例では、車載機のオンライン更新を行うシステムの例を説明する。
【００２３】
図１は、本実施例のオンライン更新システムの構成図の例である。
【００２４】
本実施例のオンライン更新システムは、車載機１００、車載機１００を搭載する車１０１、車載機の更新プログラムを配布するセンタ端末１０２、センタ端末１０２と車載機１００をつなぐネットワーク１０３から構成される。
【００２５】
車載機１００は、プロセッサ１０４、メモリ１０５、不揮発性の記憶装置１０６、通信により他端末とデータの送受信を行う通信インタフェース１０７、視聴者やオペレータ等との入出力を司る入出力装置１０８（ディスプレイ、スピーカ、タッチパネル、キー等）、車の状態取得インタフェース１０９、電源インタフェース１１０を含み、これらはバス等の通信線１１１により接続される。
【００２６】
プロセッサ１０４は、記憶装置１０６に格納されるプログラム１１２をメモリ１０５に読み込み、実行することにより、種々の処理を行う。これらのプログラムやデータは、予め記憶装置１０６に格納しておいてもよいし、ＣＤ−ＲＯＭ等の記憶媒体から入力してもよいし、ネットワーク経由で他の装置からダウンロードしてもよい。又、該プログラムにより実現される機能を、専用のハードウェアにより実現してもよい。
【００２７】
不揮発性の記憶装置１０６は、起動フラグ１１３、サービスプログラムＡ（以下、プログラムＡという）格納領域アドレス１１４、サービスプログラムＢ（以下、プログラムＢという）格納領域アドレス１１５、更新フラグ１１６、更新進捗１１７、中断フラグ１１８、プログラムＡ１１９、プログラムＢ１２０、更新プログラム１２１を格納する。記憶装置１０６は、固定的なＲＯＭ用途のフラッシュメモリ、ストレージ用途のフラッシュメモリのみでは無く、持ち運び可能なメモリ(ＳＤメモリ／ＵＳＢメモリ)、持ち運び可能なＨＤＤ、ＣＤ、ＤＶＤ、ＢＤディスクなどを、車載機１００が起動時に格納領域の中から単一または複数の記憶域を選択して参照可能としてよい。つまり、記憶領域は複数の記憶装置からなっていてもよい。
【００２８】
以下に説明する機能は、プロセッサ１０４が上記各プログラムを実行することにより実現されるが、説明の便宜上、各プログラムを実行主体として説明する。
【００２９】
起動フラグ１１３は、起動時にプロセッサ１０４が読み込むプログラムと更新対象となるプログラムを指示する。具体的には、起動時に関して利用する場合、プロセッサ１０４が、プログラムＡ１１９を読み込んで実行するか、プログラムＢ１２０を読み込んで実行するかを指示している。また、本実施例の更新方法は起動に利用しないプログラムの格納されている領域を書き換え新しくする。つまり、起動フラグ１１３が、プログラムＡ１１９を指していれば、プログラムＢ１２０の格納されている領域を書き換え更新し、プログラムＢ１２０を指していれば、プログラムＡ１１９の格納されている領域を書き換え更新する。
【００３０】
プログラムＡ格納領域アドレス１１４は、プログラムＡ１１９を格納するアドレスを示す。車載機１００が起動するとき、起動フラグ１１３が、プログラムＡ１１９を指している場合、プロセッサ１０４は、プログラムＡ格納領域アドレス１１４の指しているアドレスからプログラムＡ１１９を読み出し、メモリ１０５に格納して、実行する。また、車載機１００の更新をするとき、起動フラグ１１３が、プログラムＢ１２０を指している場合、プロセッサ１０４によって実行される、更新プログラム１２１は、プログラムＡ格納領域アドレス１１４の指しているアドレスのプログラムおよびデータを書き換えて更新する。
【００３１】
プログラムＢ格納領域アドレス１１５は、プログラムＢ１２０を格納するアドレスを示す。車載機１００が起動するとき、起動フラグ１１３が、プログラムＢ１２０を指している場合、プロセッサ１０４は、プログラムＢ格納領域アドレス１１５の指しているアドレスからプログラムＢ１２０を読み出し、メモリ１０５に格納して、実行する。また、車載機１００の更新をするとき、起動フラグ１１３が、プログラムＡ１１９を指している場合、プロセッサ１０４によって実行される、更新プログラム１２１は、プログラムＢ格納領域アドレス１１５の指しているアドレスのプログラムおよびデータを書き換えて更新する。
【００３２】
更新フラグ１１６は、更新中か更新完了の更新状態を示す。この更新フラグ１１６がオンになっている場合、車載機１００は更新中である事を表し、オフになっている場合は、更新が完了していることを表す。車載機１００は、起動するとこのフラグを確認する。この更新フラグ１１６がオンになっていれば、前回、車載機１００が停止したときに、更新処理を中断し継続して処理すべき更新処理が残っていることが分かる。つまり、この更新フラグ１１６を確認することによって、中断した更新の有無を判断できる。
【００３３】
更新進捗１１７は、オンライン更新システムの更新処理の進捗の記録である。
この更新進捗１１７に更新プログラム１２１がその処理の進捗を記録しながら処理を進める。このため、更新処理が中断しても、更新進捗１１７を参照すれば更新処理を継続して再開できる。本実施例の更新プログラム１２１の更新処理部１２２の処理は、大きくダウンロード処理とプログラム更新処理の二つに分かれる。これに合わせ、更新進捗１１７は、図５の更新進捗データ構成の説明図の例に示す様に、実行中更新処理１１７−１０、ダウンロード処理進捗１１７−２０、プログラム更新処理進捗１１７−３０の情報を記録する。
【００３４】
実行中更新処理１１７−１０は、実行中の更新処理がダウンロード処理であるか、プログラム更新処理であるかを示す。
【００３５】
ダウンロード処理進捗１１７−２０は、ダウンロードサーバ１１７−２１、ダウンロードファイル１１７−２２、ダウンロードファイル書込完了バイト数１１７−２３の情報を含む。ダウンロードサーバ１１７−２１は、更新ファイルを配信しているサーバであるセンタ端末１０２のアドレスを記録する。ダウンロードファイル１１７−２２は、センタ端末１０２より配信さ、車載機１００がダウンロードするダウンロードファイル情報を記録する。ダウンロードファイル書込完了バイト数１１７−２３は、車載機１００がダウンロードファイル１１７−２２の示しているファイルをダウンロードし、記憶装置１０６に書込完了したバイト数を記録する。
【００３６】
プログラム更新処理進捗１１７−３０は、プログラム更新ファイル１１７−３１と、プログラム更新ファイル書込完了バイト数１１７−３２を含む。プログラム更新ファイル１１７−３１は、実行可能プログラムとして、記憶装置１０６に書き込む処理対象ファイルを記録する。プログラム更新ファイル書込完了バイト数１１７−３２は、ダウンロードファイルから更新データを取り出し、実行可能プログラムとして記憶装置１０６に書込完了したバイト数を記録する。
【００３７】
中断フラグ１１８は、更新プログラム１２１の中断再開検出部１２３から、更新処理部への中断、再開指示を記録する。中断フラグ１１８がオンになっている場合は、中断再開検出部１２３から更新処理部１２２に中断指示が出ている事を示す。中断フラグ１１８がオフになっている場合は、中断再開検出部１２３から更新処理部１２２に再開指示が出ている事を示す。
【００３８】
プログラムＡ１１９は、車載機１００のファームウェア、ＯＳ、ドライバ、アプリケーションプログラムなど車載機１００の機能を実現するプログラムである。車載機１００の起動時に、起動フラグ１１３がプログラムＡを指している場合、プログラムＡ１１９が実行される。また、車載機１００を更新するとき、起動フラグ１１３がプログラムＢを指している場合、更新プログラム１２１は、プログラムＡ１１９を更新する。
【００３９】
プログラムＢ１２０は、車載機１００のファームウェア、ＯＳ、ドライバ、アプリケーションプログラムなど車載機１００の機能を実現するプログラムである。車載機１００の起動時に、起動フラグ１１３がプログラムＢを指している場合、プログラムＢ１２０が実行される。また、車載機１００を更新するとき、起動フラグ１１３がプログラムＡを指している場合、更新プログラム１２１は、プログラムＢ１２０を更新する。
【００４０】
更新プログラム１２１は、車載機１００の更新を行うプログラムであり、更新処理部１２２と中断再開検出部１２３を含む。
【００４１】
更新処理部１２２の動作は、図４のフローチャートに従い、通信インタフェース１０７、ネットワーク１０３を介して、センタ端末１０２より更新ファイルをダウンロードして、更新プログラムを記憶装置１０６に書き込む。また、更新処理部１２２は、記憶装置１０６に記録された情報を参照しながら、プログラムＡ１１９または、プログラムＢ１２０を更新する。この更新処理部１２２は、中断再開検出部１２３によって更新される、中断フラグ１１８を確認しながら処理を進め、中断フラグ１１８がオンになっている場合、処理中のデータの書き込みと、更新進捗１１７の更新を完了してから処理を中断する。これによって、電源電圧の不安定な期間や、ユーザを待たせてしまう期間には、更新処理を行わない制御が出来る。つぎに、車載機１００の動作中に、中断フラグ１１８がオフになった場合、更新進捗１１７に記録された処理の続きを再開する。車載機１００が再起動した場合も、同様に更新進捗１１７を参照して、中断した処理の続きを再開する。この様に、本実施例のオンライン更新システムは、中断によって書込中のデータを失う事の無いように中断と再開を繰り返しながら更新処理をすすめる。
【００４２】
中断再開検出部１２３は、図６のフローチャートに従い、車の状態取得インタフェース１０９から制動用ブレーキ状態と、車速および／またはパーキング（駐車用）ブレーキ状態と、を取得し、電源インタフェース１１０から電源状態を取得する。取得結果から、供給電力が不安定になる可能性の高い状態を検出すると中断フラグ１１８をオンにし、供給電力が安定である可能性が高く、ユーザを待たせる可能性の低い状態を検出すると中断フラグ１１８をオフにする。
【００４３】
通信インタフェース１０７は、車載機外のサーバ、他端末と通信するためのインタフェースである。通信インタフェース１０７は、無線通信インタフェースであっても、有線通信インタフェースであってもよい。状況によって両方利用しても良い。例えば、停車中は有線通信インタフェースを利用し、走行中は無線通信インタフェースを利用する。一般に有線通信インタフェースは、無線通信インタフェースより高速である。このため、有線通信インタフェースを利用すると、ダウンロード時間を短縮出来る。
【００４４】
入出力装置１０８は、車載機のユーザ、視聴者やオペレータからの入力を受け取る、キー、タッチパネル、トラックボールなどのポインティングデバイスと、ユーザ、視聴者、オペレータに対する出力をするディスプレイ、スピーカ、ＬＥＤ等のライトなどを含む。入出力装置１０８によって、車載機１００のユーザは、更新プログラム１２１を動作させるなどの指示を行え、更新プログラム１２１の更新処理の進捗を確認することが出来る。
【００４５】
車の状態取得インタフェース１０９は、車１０１より、制動用ブレーキ状態、車速、パーキングブレーキ状態を受け取るインタフェースである。
【００４６】
電源インタフェース１１０は、車１０１より、ＡＣＣと＋Ｂの２種類の電源信号を受けとり、車載機１００に電力を供給する。
電源は、図２に示す４つの状態をとり、電源インタフェース１１０は、４つの状態のうちＡＣＣ＿ＯＦＦ状態を検出する。
【００４７】
車１０１は、車載機１００を搭載する車である。例えば、ガソリン自動車、電気自動車、ディーゼル自動車、燃料電池自動車、自動二輪車、三輪自動車、動力付自転車などがある。車１０１は、車載機１００に電力を供給する電源を備え、ブレーキ状態、車速、パーキングブレーキ状態など車１０１の状態を取得し車載機１００に通知する装置を備える。
【００４８】
センタ端末１０２は、車載機１００に更新プログラムを配信するサーバである。車載機１００に対して、更新可能なプログラムの通知と、車載機１００からのダウンロード要求に従って、更新ファイルの送信を行う。
【００４９】
ネットワーク１０３は、車載機１００とセンタ端末１０２をつなぐネットワークである。携帯電話網、IEEE 802.11シリーズを利用した無線通信／ IEEE 802.16シリーズを利用した無線通信／ IEEE 802.15シリーズを利用した無線通信／UWB等の無線通信網、有線通信網のいずれかであっても、これらを組み合わせたネットワークであっても良い。
【００５０】
図２は、本実施例の車載機の電源状態遷移図の例である。車１０１より車載機１００に供給される電源の状態は、ＡＣＣ＿ＯＦＦ２００、ＡＣＣ＿ＯＮ２０１、ＳＴＡＲＴ２０２、ＯＮ２０３の４つの状態をとる。電源状態の遷移は、ＡＣＣ＿ＯＦＦ２００からＡＣＣ＿ＯＮ２０１、ＡＣＣ＿ＯＮ２０１からＳＴＡＲＴ２０２または、ＡＣＣ＿ＯＦＦ２００、ＳＴＡＲＴ２０２からＯＮ２０３、ＯＮ２０３からＡＣＣ＿ＯＮ２０１がある。
【００５１】
ＡＣＣ＿ＯＦＦ２００は、車１０１のエンジンは停止しており、車載機１００に電力は供給されない状態である。ＡＣＣ＿ＯＦＦ２００の状態では、車載機１００はユーザに目的地までの経路案内などのサービスを提供しない。ＡＣＣ＿ＯＦＦ２００の状態では、車１００のエンジンが停止しているため発電をしておらずバッテリの電圧である約１２Ｖが＋Ｂに供給される。
【００５２】
ＡＣＣ＿ＯＮ２０１は、車１０１のエンジンは停止しており、車載機１００に電力が供給される状態である。ＡＣＣ＿ＯＮ２０１の状態では、車載機１００はユーザにサービスを提供する。ＡＣＣ＿ＯＮ２０１の状態では、車１００のエンジンが停止しているため発電しておらずバッテリの電圧である約１２Ｖが＋ＢとＡＣＣに供給される。
【００５３】
ＳＴＡＲＴ２０２は、車１０１のエンジンをスタートさせるスタータが動くため、車載機１００に供給される電力が不安定な状態である。状況によっては、ＡＣＣ、＋Ｂに供給される電源電圧は約６Ｖから約５Ｖまで低下する。
【００５４】
ＯＮ２０３は、車１０１のエンジンが動き、車載機１００に電力が供給される状態である。ＯＮ２０３の状態では、車載機１００はユーザにサービスを提供する。ＯＮ２０３の状態では、車１００のエンジンが動いているため発電機からバッテリへの充電電圧である約１３ＶがＡＣＣ、＋Ｂに供給される。
【００５５】
ユーザが車１０１に乗り込み車載機１００を起動するときＡＣＣ＿ＯＦＦ２００、ＡＣＣ＿ＯＮ２０１、ＳＴＡＲＴ２０２、ＯＮ２０３と遷移する場合が多い。この場合、ＡＣＣ＿ＯＮ２０１の状態とＳＴＡＲＴ２０２の状態を取る期間は短い場合が多い。このため、ＡＣＣ＿ＯＮ２０１状態で、車載機１００は起動し始め、起動途中で、電力の状態がＳＴＡＲＴ２０２で不安定になる為停止し、ＯＮ２０３で再び起動する場合がある。
【００５６】
また、ユーザが車１０１を停車させ、車１０１からおりるため車載機１００を停止させる時ＯＮ２０３、ＡＣＣ＿ＯＮ２０１、ＡＣＣ＿ＯＦＦ２００と遷移する場合が多い。この場合ＡＣＣ＿ＯＮ２０１を取る期間は短い場合が多い。しかし、ＡＣＣ＿ＯＮ２０１から取り得る遷移はＡＣＣ＿ＯＦＦ２００だけでは無くＳＴＡＲＴ２０２もある。ユーザがいったん止めたエンジンをスタートさせるため短時間でＡＣＣ＿ＯＮ２０１からＳＴＡＲＴ２０２に遷移するため、車載機１００に供給される電力は不安定になる。
【００５７】
ＡＣＣ＿ＯＦＦ２００の状態である期間には車載機１００は所定のサービスを提供しないため、更新などの処理を行ってもユーザを待たせることがないが、更新処理中にＳＴＡＲＴ２０２への遷移が起こると供給される電力が不安定になり、記憶装置１０６への書込が正常に行えない状況が発生する課題がある。同様にＡＣＣ＿ＯＮ２０１の状態でユーザへのサービス提供と並行して更新を行う事も考えられるが、ＳＴＡＲＴ２０２への遷移で、記憶装置１０６への書込が正常に行えず、更新が進まない課題がある。
【００５８】
図３は、本実施例の車載機の電源状態と供給される電圧の説明図の例である。これは、ユーザが停車している車１０１に乗り込み、エンジンをスタートさせ、移動後し、停車後、エンジンを停止し車１０１から降りる場合の電源電圧の変化を示している。電源の状態はＡＣＣ＿ＯＦＦ２００，ＡＣＣ＿ＯＮ２０１、ＳＴＡＲＴ２０２、ＯＮ２０３、ＡＣＣ＿ＯＮ２０１、ＡＣＣ＿ＯＦＦ２００の順に遷移する。この場合、ＡＣＣ＿ＯＮ３０１とＡＣＣ＿ＯＮ３０４の期間は短いケースが多い。
【００５９】
ＡＣＣ＿ＯＦＦ３００、ＡＣＣ＿ＯＦＦ３０５の期間は、ＡＣＣ＿ＯＦＦ２００の状態であり、＋Ｂへは約１２Ｖが供給され、ＡＣＣには供給されない。ＡＣＣ＿ＯＮ３０１、ＡＣＣ＿ＯＮ３０４の期間は、ＡＣＣ＿ＯＮ２０１の状態であり、＋Ｂ、ＡＣＣ共に約１２Ｖが供給される。ＳＴＡＲＴ３０２の期間は、ＳＴＡＲＴ２０２の状態であり、供給される電力が不安定な期間で、＋Ｂ、ＡＣＣ共に約６Ｖから５Ｖが供給される。
【００６０】
図４は、更新処理部１２２の動作を説明するフローチャートの例である。更新プログラム１２１の更新処理部１２２と中断再開検出部１２３は、車載機１００起動後、車載機１００のサービスを提供するプログラムＡ１１９または、プログラムＢ１２０と並行して実行される。更新プログラム１２１は、通信インタフェース１０７、ネットワーク１０３を介してセンタ端末１０２に接続し、更新プログラムの有無を確認する。更新プログラムがあった場合、実行中更新処理１１７−１０、ダウンロード処理進捗１１７−２０、プログラム更新処理進捗１１７−３０の初期値を設定し、更新フラグ１１６をたてて（オンにして）、更新中を示す状態にして、更新処理部１２２の処理をスタートさせる。
【００６１】
まず、ステップ４０１で更新フラグ１１６を確認し、更新フラグ１１６がオンになっており更新を示していればステップ４０２に進み、更新フラグがオフであり新しい更新がない場合は終了する。
【００６２】
ステップ４０２では、更新進捗１１７の実行中更新処理１１７−１０を確認し、ダウンロード処理中であればステップ４０３に進み、プログラム更新処理中であればステップ４０８に進む。
【００６３】
ステップ４０３では、中断フラグ１１８を確認し、中断フラグ１１８がオンになっており中断を指示されている場合は、中断が解除されるまで、ステップ４０３で中断フラグ１１８の確認を続ける。中断フラグ１１８がオフになっており中断が解除されている場合は、ステップ４０４に進む。
【００６４】
ステップ４０４では、更新進捗１１７のダウンロード進捗１１７−２０のダウンロードサーバ１１７−２１の示すサーバからダウンロードファイル１１７−２２の示すファイルの１ブロックを要求して受信する。１ブロックの受信が完了するとステップ４０５に進む。
【００６５】
ステップ４０５では、ステップ４０４で受信した１ブロックのデータを更新進捗１１７のダウンロード進捗１１７−２０のダウンロードファイル書込完了バイト数１１７−２３の示す記憶装置１０６の書込場所に書き込む。この場所は、起動フラグ１１３が、プログラムＡを指している場合は、プログラムＢ１２０の格納されている領域で、ダウンロードファイル書込完了バイト数１１７−２３の示すバイト数分進んだ場所である。書込が完了すると、ステップ４０６に進む。
【００６６】
ステップ４０６では、ダウンロード処理進捗１１７−２０のダウンロードファイル書込完了バイト数１１７−２３を更新し、中断した場合も、ダウンロードサーバ１１７−２１の示すサーバからダウンロードファイル１１７−２２の示すファイルのダウンロードファイル書込完了バイト数１１７−２３分進んだ位置のデータを要求できるようにする。
【００６７】
ステップ４０７では、ダウンロードファイル１１７−２１の示すファイルのサイズとダウンロードファイル書込バイト数１１７−２３を比較し、ダウンロードの完了を確認する。完了していなければ、ステップ４０３に戻りダウンロード処理を継続し、完了していれば実行中更新処理１１７−１０をプログラム更新処理に変更して、ステップ４０８に進み、プログラム更新処理を開始する。
【００６８】
ステップ４０８では、中断フラグ１１８を確認し、中断フラグ１１８がオンになっており中断を指示されている場合は、中断が解除されるまで、ステップ４０８で中断フラグ１１８の確認を続ける。中断フラグ１１８がオフになっており中断が解除されている場合は、ステップ４０９に進む。
【００６９】
ステップ４０９では、更新進捗１１７のプログラム更新処理進捗１１７−３０のプログラム更新ファイル１１７−３１の示すファイルの１ブロックから実行可能なプログラムを構築する。１ブロックの構築が完了するとステップ４１０に進む。
【００７０】
ステップ４１０では、ステップ４０９で構築したプログラムの１ブロックのデータを更新進捗１１７のプログラム更新処理進捗１１７−３０のプログラム更新ファイル書込完了バイト数１１７−３２の示す記憶装置１０６の書込場所に書き込む。この場所は、起動フラグ１１３が、プログラムＡを指している場合は、プログラムＢ１２０の格納されている領域で、プログラム更新ファイル書込完了バイト数１１７−３２の示すバイト数分進んだ場所である。書込が完了すると、ステップ４１１に進む。
【００７１】
ステップ４１１では、プログラム更新処理進捗１１７−３０のプログラム更新ファイル書込完了バイト数１１７−３２を更新し、中断した場合も、プログラム更新ファイル１１７−３１の示すファイルのプログラム更新ファイル書込完了バイト数１１７−３２分進んだ位置のデータの構築から再開できるようにする。
【００７２】
ステップ４１２では、プログラム更新ファイル１１７−３１とプログラム更新ファイル書込完了バイト数１１７−３２を比較し、プログラム更新処理の完了を確認する。完了していなければ、ステップ４０８に戻りプログラム更新処理を継続し、完了していれば処理を終了する。
【００７３】
図６は、中断再開検出部１２３の動作を説明するフローチャートの例である。このフローチャートは、プログラムの更新処理開始時に開始し、プログラム更新処理完了を条件に終了する。
【００７４】
ステップ５０１では、電源インタフェース１１０より、電源状態を取得する。つぎにステップ５０２で、車の状態取得インタフェース１０９より、制動用ブレーキ状態、車速、パーキングブレーキ状態を取得する。ステップ５０３では、ステップ５０１、ステップ５０２で取得した電源状態、車の状態より、次の中断条件１が成り立っているか判定する。
中断条件１：車速がゼロ、かつ、制動用ブレーキが作動している。
中断条件が成り立っていればステップ５０４で、中断フラグ１１８をたて、成り立っていなければステップ５０５で中断フラグをおろし、ステップ５０６に進む。ステップ５０６では、更新フラグ１１６を確認し、更新処理が完了していれば終了し、更新中であればステップ５０１に戻り、処理を継続する。
【００７５】
ユーザが車載機１００の電源状態をＳＴＡＲＴ２０２に遷移させる場合、通常の運用では、車１０１は停車しており、ユーザは制動用ブレーキを作動させてからその操作を行う。このため、中断条件１で更新処理を中断すれば、ＳＴＡＲＴ２０２に遷移する前に、記憶装置１０６に書き込みを完了させ更新処理を中断させることができる。また、ＯＮ２０３状態になれば、ユーザは制動用ブレーキから足をはなす。つまり、ＳＴＡＲＴ２０２の状態から抜けてから中断条件１が成り立たなくなる為、電源の状態が安定している期間であるＡＣＣ＿ＯＦＦ３００、ＡＣＣ＿ＯＮ３０１、ＯＮ３０３、ＡＣＣ＿ＯＮ３０４、ＡＣＣ＿ＯＦＦ３０５の期間を利用して、着実に更新処理を進め、記録装置１０６への書き込み失敗に伴う再処理などで更新時間が長くなりユーザを待たせることが無くなる。この中断条件１は、信号で停止してアイドリングストップする場合にも同様に働くため、アイドリングストップにも有効である。
【００７６】
中断条件１を次の様な判定条件に変更しても同じ効果が得られる。
中断条件２：パーキングブレーキがかけられている、かつ、制動用ブレーキが作動している。
中断条件３：電源の状態が、ＡＣＣ＿ＯＦＦ２００状態、または、ＡＣＣ＿ＯＮ２０１状態の何れかの状態、かつ、制動用ブレーキが作動している。
【００７７】
また、これらの中断条件１、中断条件２、中断条件３何れかの条件が成り立っている事を中断条件としても良い。
【００７８】
ＡＣＣ＿ＯＮ３０１の期間、ＯＮ３０３の期間、ＡＣＣ＿ＯＮ３０４の期間は、車載機１００の提供するサービスと並行して更新を行うため、サービスを提供するプログラムＡ１１９または、プログラムＢ１２０の実行速度が低下する場合がある。
【００７９】
このような場合は、次の中断条件４に切り替えれば、更新処理は、上記期間を除く、ＡＣＣ＿ＯＦＦ３０５、ＡＣＣ＿ＯＦＦ３００の期間に実行されるため、車載機１００の提供するサービスの性能に影響を与えることは無くなる。
中断条件４：電源の状態がＡＣＣ＿ＯＦＦ２００状態ではない
本実施例では、通信インタフェース１０７、センタ端末１０２から更新データを取得し、記憶装置１０６のプログラムを更新する場合について述べたが、持ちは混み可能な持ち運び可能なメモリ(ＳＤメモリ／ＵＳＢメモリ)、持ち運び可能なＨＤＤ、ＣＤ、ＤＶＤ、ＢＤディスクなどから更新データを取得しても同様である。
【００８０】
また、起動フラグ１１３は、プログラムＡ１１９、プログラムＢ１２０の二つのプログラムでは無く、任意の数の起動プログラムから選択出来てもよい。この様にすると、複数バージョンのプログラムを保存できる。また、用途の異なる複数プログラムを選択することもできる。
【００８１】
さらに、プログラムＡ１１９、プログラムＢ１２０の内容に更新プログラム１２１が含まれても良い。この様にすると更新プログラム１２１の更新も可能となる。
【実施例２】
【００８２】
本実施例では、再起動処理を含むオンライン更新を行うシステムの例を説明する。
【００８３】
図７は、実施例２における再起動処理を含む車載機のオンライン更新システムの構成図の例である。図１の車載機のオンライン更新システムのうち、既に説明した図１に示された同一の符号を付された構成と、同一の機能を有する部分については、説明を省略する。
【００８４】
起動フラグ１１３は、プログラムＡ１１９とプログラムＢ１２０に加え、更新プログラム１２１を選択出来る。更新プログラム格納領域アドレス６０１は、更新プログラム１２１の格納されているアドレスを示す。この様にすると、再起動時に起動フラグ１１３が更新プログラム１２１を指していると、更新プログラム格納領域アドレス６０１を参照して、更新プログラム１２１を実行出来る。
【００８５】
更新進捗１１７には、再起動更新処理の進捗も記録するため、実行中更新処理１１７−１０は、図９の再起動更新を含む更新処理を考慮した更新進捗データ構成の説明図の例に示す様に、ダウンロード処置と、プログラム更新処理に加え、再起動更新処理も示す様になる。また、更新進捗１１７に再起動更新処理進捗１１７−４０が追加される。再起動更新処理進捗１１７−４０の情報は、再起動更新ファイル１１７−４１と再起動更新ファイル書込完了バイト数１１７−４２を含む。
【００８６】
図８は、実施例２における再起動処理を含む更新処理部の動作を説明するフローチャートの例である。図４の更新処理部の動作を説明するフローチャートのうち、既に説明した図４に示された同一の符号を付されたステップと、同一の機能を有する部分については、説明を省略する。
【００８７】
ステップ４０２では、実行中更新処理１１７−１０を確認する。実行中更新処理１１７−１０が再起動更新処理であった場合、ステップ７０１を実行する。また、ステップ４１２でプログラム更新処理の完了が確認された場合、実行中更新処理１１７−１０を再起動更新処理として、ステップ７０１を実行する。
【００８８】
ステップ７０１では、中断フラグ１１８を確認し、中断フラグ１１８がオンになっており中断を指示されている場合は、中断が解除されるまで、ステップ７０１で中断フラグ１１８の確認を続ける。中断フラグ１１８がオフになっており中断が解除されている場合は、ステップ７０２に進む。
【００８９】
ステップ７０２では、更新進捗１１７の再起動更新処理進捗１１７−４０の再起動更新ファイル１１７−４１の示すファイルから再起動をしなければ更新できないプログラムのデータを構築する。１ブロックのデータを構築するとステップ７０３に進む。
【００９０】
ステップ７０３では、ステップ７０２で構築した１ブロックのデータを更新進捗１１７の再起動更新処理進捗１１７−４０の再起動更新ファイル書込完了バイト数１１７−４２の示す記憶装置１０６の書込場所に書き込む。この場所は、起動フラグ１１３が、プログラムＡを指している場合は、プログラムＢ１２０の格納されている領域で、ダウンロードファイル書込完了バイト数１１７−２３の示すバイト数分進んだ場所である。書込が完了すると、ステップ７０４に進む。
【００９１】
ステップ７０４では、再起動更新処理進捗１１７−４０の再起動更新ファイル書込完了バイト数１１７−４２を更新し、中断した場合も、再起動の必要な更新処理を再開できるようにする。
【００９２】
ステップ７０５では、再起動更新ファイル１１７−４１の示すファイルのサイズと再起動更新ファイル書込完了バイト数１１７−４２を比較し、再起動更新処理の完了を確認する。完了していなければ、ステップ７０１に戻り再起動更新処理を継続し、完了していれば更新処理を終了する。
【００９３】
これによって、他のプログラムの実行と並行して実行できない更新処理が出来るようになる。
【００９４】
ダウンロード処理とプログラム更新処理は中断条件１を利用し、再起動更新処理は中断条件４を利用すると、ダウンロード処理とプログラム更新処理は、供給電力が安定する、ＯＮ３０３、ＡＣＣ＿ＯＮ３０４、ＡＣＣ＿ＯＦＦ３０５、ＡＣＣ＿ＯＦＦ３００、ＡＣＣ＿ＯＮ３０１の期間を利用して更新を進め、再起動更新処理は、ＡＣＣ＿ＯＦＦ３０５、ＡＣＣ＿ＯＦＦ３００の期間を利用して実行される。ＡＣＣ＿ＯＮ３０１、ＯＮ３０３、ＡＣＣ＿ＯＮ３０４の期間に再起動をする、再起動中は車載機１００が提供すべきサービスを提供できなくなってしまい、ユーザを待たせてしまう。しかし、再起動更新処理の中断条件に中断条件４を用いることで、この様なユーザを待たせる期間を発生させずに更新処理ができる。
【実施例３】
【００９５】
本実施例では、電源の不安定な期間だけでなく、プロセッサ１０４の処理負荷の高い期間の更新処理中断も行えるオンライン更新システムの例を説明する。
【００９６】
図１０は、図３に、さらに車載機の負荷変動を加えて説明する図の例である。既に説明した図３に示された同一の符号を付された部分については、説明を省略する。
【００９７】
車載機１００のサービスはＡＣＣ＿ＯＮ３０１の期間から提供するため、ＡＣＣ＿ＯＦＦ３００からＡＣＣ＿ＯＮ３０１に変化したタイミングで起動する。このため、ＡＣＣ＿ＯＮ３０１の期間は負荷が高くなる。ＳＴＡＲＴ３０２の期間は電源の状態が不安定なため、起動処理中にＳＴＡＲＴ３０２の期間に入ると、車載機１００は停止する場合がある。
【００９８】
図１０では、ＳＴＡＲＴ３０２の期間、車載機１００が停止した例を示している。ＳＴＡＲＴ３０２の期間が終わり、電源の安定しているＯＮ３０３に移ると、ＳＴＡＲＴ３０２の期間で車載機１００が停止した場合は、再起動して負荷が高い期間８０１が始まる。起動が完了すると負荷の安定した期間８０２になる。ＡＣＣ＿ＯＮ３０４の期間は、ユーザから特に指示がない限り、低めの処理負荷となる。ＡＣＣ＿ＯＮ３０４からＡＣＣ＿ＯＦＦ３０５に変化すると、車載機１００は、更新処理が残っていなければ停止する。
【００９９】
車載機１００において起動時間は、ユーザを待たせる主な時間である。この期間に更新処理を並列に実行すると更にユーザを待たせてしまう場合がある。また、車載機１００の提供するサービスの処理実行中で処理負荷の高い期間はユーザを待たせている場合が多い。
【０１００】
図１１は、実施例３プロセッサ負荷を考慮した中断再開検出部の動作を説明するフローチャートの例である。図６の中断再開検出部の動作を説明するフローチャートのうち、既に説明した図６に示された同一の符号を付されたステップと、同一の機能を有する部分については、説明を省略する。
【０１０１】
ステップ９０１は、車載機１００のプロセッサ１０４の処理負荷を取得するステップである。ステップ５０３では、ステップ５０１、ステップ５０２で取得した電源状態、車の状態とステップ９０１で取得したプロセッサ１０４の負荷より、次の中断条件５が成り立っているか判定する。
中断条件５：プロセッサ負荷が６０％以上、または、中断条件１
中断条件５が成り立っていればステップ５０４で、中断フラグ１１８をオンにして、成り立っていなければステップ５０５で中断フラグをオフにし、ステップ５０６に進む。ステップ５０６では、更新フラグ１１６を確認し、更新処理が完了していれば終了し、更新中であればステップ５０１に戻り、処理を継続する。
【０１０２】
中断条件５を次の様な判定条件に変更しても同じ効果が得られる。
中断条件６：プロセッサ負荷が６０％以上、または、中断条件２
中断条件７：プロセッサ負荷が６０％以上、または、中断条件３
また、これらの中断条件５、中断条件６、中断条件７を組み合わせて判定しても良い。
【０１０３】
更新を中断するプロセッサ負荷の値を、この例では６０％としているが、対象とする車載機１００に適切な値とするとよい。この値をユーザが入出力装置１０８を利用して設定できるようにしても良い。この値をセンタ端末１０２から車載機１００に送るようにしても良い。
【０１０４】
本実施例の中断再開処理を実施例１の更新処理で利用すれば、プロセッサ１０４の処理負荷が安定している期間８０２、電源が安定してプロセッサ１０４の処理負荷が低いＡＣＣ＿ＯＮ３０４、ＡＣＣ＿ＯＦＦ３０５、ＡＣＣ＿ＯＦＦ３００、ＡＣＣ＿ＯＮ３０１の期間を使って、ダウンロード処理とプログラム更新処理を実行できる。
【０１０５】
本実施例の中断再開処理を実施例２の更新処理で利用すれば、プロセッサ１０４の処理負荷が安定している期間８０２、電源が安定してプロセッサ１０４の処理負荷が低いＡＣＣ＿ＯＮ３０４、ＡＣＣ＿ＯＦＦ３０５、ＡＣＣ＿ＯＦＦ３００、ＡＣＣ＿ＯＮ３０１の期間を使って、ダウンロード処理とプログラム更新処理を実行できる。再起動更新処理に関しては、中断条件４でＡＣＣ＿ＯＦＦ３０５とＡＣＣ＿ＯＦＦ３００の、再起動によりユーザを待たせる事の無い期間に実行出来る。
【０１０６】
この仕組みは、オンライン更新導入で増加する処理時間が起動時間に与える影響を小さくすることができる。これによって、車載機の抱える大きな課題である、ユーザを待たせる時間の短縮とプログラム更新の処理にかかる時間の短縮を実現することができる。
【符号の説明】
【０１０７】
１００  車載機
１０１  車
１０２  センタ端末
１０３  ネットワーク
１０４  プロセッサ
１０５  メモリ
１０６  不揮発性の記憶装置
１０７  通信インタフェース
１０８  入出力装置
１０９  車の状態取得インタフェース
１１０  電源インタフェース
１１１  通信線
【図１】
0005629927.tif 000002
【図２】
0005629927.tif 000003
【図３】
0005629927.tif 000004
【図４】
0005629927.tif 000005
【図５】
0005629927.tif 000006
【図６】
0005629927.tif 000007
【図７】
0005629927.tif 000008
【図８】
0005629927.tif 000009
【図９】
0005629927.tif 000010
【図１０】
0005629927.tif 000011
【図１１】
0005629927.tif 000012