(57)【要約】      （修正有）【課題】ファームウェアの更新を確実に行う。【解決手段】更新対象でない第一更新プログラム２０ｄと、第１の更新プログラム２０ｄによって更新されうる第二更新プログラム２２と、第二更新プログラムにより更新されうる応用部プログラム２１とを不揮発性メモリ１２に記憶し、不揮発性メモリに接続された演算手段が、第二更新プログラム２２または応用部プログラム２１の更新命令を受信し、該更新命令を実行するのに第二更新プログラム２２の設定内容の変更の要否を判断し、前記設定内容の変更が不要な場合には、第二更新プログラム２２によって応用部プログラム２１を更新し、前記設定内容の変更が必要な場合には、第一更新プログラム２０ｄによって第二更新プログラム２２を更新し、更新した第二更新プログラム２２によって応用部プログラム２１を更新する。【選択図】図２
2007249360.tif 000002
【特許請求の範囲】
【請求項１】
更新対象でない第一更新プログラムと、該第１の更新プログラムによって更新される更新対象の第二更新プログラムと、該第二更新プログラムにより更新されうる更新対象の応用部プログラムとを記憶している不揮発性メモリと、
該不揮発性メモリに接続された演算手段であって、前記第二更新プログラムまたは前記応用部プログラムの更新命令を受信し、該更新命令を実行するのに前記第二更新プログラムの更新処理の要否を判断するものである演算手段と
を含んでなるファームウェア更新システムであって、
前記設定内容の変更が不要な場合には、前記演算手段は、前記第二更新プログラム（２２、３１ｂ）によって前記応用部プログラムの更新を実行し、
前記設定内容の変更が必要な場合には、前記演算手段は、前記第一更新プログラムによって前記第二更新プログラムを更新し、更新した第二更新プログラムによって前記応用部プログラムの更新を実行するものである、ファームウェア更新システム。
【請求項２】
前記更新処理に対応する複数の第二更新プログラムを前記不揮発性メモリに記憶している請求項１に記載のファームウェア更新システム。
【請求項３】
前記演算手段が、前記応用部プログラムまたは前記第二更新プログラムの更新が終了したことを表す終了通知を発生することをさらに含む請求項１または２に記載のファームウェア更新システム。
【請求項４】
更新対象でない第一更新プログラムと、該第１の更新プログラムによって更新される更新対象の第二更新プログラムと、該第二更新プログラムにより更新されうる更新対象の応用部プログラムとを不揮発性メモリに記憶するステップと、
前記不揮発性メモリに接続された演算手段が、前記第二更新プログラムまたは前記応用部プログラムの更新命令を受信し、該更新命令を実行するのに前記第二更新プログラムの更新処理の要否を判断するステップと、
前記設定内容の変更が不要な場合には、前記演算手段は、前記第二更新プログラムによって前記応用部プログラムを更新し、前記設定内容の変更が必要な場合には、前記演算手段は、前記第一更新プログラムによって前記第二更新プログラムを更新し、更新した第二更新プログラムによって前記応用部プログラムを更新するステップと
を含んでなるファームウェア更新方法。
【請求項５】
前記不揮発性メモリに記憶するステップが、前記更新処理に対応する複数の第二更新プログラムを前記不揮発性メモリに記憶することをさらに含む請求項４に記載のファームウェア更新方法。
【請求項６】
前記演算手段が、前記応用部プログラムまたは前記第二更新プログラムの更新が終了したことを表す終了通知を発生するステップをさらに含む請求項４または５に記載のファームウェア更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファームウェア更新後に再度更新処理を実行することができるファームウェアの更新システムおよび更新方法に関する。
【背景技術】
【０００２】
最近の組込み機器は、機能追加や性能向上や不具合の修正などの目的のために、ファームウェアを更新するための手段が提供されている製品が増えてきている。例えば、ファームウェアを更新するときに、マスクＲＯＭなどの書き換え可能な不揮発性メモリに予め記憶しているファームウェアの更新プログラムを用いて更新処理を行うことができるものがある。
【０００３】
ただし、上記の組込み機器では、記憶媒体やデータ形式に変更がある場合には、ファームウェアを更新するプログラム自身の変更が必要となる。その場合には、組込み装置の不揮発性メモリを交換する必要がある。
【０００４】
この問題を解決する技術として、例えば特許文献１の技術が知られている。この特許文献１によれば、ファームウェアの更新処理プログラムとその更新処理に必要な更新データとの２つのデータを一緒にして、このファームウェアを含む装置と通信可能な装置（以下、「上位装置」とよぶ）から、組込み機器の不揮発性メモリに送信している。特許文献１によれば、ファームウェアの更新処理に必要な更新データを参照しながらファームウェアの更新処理を実行できるので、記憶媒体やデータ形式の変更に対応することができる。
【０００５】
しかしながら、特許文献１に記載された技術では、プログラムの更新に必要な更新データの上位装置との間で通信するのに必要な設定内容（例えば、通信プロトコル、通信処理、通信媒体）に変更にまで対応することはできない。また、特許文献１に記載された技術では、ファームウェアの更新後に不具合が生じた場合には、ファームウェアを再び更新することができないので、不揮発性メモリの物理的な交換が必要になることがある。この場合には、さらなるコスト負担を生じ、交換が完了するまで組込み装置を使用することができないという保守性にも問題を生じることになる。
【特許文献１】特開２０００−１８１７１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、ファームウェアの更新に関して設定内容の変更がある場合にも、ファームウェアの更新を確実に行えるようにするものである。
【課題を解決するための手段】
【０００７】
本発明は、不揮発性メモリ内のファームウェアの更新を確実に行うことができるファームウェア更新システムを提供する。具体的には、本発明は、更新対象でない第一更新プログラムと、該第１の更新プログラムによって更新される更新対象の第二更新プログラムと、該第二更新プログラムにより更新されうる更新対象の応用部プログラムとを記憶している不揮発性メモリと、該不揮発性メモリに接続された演算手段であって、前記第二更新プログラムまたは前記応用部プログラムの更新命令を受信し、該更新命令を実行するのに前記第二更新プログラムの更新処理の要否を判断するものである演算手段とを含んでなるファームウェア更新システムであって、
前記更新処理が不要な場合には、前記演算手段は、前記第二更新プログラムによって前記応用部プログラムの更新を実行し、
前記更新処理が必要な場合には、前記演算手段は、前記第一更新プログラムによって前記第二更新プログラムを更新し、更新した第二更新プログラムによって前記応用部プログラムの更新を実行するものである、ファームウェア更新システムを提供する。
【０００８】
ここで、上記のファームウェア更新システムは、前記更新処理に対応する複数の第二更新プログラムを前記不揮発性メモリに記憶している態様であることや、上記のファームウェア更新システムの演算手段が、前記応用部プログラムまたは前記第二更新プログラムの更新が終了したことを表す終了通知を発生することをさらに含む態様であることが好ましい。
【０００９】
また、本発明は、不揮発性メモリ内のファームウェアの更新を確実に行うファームウェア更新方法も提供する。具体的には、本発明は、更新対象でない第一更新プログラムと、該第１の更新プログラムによって更新される更新対象の第二更新プログラムと、該第二更新プログラムにより更新されうる更新対象の応用部プログラムとを不揮発性メモリに記憶するステップと、前記不揮発性メモリに接続された演算手段が、前記第二更新プログラムまたは前記応用部プログラムの更新命令を受信し、該更新命令を実行するのに前記第二更新プログラムの更新処理の要否を判断するステップと、前記更新処理が不要な場合には、前記演算手段は、前記第二更新プログラムによって前記応用部プログラムを更新し、前記更新処理が必要な場合には、前記演算手段は、前記第一更新プログラムによって前記第二更新プログラムを更新し、更新した第二更新プログラムによって前記応用部プログラムを更新するステップとを含んでなるファームウェア更新方法を提供する。
【００１０】
ここで、上記の前記不揮発性メモリに記憶するステップが、前記更新処理に対応する複数の第二更新プログラムを前記不揮発性メモリに記憶することをさらに含む態様であることや、前記演算手段が、前記応用部プログラムまたは前記第二更新プログラムの更新が終了したことを表す終了通知を発生するステップをさらに含む態様であることが好ましい。
【００１１】
また、上記の終了通知を上位装置に送信するためのインタフェースをさらに含む態様であることがより好ましい。このようなインタフェースは、例えば、ＬＡＮカードやシリアルコントローラなどの通信装置、または、フロッピー（登録商標）ディスクやＣＤ／ＤＶＤやスマートメディアやＵＳＢメモリやＣＦカードやＳＤカードなどの記憶媒体の読取装置を含みうる。
【００１２】
なお、上記のファームウェア更新システムまたは更新方法では、演算手段が１つの更新プログラムを用いて更新対象のプログラムの更新処理を実行しているが、これに限らず、例えば、複数のプログラムが連携して更新対象のプログラムの更新処理を実行することもできる。このように複数の更新プログラムや更新データが互いに連携して更新対象のプログラムを更新することも本願の更新処理に含みうる。本願では、このことを明らかにするために、以下、「第一更新処理プログラム」および「第二更新処理プログラム」という語を使用することがある。ここで、「第一更新処理プログラム」とは、更新対象のプログラムを更新するための「第一更新プログラム」と、この「第一更新プログラム」と連携して更新処理を行うそれ以外の更新プログラムまたは更新データとを含む。同様に、「第二更新処理プログラム」とは、更新対象のプログラムを更新するための「第二更新プログラム」と、この「第二更新プログラム」と連携して更新処理を行うそれ以外の更新プログラムまたは更新データとの両方を含む。
【発明の効果】
【００１３】
本発明によれば、更新対象である応用部プログラム（ファームウェアまたはアプリケーション）の更新に伴う不具合が発生した場合でも、不揮発性メモリの物理的な交換を行うことなく、更新対象でない第一更新プログラムを使用して応用部プログラムの更新処理を再び実行することができる。そのため、ファームウェアの更新処理を確実に行うことができる。
また、各種の通信プロトコルに対応した複数の第二更新プログラムを不揮発性メモリに記憶している態様においては、応用部プログラムの更新に伴う通信プロトコルや通信媒体の変更をデータ通信することなく演算手段が迅速に実行することができる。これに伴って本発明の実施に用いられる組込み装置を使用するユーザの利便性も向上する。
【発明を実施するための最良の形態】
【００１４】
以下、発明の実施の形態について説明する。図１は、本発明の実施に用いられる組込み機器３１または４１のハードウェア構成の一例である。ここで、組込み機器３１または４１は、ＣＰＵ１０と、メモリ１１と、書き換え可能な不揮発性メモリ（以下、「ＲＯＭ」とよぶ）１２と、上位装置とデータを通信するためのインタフェース１３（以下、「外部Ｉ／Ｆ１３」とよぶ）とを含んでなり、ＣＰＵ１０とメモリ１１とＲＯＭ１２と外部Ｉ／Ｆ１３とは、互いにバスで接続されている。上記の組込み装置３１または４１は、一例として携帯電話機などでありうる。
【００１５】
ＣＰＵ１０は、メモリ１１またはＲＯＭ１２に記憶された各種のプログラムに従って、応用部プログラムなどのプログラムの更新処理を含む各種のデータ処理を行うことができる。メモリ１１は、例えば、組込み機器３１または４１と通信する上位装置３０からの更新データを一時的に記憶するために使用されうる。ＲＯＭ１２は、ファームウェアやファームウェアの更新のための各種プログラムを記憶している。外部Ｉ／Ｆ１３は、上位装置３０から更新すべきファームウェアに関する更新データを受信またはダウンロードするときに使用される。
【００１６】
次に、図２を参照して、本発明の実施に用いられる組込み機器３１または４１のＲＯＭ１２に記憶されているプログラムの構成を示す。ＲＯＭ１２は、更新対象外である基本部プログラム２０と、更新対象である応用部プログラム２１および第二更新プログラム２２とを記憶している。
【００１７】
基本部プログラム２０は、更新対象外であるため、更新処理プログラムによってその内容を変更することができない。基本部プログラム２０は、例えば、ブートローダ２０ａと、オペレーティングシステム（ＯＳ）２０ｂと、デバイスドライバ２０ｃと、第二更新プログラム２２を更新するための更新処理プログラムである第一更新プログラム２０ｄとを含みうる。
一方、応用部プログラム２１および第二更新プログラム２２は、いずれも更新対象となるプログラムであり、その内容を変更することができる。
【００１８】
つまり、ＲＯＭ１２において、応用部プログラム２１は第二更新プログラム２２を用いて更新することができ、第二更新プログラム２２は第一更新プログラム２０ｄを用いて更新することができるように構成されている。応用部プログラム２１は、第一更新プログラム２０ｄを用いて更新することも可能でありうる。
【００１９】
次に、図３の流れ図を参照して、組込み機器３１または４１のＲＯＭ１２の更新対象である応用部プログラム２１に記憶されているアプリケーション２１ａを更新する仕方について説明する。
ステップＳ１では、第一更新プログラム２０ｄと第二更新プログラム２２とアプリケーション２１ａとがＲＯＭ１２に記憶されている。ステップＳ２では、演算手段であるＣＰＵ１０が、アプリケーション２１ａの変更に関する更新命令を上位装置から受信する。ステップ３において、ＣＰＵ１０は、この更新命令が第二更新プログラムの設定内容の変更（更新処理）を必要とするか否かを判断する。このような設定内容の変更の一例としては、例えば、応用部プログラムの更新データを上位装置からダウンロードするときの通信プロトコルの変更などを含みうる。
【００２０】
もし、上記の更新命令を実行するのに第二更新プログラムの設定内容の変更が不要な場合には、ステップＳ４〜Ｓ６に進む。ステップＳ４では、ＣＰＵ１０は、アプリケーション２１ａの更新に関する更新データをメモリ１１に記憶させる。そして、ステップＳ５では、ＣＰＵ１０は、このメモリ１１に記憶した更新データとＲＯＭ１２に予め記憶された第二更新プログラムとを用いて、アプリケーション２１ａを更新する。そして、ステップＳ６では、アプリケーション２１ａの更新が終了した旨の終了通知をＣＰＵ１０が上位装置３０に通信する。そして、アプリケーション２１ａの更新処理が終了する。
【００２１】
一方、上記の更新命令を実行するのに第二更新プログラムの設定内容の変更が必要な場合には、ステップＳ７〜Ｓ９に進む。ステップＳ７では、ＣＰＵ１０は、第二更新プログラムを更新するための更新データをメモリ１１に記憶させる。そして、ＣＰＵ１０は、この第二更新プログラムを更新するための更新データとＲＯＭ１２に予め記憶された第一更新プログラムとを用いて、第二更新プログラムの設定内容を更新する。第二更新プログラムの設定内容の更新が終了すると、ステップＳ８において、ＣＰＵ１０は、第二更新プログラムの設定内容の変更が終了した旨の終了通知を上位装置３０に通信する。そして、ステップＳ９では、ＣＰＵ１０が、アプリケーション２１ａの更新データをメモリ１１に記憶させる。そして、ステップＳ１０では、ＣＰＵ１０が、この更新データと更新した第二更新プログラムとを用いて、アプリケーション２１ａを更新する。そして、上述したステップＳ６に戻り、アプリケーション２１ａの更新が終了した旨の終了通知をＣＰＵ１０が上位装置３０に通信し、アプリケーション２１ａの更新処理が終了する。
【００２２】
次に、上記の更新命令を実行するのに第二更新プログラムの設定内容の変更が、応用部プログラムの更新データをダウンロードするときの通信プロトコルに関するものである場合を例として説明する。ここで、図４は通信プロトコルの変更が不要な場合の更新シーケンスであり、図５は通信プロトコルの変更が必要な場合の更新シーケンスである。
【００２３】
最初に、更新データの通信プロトコルの変更が不要な場合について図４を参照して説明する。ここで、図４のＳ３０〜Ｓ３４は、図２のステップＳ４〜Ｓ６に対応している。ステップＳ３０では、組込み機器３１のＣＰＵ１０が、応用部プログラム３１ａを更新する旨の更新要求を上位装置３０から受信する。そして、ステップＳ３１では、ＣＰＵ１０が、ＲＯＭ１２に記憶されている第二更新処理プログラム３１ｂに従って処理を行う。ステップＳ３２では、ＣＰＵ１０が、応用部ブログラム３１ａを更新するための更新データをダウンロードしてメモリ１１に記憶させる。ここでは、通信経路の変更がないので、更新データをダウンロードするときの通信プロトコルは、それまでと同じプロトコル（通信プロトコルＡ）である。ステップＳ３３では、ＣＰＵ１０が、メモリ１１に記憶した更新データとＲＯＭ１２に記憶した第二更新プログラムとを用いて、応用部プログラムを更新する。応用部プログラムの更新が終了すると、ステップＳ３４において、ＣＰＵ１０から上位装置３０に対して更新が終了した旨の終了通知を行い、応用部プログラムの更新処理が完了する。
【００２４】
次に、更新データの通信プロトコルの変更が必要な場合について図５を参照して説明する。ここで、図５のＳ４０〜Ｓ４３は、図２のステップＳ７の第一更新プログラムを用いた第二更新プログラムの更新に対応している。また、図５のＳ４５〜Ｓ４９は、図２のステップＳ８〜Ｓ１０に対応している。
【００２５】
図５では、ステップＳ４０において、組込み機器４１のＣＰＵ１０が、上位装置４０から応用部プログラム４１ａを更新する旨の更新要求（通信プロトコルＢへの変更を含む）を受信する。ここで、ＣＰＵ１０は、この更新要求が通信プロトコルＡからＢへの変更を伴うものであることを判断し、組込み機器４１の第一更新処理プログラム４１ｃに更新要求を行う。そして、ステップＳ４１において、ＣＰＵ１０は、組込み機器４１の第一更新処理プログラム４１ｃを用いて、第二更新プログラム４１ｂの設定内容を更新するための更新データを上位装置４０から組込み機器４１のメモリ１１にダウンロードする。この更新データのダウンロードが終了すると、ステップＳ４２において、ＣＰＵ１０は、メモリ１１に記憶した更新データとＲＯＭ１２の第一更新処理プログラム４１ｃとを用いて、第二更新プログラム４１ｂの更新を行う。ステップＳ４３では、第二更新プログラムの更新が終了すると必要に応じて上位装置４０に終了通知を行い、ステップＳ４４では、更新された第二更新処理プログラムを再起動する。
【００２６】
次に、更新された第二更新プログラム４１ｂを用いて、応用部プログラム４１ａの更新を行う。なお、図５のステップＳ４５〜Ｓ４９は、図４のステップＳ３０〜Ｓ３４に近似しているが、応用部プログラムの更新データの通信経路が通信プロトコルＡではなく通信プロトコルＢである点で異なっている。
まず、ステップＳ４５では、組込み機器４１のＣＰＵ１０が、応用部プログラム４１ａを更新する旨の更新要求を上位装置４０から受信する。そして、ステップＳ４６では、ＣＰＵ１０が、ＲＯＭ１２に記憶された更新した第二更新処理プログラム４１ｂに従う処理を行う。ステップＳ４７では、ＣＰＵ１０が、応用部ブログラム４１ａを更新するための更新データをダウンロードして、メモリ１１に記憶させる。この更新データをダウンロードするときの通信プロトコルは、更新した第二更新プログラムにより実行されるので通信プロトコルＡではなく通信プロトコルＢである。ステップＳ４８では、ＣＰＵ１０が、メモリ１１に記憶した更新データとＲＯＭ１２に記憶した更新した第二更新プログラムとを用いて、応用部プログラムを更新する。応用部プログラムの更新が終了すると、ステップＳ４９において、ＣＰＵ１０から上位装置４０に対して更新が終了した旨の終了通知を行い、応用部プログラムの更新処理が完了する。
【００２７】
図５に示すように、本願の実施に用いられる組込み機器４１によれば、更新対象である第二更新プログラムの設定内容（通信プロトコル）を変更し、更新した設定内容で応用部プログラムの更新を行うことができる。
また、更新対象である第二更新プログラムの更新に、更新対象外である第一更新プログラムを使用しているので、例えば、更新対象である応用部プログラムや第二更新プログラムに更新に伴う不具合が発生したとしても、ＣＰＵ１０が、更新対象外である第一更新プログラムを使用して応用部プログラムに対する更新処理を再び実行することができる。そのため、本願の組込み機器によれば、更新において不具合が発生した場合であっても、物理的なＲＯＭの交換をすることなく修復を行うことができるのでコスト面や保守面において優れている。
【００２８】
なお、図５では、ＣＰＵ１０が、メモリ１１に記憶した更新データとＲＯＭ１２に記憶した第一更新プログラムとを用いて、第二更新プログラムの更新処理を実行しているが、その代わりに、第一更新プログラムのみを用いて第二更新プログラムの更新を実行することもできる。また、ＣＰＵ１０が、第二更新プログラムと応用部プログラムの更新データとを用いて応用部プログラムを更新しているが、その代わりに、第二更新プログラムと応用部プログラムとが連携し、応用部プログラムの更新データを用いて、応用部プログラムの更新処理を実行することもできる。
【００２９】
また、図６を参照して、更新対象である第二更新プログラムとして複数のプログラムを記憶したファームウェア構成例を示す。図６は、第二更新プログラム２２の設定内容のうち、通信プロトコルの変更に関する複数のプログラムを示している。具体的には、第二更新プログラム２２は、ＨＴＴＰ＋ＣＧＩやＦＴＰなどのインターネット標準プロトコルに関する更新プログラム２２ａおよび２２ｂと、ＴＣＰ／ＩＰを利用した独自通信プロトコルＡおよびＢに関する更新プログラム２２ｃおよび２２ｄと、シリアル通信プロトコルに関する更新プログラム２２ｅと、リムーバブルメモリを経由した場合の更新プログラム２２ｆとを含む。このように第二更新プログラムの設定内容をＲＯＭ１２に予め記憶させているので、応用部プログラムの更新時に更新データを送信する必要がなくなる。
なお、この第二更新プログラムの設定内容や記憶しておくべき更新データの個数や種類については、組込み装置の用途・機能やデータ設置場所や運用形態などに応じて個別に選択されるべきものであり、上記の内容に限定されない。
【００３０】
なお、本明細書に記載した実施形態は、本発明の単なる例示であり、これに限定されるものではないことに注意されたい。つまり、上記の実施形態に対して、さらなる変更または修正を行うことができる。このような変更または修正された実施形態は、本明細書によって開示される範囲内にすべて包含されるものであり、特許請求の範囲によって保護されるものである。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施に用いられる組込み機器のハードウェア構成例の概略図である。
【図２】図１の組込み機器の不揮発性メモリ（ＲＯＭ）内のファームウェアの構成図である。
【図３】本発明の実施に用いられる組込み機器を備えたシステムにおいて、応用部プログラム内のアプリケーションの更新方法の概要を説明するための流れ図である。
【図４】通信プロトコルなどの設定内容の変更が不要な場合の応用部プログラムの更新シーケンスを示すラダー図である。
【図５】通信プロトコルなどの設定内容の変更が必要な場合の応用部プログラムの更新シーケンスを示すラダー図である。
【図６】第二更新プログラムを複数用意した場合のファームウェアの構成図である。
【符号の説明】
【００３２】
１０  演算手段（ＣＰＵ）
１１  メモリ
１２  不揮発性メモリ（ＲＯＭ）
１３  インタフェース
２０  基本部プログラム
２１  応用部プログラム
２２  第二更新プログラム
【図１】
2007249360.tif 000003
【図２】
2007249360.tif 000004
【図３】
2007249360.tif 000005
【図４】
2007249360.tif 000006
【図５】
2007249360.tif 000007
【図６】
2007249360.tif 000008