(57)【特許請求の範囲】
【請求項１】
電子部品を備えた電子機器の組込プログラムを更新する方法であって、
前記組込プログラムの更新版データのうち、異なる種別および型番の前記電子部品を備えた複数の前記電子機器に共通して用いることのできる部分である共通更新データを取得する共通更新データ取得ステップと、
前記共通更新データと、複数の前記電子機器それぞれに適用する前記組込プログラムの更新版との間の差分データを一括して取得する差分データ取得ステップと、
前記共通更新データと前記差分データを用いて前記電子機器の組込プログラムを更新する手順を記述した更新手順データを取得するステップと、
前記電子部品の種別および型番を取得する型番取得ステップと、
前記型番取得ステップで取得した前記電子部品の種別と型番、前記共通更新データ、および前記差分データを用いて、前記更新手順データが記述している手順にしたがって前記電子機器の組込プログラムを更新する更新ステップと、
を有し、
前記更新手順データは、前記更新ステップにおいて実施すべき処理種別とその処理順番とを記述しており、
前記更新ステップにおいては、前記更新手順データが記述している前記処理種別に対応してあらかじめ規定されている処理を実施する
ことを特徴とする組込プログラム更新方法。
【請求項２】
前記更新手順データは、
前記電子機器が備えている前記電子部品の種別および型番と、前記差分データのうちいずれを用いるべきかとの対応関係を記述しており、
前記更新ステップでは、
前記更新手順データが記述している前記対応関係と、前記型番取得ステップで取得した前記電子部品の種別および型番とを用いて、前記差分データのうちいずれを用いるべきかを特定し、その差分データを用いて前記電子機器の組込プログラムを更新する
ことを特徴とする請求項１記載の組込プログラム更新方法。
【請求項３】
前記更新手順データは、
前記電子機器が備えている記憶装置のうち、前記組込プログラムを更新する際に一時的に前記共通更新データまたは前記差分データを保持するための記憶領域について、すでに更新完了した部分を解放すべき旨を指示する解放指示を記述しており、
前記更新ステップでは、
前記更新手順データが記述している前記解放指示にしたがって、前記電子機器が備えている記憶装置の記憶領域を解放する
ことを特徴とする請求項１または２記載の組込プログラム更新方法。
【請求項４】
前記更新手順データは、
前記電子機器が備えている記憶装置のうち、前記組込プログラムを更新する際に一時的に前記共通更新データまたは前記差分データを保持するための記憶容量が不足しているか否かを判定すべき旨を指示する、容量判定指示を記述しており、
前記更新ステップでは、
前記更新手順データが記述している前記容量判定指示にしたがって、前記電子機器が備えている記憶装置のうち、前記組込プログラムを更新する際に一時的に前記共通更新データまたは前記差分データを保持するための記憶容量が不足しているか否かを判定し、
不足している場合は、前記解放指示にしたがって前記電子機器が備えている記憶装置の記憶領域を解放する
ことを特徴とする請求項３記載の組込プログラム更新方法。
【請求項５】
前記更新手順データは、
前記電子機器が備えている記憶装置のうち、前記組込プログラムを格納する記憶領域の所定の書込単位毎に、前記組込プログラムのバージョン情報を読み取るべき旨のバージョン取得指示と、
前記書込単位毎に、前記組込プログラムのバージョン情報を書き込むべき旨のバージョン書込指示と、
を記述しており、
前記共通更新データ取得ステップまたは前記差分データ取得ステップでは、前記組込プログラムのバージョン情報を取得し、
前記更新ステップでは、
前記組込プログラムを更新する際に、前記バージョン取得指示にしたがって、前記書込単位毎に前記組込プログラムのバージョン情報を取得し、
取得した前記組込プログラムのバージョン情報が、前記共通更新データ取得ステップまたは前記差分データ取得ステップで取得した前記組込プログラムのバージョン情報よりも古い場合は、前記更新手順データが記述している前記バージョン書込指示にしたがって前記組込プログラムのバージョン情報を前記書込単位毎に前記記憶装置に書き込むとともに、前記組込プログラムを更新する
ことを特徴とする請求項１から４のいずれか１項記載の組込プログラム更新方法。
【請求項６】
請求項１から５のいずれか１項記載のプログラム更新方法を前記電子機器が備える演算装置に実行させることを特徴とする組込プログラム更新プログラム。
【請求項７】
電子部品と組込プログラムを備えた電子機器であって、
前記組込プログラムを実行する演算部と、
前記組込プログラムの更新版データのうち、異なる種別および型番の前記電子部品を備えた複数の前記電子機器に共通して用いることのできる部分である共通更新データを取得する共通更新データ取得部と、
前記共通更新データと、複数の前記電子機器それぞれに適用する前記組込プログラムの更新版との間の差分データを一括して取得する差分データ取得部と、
前記共通更新データと前記差分データを用いて前記電子機器の組込プログラムを更新する手順を記述した更新手順データを取得する更新手順データ取得部と、
前記電子部品の種別および型番を取得する型番取得部と、
前記型番取得部が取得した前記電子部品の種別と型番、前記共通更新データ、および前記差分データを用いて、前記更新手順データが記述している手順にしたがって前記電子機器の組込プログラムを更新する更新部と、
を備え、
前記更新手順データは、前記更新部が実施すべき処理種別とその処理順番とを記述しており、
前記更新部は、前記更新手順データが記述している前記処理種別に対応してあらかじめ規定されている処理を実施する
ことを特徴とする電子機器。
【請求項８】
請求項７記載の電子機器と、
前記共通更新データ、前記差分データ、および前記更新手順データを保持するサーバと、
を有し、
前記電子機器は、前記共通更新データおよび前記差分データを前記サーバからダウンロードすることによって取得する
ことを特徴とするネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器の組込プログラムを更新する手法に関するものである。
【背景技術】
【０００２】
近年の情報化社会の進展につれて、車両周辺を取り巻く情報環境が急速に整備されつつある。具体例を挙げると、例えばカーナビゲーション装置、車載オーディオ、ＣＤ／ＤＶＤ／Ｂｌｕ−ｒａｙディスクドライブ等の各種車載情報機器が既に実用に供されている。また、これらの実用化に伴って、各種車載情報機器間が例えばリング形式のデータ伝送路を介して接続され、情報機器間でデータ交換を行う車載情報ネットワークシステムも開発されている。
【０００３】
上述の如く車両が情報機器化する一方で、各種情報機器の機能追加・情報漏洩防止・不具合対策等のため、情報機器の組込ソフトウェアを定期的にアップデートする必要性が高まっている。
【０００４】
組込ソフトウェアは、情報機器上に搭載された不揮発性メモリ、磁気ディスク装置等の記憶装置に格納されている。組込ソフトウェアのアップデートは、データ記録用の媒体やネットワークを経由して更新版データを取得し、上記記憶装置に書き込むことによって行われる。
【０００５】
下記特許文献１には、古いファームウェアを一方の記憶領域へ退避させ、他方の記憶領域に新しいファームウェアを書き込むことにより、電子機器のファームウェアを更新する手法が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−１１０２１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
情報機器を構成するＣＰＵ（中央演算処理装置）やメモリ（記憶素子）等の部品は半導体メーカから供給され、それらが情報機器メーカによって組み立てられる。組み上がった製品に組込ソフトウェアが書き込まれ、最終的な製品として市場に出荷される。
【０００８】
昨今、ＣＰＵやメモリ部品の性能向上が頻繁に行われるようになり、それにともない部品の供給サイクルが短縮化され、同一モデルの情報機器の生産・販売期間内に部品の調達が困難になる場合がある。
【０００９】
このような事態が発生した時には、完成品として出荷される製品は同一であっても、内部で使用されているＣＰＵやメモリ等の電子部品は、互換性は有するものの、出荷時期によっては厳密には仕様が異なる部品が用いられることがある。
【００１０】
製品を構成している電子部品が異なると、電子部品に互換性があるといえども、組込ソフトウェアの一部を修正しないと正常動作しない場合がある。この場合、同一製品であっても、部品の型番などに応じて、組込ソフトウェアの更新バージョンのうちいずれを適用すべきかが異なる可能性がある。
【００１１】
組込ソフトウェアの更新バージョンが電子部品毎に異なる場合、電子部品個々の型番などに応じて個別に更新バージョンを準備しなければならず、更新作業が煩雑になる可能性がある。また、電子機器のユーザは、自分が所持している電子機器が備えている電子部品の型番などを調べた上で、対応する更新バージョンを判断しなければならず、ユーザにとっても更新作業の負担が大きい。
【００１２】
本発明は、上記のような課題を解決するためになされたものであり、電子機器の組込プログラムを更新する作業負担を軽減することのできる手法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明に係る組込プログラム更新方法では、組込プログラムの更新版のうち異なる電子機器に共通する共通更新データと、電子機器毎の差分データとを取得し、電子機器が備える電子部品の種別および型番に対応する差分データを用いて組込プログラムを更新する。
【発明の効果】
【００１４】
本発明に係る組込プログラム更新方法によれば、電子部品の型番等ごとに組込プログラムの更新バージョンを作成する必要がなく、差分データのみを準備すれば足りる。これにより、組込プログラムを更新するための作業負担を軽減することができる。また、ユーザは共通更新データと差分データをまとめて取得すれば済むので、電子部品の型番等を調べて対応する更新バージョンを判断するなどの作業をする必要がなくなり、ユーザの作業負担も軽減することができる。
【図面の簡単な説明】
【００１５】
【図１】実施形態１に係るネットワークシステム１０００の構成図である。
【図２】ディスク１５１またはサーバ２００が保持する更新バージョンデータ４００の構成を示す図である。
【図３】更新手順データ４１０の構成とデータ例を示す図である。
【図４】更新プログラム１２０が実行する、組込プログラム１４１を更新する処理フローを説明する図である。
【図５】実施形態２における更新手順データ４１０のデータ例を示す図である。
【図６】実施形態２において更新プログラム１２０が実行する、組込プログラム１４１を更新する処理フローを説明する図である。
【図７】実施形態３における更新手順データ４１０のデータ例を示す図である。
【図８】実施形態３において更新プログラム１２０が実行する、組込プログラム１４１を更新する処理フローを説明する図である。
【図９】実施形態４における更新手順データ４１０のデータ例を示す図である。
【図１０】実施形態４において更新プログラム１２０が実行する、組込プログラム１４１を更新する処理フローを説明する図である。
【発明を実施するための形態】
【００１６】
＜実施の形態１＞
図１は、本発明の実施形態１に係るネットワークシステム１０００の構成図である。ネットワークシステム１０００は、電子機器１００、サーバ２００を有する。電子機器１００とサーバ２００は、ネットワーク３００を介して接続されている。
【００１７】
電子機器１００は、例えば車載情報機器などのネットワーク３００と通信することのできる機器であり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１０、更新プログラム１２０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１４０、ディスク読取部１５０、ネットワーク通信部１６０を備える。
【００１８】
ＣＰＵ１１０は、更新プログラム１２０およびＲＯＭ１４０が格納している組込プログラム１４１を実行する演算装置である。以下では、記載の都合上、各プログラムを動作主体として説明することがあるが、これらプログラムを実際に実行するのはＣＰＵ１１０などの演算装置であることを付言しておく。
【００１９】
更新プログラム１２０は、組込プログラム１４１を新しいバージョンに更新する処理を記述したプログラムである。詳細動作については後述する。更新プログラム１２０は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などの不揮発性の記憶装置に格納することもできるし、ＲＯＭ１４０内に組込プログラム１４１とは別に格納することもできる。更新プログラム１２０自体は、組込ソフトウェアとして構成してもよいし、任意に書き換えることのできる一般ソフトウェアとして構成してもよい。更新プログラム１２０は、後述するディスク１５１またはサーバ２００から、組込プログラム１４１の更新バージョンデータ４００（後述）を取得し、組込プログラム１４１を更新する。
【００２０】
ＲＡＭ１３０は、ＣＰＵ１１０が処理を実行する際に必要となるデータなどを一時的に記憶するメモリ装置である。ＲＡＭ１３０は、電子機器１００の電源がＯＦＦになると、記憶しているデータを破棄する。
【００２１】
ＲＯＭ１４０は、組込プログラム１４１を格納する読取専用メモリ装置であり、電子機器１００の電源がＯＦＦになっても、データを保持し続ける。ＲＯＭ１４０が保持しているデータは個別に書き換えることができないので、ある程度まとめた書き込み単位毎（例えばブロック毎）に一括して書き換える必要がある。
【００２２】
組込プログラム１４１は、電子機器１００の動作制御処理を記述したプログラムであり、組込ソフトウェアとして構成されている。組込プログラム１４１の仕様は、ＣＰＵ１１０、ＲＡＭ１３０、ＲＯＭ１４０などの電子部品の型番によって個別に異なる場合がある。そのため、組込プログラム１４１を更新する際には、これら電子部品の型番に対応した更新バージョンを取得する必要がある。
【００２３】
ディスク読取部１５０は、ディスク１５１に記録されているデータを読み取ってＣＰＵ１１０に出力する装置である。ディスク１５１は、例えばＣＤ、ＤＶＤ、外付ＨＤＤなどの情報記憶媒体であり、組込プログラム１４１の更新バージョンデータ４００を格納する。更新バージョンデータ４００の構成については後述する。
【００２４】
ネットワーク通信部１６０は、電子機器１００とネットワーク３００を接続するためのネットワークインターフェースである。
【００２５】
サーバ２００は、組込プログラム１４１の更新バージョンデータ４００を保持するサーバ装置である。更新プログラム１２０は、サーバ２００から更新バージョンデータをダウンロード取得し、組込プログラム１４１を更新することができる。
【００２６】
図２は、ディスク１５１またはサーバ２００が保持する更新バージョンデータ４００の構成を示す図である。更新バージョンデータ４００は、更新プログラム１２０が組込プログラム１４１を更新するために用いるデータであり、更新手順データ４１０、組込プログラム共通更新データ４２０、差分データ４３０を有する。
【００２７】
更新手順データ４１０は、更新バージョンデータ４００を用いて組込プログラム１４１を更新するために更新プログラム１２０が実行すべき処理手順を記述したデータである。更新プログラム１２０は、更新手順データ４１０を上から順に１行分ずつ読み取り、各行に記載されている処理を順次実行する。後述の図３で具体例を改めて説明する。
【００２８】
差分データ４３０は、組込プログラム１４１のうち電子機器１００が備える各電子部品の種別、型番などに応じて個別に異なる部分を保持するデータである。差分データ４３０は、各電子部品の種別、型番など毎に設けられている。
【００２９】
組込プログラム共通更新データ４２０は、更新プログラム１２０が組込プログラム１４１を更新する際に、電子機器１００が備える各電子部品の種別、型番などに共通して用いることのできるデータである。例えば、以下のようなデータを組込プログラム共通更新データ４２０として用いることができる。
【００３０】
（組込プログラム共通更新データ４２０の例その１）
組込プログラム１４１のプログラムイメージデータのうち、電子機器１００が備える各電子部品の種別、型番などによって異なる部分を除いた共通部分を、組込プログラム共通更新データ４２０とすることができる。この場合、差分データ４３０は、各電子部品の種別、型番などによって異なる部分を、それぞれ個別に保持する。また、更新手順データ４１０は、いずれの差分データ４３０を組込プログラム共通更新データ４２０のどの部分に適用すべきかを記述する。
【００３１】
（組込プログラム共通更新データ４２０の例その２）
電子機器１００が備える各電子部品のある型番について適用することのできる組込プログラム１４１のプログラムイメージデータを、組込プログラム共通更新データ４２０とすることができる。この場合、差分データ４３０は、各電子部品の種別、型番などによって異なる部分を、それぞれ個別に保持する。また、更新手順データ４１０は、いずれの差分データ４３０を、組込プログラム共通更新データ４２０のどの部分と置き換えるべきかを記述する。
【００３２】
図３は、更新手順データ４１０の構成とデータ例を示す図である。更新手順データ４１０は、更新プログラム１２０が実行すべき処理手順を順に記述している。ここでは説明の便宜上、処理手順を文章形式で記載したが、更新プログラム１２０が解釈することのできる記述形式であれば、処理手順の記述形式は任意でよい。また、処理順番を記述することができれば、必ずしも１つの処理手順を１行毎に上から順番に記載しなくともよい。各処理手順の内容については、後述する図４で改めて説明する。
【００３３】
図４は、更新プログラム１２０が実行する、組込プログラム１４１を更新する処理フローを説明する図である。以下、図４の各ステップについて説明する。
【００３４】
（図４：ステップＳ４０１）
更新プログラム１２０は、ディスク１５１またはサーバ２００から、更新バージョンデータ４００を取得する。更新プログラム１２０は、取得した更新バージョンデータ４００から、更新手順データ４１０を１行分（１処理手順分）読み取る。
【００３５】
（図４：ステップＳ４０２）
更新プログラム１２０は、更新手順データ４１０が記述している処理手順の内容に応じて処理を分岐し、次に実行する処理に進む。例えば、更新手順データ４１０のなかに、処理種別を示す数値を記述しておき、本ステップの次はその数値に対応するステップに進むようにすればよい。ここでは、図３に示す「処理番号」の値に応じて、次に進むべきステップを判定するものとした。
【００３６】
（図４：ステップＳ４０３）
更新プログラム１２０は、図３に示す更新手順データ４１０の１行目に記載されている処理手順にしたがって、組込プログラム共通更新データ４２０を読み込み、ＲＡＭ１３０の作業領域に格納する。
【００３７】
（図４：ステップＳ４０４）
更新プログラム１２０は、図３に示す更新手順データ４１０の２行目に記載されている処理手順にしたがって、電子機器１００が備える電子部品（ＣＰＵ１１０、ＲＡＭ１３０、ＲＯＭ１４０など）の種別と型番を取得する。
【００３８】
（図４：ステップＳ４０４：補足）
電子部品の種別と型番は、各電子部品が備えている内部レジスタなどから取得することができればこれを用いることもできるし、例えばＲＯＭ１４０の所定箇所などにあらかじめ各電子部品の種別と型番を格納しておき、これを読み取るようにしてもよい。
【００３９】
（図４：ステップＳ４０５）
更新プログラム１２０は、図３に示す更新手順データ４１０の３行目に記載されている処理手順にしたがって、ステップＳ４０４で取得した電子部品の種別と型番に対応する差分データ４３０を特定し、組込プログラム共通更新データ４２０へ適用する。本ステップにより、電子機器１００が備える電子部品の種別および型番に対応した、組込プログラム１４１の更新バージョンが、ＲＡＭ１３０内で作成される。
【００４０】
（図４：ステップＳ４０５：補足）
更新手順データ４１０には、例えば「ＣＰＵ１１０の型番が００１であれば差分データ１を適用し、００２であれば差分データ２を適用する。」といった、電子部品の種別および型番と差分データ４３０との間の対応関係が記載されているものとする。
【００４１】
（図４：ステップＳ４０６）
更新プログラム１２０は、図３に示す更新手順データ４１０の４行目に記載されている処理手順にしたがって、ＲＡＭ１３０内に格納されている組込プログラム１４１の更新バージョンを、ＲＯＭ１４０に書き込む。
【００４２】
（図４：ステップＳ４０６：補足）
組込プログラム１４１のサイズが大きい場合は、１度の書き込みでは全てのデータをＲＯＭ１４０に書き込み切れないため、本ステップを繰り返し実行する場合もある。この場合は、更新手順データ４１０の対応する処理手順において、書き込み開始アドレスと書き込み終了アドレスを指示するようにしてもよい。
【００４３】
（図４：ステップＳ４０７）
更新プログラム１２０は、図３に示す更新手順データ４１０の５行目に記載されている処理手順にしたがって、組込プログラム１４１を更新する処理を終了する。
【００４４】
＜実施の形態１：まとめ＞
以上のように、本実施形態１に係る更新プログラム１２０は、電子部品の仕様が異なる電子機器１００に共通する共通更新データ４２０と併せて、電子部品の仕様毎に対応した差分データ４３０を一括して取得する。これにより、電子部品の仕様毎に組込プログラム１４１の更新イメージデータを個別作成する必要がなくなり、更新作業のための負担を軽減することができる。また、共通更新データ４２０は１つで済むので、更新バージョンデータ４００のデータ容量を少なく抑えることができる。
【００４５】
また、本実施形態１に係る更新プログラム１２０は、電子機器１００が備える電子部品の種別と型番を取得し、対応する差分データ４３０を特定して組込プログラム１４１の更新処理に適用する。これにより、電子機器１００のユーザは電子部品の型番などを調べて対応する更新バージョンを選択するなどの作業を実施する必要がなくなるので、組込プログラム１４１の更新作業に係るユーザ負担を軽減することができる。
【００４６】
＜実施の形態２＞
実施形態１で説明したように、組込プログラム１４１を更新する際には、ＲＡＭ１３０上で更新イメージをいったん構築してからＲＯＭ１４０に書き込むのが通常である。しかし近年の電子機器の多機能化などにより、組込プログラム１４１のサイズがＲＡＭ１３０上の作業領域のサイズを超えてしまう可能性がある。
【００４７】
そこで本発明の実施形態２では、ＲＯＭ１４０に書き込んだデータについてはＲＡＭ１３０上から消去して記憶領域を解放し、ＲＡＭ１３０上の作業領域を確保する動作例を説明する。ネットワークシステム１０００および各機器の構成は実施形態１と概ね同様であるため、以下では主に更新手順データ４１０に係る差異点について説明する。
【００４８】
図５は、本実施形態２における更新手順データ４１０のデータ例を示す図である。本実施形態２において、更新手順データ４１０は、ＲＡＭ１３０が保持しているデータのうちＲＯＭ１４０に書き込んだ部分を消去し、ＲＡＭ１３０の記憶領域を解放すべき旨の指示を記述している。同指示の処理番号を６とした。
【００４９】
ここでは説明の便宜上、実施形態１で説明した処理番号２〜３を省略しているが、本実施形態２においてこれらの処理を実行することもできる。次に説明する図６においても同様である。
【００５０】
図６は、本実施形態２において更新プログラム１２０が実行する、組込プログラム１４１を更新する処理フローを説明する図である。以下、図６の各ステップについて説明する。
【００５１】
（図６：ステップＳ４０１〜Ｓ４０３、Ｓ４０６〜Ｓ４０７）
これらのステップは、実施形態１の図４における各ステップと同様である。ただし、ステップＳ４０２において、図５の３行目に記述している処理番号に対応する分岐先が追加されている。
【００５２】
（図６：ステップＳ６０１）
更新プログラム１２０は、図５に示す更新手順データ４１０の３行目に記載されている処理手順にしたがって、ＲＡＭ１３０が保持している更新データのうちＲＯＭ１４０に書き込み済みである部分を消去し、同データを保持していた記憶領域を解放する。
【００５３】
（図６：ステップＳ６０１：補足）
更新プログラム１２０は、ＲＡＭ１３０が保持している更新データをＲＯＭ１４０に書き込むときに、その旨および書き込み済み範囲などを示すフラグをＲＡＭ１３０上に書き込むようにしてもよい。ステップＳ６０１では、同フラグに基づき、ＲＯＭ１４０に書き込み済みである部分を特定し、ＲＡＭ１３０上から消去することができる。
【００５４】
＜実施の形態２：まとめ＞
以上のように、本実施形態２に係る更新プログラム１２０は、更新手順データ４１０の記述にしたがって、ＲＡＭ１３０が保持している更新データのうちＲＯＭ１４０に書き込んだ部分を消去し、対応する記憶領域を解放する。これにより、ＲＡＭ１３０上の作業領域を確保することができるので、組込プログラム１４１のサイズが作業領域の記憶容量よりも大きい場合でも、容量不足を引き起こさずに更新処理を継続することができる。
【００５５】
＜実施の形態３＞
実施形態２では、更新手順データ４１０内に処理番号６の処理手順が記述されていればＲＡＭ１３０の記憶容量を即座に解放することとしたが、ＲＡＭ１３０の記憶容量が十分にあるときに解放処理を実行すると、そのための待ち時間などが生じ、更新処理がその分だけ長くかかる可能性がある。
【００５６】
そこで本発明の実施形態３では、ＲＡＭ１３０の記憶容量が不足しているか否かを判断し、不足している場合に記憶容量を解放する動作例を説明する。
【００５７】
図７は、本実施形態３における更新手順データ４１０のデータ例を示す図である。本実施形態３において、更新手順データ４１０は、実施形態２の図５で説明したデータ例に加え、ＲＡＭ１３０の記憶容量が不足しているか否かを判断し、不足している場合に記憶容量を解放すべき旨の指示を記述している。同指示の処理番号を７とした。
【００５８】
ここでは説明の便宜上、実施形態１で説明した処理番号２〜３を省略しているが、本実施形態３においてこれらの処理を実行することもできる。次に説明する図８においても同様である。
【００５９】
図８は、本実施形態３において更新プログラム１２０が実行する、組込プログラム１４１を更新する処理フローを説明する図である。以下、図８の各ステップについて説明する。
【００６０】
（図８：ステップＳ４０１〜Ｓ４０３、Ｓ４０６〜Ｓ４０７）
これらのステップは、実施形態２の図６における各ステップと同様である。ただし、ステップＳ４０２において、図７の３行目に記述している処理番号に対応する分岐先が追加されている。
【００６１】
（図８：ステップＳ６０１）
本ステップの動作は、実施形態２の図６における同ステップと同様であるが、後述するステップＳ８０１においてＲＡＭ１３０の容量が不足していると判断した場合に限り本ステップを実行する点が異なる。
【００６２】
（図８：ステップＳ８０１）
更新プログラム１２０は、図７に示す更新手順データ４１０の３行目に記載されている処理手順にしたがって、ＲＡＭ１３０のうち更新データを格納する領域の記憶容量が不足しているか否かを判断する。例えば、記憶容量の下限閾値などをあらかじめ更新プログラム１２０の処理内に記述しておくなどすればよい。更新プログラム１２０は、記憶容量が不足していると判断する場合は、更新手順データ４１０に処理番号６が出現した時点で同処理手順を実行する。
【００６３】
（図８：ステップＳ８０１：補足）
更新プログラム１２０は、本ステップにおいて記憶容量が不足していると判断する場合は、その旨のフラグなどをＲＡＭ１３０に格納するなどして、次に更新手順データ４１０の処理番号６が出現した時点で同処理手順を実行すべきか否かを判断できるようにしておくことができる。
【００６４】
＜実施の形態３：まとめ＞
以上のように、本実施形態３に係る更新プログラム１２０は、更新手順データ４１０の記述にしたがって、ＲＡＭ１３０の記憶容量が不足しているか否かを判断し、不足している場合に限り記憶容量を解放する。これにより、ＲＡＭ１３０の記憶容量を解放する処理の負荷を軽減することができる。
【００６５】
＜実施の形態４＞
以上の実施形態１〜３において、更新プログラム１２０が組込プログラム１４１の更新バージョンをＲＯＭ１４０に書き込んでいるときに、電源供給の遮断や通信経路の切断などが発生する場合がある。このとき、途中まで書き込みが実行された段階で更新処理が突然中断したことになるため、ＲＯＭ１４０上の組込プログラム１４１を保持する記憶領域において、新旧バージョンの組込プログラム１４１が混在した状態となる。この状態では組込プログラム１４１は正常動作しない。
【００６６】
これら問題が発生した場合、電子機器１００のユーザがメーカへ問い合わせる、販売店や修理工場へ持ち込んで修理を依頼する、電子機器１００を設置場所から取り外してメーカに送る、などの対応をとる必要があり、ユーザにとって負担が大きい。
【００６７】
そこで本発明の実施形態４では、ＲＯＭ１４０の記憶容量の所定書き込み単位（例えばＲＯＭ１４０の内部ブロック単位）毎に組込プログラム１４１のバージョン情報を書き込んでおき、どの部分まで更新が完了したかを把握できるようにした構成を説明する。ネットワークシステム１０００および各機器の構成は実施形態１〜３と概ね同様であるため、以下では主に更新手順データ４１０に係る差異点について説明する。
【００６８】
図９は、本実施形態４における更新手順データ４１０のデータ例を示す図である。本実施形態４において、更新手順データ４１０は、更新バージョンデータ４００のバージョン情報を取得すべき旨の指示を記述している。同指示の処理番号を８とした。また、ＲＯＭ１４０の書き込み先ブロックに書き込まれている組込プログラム１４１のバージョン情報を取得すべき旨の指示を記述している。同指示の処理番号を９とした。
【００６９】
ここでは説明の便宜上、実施形態１〜３で説明した処理番号２〜３および６〜７を省略しているが、本実施形態４においてこれらの処理を実行することもできる。次に説明する図１０においても同様である。
【００７０】
図１０は、本実施形態４において更新プログラム１２０が実行する、組込プログラム１４１を更新する処理フローを説明する図である。以下、図１０の各ステップについて説明する。
【００７１】
（図１０：ステップＳ４０１〜Ｓ４０３、ＳＳ４０７）
これらのステップは、実施形態２の図６における各ステップと同様である。ただし、ステップＳ４０２において、図９の１〜２行目に記述している処理番号に対応する分岐先が追加されている。
【００７２】
（図１０：ステップＳ４０６）
本ステップの処理は実施形態１で説明した同ステップと概ね同様であるが、以下の点が異なる。
【００７３】
（図１０：ステップＳ４０６：実施形態１と異なる点その１）
更新プログラム１２０は、ステップＳ１００１で取得した更新バージョンデータ４００のバージョン情報を、ＲＯＭ１４０の書き込み先ブロックに書き込む。
【００７４】
（図１０：ステップＳ４０６：実施形態１と異なる点その２）
更新プログラム１２０は、ステップＳ１００２で取得した、書き込み先ブロックに先に書き込まれているバージョン情報が、ステップＳ１００１で取得したバージョン情報と同等かもしくはより新しい場合は、当該ブロックに対する書き込みをスキップする。
【００７５】
（図１０：ステップＳ１００１）
更新プログラム１２０は、図９に示す更新手順データ４１０の１行目に記載されている処理手順にしたがって、更新バージョンデータ４００のバージョン情報を取得する。更新バージョンデータ４００のバージョン情報は、例えば更新バージョンデータ４００のヘッダ部分などのデータ本体に記述することもできるし、ファイル名などのデータ本体外の部分にバージョン情報を含めることもできる。
【００７６】
（図１０：ステップＳ１００２）
更新プログラム１２０は、図９に示す更新手順データ４１０の２行目に記載されている処理手順にしたがって、ＲＯＭ１４０の記憶領域のうち組込プログラム１４１を書き込む先のブロックに書き込まれているバージョン情報を取得する。
【００７７】
＜実施の形態４：まとめ＞
以上のように、本実施形態４に係る更新プログラム１２０は、更新手順データ４１０の記述にしたがって、更新バージョンデータ４００のバージョン情報をＲＯＭ１４０の書き込み先ブロックに書き込む。また、ＲＯＭ１４０の書き込み先ブロックに書き込まれているバージョン情報が更新バージョンデータ４００のバージョン情報よりも古い場合はその更新バージョンデータとバージョン情報を書き込み、バージョンが同等であるかまたは書き込み先ブロックの方が新しい場合は書き込みをスキップする。これにより、組込プログラム１４１を更新している途中で更新処理が中断されても、どの部分まで更新が完了しているかをＲＯＭ１４０の書き込み先ブロック単位で把握することができるので、矛盾なく組込プログラム１４１を再更新することができる。
【００７８】
＜実施の形態５＞
以上の説明において、更新プログラム１２０はプログラムとして構成することを説明したが、同等の機能部を回路デバイスなどのハードウェアデバイスによって構成することもできる。この場合、同デバイスは、更新プログラム１２０が実行する各ステップに相当する機能を実現する、ハードウェアによって構成された各機能部を備える。
【００７９】
また、本発明は、上述した実施形態に限定されることなく、特許請求の範囲内において適宜に変更された形態で実施することができる。
【００８０】
例えば、本実施形態中、組込プログラム１４１の更新対象となる電子機器１００として車載情報機器を例示して説明したが、本発明はこの形態の例に限定されることなく、あらゆる電子機器（例えば、携帯型の情報端末や情報家電）を対象とする組込プログラムの更新に適用することができることは言うまでもない。
【００８１】
また、組込プログラム１４１として、電子機器１００のファームウェア、アプリケーションプログラムなど、任意の組込ソフトウェアを本発明の対象とすることができる。
【符号の説明】
【００８２】
１００：電子機器、１１０：ＣＰＵ、１２０：更新プログラム、１３０：ＲＡＭ、１４０：ＲＯＭ、１５０：ディスク読取部、１５１：ディスク、１６０：ネットワーク通信部、２００：サーバ、３００：ネットワーク、４００：更新バージョンデータ、４１０：更新手順データ、４２０：組込プログラム共通更新データ、４３０：差分データ、１０００：ネットワークシステム。
【図１】
0005559001.tif 000002
【図２】
0005559001.tif 000003
【図３】
0005559001.tif 000004
【図４】
0005559001.tif 000005
【図５】
0005559001.tif 000006
【図６】
0005559001.tif 000007
【図７】
0005559001.tif 000008
【図８】
0005559001.tif 000009
【図９】
0005559001.tif 000010
【図１０】
0005559001.tif 000011