(57)【要約】【課題】  この発明は、ファームウェアアップデートの必要性が高いもののみに対してアップデートを行なうことができるようになる電気機器を提供することを目的とする。【解決手段】  メインコントローラは、予め設定されたファームウェアアップデート開始時刻になったときに、各モジュール毎に、そのモジュールのファームウェアの前回のアップデートからのエラーの発生状況に基づいて、そのモジュールのファームウェアをアップデート対象とするか否かを判別する第１手段、ならびに第１手段によってアップデート対象とすると判別されたファームウェアそれぞれについて、使用中のものより新しいバージョンのファームウェアがサーバ側にあるか否かを調べ、新しいバージョンのファームウェアがサーバ側にあるものについては、その新しいバージョンのファームウェアをサーバからダウンロードしてアップデートする第２手段を備えている。【選択図】  図１
2007034913.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵおよびそのプログラムであるファームウェアを記憶した書き換え可能な記憶手段をそれぞれ有する複数のモジュールを備えており、１つのモジュールがメインコントローラであり、メインコントローラは他のモジュールと接続されている電気機器であって、メインコントローラにネットワークを介して接続されたサーバからファームウェアをダウンロードして書き換える機能を備えた電気機器において、
メインコントローラは、
予め設定されたファームウェアアップデート開始時刻になったときに、各モジュール毎に、そのモジュールのファームウェアの前回のアップデートからのエラーの発生状況に基づいて、そのモジュールのファームウェアをアップデート対象とするか否かを判別する第１手段、ならびに
第１手段によってアップデート対象とすると判別されたファームウェアそれぞれについて、使用中のものより新しいバージョンのファームウェアがサーバ側にあるか否かを調べ、新しいバージョンのファームウェアがサーバ側にあるものについては、その新しいバージョンのファームウェアをサーバからダウンロードしてアップデートする第２手段、
を備えていることを特徴とする電気機器。
【請求項２】
第１手段は、予め設定されたファームウェアアップデート開始時刻になったときに、各モジュール毎に、そのモジュールのファームウェアの前回のアップデートからの利用回数に対するエラーの発生回数の割合に基づいて、そのモジュールのファームウェアをアップデート対象とするか否かを判別するものであることを特徴とする請求項１に記載の電気機器。
【請求項３】
第１手段は、そのモジュールのファームウェアの前回のアップデートからの利用回数に対するエラーの発生回数の割合が、そのモジュールに対して予め設定されている閾値を超えている場合に、そのモジュールのファームウェアをアップデート対象とするものであることを特徴とする請求項２に記載の電気機器。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、たとえば、複写機、複合機等のように書き換え可能なファームウェアを備えた電気機器に関する。
【背景技術】
【０００２】
例えば、複写機能の他にＦＡＸ機能を備えた複合機では、メインコントローラ、自動原稿読取装置、給紙ユニット、印字エンジン、ＦＡＸボードのそれぞれに、ファームウェアが不揮発性メモリに格納されている。この明細書では、書き換え可能なファームウェアを備えた個々の機器をモジュールということにする。
【０００３】
これらのファームウェアの書き換えは、サービスマンによって行なわれたり、管理会社やサービス会社などが管理ソフトを利用することにより行なわれている。しかしながら、各モジュールのエラーの発生状況、例えば、各モジュールのエラーの発生頻度等に応じて、各モジュールのファームウェアを書き換えるといったことは行なわれていない。
【０００４】
【特許文献１】特開２００４−２３４０５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この発明は、電気機器内の各モジュールのエラーの発生状況に応じて、ファームウェアアップデートの対象となるモジュールを決定することができ、ファームウェアアップデートの必要性が高いもののみに対してアップデートを行なうことができるようになる電気機器を提供することを目的とする。
【課題を解決するための手段】
【０００６】
請求項１に記載の発明は、ＣＰＵおよびそのプログラムであるファームウェアを記憶した書き換え可能な記憶手段をそれぞれ有する複数のモジュールを備えており、１つのモジュールがメインコントローラであり、メインコントローラは他のモジュールと接続されている電気機器であって、メインコントローラにネットワークを介して接続されたサーバからファームウェアをダウンロードして書き換える機能を備えた電気機器において、メインコントローラは、予め設定されたファームウェアアップデート開始時刻になったときに、各モジュール毎に、そのモジュールのファームウェアの前回のアップデートからのエラーの発生状況に基づいて、そのモジュールのファームウェアをアップデート対象とするか否かを判別する第１手段、ならびに第１手段によってアップデート対象とすると判別されたファームウェアそれぞれについて、使用中のものより新しいバージョンのファームウェアがサーバ側にあるか否かを調べ、新しいバージョンのファームウェアがサーバ側にあるものについては、その新しいバージョンのファームウェアをサーバからダウンロードしてアップデートする第２手段を備えていることを特徴とする。
【０００７】
請求項２に記載の発明は、請求項１に記載の発明において、第１手段は、予め設定されたファームウェアアップデート開始時刻になったときに、各モジュール毎に、そのモジュールのファームウェアの前回のアップデートからの利用回数に対するエラーの発生回数の割合に基づいて、そのモジュールのファームウェアをアップデート対象とするか否かを判別するものであることを特徴とする。
【０００８】
請求項３に記載の発明は、請求項２に記載の発明において、第１手段は、そのモジュールのファームウェアの前回のアップデートからの利用回数に対するエラーの発生回数の割合が、そのモジュールに対して予め設定されている閾値を超えている場合に、そのモジュールのファームウェアをアップデート対象とするものであることを特徴とする。
【発明の効果】
【０００９】
この発明によれば、電気機器内の各モジュールのエラーの発生状況に応じて、ファームウェアアップデートの対象となるモジュールを決定することができ、ファームウェアアップデートの必要性が高いもののみに対してアップデートを行なうことができるようになる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して、この発明の実施例について説明する。
【実施例１】
【００１１】
図１は、システム構成を示している。
【００１２】
１００は、複写機能の他にＦＡＸ機能を備えた複合機である。２００は、複合機１００にファームウェアを提供するためのサーバ（ダウンロードサイト）である。複合機１００は、ネットワーク３００を介してサーバ２００に接続されている。
【００１３】
複合機１００は、メインコントローラ１０、自動原稿読取装置２０、給紙ユニット３０、印字エンジン４０およびＦＡＸボード５０を備えている。これらの各機器をモジュールと呼ぶことにする。複合機１００は、上記複数のＣＰＵが連携して稼働することにより、各種機能を実現している。複合機１００の中核をなすメインコントローラのＣＰＵは、Ｉ／Ｆ経由で各モジュールのＣＰＵに接続されており、各ＣＰＵが処理すべき内容を記述したファームウェアがそれぞれのモジュール内の書き換え可能な不揮発性メモリに格納されている。
【００１４】
メインコントローラ１０は、ＣＰＵ１１、そのプログラム（ファームウェア）等を記憶する書き換え可能な不揮発性メモリ１２、その他必要なデータを記憶する揮発性メモリ１３、Ｉ／Ｆ１４、１５、１６、１７およびＮＷ−ＩＦ１８を備えている。メインコントローラ１０のＣＰＵ１１は、ＮＷ−ＩＦ１８およびネッワーク３００を介してサーバ２００に接続されている。
【００１５】
自動原稿読取装置２０は、ＣＰＵ２１、そのプログラム（ファームウェア）等を記憶する書き換え可能な不揮発性メモリ２２およびＩ／Ｆ２３を備えている。自動原稿読取装置２０内のＩ／Ｆ２３は、メインコントローラ１０内のＩ／Ｆ１４に接続されている。
【００１６】
給紙ユニット３０は、ＣＰＵ３１、そのプログラム（ファームウェア）等を記憶する書き換え可能な不揮発性メモリ３２およびＩ／Ｆ３３を備えている。給紙ユニット３０内のＩ／Ｆ３３は、メインコントローラ１０内のＩ／Ｆ１５に接続されている。
【００１７】
印字エンジン４０は、ＣＰＵ４１、そのプログラム（ファームウェア）等を記憶する書き換え可能な不揮発性メモリ４２およびＩ／Ｆ４３を備えている。印字エンジン４０内のＩ／Ｆ４３は、メインコントローラ１０内のＩ／Ｆ１６に接続されている。
【００１８】
ＦＡＸボード５０は、ＣＰＵ５１、そのプログラム（ファームウェア）等を記憶する書き換え可能な不揮発性メモリ５２およびＩ／Ｆ５３を備えている。ＦＡＸボード５０内のＩ／Ｆ５３は、メインコントローラ１０内のＩ／Ｆ１７に接続されている。
【００１９】
この実施例では、ファームウェアの更新モードとして、大きく分けて、手動アップデートモードと、自動アップデートモードとがある。手動アップデートモードとは、複合機１００の図示しない操作部に設けられた手動アップデートキーがユーザによって押下げられることに基づいて、ファームウェアのアップデートを行なうモードである。自動アップデートモードとは、予め設定された時刻および頻度（毎日、週に１回、月に１回等）によって規定されるアップデート開始時刻になったときに、ファームウェアのアップデートを行なったり、サーバ２００に書き換えるべきファームウェアがある場合にそのことを単に通知したりするモードである。
【００２０】
自動アップデートモードには、複合機内の全てのモジュールのファームウェアをアップデート対象とするフルモードと、複合機内の各モジュールの状態に応じてアップデート対象を決定する最適化モードと、書き換えるべきファームウェアがダウンロードサイト２００に保持されているか否かを判別し、書き換えるべきファームウェアがダウンロードサイト２００に保持されてる場合にその旨をユーザに単に通知する通知モードとがある。これらの３つのモードのうちの１つのモードが、初期設定において、自動アップデートモードとしてユーザにより設定されている。
【００２１】
自動アップデートモードとして最適化モードを設定した場合には、複合機内の各モジュールのエラーの発生状況に応じて、ファームウェアアップデートの対象となるモジュールを決定することができ、ファームウェアアップデートの必要性が高いもののみに対してアップデートを行なうことができるようになるという利点がある。
【００２２】
なお、手動アップデートモードによるアップデートの場合も、自動アップデートモードのフルモードと同様に複合機内の全てのモジュールのファームウェアがアップデート対象とされる。
【００２３】
図２および図３は、メインコントローラ１０のＣＰＵ１１によって実行されるファームウェアの更新処理の全体的な手順を示している。
【００２４】
まず、メインコントローラ１０のＣＰＵ１１は、手動アップデートキーが押下げられたか否かを判別する（ステップＳ１）。手動アップデートキーが押下げられてないと判別した場合には、ＣＰＵ１１は、自動アップデートモードでのアップデート開始時刻になったか否かを判別する（ステップＳ２）。自動アップデートモードでのアップデート開始時刻になっていない場合には、ステップＳ１に戻る。
【００２５】
上記ステップＳ１で手動アップデートキーが押下げられたと判別した場合または上記ステップＳ２において自動アップデートモードでのアップデート開始時刻になったと判別した場合には、ＣＰＵ１１は、複合機本体の状態がファームウェア（ＦＷ）をアップデートすることが可能な状態であるか否かを判別する（ステップＳ３）。ファームウェアをアップデートすることが可能な状態でなければステップＳ１に戻る。
【００２６】
上記ステップＳ３において、ファームウェアをアップデートすることが可能な状態であると判別した場合には、ＣＰＵ１１は、ファームウェアアップデート候補リストを作成する（ステップＳ４）。
【００２７】
具体的には、ＣＰＵ１１は、各ファームウェアのバージョン情報等を収集し、図８に示すような、ファームウェアアップデート候補リストを作成する。ファームウェアアップデート候補リストは、各モジュール毎に、アップデートを実行するか否かの情報、ファームウェア名、バージョンおよびチェックサムの情報から構成される。ファームウェアアップデート候補リストを作成した段階では、アップデートを実行するか否かの情報としては、「アップデートを実行する」という情報が入れられる。
【００２８】
次に、ＣＰＵ１１は、今回実行しようとするアップデートモードは自動アップデートモード内の最適化モードであるか否かを判別する（ステップＳ５）。今回実行しようとするアップデートモードが自動アップデートモードであり（上記ステップＳ２でＹＥＳとなった場合）、かつ自動アップデートモードとして最適化モードが設定されている場合には、ステップＳ５でＹＥＳとなり、ステップＳ６に移行する。今回実行するアップデートモードが手動アップデートモードである場合（上記ステップＳ１でＹＥＳとなった場合）、若しくは今回実行するアップデートモードが自動アップデートモードであってもフルモードまたは通知モードである場合には、ステップＳ８に移行する。
【００２９】
ステップＳ６では、ＣＰＵ１１は、アップデート用の本体状態リストを読み込む。アップデート用の本体状態リストは、図９に示すように、各モジュール毎に、前回のアップデートからのエラーコード別のエラー回数、エラーコードおよび前回のアップデートからの利用回数の情報からなる。ＦＡＸボードの利用回数とは、送受信回数をいう。メインコントローラの利用回数とは、各種機能１ＪＯＢを１回として計数した回数をいう。印字エンジンの利用回数とは、印字枚数をいう。給紙ユニットの利用回数とは、給紙枚数をいう。自動原稿読み取り装置の利用回数とは、原稿読み取り枚数をいう。
【００３０】
これらの情報は、複合機本体を管理するための管理情報記憶テーブルとは別のアップデート用の本体状態記憶テーブルとして、メインコントローラ１０の不揮発性メモリ１２に保持されている。ステップＳ６では、これらの情報がメインコントローラ１０の揮発性メモリ１３に読み込まれる。なお、後述するように、不揮発性メモリ１２に保持されているアップデート用の本体状態記憶テーブル内の各モジュール毎の情報は、そのモジュールのファームウェアが書き換えられたときに、リセットされる。
【００３１】
ＣＰＵ１１は、アップデート用の本体状態リストを読み込んだ後、ファームウェアアップデート候補の絞り込み処理を行なう（ステップＳ７）。そして、ステップＳ８に移行する。ファームウェアアップデート候補の絞り込み処理では、アップデート用の本体状態リストに基づいて、上記ステップＳ４で作成したファームウェアアップデート候補リストから、アップデート候補が絞り込まれる。ファームウェアアップデート候補の絞り込み処理の詳細については後述する。
【００３２】
ステップＳ８では、ＣＰＵ１１は、ファームウェアダウンロードサイト２００に接続する。そして、ファームウェアアップデート候補リストと、ファームウェアダウンロードサイト２００から取得した情報とに基づいて、ダウンロードすべきファームウェアのリスト（ダウンロードファームウェアリスト）の作成処理を行なう（ステップＳ９）。
【００３３】
ダウンロードファームウェアリストは、図１０に示すように、ダウンロードすべきファームウェア毎に、その名称（ファームウェア名）、バージョン、チェックサム、依存関係の有無および依存関係がある場合には依存関係のあるファームウェア名、依存関係のあるファームウェアのバーションならびに変更内容の情報からなる。なお、互いに依存関係にある複数のファームウェアは、同時に書き換える必要がある。ダウンロードファームウェアリストの作成処理の詳細については後述する。
【００３４】
次に、ＣＰＵ１１は、ファームウェアの依存関係に基づくエラーが発生しているか否かを判別する（ステップＳ１０）。具体的には、上記ステップＳ９の処理において制御されるフラグＦがセットされているか否かを判別する。ファームウェアの依存関係に基づくエラーが発生している場合（Ｆ＝１）には、ＣＰＵ１１は、ダウンロードをできないエラーが発生したことを示すダウンロードエラー通知メール（電子メール）をユーザ宛に出す（ステップＳ１１）。そして、今回の処理を終了する。つまり、ステップＳ１に戻る。
【００３５】
ファームウェアの依存関係に基づくエラーが発生していない場合（Ｆ＝０）には、ＣＰＵ１１は、ダウンロードファームウェアリストに基づいて、ダウンロードすべきファームウェアがあるか否かを判別する（ステップＳ１２）。ダウンロードすべきファームウェアがない場合には、今回の処理を終了する。つまり、ステップＳ１に戻る。
【００３６】
ダウンロードすべきファームウェアがある場合には、ＣＰＵ１１は、今回実行しようとするアップデートモードは自動アップデートモード内の通知モードであるか否かを判別する（ステップＳ１３）。今回実行しようとするアップデートモードが自動アップデートモードであり、かつ自動アップデートモードとして通知モードが設定されている場合には、ステップＳ１４に移行する。今回実行しようとするアップデートモードが手動アップデートモードである場合、若しくは今回実行するアップデートモードが自動アップデートモードであってもフルモードまたは最適化モードである場合には、ステップＳ１５に移行する。
【００３７】
ステップＳ１４では、ＣＰＵ１１は、アップデートが可能であることを示すメール（電子メール）をユーザ宛に出す。この電子メールには、ダウンロードファームウェアリストが添付される。そして、今回の処理を終了する。つまり、ステップＳ１に戻る。
【００３８】
ステップＳ１５では、ＣＰＵ１１は、ダウンロードファームウェアリスト（図１０参照）からファームウェア情報を１つ取り出す。そして、取り出したファームウェア情報に基づいて、対応するファームウェアをファームウェアダウンロードサイト２００からダウンロードする（ステップＳ１６）。そして、ダウンロード後に、チェックサムを算出し、算出したチェックサムとファームウェアダウンロードサイト２００から送られてきた当該ファームウェアに対するチェックサムとが一致するか否かを判別する（ステップＳ１７）。両チェックサムが一致した場合には、ダウンロードファームウェアリスト内の全てのファームウェアをダウンロードしたか否かを判別する（ステップＳ１８）。ダウンロードファームウェアリスト内の全てのファームウェアをダウンロードしていない場合には、ステップＳ１５に戻って、ダウンロードファームウェアリストから次のファームウェア情報を取り出し、ステップＳ１５以降の処理を行なう。
【００３９】
上記ステップＳ１７において、算出したチェックサムとファームウェアダウンロードサイト２００から送られてきたチェックサムとが一致しなかった場合には、ＣＰＵ１１は、ダウンロードをできないエラーが発生したことを示すダウンロードエラー通知メール（電子メール）をユーザ宛に出す（ステップＳ１９）。そして、今回の処理を終了する。つまり、ステップＳ１に戻る。
【００４０】
ダウンロードファームウェアリスト内の全てのファームウェアがダウンロードされた場合には（ステップＳ１８でＹＥＳ）、ＣＰＵ１１は、ダウンロードしたファームウェアを用いて、対応するファームウェアを書き換える（アップデートする）。そして、アップデートが完了したことを示すメール（電子メール）をユーザ宛に出す（ステップＳ２１）。そして、今回の処理を終了する。つまり、ステップＳ１に戻る。
【００４１】
図４は、図２のステップＳ７の処理（ファームウェアアップデート候補の絞り込み処理）の詳細な手順を示している。
【００４２】
まず、アップデート用の本体状態リストから、１つのモジュールに対する情報を読み出す（ステップＳ３１）。そして、情報を読み出したモジュールについて、利用回数に対するエラー発生回数の割合（エラー発生回数／利用回数）がそのモジュールに対して予め設定されている閾値を超えているか否かを判別する（ステップＳ３２）。例えば、図９のＦＡＸボードの例では、利用回数に対するエラー発生回数の割合は、２／１００＝１／５０となる。
【００４３】
上記ステップＳ３２において、利用回数に対するエラー発生回数の割合が閾値未満であると判別した場合には、ファームウェアアップデート候補リストの対応するモジュールについては、「アップデートを実行する」の情報を「アップデートを実行しない」の情報に変更する（ステップＳ３３）。そして、ステップＳ３４に移行する。
【００４４】
上記ステップＳ３２において、利用回数に対するエラー発生回数の割合が閾値を超えていると判別した場合には、ファームウェアアップデート候補リストの対応するモジュールの情報を変更することなく、ステップＳ３４に移行する。
【００４５】
ステップＳ３４では、アップデート用の本体状態リストの全てのモジュールに対する処理が終了したか否かを判別する。アップデート用の本体状態リストの全てのモジュールに対する処理が終了していない場合には、ステップＳ３１に戻り、次のモジュールに対する処理が行なわれる。
【００４６】
ステップＳ３４において、アップデート用の本体状態リストの全てのモジュールに対する処理が終了したと判別した場合には、図３のステップＳ８に移行する。
【００４７】
図５は、図３のステップＳ９の処理（ダウンロードファームウェアリストの作成処理）の詳細な手順を示している。
【００４８】
まず、ファームウェアアップデート候補リストにおいて「アップデートを実行する」という情報が入れられているファームウェアリストから１つのファームウェア情報を読み出す（ステップＳ４１）。そして、情報を読み出した対象ファームウェアは、ダウンロードファームウェアリストに既に登録済であるか否かを判別する（ステップＳ４２）。対象ファームウェアがダウンロードファームウェアリストに登録済である場合には、ステップＳ４８に移行する。
【００４９】
対象ファームウェアがダウンロードファームウェアリストに登録済でない場合には、ダウンロードサイト２００から対象ファームウェアの最新情報を取得する（ステップＳ４３）。この最新情報には、対象ファームウェアの最新バージョン、チェックサム、依存関係に関する情報等が含まれている。そして、対象ファームウェアに関して、最新バージョンは、複合機で使用中のバージョンより新しいか否かを判別する（ステップＳ４４）。最新バージョンが使用中のバージョンより新しくない場合には、ステップＳ４８に移行する。      
【００５０】
最新バージョンが使用中のバージョンより新しい場合には、ダウンロードファームウェアリストに対象ファームウェアの名称とともにその最新情報を登録する（ステップＳ４５）。次に、対象ファームウェアの最新情報に基づいて、対象ファームウェアに対して依存関係のあるファームウェアがあるか否かを判別する（ステップＳ４６）。対象ファームウェアに対して依存関係のあるファームウェアがない場合には、ステップＳ４８に移行する。
【００５１】
対象ファームウェアに対して依存関係のあるファームウェアがある場合には、依存関係のあるファームウェアのみを記述したリスト（依存関係のあるファームウェアリスト）の作成処理を行なう（ステップＳ４７）。図１１に依存関係のあるファームウェアリストの一例を示す。この処理の詳細については、後述する。この処理の後に、ステップＳ４８に移行する。
【００５２】
ステップＳ４８では、ファームウェアアップデート候補リストにおいて「アップデートを実行する」という情報が入れられているファームウェアリストの全てに対する処理が終了したか否かを判別する。ファームウェアアップデート候補リストにおいて「アップデートを実行する」という情報が入れられているファームウェアリストの全てに対する処理が終了してない場合には、ステップＳ４１に戻り、ファームウェアアップデート候補リストにおいて「アップデートを実行する」という情報が入れられているファームウェアリスト内の次のファームウェア情報を対象ファームウェア情報として読み出して、ステップＳ４１以降の処理を行なう。
【００５３】
上記ステップＳ４８において、ファームウェアアップデート候補リストにおいて「アップデートを実行する」という情報が入れられているファームウェアリストの全てに対する処理が終了したと判別した場合には、依存関係のあるファームウェアリスト（図１１参照）にファームウェアが登録されているか否かを判別する（ステップＳ４９）。依存関係のあるファームウェアリストにファームウェアが登録されていない場合には、図３のステップＳ１０に移行する。
【００５４】
依存関係のあるファームウェアリストにファームウェアが登録されている場合には、依存関係のあるファームウェアリストに基づくダウンロードファームウェアリストの更新処理を行なった後（ステップＳ５０）、図３のステップＳ１０に移行する。ステップＳ５０の処理の詳細については、後述する。
【００５５】
図６は、図５のステップＳ４７の処理（依存関係のあるファームウェアリストの作成処理）の詳細な手順を示している。
【００５６】
まず、対象ファームウェアの最新情報に含まれている依存関係のあるファームウェア情報をダウンロードファームウェアリストから取り出す（ステップＳ６１）。そして、依存関係のあるファームウェアは、自機に関係があるか否かを判別する（ステップＳ６２）。つまり、依存関係のあるファームウェアは、自機のいずれかのモジュールのファームウェアであるか否かを判別する。
【００５７】
依存関係のあるファームウェアが、自機に関係がない場合には、ステップＳ６６に移行する。依存関係のあるファームウェアが、自機に関係がある場合には、最新情報に含まれている依存関係のあるファームウェアのバージョンが、自機で使用中のバージョンより新しいか否かを判別する（ステップＳ６３）。
【００５８】
最新情報に含まれている依存関係のあるファームウェアのバージョンが、自機で使用中のバージョンより新しくない場合には、ステップＳ６６に移行する。最新情報に含まれている依存関係のあるファームウェアのバージョンが、自機で使用中のバージョンより新しい場合には、依存関係のあるファームウェアがダウンロードファームウェアリストに既に登録されているか否かを判別する（ステップＳ６４）。
【００５９】
依存関係のあるファームウェアがダウンロードファームウェアリストに既に登録されている場合には、ステップＳ６６に移行する。依存関係のあるファームウェアがダウンロードファームウェアリストに既に登録されていない場合には、依存関係のあるファームウェアの名称を、依存関係のあるファームウェアリスト（図１１参照）に登録する（ステップＳ６５）。
【００６０】
この後、対象ファームウェアに対して依存関係のあるファームウェアの全てに対する処理が終了したか否かを判別する（ステップＳ６６）。対象ファームウェアに対して依存関係のあるファームウェアの全てに対する処理が終了していない場合には、ステップＳ６１に戻り、対象ファームウェアに対して依存関係のある次のファームウェア情報を読み出して、ステップＳ６１以降の処理を行なう。
【００６１】
上記ステップＳ６６において、対象ファームウェアに対して依存関係のあるファームウェアの全てに対する処理が終了していると判別した場合には、図５のステップＳ４８に移行する。
【００６２】
図７は、図５のステップＳ５０の処理（依存関係のあるファームウェアリストに基づくダウンロードファームウェアリストの更新処理）の詳細な手順を示している。
【００６３】
依存関係のあるファームウェアリストに基づくダウンロードファームウェアリストの更新処理では、まず、ファームウェア依存関係エラーであることを示すフラグＦをリセット（Ｆ＝０）する（ステップＳ７１）。この後、依存関係のあるファームウェアリストからファームウェア名を１つ読み出す（ステップＳ７２）。そして、読み出した依存関係のあるファームウェアは、ダウンロードファームウェアリストに既に登録されているか否かを判別する（ステップＳ７３）。
【００６４】
読み出した依存関係のあるファームウェアが、ダウンロードファームウェアリストに既に登録されている場合には、ステップＳ７８に移行する。読み出した依存関係のあるファームウェアが、ダウンロードファームウェアリストに登録されていない場合には、ダウンロードサイト２００から当該依存関係のあるファームウェアの最新情報を取得する（ステップＳ７４）。
【００６５】
そして、当該依存関係のあるファームウェアの最新バージョンが複合機で使用中のバージョンより新しいか否かを判別する（ステップＳ７５）。当該依存関係のあるファームウェアの最新バージョンが複合機で使用中のバージョンより新しくなければ、ファームウェア依存関係エラーであることを示すフラグＦをセット（Ｆ＝１）した後、ステップＳ７８に移行する。
【００６６】
上記ステップＳ７５において、当該依存関係のあるファームウェアの最新バージョンが複合機で使用中のバージョンより新しいと判別した場合には、ダウンロードファームウェアリストに当該依存関係のあるファームウェアの名称とともにその最新情報を登録する（ステップＳ７６）。そして、ステップＳ７８に移行する。
【００６７】
ステップＳ７８では、依存関係のあるファームウェアリスト内の全てのファームウェアに対する処理が終了したか否かを判別する。依存関係のあるファームウェアリスト内の全てのファームウェアに対する処理が終了していない場合には、ステップＳ７２に戻り、依存関係のあるファームウェアリストから次のファームウェア名を読み出し、ステップＳ７２以降の処理を行なう。
【００６８】
上記ステップＳ７８において、依存関係のあるファームウェアリスト内の全てのファームウェアに対する処理が終了したと判別した場合には、図３のステップＳ１０に移行する。
【図面の簡単な説明】
【００６９】
【図１】システム構成を示すブロック図である。
【図２】メインコントローラ１０のＣＰＵ１１によって実行されるファームウェアの更新処理の全体的な手順の一部を示すフローチャートである。
【図３】メインコントローラ１０のＣＰＵ１１によって実行されるファームウェアの更新処理の全体的な手順の一部を示すフローチャートである。
【図４】図２のステップＳ７の処理（ファームウェアアップデート候補の絞り込み処理）の詳細な手順を示すフローチャートである。
【図５】図３のステップＳ９の処理（ダウンロードファームウェアリストの作成処理）の詳細な手順を示すフローチャートである。
【図６】図５のステップＳ４７の処理（依存関係のあるファームウェアリストの作成処理）の詳細な手順を示すフローチャートである。
【図７】図５のステップＳ５０の処理（依存関係のあるファームウェアリストに基づくダウンロードファームウェアリストの更新処理）の詳細な手順を示すフローチャートである。
【図８】ファームウェアアップデート候補リストの一例を示す模式図である。
【図９】アップデート用の本体状態リストの一例を示す模式図である。
【図１０】ダウンロードファームウェアリストの一例を示す模式図である。
【図１１】依存関係のあるファームウェアリストの一例を示す模式図である。
【符号の説明】
【００７０】
１００  複合機
２００  サーバ（ダウンロードサイト）
１０  メインコントローラ
２０  自動原稿読取装置
３０  給紙ユニット
４０  印字エンジン
５０  ＦＡＸボード
１１、２１、３１、４１、５１  ＣＰＵ
１２、２２、３２、４２、５２  不揮発性メモリ
【図１】
2007034913.tif 000003
【図２】
2007034913.tif 000004
【図３】
2007034913.tif 000005
【図４】
2007034913.tif 000006
【図５】
2007034913.tif 000007
【図６】
2007034913.tif 000008
【図７】
2007034913.tif 000009
【図８】
2007034913.tif 000010
【図９】
2007034913.tif 000011
【図１０】
2007034913.tif 000012
【図１１】
2007034913.tif 000013