(57)【要約】【課題】  装置内の各モジュールに設定されていた設定情報が削除されてしまうことなくファームウェアの更新が行われるファームウェア更新装置およびファームウェア更新システムを提供する。【解決手段】  ＰＣ１０において、プリンタ３０より各モジュールのファームウェアのバージョン番号が取得され、サーバ２０より最新版のファームウェアのバージョン番号が取得され、更新が必要なファームウェアが特定され、ファームウェアの更新に際して各モジュールに設定される設定情報のうち保存が必要な設定情報がストレージ１３に記憶され、サーバ２０から取得された最新版のファームウェアを各モジュールに更新した後、ストレージ１３に記憶された設定情報が各モジュールに再設定される。【選択図】  図１
2009193218.tif 000002
【特許請求の範囲】
【請求項１】
複数の構成部分を含む更新対象装置から各構成部分のファームウェアの版情報を取得する版情報取得手段と、
前記更新対象装置の各構成部分のファームウェアの更新に際して、前記各構成部分の更新するファームウェアの版情報をファームウェア提供装置から取得する更新版情報取得手段と、
前記版情報取得手段で取得した前記各構成部分のファームウェアの版情報と前記更新版情報取得手段で取得した前記各構成部分の更新するファームウェアの版情報とを比較して更新が必要なファームウェアを特定する更新ファームウェア特定手段と、
前記更新ファームウェア特定手段で特定したファームウェアの更新後に前記更新対象装置に対して設定する設定情報を、ファームウェアの更新前に前記更新対象装置から一時保存する保存手段と、
前記更新ファームウェア特定手段で特定したファームウェアを前記ファームウェア提供装置から取得するファームウェア取得手段と、
前記保存手段による前記設定情報の保存後に前記ファームウェア取得手段で取得したファームウェアで前記特定手段で特定したファームウェアを更新する更新手段と、
前記更新手段による前記ファームウェアの更新後に前記保存手段で保存した前記設定情報を前記更新対象装置に対して設定する設定手段と
を具備するファームウェア更新装置。
【請求項２】
前記保存手段は、
保存が必要な設定情報の中で暗号化が必要な設定情報は暗号化して保存する請求項１記載のファームウェア更新装置。
【請求項３】
前記更新ファームウェア特定手段で特定したファームウェアの更新に際して正常動作が可能なファームウェアの組み合わせおよび順番を判別する判別手段
を更に具備し、
前記更新手段は、
前記判別手段で判別した組み合わせおよび順番で前記ファームウェアの更新を行う請求項１記載のファームウェア更新装置。
【請求項４】
前記ファームウェア提供装置は、
前記更新対象装置の各構成部分のファームウェアの一覧と前記ファームウェアの正常動作が可能な組み合わせおよび順番を示す動作保証情報を記憶し、
前記判別手段は、
前記ファームウェア提供装置に対して前記動作保証情報を問い合わせることにより前記正常動作が可能なファームウェアの組み合わせおよび順番を判別する請求項３記載のファームウェア更新装置。
【請求項５】
複数の構成部分を含む更新対象装置と、
前記更新対象装置の各構成部分の更新ファームウェアを提供するファームウェア提供装置と、
前記ファームウェア提供装置から前記更新ファームウェアを取得して前記更新対象装置の各構成部分のファームウェアを更新するファームウェア更新装置と
を有し、
前記ファームウェア更新装置は、
前記更新対象装置から各構成部分のファームウェアの版情報を取得する版情報取得手段と、
前記更新対象装置の各構成部分のファームウェアの更新に際して、前記各構成部分の更新するファームウェアの版情報を前記ファームウェア提供装置から取得する更新版情報取得手段と、
前記版情報取得手段で取得した前記各構成部分のファームウェアの版情報と前記更新版情報取得手段で取得した前記各構成部分の更新するファームウェアの版情報とを比較して更新が必要なファームウェアを特定する更新ファームウェア特定手段と、
前記更新ファームウェア特定手段で特定したファームウェアの更新後に前記更新対象装置に対して設定する設定情報を、ファームウェアの更新前に前記更新対象装置から一時保存する保存手段と、
前記更新ファームウェア特定手段で特定したファームウェアを前記ファームウェア提供装置から取得するファームウェア取得手段と、
前記保存手段による前記設定情報の保存後に前記ファームウェア取得手段で取得したファームウェアで前記特定手段で特定したファームウェアを更新する更新手段と、
前記更新手段による前記ファームウェアの更新後に前記保存手段で保存した前記設定情報を前記更新対象装置に対して設定する設定手段と
を具備するファームウェア更新システム。
【請求項６】
前記ファームウェア提供装置は、
前記更新対象装置の各構成部分のファームウェアの一覧と前記ファームウェアの正常動作が可能な組み合わせおよび順番を示す動作保証情報を記憶する記憶手段
を具備し、
前記ファームウェア更新装置は、
前記更新ファームウェア特定手段で特定したファームウェアの更新に際して正常動作が可能なファームウェアの組み合わせおよび順番を前記ファームウェア提供装置に問い合わせる問合せ手段と、
前記問合せ手段による問合せに基づき正常動作が可能なファームウェアの組み合わせおよび順番を判別する判別手段と
を更に具備し、
前記更新手段は、
前記判別手段で判別した組み合わせおよび順番で前記ファームウェアの更新を行う請求項５記載のファームウェア更新システム。
【請求項７】
前記保存手段は、
前記決定手段で決定した保存が必要な設定情報の中で暗号化が必要な設定情報は暗号化して保存する請求項５記載のファームウェア更新システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファームウェア更新装置およびファームウェア更新システムに関する。
【背景技術】
【０００２】
複写装置、印刷装置、ファクシミリ装置、スキャナ装置、それらの機能が組み合わされた複合機などは、装置内に複数の構成部分（モジュール）を備える。
【０００３】
これら装置内のモジュールは、不揮発性メモリにファームウェアが記憶されて、モジュールとしての動作を行う。
【０００４】
そして、これらファームウェアは、新機能追加や不具合防止の為に開発される新しいバージョンのファームウェアに更新が行われるようになっている。
【０００５】
ファームウェアの更新に関する技術として、特許文献１では、管理装置が、第１主装置ファームウェアと第１付属装置ファームウェアと更新の手順を示すファイルとを取得して、そのファイルに基づいてファームウェアの更新処理が行われることで、適切な手順でファームウェアの更新作業が行われる管理装置およびそのプログラムが提案されている。
【０００６】
また、特許文献２では、新しいソフトウェア部品をロードしてバージョンアップする場合にそのソフトウェア部品の識別子とバージョン情報とを共にロードすることで、簡単なバージョンアップの管理を可能にしたソフトウェアのバージョンアップ方法が提案されている。
【０００７】
また、特許文献３によれば、サーバ装置内の組み合わせ管理制御プログラムとクライアント内のエージェントプログラムを備え、各モジュールのバージョンが最適な組み合わせになるアップデートを行うサーバ装置およびデータ処理装置およびデータ処理方法および記憶媒体が提案されている。
【０００８】
また、特許文献４によれば、インストール用記憶媒体に、更新対象のプログラムデータと共にインストールを許可する全ての旧プログラム群バージョンデータを記憶させ、予め指定された組み合わせ以外のプログラム群を搭載したプログラム搭載機器であれば、インストール用記憶媒体からのプログラムの更新を禁じるプログラム搭載機器のプログラム更新方法が提案されている。
【特許文献１】特開２００４−１１８５８６号公報
【特許文献２】特開平１１−１４３６９４号公報
【特許文献３】特開２００６−２４３９１２号公報
【特許文献４】特開平７−１６０５１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、上記特許文献による技術によれば、ファームウェアが更新される際に、モジュールに設定されていた設定情報（例えば、ユーザ情報や、ログ情報など）が削除されてしまう場合もある。
【００１０】
そこで、この発明は、装置の各モジュールのファームウェアが更新される際に、各モジュールに設定されていた設定情報が削除されてしまうことなくファームウェアの更新が行われるファームウェア更新装置およびファームウェア更新システムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成する為に、請求項１の発明のファームウェア更新装置は、複数の構成部分を含む更新対象装置から各構成部分のファームウェアの版情報を取得する版情報取得手段と、前記更新対象装置の各構成部分のファームウェアの更新に際して、前記各構成部分の更新するファームウェアの版情報をファームウェア提供装置から取得する更新版情報取得手段と、前記版情報取得手段で取得した前記各構成部分のファームウェアの版情報と前記更新版情報取得手段で取得した前記各構成部分の更新するファームウェアの版情報とを比較して更新が必要なファームウェアを特定する更新ファームウェア特定手段と、前記更新ファームウェア特定手段で特定したファームウェアの更新後に前記更新対象装置に対して設定する設定情報を、ファームウェアの更新前に前記更新対象装置から一時保存する保存手段と、前記更新ファームウェア特定手段で特定したファームウェアを前記ファームウェア提供装置から取得するファームウェア取得手段と、前記保存手段による前記設定情報の保存後に前記ファームウェア取得手段で取得したファームウェアで前記特定手段で特定したファームウェアを更新する更新手段と、前記更新手段による前記ファームウェアの更新後に前記保存手段で保存した前記設定情報を前記更新対象装置に対して設定する設定手段とを具備するように構成される。
【００１２】
また、請求項２の発明は、請求項１の発明において、前記保存手段は、保存が必要な設定情報の中で暗号化が必要な設定情報は暗号化して保存するように構成される。
【００１３】
また、請求項３の発明は、請求項１の発明において、前記更新ファームウェア特定手段で特定したファームウェアの更新に際して正常動作が可能なファームウェアの組み合わせおよび順番を判別する判別手段を更に具備し、前記更新手段は、前記判別手段で判別した組み合わせおよび順番で前記ファームウェアの更新を行うように構成される。
【００１４】
また、請求項４の発明は、請求項３の発明において、前記ファームウェア提供装置は、前記更新対象装置の各構成部分のファームウェアの一覧と前記ファームウェアの正常動作が可能な組み合わせおよび順番を示す動作保証情報を記憶し、前記判別手段は、前記ファームウェア提供装置に対して前記動作保証情報を問い合わせることにより前記正常動作が可能なファームウェアの組み合わせおよび順番を判別するように構成される。
【００１５】
また、請求項５の発明のファームウェア更新システムは、複数の構成部分を含む更新対象装置と、前記更新対象装置の各構成部分の更新ファームウェアを提供するファームウェア提供装置と、前記ファームウェア提供装置から前記更新ファームウェアを取得して前記更新対象装置の各構成部分のファームウェアを更新するファームウェア更新装置とを有し、前記ファームウェア更新装置は、前記更新対象装置から各構成部分のファームウェアの版情報を取得する版情報取得手段と、前記更新対象装置の各構成部分のファームウェアの更新に際して、前記各構成部分の更新するファームウェアの版情報を前記ファームウェア提供装置から取得する更新版情報取得手段と、前記版情報取得手段で取得した前記各構成部分のファームウェアの版情報と前記更新版情報取得手段で取得した前記各構成部分の更新するファームウェアの版情報とを比較して更新が必要なファームウェアを特定する更新ファームウェア特定手段と、前記更新ファームウェア特定手段で特定したファームウェアの更新後に前記更新対象装置に対して設定する設定情報を、ファームウェアの更新前に前記更新対象装置から一時保存する保存手段と、前記更新ファームウェア特定手段で特定したファームウェアを前記ファームウェア提供装置から取得するファームウェア取得手段と、前記保存手段による前記設定情報の保存後に前記ファームウェア取得手段で取得したファームウェアで前記特定手段で特定したファームウェアを更新する更新手段と、前記更新手段による前記ファームウェアの更新後に前記保存手段で保存した前記設定情報を前記更新対象装置に対して設定する設定手段とを具備するように構成される。
【００１６】
また、請求項６の発明は、請求項５の発明において、前記ファームウェア提供装置は、前記更新対象装置の各構成部分のファームウェアの一覧と前記ファームウェアの正常動作が可能な組み合わせおよび順番を示す動作保証情報を記憶する記憶手段を具備し、前記ファームウェア更新装置は、前記更新ファームウェア特定手段で特定したファームウェアの更新に際して正常動作が可能なファームウェアの組み合わせおよび順番を前記ファームウェア提供装置に問い合わせる問合せ手段と、前記問合せ手段による問合せに基づき正常動作が可能なファームウェアの組み合わせおよび順番を判別する判別手段とを更に具備し、前記更新手段は、前記判別手段で判別した組み合わせおよび順番で前記ファームウェアの更新を行うように構成される。
【００１７】
また、請求項７の発明は、請求項５の発明において、前記保存手段は、前記決定手段で決定した保存が必要な設定情報の中で暗号化が必要な設定情報は暗号化して保存するように構成される。
【発明の効果】
【００１８】
請求項１の発明によれば、各構成部分に設定されていた設定情報が削除されることなく構成部分のファームウェアの更新が行われる。
【００１９】
また、請求項２の発明によれば、各構成部分に設定されていた設定情報が暗号化されて保存される。
【００２０】
また、請求項３の発明によれば、ファームウェアの更新に際して更新対象装置が正常動作するという効果を奏する。
【００２１】
また、請求項４の発明によれば、ファームウェアの更新に際して更新対象装置が正常動作するという効果を奏する。
【００２２】
また、請求項５の発明によれば、各構成部分に設定されていた設定情報が暗号化されて保存される。
【００２３】
また、請求項６の発明によれば、ファームウェアの更新に際して更新対象装置が正常動作するという効果を奏する。
【００２４】
また、請求項７の発明によれば、各構成部分に設定されていた設定情報が暗号化されて保存される。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施例について添付図面を参照して詳細に説明する。
【実施例１】
【００２６】
まず、本発明に係わるファームウェアアップデートシステム１００の構成について図１を参照して説明を行う。
【００２７】
図１は、ファームウェアアップデートシステム１００の構成を示した模式図である。
【００２８】
図１に示すように、ファームウェアアップデートシステム１００は、アップデートされるファームウェアがインストールされているプリンタ３０とパーソナルコンピュータ１０（以下ＰＣ１０と呼ぶ）とがローカルネットワーク１で接続され、ＰＣ１０はインターネット２を介してサーバ２０と接続される。  サーバ２０からはアップデートパッケージがプリンタ３０に送信されて、プリンタ３０にインストールされてるファームウェアのアップデートが行われる。
【００２９】
ＰＣ１０は、中央処理装置と記憶装置（ストレージ１３）とを備えるパーソナルコンピュータである。
【００３０】
そして、ＰＣ１０は、ネットワーク機能１１、アップデータ機能１２、ストレージ１３を備える。
【００３１】
ネットワーク機能１１は、インターネット２とローカルネットワーク１とに接続されて、サーバ２０、プリンタ３０と情報の授受を行う。  そして、ネットワーク機能１１は、更に、サーバ２０からファームウェアの更新パッケージを受信するファームウェア取得機能１１１を有する。
【００３２】
アップデータ機能１２は、プリンタ３０内に格納される各モジュールのファームウェアをアップデートする機能を司る。  そして、アップデータ機能１２は、更に、バージョン番号取得機能１２１、最新版バージョン番号取得機能１２２、更新ファームウェア特定機能１２３、判別機能１２４、バックアップ情報決定機能１２５、ファームウェア更新機能１２６、リストア機能１２７を有する。
【００３３】
バージョン番号取得機能１２１は、プリンタ３０の各モジュールにインストールされているファームウェアのバージョンの番号を取得する。
【００３４】
最新版バージョン番号取得機能１２２は、サーバ２０から最新版のファームウェアのバージョンの番号を取得する。
【００３５】
更新ファームウェア特定機能１２３は、更新が必要なファームウェアを特定する。
【００３６】
判別機能１２４は、ファームウェアの更新に際してプリンタ３０の正常動作が可能なファームウェアの更新順番を判別する。
【００３７】
バックアップ情報決定機能１２５は、ファームウェアが更新される際にバックアップが必要な設定情報を決定する。
【００３８】
ファームウェア更新機能１２６は、判別機能１２４で判別された順番で更新パッケージをプリンタ３０に送信し、ファームウェアを更新させる。
【００３９】
リストア機能１２７は、バックアップされた各モジュールの設定情報を、ファームウェアの更新が終わった後に、各モジュールに対してリストア（再設定）する。
【００４０】
ストレージ１３は、各種記憶装置で構成され、プリンタ３０の各モジュールの設定情報などを記録する処理を行う。
【００４１】
また、サーバ２０は、ネットワーク機能２１、ダウンロードサービス機能２２、ストレージ２３を備える。
【００４２】
ネットワーク機能２１は、インターネット２に接続されてＰＣ１０と情報の授受を行う。
【００４３】
ダウンロードサービス機能２２は、ＰＣ１０より要求された動作保証バージョンマトリックス２４やファームウェアのアップデートパッケージなどをネットワーク機能２１を通じてＰＣ１０に送信する処理を行う。
【００４４】
ストレージ２３は、動作保証バージョンマトリックス２４や、各ファームウェアのバージョン一覧２５や、各モジュールのファームウェアを更新する更新パッケージ等を記憶する。
【００４５】
また、プリンタ３０は、ネットワークモジュール３１、ソフト制御モジュール３２、ハード制御モジュール３３、描画モジュール３４を備える。
【００４６】
ネットワークモジュール３１にはネットワーク制御ソフトウェア３１１がインストールされ、ネットワークモジュール３１はローカルネットワーク１を介してＰＣ１０と情報を授受する（以下、ネットワークモジュール３１を略してMPC、またインストールされているネットワーク制御ソフトウェア３１１を略してMPC-FWと呼ぶことがある。）。
【００４７】
ソフト制御モジュール３２はプリンタ３０で印刷される画像の描画データを生成するなどの画像形成の為のソフト的な制御を行う。そして、ソフト制御モジュール３２には、ソフト制御モジュール３２を動作させるファームウェアであるソフト制御ソフトウェア３２１がインストールされている（以下、ソフト制御モジュール３２を略してESS、またソフト制御ソフトウェア３２１を略してESS-FWと呼ぶことがある）。
【００４８】
ハード制御モジュール３３は、ハード制御ソフトウェア３３１がインストールされ、プリンタ３０で印刷時に動作する描画モジュール３４などのハードウェアの制御を行う（以下、ハード制御モジュール３３を略してMCU、またハード制御ソフトウェア３３１を略してMCU-FWと呼ぶことがある）。
【００４９】
描画モジュール３４は、図示しない感光体ドラムや転写ベルトや用紙搬送機構を備え、プリンタ３０で画像形成を行う機能を担う。
【００５０】
このように構成されるファームウェアアップデートシステム１００では、ＰＣ１０が、プリンタ３０の各モジュールにインストールされているファームウェアのアップデートの処理を行う。
【００５１】
次に、プリンタ３０の各モジュールにインストールされているファームウェアがアップデートされるときに、ファームウェアアップデートシステム１００で行われる処理について図２を参照して説明を行う。
【００５２】
図２は、プリンタ３０の各モジュールにインストールされているファームウェアがアップロードされるときにファームウェアアップデートシステム１００で行われる処理について示した模式図である。
【００５３】
図２に示すように、ファームウェアアップデートシステム１００では、まず、プリンタ３０の各モジュールにインストールされているファームウェアのバージョンを識別する番号であるバージョン番号がＰＣ１０に送られる（図２の（１））。
【００５４】
そして、ＰＣ１０のアップデータ機能１２は、プリンタ３０から受信したファームウェアの最新版のバージョン番号と、プリンタ３０の動作を保証する各モジュールにインストールされるファームウェアのバージョンの組み合わせである動作保証バージョンマトリックス２４とをサーバ２０から受信する（図２の（２））。
【００５５】
サーバ２０から最新版のバージョン番号を受信したＰＣ１０では、アップデータ機能１２が、最新版のバージョン番号とプリンタの各モジュールにインストールされているバージョン番号とを比較する（図２の（３））。そして、サーバ２０からダウンロードするファームウェアのバージョンやプリンタ３０の各モジュールにファームウェアがインストールされる順番や、プリンタ３０へのインストール時に各モジュールに設定された設定情報がバックアップされるか否かなどが、ＰＣ１０で決定される。
【００５６】
そして、サーバ２０から、ＰＣ１０で決定したプリンタ３０へダウンロードされるファームウェアのアップデートパッケージがＰＣ１０へ送信される（図２の（４））。
【００５７】
そして、ＰＣ１０は、プリンタ３０のモジュールにファームウェアがインストールされる前に、プリンタ３０のモジュールに設定されているＰＣ１０で決定した各設定情報のバックアップを行う（図２の（５））。
【００５８】
設定情報のバックアップが行われた後に、ＰＣ１０は、サーバ２０より取得したファームウェアのアップロードパッケージをプリンタ３０に送信する（図２の（６））。そして、プリンタ３０でアップロードパッケージが使用されてモジュールのファームウェアのアップロードが行われ、その後、ＰＣ１０にバックアップされたモジュールの設定情報がプリンタ３０内の各モジュールに対してリストアされる（図２の（６））。
【００５９】
次に、プリンタ３０内のモジュールのファームウェアが更新される際にＰＣ１０で行われる処理について図３を参照して説明を行う。
【００６０】
図３は、ＰＣ１０で行われる処理について示したフローチャートである。
【００６１】
ＰＣ１０では、プリンタ３０に搭載されているモジュールのファームウェアを更新する指示を受け付けると、ＰＣ１０のバージョン番号取得機能１２１は、プリンタ３０からモジュールのファームウェアのバージョンの番号を取得する（ステップ３０１）。  サーバ２０から、プリンタ３０にインストールされている各ファームウェアの最新版のバージョンの番号と、プリンタ３０にインストールされている各ファームウェアが最新版のバージョンに更新される場合の設定情報のバックアップの必要性についての情報と、動作保証バージョンマトリックス２４とがＰＣ１０のアップデータ機能１２で取得する（ステップ３０２）。
【００６２】
ＰＣ１０の更新ファームウェア特定機能１２３は、プリンタ３０から受信したファームウェアのバージョンの番号と、サーバ２０から受信した最新版のバージョンの番号とを図４に示すように比較して、最新版のバージョンになっていないファームウェアを更新が必要なファームウェアとして認識する（ステップ３０３）。サーバ２０から受信した最新版のバージョンの番号が、更新するバージョンの番号となる。
【００６３】
例えば、図４に示すように、プリンタ３０から受信したファームウェアのバージョンの番号（図４（ａ））とサーバ２０に記憶される各ファームウェアの最新版のバージョンの番号（図４（ｂ））とが比較されて、プリンタ３０にインストールされる全てのファームウェア更新が必要と判断される。
【００６４】
更新が必要なファームウェアの種類が判明すると、次に、そのファームウェアを更新する順序が判別機能１２４により決定される。
【００６５】
ステップ３０３で特定されたファームウェアは更新の必要なファームウェアであるが、プリンタ３０には、ファームウェアがインストールされるモジュールが複数存在し、それらモジュールにインストールされるファームウェアのバージョンによっては、各モジュールにインストールされるファームウェア同士が競合するなどして正常な動作が行われなくなる場合がある。  その為、正常な動作を保証する各モジュールにインストールされるファームウェアのバージョン番号の組み合わせが、動作保証バージョンマトリックス２４として存在する。このように、動作保証バージョンマトリックス２４とは、マトリックス内に記載されたファームウェアのバージョンの組み合わせではプリンタ３０の動作を保証するというものである。
【００６６】
動作保証バージョンマトリックス２４について図５を参照して説明を行う。
【００６７】
図５は、動作保証バージョンマトリックス２４について示した表である。
【００６８】
図５に示すように、「ESS-FW」「MCU-FW」「MPC-FW」のファームウェアのバージョンの組み合わせが特定の組み合わせになっている場合には、プリンタ３０が正常動作するように保証されている。例えば、図５に示すように「ESS-FW」「MCU-FW」「MPC-FW」のバージョンの組み合わせが、それぞれ「1.0」「1.2」「1.2」の場合は動作保証がされるが、それぞれ「1.2」「1.0」「1.0」の場合には動作保証バージョンマトリックス２４に記載されていないので動作保証されない。
【００６９】
このように動作保証されない組み合わせが、ファームウェアの更新時に発生しないように考慮されて、ファームウェアの更新順番は決定される。
【００７０】
ファームウェアの更新順番の決定について説明する。
【００７１】
ステップ３０３で更新が必要なファームウェアが特定されると、次に、ステップ３０４でそれらファームウェアの更新順番が決定される。ステップ３０４のサブルーチンステップについて、図６を参照して説明を行う。
【００７２】
図６は、サブルーチンであるステップ３０４で行われる処理について示したフローチャートである。
【００７３】
図６のステップ６０１に示すように、まず、更新されるファームウェアの更新順番について、考えられる全ての更新順番が算出される。  図４（ａ）に示したプリンタにインストールされている更新前のバージョンから、図４（ｂ）に示した最新版のバージョンに更新される場合には、「ESS-FW」「MCU-FW」「MPC-FW」の３つのファームウェアが更新される順番について考えられる順番は図７に示すように６つ算出される（ステップ６０１）。  算出された６つの順番うちの１つの順番は、例えば、パターン１に示す「ESS→MCU→MPC」のように更新される順番である。
【００７４】
次に、算出されたすべての更新順番について、動作が保証されるか否かの検証が行われる（ステップ６０２）。  算出された更新順番で更新された場合にプリンタ３０が動作保証されるか否かについて図８を参照して説明する。  算出された更新順番は６パターンあり、図８（ａ）から図８（ｆ）で、それらの更新順番で更新された場合に発生するファームウェアのバージョンの組み合わせと、その組み合わせ時における動作保証の内容を示す。
【００７５】
図８（ａ）は、「ESS→MCU→MPC」の順番で更新された場合の、想定されるファームウェアの組み合わせと、その組み合わせ時における動作保証の内容を示した表である。
【００７６】
1番目に「ESS」が更新された場合にはファームウェアのバージョンの組み合わせは、「ESS」「MCU」「MPC」のバージョンの番号がそれぞれ「1.0」「1.0」「1.0」となり、その組み合わせは図５に示す動作保証バージョンマトリックス２４に基づいて動作保証されない組み合わせだと判明される（図８の参照番号８０１）。次に、２番目に「MCU」が更新された場合には、ファームウェアの組み合わせは、「ESS」「MCU」「MPC」のバージョンの番号がそれぞれ「1.0」「1.2」「1.0」となり、その組み合わせは図５に示す動作保証バージョンマトリックス２４に基づいて動作保証されない組み合わせだと判明される（図８の参照番号８０２）。次に、３番目に「MPC」が更新された場合には、ファームウェアの組み合わせは、「ESS」「MCU」「MPC」のバージョンの番号がそれぞれ「1.0」「1.2」「1.2」となっており、その組み合わせは図５に示す動作保証バージョンマトリックス２４に基づいて動作保証される組み合わせだと判明される（図８の参照番号８０３）。図８（ａ）に示すように「ESS→MCU→MPC」の順番で更新された場合には、１番目と２番目の更新時に動作保証がされないので、「ESS→MCU→MPC」の順番は、更新の順番として不適だと判明される。
【００７７】
このように、考えられる６パターンの順番を検証していき、全ての場合で動作保証がされる更新に適した順番を探す。
【００７８】
次に、図８（ｆ）に示す「MPC→MCU→ESS」の順番で更新される場合についての検証について説明する。
【００７９】
１番目に「MPC」が更新された場合にはファームウェアのバージョンの組み合わせは、「ESS」「MCU」「MPC」の順にそれぞれ「1.0」「1.0」「1.2」となる。このバージョンの組み合わせは、図５に示す動作保証バージョンマトリックス２４に基づいて動作保証される組み合わせである。  そして、２番目に「MCU」が更新された場合にはファームウェアのバージョンの組み合わせは、同様にそれぞれ「1.0」「1.2」「1.2」となる。このバージョンの組み合わせは、図５に示す動作保証バージョンマトリックス２４に基づいて動作保証される組み合わせである。最後に３番目として「ESS」が更新された場合のファームウェアのバージョンの組み合わせは、同様にそれぞれ「1.1」「1.2」「1.2」となる。このバージョンの組み合わせも、図５に示す動作保証バージョンマトリックス２４に基づいて動作保証される組み合わせである。
【００８０】
このように、図８（ｆ）に示す「MPC→MCU→ESS」の順番で更新される場合には、ファームウェアのバージョンの組み合わせが常に動作保証される組み合わせとなるので、この順番での更新が「ESS-FW」「MCU-FW」「MPC-FW」の３つのファームウェアの更新に適していると判明される（ステップ６０３）。
【００８１】
そして、判明された更新に適した更新順番で更新を行うように決定される（ステップ６０４）。
【００８２】
このように、ステップ６０１乃至６０４の処理によって、安全な更新順番が決定される（サブルーチンのステップ３０４）。
【００８３】
安全な更新順番がＰＣ１０の判別機能１２４で決定されると、その更新順番で更新が行われるときにプリンタ３０のモジュールに設定されている設定情報のなかでバックアップが必要な設定情報をアップデータ機能１２のバックアップ情報決定機能１２５は確認する（ステップ３０５）。
【００８４】
バックアップの必要性は、ＰＣ１０がサーバ２０から受信した、設定情報のバックアップの必要性についての情報に基づいて確認される。設定情報のバックアップの必要性についての情報は、サーバ２０のストレージ２３に記憶される。
【００８５】
ＰＣ１０がサーバ２０から受信した、設定情報のバックアップの必要性についての情報を図９に示す。図９に示すように、設定情報のバックアップの必要性についての情報は、モジュール毎に設定され、更新前と更新後のバージョンに応じてバックアップの必要性のある設定情報が記されている。  そして、バックアップの際に暗号化が必要か否かについても記されている。  例えば、モジュール「MCU」については、更新が「1.1→1.2」の場合には、バックアップの必要性の有る箇所は「温度調節」と「カウンタ」であり、カウンタのバックアップについては暗号化が必要であると記される（参照番号９０１）。  「カウンタ」は課金等の情報が含まれているので、暗号化が必要である。
【００８６】
このように、ファームウェアの更新の内容に応じて、モジュール内のバックアップの必要性のある設定情報が決定される（ステップ３０５）。そして、バックアップの必要性のある設定情報が決定されると、サーバ２０より受信した、設定情報のバックアップの必要性についての情報に基づいて暗号化が必要な設定情報も決定される（ステップ３０６）。
【００８７】
このようにして、バックアップの必要性のある設定情報とバックアップの際の暗号化の必要性のある設定情報が決定される。  決定された更新処理についての情報を図１０を参照して説明する。  図１０に示すように、モジュール毎に更新される前と更新後のバージョンが決定され、そして、その更新においてバックアップされる設定情報とそれらのバックアップの際に暗号化が必要か否かが決定される。
【００８８】
次に、ＰＣ１０は、サーバ２０へ、ステップ３０４で決定された内容の更新が実行される更新パッケージを要求して、ファームウェア取得機能１１１でそれらを受信する（ステップ３０７）。
【００８９】
ＰＣ１０は、サーバ２０からファームウェアの更新パッケージを受信すると、プリンタ３０に対して、ファームウェアが更新される各モジュールに設定された設定情報のバックアップをステップ３０５で決定された設定情報について要求する。  プリンタ３０に対するバックアップの要求は、ステップ３０６で決定された暗号化が必要な設定情報については、暗号化されて記憶されるように要求される。
【００９０】
モジュールの設定情報のバックアップ先がＰＣ１０となっているので、プリンタ３０に要求されたバックアップの情報がＰＣ１０に送信されてストレージ１３に記憶される（ステップ３０８）。  バックアップ先がＰＣ１０以外の場所に予め指定されていた場合には、その指定先へバックアップされる。
【００９１】
ＰＣ１０では、ステップ３０５で決定された設定情報であるバックアップ情報をストレージ１３に記憶し、暗号化が要求される設定情報については暗号化して記憶する。
【００９２】
バックアップが必要な設定情報がバックアップされると、ＰＣ１０のファームウェア更新機能１２６は、ステップ３０７でサーバ２０から受信した更新パッケージでステップ３０４で決定された更新順番の最初の更新パッケージをプリンタ３０に送信する（ステップ３０９）。
【００９３】
プリンタ３０では、ＰＣ１０から送られた更新パッケージに基づいて、最初の更新が行われる。最初の更新が行われると、更新されたモジュールのバックアップされたバックアップ情報がリストア機能１２７によりバックアップ先からリストアされる（ステップ３０９）。
【００９４】
プリンタ３０で、ファームウェアの最初の更新とリストアが行われると、ＰＣ１０のファームウェア更新機能１２６は、ステップ３０４で決定された更新順番に従って、次に更新されるファームウェアの更新パッケージをプリンタ３０に送信する（ステップ３０９）。
【００９５】
そして、プリンタ３０では、受信した更新パッケージが使用されて、次の更新順番に相当するモジュールにおいて、ファームウェアの更新と設定情報のリストアが行われる。
【００９６】
このようにステップ３０４で決定された更新順番に従って、プリンタ３０の各モジュールのファームウェアの更新とリストアが行われる。
【００９７】
ファームウェアの更新はステップ３０４で決定された更新順番で更新される為、いくつかのファームウェアが更新されて１つのファームウェアの更新中に停電などが発生して再起動した場合でも、更新されたファームウェアの組み合わせは動作保証されるので、プリンタ３０は正常に機能する。
【００９８】
例えば、図８（ｆ）に示す更新順番で２番目の更新が終了した時点で再起動が発生した場合には、再起動後のファームウェアの組み合わせは「ESS」「MCU」「MPC」のバージョンの番号がそれぞれ「1.0」「1.2」「1.2」となり、この組み合わせは動作保証される組み合わせである。  それで２番目の更新が終了した時点で再起動が発生しても、再起動後にプリンタ３０は正常に機能する。  更新順番に従って更新される全てのモジュールについて、ファームウェアが更新され、バックアップされた情報のリストアが行われると、ファームウェアアップデートシステム１００におけるプリンタ３０のモジュールにインストールされたファームウェアの更新処理は終了する。
【００９９】
尚、ステップ３０９で、単純に設定情報をリストアできない場合には、新しいファームウェアに適合するように設定情報が更新されてリストアが行われる。
【０１００】
単純に設定情報がリストアできない場合とは、例えば、新しいファームウェアでの設定情報の入力箇所のユーザ名やドキュメント名の文字列数が増えた場合や、ログのカウンタの桁数が増えた場合や、対応プロトコルが増えた場合があるが、このような場合には、リストア機能１２７がストレージ１３に記憶する設定情報を新しいファームウェアに適合するように更新してプリンタ３０に送信するように構成される。
【０１０１】
尚、ステップ６０１では、更新前のファームウェアのバージョンの番号が「1.0」で最新版のファームウェアのバージョンの番号が「1.2」の場合には、「1.1」を飛ばして「1.0」から「1.2」と更新される順番が算出されるように説明したが、「1.0」から「1.2」への更新について「1.0」から「1.1」に更新されて次に「1.1」から「1.2」に更新される更新順番が算出されてもよい。
【０１０２】
例えば、「ESS」が「1.0→1.1」に、「MCU」が「1.0→1.1」後に「1.1→1.2」に、「MPC」が「1.0→1.2」にそれぞれ更新される場合は、「MCU」が「1.0→1.2」と更新される場合と比べて、考えられる更新順番の種類が増大する。  そして、この増大した更新順番のパターンの中から安全な更新順番を探すように構成してもよい。  その場合には、安全な更新順番が決定されると、その更新順番での更新に伴う設定情報のバックアップの必要性についての情報をＰＣ１０が所持していない場合には、サーバ２０からその情報を取得する。  すなわち、「MCU」が「1.0→1.2」に更新される際に「1.0→1.1」と「1.1→1.2」とに分けて更新される場合には、「1.0→1.1」についての設定情報のバックアップの必要性の情報と「1.1→1.2」についての設定情報のバックアップの必要性の情報をＰＣ１０が所持していない場合には、それらの情報がサーバ２０より取得される。
【０１０３】
尚、ステップ３０６で決定された暗号化が必要な設定情報については、モジュールの設定情報のバックアップ先で暗号化されて記憶されるのではなく、プリンタ３０からバックアップ先への通信経路上での盗み見を防止するために、プリンタ３０で暗号化されてバックアップ先に送信されてバックアップ先で記憶されるようにも構成できる。  その際には、プリンタ３０には、ステップ３０６で決定された暗号化の必要な設定情報を暗号化する暗号化部と、リストア時にバックアップ先から受信した暗号化された設定情報を復号する復号化部とを有する。
【実施例２】
【０１０４】
次に、ファームウェアアップデートシステム１００において、プリンタ３０に搭載されるモジュールのファームウェアがアップデートされる場合でなくて、一般的な装置４０に搭載されるモジュールのファームウェアがアップデートされる場合について説明を行う。
【０１０５】
装置４０は、プリンタ、スキャナ、ファクシミリ、それらの機能を統合した複合機、など、複数のモジュールによって構成されて、各モジュールはインストールされるファームウェアによって動作する装置であればよい。  そして、そのモジュールにインストールされるファームウェアはバージョンアップされたファームウェアに更新される構成をとる。
【０１０６】
図１１に示すように、装置４０には、装置４０を動作させるモジュールＡ（４１）、モジュールＢ（４２）、モジュールＣ（４３）、モジュールＤ（４４）とが配置される。
【０１０７】
モジュールＡ（４１）、モジュールＢ（４２）、モジュールＣ（４３）、モジュールＤ（４４）は、それぞれ装置４０を構成している部品である。
【０１０８】
そして、モジュールＡ（４１）、モジュールＢ（４２）、モジュールＣ（４３）、モジュールＤ（４４）には、それぞれ、ファームウェアがインストールされている。  モジュールにインストールされるファームウェアは、ファームウェアアップデートシステム１００の機能により、新しいバージョンのファームウェアが出る度にその都度更新される。
【０１０９】
次に、ファームウェアアップデートシステム１００において、装置４０にインストールされる各モジュールのファームウェアが更新される処理について図１２を参照して説明を行う。
【０１１０】
図１２は、装置４０が含まれるファームウェアアップデートシステム１００でファームウェアが更新される処理を示したフローチャートである。
【０１１１】
まず、ＰＣ１０は、装置４０にインストールされているファームウェアの更新の指示を受け付けると、バージョン番号取得機能１２１が装置４０に搭載されるモジュールにインストールされるファームウェアのバージョンの番号を問い合わせる。
【０１１２】
そして、ＰＣ１０のバージョン番号取得機能１２１は、装置４０からモジュールのファームウェアのバージョンの番号を取得する（ステップ１２０１）。  サーバ２０から、装置４０にインストールされている各ファームウェアの最新版のバージョンの番号と、装置４０にインストールされている各ファームウェアが最新版のバージョンに更新される場合の設定情報のバックアップの必要性についての情報と、動作保証バージョンマトリックス２４とがＰＣ１０のアップデータ機能１２が取得する（ステップ１２０２）。
【０１１３】
ＰＣ１０の更新ファームウェア特定機能１２３は、装置４０から受信したファームウェアのバージョンの番号と、サーバ２０から受信した最新版のバージョンの番号と比較して、最新版のバージョンになっていないファームウェアの更新が必要なファームウェアの認識を行う（ステップ１２０３）。
【０１１４】
そして、ＰＣ１０の判別機能１２４は、更新が必要なファームウェアの更新順番を決定する（ステップ１２０４）。更新されるファームウェアの更新順番の決定について図１３を参照して説明する。
【０１１５】
まず、ＰＣ１０の判別機能１２４は、ステップ１２０３で認識された更新の必要なファームウェアが更新される順番について、すべての考えられる順番を算出する（ステップ１３０１）。
【０１１６】
そして、算出された全ての更新順番について、実際にそれらの更新順番でファームウェアの更新が行われたときに、最初から最後まで動作保証される状態が続くか否かの検証を行う（ステップ１３０２）。
【０１１７】
動作保証の検証は、実施例１のステップ６０２で説明したように、算出された全ての更新順番のそれぞれで更新されて発生する各ファームウェアの組み合わせについて、動作保証される状態が最初から最後まで続くか否かが検証されて行われる。
【０１１８】
そして、判別機能１２４によって、動作保証される状態が更新の最初から最後まで続く更新順番があると（ステップ１３０３）、その更新順番が、ファームウェアが更新される更新順番として決定される（ステップ１３０４）。
【０１１９】
このようにして（ステップ１３０１乃至１３０４）、更新の必要なファームウェアが安全に更新される更新順番が決定されると、バックアップ情報決定機能１２５は、ステップ１２０２で受信した、設定情報のバックアップの必要性についての情報に基づいて、装置４０のモジュールに設定されているバックアップの必要な設定情報を確認する（ステップ１２０５）。  また、アップデータ機能１２は、ステップ１２０２で受信した、設定情報のバックアップの必要性についての情報に基づいて、ステップ１２０５で確認されたバックアップの必要な設定情報のうち暗号化が必要な設定情報の確認を行う（ステップ１２０６）。
【０１２０】
次に、ＰＣ１０は、サーバ２０へ、ステップ１２０４で決定された内容の更新が行われる更新パッケージを要求して、ファームウェア取得機能１１１でそれらを受信する（ステップ１２０７）。
【０１２１】
そして、ＰＣ１０は、装置４０に対して、ファームウェアが更新される各モジュールに設定された設定情報のバックアップをステップ１２０５で決定された設定情報について要求する。  バックアップの要求に関して、ステップ１２０６で決定された暗号化の必要な設定情報については、暗号化されて記憶されるように要求される。
【０１２２】
バックアップ先がＰＣ１０に指定されている場合には、ステップ１２０５で決定された設定情報であるバックアップ情報がＰＣ１０のストレージ１３に記憶される（ステップ１２０８）。
【０１２３】
暗号化が必要な設定情報は暗号化されて記憶される。
【０１２４】
バックアップが終了すると、ステップ１２０７でサーバ２０から受信した更新パッケージがステップ１２０４で決定された更新順番に従って、ファームウェア更新機能１２６により装置４０に送信される。
【０１２５】
そして、最初に装置４０に送信された更新パッケージにより、装置４０のモジュールの１つのファームウェアが更新されると、更新されたモジュールについてのバックアップされたバックアップ情報がリストア機能１２７によりバックアップ先からリストアされる（ステップ１２０９）。
【０１２６】
装置４０にあるモジュールで、ファームウェアの最初の更新とリストアが行われると、ＰＣ１０のファームウェア更新機能１２６は、ステップ１２０４で決定された更新順番に従って、次に更新されるファームウェアの更新パッケージを装置４０に送信する（ステップ１２０９）。
【０１２７】
そして、装置４０では、受信した更新パッケージが使用されて、次の更新順番に相当するモジュールにおいて、ファームウェアの更新と設定情報のリストアが行われる。
【０１２８】
このように、ステップ１２０４で決定された更新順番に従って、装置４０の各モジュールのファームウェアの更新とリストアが行われる。
【０１２９】
更新順番に従って更新される全てのモジュールについて、ファームウェアが更新され、バックアップされた情報のリストアが行われると、ファームウェアアップデートシステム１００における装置４０のモジュールにインストールされたファームウェアの更新処理は終了する。
【０１３０】
尚、ステップ１２０９で、単純に設定情報をリストアできない場合（例えば、新しいファームウェアでの設定情報の入力箇所のユーザ名やドキュメント名の文字列数が増えた場合や、ログのカウンタの桁数が増えた場合や、対応プロトコルが増えた場合）には、リストア機能１２７がストレージ１３に記憶する設定情報を新しいファームウェアに適合するように更新して装置４０に送信するように構成される。
【０１３１】
尚、ステップ１３０１では、更新前のファームウェアのバージョンの番号が「1.0」で更新される最新版のファームウェアのバージョンの番号が「1.2」の場合には、ステップ１３０１では、「1.1」を飛ばして「1.0」から「1.2」と更新されるだけではなく、実施例１と同じように、途中のバージョンである「1.1」が飛ばされないで「1.0」→「1.1」、「1.1」→「1.2」と複数回の更新処理によって最新版の「1.2」への更新が行われるようにして、安全な更新順番が算出されてもよい。
【０１３２】
尚、ステップ１２０５で決定された暗号化が必要な設定情報については、モジュールの設定情報のバックアップ先で暗号化されて記憶されるのではなく、装置４０からバックアップ先への通信経路上での盗み見を防止するために、装置４０で暗号化されてバックアップ先に送信されてバックアップ先で記憶されるようにも構成できる。  その際には、装置４０には、ステップ１２０５で決定された暗号化の必要な設定情報を暗号化する暗号化部と、リストア時にバックアップ先から受信した暗号化された設定情報を復号する復号化部とを有する。
【産業上の利用可能性】
【０１３３】
この発明は、ファームウェア更新装置およびファームウェア更新システムにおいて利用可能である。
【図面の簡単な説明】
【０１３４】
【図１】ファームウェアアップデートシステム１００の構成を示す模式図。
【図２】ファームウェアアップデートシステム１００で行われる処理を示す模式図。
【図３】ＰＣ１０で行われる処理を示したフローチャート。
【図４】プリンタ３０にインストールされるファームウェアと最新版のファームウェアのバージョンの番号を示す表。
【図５】動作保証バージョンマトリックス２４について示した表。
【図６】サブルーチンのステップ３０４での処理を示したフローチャート。
【図７】更新の順番について考えられる全ての順番を示した表。
【図８】すべての更新順番での動作保証の確認について示した表。
【図９】ファームウェアの更新処理に伴ってバックアップの必要性のある設定情報を示した表。
【図１０】行われる更新処理とバックアップされる設定情報と暗号化の必要性とを示した表。
【図１１】装置４０を含んで構成されるファームウェアアップデートシステム１００の構成を示す模式図。
【図１２】装置４０が含まれるファームウェアアップデートシステム１００で行われる処理を示したフローチャート。
【図１３】サブルーチンのステップ１２０４での処理を示したフローチャート。
【符号の説明】
【０１３５】
１    ローカルネットワーク
２    インターネット
１０    ＰＣ
１１    ネットワーク機能
１１１    ファームウェア取得機能
１２    アップデータ機能
１２１    バージョン番号取得機能
１２２    最新版バージョン番号取得機能
１２３    更新ファームウェア特定機能
１２４    判別機能
１２５    バックアップ情報決定機能
１２６    ファームウェア更新機能
１２７    リストア機能
１３    ストレージ
２０    サーバ
２１    ネットワーク機能
２２    ダウンロードサービス機能
２３    ストレージ
２４    動作保証バージョンマトリックス
２５    各モジュールのバージョン一覧
３０    プリンタ
３１    ネットワークモジュール（ＭＰＣ）
３２    ソフト制御モジュール（ＥＳＳ）
３３    ハード制御モジュール（ＭＣＵ）
３４    描画モジュール
【図１】
2009193218.tif 000003
【図２】
2009193218.tif 000004
【図３】
2009193218.tif 000005
【図４】
2009193218.tif 000006
【図５】
2009193218.tif 000007
【図６】
2009193218.tif 000008
【図７】
2009193218.tif 000009
【図８】
2009193218.tif 000010
【図９】
2009193218.tif 000011
【図１０】
2009193218.tif 000012
【図１１】
2009193218.tif 000013
【図１２】
2009193218.tif 000014
【図１３】
2009193218.tif 000015