(57)【要約】【課題】ＭＦＰ全体を再起動せずにバージョンアップを行う。【解決手段】主制御部と副制御部とを備える画像処理装置であって、ジョブを主制御部が受信可能で、副制御部に電力供給される第１の電力モードと、ジョブを主制御部が受信可能で、副制御部に電力供給されない第２の電力モードの何れかで画像処理装置を制御する電力制御手段と、ファームウェアを更新する更新手段と、更新ファームウェアを特定する特定手段と、第１の電力モードから第２の電力モードへの移行条件を満たしたことを検知する検知手段とを備え、特定された更新ファームウェアが副制御部のファームウェアである場合、更新手段は、移行条件が満たされれば副制御部のファームウェアを更新し、副制御部のファームウェアである場合、副制御部のファームウェアの更新が完了すれば、電力制御手段は、第１の電力モードから第２の電力モードに移行させる。【選択図】図６
2014115776.tif 000002
【特許請求の範囲】
【請求項１】
主制御部と副制御部とを備える画像処理装置であって、
外部装置から送信されたジョブを前記主制御部が受信可能であり、前記副制御部に電力が供給される第１の電力モードと、外部装置から送信されたジョブを前記主制御部が受信可能であり、前記副制御部に電力が供給されない第２の電力モードのいずれかで前記画像処理装置が動作するように制御する電力制御手段と、
前記画像処理装置のファームウェアを更新する更新手段と、
更新対象のファームウェアを特定する特定手段と、
前記第１の電力モードから前記第２の電力モードへ移行するための移行条件を満たしたことを検知する検知手段とを備え、
前記特定手段によって特定された更新対象のファームウェアが前記主制御部のファームウェアではなく前記副制御部のファームウェアである場合に、前記更新手段は、前記検知手段が前記移行条件を満たしたことを検知したことに応じて前記副制御部のファームウェアを更新し、
前記特定手段によって特定された更新対象のファームウェアが前記主制御部のファームウェアではなく前記副制御部のファームウェアである場合に、前記更新手段による前記副制御部のファームウェアの更新が完了したことに応じて、前記電力制御手段は、前記画像処理装置を前記第１の電力モードから前記第２の電力モードに移行させることを特徴とする画像処理装置。
【請求項２】
前記特定手段によって特定された更新対象のファームウェアが前記主制御部のファームウェアを含む場合に、前記更新手段は前記更新対象のファームウェアを更新し、前記更新対象のファームウェアの更新が完了したことに応じて前記画像処理装置が再起動することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画像処理装置が前記第１の電力モードと前記第２の電力モードのいずれであっても、前記電力制御手段は前記主制御部に電力を供給することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記画像処理装置のファームウェアの更新に関する更新情報を取得する取得手段を更に備え、
前記特定手段は、前記取得手段が取得した前記更新情報に基づいて更新対象のファームウェアを特定することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記取得手段は、前記画像処理装置のファームウェアを更新するための更新ファームウェアを更に取得し、
前記更新手段は、前記取得手段が取得した前記更新ファームウェアに基づいてファームウェアの更新を行うことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
主制御部と副制御部とを備え、外部装置から送信されたジョブを前記主制御部が受信可能であり、前記副制御部に電力が供給される第１の電力モードと、外部装置から送信されたジョブを前記主制御部が受信可能であり、前記副制御部に電力が供給されない第２の電力モードのいずれかで動作可能な画像処理装置の制御方法であって、
更新対象のファームウェアを特定する特定ステップと、
前記特定ステップで特定された更新対象のファームウェアが前記主制御部のファームウェアではなく前記副制御部のファームウェアである場合に、前記第１の電力モードから前記第２の電力モードへ移行するための移行条件を満たしたことを検知したことに応じて前記副制御部のファームウェアを更新する更新ステップと、
前記更新ステップで前記副制御部のファームウェアの更新が完了したことに応じて、前記画像処理装置が前記第１の電力モードから前記第２の電力モードに移行する移行ステップとを含むことを特徴とする画像処理装置の制御方法。
【請求項７】
請求項６に記載の画像処理装置の制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
従来の技術では、複写機（以下、ＭＦＰという）は、システムが使用しているファームウェアを動作中に削除（上書き）することができない。そのため、ＭＦＰは、ファームウェアのバージョンアップを行う際に、通常のファームを動作させないバージョンアップ専用のモードに切り替えていた。バージョンアップ専用のモードでは、通常のモードとは起動するファームの構成が全く違うため、モードを切り替えるためにシステムの再起動が少なくとも１度は必要である。しかし、ＭＦＰは、再起動中はシステムが停止してしまうため、ジョブの実行及び受信をすることができない。
このように従来の技術では、ＭＦＰは、システムのバージョンアップを行う際にジョブの実行及び受信をすることができない時間帯を伴うため、その旨をユーザに通知し、それを理解したユーザによる指示でバージョンアップを行うのが一般的である。しかし、このようにユーザによる手動でのバージョンアップでは、バージョンアップのタイミングがユーザに任されているため、セキュリティー等の致命的な不具合に対するバージョンアップデータが即時に反映されないという問題がある。
そこで、特許文献１では、ＭＦＰがバックグランドで新しいファームウェアを受信し、節電モードになるとユーザが使用しない時間と判断し、バージョンアップの設定を自動で実行する技術が開示されている。更に、特許文献１では、ユーザが使用しない時間が継続し、スリープモードへの移行時間になると、ＭＦＰが自動で再起動を実行することでシステムのバージョンアップ処理を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−３１０７８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
前述したように、ＭＦＰは、ユーザがＭＦＰを使用していない時間帯を判断し、自動でバージョンアップすることができる。しかしながら、ＭＦＰは、バージョンアップ中のためジョブの実行及び受信をすることができない旨をユーザに通知していないため、ユーザがＭＦＰにジョブの実行を依頼する場合がある。その際、ＭＦＰは、ジョブの実行及び受信をすることができないためエラー状態となる。そのため、ユーザは、再度ジョブ実行の依頼をしなければならないという問題がある。
また、バージョンアップの処理及びバージョンアップされた情報をＭＦＰに反映させるために実行する再起動には一定の時間を要するため、ユーザがＭＦＰを利用できない時間が一定時間生じてしまう。
【課題を解決するための手段】
【０００５】
そこで、本発明は、主制御部と副制御部とを備える画像処理装置であって、外部装置から送信されたジョブを前記主制御部が受信可能であり、前記副制御部に電力が供給される第１の電力モードと、外部装置から送信されたジョブを前記主制御部が受信可能であり、前記副制御部に電力が供給されない第２の電力モードのいずれかで前記画像処理装置が動作するように制御する電力制御手段と、前記画像処理装置のファームウェアを更新する更新手段と、更新対象のファームウェアを特定する特定手段と、前記第１の電力モードから前記第２の電力モードへ移行するための移行条件を満たしたことを検知する検知手段とを備え、前記特定手段によって特定された更新対象のファームウェアが前記主制御部のファームウェアではなく前記副制御部のファームウェアである場合に、前記更新手段は、前記検知手段が前記移行条件を満たしたことを検知したことに応じて前記副制御部のファームウェアを更新し、前記特定手段によって特定された更新対象のファームウェアが前記主制御部のファームウェアではなく前記副制御部のファームウェアである場合に、前記更新手段による前記副制御部のファームウェアの更新が完了したことに応じて、前記電力制御手段は、前記画像処理装置を前記第１の電力モードから前記第２の電力モードに移行させることを特徴とする。
【発明の効果】
【０００６】
本発明によれば、ＭＦＰ全体を再起動せずにバージョンアップを行うことができる。更に、ＭＦＰは、バージョンアップの実行中でもジョブを受信することができる。
【図面の簡単な説明】
【０００７】
【図１】システム構成の一例を示す図である。
【図２】ＭＦＰのコントローラのハードウェア構成の一例を示す図である。
【図３】電力供給を制御する構成の一例を示す図である。
【図４Ａ】ＲＯＭ内のファームウェア及びバージョン情報の配置の一例を示す図である。
【図４Ｂ】ＨＤＤ内のファームウェア及びバージョン情報の配置の一例を示す図である。
【図５】各ファームウェアのバージョン情報の一例を示す図である。
【図６】ファームウェアのバージョンアップ処理の一例を示すフローチャートである。
【図７Ａ】メインコントローラボードのファームウェアのみがバージョンアップ対象であるバージョンアップ情報の一例を示す図である。
【図７Ｂ】サブコントローラボードのファームウェアのみがバージョンアップ対象であるバージョンアップ情報の一例を示す図である。
【図７Ｃ】全てのファームウェアがバージョンアップ対象であるバージョンアップ情報の一例を示す図である。
【図７Ｄ】メインコントローラボードのファームウェア情報が別管理されているバージョンアップ情報の一例を示す図である。
【図７Ｅ】スキャナ装置のファームウェアのみがバージョンアップ対象であるバージョンアップ情報の一例を示す図である。
【図８】ファームウェアのスリープバージョンアップ処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づき説明する。
【０００９】
＜実施形態１＞
以下、本実施形態をＭＦＰに適用した場合について説明する。
図１は、システム構成の一例を示す図である。
ＭＦＰ１００は、原稿から光学的に画像を読み取りデジタル画像に変換するスキャナ装置１０１、デジタル画像を紙デバイスに出力するプリンタ装置１０２及びＭＦＰの操作を行なうための操作部１０３を有する。更に、ＭＦＰ１００は、デジタル画像や制御プログラム等を記憶するＨＤＤ１０４及び各モジュールに指示を出すことによりＭＦＰ上でジョブを実行することができるコントローラ１１１を有する。ＨＤＤ１０４は、記憶部の一例である。ＭＦＰ１００は、ＬＡＮ又はネットワーク１０７を介して、コンピュータ１０８との間でデジタル画像の送受信をしたり、コンピュータ１０８からジョブや機器の指示等を受信したりすることができる。コンピュータ１０８は、情報処理装置の一例である。
スキャナ装置１０１は、原稿束を自動的に逐次入れ替えることが可能な原稿給紙ユニット１０９、原稿を光学スキャンしデジタル画像に変換する事が可能なスキャナユニット１１０を有し、変換した画像データをコントローラ１１１に送信する。
プリンタ装置１０２は、紙束から一枚ずつ逐次給紙可能な給紙ユニット１１４、給紙した紙に画像データを印刷するためのマーキングユニット１１２、印刷後の紙を排紙するための排紙ユニット１１３を有する。
電源部１１５は、ＭＦＰ１００の各構成要素に対して電力を供給する。なお、ここでは電力供給の配線についての説明を省略する。
【００１０】
図２は、ＭＦＰ１００のコントローラ１１１のハードウェア構成の一例を示す図である。
本実施形態におけるコントローラ１１１について、図２を用いて説明する。
コントローラ１１１は、メインコントローラボード２００と、サブコントローラボード２２０とを有する。
メインコントローラボード２００は、いわゆる汎用的なＣＰＵシステムである。メインコントローラボード２００は、ボード全体を制御するＣＰＵ２０１、ブートプログラムを格納しているＢｏｏｔＲＯＭ２０２、ＣＰＵ２０１がワークメモリとして使用するメモリ２０３及び外部バスとのブリッジ機能を有するバスコントローラ２０４を有する。更に、メインコントローラボード２００は、ストレージ装置を制御するディスクコントローラ２０５、ＵＳＢを制御することが可能なＵＳＢコントローラ２０８及びＬＡＮ又はネットワーク１０７に接続するためのＮＩＣ２１１を有する。更に、メインコントローラボード２００は、電源部１１５を制御する電力供給制御部２１０等を有する。メインコントローラボード２００は、主制御部の一例である。
【００１１】
ＣＰＵ２０１は、ＢｏｏｔＲＯＭ２０２、ＵＳＢメモリ２０９、ＨＤＤ１０４等に格納されているプログラムを実行することによりＭＦＰ１００の機能（ソフトウェア構成）及びフローチャートに係る処理を実現する。
メインコントローラボード２００は、外部でＵＳＢメモリ２０９、操作部１０３、ＨＤＤ１０４等と接続している。また、メインコントローラボード２００は、ＮＩＣ２１１を介してＬＡＮ又はネットワーク１０７と接続している。メインコントローラボード２００のＣＰＵ２０１は、他のネットワーク機器やファイルサーバ等と双方向にデータのやりとりをすることができ、コンピュータ１０８から送信されたジョブ（印刷ジョブ）を受信可能である。
【００１２】
サブコントローラボード２２０は、比較的小さな汎用ＣＰＵシステムと、画像エンジンとを有する。なお、本実施形態における画像エンジンとは、後述するプリンタ装置１０２や、スキャナ装置１０１等を含む。サブコントローラボード２２０は、ボード全体を制御するＣＰＵ２２１、ＣＰＵ２２１がワークメモリとして使用するメモリ２２３及び外部バスとのブリッジ機能を有するバスコントローラ２２４を有する。更に、サブコントローラボード２２０は、リアルタイムデジタル画像処理を行なう画像処理プロセッサ２２７及びデバイスコントローラ２２６を有する。サブコントローラボード２２０は、副制御部の一例である。なお、副制御部は、前記画像エンジンを含んでいてもよい。
ＣＰＵ２２１は、ＵＳＢメモリ２０９、ＨＤＤ１０４等に格納されているプログラムを実行することによりＭＦＰ１００の機能（ソフトウェア構成）を実現する。
外部のスキャナ装置１０１及びプリンタ装置１０２は、デバイスコントローラ２２６を介してＣＰＵ２２１とデジタル画像データの受け渡しを行なう。
プリンタ装置１０２は、装置を動作させるためのファームウェアを格納するためのＲＯＭ２３２及びファームウェアを実行する専用のＣＰＵ２３１を有する。
スキャナ装置１０１は、装置を動作させるためのファームウェアを格納するためのＲＯＭ２４２及びファームウェアを実行する専用のＣＰＵ２４１を有する。
【００１３】
本実施形態における後述のスリープモードとは、ＭＦＰ１００がＮＩＣ２１１及び操作部１０３からジョブを受信することができる最小限の電力が供給されている状態のことをいう。ＭＦＰ１００は、スリープモードでジョブを受信すると、通常起動の状態（以後、通常モードという）へと復帰してジョブを実行する。通常モードの場合、ＭＦＰ１００の全てに電力が供給されている。スリープモードの場合、ＮＩＣ２１１、メモリ２０３及び操作部１０３の一部には電力が供給されている。また、スリープモードの電力供給状態は、上記の状態に限られる必要はなく、本実施形態を制限するものではない。
なお、図２は、本実施形態のコントローラ１１１の一例を簡略化した図である。実際には、ＣＰＵ２０１、ＣＰＵ２２１等は、チップセット、バスブリッジ、クロックジェネレータ等のＣＰＵ周辺ハードウェアを多数有している。
【００１４】
図３は、本実施形態における電力供給を制御する構成の一例を示す図である。
図３における実線の矢印は電力供給を、点線の矢印は電力供給の制御を示す。
電源部１１５は、ＡＣ電源３０１、副電源３０２及び主電源３０３を有する。
ＡＣ電源３０１は、副電源３０２及び主電源３０３に電力を供給する。
副電源３０２は、トリガー検出部３１１に電力を供給する。
主電源３０３は、オンオフ切換スイッチ３１２、３１６、３１７、３１８を介して、メインコントローラボード２００のＣＰＵ２０１、サブコントローラボード２２０、プリンタ装置１０２及びスキャナ装置１０１に電力を供給する。なお、本実施形態では、図２に示されるように画像エンジンがサブコントローラボード２２０の先に接続されている構成となっている。そのため、図３に示される構成において、ＣＰＵ２０１は、画像エンジンに電力が供給されるようにオンオフ切換スイッチを制御する場合、サブコントローラボードのオンオフ切換スイッチ３１６をオンに制御する必要がある。但し、電力制御の構成はこれに限る必要はない。例えば、サブコントローラボード２２０を介さずに電力が供給されるような構成としてもよい。その場合、ＣＰＵ２０１は、サブコントローラボード２２０のオンオフ切換スイッチ３１６がオンであるかオフであるかによらず、画像エンジンのオンオフ切換スイッチを制御することで電力の供給を制御するができる。
なお、主電源３０３は、図示しないオンオフ切換スイッチを介して、ＭＦＰ１００の各構成要素やコントローラ１１１の各構成要素にも電力を供給している。
【００１５】
次に、本実施形態におけるＭＦＰ１００の電力モードとして、通常モード（第１の電力モード）と、スリープモード（第２の電力モード）とについて説明する。ＭＦＰ１００は、少なくとも通常モードとスリープモードのいずれかで動作可能である。
通常モードでは、メインコントローラボード２００、サブコントローラボード２２０、プリンタ装置１０２、スキャナ装置１０１の全てに電力が供給されている。ＣＰＵ２０１は、ＭＦＰをスリープモードに移行させる際に、オンオフ切換スイッチ３１２、３１６、３１７、３１８をオフにする。
図示しないが、このとき、前述したＮＩＣ２１１、メモリ２０３、操作部１０３の一部には、別経路で電力が供給されている。よって、ＭＦＰ１００は、電力供給がされている部分をトリガーにスリープモードから復帰することができる。
ＭＦＰ１００がスリープモードから復帰する場合、トリガー検出部３１１は、操作部２０７やＮＩＣ２１１からのデータの入力を検出及び解析し、オンオフ切換スイッチ３１２をオンにする。更に、ＣＰＵ２０１は、サブコントローラボード２２０、プリンタ装置１０２、スキャナ装置１０１のオンオフ切換スイッチ３１６、３１７、３１８の切り替えを判断し、スイッチをオンにする。
ＣＰＵ２０１は、メインコントローラボード２００、サブコントローラボード２２０、プリンタ装置１０２、スキャナ装置１０１のファームウェアをバージョンアップする際にもオンオフ切換スイッチ３１６、３１７、３１８の切り替えを制御する。詳細については、図６、８を用いて後述する。
【００１６】
図４Ａは、ファームウェアの保持領域が専用記憶領域の場合における記憶領域内部のファームウェア及びバージョン情報の配置の一例を示す図である。本実施形態では、プリンタ装置１０２、スキャナ装置１０１の場合である。
ＲＯＭ２３２、２４２には、プリンタ装置１０２、スキャナ装置１０１における各々のファームウェア４０１が格納されており、ファームウェア４０１内にはファームウェアのバージョン情報４０２が格納されている。
ＣＰＵ２０１は、バージョン情報４０２を用いて、バージョンアップの必要性を判断する。なお、ＣＰＵ２０１による判断処理の詳細について、図６、７を用いて後述する。また、ＣＰＵ２３１、２４１は、プリンタ装置１０２、スキャナ装置１０１の各々のファームウェアのロード及びバージョンアップを実行する。なお、本実施形態ではファームウェアの更新としてバージョンアップを例にして説明するが、バージョンダウンも本実施形態と同様にファームウェアの更新として扱うことができる。
【００１７】
図４Ｂは、ファームウェアの保持領域が併用記憶領域の場合における記憶領域内部のファームウェア及びバージョン情報の配置の一例を示す図である。本実施形態では、メインコントローラボード２００、サブコントローラボード２２０の場合である。
ＨＤＤ１０４には、メインコントローラボード２００、サブコントローラボード２２０における各々のファームウェア４１１、４１３、４１５が格納されている。更に、ファームウェア４１１、４１３、４１５内にはファームウェアのバージョン情報４１２、４１４、４１６が格納されている。
ＣＰＵ２０１は、バージョン情報４１２、４１４、４１６を用いて、バージョンアップの必要性を判断する。なお、ＣＰＵ２０１による判断処理の詳細について、図６、７を用いて後述する。また、ＣＰＵ２０１は、メインコントローラボード２００のファームウェア４１１、４１３のロード及びバージョンアップを実行する。ＣＰＵ２２１は、サブコントローラボード２２０のファームウェア４１５のロード及びバージョンアップを実行する。なお、ＣＰＵ２２１は、ＣＰＵ２０１によりバスコントローラ２２４を介してサブコントローラボード２２０に転送されたファームウェア４１５のバージョンアップを実行する。
図４Ａ、Ｂに示されるように、プリンタ装置１０２、スキャナ装置１０１、メインコントローラボード２００、サブコントローラボード２２０は、１つ以上のファームウェアを有している。
【００１８】
図５は、本実施形態におけるメインコントローラボード２００、サブコントローラボード２２０、プリンタ装置１０２、スキャナ装置１０１が保持しているファームウェアの種類及びそのファームウェアのバージョン情報のテーブルの一例を示す図である。なお、図５に示されるバージョン情報は、ＭＦＰ１００がファームウェアのバージョンアップを実行する前のバージョン情報であるとする。
列５１１は、メインコントローラボード２００、サブコントローラボード２２０、プリンタ装置１０２、スキャナ装置１０１の種別を示している。
列５１２は、ファームウェアの種類を示している。
列５１３は、ファームウェアのバージョン情報を示している。
以後、例えばファームウェア５０１とは、行５０１の情報に対応するファームウェアのことを意味することにする。これは、行５０２から行５０５までにおいても同様とする。
本実施形態において、ＭＦＰ１００が動作するのに必要とするファームウェアは、５０１から５０５までの５つである。
【００１９】
次に、ＭＦＰ１００によるファームウェアのバージョンアップ処理について、図６、７を用いて説明する。
図６は、ＭＦＰ１００によるファームウェアのバージョンアップにおける処理の一例を示すフローチャートである。
以下のＳ１０００からＳ１０１１までの処理における制御及び判断に関する処理は、ＢｏｏｔＲＯＭ２０２、ＨＤＤ１０４、ＵＳＢメモリ２０９に予め記憶されているブートプログラム及びファームウェアをＣＰＵ２０１が実行することによって行われる。なお、ＣＰＵ２０１は、ファームウェアのバージョンアップ処理の実行を指示する。そして、前述したように、ファームウェアのロード及びバージョンアップは、各々のＣＰＵによって実行される。
【００２０】
図７Ａは、メインコントローラボード２００のファームウェアのみがバージョンアップ対象であるバージョンアップ情報の一例を示す図である。
図７Ｂは、サブコントローラボード２２０のファームウェアのみがバージョンアップ対象であるバージョンアップ情報の一例を示す図である。
図７Ｃは、全てのファームウェアがバージョンアップ対象であるバージョンアップ情報の一例を示す図である。
図７Ｄは、メインコントローラボード２００のファームウェア情報が別管理されている場合のバージョンアップ情報の一例を示す図である。
図７Ｅは、スキャナ装置１０１のファームウェアのみがバージョンアップ情報の一例を示す図である。
例えば列７０１は、メインコントローラボード２００、サブコントローラボード２２０、プリンタ装置１０２、スキャナ装置１０１の種別を示している。
例えば列７０２は、ファームウェアの種類を示している。
例えば列７０３は、ファームウェアのバージョン情報を示している。
以後、例えばファームウェア６０１とは、行６０１の情報に対応するファームウェアのことを意味することにする。これは、図７Ａから図７Ｅまでの全てにおいて同様とする。
【００２１】
Ｓ１０００で、ＣＰＵ２０１は、図７Ａから図７Ｅまでに示されるようなバージョンアップ情報を取得し、処理をＳ１００１に進める。ＣＰＵ２０１は、Ｓ１０００で取得したバージョンアップ情報を、更新対象のファームウェアを特定するための更新情報として使用する。ＣＰＵ２０１は、Ｓ１０００の処理をＭＦＰ１００の動作中にバックグラウンドで実行する。また、ＣＰＵ２０１は、定期的にＳ１０００の処理を実行する。なお、ＣＰＵ２０１がＳ１０００を実行する際の定期的な間隔又は時刻は、予め設定されているものとする。但し、ＣＰＵ２０１は、操作部１０３を介して受け付けたユーザからの入力に応じて前記定期的な間隔又は時刻を変更することができる。また、ＣＰＵ２０１は、バージョンアップ情報を、ＬＡＮ又はネットワーク１０７経由でコンピュータ１０８や、管理サーバ装置等から取得してもよいし、ＵＳＢメモリ２０９等から取得するようにしてもよい。
ＣＰＵ２０１が取得したバージョンアップ情報には、図７Ａから図７Ｅまでに示されるように、全ファームウェアに対するバージョン情報が記載されている。
【００２２】
Ｓ１００１で、ＣＰＵ２０１は、Ｓ１０００で取得したバージョンアップ情報からバージョンアップデータがあるか否かを判定し、バージョンアップデータがあると判定した場合、処理をＳ１００２に進める。一方、Ｓ１００１で、ＣＰＵ２０１は、バージョンアップデータがないと判定した場合、処理を終了する。
より具体的には、ＣＰＵ２０１は、保持している各ファームウェアの現在のバージョン情報（図５）と、Ｓ１０００で取得したバージョンアップ情報（図７）に含まれる同種のファームウェアのバージョン情報とを比較する。そして、ＣＰＵ２０１は、バージョンアップ情報に含まれるバージョン情報が、現在のファームウェアのバージョン情報と異なればバージョンアップが必要だと判断する。なお、ここでいうバージョンアップデータとは、バージョンアップ対象のファームウェアのことである。
【００２３】
Ｓ１００２で、ＣＰＵ２０１は、メインコントローラボード２００以外のバージョンアップデータがあるか否かを判定し、バージョンアップデータがあると判定した場合、処理をＳ１００３に進める。一方、Ｓ１００２で、ＣＰＵ２０１は、バージョンアップデータがないと判定した場合、処理をＳ１０１１に進める。なお、本実施形態において、メインコントローラボード２００以外のファームウェアとは、サブコントローラボード２２０、プリンタ装置１０２及びスキャナ装置１０１のファームウェア５０３、５０４、５０５のことである。なお、ファームウェア５０３、５０４、５０５は、バージョンアップ前のファームウェアである。
Ｓ１００２の処理について、より具体的に説明する。
ＣＰＵ２０１が図７Ａのバージョンアップ情報を取得した場合、メインコントローラボード２００のファームウェア６０１だけがバージョンアップ対象である。このような場合、ＣＰＵ２０１は、メインコントローラボード２００以外のバージョンアップデータがないと判定する。また、ＣＰＵ２０１が図７Ｂ、Ｃ、Ｄのバージョンアップ情報を取得した場合、メインコントローラボード２００以外のファームウェア６１３、６２３、６２４、６２５、６３３、６３４、６３５もバージョンアップ対象である。このような場合、ＣＰＵ２０１は、メインコントローラボード２００以外のバージョンアップデータがあると判定する。
【００２４】
Ｓ１０１１で、ＣＰＵ２０１は、通常のバージョンアップ処理を行う。通常のバージョンアップ処理とは、再起動を伴うバージョンアップ処理のことである。より具体的には、ＣＰＵ２０１は、バージョンアップ対象のファームウェアを取得し、再起動を伴うバージョンアップ処理を行う。ここで、ＣＰＵ２０１が取得するバージョンアップ対象のファームウェアは、ファームウェアを更新するための更新ファームウェアとして使用される。なお、ＣＰＵ２０１は、バージョンアップ対象のファームウェアをＬＡＮ又はネットワーク１０７経由でコンピュータ１０８や、管理サーバ装置等から取得してもよいし、ＵＳＢメモリ２０９等から取得するようにしてもよい。
【００２５】
Ｓ１００３で、ＣＰＵ２０１は、メインコントローラボード２００のバージョンアップデータがあるか否かを判定し、バージョンアップデータがあると判定した場合、処理をＳ１００４に進める。一方、Ｓ１００３で、ＣＰＵ２０１は、バージョンアップデータがないと判定した場合、処理をＳ１００９に進める。なお、本実施形態において、メインコントローラボード２００のファームウェアとは、ファームウェア５０１、５０２のことである。なお、ファームウェア５０１、５０２は、バージョンアップ前のファームウェアである。
Ｓ１００３の処理について、より具体的に説明する。
ＣＰＵ２０１が図７Ｂのバージョンアップ情報を取得した場合、メインコントローラボード２００のファームウェア６１１、６１２は、バージョンアップ対象ではない。このような場合、ＣＰＵ２０１は、メインコントローラボード２００のバージョンアップデータがないと判定する。一方、ＣＰＵ２０１が図７Ｃ、Ｄのバージョンアップ情報を取得した場合、メインコントローラボード２００のファームウェア６２１、６２２、６３１、６３２がバージョンアップ対象である。このような場合、ＣＰＵ２０１は、メインコントローラボード２００のバージョンアップデータがあると判定する。
【００２６】
Ｓ１００９で、ＣＰＵ２０１は、スリープバージョンアップを実行し、処理をＳ１０１０に進める。ＣＰＵ２０１によるスリープバージョンアップの処理の詳細について、図８を用いて後述する。
Ｓ１０１０で、ＣＰＵ２０１は、Ｓ１００９でバージョンアップしたファームウェアで、スリープモードから復帰させる。Ｓ１０１０の処理によりバージョンアップされたファームウェアがＭＦＰ１００に反映される。
【００２７】
Ｓ１００４で、ＣＰＵ２０１は、メインコントローラボード２００のファームウェアを個別にバージョンアップすることができるか否かを判定し、個別にバージョンアップできると判定した場合、処理をＳ１００５に進める。一方、Ｓ１００４で、ＣＰＵ２０１は、個別にバージョンアップできないと判定した場合、処理をＳ１００８に進める。
Ｓ１００４の処理について、より具体的に説明する。
図７Ｃのバージョンアップ情報では、メインコントローラボード２００のバージョンアップ情報と、それ以外のバージョンアップ情報とが１つに管理されている。これは、メインコントローラボード２００、サブコントローラボード２２０、プリンタ装置１０２、スキャナ装置１０１のファームウェアが関連していることを意味している。そのため、ＣＰＵ２０１は、図７Ｃのバージョンアップ情報を取得した場合、メインコントローラボード２００のファームウェアを個別にバージョンアップすることができないと判定する。一方、図７Ｄのバージョンアップ情報では、メインコントローラボード２００のバージョンアップ情報と、メインコントローラボード２００以外のバージョンアップ情報とが別々に管理されている。これは、メインコントローラボード２００のファームウェア６３１、６３２と、メインコントローラボード２００以外のファームウェア６３３、６３４、６３５とが関連していないということを意味している。そのため、ＣＰＵ２０１は、図７Ｄのバージョンアップ情報を取得した場合、メインコントローラボード２００のファームウェアを個別にバージョンアップすることができると判定する。
【００２８】
Ｓ１００８で、ＣＰＵ２０１は、通常のバージョンアップ処理を行う。通常のバージョンアップ処理の詳細はＳ１０１１と同様であるため、説明を省略する。
Ｓ１００５で、ＣＰＵ２０１は、Ｓ１０００で図７Ｄのバージョンアップ情報を取得したとした場合、メインコントローラボード２００以外のファームウェア６３３、６３４、６３５においてスリープバージョンアップを実行し、処理をＳ１００６に進める。Ｓ１００９同様、スリープバージョンアップの処理の詳細について、図８を用いて後述する。
Ｓ１００６で、ＣＰＵ２０１は、Ｓ１００５でバージョンアップしたファームウェアで、スリープモードから復帰し、処理をＳ１００７に進める。Ｓ１００６の処理によりバージョンアップされたファームウェアがＭＦＰ１００に反映される。
Ｓ１００７で、ＣＰＵ２０１は、残りのメインコントローラボード２００のファームウェア６３１、６３２のバージョンアップにおいて、通常のバージョンアップ処理を行い、処理を終了する。通常のバージョンアップ処理の詳細はＳ１００８、Ｓ１０１１と同様であるため、説明を省略する。
【００２９】
次に、ＭＦＰ１００によるファームウェアのスリープバージョンアップ処理について、図８を用いて説明する。
図８は、ＭＦＰ１００によるファームウェアのスリープバージョンアップにおける処理の一例を示すフローチャートである。
Ｓ１１００で、ＣＰＵ２０１は、専用のＲＯＭを有していないコントローラボード又は画像エンジンのバージョンアップデータがあるか否かを判定し、バージョンアップデータがあると判定した場合、処理をＳ１１０１に進める。一方、Ｓ１１００で、ＣＰＵ２０１は、バージョンアップデータがないと判定した場合、処理をＳ１１０２に進める。なお、本実施形態では、サブコントローラボード２２０が専用のＲＯＭを保持していないコントローラボード又は画像エンジンに該当する。
ＣＰＵ２０１が図７Ｂのバージョンアップ情報を取得した場合、サブコントローラボード２２０のファームウェア６１３がバージョンアップ対象である。このような場合、ＣＰＵ２０１は、専用ＲＯＭを有していないコントローラボード又は画像エンジンのファームウェアのバージョンアップがあると判定する。一方、ＣＰＵ２０１が図７Ｅのバージョンアップ情報を取得した場合、サブコントローラボード２２０のファームウェア６４３は、バージョンアップ対象ではない。このような場合、ＣＰＵ２０１は、専用ＲＯＭを有していないコントローラボード又は画像エンジンのファームウェアのバージョンアップがないと判定する。
【００３０】
ＣＰＵ２０１が図７Ｂのバージョンアップ情報を取得したとした場合、Ｓ１１０１で、ＣＰＵ２０１は、サブコントローラボード２２０のＣＰＵ２２１にファームウェアのバージョンアップを指示し、処理をＳ１１０２に進める。
より具体的には、ＣＰＵ２２１は、ＭＦＰの動作中にバックグランドで、サブコントローラボード２２０のファームウェア４１５を新しいバージョンのファームウェア６１３で上書きする。なお、サブコントローラボード２２０は、ＣＰＵ２０１によって、ファームウェア４１５を転送してもらうことで起動するため、動作に使用しているファームウェア４１５はメモリ２２３上に展開されている。そのため、ＣＰＵ２２１は、ファームウェア４１５の上書きをすることができる。なお、ＣＰＵ２０１は、バージョンアップ対象のファームウェアをＬＡＮ又はネットワーク１０７経由でコンピュータ１０８や、管理サーバ装置等から取得してもよいし、ＵＳＢメモリ２０９等から取得するようにしてもよい。
【００３１】
Ｓ１１０２で、ＣＰＵ２０１は、ユーザによる操作部１０３の入力を介して受け付けた指示に基づいてＭＦＰ１００のスリープモードへの移行を指示し、処理をＳ１１０３に進める。但し、ＣＰＵ２０１によるスリープモードへの移行指示における処理は、これに限る必要はない。例えば、予め指定しておいた時刻となった場合や、ジョブの実行が一定時間以上ない場合をスリープモードへの移行条件として、この移行条件を満たしたことをＣＰＵ２０１が検知することをＳ１１０２のスリープモードへの移行の指示としてもよい。
【００３２】
Ｓ１１０３で、ＣＰＵ２０１は、専用のＲＯＭを有しているコントローラボード又は画像エンジンのバージョンアップがあるか否かを判定し、バージョンアップデータがあると判定した場合、処理をＳ１１０４に進める。一方、Ｓ１１０３で、ＣＰＵ２０１は、バージョンアップデータがないと判定した場合、処理をＳ１１０５に進める。なお、本実施形態では、プリンタ装置１０２及びスキャナ装置１０１が専用のＲＯＭを有しているコントローラボード又は画像エンジンに該当する。
ＣＰＵ２０１が図７Ｂのバージョンアップ情報を取得した場合、プリンタ装置１０２及びスキャナ装置１０１のファームウェアは、バージョンアップ対象ではない。このような場合、ＣＰＵ２０１は、専用のＲＯＭを有しているコントローラボード又は画像エンジンのファームウェアのバージョンアップがないと判定する。一方、ＣＰＵ２０１が図７Ｅのバージョンアップ情報を取得した場合、スキャナ装置１０１のファームウェア６４４がバージョンアップバージョンアップ対象である。このような場合、ＣＰＵ２０１は、専用のＲＯＭを有しているコントローラボード又は画像エンジンのファームウェアのバージョンアップがあると判定する。
【００３３】
Ｓ１１０４で、ＣＰＵ２０１は、ユーザにはスリープモードに移行したように見せ、バックグラウンドでバージョンアップを行う。そしてバージョンアップが完了したことに応じて、Ｓ１００５に進む。
Ｓ１１０４の処理について、より具体的に説明する。
ＣＰＵ２０１は、メインコントローラボード２００には電力供給を続け、バージョンアップ対象とならないコントローラボード又は画像エンジンのオンオフ切換スイッチ３１６、３１７、３１８をオフにする。また、バージョンアップ対象のコントローラボード又は画像エンジンに対しては、オンオフ切換スイッチ３１６、３１７、３１８を操作して、バージョンアップモードで再起動させる。また、ＣＰＵ２０１は、Ｓ１１０４の処理を行う際に、ユーザが操作部１０３の画面入力をすることができないような画面表示にすることにより、ＭＦＰ１００がスリープモードに移行したように見せる。例えば、ＣＰＵ２０１は、Ｓ１１０４の処理を行う際に、操作部１０３の画面に何も表示されないようにしてもよいし、入力操作をすることができない旨を画面に表示してもよいし、バージョンアップ中である旨を画面に表示する等してもよい。これらの画面表示処理は、画面表示の提供処理の一例である。
【００３４】
ＣＰＵ２０１は、図７Ｅのバージョンアップ情報を取得した場合、プリンタ装置１０２のオンオフ切換スイッチ３１７をオフにする。本実施形態の場合、バージョンアップ対象のスキャナ装置１０１は、バージョンアップ指示を行うメインコントローラボード２００のＣＰＵ２０１から見るとサブコントローラボード２２０の先に接続されている。そのため、ＣＰＵ２０１は、サブコントローラボード２２０にも電源が供給されるように制御する必要がある。そして、ＣＰＵ２０１は、スキャナ装置１０１のファームウェアのバージョンアップを行うため、オンオフ切換スイッチ３１８を操作し、スキャナ装置１０１をバージョンアップ後のモードとして再起動させる。スキャナ装置１０１のＣＰＵ２４１は、スキャナ装置１０１のＲＯＭ２４２に格納されているファームウェア５０４をファームウェア６４４にバージョンアップする。
この間、メインコントローラボード２００以外は電力が供給されていない状態であるか又はファームウェアのバージョンアップ処理中である。しかし、ジョブを受信するメインコントローラボード２００のＣＰＵ２０１は、通常通り電力が供給されているため、ＮＩＣ２１１や操作部１０３経由でジョブを受信することが可能である。
ＣＰＵ２０１は、ＮＩＣ２１１や操作部１０３経由でジョブを受信した場合、ジョブを実行可能であれば実行し、実行不可の場合はジョブの内容をＨＤＤ１０４に格納する。例えば、ＣＰＵ２０１は、ＮＩＣ２１１から印刷ジョブを受信した場合、プリンタ装置１０２がバージョンアップ中でなければジョブを実行することが可能であるのでジョブを実行する。しかし、ＣＰＵ２０１は、プリンタ装置１０２がバージョンアップ中であれば、一時的にＨＤＤ１０４にジョブの内容を格納し、プリンタ装置１０２のバージョンアップ終了後に、ＨＤＤ１０４に格納しておいたジョブを実行する。
【００３５】
Ｓ１１０５で、ＣＰＵ２０１は、ＭＦＰ１００をスリープモードにさせ、処理をＳ１１０６に進める。より具体的には、ＣＰＵ２０１は、ファームウェアのバージョンアップが終了した場合又はバージョンアップ対象のファームウェアがない場合、オンオフ切換スイッチ３１２、３１６、３１７、３１８をオフにし、ＭＦＰ１００をスリープモードにする。例えば、ＣＰＵ２０１は、図７Ｅのバージョンアップ情報を取得した場合、オンオフ切換スイッチ３１６、３１８をオフにして、サブコントローラボード２２０と、スキャナ装置１０１とへの電力供給を停止する。そして、ＣＰＵ２０１は、消費電力削減のためにオンオフ切換スイッチ３１２をオフにして、メインコントローラボード２００への電力供給も停止する。ただし、ＣＰＵ２０１は、上記のファームウェアのバージョンアップだけを意図した場合であれば、オンオフ切換スイッチ３１２をオフにして、メインコントローラボード２００への電力供給を停止しなくてもよい。また、この場合の電力状態をスリープモードとしてもよい。
【００３６】
Ｓ１１０６で、ＣＰＵ２０１は、スリープモードからの復帰要因を取得し、処理を終了する。図３を用いて前述したように、ＮＩＣ２１１、メモリ２０３、操作部１０３の一部には、スリープモード中でも別経路で電力が供給されている。そのため、ＭＦＰ１００は、ＮＩＣ２１１経由で受信したジョブや操作命令、操作部１０３の入力を介して受け付けたユーザからの指示等を復帰要因として、スリープモードから復帰することができる。より具体的には、ＭＦＰ１００がスリープモードから復帰する場合、トリガー検出部３１１は、操作部２０７やＮＩＣ２１１からのデータの入力を検出及び解析し、オンオフ切換スイッチ３１２をオンにする。更に、ＣＰＵ２０１は、サブコントローラボード２２０、プリンタ装置１０２、スキャナ装置１０１のオンオフ切換スイッチ３１６、３１７、３１８の切り替えを判断し、スイッチをオンにすることでスリープモードから復帰する。
【００３７】
以上、本実施形態によれば、ＭＦＰ１００は、メインコントローラボード２００のＣＰＵ２０１により各オンオフ切換スイッチを制御することで、ファームウェアのバージョンアップを個別に実行することができる。これにより、ＭＦＰ１００は、ＭＦＰ１００全体のリブートをすることなくバージョンアップ処理を実行することができる。そのため、ＭＦＰ１００は、ファームウェアのバージョンアップの実行中においても、ネットワークを介して通信可能なコンピュータ１０８からジョブを受信することができる。
【００３８】
＜その他の実施形態＞
また、本実施形態は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００３９】
以上、上述した各実施形態によれば、ＭＦＰ１００は、スリープモードでファームウェアのバージョンアップを行うため、ＭＦＰ１００のリブートをせずにバージョンアップを行うことができる。このように、ＭＦＰ１００は、リブート不要のバージョンアップを行うことで、バージョンアップデータを即時にＭＦＰ１００に反映させることができ、更にバージョンアップ中でもジョブを受信することができる。
【００４０】
以上、本発明の好ましい形態について詳述したが、本実施形態は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図１】
2014115776.tif 000003
【図２】
2014115776.tif 000004
【図３】
2014115776.tif 000005
【図４Ａ】
2014115776.tif 000006
【図４Ｂ】
2014115776.tif 000007
【図５】
2014115776.tif 000008
【図６】
2014115776.tif 000009
【図７Ａ】
2014115776.tif 000010
【図７Ｂ】
2014115776.tif 000011
【図７Ｃ】
2014115776.tif 000012
【図７Ｄ】
2014115776.tif 000013
【図７Ｅ】
2014115776.tif 000014
【図８】
2014115776.tif 000015