(57)【要約】【課題】ソフトウェアを更新している際に、ジョブ処理要求を受信した場合においても、当該ジョブがキャンセルされることがなく、ユーザの利便性を向上させる。【解決手段】画像形成装置は、互いに独立して動作する複数のモジュールと、モジュールの各々に備えられ当該モジュールで動作するソフトウェアが格納されたフラッシュＲＯＭを備えている。モジュールのいずれかでソフトウェアの更新が行われている際、ジョブを受け付けると、メインＣＰＵ２０１は当該ジョブで用いるモジュールがソフトウェアの更新中であるか否かを判定する。そして、ジョブで用いるモジュールがソフトウェアの更新中であると判定すると、メインＣＰＵはソフトウェアの更新が終了するまで、ジョブの実行を待機する。【選択図】図１２
2013097515.tif 000002
【特許請求の範囲】
【請求項１】
互いに独立して動作する複数のモジュールと、前記モジュールの各々に備えられ当該モジュールで動作するソフトウェアが格納されたモジュール記憶手段とを有し、前記複数のモジュールを選択的に用いてジョブを実行する情報処理装置であって、
前記モジュール記憶手段に格納された前記ソフトウェアを更新する更新手段と、
前記モジュールのいずれかで前記ソフトウェアの更新が行われている際、前記ジョブを受け付けると、当該ジョブで用いるモジュールが前記ソフトウェアの更新中であるか否かを判定する判定手段と、
前記判定手段によって前記ジョブで用いるモジュールが前記ソフトウェアの更新中であると判定されると、前記ソフトウェアの更新が終了するまで、前記ジョブの実行を待機させる制御手段とを有することを特徴とする情報処理装置。
【請求項２】
前記モジュールの各々について前記ソフトウェアが更新中であるか否かを示すステータスが記録されたモジュール状態テーブルを有し、
前記判定手段は、前記ジョブで用いるモジュールで前記ソフトウェアの更新が行なわれているか否かについて前記モジュール状態テーブルを参照して判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、実行を待機させたジョブを予約ジョブとして、前記判定手段によって前記予約ジョブで用いるモジュールにおいて前記ソフトウェアの更新が終了したと判定されると、前記予約ジョブを実行することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記ジョブにおけるジョブ設定に関連付けてモジュールが規定されたモジュール関連付けテーブルを備え、
前記判定手段は、前記ジョブに備えられたジョブ設定に応じて前記モジュール関連付けテーブルを参照して、当該ジョブで用いるモジュールを判定することを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記判定手段によって前記ジョブで用いるモジュールが前記ソフトウェアの更新中であると判定されると、ユーザに当該ジョブが待機となる旨の報知を行う報知手段を有することを特徴とする請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記報知に応じてユーザがキャンセルの旨を入力すると、前記制御手段は前記ジョブをキャンセルすることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
互いに独立して動作する複数のモジュールと、前記モジュールの各々に備えられ当該モジュールで動作するソフトウェアが格納されたモジュール記憶手段とを有し、前記複数のモジュールを選択的に用いてジョブを実行する情報処理装置の制御方法であって、
前記モジュール記憶手段に格納された前記ソフトウェアを更新する更新ステップと、
前記モジュールのいずれかで前記ソフトウェアの更新が行われている際、前記ジョブを受け付けると、当該ジョブで用いるモジュールが前記ソフトウェアの更新中であるか否かを判定する判定ステップと、
前記判定ステップで前記ジョブで用いるモジュールが前記ソフトウェアの更新中であると判定されると、前記ソフトウェアの更新が終了するまで、前記ジョブの実行を待機させる制御ステップとを有することを特徴とする制御方法。
【請求項８】
互いに独立して動作する複数のモジュールと、前記モジュールの各々に備えられ当該モジュールで動作するソフトウェアが格納されたモジュール記憶手段とを有し、前記複数のモジュールを選択的に用いてジョブを実行する情報処理装置で用いられる制御プログラムであって、
前記情報処理装置に備えられたコンピュータに、
前記モジュール記憶手段に格納された前記ソフトウェアを更新する更新ステップと、
前記モジュールのいずれかで前記ソフトウェアの更新が行われている際、前記ジョブを受け付けると、当該ジョブで用いるモジュールが前記ソフトウェアの更新中であるか否かを判定する判定ステップと、
前記判定ステップで前記ジョブで用いるモジュールが前記ソフトウェアの更新中であると判定されると、前記ソフトウェアの更新が終了するまで、前記ジョブの実行を待機させる制御ステップとを実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、その制御方法、および制御プログラムに関し、特に、電子写真方式又は静電記録方式などを用いた画像形成装置に関する。
【背景技術】
【０００２】
一般に、情報処理装置の一つとして所謂画像形成装置が知られている。そして、クライアントＰＣなどの外部装置と複合機などの画像形成装置とをＬＡＮなどのネットワークで接続された印刷システムが知られている。ここでは、画像形成装置は外部装置からプリントジョブなどの画像処理ジョブを受けて当該画像処理ジョブを実行する。
【０００３】
画像形成装置で実行可能な処理は、当該画像形成装置に備えられたハードウェアリソースの範囲内であれば、ＣＰＵが実行するプログラム（ファームウェア）を更新すれば、容易に変更および追加することができる。
【０００４】
ところで、ファームウェアの削除・更新を高速にするとともに、タイマジョブとして実行待ちとなっている予約画像処理ジョブを遂行するソフトウェアパーツを、通常のジョブに支障をきさない範囲で適宜削除・更新するため、予約画像処理ジョブに更新対象となるソフトウェアパーツを用いる処理が含まれているか否かを判定するようにしたものがある。そして、ここでは、予約画像処理ジョブに更新対象となるソフトウェアパーツを用いる処理が含まれていないと判定した場合には、当該更新対象のソフトウェアパーツの更新処理を行う（特許文献１参照）。
【０００５】
そして、特許文献１においては、予約ジョブ中に当該ソフトウェアパーツが含まれているが、ネットワーク上の他の画像形成装置が備えるソフトウェアパーツで代替することができると判断した場合には、当該他の画像形成装置を用いるように再スケジューリングを行う。一方、代替する画像形成装置が存在しないと判断した場合には、当該更新要求を保留にしている。
【０００６】
さらに、ファームウェアのバージョンアップを行う際、新しいファームウェアをダウンロードして、このファームウェアをＲＡＭ領域に一時記憶するようにしたものがある（特許文献２参照）。ここでは、電源オンの際にプログラムが動作を開始するプログラムリセットベクタに分岐して、ＲＡＭ領域にロードされたファームウェアを読み出して、このファームウェアを従来のファームウェアが存在していたＰＲＯＭ領域に書き込んでいる。そして、特許文献２では、実行中および実行待機中の画像処理ジョブを検知して、これらジョブが存在すると、前述のファームウェア更新動作を保留するようにしている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−１０８９５７号公報
【特許文献２】特開２００１−２７３１４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところが、上述の特許文献１では、更新すべきソフトウェアパーツがある場合において、その更新と予約画像処理ジョブとをスケジューリングしているだけであって、例えば、ソフトウェアパーツの更新中にプリント処理要求コマンドを受信した場合には処理を行うことが困難となってしまう。
【０００９】
つまり、特許文献１に記載の画像形成装置では、ソフトウェアパーツを更新している際に、当該ソフトウェアパーツを用いるプリント処理要求などのジョブを受信しても、当該ジョブを実行することができず、このジョブはキャンセルせざるを得ない。よって、ユーザは再度ジョブを投入しなければならず、ユーザにとっては使い勝手が極めて悪い。
【００１０】
同様に、特許文献２においても、画像処理ジョブの実行中にファームウェアをダウンロードすべきタイミングが到来した際の処理を行っているのみで、ファームウェアのダウンロード中にプリント処理要求コマンドを受けた際には処理を行うことが困難となってしまう。
【００１１】
従って、特許文献２に記載の画像形成装置においても、ファームウェアのダウンロード中にプリント処理要求などのジョブを受信しても、当該ジョブを実行することができず、このジョブはキャンセルせざるを得ない。よって、ユーザは再度ジョブを投入しなければならず、ユーザにとっては使い勝手が極めて悪い。
【００１２】
よって、本発明の目的は、ソフトウェアパーツ（プログラム）を更新している際に、ジョブ処理要求を受信した場合においても、当該ジョブがキャンセルされることがなく、ユーザにとって利便性の向上した情報処理装置、その制御方法、および制御プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
上記の目的を達成するため、本発明による情報処理装置は、互いに独立して動作する複数のモジュールと、前記モジュールの各々に備えられ当該モジュールで動作するソフトウェアが格納されたモジュール記憶手段とを有し、前記複数のモジュールを選択的に用いてジョブを実行する情報処理装置であって、前記モジュール記憶手段に格納された前記ソフトウェアを更新する更新手段と、前記モジュールのいずれかで前記ソフトウェアの更新が行われている際、前記ジョブを受け付けると、当該ジョブで用いるモジュールが前記ソフトウェアの更新中であるか否かを判定する判定手段と、前記判定手段によって前記ジョブで用いるモジュールが前記ソフトウェアの更新中であると判定されると、前記ソフトウェアの更新が終了するまで、前記ジョブの実行を待機させる制御手段とを有することを特徴とする。
【００１４】
本発明による制御方法は、互いに独立して動作する複数のモジュールと、前記モジュールの各々に備えられ当該モジュールで動作するソフトウェアが格納されたモジュール記憶手段とを有し、前記複数のモジュールを選択的に用いてジョブを実行する情報処理装置の制御方法であって、前記モジュール記憶手段に格納された前記ソフトウェアを更新する更新ステップと、前記モジュールのいずれかで前記ソフトウェアの更新が行われている際、前記ジョブを受け付けると、当該ジョブで用いるモジュールが前記ソフトウェアの更新中であるか否かを判定する判定ステップと、前記判定ステップで前記ジョブで用いるモジュールが前記ソフトウェアの更新中であると判定されると、前記ソフトウェアの更新が終了するまで、前記ジョブの実行を待機させる制御ステップとを有することを特徴とする。
【００１５】
本発明による制御プログラムは、互いに独立して動作する複数のモジュールと、前記モジュールの各々に備えられ当該モジュールで動作するソフトウェアが格納されたモジュール記憶手段とを有し、前記複数のモジュールを選択的に用いてジョブを実行する情報処理装置で用いられる制御プログラムであって、前記情報処理装置に備えられたコンピュータに、前記モジュール記憶手段に格納された前記ソフトウェアを更新する更新ステップと、前記モジュールのいずれかで前記ソフトウェアの更新が行われている際、前記ジョブを受け付けると、当該ジョブで用いるモジュールが前記ソフトウェアの更新中であるか否かを判定する判定ステップと、前記判定ステップで前記ジョブで用いるモジュールが前記ソフトウェアの更新中であると判定されると、前記ソフトウェアの更新が終了するまで、前記ジョブの実行を待機させる制御ステップとを実行させることを特徴とする。
【発明の効果】
【００１６】
本発明よれば、ソフトウェアが更新中であるモジュールを用いるジョブを受けても、当該ジョブをキャンセルすることなく待機させるようにしたので、ユーザにとって利便性が向上する。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態による情報処理装置の一つである画像形成装置の一例についてその構成を概略的に示す断面図である。
【図２】図１に示す画像形成装置の制御系（制御部）の一例を示すブロック図である。
【図３】図２に示すＹＭＣドラムモータ／高圧ドライバ、Ｋドラム／高圧・ＩＴＢモータ・二次転写高圧ドライバ、両面／反転ユニットドライバ、オプションカセットドライバ、およびバッファパス／フィニッシャドライバについて説明するためのブロック図である。
【図４】図１に示す画像形成装置に備えられたユーザ操作部４０１の一例を示す図である。
【図５】図４に示すユーザ操作部４０１に表示された表示画面の一例を示す図である。
【図６】図３に示すメインＣＰＵとサブＣＰＵとの接続形態の一例を示すブロック図である。
【図７】図６に示すメインＣＰＵとサブＣＰＵとにおいて行われるモード切り替え処理を説明するためのフローチャートである。
【図８】プログラムモードの際に図６に示すメインＣＰＵとサブＣＰＵとの間で行われる通信について説明するためのフローチャートである。
【図９】プログラムモードの際に図６に示すメインＣＰＵとサブＣＰＵとの間で行われる通信について説明するためのシーケンス図である。
【図１０】図６に示すメインＣＰＵとサブＣＰＵとの間でファームウェア更新を行った際の信号波形を説明するためのタイムチャートである。
【図１１】図３に示すＲＡＭに保持されるサブＣＰＵ状態テーブルの一例を示す図である。
【図１２】図３に示すいずれかのサブＣＰＵにおいてファームウェアの更新中である場合にスタートキーが押し下げられた際のメインＣＰＵの動作の一例を説明するためのフローチャートである。
【図１３】図３に示すメインＣＰＵがユーザ操作部４０１から受けるジョブモード情報の一例を示す図である。
【図１４】図３に示すＲＯＭに格納されたサブＣＰＵ関連付けテーブルの一例を示す図である。
【図１５】図１２に示す使用サブＣＰＵ判定処理の一例を詳細に説明するためのフローチャートである。
【図１６】図５に示すジョブモードの設定（ジョブ設定）が行われた際の使用サブＣＰＵ判定処理における判定結果を示す図である。
【図１７】図１２で説明した予約ジョブの実行を説明するためのフローチャートである。
【図１８】図３に示すいずれかのサブＣＰＵにおいてファームウェアの更新中である場合にスタートキーが押し下げられた際のメインＣＰＵの動作の他の例を説明するためのフローチャートである。
【図１９】図１８に示すジョブキャンセル判定処理の際にユーザ操作部４０１に表示されるポップアップウィンドウの一例を示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態による情報処理装置の一例について図面を参照して説明する。
【００１９】
図１は、本発明の実施の形態による情報処理装置の一つである画像形成装置の一例についてその構成を概略的に示す断面図である。
【００２０】
図１において、図示の画像形成装置は、所謂カラー複合機であり、画像形成装置本体１００、画像読取装置１４０、および後処理装置１６０を備えている。
【００２１】
いま、図示の画像形成装置を用いてコピーを行おうとする際には、読み取りガラス１４２上に原稿が配置される。そして、スキャナーユニット１４３によって原稿上の画像が光学的に読み取られて、光学像として光電変換部（例えば、ＣＣＤ）１４４に与えられる。光電変換部１１４は光学像を電気信号（画像信号）に変換する。そして、この電気信号は制御装置（図示せず）に与えられて、ここで、所定の処理が施されて、画像データとされる。
【００２２】
画像形成装置本体１００は、イエロー（Ｙ）プロセスユニット１０１ｙ、マゼンダ（Ｍ）プロセスユニット１０１ｍ、シアン（Ｃ）プロセスユニット１０１ｃ、およびブラック（Ｋ）プロセスユニット１０１ｋを備えている。そして、これらプロセスユニットの各々は感光ドラム、現像器、および帯電ローラなどを有している。
【００２３】
ここで、Ｋプロセスユニット１０１ｋに注目して、Ｋプロセスユニット１０１ｋには感光ドラム１０２ｋが収納されている。この感光ドラム１０２ｋはドラムモータ（図示せず）によって回転駆動される。感光ドラム１０２ｋの表面は帯電ローラ１０３ｋによって一様に帯電される。レーザスキャナユニット１０４ｋは、画像データに応じて変調されたレーザ光を、ポリゴンミラー回転体（図示せず）によって感光ドラム１０２ｋをその長手方向に走査する。
【００２４】
レーザ光の走査によって、感光ドラム１０２ｋの表面には画像データに応じた静電潜像が形成される。現像器１０５ｋには、例えば、Ｋトナーおよびキャリアを有する二成分現像剤が収納されている。この現像器１０５ｋには、トナーが充填されたトナーボトル１０６ｋが連結され、トナーボトル１０６ｋからＫトナーが現像器１０５ｋに供給される。現像器１０５ｋは感光ドラム１０２ｋ上の静電潜像をＫトナーで現像してＫトナー像とする。
【００２５】
Ｋプロセスユニット１０１ｋには、補助帯電ブラシ１０９ｋが備えられており、中間転写ベルト（中間転写体）１０８にＫトナー像を転写した際に感光ドラム１０２ｋに残留する転写残トナーを一様に帯電させる。そして、この転写残トナーは感光ドラム１０２ｋから除去されて回収される。
【００２６】
なお、Ｙプロセスユニット１０１ｙ、Ｍプロセスユニット１０１ｍ、Ｃプロセスユニット１０１ｃはＫプロセスユニット１０１ｋと同様の構成を有している。
【００２７】
Ｙプロセスユニット１０１ｙ、Ｍプロセスユニット１０１ｍ、Ｃプロセスユニット１０１ｃ、およびＫプロセスユニット１０１ｋに中間転写ベルト１０８を介してそれぞれ一次転写ローラ１０７ｙ、１０７ｍ、１０７ｃ、および１０７ｋが対向している。そして、一次転写１０７ｙ、１０７ｍ、１０７ｃ、および１０７ｋによってＹプロセスユニット１０１ｙ、Ｍプロセスユニット１０１ｍ、Ｃプロセスユニット１０１ｃ、およびＫプロセスユニット１０１ｋから順次Ｙトナー像、Ｍトナー像、Ｃトナー像、およびＫトナー像が中間転写ベルト１０８に転写されて重ね合わされる。これによって、中間転写ベルト１０８にはカラートナー像が形成される。
【００２８】
中間転写ベルト１０８上のカラートナー像は、中間転写ベルト１０８の回転によって二次転写位置に搬送される。
【００２９】
一方、用紙カセット（給紙カセット又は単にカセットともいう）１１３、１２５、および１２６から選択的に給紙ローラ１１４、１２７、および１２８によって用紙が用紙搬送路に搬送される。そして、用紙はレジストローラ１１５によって斜行を補正された後、二次転写位置に送られる。二次転写位置において、中間転写ベルト１０８上のカラートナー像は二次転写ローラ１１０によって用紙に転写される。その後、用紙は定着器に送られて、ここで、定着ローラ１１７および加圧ローラ１１８によって用紙上のカラートナー像が熱定着される。
【００３０】
なお、トナー濃度補正を行うため、Ｋプロセスユニット１０１ｋの出口近傍にはパターン濃度検知センサ１１２が配置されている。トナー濃度補正を行う際には、予め定めらたれパターンを有する濃度補正用パターンが中間転写ベルト１０８上に形成される。そして、濃度検知センサ１１２によって濃度補正用パターンを検知してその検知結果に応じて濃度補正が行われる。
【００３１】
また、中間転写ベルト１０８に残留した転写残トナーは中間転写体クリーナ１１１によって回収される。
【００３２】
片面印刷の際には、定着器を出た用紙は、排紙フラッパ１１９によって排紙ローラ１２０を備える排紙経路に送られる。そして、後処理を行う際には、用紙は後処理フラッパ１５２によって、バッファパス搬送ローラ１５１を備えるバッファパスユニット１５０に搬送されて、ここから後処理装置（フィニッシャ）１６０に送られる。後処理装置１６０は用紙又は用紙束に対して所定の後処理を行った後、フィニッシャトレイ１６１又は１６２に用紙又は用紙束を排紙する。
【００３３】
後処理を行わない場合には、用紙は後処理フラッパ１５２によって、排紙トレイ１２１に排紙される（洞内排紙）。
【００３４】
両面印刷を行う場合には、定着器を出た用紙は排紙フラッパ１１９によって両面反転フラッパ１２３を介して両面反転駆動ローラ１２２に送られる。続いて、両面判定駆動ローラ１２２によって用紙は逆方向に搬送されて、反転フラッパ１２３によって、両面再給紙駆動ローラ１２４を備える両面印刷搬送路に送られる。そして、用紙は再度レジストローラ１１５に送られて、前述のようにして、裏面側に印刷が行われることになる。
【００３５】
なお、モノクロ印刷の際には、Ｋプロセスユニット１０１ｋのみが用いられ、Ｋプロセスユニット１０１ｋから中間転写ベルト１０８にＫトナー像が転写される。
【００３６】
図２は、図１に示す画像形成装置の制御系（制御部）の一例を示すブロック図である。
【００３７】
次に、本画像形成装置の制御回路構成について、図２のブロック図を用いて説明する。
【００３８】
図示の制御部はメインＣＰＵ２０１を備えており、このメインＣＰＵ２０１は画像形成装置全体の制御を司る。ＲＯＭ２０２にはメインＣＰＵ２０１上で動作する制御プログラムなどが格納され、ＲＡＭ２０３はメインＣＰＵ２０１が一時的にデータなどを記憶するために用いられる。バックアップＲＡＭ２０４は画像形成装置が動作する際に設定された設定情報などが記憶される。バックアップＲＡＭ２０４にはバックアップバッテリ（図示せず）によって電源が供給され、画像形成装置のメイン電源を断としても、バックアップＲＡＭ２０４に記憶された設定情報は保持される。
【００３９】
モータドライバ２０５は、図１に示す給紙ローラ１１４およびレジストローラ１１５などの回転制御を行う。メインＣＰＵ２０１にはシリアルインターフェイス（ＳＣＩ）２０６が備えられており、ＳＣＩ２０６は８ＣＨ（８チャンネル）の信号線によってメインＣＰＵ２０１に接続された各種モジュールと通信を行う。各チャンネルは２本の信号線を備え、これによって全二重通信が行われる。そして、メインＣＰＵ２０１は後述するモジュールを制御する。
【００４０】
ネットワークインターフェイス（Ｉ／Ｆ）２０７は画像データを供給するプリンタコントローラ（システムコントローラ：図示せず）と接続される。レーザドライバ２０８は、図１に示すレーザスキャナユニット１０４ｙ、１０４ｍ、１０４ｃ、および１０４ｋを制御する。ＹＭＣドラムモータ／高圧ドライバ２０９はＹプロセスユニット１０１ｙ、Ｍプロセスユニット１０１ｍ、およびＣプロセスユニット１０１ｃの各々に備えられた感光ドラム駆動モータ（図示せず）を駆動制御するとともに、帯電、現像、および一次転写に係る電圧制御を行う。
【００４１】
Ｋドラム／高圧・ＩＴＢモータ・二次転写高圧ドライバ２１０はＫプロセスユニット１０１ｋに備えられた感光ドラム駆動モータ（図示せず）を駆動制御するとともに、帯電、現像、および一次転写に係る電圧制御を行う。さらに、Ｋドラム／高圧・ＩＴＢモータ・二次転写高圧ドライバ２１０は中間転写体１０８の駆動モータを駆動制御するとともに、二次転写ローラ１１０に係る二次転写電圧制御を行う。
【００４２】
両面・反転ユニットドライバ２１１は。両面反転駆動ローラ１２２および両面再給紙駆動ローラ１２４を駆動制御するとともに、両面反転フラッパ１２３の回動制御を行う。オプションカセットドライバ２１２は増設給紙カセットである用紙カセット１２５および１２６において給紙ローラ１２７および１２８を駆動制御する。
【００４３】
バッファパス／フィニッシャドライバ２１３はバッファパスユニット１５０およびフィニッシャ１６０を制御する。つまり、バッファパス／フィニッシャドライバ２１３はバッファパス搬送ローラ１５１を駆動制御するとともに、フィニッシャ上トレイ１６１およびフィニッシャ下トレイ１６２の昇降制御を行う。
【００４４】
図３は、図２に示すＹＭＣドラムモータ／高圧ドライバ２０９、Ｋドラム／高圧・ＩＴＢモータ・二次転写高圧ドライバ２１０、両面／反転ユニットドライバ２１１、オプションカセットドライバ２１２、およびバッファパス／フィニッシャドライバ２１３について説明するためのブロック図である。
【００４５】
図２で説明したＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、およびバックアップＲＡＭ２０４はメインエンジンコントローラボード２０１ａに搭載されている。ＹＭＣドラムモータ／高圧ドライバ２０９は、サブＣＰＵ３０１、フラッシュＲＯＭ３０２、およびＳＲＡＭ３０３を備えている。フラッシュＲＯＭ３０２にはサブＣＰＵ３０１上で動作する制御プログラムが格納されている。ＳＲＡＭ３０３は、例えば、サブＣＰＵ３０１の作業領域として用いられる。そして、サブＣＰＵ３０１はＣＰＵ２０１の制御下でＹＭＣドラムモータ３０４およびＹＭＣ高圧ユニット３０５を制御する。
【００４６】
Ｋドラム／高圧・ＩＴＢモータ・二次転写高圧ドライバ２１０は、サブＣＰＵ３１１、フラッシュＲＯＭ３１２、およびＳＲＡＭ３１３を備えている。フラッシュＲＯＭ３１２にはサブＣＰＵ３１１上で動作する制御プログラムが格納されている。ＳＲＡＭ３１３は、サブＣＰＵ３１１の作業領域として用いられる。そして、サブＣＰＵ３１１は、ＣＰＵ２０１の制御下でＫドラムＩＴＢモータ３１４、Ｋ高圧ユニット３１５、および二次転写高圧ユニット３１６を制御する。
【００４７】
両面／反転ユニットドライバ２１１は、サブＣＰＵ３２１、フラッシュＲＯＭ３２２、およびＳＲＡＭ３２３を備えている。フラッシュＲＯＭ３２２にはサブＣＰＵ３２１上で動作する制御プログラムが格納されている。ＳＲＡＭ３２３は、サブＣＰＵ３２１の作業領域として用いられる。そして、サブＣＰＵ３２１はＣＰＵ２０１の制御下で両面反転モータ３２４および両面再給紙モータ３２５を制御する。
【００４８】
オプションカセットドライバ２１２は、サブＣＰＵ３３１、フラッシュＲＯＭ３３２、およびＳＲＡＭ３３３を備えている。フラッシュＲＯＭ３３２にはサブＣＰＵ３３１上で動作する制御プログラムが格納されている。ＳＲＡＭ３３３は、サブＣＰＵ３３１の作業領域として用いられる。そして、サブＣＰＵ３３１は、ＣＰＵ２０１の制御下で増設カセット給紙モータ３３４および３３５を制御する。
【００４９】
バッファパス／フィニッシャドライバ２１３は、サブＣＰＵ３４１、フラッシュＲＯＭ３４２、およびＳＲＡＭ３４３を備えている。フラッシュＲＯＭ３４２にはサブＣＰＵ３４１上で動作する制御プログラムが格納されている。ＳＲＡＭ３４３は、サブＣＰＵ３４１の作業領域として用いられる。そして、サブＣＰＵ３４１は、ＣＰＵ２０１の制御下でバッファパスモータ３４４、フィニッシャ上トレイ１６１およびフィニッシャ下トレイ１６２を駆動する昇降モータ３４５、およびフィニッシャ１６０が備えるステイプル機構３４６を制御する。
【００５０】
図４は、図１に示す画像形成装置に備えられたユーザ操作部４０１の一例を示す図である。
【００５１】
ユーザ操作部４０１は電源スイッチ４０４を備えており、電源スイッチ４０４の操作によって画像形成装置の主電源がオン又はオフされる。節電ボタン４０３の操作によって画像形成装置は所定の節電モードに移行する。電源ＬＥＤ４０４は主電源がオンの場合に、例えば、緑色に点灯する。また、電源ＬＥＤ４０４はユーザの操作で選択された機能が動作中であると緑色に点滅する。さらに、電源ＬＥＤ４０４は画像形成装置においてエラーなどが発生した際には赤色に点灯して、ユーザに異常を報知する。
【００５２】
液晶表示部（ＬＣＤ）５０１は、例えば、タッチパネル式のＴＦＴドットマトリクス型の液晶パネルによって構成される。そして、ＬＣＤ５０１において画像形成装置における各モードの操作・表示が行われ、各モードの切り替えが行われる。
【００５３】
テンキー４０６は、例えば、コピー枚数およびＦＡＸ送信先などの数字を入力する際に用いられる。リセットキー４０７は入力した数値をクリアする際に用いられ、さらに現在選択中のモードにおいて初期状態に戻る際に用いられる。スタートキー４０８は、液晶表示部５０１又はテンキー４０６による入力操作に応じた動作を開始するためのキーである。
【００５４】
ストップキー４０９は、スタートキー４０８によって開始された動作を、動作途中でキャンセルするためのキーである。ヘルプキー４１０はユーザの操作によって表示画面に対する説明文章を表示するためのキーである。ユーザモードボタン４１１はユーザが予めユーザ設定を行うためのキーである。
【００５５】
図５は、図４に示すユーザ操作部４０１に表示された表示画面の一例を示す図である。
【００５６】
図５に示す表示画面はＬＣＤ５０１に表示される。ここでは、ユーザによってコピーモードが詮索された際の表示画面（つまり、コピーモード画面）が示されている。コピーモード画面は、ファンクション選択ボタン画面５０１、操作パネル画面５０２、およびステータス表示画面５１１を有する。
【００５７】
ファンクション選択ボタン画面５０２において、ユーザが所望のファンクションキーをタッチすると、ＣＰＵ２０１は当該タッチされたキーに応じた動作（つまり、機能）に切り替える。機能が切り替わると、ＣＰＵ２０１は当該切り替わった機能を表示する表示画面をＬＣＤ５０１に表示する。図示の例では、コピーモードであるから、”ＣＯＰＹ”が点灯しているが、ユーザが、例えば、”ＦＡＸ”をタッチすると、ＦＡＸ動作モード画面がＬＣＤ５０１に表示される。この際には、ファンクション選択ボタン画面５０２において、”ＦＡＸ”が点灯する。
【００５８】
操作パネル画面５０３には、コピーが実行可能であるか否かを示す情報が表示され、さらに、用紙サイズの設定などのモード設定およびコピー枚数などが表示される。コピー枚数はテンキー４０６からの入力によって設定され、操作パネル画面５０３に表示される。
【００５９】
さらに、操作パネル画面５０３には、色モード設定５０４、倍率設定５０５、片面・両面設定５０６、用紙選択設定５０７、および排紙トレイ設定５０８が表示される。そして、ユーザはタッチ操作によって色モード、倍率、片面・両面設定、用紙選択、および排紙トレイの設定を行う。
【００６０】
つまり、色モード設定５０４では白黒モード又はカラーモードのいずれかを選択することができる。倍率設定５０５では、縮小、等倍、又は拡大の設定を行うことができ、選択された倍率は、前述のように、操作パネル画面５０３に表示される。
【００６１】
片面・両面設定５０６では、片面コピー又は両面コピーのいずれかを選択することができる。用紙選択設定５０７ではいずれの給紙カセットに収納された用紙を用いるかを選択することができる。排紙トレイ設定５０８では、プリント後の用紙をいずれのトレイに排紙するかを設定する。
【００６２】
ステータス表示画面５１１には、画像形成装置の状態が変化した際に、その状態変化の旨がメッセージとして表示される。
【００６３】
図６は、図３に示すメインＣＰＵ２０１とサブＣＰＵ３０１との接続形態の一例を示すブロック図である。図６においては、メインＣＰＵ２０１とサブＣＰＵ３０１との接続形態について説明するが、メインＣＰＵ３０１とサブＣＰＵ３１１〜３４１との接続形態についてもサブＣＰＵ３０１と同様である。
【００６４】
メインＣＰＵ２０１はリセット信号線（ＲＥＳＥＴ）６０１、ブートモード信号線（ＢＯＯＴＭＯＤＥ）６０２、送信信号線（ＴｘＤ）信号線６０３、および受信信号線（ＲｘＤ）信号線６０４によってサブＣＰＵ３０１に接続されている。
【００６５】
ＲＥＳＥＴ６０１は、メインＣＰＵ２０１が出力側となって、サブＣＰＵ３０１が入力側となって、メインＣＰＵ２０１によって所定のタイミングでサブＣＰＵ３０１をリセットする際に用いられる。そして、ＲＥＳＥＴ６０１は動作時にＨ（ハイ）レベルとなり、リセット時にはＬ（ロー）レベルとなる。
【００６６】
ＢＯＯＴＭＯＤＥ６０２は、メインＣＰＵ２０１が出力側、サブＣＰＵ３０１が入力側となって、サブＣＰＵ３０１がリセットして再起動した後の動作モードを決定するために用いられる。ＢＯＯＴＭＯＤＥ６０２は通常時にＨレベルとなり、ファームウェア更新モード時にはＬレベルとなる。
【００６７】
ＴｘＤ６０３は、メインＣＰＵ２０１からサブＣＰＵ３０１にシリアル通信信号を送信するためのものである。ＴｘＤ６０３においては、ＴＴＬレベルの調歩同期で８ビットずつ情報が送信される。ＲｘＤ６０４は、サブＣＰＵ３０１からメインＣＰＵ２０１にシリアル通信信号を送信するためのものである。ＲｘＤ６０４においても同様にＴＴＬレベルの調歩同期で８ビットずつ情報が送信される。
【００６８】
続いて、図３に示すサブＣＰＵ３０１〜３４１におけるファームウェアの更新処理について説明する。ここでは、サブＣＰＵ３０１におけるファームウェアの更新処理を例に挙げて説明するが、サブＣＰＵ３１１〜３４１におけるファームウェアの更新処理についても同様である。
【００６９】
サブＣＰＵ３０１の制御プログラムが格納されたフラッシュＲＯＭ３０２は、例えば、３２ｋバイトの容量を備えている。そして、このフラッシュＲＯＭ３０２は所定の手順に応じてアクセスを行って書き込み処理を行うことができる。サブＣＰＵ３０１に係る制御プログラムの更新中においては、更新対象であるフラッシュＲＯＭ３０２にプログラムコード（つまり、制御プログラム）が存在すると、書き換えプログラムが動作することができない。
【００７０】
よって、まず、サブＣＰＵ３０１のワーク領域であるＳＲＡＭ３０３に書き換えプログラムを保存して、書き換えプログラムをサブＣＰＵ３０１で動作させるためのプログラムモードに移行する（つまり、モード切り替え処理を行う必要がある）。
【００７１】
図７は、図６に示すメインＣＰＵ２０１とサブＣＰＵ３０１とにおいて行われるモード切り替え処理を説明するためのフローチャートである。
【００７２】
ファームウェア更新処理を開始すると、メインＣＰＵ２０１はファームウェア更新対象であるサブＣＰＵ３０１についてＲＥＳＥＴ６０１をオン（Ｌレベル）して、サブＣＰＵ３０１をリセットする（ステップＳ７０２）。そして、メインＣＰＵ２０１はＢＯＯＴＭＯＤＥ６０２をアクティブ（Ｌレベル）に設定する。つまり、メインＣＰＵ２０１はＢＯＯＴＭＯＤＥ６０２をプログラムモードに設定する（ステップＳ７０３）。
【００７３】
サブＣＰＵ３０１は、ＢＯＯＴＭＯＤＥ６０２がアクティブの状態でリセットを解除が行われると（ステップＳ７０４）、フラッシュＲＯＭ３０２のプログラムモードで起動される。プログラムモードにおいては、サブＣＰＵ３０１はＴｘＤ６０３からの通信待ちとなってフラッシュＲＯＭ３０２の書き換えプログラムをワークメモリであるＳＲＡＭ３０３に展開する。
【００７４】
以後、メインＣＰＵ２０１とサブＣＰＵ３０１との通信およびフラッシュＲＯＭ３０２の書き換え制御は、ＳＲＡＭ３０３上に展開されたプログラムに応じて行われる。
【００７５】
後述するようにして、サブＣＰＵ３０１において、フラッシュＲＯＭ３０２の書き換え（書き込み）が行われた後（ステップＳ７０５）、メインＣＰＵ２０１はサブＣＰＵ３０１を再度リセットする（ステップＳ７０６）。そして、メインＣＰＵ２０１はＢＯＯＴＭＯＤＥ６０２をインアクティブに設定する。つまり、メインＣＰＵ２０１はＢＯＯＴＭＯＤＥ６０２を通常モードに設定する（ステップＳ７０７）。その後、メインＣＰＵ２０１はサブＣＰＵ３０２のリセットを解除して（ステップＳ７０８）、ファームウェア更新処理を終了する。
【００７６】
図８は、プログラムモードの際に図６に示すメインＣＰＵ２０１とサブＣＰＵ３０１との間で行われる通信について説明するためのフローチャートである。
【００７７】
フラッシュＲＯＭ３０２の書き換えを行う際、まず、メインＣＰＵ２０１は書き換えを行うためのネゴシエーション情報（ファーム更新リクエスト）をサブＣＰＵ３０１に送信する（ステップＳ８０２）。続いて、メインＣＰＵ２０１はファーム更新リクエストに対する応答（書き換え可能応答）をサブＣＰＵ３０１から受信したか否かを判定する（ステップ８０３）。
【００７８】
書き換え可能応答を受信しないと（ステップＳ８０３において、ＮＯ）、メインＣＰＵ２０１は待機する。一方、書き換え可能応答を受信すると（ステップＳ８０３において、ＹＥＳ）、メインＣＰＵ２０１はフラッシュＲＯＭ３０２を直接書き換えることができないため、書き換えに先立ってサブＣＰＵ３０１に対してフラッシュメモリ消去要求を発行する（ステップ８０４）。
【００７９】
続いて、メインＣＰＵ２０１は、フラッシュＲＯＭ３０２の消去を行ったことを示す応答（フラッシュメモリ消去応答）をサブＣＰＵ３０１から受信したか否かを判定する（ステップＳ８０５）。フラッシュメモリ消去応答を受信しないと（ステップＳ８０５において、ＮＯ）、メインＣＰＵ２０１は待機する。
【００８０】
フラッシュメモリ消去要求を受けると、サブＣＰＵ３０１はフラッシュＲＯＭ３０２の全ブロックの消去を行う。そして、全ブロックの消去が完了すると、サブＣＰＵ３０２はフラッシュメモリ消去応答をメインＣＰＵ２０１に返信する（ステップ８０４）。
【００８１】
フラッシュメモリ消去応答を受信すると（ステップＳ８０５において、ＹＥＳ）、メインＣＰＵ２０１は内蔵するブロックカウンタにｎ＝０を設定する（ステップＳ８０６）。ここで、フラッシュＲＯＭ３０２のブロック数は２５６であるとする。つまり、フラッシュＲＯＭ３０２には第０〜第２５５のブロックがあるものとする。
【００８２】
続いて、メインＣＰＵ２０１はフラッシュＲＯＭ３０１の第０のブロックに書き込むファームウェアイメージを１２８バイトずつに分割してパケットを生成する。そして、メインＣＰＵ２０１は先頭のパケット（ファームウェア更新データ）をサブＣＰＵ３０１に送信する（ステップ８０７）。パケットには先頭マーカー又は終端マーカーがヘッダ部に設けられており、先頭のパケットは先頭マーカーで識別される。また、最後のパケットは終端マーカーで識別が可能である。
【００８３】
パケットを送信した後、メインＣＰＵ２０１は、サブＣＰＵ３０１からブロックへの書込みが完了したことを示すブロック書込み応答を受信したか否かを判定する（ステップＳ８０８）。ブロック書込み応答を受信しないと（ステップＳ８０８において、ＮＯ）、メインＣＰＵ２０１は待機する。
【００８４】
サブＣＰＵ３０２はパケットを受信すると、ファーム更新データをフラッシュＲＯＭ３０２に書き込む。１つのブロックの書き込みが完了すると、サブＣＰＵ３０１はブロック書き込み完了応答をメインＣＰＵ２０１に返信する。ブロック書き込み応答を受信すると（ステップＳ８０８において、ＹＥＳ）、メインＣＰＵ２０１はブロックカウンタをインクリメント（＋１）する（ステップＳ８０９）。そして、メインＣＰＵ２０１はブロックカウンタが２５６未満であるか否かを判定する（ステップＳ８１０）。
【００８５】
ブロックカウンタが２５６未満であると（ステップＳ８１０において、ＹＥＳ）、メインＣＰＵ２０１はステップＳ８０７の処理に戻って、次のブロックに対するファーム更新データを送信する。
【００８６】
このようにして、フラッシュＲＯＭ３０２に対する書き込みはブロックごとに繰り返されて、サブＣＰＵ３０１は合計２５６個のパケットを受信して、フラッシュＲＯＭ３０２の全てのブロックについてファームウェアの更新が終了する。
【００８７】
ブロックカウンタが２５６となると（ステップＳ８１０において、ＮＯ）、メインＣＰＵ２０１はサブＣＰＵ３０１にチェックサムの取得要求を送信する（ステップ８１１）。このチェックサムは、例えば、フラッシュＲＯＭ３０２の全領域について奇数アドレスおよび偶数アドレスの値を総計した結果の下位１６ビットを用いる。
【００８８】
メインＣＰＵ２０１はサブＣＰＵ３０１からチェックサム値を受信したか否かを判定する（ステップＳ８１２）。チェックサム値を受信しないと（ステップＳ８１２において、ＮＯ）、メインＣＰＵ２０１は待機する。
【００８９】
サブＣＰＵ３０１はチェックサム取得要求に応答して、メインＣＰＵ２０１に対して奇数アドレスおよび偶数アドレスのチェックサム値を返信する。メインＣＰＵ２０１は、送信したファームウェアイメージのチェックサム値を保持チェックサム値として保持している。チェックサム値を受信チェックサム値として受信すると（ステップ８１２において、ＹＥＳ）、サブＣＰＵから受信チェックサム値と保持チェックサム値とが一致するか否かを判定する（ステップ８１３）。
【００９０】
受信チェックサム値と保持チェックサム値とが一致しないと（ステップＳ８１３において、ＮＯ）、メインＣＰＵ２０１はフラッシュＲＯＭ３０２に書き込まれたファームウェアが送信したファームウェアイメージと一致していないとして、ステップＳ８０６の処理に戻る。そして、メインＣＰＵ２０１はリトライ制御によって先頭パケットから再度送信する。
【００９１】
受信チェックサム値と保持チェックサム値とが一致すると（ステップＳ８１３において、ＹＥＳ）、メインＣＰＵ２０１はフラッシュＲＯＭ３０２の更新は正常に終了したとして、ファームウェア更新を終了する。
【００９２】
ここで、プログラムモードにおけるメインＣＰＵ２０１とサブＣＰＵ３０１との通信について図９に示すシーケンス図を用いて説明する。
【００９３】
図９は、プログラムモードの際に図６に示すメインＣＰＵ２０１とサブＣＰＵ３０１との間で行われる通信について説明するためのシーケンス図である。
【００９４】
まず、メインＣＰＵ２０１がフラッシュ更新リクエスト（Ｆｌａｓｈ  Ｕｐｄａｔｅ  Ｒｅｑ）をサブＣＰＵ３０１に送信する（Ｓ９０１）。このフラッシュ更新リクエストに応答して、サブＣＰＵ３０１はメインＣＰＵ２０１にフラッシュ書き換え可能応答（Ｆｌａｓｈ  Ｕｐｄａｔｅ  Ａｃｋ  ＯＫ）を返す（Ｓ９０２）。
【００９５】
次に、メインＣＰＵ２０１はサブＣＰＵ３０１にフラッシュ消去要求（Ｆｌａｓｈ  Ｅｒａｓｅ  Ｒｅｑ）を送信する（Ｓ９０３）。フラッシュ消去要求に応答して、サブＣＰＵ３０１はフラッシュＲＯＭ３０２の全ブロックの消去を行い、消去が完了すると、サブＣＰＵ３０２はメインＣＰＵ２０１にフラッシュ消去応答（Ｆｌａｓｈ  Ｅｒａｓｅ  Ａｃｋ  ＯＫ）を返す（Ｓ９０４）。
【００９６】
続いて、メインＣＰＵ２０１は、ファームウェアイメージを先頭ブロックであるＩＤ＝０から順番に送信する（Ｆｌａｓｈ  Ｄａｔａ  Ｓｅｎｄ  ＩＤ＝０（Ｔｏｐ）：Ｓ９０５）。サブＣＰＵ３０１は該当ブロックに対するファームウェアイメージの書き込みが完了すると、メインＣＰＵ２０１にブロック書き込み完了応答（Ｆｌａｓｈ  Ｄａｔａ  Ｒｅｃｅｉｖｅｄ  ＩＤ＝０  ＯＫ）を返す（Ｓ９０６）。
【００９７】
さらに、メインＣＰＵ２０１はブロックカウンタを＋１インクリメントして、ＩＤ＝１のブロックにファームウェアイメージを送信する（Ｆｌａｓｈ  Ｄａｔａ  Ｓｅｎｄ  ＩＤ＝１：Ｓ９０７）。サブＣＰＵ３０１は当該ブロックに対する書き込みが完了すると、メインＣＰＵ２０１にブロック書き込み完了応答（Ｆｌａｓｈ  Ｄａｔａ  Ｒｅｃｅｉｖｅｄ  ＩＤ＝１）を返す（Ｓ９０８）。
【００９８】
この処理を繰り返して、メインＣＰＵ２０１はＩＤ＝２５５の最終ブロックに対するファームウェアイメージを送信する（Ｆｌａｓｈ  Ｄａｔａ  Ｓｅｎｄ  ＩＤ＝２５５：Ｓ９０９）。そして、サブＣＰＵ３０１は当該ブロックに対する書き込みが完了すると、メインＣＰＵ２０１にブロック書き込み完了応答（Ｆｌａｓｈ  Ｄａｔａ  Ｒｅｃｅｉｖｅｄ  ＩＤ＝２５５  ＯＫ）を返す（Ｓ９１０）。
【００９９】
最後に、メインＣＰＵ２０１はサブＣＰＵ３０１に対してチェックサムの取得要求（Ｆｌａｓｈ  Ｃｈｅｃｋ  Ｓｕｍ  Ｒｅｑ）を送信する（Ｓ９１１）。これに応答して、サブＣＰＵ３０１はチェックサムを求めて、メインＣＰＵ２０１にチェックサム値を返信する（Ｆｌａｓｈ  Ｃｈｅｃｋ  Ｓｕｍ  Ｒｅｐｏｒｔ：Ｓ９１２）。
【０１００】
図１０は、図６に示すメインＣＰＵ２０１とサブＣＰＵ３０１との間でファームウェア更新を行った際の信号波形を説明するためのタイムチャートである。
【０１０１】
前述したように、メインＣＰＵ２０１はＲＥＳＥＴ６０１をＬレベルとした後（Ｓ７０２）、ＢＯＯＴＭＯＤＥ６０２をＬレベルとする（Ｓ７０３）。その後、メインＣＰＵ２０１はＲＥＳＥＴ６０１をＨレベルとして（Ｓ７０４）、ＴｘＤ６０３でファーム更新リクエストを送信する（Ｓ８０２）。サブＣＰＵ３０１からＲｘＤ６０４で応答を受信すると（Ｓ８０３）、メインＣＰＵ２０１はＴｘＤ６０３でフラッシュメモリ消去要求を送信する（Ｓ８０４）。
【０１０２】
サブＣＰＵ３０１からＲｘＤ６０４で応答を受信すると（Ｓ８０５）、メインＣＰＵ２０１は前述のようにして、ＴＸＤ６０３でファーム更新データを送信する（Ｓ８０７）。サブＣＰＵ３０１からＲｘＤ６０４で応答を受信すると（Ｓ８０８）、全てのブロックについて更新が終了していれば、メインＣＰＵ２０１はチェックサムを行う（チェックサムについては図１０には示されていない）。
【０１０３】
その後、メインＣＰＵ２０１はＲＥＳＥＴ６０１をＬレベルとした後（Ｓ７０６）、ＢＯＯＴＭＯＤＥ６０２をＨレベルとする（Ｓ７０７）。そして、メインＣＰＵ２０１はＲＥＳＥＴ６０１をＨレベルとする。このように、ファームウェアの更新を完了した後、メインＣＰＵ２０１は一旦サブＣＰＵ３０１をリセットした後、ＢＯＯＴＭＯＤＥ６０２をインアクティブに設定する。そして、メインＣＰＵ２０１はサブＣＰＵ３０１のリセット解除を行う。
【０１０４】
前述のように、メインＣＰＵ２０１にはサブＣＰＵ３０１、３１１、３２１、３３１、および３４１が互いに独立したシリアル信号線によって接続されている。このため、メインＣＰＵ２０１はサブＣＰＵ３０１、３１１、３２１、３３１、および３４１の各々に対して同時に通信を行うことができる。
【０１０５】
従って、サブＣＰＵ３０１、３１１、３２１、３３１、および３４１のうちいずれかにおいてファームウェアが更新中であっても、他のサブＣＰＵにおいては動作を継続することができる。ここでは、いずれのサブＣＰＵが司る機能がファームウェアの更新中のために使用不能であるか知る必要があるため、メインＣＰＵ２０１はＲＡＭ２０３にサブＣＰＵ状態テーブルを保持する。
【０１０６】
図１１は、図３に示すＲＡＭ２０３に保持されるサブＣＰＵ状態テーブルの一例を示す図である。
【０１０７】
図１１において、サブＣＰＵ状態テーブル（モジュール状態テーブル）１１０１にはモジュール（Ｍｏｄｕｌｅ）欄、状態（Ｓｔａｔｕｓ）欄、および残量（Ｒｅｍａｉｎ）欄が備えられている。Ｍｏｄｕｌｅ欄には、サブＣＰＵ３０１〜３４１が記載される。図示の例では、サブＣＰＵ３０１、３１１、３３１、３２１、および３４１に対応して、そのＳｔａｔｕｓがそれぞれファームウェア更新中（Ｕｐｄａｔｉｎｇ）、動作中（Ａｃｔｉｖｅ）、動作中、ファームウェア更新中、および動作中となっている。そして、ファームウェア更新中である場合には、Ｒｅｍａｉｎ欄に残り更新サイズ（残量）がバイトで示される。
【０１０８】
ここで、サブＣＰＵ状態テーブルが図１１に示す状態である場合に、スタートキー４０８が押し下げられた際のメインＣＰＵ２０１の動作について説明する。
【０１０９】
図１２は、図３に示すいずれかのサブＣＰＵにおいてファームウェアの更新中である場合にスタートキー４０８が押し下げられた際のメインＣＰＵ２０１の動作を説明するためのフローチャートである。
【０１１０】
ここでは、サブＣＰＵ状態テーブルは図１１に示す状態であるとする。また、ジョブとしてコピーが行われるものとする。そして、図５に示すように、ジョブ設定において、カラー、等倍、片面、カセット１１３（用紙サイズＡ４）、およびトレイ１２１が選択されたものとする。
【０１１１】
スタートキー４０８が押し下げられると、メインＣＰＵ２０１は当該ジョブを受け付ける（ステップＳ１５０１）。続いて、メインＣＰＵ２０１は受け付けたジョブのモード解析（つまり、ジョブ設定）を行って、当該解析結果に応じて使用するモジュールのサブＣＰＵを判定する（ステップＳ１５０２）。
【０１１２】
例えば、メインＣＰＵ２０１はジョブを受付けた際、ユーザ操作部４０１（図４）からジョブモード情報を受信する。
【０１１３】
図１３は、図３に示すメインＣＰＵ２０１がユーザ操作部４０１から受けるジョブモード情報の一例を示す図である。
【０１１４】
図１３において、ジョブモード情報は、給紙段ＩＤ、カラー／モノクロ、片面／両面、排紙先ＩＤ、および後処理モードなどのモード情報を有している。図示の例では、給紙段ＩＤ＝”カセット１１３”、カラー／モノクロ＝”カラー”、片面／両面＝”片面”、排紙先ＩＤ＝”トレイ１２１”、そして、後処理モード＝”ノンソート”となっている。
【０１１５】
メインＣＰＵ２０１はジョブモード情報に応じて、予め定められたサブＣＰＵ関連付けテーブル（モジュール関連付けテーブル）を参照して、受け付けたジョブがいずれのサブＣＰＵを使用するかについて判定する。このサブＣＰＵ関連付けテーブルは、例えば、ＲＯＭ２０２に格納される。
【０１１６】
図１４は、図３に示すＲＯＭ２０２に格納されたサブＣＰＵ関連付けテーブルの一例を示す図である。
【０１１７】
図示のサブＣＰＵ関連付けテーブルは、ジョブモード情報とサブＣＰＵとを関連付けるためのテーブルである。サブＣＰＵ関連付けテーブルには、給紙段ＩＤ、カラー／モノクロ、片面／両面、および排紙先ＩＤの項目が規定され、これら項目毎に選択肢が設定されている。そして、選択肢毎に使用するサブＣＰＵ、つまり、ドライバが設定されている。
【０１１８】
このサブＣＰＵ関連付けテーブルは、予め製品構成のラインナップに応じてＲＯＭ２０２に記録するようにする。なお、画像形成装置立上げの際におけるモジュール接続情報に応じてメインＣＰＵ２０１がサブＣＰＵ関連付けテーブルを生成して、このサブＣＰＵ関連付けテーブルをＲＡＭ２０３に記録するようにしてもよい。
【０１１９】
図１５は、図１２に示す使用サブＣＰＵ判定処理（ステップＳ１５０２）の一例を詳細に説明するためのフローチャートである。
【０１２０】
使用サブＣＰＵ判定処理を開始すると、まず、メインＣＰＵ２０１はジョブモード情報において給紙段ＩＤに用紙カセット１１３が設定されているか否かを確認する（ステップＳ１５１０）。カセット１１３が設定されていない場合（ステップＳ１５１０において、ＮＯ）、メインＣＰＵ２０１はサブＣＰＵ関連付けテーブルを参照して、増設給紙カセット１２５および１２６を制御するオプションカセットドライバのサブＣＰＵ３３１が使用されると判定する（ステップＳ１５１１）。
【０１２１】
続いて、メインＣＰＵ２０１はジョブモード情報においてカラー／モノクロがカラーモードに設定されているか否かを確認する（ステップＳ１５１２）。なお、カセット１１３が設定されていると（ステップＳ１５１０において、ＹＥＳ）、処理はステップＳ１５１２に進む。
【０１２２】
カラーモードであれば（ステップＳ１５１２において、ＹＥＳ）、メインＣＰＵ２０１はサブＣＰＵ関連付けテーブルを参照して、ＹＭＣドラムモータ３０４およびＹＭＣ高圧ユニット３０５を制御するＹＭＣドラムモータ／高圧ドライバのサブＣＰＵ３０１が使用されると判定する（ステップＳ１５１３）。
【０１２３】
続いて、メインＣＰＵ２０１はサブＣＰＵ関連付けテーブルを参照して、ＫドラムＩＴＢモータ３１４、Ｋ高圧ユニット３１５、および二次転写高圧ユニット３１６を制御するＫドラム／高圧・ＩＴＢモータ・二次転写高圧ドライバのサブＣＰＵ３１１が使用されると判定する（ステップＳ１５１４）なお、カラーモードでなくても（ステップＳ１５１２において、ＮＯ）、Ｋドラム／高圧・ＩＴＢモータ・二次転写高圧ドライバのサブＣＰＵ３１１が使用されるので、処理はステップＳ１５１４に進む。
【０１２４】
次に、メインＣＰＵ２０１は、ジョブモード情報において片面／両面が片面モードに設定されているか否かを確認する（ステップＳ１５１５）。両面モードであると（ステップＳ１５１５において、ＮＯ）、メインＣＰＵ２０１はサブＣＰＵ関連付けテーブルを参照して、両面反転駆動ローラ１２２、両面再給紙駆動ローラ１２４、および両面反転フラッパ１２３を制御する両面／反転ユニットドライバのサブＣＰＵ３２１を使用すると判定する（ステップＳ１５１６）。
【０１２５】
次に、メインＣＰＵ２０１は、ジョブモード情報において排紙先ＩＤがトレイ１２１に設定されているか否かを確認する（ステップＳ１５１７）。排紙先ＩＤがトレイ１２１でない場合（ステップＳ１５１７において、ＮＯ）、メインＣＰＵ２０１は用紙がバッファパスユニット１５０を介してフィニッシャ上トレイ１６１又はフィニッシャ下トレイ１６２に排出されると判定する。
【０１２６】
これによって、メインＣＰＵ２０１はサブＣＰＵ関連付けテーブルを参照して、バッファパスユニット１５０を制御するバッファパス／フィニッシャドライバのサブＣＰＵ３４１を使用すると判定する（ステップＳ１５１８）。そして、メインＣＰＵ２０１は使用サブＣＰＵ判定処理を終了する。一方、排紙先ＩＤがトレイ１２１であると（ステップＳ１５１７において、ＹＥＳ）、メインＣＰＵ２０１は使用サブＣＰＵ判定処理を終了する。
【０１２７】
なお、画像形成装置に備えられたモジュールが多いほど、サブＣＰＵ関連付けテーブルは細分化され、図１５で説明した使用サブＣＰＵ判定処理におけるステップ数は増加する。
【０１２８】
再び、図１２を参照して、上述のようにして、使用サブＣＰＵ判定処理が終了すると、続いて、メインＣＰＵ２０１はサブＣＰＵ状態テーブルを参照して、使用すると判定されたサブＣＰＵ（使用サブＣＰＵ）についてファームウェアの更新中（ダウンロード中）であるか否かを判定する（ステップＳ１５０３）。ファームウェアのダウンロード中でない場合（ステップＳ１５０３において、ＮＯ）、メインＣＰＵ２０１は使用すると判定した全てのサブＣＰＵについて更新中であるかのサーチが完了したかを確認する（ステップＳ１５０４）。
【０１２９】
使用すると判定した全てのサブＣＰＵについて更新中であるかのサーチが完了していないと（ステップＳ１５０４において、ＮＯ）、メインＣＰＵ２０１は他に使用すると判定したサブＣＰＵに移行して（ステップＳ１５０５）、ステップＳ１５０３の処理を行う。
【０１３０】
一方、使用すると判定した全てのサブＣＰＵについて更新中であるかのサーチが完了すると（ステップＳ１５０４において、ＹＥＳ）、メインＣＰＵ２０１は受け付けたジョブを実行して（ステップＳ１５０６）、ジョブ処理を終了する。
【０１３１】
使用すると判定したサブＣＰＵがファームウェアのダウンロード中であると（ステップＳ１５０３において、ＹＥＳ）、メインＣＰＵ２０１は受け付けたジョブを予約ジョブとして（ステップＳ１５０７）、ジョブ処理を終了する。
【０１３２】
このように、使用すると判定されたサブＣＰＵのいずれか１つがファームウェアをダウンロード中であれば、メインＣＰＵ２０１は受け付けたジョブを実行を待機する。そして、メインＣＰＵ２０１は受け付けたジョブに係るジョブモード情報をＲＡＭ２０３に格納する。
【０１３３】
図１６は、図５に示すジョブモードの設定（ジョブ設定）が行われた際の使用サブＣＰＵ判定処理における判定結果を示す図である。
【０１３４】
図５に示すジョブ設定を行うと、図１６にグレーアウトして示すように、Ｋドラム／高圧・ＩＴＢモータ・二次転写高圧ドライバ、ＹＭＣドラムモータ／高圧ドライバ、およびバッファパス／フィニッシャドライバに係るサブＣＰＵが使用サブＣＰＵとされる。そして、図１１に示す例では、サブＣＰＵ３０１および３２１がファームウェアの更新中であるので、メインＣＰＵ２０１は受け付けたジョブを待機する。つまり、予約ジョブとする。
【０１３５】
図１７は、図１２で説明した予約ジョブの実行を説明するためのフローチャートである。
【０１３６】
前述のように、予約ジョブとされると、当該予約ジョブに係るジョブモード情報はＲＡＭ２０３に格納される。予約ジョブの処理が開始されると、メインＣＰＵ２０１はサブＣＰＵにおけるファームウェアの更新終了を検知したか否かを確認する（ステップＳ１５３０）。ここでは、図８に示すステップＳ８１２およびＳ８１３において、サブＣＰＵからチェックサム値の応答を受けて、チェックサム値が一致すると、メインＣＰＵ２０１は当該サブＣＰＵにおけるファームウェアの更新が終了したとする。
【０１３７】
ファームウェアの更新終了を検知しないと（ステップＳ１５３０において、ＮＯ）、メインＣＰＵ２０１は待機する。一方、ファームウェアの更新終了を検知すると（ステップＳ１５３０において、ＹＥＳ）、メインＣＰＵ２０１は予約ジョブがあるか否かを確認する（ステップＳ１５３１）。ここでは、メインＣＰＵ２０１はＲＡＭ２０３にジョブモード情報が格納されているか否かを確認することになる。
【０１３８】
予約ジョブが存在しないと（ステップＳ１５３１において、ＮＯ）、メインＣＰＵ２０１は予約ジョブ処理を終了して、図１２に示すステップＳ１５０１の処理に戻る。予約ジョブが存在すると（ステップＳ１５３１において、ＹＥＳ）、メインＣＰＵ２０１はジョブモード情報に基づいてジョブの再投入を行う（ステップ１５３２）。そして、メインＣＰＵ２０１は予約ジョブ処理を終了して、図１２に示すステップ１５０１の処理に戻る。
【０１３９】
図５に示すジョブ設定では、ＹＭＣドラムモータ／高圧ドライバのサブＣＰＵ３０１がファームウェアの更新を終了すると、メインＣＰＵ２０１は予約ジョブを再投入することになる。
【０１４０】
続いて、ジョブ投入の投入後、使用サブＣＰＵがファームウェアの更新中であった際のジョブのキャンセルについて説明する。
【０１４１】
図１８は、図３に示すいずれかのサブＣＰＵにおいてファームウェアの更新中である場合にスタートキーが押し下げられた際のメインＣＰＵの動作の他の例を説明するためのフローチャートである。
【０１４２】
なお、図３に示す処理と同一の処理については同一の参照符号を付して、説明を省略する。
【０１４３】
ステップＳ１５０３において、使用すると判定したサブＣＰＵがファームウェアのダウンロード中であると、メインＣＰＵ２１０は受け付けたジョブをキャンセルするか否かを判定する（ステップＳ１５０８）。ここでは、まず、メインＣＰＵ２０１はダウンロード中である旨の状態通知を行うとともに、ジョブを継続するか否かを決定する画面をユーザ操作部４０１に表示する。
【０１４４】
図１９は、図１８に示すジョブキャンセル判定処理の際にユーザ操作部４０１に表示されるポップアップウィンドウの一例を示す図である。
【０１４５】
使用すると判定したサブＣＰＵがファームウェアのダウンロード中であると、メインＣＰＵ２１０は、図１９に示すように、操作パネル画面５０３上にポップアップウィンドウ５０９に表示する。このポップアップウィンドウ５０９には、ファームウェアが更新中でありジョブに待機時間が生じる旨の文言とキャンセルするか否かを問う文言が表示される。
【０１４６】
ユーザが”Ｙｅｓ”ボタン５１０を押し下げると、メインＣＰＵ２０１は受け付けたジョブをキャンセルすると判定する。一方、ユーザ”Ｎｏ”ボタンを押し下げると、メインＣＰＵ２０１は受け付けたジョブをキャンセルしないと判定する。
【０１４７】
受け付けたジョブをキャンセルしないと判定すると（ステップＳ１５０８において、ＮＯ）、メインＣＰＵ２０１はステップＳ１５０７の処理に進んで、当該受け付けたジョブを予約ジョブとする。受け付けたジョブをキャンセルすると判定すると（ステップＳ１５０８において、ＹＥＳ）、メインＣＰＵ２０１は当該受け付けたジョブをキャンセルする（ステップＳ１５０９）。そして、メインＣＰＵ２０１はジョブ処理を終了する。
【０１４８】
以上のように、本発明の実施の形態によれば、ファームウェアのダウンロード中にジョブ処理要求を受信した際に、当該ジョブ処理要求に係るジョブを予約ジョブとして、当該予約ジョブで使用するモジュールにおいてファームウェアのダウンロードが終了すると、当該予約ジョブを実行するようにしたので、ファームウェアのダウンロードに起因してジョブ処理要求がキャンセルされることがない。従って、ユーザは再度ジョブを投入するという手間が省け、ユーザの利便性が向上する。
【０１４９】
上述の説明から明らかなように、図３に示す例では、メインＣＰＵ２０１およびサブＣＰＵ３０１〜３４１が更新手段として機能する。また、メインＣＰＵ２０１は判定手段および制御手段として機能する。なお、フラッシュＲＯＭ３０２〜３４２の各々はモジュール記憶手段として用いられる。また、メインＣＰＵ２０１およびユーザ操作部４０１は報知手段として機能する。
【０１５０】
上述の実施の形態では、情報処理装置の一例として、画像形成装置を例に挙げて説明したが、画像形成装置に限らず他の情報処理装置、例えば、画像処理装置においても複数モジュールが互いに独立して動作する構成であれば同様にして本発明を適用することができる。また、上述の実施の形態では、ファームウェアを更新する場合については説明したが、ファームウェアに限らずソフトウェアの更新を行う場合であれば同様にして適用することができる。
【０１５１】
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【０１５２】
例えば、上記の実施の形態の機能を制御方法として、この制御方法を情報処理装置に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、この制御プログラムを情報処理装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
【０１５３】
この際、制御方法および制御プログラムの各々は、少なくとも更新ステップ、判定ステップ、および制御ステップを有することになる。
【０１５４】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１５５】
２０１  メインＣＰＵ
２０９  ＹＭＣドラムモータ／高圧ドライバ
２１０  Ｋドラム／高圧・ＩＴＢモータ・二次転写高圧ドライバ
２１１  両面／反転ユニットドライバ
２１２  オプションカセットドライバ
２１３バッファパス／フィニッシャドライバ
３０１，３１１，３２１，３３１，３４１  サブＣＰＵ
３０２，３１２，３２２，３３２，３４２  フラッシュＲＯＭ
３０３，３１３，３２３，３３３，３４３  ＳＲＡＭ
【図１】
2013097515.tif 000003
【図２】
2013097515.tif 000004
【図３】
2013097515.tif 000005
【図４】
2013097515.tif 000006
【図５】
2013097515.tif 000007
【図６】
2013097515.tif 000008
【図７】
2013097515.tif 000009
【図８】
2013097515.tif 000010
【図９】
2013097515.tif 000011
【図１０】
2013097515.tif 000012
【図１１】
2013097515.tif 000013
【図１２】
2013097515.tif 000014
【図１３】
2013097515.tif 000015
【図１４】
2013097515.tif 000016
【図１５】
2013097515.tif 000017
【図１６】
2013097515.tif 000018
【図１７】
2013097515.tif 000019
【図１８】
2013097515.tif 000020
【図１９】
2013097515.tif 000021