(57)【要約】【課題】新規のファームウェアが正常に動作できる環境を整えることができる情報処理装置を提供すること。【解決手段】少なくとも１つ以上のファームウェアを実行する情報処理装置１０であって、ファームウェアごとにファームウェアの更新に際して要求される事前条件が各ファームウェアの更新順に設定され、更に、更新されたファームウェアの環境を整えるための処理が設定された環境条件が設定された更新手順情報を参照し、更新順に前記事前条件を判断し、前記事前条件を満たしている場合、更新対象のファームウェアの更新を行い、少なくとも１つ以上のファームウェアの更新後、前記環境条件に従って処理を行うファームウェア更新制御手段１２、を有する。【選択図】図１
2019149048.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つ以上のファームウェアを実行する情報処理装置であって、
ファームウェアごとにファームウェアの更新に際して要求される事前条件が各ファームウェアの更新順に設定され、更に、更新されたファームウェアの環境を整えるための処理が設定された環境条件が設定された更新手順情報を参照し、
前記事前条件を更新順に判断し、前記事前条件を満たしている場合、更新対象のファームウェアの更新を行い、
少なくとも１つ以上のファームウェアの更新後、前記環境条件に従って処理を行うファームウェア更新制御手段、を有する情報処理装置。
【請求項２】
前記環境条件はファームウェアの更新後に前記情報処理装置の少なくとも一部を再起動することであり、
再起動によりファームウェアがＲＡＭに展開されることで、別のファームウェアの前記事前条件を満たすことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ファームウェア更新制御手段は、前記環境条件に従った処理として、前記情報処理装置の全体を再起動することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記ファームウェア更新制御手段は、前記環境条件に従った処理として、前記情報処理装置が有する部品を再起動することを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
着脱可能な部品が接続されており、
前記ファームウェア更新制御手段は、前記環境条件に従った処理として、前記部品の電源オンを行い前記部品との通信を再開させることを特徴とする請求項１〜４のいずれか1項に記載の情報処理装置。
【請求項６】
前記ファームウェア更新制御手段は、前記環境条件に従った処理として、前記情報処理装置を所定の部品のファームウェアを更新できる起動モードで再起動させることを特徴とする請求項１〜５のいずれか1項に記載の情報処理装置。
【請求項７】
前記更新手順情報には更新されるファームウェアの優先度が設定されており、
前記ファームウェア更新制御手段は、前記事前条件を満たさない場合、前記優先度が閾値以上の場合は、前記情報処理装置の再起動後にファームウェアの更新を再度、試行し、
前記優先度が閾値以上でない場合は、前記情報処理装置の再起動後にファームウェアの更新を試行しないことを特徴とする請求項１〜６のいずれか1項に記載の情報処理装置。
【請求項８】
前記ファームウェア更新制御手段は、前記事前条件を満たさない場合、前記優先度に応じて定められているリトライ回数だけ、前記情報処理装置の再起動後にファームウェアの更新を試行することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記ファームウェア更新制御手段は、
更新用のファームウェアの方が、前記情報処理装置にインストールされているファームウェアよりも新しい場合にファームウェアを更新するものであり、
前記ファームウェアの更新が不要な場合でも、更新が不要なファームウェアのバージョンを外部から確認するための代表バージョンを、更新後の代表バージョンに更新することを試みることを特徴とする請求項１〜８のいずれか1項に記載の情報処理装置。
【請求項１０】
前記ファームウェア更新制御手段は、
前記情報処理装置にインストールされているファームウェアを更新するためのファームウェアをインストールした後、前記情報処理装置を再起動して、
前記更新するためのファームウェアにより前記情報処理装置にインストールされているファームウェアを更新することを特徴とする請求項１〜９のいずれか1項に記載の情報処理装置。
【請求項１１】
ネットワークを介してファームウェアに関する情報を記憶するサーバ装置と通信する通信手段を有し、
前記ファームウェア更新制御手段は、
更新用のファームウェアの方が、前記情報処理装置にインストールされているファームウェアよりも新しい場合か否かを判断するため新旧判断情報を有していない場合、
前記通信手段により、前記サーバ装置から前記新旧判断情報を取得することを特徴とする請求項９に記載の情報処理装置。
【請求項１２】
少なくとも１つ以上のファームウェアを実行する情報処理装置が行うファームウェア更新方法であって、
ファームウェア更新制御手段が、ファームウェアごとにファームウェアの更新に際して要求される事前条件が各ファームウェアの更新順に設定され、更に、更新されたファームウェアの環境を整えるための処理が設定された環境条件が設定された更新手順情報を参照し、
更新順に前記事前条件を判断し、前記事前条件を満たしている場合、更新対象のファームウェアの更新を行い、
少なくとも１つ以上のファームウェアの更新後、前記環境条件に従って処理を行う、ファームウェア更新方法。
【請求項１３】
少なくとも１つ以上のファームウェアを実行する情報処理装置を、
ファームウェアごとにファームウェアの更新に際して要求される事前条件が各ファームウェアの更新順に設定され、更に、更新されたファームウェアの環境を整えるための処理が設定された環境条件が設定された更新手順情報を参照し、
更新順に前記事前条件を判断し、前記事前条件を満たしている場合、更新対象のファームウェアの更新を行い、
少なくとも１つ以上のファームウェアの更新後、前記環境条件に従って処理を行うファームウェア更新制御手段、として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、ファームウェア更新方法、及び、プログラムに関する。
【背景技術】
【０００２】
情報処理装置では一般にファームウェアと呼ばれるプログラムが動作する。ファームウェアは情報処理装置の基本的な機能と関わりが大きいハードウェアを制御するソフトウェアの一種である。ファームウェアはＲＯＭ（Read Only Memory）に固定的に組み込まれ、ＨＤＤ（Hard Disk Drive）に記憶されるハードウェアの制御とは必ずしも関係しないプログラムとは区別して扱われる場合が多い。
【０００３】
情報処理装置によっては、サーバと通信して最新のファームウェアを取得して自動的に更新することができるものがある。
【０００４】
しかしながら、ファームウェアの更新では、ファームウェアのバージョンに関する事前条件を満たす必要があり、単に最新のファームウェアを電子機器が取得しても更新できない場合がある。事前条件とは例えば「あるファームウェアが特定のバージョン以上でなければ最新のファームウェアに更新できない」ことをいう。
【０００５】
このような不都合に対して事前条件を満たすように順番にファームウェアを更新する技術が考案されている（例えば、特許文献１参照。）。特許文献１には、主装置向けのファームウェアと、付属装置向けのファームウェアと、それらの更新の手順を示すファイルとを取得し、そのファイルに基づいて主装置の装置構成に応じた手順で主装置のファームウェア及び付属装置のファームウェアの更新処理を行う管理装置について開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の技術では、新規のファームウェアが正常に動作できる環境を整えることが考慮されていないという問題がある。例えば、ファームウェアによっては特定のバージョン以上で起動した後でないと、ファームウェアの更新自体を情報処理装置が実行できない場合があるが、単にファームウェアの更新手順を考慮するだけではファームウェアが正常に動作できる環境を整えることが困難になる。
【０００７】
本発明は、上記課題に鑑み、新規のファームウェアが正常に動作できる環境を整えることができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題に鑑み、本発明は、少なくとも１つ以上のファームウェアを実行する情報処理装置であって、ファームウェアごとにファームウェアの更新に際して要求される事前条件が各ファームウェアの更新順に設定され、更に、更新されたファームウェアの環境を整えるための処理が設定された環境条件が設定された更新手順情報を参照し、更新順に前記事前条件を判断し、前記事前条件を満たしている場合、更新対象のファームウェアの更新を行い、少なくとも１つ以上のファームウェアの更新後、前記環境条件に従って処理を行うファームウェア更新制御手段、を有する。
【発明の効果】
【０００９】
新規のファームウェアが正常に動作できる環境を整えることができる情報処理装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】画像形成装置が行うファームウェアの更新の概略を説明する図である。
【図２】ファームウェア更新システムの構成例を示す図の一例である。
【図３】画像形成装置のハードウェア構成図の一例である。
【図４】サーバ装置の概略的なハードウェア構成図の一例である。
【図５】画像形成装置とサーバ装置の機能をブロック状に示す機能ブロック図の一例である。
【図６】ファームウェアデータ記憶部に記憶されているファームウェアデータの一例と、更新指示記述データ記憶部に記憶されている更新指示記述データの一例を示す図である。
【図７】更新指示記述データのより詳細な内容を示す図の一例である。
【図８】画像形成装置がファームウェアを更新する手順を示すシーケンス図の一例である。
【図９】環境条件を満たすための再起動等の手順を説明するシーケンス図の一例である。
【図１０】画像形成装置が過去のバージョンのファームウェアに関する情報を取得する手順を示すシーケンス図の一例である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態の一例として、画像形成装置１０と画像形成装置１０が行うファームウェア更新方法について図面を参照しながら説明する。
【００１２】
＜ファームウェアの更新の概略＞
図１は、本実施形態の画像形成装置１０が行うファームウェアの更新の概略を説明する図である。本実施形態の画像形成装置１０は、事前条件だけでなく環境条件を含む更新手順情報に基づいてファームウェアの更新を行う。事前条件とは、あるファームウェアが特定のバージョン以上でなければ最新のファームウェアに更新できない等、ファームウェアのバージョンの整合性に関する条件である。
（１）まず、画像形成装置１０はサーバ装置５０から、事前条件と環境条件を含む更新手順情報を取得する。画像形成装置１０は事前条件に従って、1つ以上のファームウェアを更新する。更新とはインストールすることであるが、不揮発性の記憶装置に記憶することをいう。
（２）環境条件には「画像形成装置を再起動」「特殊モードで再起動」など、ファームウェアを更新するために画像形成装置１０が行う処理が記載されている。
（３）画像形成装置１０は、環境条件に従って、画像形成装置の再起動、又は、特殊モードでの再起動等を行う。
【００１３】
このように環境条件に従うことで、更新されたファームウェアが正常に動作するための環境を整えることができる。例えば、再起動により更新したＦＷがＲＡＭに展開され、次に更新されるファームウェアの事前条件を満たすことができる。すなわち、再起動により別のファームウェアが更新できるようになる。また、特殊な起動モードでしか更新できないファームウェアを更新できるようになる。
【００１４】
＜用語について＞
ファームウェアとは、情報処理装置の基本的な機能と関わりが大きいハードウェアを制御するソフトウェアの一種である。ファームウェアはマイクロコードやデバイスドライバなど、情報処理装置の慣習的な用語で呼ばれてよい。特許請求の範囲の情報処理装置はファームウェアが更新される装置であればよい。本実施形態では画像形成装置を例にして説明する。
【００１５】
ファームウェアの更新順とは、複数のファームウェアが更新される場合の好ましい更新の順番である。更新順は絶対的なものでなく順番を飛ばして次のファームウェアが更新されてもよい。
【００１６】
更新されたファームウェアの環境を整えるための処理とは、ファームウェアを実行できる要にする処理、他のファームウェアの更新を可能にする処理、等をいう。本実施形態では一例として再起動することをいう。
【００１７】
＜システム構成例＞
図２は、ファームウェア更新システム１００の構成例を示す図の一例である。ファームウェア更新システム１００は、ネットワークＮを介して通信することができるサーバ装置５０、管理者端末９、サービス端末５、及び、１台以上の画像形成装置１０を有する。
【００１８】
ネットワークＮはファイアウォール６の外側のインターネット７と、ファイアウォール６の内側のＬＡＮ８を有している。ただし、図２ではサーバ装置５０とサービス端末５はインターネット７に接続されているが、ＬＡＮ８に接続されていてもよい。また、ＬＡＮ８は有線又は無線のどちらで構築されていてもよいが、携帯電話網で通信する画像形成装置１０の場合、ＬＡＮを介することなくインターネット７に接続することができる。
【００１９】
また、画像形成装置１０はネットワークＮに接続されている必要はない。上記の更新手順情報は、可搬型の記憶媒体に記憶された状態で画像形成装置１０に配布されてもよく、この場合、画像形成装置１０がサーバ装置５０と通信しなくてもよい。
【００２０】
ＬＡＮ８には画像形成装置１０Ａ〜１０Ｄが接続されているが、画像形成装置１０は１台あればよい。また、ＬＡＮ８には管理者端末９Ａ，９Ｂが接続されている。管理者端末９Ａ，９Ｂは画像形成装置１０を管理する管理者が使用する端末である。管理者はファームウェアを手動でバージョンアップしたり、管理者端末９Ａ，９Ｂを操作して画像形成装置１０の設定を更新したりする。
【００２１】
また、サーバ装置５０は、ファームウェアと更新手順情報を画像形成装置１０に提供する１つ以上の情報処理装置である。各画像形成装置１０は例えば起動時、１日に１回の決まった時刻、省エネ移行時、省エネ復帰時、又は、管理者の操作に応じて新規のファームウェアの有無をサーバ装置５０に問い合わせる。新規のファームウェアがある場合、サーバ装置５０はファームウェアと更新手順情報を画像形成装置１０に提供する。
【００２２】
サービス端末５は、ファームウェアの更新を管理するサービス担当者が操作する端末である。サービス担当者は新規のファームウェアとこのファームウェアの更新手順情報を、サービス端末５からサーバ装置５０に送信する。このようにしてサーバ装置５０に新規のファームウェアと更新手順情報が登録される。この他、サービス担当者はroot権限のパスワード、ユーザの認証方法、サーバソフトウェアのアップデートなど、サーバで一般的な設定を行うことができる。
【００２３】
＜ハードウェア構成例＞
＜＜画像形成装置＞＞
図３は、画像形成装置１０のハードウェア構成図の一例を示す。画像形成装置１０は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤＤ１０４（Hard Disk Drive）、エンジン部１０５、操作部１０６、及び、通信Ｉ/Ｆ１０７を有する。
【００２４】
ＣＰＵ１０１は、図３に示されるハードウェア要素を制御して画像形成等の機能を実現する。ＣＰＵ１０１は、ＲＯＭ１０２又はＨＤＤ１０４からＲＡＭ１０３に展開されたプログラムを実行することで、画像形成装置１０全体の動作を制御する。ＲＯＭ１０２には例えばファームウェアが記憶されており、ＨＤＤ１０４にはＯＳ、ファームウェア、画像形成装置１０が有する機能に対応したアプリ等、各種のプログラムが記憶されている。また、ＨＤＤ１０４にはフォントデータや印刷データも記憶される。
【００２５】
エンジン部１０５は、例えばコピー機能、スキャナ機能、ファクス機能、プリンタ機能などを提供するハード的な駆動部とこれに関する情報処理機能を有する。例えば、原稿の画像をスキャンして読み取るスキャナ（画像読取部）、用紙等のシート材への印刷を行うプロッタ（画像形成部）、ファクス通信を行うファクス部などを備えている。更に、印刷済みシート材を仕分けるフィニッシャや、原稿を自動給送するＡＤＦ（自動原稿給送装置）のような特定のオプションを備えることもできる。
【００２６】
通信Ｉ/Ｆ１０７は、ＬＡＮ８と接続するためのインタフェースであり、例えばイーサネットカード（登録商標）などのＮＩＣ（Network Interface Card）である。操作部１０６は、情報を表示する表示装置であると共に、ユーザからの操作を受け付ける入力装置である。従って、操作部１０６はユーザインタフェースとなる。操作部１０６は好ましくはタッチパネルを有し、操作部１０６に表示されたソフトキー（ボタン）等の押下を受け付ける。また、操作部１０６はハードキーを有していてもよい。
【００２７】
＜＜サーバ装置＞＞
図４は、サーバ装置５０の概略的なハードウェア構成図の一例である。サーバ装置５０は、ＣＰＵ２０１と、ＣＰＵ２０１が使用するデータの高速アクセスを可能とするメモリ２０２とを備える。ＣＰＵ２０１及びメモリ２０２は、システム・バス２０３を介して、サーバ装置５０の他のハードウェア要素、例えば、グラフィックス・ドライバ２０４及びネットワーク・ドライバ（ＮＩＣ）２０５へと接続されている。
【００２８】
グラフィックス・ドライバ２０４は、バスを介してＬＣＤ２０６に接続されて、ＣＰＵ２０１による処理結果をモニタする。また、ネットワーク・ドライバ２０５は、トランスポート層レベル及び物理層レベルでサーバ装置５０をインターネット７へと接続して、データリンク層レベルのセッションを確立させている。
【００２９】
システム・バス２０３には、更にＩ／Ｏバス・ブリッジ２０７が接続されている。Ｉ／Ｏバス・ブリッジ２０７の下流側には、ＰＣＩなどのＩ／Ｏバス２０８を介して、ＩＤＥ、ＡＴＡ、ＡＴＡＰＩ、シリアルＡＴＡ、ＳＣＳＩ、ＵＳＢなどにより、ＨＤＤ（ハードディスクドライブ）２０９などの記憶装置が接続されている。ＨＤＤ２０９はサーバ装置５０の全体を制御するプログラム２０９ｐを記憶している。ＨＤＤ２０９はＳＳＤ（Solid State Drive）でもよい。
【００３０】
また、Ｉ／Ｏバス２０８には、ＵＳＢなどのバスを介して、キーボード及びマウス（ポインティング・デバイスと呼ばれる）などの入力装置２１０が接続され、システム管理者などのオペレータによる入力及び指令を受け付けている。
【００３１】
サーバ装置５０はクラウドコンピューティングに対応していることが好ましい。クラウドコンピューティングとは、特定ハードウェア資源が意識されずにネットワーク上のリソースが利用される利用形態をいう。この場合、図示したサーバ装置５０のハードウェア構成は、１つの筐体に収納されていたり一まとまりの装置として備えられていたりする必要はなく、サーバ装置５０が備えていることが好ましいハード的な要素を示す。
【００３２】
＜ソフトウェア構成例＞
続いて、図５を用いて画像形成装置１０とサーバ装置５０のソフトウェア構成について説明する。図５は、画像形成装置１０とサーバ装置５０の機能をブロック状に示す機能ブロック図の一例である。
【００３３】
＜＜画像形成装置＞＞
画像形成装置１０は、サーバ通信部１１、ファームウェア更新制御部１２、電力状態制御部１３、操作制御部１４、バージョン管理部１５、及び、画像形成部１６を有する。画像形成装置１０が有するこれらの機能は、図３に示された各構成要素のいずれかが、ＨＤＤ１０４からＲＡＭ１０３に展開されたプログラム（ファームウェアを除く）に従ったＣＰＵ１０１からの命令により動作することで実現される機能又は手段である。なお、このプログラムは、プログラム配信用のサーバから配信されるか又は記憶媒体に記憶された状態で配布される。
【００３４】
また、画像形成装置１０は記憶部１９を有している。記憶部１９は図３に示されたＲＯＭ１０２，ＲＡＭ１０３、及びＨＤＤ１０４の少なくとも1つに形成される記憶手段である。
【００３５】
ファームウェア更新制御部１２はファームウェアの更新に関する全体的な処理を行う。更新を行う際、更新の事前条件、及び、環境条件に従い、画像形成装置１０を制御する。例えば、ファームウェア１の更新に必要なファームウェア２のバージョンを事前条件に従って確認し、ファームウェア２を先にインストールしたりする。
【００３６】
また、例えば、画像形成装置１０のファームウェア１を更新後に画像形成装置全体を再起動してから、ファームウェア２，３を更新する。あるいは、ファームウェア１を更新後にファームウェア２の更新をスキップしてファームウェア３を更新し、画像形成装置の全体を再起動してからファームウェア３を更新し、ファームウェア２で使用する部品と接続し直したりする。
【００３７】
バージョン管理部１５は、ファームウェアの各々のバージョンや、各々のファームウェアのバージョンを代表する代表バージョン、画像形成装置１０全体としてサポートできるＩ/Ｆのバージョンなどを管理する。全体としてサポートできるＩ/Ｆのバージョンについっては表２で説明する。
【００３８】
バージョン管理部１５が管理する情報は記憶部１９に記憶される。表１に記憶部１９に記憶されたバージョン管理リスト２１の一例を示す。それぞれのファームウェアのバージョンは画像形成装置１０の起動時に、バージョン管理部１５が各ファームウェアから収集する。
【００３９】
【表１】
2019149048.tif 000003
バージョン管理リスト２１は、表１（ａ）に示すファームウェア全体情報と、表１（ｂ）に示すバージョン情報を有する。ファームウェア全体情報は、画像形成装置１０で動作する１組のファームウェアの全体的な情報（このような情報を書誌情報という場合がある）である。ファームウェア全体情報は、記憶部１９に静的に記憶されていてもよいし、所定のファームウェアが保持しておりバージョン管理部１５がこのファームウェアから取得しても良い。ファームウェア全体情報については、図７にて説明する。
【００４０】
バージョン情報には、ファームウェア（モジュール名）に対応付けて、バージョン、外部Ｉ/Ｆバージョン、及び、公開日等が登録されている。バージョンは各ファームウェアの改訂の回数を表す。外部Ｉ/Ｆバージョンはファームウェアを外部のプログラムが呼び出すＷｅｂＡＰＩのバージョンである。例えば外部のプログラムがＦＴＰ（File Transfer Program）でファームウェアのバージョンを取得する際に外部Ｉ/Ｆが使用される。ユーザは管理者端末９を画像形成装置１０と通信させ、外部Ｉ/Ｆを介して種々の情報を得ることができる。ユーザ環境で世代が異なる画像形成装置１０が使用されている場合、管理者は管理者端末９で外部Ｉ/Ｆバージョンを取得して、画像形成装置１０ごとにサポートされている処理を判断できる。
【００４１】
各々のファームウェアは単独でもアップデートできるため、表１に示すように、ファームウェアA1aの外部Ｉ/Ｆのバージョンは6.0だが、ファームウェアA2aの外部Ｉ/Ｆのバージョンは1.3というケースも生じうる。単なるバージョンとは別に外部Ｉ/Ｆバージョンが管理されるのは、ファームウェアのバージョンと外部Ｉ/Ｆバージョンは一致しない（ファームウェアがバージョンアップしても外部Ｉ/Ｆバージョンは変わらない、又はこの逆）ためである。
【００４２】
【表２】
2019149048.tif 000004
表２は、記憶部１９に記憶される機器サポートＩ/Ｆバージョン２２の一例を示す。機器サポートＩ/Ｆバージョン２２は画像形成装置１０全体としてサポートできるＩ/Ｆのバージョンである。本実施形態では、各々のファームウェアの外部Ｉ/Ｆバージョンうち最低のバージョンである。例えば、表１の例では、画像形成装置１０全体としてバージョン1.3が一番低いため、機器サポートＩ/Ｆバージョン２２は1.3となる。
【００４３】
図５に戻って説明する。電力状態制御部１３は、省エネ状態で操作部１０６から復帰要求を受け取ったら、画像形成装置１０を待機状態（通常状態）に復帰させる。復帰要因は、パネルタッチ、タイマー、ネットワーク経由の外部アクセス等様々なものが存在する。また、電力状態制御部１３は無操作時間に応じて画像形成装置１０又はその一部を待機状態から省エネ状態に移行させる。省エネ移行又は省エネ復帰の要求に合わせて各種デバイスの電源管理を行う。
【００４４】
操作制御部１４は、操作部内の電力状態等を制御する。従って、操作部１０６を再起動することができる。
【００４５】
画像形成部１６は、図３に示したエンジン部１０５を駆動して実現され、画像形成装置１０が備える各種の画像形成機能（例えば、印刷、コピー、スキャン、ファックス等）を実行する。画像形成部１６はエンジン部１０５を再起動することができる。
【００４６】
サーバ通信部１１は、サーバ装置５０と各種の情報を送受信する。本実施形態では、サーバ装置５０に新規のファームウェアに関する情報を問い合わせ、サーバ装置５０からファームウェア及び更新指示情報を取得する。
【００４７】
＜＜サーバ装置＞＞
サーバ装置５０は装置通信部５１とファームウェア管理部５２を有する。サーバ装置５０が有するこれらの機能は、図４に示された各構成要素のいずれかが、ＨＤＤ２０９からメモリ２０２に展開されたプログラムに従ったＣＰＵ２０１からの命令により動作することで実現される機能又は手段である。なお、このプログラムは、プログラム配信用のサーバから配信されるか又は記憶媒体に記憶された状態で配布される。
【００４８】
また、サーバ装置５０はファームウェアデータ記憶部５３と更新指示記述データ記憶部５４を有している。これらは、図４に示されたメモリ２０２及びＨＤＤ２０９の少なくとも1つに形成される記憶手段である。ファームウェアデータ記憶部５３と更新指示記述データ記憶部５４に記憶された情報を図６に示す。
【００４９】
装置通信部５１は、画像形成装置１０と各種の情報を送受信する。本実施形態では、画像形成装置１０から新規のファームウェアに関する情報の問い合わせを受信し、画像形成装置１０にファームウェア及び更新指示情報を送信する。
【００５０】
ファームウェア管理部５２は、ファームウェアデータ記憶部５３に記憶されたファームウェアと更新指示記述データ記憶部５４に記憶された更新指示記述データを管理しており、画像形成装置１０からの要求に応じてこれらを読み出す。
【００５１】
＜ファームウェアデータ記憶部と更新指示記述データ記憶部＞
図６は、ファームウェアデータ記憶部５３に記憶されているファームウェアデータの一例と、更新指示記述データ記憶部５４に記憶されている更新指示記述データの一例を示す。図６（ａ）に示すようにファームウェアデータは機種ごとに用意された各バージョンのファームウェアである。
機種Ａ−Ver1.0−FW_A1a〜FW_A7a
この記載は、機種Ａの代表バージョンが1.0のファームウェアとしてFW_A1a〜FW_A7aがあることを示している。なお、FW_A1a〜FW_A7aのそれぞれは１機種のファームウェアの部品という意味からモジュールと呼ぶ場合がある。また、図６（ｂ）に示すように、機種と代表バージョンごとに更新指示記述データが用意されている。
【００５２】
図７は、一例として更新指示記述データのより詳細な内容を示す図である。更新指示記述データは、ファームウェア全体情報（図７（ａ））と更新手順情報（図７（ｂ））を有する。ファームウェア全体情報は、機種番号、システム部番、システムＩＤ、システムバージョン、Ｉ/Ｆバージョン、及び、公開日の各項目を有する。
【００５３】
機種番号は画像形成装置１０の機種を識別又は特定する情報となる。つまり、この機種に向けたファームウェアであることを示す。システム部番はこのファームウェアで実現されるシステムの部品番号である。システムＩＤはシステムの識別情報である。システムバージョンはシステム全体のバージョンであり、代表バージョンに相当する。Ｉ/Ｆ versionは表２で説明した機器サポートＩ/Ｆバージョン２２である。公開日はこのシステムバージョンで特定される一連のファームウェアの公開日である。
【００５４】
また、更新手順情報は、少なくとも事前条件と環境条件を含む。図７では、Ｎｏ（番号）に対応付けてファームウェアのインストール手順（処理、部番、モジュールＩＤ、バージョン、事前条件、優先度、公開日、ダウンロードＵＲＬ）が順番に記載されている。Ｎｏ（番号）はファームウェアの更新に必要な処理の順番を示す。ファームウェア更新制御部１２はＮｏ（番号）の順に処理を行う。
【００５５】
「処理」は画像形成装置１０が行う実施内容である。例えば「Install」「Reboot」「Panel Reboot」「Force Reboot」「Ctrl Reboot」等である。この実施内容の「Reboot」「Panel Reboot」「Force Reboot」「Ctrl Reboot」が環境条件である。なお、「Install」は更新を意味する。例えばＮｏ４の「Force Reboot」は、Ｎｏ１〜３の少なくとも１つのファームウェアの正常な実行を可能にするためと、Ｎｏ５以降のファームウェアの更新を可能にする（事前条件を満たす）ために行われる。
【００５６】
また、「Reboot」「Panel Reboot」「Force Reboot」「Ctrl Reboot」に事前条件が設定されていてもよい。この場合、事前条件で設定されたファームウェアが所定のバージョン以上であることが再起動に要求される。従って、再起動の事前条件で設定されたファームウェアが更新されることを再起動の条件にできる。例えば、データの初期化のために一度再起動する必要があるファームウェアが対象となる。
【００５７】
他にも「処理」には「次回特殊起動」、「新規部品と接続」等が設定される場合がある。
【００５８】
「部番」はファームウェアの部品番号であり、「モジュールＩＤ」はファームウェアの識別情報である。「バージョン」は各ファームウェアのバージョンである。「事前条件」にはそのファームウェアを更新するために必要な他のファームウェアのバージョンなどが記載される。図７の例では、SRSBBF3のファームウェアをインストールするにはSRSBBF2のバージョンが1.02.00以上でなければならないことが設定されている。事前条件が、更新対象のファームウェアのバージョンを指定してもよい。なお、ファームウェアの新旧判断情報は、バージョンの他、リリース日時や部番のサフィックス（最後の数桁部分）等でもよい。
【００５９】
「優先度」は事前条件が満たされなかった時の振る舞いを示す。例えば、優先度が高い（閾値以上の）ファームウェアは再起動を挟んでもできるだけ更新するように処理される。具体的には、何回か再起動後とインストールがリトライ（試行）される。優先度が通常又は低い場合は（閾値未満の場合）、次回のファームウェアの更新タイミングに更新する。つまりリトライされない。
【００６０】
インストールのリトライの回数も優先度に依存してよい。優先度が高いほど、更新（インストール）に失敗した際にリトライされる回数が多く設定され、優先度が低いほど、更新（インストール）に失敗した際にリトライされる回数が少ないか又はゼロに設定される。
【００６１】
ファームウェア更新制御部１２は優先度に応じたリトライ回数を、ファームウェアに対応付けて再起動前に記憶部１９に記憶しておく。再起動後は、記憶部１９のリトライ回数を参照して更新を試行する。更新に失敗した場合、リトライ回数を１つずつ減少させ再度、再起動する。１回のファームウェア更新の中で事前条件を満たさない場合に再起動してリトライする回数を制限することで、更新時間の増加を防ぐことができる。
【００６２】
「公開日」は各ファームウェア（モジュール）が公開された日付である。「ダウンロードＵＲＬ」は各ファームウェア（モジュール）が保存されているＵＲＬを示す。
【００６３】
ファームウェア更新制御部１２は、基本的には更新指示記述順のＮｏ順にファームウェアを更新する（処理がインストールの場合）が、優先度が緊急（優先度が高よりも高い）のファームウェアがあり、Ｎｏが前であるが優先度が低いファームウェアが事前条件を満たしていない場合、優先度が低いファームウェアの更新をスキップし、優先度が高いファームウェアの更新処理へ移行してよい。こうすることで事前条件を満たさないファームウェアがあっても、優先度の高い重要なファームウェアの更新を早期に行える。
【００６４】
なお、更新手順情報の項目のうちブランクの項目があっても特定の項目であれば、ファームウェア更新制御部１２はデフォルト値を設定することができる。例えば、処理の項目のデフォルト値が「install」であり、処理の項目がブランクの場合、ファームウェア更新制御部１２は処理のブランクの項目に「install」を設定する。また、優先度の項目がブランクの場合、デフォルト値である２を設定する。
【００６５】
その他の項目（部番、モジュールＩＤ、バージョン、事前条件、公開日、ダウンロードＵＲＬ）についてはデフォルト値がないため、これらの項目がブランクの場合はインストールできないと判断される。すなわち、ファームウェア更新制御部１２はインストールを中断してエラーメッセージ等を表示する。
【００６６】
従って、一般的な内容でよい項目については緊急時に省略可能とすることで運用の手間を削減することができる。
【００６７】
＜動作手順＞
図８は、画像形成装置１０がファームウェアを更新する手順を示すシーケンス図の一例である。図８の処理は、１日に１回の決まった時刻、省エネ移行時、省エネ復帰時、又は、管理者の操作に応じてスタートする。
【００６８】
S1：ファームウェア更新制御部１２は、サーバ通信部１１に対し、最新のファームウェアに関する情報を取得させる。
【００６９】
S2：サーバ通信部１１は、サーバ装置５０から最新のファームウェアに関する情報を取得する。自機の機種情報を送信することで自機にとって最新のファームウェアに関する情報を取得できる。
【００７０】
S3：次に、ファームウェア更新制御部１２は自機で起動しているファームウェアのバージョンを含むバージョン管理リスト２１をバージョン管理部１５から取得する。
【００７１】
そして、ファームウェア更新制御部１２は、サーバ装置５０から取得したシステムバージョン（代表バージョン）がバージョン管理リスト２１の代表バージョンよりも新しいか否かを判断する。図８の説明では、システムバージョン（代表バージョン）の方がバージョン管理リスト２１の代表バージョンよりも新しい場合を説明する。
【００７２】
S4：ファームウェア更新制御部１２は、ステップＳ３の判断結果から１つ以上のファームウェアの更新が必要な可能性があると判断し、サーバ通信部１１に対し、更新指示記述データを取得させる。
【００７３】
S5：サーバ通信部１１は、自機の機種情報を指定してサーバ装置５０から最新の更新指示記述データを取得する。
【００７４】
ファームウェア更新制御部１２は、取得した更新指示記述データと、バージョン管理リスト２１に記録された現在起動している各ファームウェアの情報を比較し、更新対象のファームウェア（モジュール）があるか否かを判断する。つまり、各ファームウェアごとにバージョンを比較する。
【００７５】
S6：個別のファームウェアの更新が不要な場合、ファームウェア更新制御部１２はファームウェア全体情報のみを更新する。すなわち、システム部番、システムＩＤ、システムバージョン、Ｉ/Ｆ version、及び、公開日を更新する。個別のファームウェアの更新が必要ないのにこれらのファームウェア全体情報を更新するケースとしては、工場出荷後、ファームウェアをＳＤカードなどで管理者が個々にバージョンアップしたため、個々のファームウェアのバージョンは最新なのに、システム全体としてアップデートしていない状況がある。この場合、ファームウェア全体情報は出荷時のままなので、ファームウェア全体情報を更新することが好ましい。実際は個々のファームウェアが最新であるため最新の機能をサポートできるのに、保持しているファームウェア全体情報が追いついていないケースなので、ファームウェア全体情報のみ更新すればよい。こうすることで、画像形成装置内のファームウェアが新しく、更新対象のファームウェアがない場合でも、I/F version等を更新できる。
【００７６】
S7：バージョン管理部１５はファームウェア更新制御部１２から取得したファームウェア全体情報を記憶部１９のバージョン管理リスト２１に記憶させる。
【００７７】
S8：個別のファームウェアに更新対象がある場合、ファームウェア更新制御部１２がファームウェアを指定してサーバ通信部１１に取得させる。
【００７８】
S9：サーバ通信部１１は、サーバ装置５０から個別のファームウェアを取得する。
【００７９】
ファームウェアを取得すると更新フェーズに移る。更新フェーズでは、ファームウェア更新制御部１２がファームウェアごとに事前条件を確認する。
【００８０】
ステップＳ１０以降の処理は、更新されるファームウェアの数だけ繰り返して実行される。
【００８１】
S10：事前条件を満たしていない場合、ファームウェア更新制御部１２は画像形成装置１０を再起動する。再起動後に、再度、事前条件を確認する。基本的に事前条件はそれ以前に更新したファームウェアによって満たされるようにリリースされるため、再起動すれば事前条件を満たし、更新できるようになる。なお、再起動の回数が多くなると更新全体の時間も長くなるので、優先度が低いファームウェアは例えば、更新をスキップして次のファームウェアの更新処理に移ってもよい。再起動後も、即座に更新処理を継続するか、次の更新タイミングで更新を再開するか、も優先度によって決めてよい。
【００８２】
S11：事前条件を満たしている場合、ファームウェア更新制御部１２がファームウェアを更新する。
【００８３】
更新が終わり、環境条件がある場合、環境条件を満たすための処理を行う。これは、更新後のファームウェアで起動し直さないと不具合が発生するケースがあり、正常に次のファームウェアの更新を行うために、一度、再起動することが好ましいためである。不具合が発生するケースは、更新したデータ（ファームウェア全体情報とファームウェアの少なくとも一方）により外部の部品のデータ（ファームウェア全体情報又はファームウェアの少なくとも一方）との組み合わせ問題が発生するケースなどが挙げられる。
【００８４】
S12：ファームウェア更新制御部１２は、環境条件に従って画像形成装置１０の再起動、部品単位（エンジン、操作部、アプリ等）の再起動、新規部品の利用のための部品起動、特殊ファームウェア更新のための特殊起動などを指定できる。これら再起動の対象も環境条件に記載されている。なお、再起動の詳細を図９で説明する。
【００８５】
S13：更新が完了すると、ファームウェア更新制御部１２はファームウェア全体情報の更新をバージョン管理部１５に要求する。
【００８６】
S14：バージョン管理部１５はファームウェア更新制御部１２から取得したファームウェア全体情報を記憶部１９のバージョン管理リスト２１に記憶させる。ファームウェアだけでなく、そのファームウェアの公開日などの情報も記憶することでそれ以降にファームウェアが更新される際の新旧判断などに利用できる。
【００８７】
図９は、環境条件を満たすための再起動等の手順を説明するシーケンス図の一例である。ファームウェア更新制御部１２は基本的に環境条件に従って動作する。再起動の対象は、例えば、図９に記載しているように、「機器全体の再起動」「操作部の再起動」「エンジン再起動」「新規部品の再起動」「特殊起動」等が挙げられる。
【００８８】
再起動が必要になるのは、実行プログラムはＲＡＭ１０３に展開されて動くため、ファームウェアを不揮発メモリに書き込んでも現在動作しているプログラムは変更されないためである。再起動によりファームウェアがＲＡＭ１０３に展開されて実行される。従って、事前条件で今回更新するファームウェアがインストールされていることが条件になっている場合、そのファームウェアで起動し直す必要がある。その為、環境条件となっている画像形成装置１０又は部品の再起動を行うことで、続けて他のファームウェアも更新できるようになる。
【００８９】
S21：上記のようにファームウェア更新制御部１２はファームウェアを更新する。この後、環境条件がない場合は次のファームウェアの更新に進めばよい。
【００９０】
S22：環境条件が画像形成装置１０の再起動の場合、ファームウェア更新制御部１２は電力状態制御部１３に画像形成装置の再起動を要求する。
【００９１】
S23：電力状態制御部１３は操作制御部１４に再起動を要求する。
【００９２】
S24：操作制御部１４は操作部１０６を再起動する。
【００９３】
S25：電力状態制御部１３は画像形成部１６に再起動を要求する。
【００９４】
S26：画像形成部１６はエンジン部１０５を再起動する。
【００９５】
S27：電力状態制御部１３は画像形成装置１０を再起動する。
【００９６】
このように更新済みのファームウェアで画像形成装置１０の全体を再起動することで他のファームウェアの更新を可能にしたり（事前条件を満たさない他のファームウェアの事前条件を満たすことができる）、更新後のファームウェアを正常に実行させたりすることできる。）また、再起動には画像形成装置１０の全体を再起動する場合と少なくとも一部を再起動する場合がある。
【００９７】
再起動前に事前条件を満たしていないファームウェアがあった場合は、再起動後に事前条件を満たしていることを確認してファームウェアを更新する。
【００９８】
S28：環境条件が操作部１０６の再起動の場合、ファームウェア更新制御部１２は電力状態制御部１３に操作部１０６の再起動を要求する。
【００９９】
S29：電力状態制御部１３は操作制御部１４に再起動を要求する。
【０１００】
S30：操作制御部１４は操作部１０６を再起動する。
【０１０１】
S31：操作部１０６は再起動が完了した旨をファームウェア更新制御部１２に通知する。これにより環境条件が満たされたので、次のファームウェアの更新に進む。
【０１０２】
S32：環境条件がエンジン部１０５の再起動の場合、ファームウェア更新制御部１２は電力状態制御部１３にエンジン部１０５の再起動を要求する。
【０１０３】
S33：電力状態制御部１３は画像形成部１６に再起動を要求する。
【０１０４】
S34：画像形成部１６はエンジン部１０５を再起動する。
【０１０５】
S35：画像形成部１６は再起動が完了した旨をファームウェア更新制御部１２に通知する。これにより環境条件が満たされたので、次のファームウェアの更新に進む。
【０１０６】
S36：環境条件が新規部品（例えば静脈認証装置）の再起動の場合、ファームウェア更新制御部１２は電力状態制御部１３に新規部品との通信を要求する。新規部品は画像形成装置１０に着脱可能であり、ＵＳＢケーブルなどですでに接続された状態で新規部品（例えば静脈認証装置）のファームウェアが更新される。
【０１０７】
S37：電力状態制御部１３は新規部品の電源をオンにする。
【０１０８】
S38：これにより新規部品が起動する。ファームウェアの更新前は新規部品に対応していないため、画像形成装置１０の起動時に新規部品の電源がオンされても、一定時間後に電源オフ又はアイドル状態になってしまう。本実施形態ではファームウェアの更新により新規部品が新たにサポートされるので電源をオンにする。
【０１０９】
S39：新規部品は電源オンによりファームウェア更新制御部１２との通信を行う。ファームウェアが新規部品に対応しているので、ファームウェアも新規部品に応答を返す。新規部品は電源オフやアイドル状態にならない。
【０１１０】
このように、ファームウェアの更新後に例えば部品と接続し直す必要が出るケースがあるが、そのような場合に環境条件で部品との再接続を指示することで部品と画像形成装置１０が正常に動作できるようになる。ファームウェアの更新で新たな部品（今まで使用していない部品）を画像形成装置１０が認識することができるようになる。また、再起動により、新しい部品を使用可能となる。また、画像形成装置１０の全体の再起動よりも短い時間で再起動することができる。
【０１１１】
S40：環境条件が特殊起動の場合、ファームウェア更新制御部１２は起動オプションを設定の上、電力状態制御部１３に機器の再起動を要求する。
【０１１２】
S41：電力状態制御部１３は起動オプションを設定する。
【０１１３】
S42：電力状態制御部１３は操作制御部１４に再起動を要求する。
【０１１４】
S43：操作制御部１４は操作部１０６を再起動する。
【０１１５】
S44：電力状態制御部１３は画像形成部１６に再起動を要求する。
【０１１６】
S45：画像形成部１６はエンジン部１０５を再起動する。
【０１１７】
S46：電力状態制御部１３は起動オプションに従って画像形成装置１０を再起動する。これにより、画像形成装置１０は特殊モードで起動するので、更新されていないファームウェアを更新する。例えば、キーマイコン（タッチパネルへの入力を処理するマイコン）のような通常状態では書き換えでないようなファームウェアを更新する際、特殊更新用プログラムで（特殊モードで）起動し、キーマイコンなどのファームウェアを更新することができる。ファームウェア更新制御部１２が特殊モードで起動しファームウェアを更新したら、通常モードで再起動する。
【０１１８】
＜過去のバージョンのファームウェアに関する情報の取得＞
図１０は、画像形成装置１０が過去のバージョンのファームウェアに関する情報を取得する手順を示すシーケンス図の一例である。
【０１１９】
図８で説明したように、事前条件の判断のために画像形成装置１０内のファームウェアのバージョン（バージョン管理リスト２１）を参照する場合がある。また、サーバ装置５０と画像形成装置１０のファームウェアの新旧判断にファームウェアのバージョンが利用される。画像形成装置１０内の各ファームウェアのバージョン、公開日が分からない等、新旧判断を行うための情報が不足している場合、画像形成装置１０はサーバ上の過去情報から必要な情報を探索する。
【０１２０】
S51：ファームウェア更新制御部１２は、自機で起動しているファームウェアのバージョンを含む表１のバージョン管理リスト２１をバージョン管理部１５から取得する。
【０１２１】
S52：全ての情報が揃っている場合、バージョン管理部１５はバージョン管理リスト２１をファームウェア更新制御部１２に送出する。
【０１２２】
S53：全ての情報が揃っていない場合、バージョン管理部１５は、サーバ通信部１１に対し、過去のバージョンのファームウェアに関する情報の問い合わせを行わせる。
【０１２３】
S54：サーバ通信部１１は、ファームウェアの識別情報とバージョンを指定して過去のバージョンのファームウェアに関する情報をサーバ装置５０から取得する。なお、ステップS53、S54は情報が不足しているファームウェアの数だけ繰り返して実行される。
【０１２４】
S55：バージョン管理部１５は不足している項目が埋められたバージョン管理リスト２１をファームウェア更新制御部１２に送出する。
【０１２５】
これにより、画像形成装置１０内の各ファームウェアの公開日が分からない等、新旧判断を行うための情報が不足していても、画像形成装置１０がファームウェアの新旧を判断できる。
【０１２６】
＜環境条件の他の例＞
以上、環境条件として、
１．他のファームウェアとの組み合わせによって不具合が発生することをなくすこと、
２．特殊起動モードでしか更新できないようなファームウェアの更新を可能にすること、
について説明した。
【０１２７】
この他、環境条件として「３．特殊なファームウェア環境、又は、限定的なファームウェア構成でしか更新できないようなファームウェア」が存在する。例えば、量産時には更新対象になると想定していなかったファームウェア等、ファームウェアがそもそも更新する機構を保持していない場合、まず対象のファームウェアの更新が可能となる特殊ファームウェアをファームウェア更新制御部１２が画像形成装置１０にインストールする。そして、その特殊ファームウェアが起動後に目的のファームウェアを更新する。すなわち、このままでは更新できないので更新できる機能が入ったファームウェアで一度更新し、ファームウェア更新制御部１２は画像形成装置１０を再起動する。
【０１２８】
具体的な例としては、「ＮＡＮＤフラッシュメモリコントローラ」のように、デバイス自身のコントローラ（プログラム）は通常、更新は行われないので、更新機構自体を保持していない。これを市場で書き換えなければならないとなった場合、まず更新する仕組みを備えたファームウェアをファームウェア更新制御部１２が画像形成装置１０にインストールして、その後、「ＮＡＮＤフラッシュメモリコントローラ」を更新する。
【０１２９】
特殊起動モードでしか更新できないようなファームウェアは、ファームウェア自体はそのままであるのに対し、３．のファームウェアは特殊又は限定的なものである。
【０１３０】
＜まとめ＞
本実施形態の画像形成装置１０は、環境条件に従って処理することで、更新されたファームウェアが正常に動作するための環境を整えることができる。例えば、再起動により更新したＦＷがＲＡＭに展開され、次に更新されるファームウェアの事前条件を満たすことができる。すなわち、再起動により別のファームウェアが更新できるようになる。また、特殊な起動モードでしか更新できないファームウェアを更新できるようになる。
【０１３１】
＜その他の適用例＞
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０１３２】
例えば、新規な部品は静脈認証装置に限られるものではなく、ＵＳＢケーブルなどで接続された各種の部品が含まれる。例えば、指紋認証装置、顔認証装置、操作パネルなどのファームウェアが更新されてもよい。
【０１３３】
また、本実施形態では画像形成装置１０のファームウェアの更新について説明したが、ファームウェアを有する装置や機器などであれば本実施形態のファームウェアの更新方法を適用できる。例えば、ＰＣ（Personal Computer）、プロジェクタ、電子黒板、テレビ会議端末、ドローン等にも適用できる。また、カーナビゲーション装置、ゲーム機、テレビ受像器などの家電などにも適用できる。
【０１３４】
また、図５などの構成例は、画像形成装置１０とサーバ装置５０による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。画像形成装置１０とサーバ装置５０の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、１つの処理単位が更に多くの処理を含むように分割することもできる。
【０１３５】
なお、ファームウェア更新制御部１２はファームウェア更新制御手段の一例であり、サーバ通信部１１は通信手段の一例である。
【符号の説明】
【０１３６】
１０      画像形成装置
２１      バージョン管理リスト
２２      機器サポートＩ/Ｆバージョン
５０      サーバ装置
５３      ファームウェアデータ記憶部
５４      更新指示記述データ記憶部
１００    ファームウェア更新システム
【先行技術文献】
【特許文献】
【０１３７】
【特許文献１】特開2004−118586号公報
【図１】
2019149048.tif 000005
【図２】
2019149048.tif 000006
【図３】
2019149048.tif 000007
【図４】
2019149048.tif 000008
【図５】
2019149048.tif 000009
【図６】
2019149048.tif 000010
【図７】
2019149048.tif 000011
【図８】
2019149048.tif 000012
【図９】
2019149048.tif 000013
【図１０】
2019149048.tif 000014