(57)【特許請求の範囲】
【請求項１】
ファームウエアを記憶しているファームウエア記憶手段と、
前記ファームウエア記憶手段に記憶されているファームウエアにしたがって、画像処理ジョブを実行する画像処理ジョブ実行手段と、
外部装置からネットワークを介して配信される書換用ファームウエアを受け付けるファームウエア受付手段と、
前記ファームウエア記憶手段に記憶されているファームウエアを、前記書換用ファームウエアで書き換えるファームウエア書換手段と、
ファームウエアの不具合以外の原因で発生したトラブルのため、前記画像処理ジョブ実行手段による画像処理が実行できなくなった場合に、前記ファームウエア書換手段に指示して、ファームウエアの書換を実行させる書換指示手段と、
を備えたことを特徴とする画像処理装置。
【請求項２】
前記ファームウエアの不具合以外の原因で発生するトラブルは、画像処理ジョブの実行のために駆動される機械的被駆動要素の故障若しくは寿命切れ又は前記画像処理ジョブの実行のために用いられる消耗品の欠如若しくは不足であることを特徴とする請求項１記載の画像処理装置。
【請求項３】
画像処理装置とネットワークを介して接続され、前記画像処理装置に組み込まれているファームウエアに対する書換用のファームウエアを配信するファームウエア配信装置において実行されるプログラムであって、
画像処理の実行ができなくなるトラブルが発生したときに、画像処理装置から送信される当該トラブルの内容の通知を受け付ける受付ステップと、
前記通知されたトラブルの内容から、当該トラブルがファームウエアの不具合以外の原因で生じたものであるか否かの判定を行う判定ステップと、
前記判定ステップにおいてファームウエアの不具合以外の原因で生じたものあると判定された場合に、前記画像処理装置に書換用ファームウエアを送信する送信ステップと、
を有することを特徴とするプログラム。
【請求項４】
前記受付ステップでは、さらに、前記画像処理装置に組み込まれているファームウエアのバージョン情報を受け付け、
前記送信ステップでは、前記受け付けられたバージョンよりも新しいバージョンのファームウエアが準備されていない場合には、書換用ファームウエアの送信を禁止することを特徴とする請求項３記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ファームウエアの書換技術に関し、ファームウエアが組み込まれた、プリンタ、ファクシミリ、スキャナ、コピアなどの画像処理装置、および、画像処理装置とネットワーク接続され、当該画像処理装置に書換用ファームウエアを配信する配信装置において実行されるプログラムに関する。
【０００２】
【従来の技術】
画像処理装置の動作を制御するファームウエアは、古くは、装置内に設けられた制御基盤上のマスクＲＯＭに書き込まれており、ファームウエアを書き換える必要が生じた場合、作業員が当該基盤上のマスクＲＯＭを新しいファームウエアの書き込まれたマスクＲＯＭと交換していた。
【０００３】
マスクＲＯＭの交換作業は時間がかかると共に煩雑であるため、その後、マスクＲＯＭに代えて、書換可能なメモリーであるフラッシュＲＯＭが用いられるようになってきた。すなわち、画像形成装置にメモリカード等の外部記憶装置とのＩ／Ｆ（インターフェース）を設け、当該Ｉ／Ｆに書換用のファームウエアを格納したメモリカードを接続し、メモリカードから画像形成装置内のフラッシュＲＯＭに新しいファームウエアを上書きするといった方法が用いられている。
【０００４】
また、作業員が出向くこと無くファームウエアを書き換える方法として、近年、目覚しい普及を遂げているインターネットを利用し、ファームウエアを電子メールに添付して配信して、フラッシュＲＯＭのファームウエアを書き換える方法が考えられている。
例えば、ネットワークプリンタの場合には、ＬＡＮで接続された端末装置から種々のジョブ（例えば、プリントジョブ）を受付けつつ、ＬＡＮに接続されたインターネットを経由して配信される書換用ファームウエアを受付けて、自装置内のファームウエアの書換作業（ファームウエア書換ジョブ）を行うこととなる。
【０００５】
この場合、プリントジョブやファームウエア書換ジョブは、受付順に一つずつ実行されるのが一般的であり、当然のことながら、ファームウエア書換中（ファームウエア書換ジョブの実行中）は他のジョブは実行不能となる。
【０００６】
【発明が解決しようとする課題】
ところで、近年のネットワークプリンタ等の画像処理装置の高機能・多機能化に伴い当該装置に組み込まれるファームウエアのサイズは、年々増大しており、１０Ｍバイト程度のものまで出現している。これに伴い、ファームウエア書換時間も長時間（数十分程度）に及ぶことがある。
【０００７】
そのため、上記従来のように、ジョブを受付順に実行していたのでは、ファームウエア書換ジョブの実行開始時に既に受け付けられていたプリントジョブ等の実行が長時間妨げられることとなる。これに対処するために、複数のジョブが処理待ち状態となっている場合には、ファームウエア書換ジョブを常に後回しにするといった方法が考えられる。しかしながら、この場合でも、例えば、ファームウエアの書換開始後に受け付けられたプリントジョブの実行が長時間に渡って妨げられることとなる。
【０００８】
本発明は、上記した課題に鑑み、可能な限りプリントジョブなどの他の画像処理の実行を妨げること無く、ファームウエアの書換を実行することができる、画像処理装置、および、ファームウエアの配信装置において実行されるプログラムを提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記の目的を達成するため、本発明に係る画像処理装置は、ファームウエアを記憶しているファームウエア記憶手段と、前記ファームウエア記憶手段に記憶されているファームウエアにしたがって、画像処理ジョブを実行する画像処理ジョブ実行手段と、外部装置からネットワークを介して配信される書換用ファームウエアを受け付けるファームウエア受付手段と、前記ファームウエア記憶手段に記憶されているファームウエアを、前記書換用ファームウエアで書き換えるファームウエア書換手段と、ファームウエアの不具合以外の原因で発生したトラブルのため、前記画像処理ジョブ実行手段による画像処理が実行できなくなった場合に、前記ファームウエア書換手段に指示して、ファームウエアの書換を実行させる書換指示手段とを備えたことを特徴とする。
【００１０】
また、前記ファームウエアの不具合以外の原因で発生するトラブルは、画像処理ジョブの実行のために駆動される機械的被駆動要素の故障若しくは寿命切れ又は前記画像処理ジョブの実行のために用いられる消耗品の欠如若しくは不足であることを特徴とする。
上記の目的を達成するため、本発明に係るプログラムは、画像処理装置とネットワークを介して接続され、前記画像処理装置に組み込まれているファームウエアに対する書換用のファームウエアを配信するファームウエア配信装置において実行されるプログラムであって、画像処理の実行ができなくなるトラブルが発生したときに、画像処理装置から送信される当該トラブルの内容の通知を受け付ける受付ステップと、前記通知されたトラブルの内容から、当該トラブルがファームウエアの不具合以外の原因で生じたものであるか否かの判定を行う判定ステップと、前記判定ステップにおいてファームウエアの不具合以外の原因で生じたものあると判定された場合に、前記画像処理装置に書換用ファームウエアを送信する送信ステップとを有することを特徴とする。
【００１１】
また、前記受付ステップでは、さらに、前記画像処理装置に組み込まれているファームウエアのバージョン情報を受け付け、前記送信ステップでは、前記受け付けられたバージョンよりも新しいバージョンのファームウエアが準備されていない場合には、書換用ファームウエアの送信を禁止することを特徴とする。
【００１２】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら説明する。
（実施の形態１）
＜システムの構成＞
図１は、実施の形態１に係るファームウエア書換システムの概略構成を示す図である。
【００１３】
本システムは、サービスセンターにおけるＬＡＮ（Ｌocal  Ａrea  Ｎetwork）と各ユーザＡ，Ｂ，…におけるＬＡＮとが各々のルータ８２，５２Ａ，５２Ｂ，…を介してインターネットに接続された構成となっていて、サービスセンターからインターネットを経由して配信されるファームウエアで、各ユーザＡ，Ｂ，…に設置された画像形成装置１１Ａ，１２Ａ，…、１１Ｂ，１２Ｂ，…内のファームウエアを書き換えるものである。ここで、ファームウエアとは、ハードウエア機器を制御するために組み込まれたソフトウエアであって、ユーザが自由に書き換えることのできないプログラムやデータを言う。例えば、ＯＳ、インタープリタ、コンパイラ、ＢＩＯＳ等のような、起動プログラム、入出力プログラム、画像形成装置の画像処理回路や駆動負荷の制御プログラム等の基本ソフトウエア、パラメータ・変数等の制御データがあげられる。なお、サービスセンターには３つ以上の多数のユーザが接続されているのであるが、紙面の都合上、ここでは、２つのユーザＡ、Ｂだけを図示することとする。また、ユーザＡとユーザＢにおける装置構成は同様なので、ユーザＢにおける装置にはユーザＡにおける装置と同じ番号を付して、その説明については省略することとする。
【００１４】
サービスセンターにはディスプレイ９２、キーボード９３、コンピュータ９１等からなるセンター装置９０が設置されており、コンピュータ９１は、センター内ＬＡＮを経由し、ファイアウォール８１、ルータ８２を介してインターネットと接続されている。また、上記ＬＡＮには電子メールの送受信管理を行うメールサーバ８３が接続されている。センター装置９０では、オペレータの操作によって、各ユーザの各画像形成装置にインストールされる書換用ファームウエアが作成され、当該ファームウエアは、電子メールの形で各ユーザ側に配信される。
【００１５】
ユーザＡには、電子メールの送受信管理を行うメールサーバ５３Ａが設置されており、当該メールサーバ５３Ａは、ユーザ内ＬＡＮを経由し、ファイアウォール５１Ａ、ルータ５２Ａを介してインターネットに接続されている。メールサーバ５３Ａは、外部装置であるセンター装置９０からインターネットを経由してユーザＡ宛に送信される電子メールを受信して、スプールする。スプールされた電子メールは、後述するプリンタコントローラによって定期的に取り出される。
【００１６】
また、ユーザＡには、画像形成装置１１Ａ，１２Ａ，…とその管理ユニットであるプリンタコントローラ２１Ａ，２２Ａ，…とからなる画像処理装置４１Ａ，４２Ａ，…が複数台設置されている。
画像形成装置１１Ａ、…は、原稿台にセットされた原稿の画像をスキャナーで走査して読み取り、その画像を用紙上に電子写真方式でプリントして再現したり、後述するクライアント装置から受信した画像データやメールサーバ５３Ａを介して受信した画像データに基づいて当該画像を用紙上にプリントしたり（以下、「プリントジョブ」と言う。）、原稿台にセットされた原稿の画像を、後述するクライアント装置の指示によって読み取り、読み取った画像データを当該クライアント装置に送信する（以下、「スキャンジョブ」と言う。）機能を有する装置であって、一般的に、ＭＦＰ（Ｍultiple  Ｆunction  Ｐeripheral）と呼ばれるものである。各画像形成装置には、それぞれに固有の電子メールアドレスが付与されている。例えば、画像形成装置１１Ａの電子メールアドレスは、「device１＠customerA.com」であり、画像形成装置１２Ａの電子メールアドレスは、「device2＠customerA.com」である。また、各画像形成装置の機種（型式）は、機種名（型式記号）で識別される。例えば、画像形成装置１１Ａの機種名（型式記号）は、「model１」であり、画像形成装置１１Ｂの機種名（型式記号）は、「model３」である。同一機種間は、同一の構成となっている。
【００１７】
プリンタコントローラ２１Ａ，…は、画像形成装置１１Ａ，…の実行する各種ジョブの管理をその目的の一つとするものであり、後述するクライアント装置からのプリントジョブの受信と画像形成装置への送信、メールサーバ５３Ａからの電子メールの読み出しと当該電子メールの解析、および、電子メールで配信されたファームウエアの画像形成装置への送信などを行う。
【００１８】
また、ユーザＡには、パーソナルコンピュータである複数のクライアント装置３１Ａ，３２Ａ，…が設置されており、各クライアント装置は、ユーザ内ＬＡＮに接続されている。各クライアント装置は、オペレータの操作によって、画像データを作成し、当該画像データをプリンタコントローラに送信して、プリント処理を実行させたり、あるいは、原稿をセットした画像処理装置に対して、スキャン要求（スキャンジョブの実行指示）を出したりする。
【００１９】
続いて、上記システムにおける各装置のより詳細な構成について説明する。
＜画像形成装置＞
図２は、画像形成装置１１Ａの制御部全体の構成を示すブロック図である。なお、他の画像形成装置の制御部全体も基本的には画像形成装置１１Ａと同じ構成なので、画像形成装置１１Ａを代表にして説明し、これ以外の画像形成装置についての説明は省略する。
【００２０】
画像形成装置１１Ａは、制御対象や制御内容別に設けられた複数の制御モジュール（本例では、４個）を有しており、各制御モジュール１〜４には、それぞれ、ＣＰＵ（Ｃentral  Ｐrocessing  Ｕnit）が備えられている。すなわち、画像形成装置１１Ａは、複数の制御部（制御モジュール）で制御部全体が構成されているのである。なお、本明細書で、モジュールとは、独立して扱えるソフトウエアやハードウエアのまとまりを指し、ＣＰＵもしくはＣＰＵを含む制御回路を含み、制御機能を実行する機能ブロックのことを言う。各制御モジュール１〜４は、それぞれ、制御モジュール識別子であるモジュール番号１〜４で識別される。
【００２１】
各制御モジュール１〜４は、ＣＰＵ１１１，１２１，１３１，１４１に加えて、当該各ＣＰＵで実行されるファームウエアを記憶しているファームウエア記憶手段としてのフラッシュＲＯＭ１１２，１２２，１３２，１４２を備えている。なお、言うまでもなく、フラッシュＲＯＭは書き換え可能な不揮発性メモリである。
【００２２】
制御モジュール１は、制御モジュール２〜４に制御命令・制御情報（制御データ）を送信し、制御モジュール２〜４を統括的に制御するためのモジュールであり、上記したＣＰＵ１１１、フラッシュＲＯＭ１１２の他に、プログラムを実行する際のワークエリアとなるＳ-ＲＡＭ１１３、各種設定値を保存するＮＶ-ＲＡＭ（不揮発性ＲＡＭ）１１４、制御モジュール２と各種の制御データを送受信するためのシリアルＩ／Ｆ１１５、制御モジュール３と各種の制御データを送受信するためのシリアルＩ／Ｆ１１６、プリンタコントローラ２１Ａや制御モジュール２や制御モジュール４との間でイメージデータのやりとりをするためのビデオＩ／Ｆ１１８、および、操作パネル１１９を備える。なお、制御モジュール１（ＣＰＵ１１１）は、自身を含め、他の制御モジュール２〜４の何れかがジョブの実行を行っているか否かを示す信号をプリンタコントローラ２１Ａへ出力する。すなわち、何らかのジョブを実行している場合は「ＢＵＳＹ」信号を、ジョブを行っておらず新たなジョブの受けつけが可能な状態の場合は「ＲＥＡＤＹ」信号をプリントコントローラ２１Ａへ出力する。また、制御モジュール２〜４は、各制御モジュールが分担する被制御部分において、ファームウエアの不具合以外の原因のトラブルの発生を検出すると、その旨およびトラブルの内容を制御モジュール１（ＣＰＵ１１１）に通知し、また、トラブルが回復すると、その旨を制御モジュール１（ＣＰＵ１１１）に通知する。ここで、ファームウエアの不具合以外の原因で生じるトラブルには、紙詰まりなどの偶発事故、機械部品や電気部品の破損（例えば、歯車の歯欠け、電気部品の半田接続部分の断線など）などによる装置故障、トナーやプリント用紙などの消耗品切れないし不足、感光体ドラムやドラムクリーナなどの寿命切れが含まれ、いずれも、画像処理の実行ができなくなる原因となるものである。なお、上記列挙したトラブルの内、ユーザによって比較的短時間で復旧できるトラブル、例えば、紙詰まりやプリント用紙切れなどは、通知の対象から除外することとしてもよい。上記トラブル発生通知を受けると、回復通知がなされるまでの間、制御モジュール１（ＣＰＵ１１１）は、プリンタコントローラへ、トラブル発生中であることを示す「ＮＧ」信号を出力し、トラブルが発生していない間は、「ＯＫ」信号を出力する。
【００２３】
制御モジュール２は、画像形成装置１１Ａ内においてプリント処理を実行するためのモータ、ヒータ（トナー定着装置）、電磁スイッチなどの各種駆動負荷を制御するためのモジュールであり、上記したＣＰＵ１２１、フラッシュＲＯＭ１２２の他に、プログラム実行時のワークエリアとなるＳ-ＲＡＭ１２３、各種設定値を保存するＮＶ-ＲＡＭ（不揮発性ＲＡＭ）１２４、制御モジュール１と各種の制御データを送受信するためのシリアルＩ／Ｆ１２５、制御モジュール４と各種の制御データを送受信するためのシリアルＩ／Ｆ１２６、および、上記各種駆動負荷の駆動制御回路からなるプリント負荷制御部１２７を備える。
【００２４】
制御モジュール３は、原稿台にセットされた原稿の読取走査制御や読取りの結果得られた画像データに各種の処理を施す画像処理制御をするためのモジュールであり、上記したＣＰＵ１３１、フラッシュＲＯＭ１３２の他に、プログラム実行時のワークエリアとなるＳ-ＲＡＭ１３３、各種設定値を保存するＮＶ-ＲＡＭ（不揮発性ＲＡＭ）１３４、制御モジュール１と各種の制御データを送受信するためのシリアルＩ／Ｆ１３５、走査ランプによって照射された原稿からの反射光をＣＣＤによって光電変換し、得られたアナログデータをＡ／Ｄ変換してデジタルデータである画像データとして画像処理ＡＳＩＣ１３７に出力する画像入力部１３８、画像入力部１３８から入力される画像データに対し、シェーディング補正・反射率-濃度変換・ＭＴＦ補正・濃度補正・誤差拡散等の２値化処理等の各種処理を施した上で、制御モジュール４または制御モジュール１に出力画像処理ＡＳＩＣ１３７、および、走査モータ、走査ランプ等の各種駆動負荷の駆動制御回路からなるイメージリーダ負荷制御部１３６を備える。
【００２５】
制御モジュール４は、画像データに対してγ補正などの画質補正処理をおこなったり、補正処理がなされた画像データに基づいてＬＤ（レーザダイオード）を変調駆動して、感光体ドラムを露光するためのモジュールであり、上記したＣＰＵ１４１、フラッシュＲＯＭ１４２の他に、プログラム実行時のワークエリアとなるＳ-ＲＡＭ１４３、各種設定値を保存するＮＶ-ＲＡＭ（不揮発性ＲＡＭ）１４４、制御モジュール１と各種の制御データを送受信するためのシリアルＩ／Ｆ１４５、制御モジュール３や制御モジュール１から入力される画像データに対し、スムージング・中間調階調再現処理・画質補正等の処理を施す画質補正制御部１４６、および、補正後の画像データに基づいて、ＬＤを変調駆動する画像出力部１４７を備える。
【００２６】
上記の構成において、制御モジュール１〜４間における制御データの送受信は、既に説明したように、シリアルＩ／Ｆを介して実行されることとなる。また、各制御モジュール内のファームウエアを書き換える際にも、後述するようにファームウエアを最初に受信する制御モジュール１からシリアルＩ／Ｆを介して各制御モジュールへとファームウエアが送信（転送）される。シリアルＩ／Ｆを介した通信構成は、比較的データサイズが小さい制御データに合わせた構成となっているので、ファームウエアのような大きなサイズのデータの送信には多くの時間を要することとなる。
【００２７】
一方、ビデオＩ／Ｆ１１８、画像処理ＡＳＩＣ１３７および画像補正制御部１４６の相互間、画像入力部１３８〜画像処理ＡＳＩＣ１３７間、画像補正制御部１４６〜画像出力部１４７間は、画像データを転送するため、比較的高速なデータバスで接続されている。
なお、各制御モジュール内におけるＣＰＵとフラッシュＲＯＭとは、可能な限り物理的に近接して配置されており、また、両者は高速な通信ラインによってできる限りの最短経路で接続されている。このようにすることで、ＣＰＵのプログラムロード中において、制御モジュール外から受けるノイズの影響が軽減されると共に、画像形成装置の電源投入時におけるプログラムロードが速やかに行われることとなる。
【００２８】
以上説明したように、画像形成装置１１Ａの制御モジュールは、制御対象や制御内容別に設けられている。すなわち、スキャンジョブが実行される場合には、制御モジュール３が作動し、プリントジョブが実行される場合には、制御モジュール２及び制御モジュール４が作動することとなる。また、制御モジュール２〜４を統括的に制御する制御モジュール１は、いずれのジョブが実行される場合であっても常に作動することとなる。
＜センター装置＞
図３は、前記センター装置９０の構成を示すブロック図である。
【００２９】
本図に示すように、コンピュータ９１は、ＣＰＵ９０１、ＲＯＭ９０２、ＲＡＭ９０３、固定記憶装置９０４、ディスプレイ９２の表示制御をする表示制御部９０５、キーボード９３、マウス９４などの入力デバイスからの入力の受け付け制御をする入力制御部９０６、および、ＬＡＮを介して他の装置と各種のデータを送受信するためのＮＩＣ（Ｎetwork  Ｉnterface  Ｃard）９０７を備えている。
【００３０】
サービスセンターでは、オペレータがセンター装置を用いて、ファームウエアを画像形成装置の機種及び制御モジュール毎に作成し、作成されたファームウエアは、それぞれが機種および制御モジュール毎に固定記憶装置９０４の別々のフォルダ（ディレクトリ）に格納される。
作成されたファームウエアは、オペレータの指示によって、電子メール・メッセージとして、各ユーザ（画像形成装置）宛に配信される。
【００３１】
図４は、ファームウエアが添付された電子メール・メッセージの一例を示す図である。
この電子メール・メッセージは、メッセージに関するインターネット標準（ＲＦＣ８２２）に従って作成されており、大きく分けて、宛先などが記述されるヘッダ部とファームウエアが記述されるボディ部とからなり、両者はNull（空白）行によって区別される。
【００３２】
ヘッダ部は、インターネット標準（ＲＦＣ８２２）で規定された複数のヘッダ・フィールドからなる。個々のヘッダ・フィールドは、「：（コロン）」をはさんだ二つの部分からなり、左側のフィールド名と右側のフィールドボディとで構成される。
ヘッダ部には、「From」、「To」、「Date」、「Subject」等のRFC822で規定されたフィールド以外に、MIME拡張規定にともなう「MIME-Version」、「Content-Type」、「Content-Description」の各フィールドが追加されている。
【００３３】
１行目のFrom（送り主）フィールドに続いて、ヘッダ部２行目のTo（宛先）フィールドのフィールド・ボディには、画像形成装置の電子メールアドレスが記述される。
４行目のSubjectフィールドのフィールドボディは、ファームウエアの書換対象となる機種とその制御モジュールを特定する箇所であり、オペレータによって指定された画像形成装置の機種名と制御モジュールのモジュール番号とを「＿（アンダーバー）」で繋いだ文字列が記述される。本例は、書き換え対象が、機種「Model１」の画像形成装置におけるモジュール番号「１」番の制御モジュール（内のフラッシュＲＯＭ）であることを示している。
【００３４】
Content-Typeフィールドのフィールド・ボディには、メッセージ・ボディ部を複数のパートに分割可能にするため、「multipart/mixed」が指定されており、個々のパートの境界を表す「boundary」パラメータに適当なUS-ASCII文字列（本例では「5kvrZF/hrA」）が指定されている。
Content-Descriptionフィールドのフィールド・ボディには、ボディ部に記述されているのが、ファームウエアの場合には「Firmware」と記述される。ＭＩＭＥ（Multipurpose Internet Mail Extentions）拡張の規定では、Content-Descriptionフィールドのフィールド・ボディには、任意のUS-ASCII文字を記述して良いことになっているので、その電子メール・メッセージにファームウェアが添付されていることを示す為に「Firmware」と記述することとしたのである。
【００３５】
電子メール・メッセージのボディ部には上記したように、ファームウエアが記述される。画像形成装置のファームウェアはバイナリデータであるが、RFC822では電子メールのメッセージに直接バイナリデータを記述することを禁止している。そのため、RFC2045、2046、2047で規定されているＭＩＭＥ拡張規定に従って、画像形成装置のファームウェアをメッセージのボディ部にファイルとして添付する。
【００３６】
メッセージのボディ部には、同ヘッダ部のContent-Typeフィールド内boundaryパラメータ値の前に「--」を加えた文字列（本例では「--5kvrZF/hrA」）を記載することで、ひとつのパートの始まりを指定する。
その下に、「Content-Type」フィールドを記述し、そのフィールド・ボディに、添付するファイルがバイナリデータであることを示す「application/octet-stream」を指定する。
【００３７】
さらにその下に、「Content-Transfer-Encoding」フィールドを記述し、フィールド・ボディに「base64」を指定する。前述のとおり、RFC822により電子メールのメッセージに直接バイナリデータを記述することが禁止されているため、バイナリデータをUS-ASCII文字に変換しなければならない。MIME拡張規定では、この変換の方式として複数の方式が定められているが、その中の1つがここで指定したBase64方式である。
【００３８】
上記2つのフィールドに続いて、ファームウェアのバイナリデータをBase64方式でUS-ASCII文字に変換して追加する。
最後に、ボディ部の全パートの終端であることを示すため、ヘッダ部のContent-Typeフィールド内boundaryパラメータ値の前後にそれぞれ「--」を加えた文字列（本例では「--5kvrZF/hrA--」）を記述する。
【００３９】
また、固定記憶装置９０４には、図５に示すような登録情報テーブルが格納されている。当該登録情報テーブルには、オペレータによって、画像形成装置毎にその電子メールアドレスと機種（型式）とが対応づけられて登録される。
＜クライアント装置＞
図６は、クライアント装置３１Ａの構成を示すブロック図である。なお、他のクライアント装置３２Ａ…も基本的にはクライアント装置３１Ａと同じ構成なので、クライアント装置３１Ａを代表にして説明し、これ以外のクライアント装置についての説明は省略する。
【００４０】
本図に示すように、本体３０は、ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、固定記憶装置３０４、ディスプレイ３２の表示制御をする表示制御部３０５、キーボード３３、マウス３４などの入力デバイスからの入力の受け付け制御をする入力制御部３０６、および、ＬＡＮを介して他の装置と各種のデータを送受信するためのＮＩＣ（Ｎetwork  Ｉnterface  Ｃard）３０７を備えている。
【００４１】
クライアント装置のＲＯＭ３０２には、文書編集アプリケーションプログラム、画像編集アプリケーションプログラム、プリンタドライバなどがインストールされており、ＣＰＵ３０１は、これらのプログラムを実行する。
クライアント装置は、オペレータの指示にしたがって、プリントジョブを作成し、オペレータが指定した画像形成装置のプリンタコントローラに当該プリントジョブを送信する。また、クライアント装置は、オペレータの指示により、オペレータが指定した画像形成装置のプリントコントローラにスキャンジョブの要求を送信する。オペレータは、スキャンジョブの要求の指示に先立って、当該要求をする画像形成装置の原稿台に原稿をセットすることとなっている。
＜プリンタコントローラ５３Ａ＞
図７は、プリンタコントローラ２１Ａの構成を示すブロック図である。
【００４２】
本図に示すように、プリンタコントローラ２１Ａは、ＣＰＵ２０１、当該ＣＰＵ２０１で実行されるプログラムを格納したＥＰ−ＲＯＭ（不揮発性メモリ）２０２、プログラム実行時のワークエリアとなるＳ−ＲＡＭ２０３、各種設定値を保存するＮＶ−ＲＡＭ２０４、各種ファンクションキーＦ１〜Ｆ４や当該ファンクションキーを用いた各種の設定を行う際のメニュー画面等を表示するための表示部などを備えた操作パネル２０９を備える。
【００４３】
なお、ＮＶ−ＲＡＭ２０４には、自装置のＩＰアドレスおよび自装置宛の電子メール・メッセージをメールサーバ５３Ａから取り出すために必要となるメールサーバ５３ＡのＩＰアドレスが格納されている。
さらに、ＮＶ−ＲＡＭ２０４には、図８に示すような、受信した各種ジョブの画像形成装置１１Ａにおける実行順序の管理に用いるジョブ管理テーブルが備えられている。本図に示すように、ジョブ管理テーブルは、ジョブ番号欄、ジョブの種類欄、付帯情報欄およびアドレス欄から構成されている。
【００４４】
ジョブ番号は、画像形成装置１１Ａに実行させるジョブの順番を示すものであり、画像形成装置１１Ａがジョブ実行可能な状態になると、ジョブ番号１番のジョブを画像形成装置１１Ａに実行させることとなる。
ジョブ種類欄は、ジョブの種類を格納する欄であり、プリントジョブの場合は「１」が、ファームウエア書換ジョブの場合は「２」が、スキャンジョブの場合は「３」がそれぞれ格納されることとなる。
【００４５】
付帯情報欄は、ジョブの種類がファームウエア書換ジョブである場合に、書換対象となる制御モジュール番号を格納する欄である。
アドレス欄は、ジョブ管理テーブルに登録されている各ジョブの、固定記憶装置２０５における先頭アドレス（格納アドレス）を格納する欄であり、当該欄を参照することによって、必要とするジョブの固定装置２０５からの読み出しが可能となる。なお、スキャンジョブの場合には、固定記憶装置２０５には、スキャン指示のあったクライアント装置のＩＰアドレス等のスキャンデータが格納される。スキャンジョブの場合、画像形成装置１１Ａのスキャナで読み取られ、プリンタコントローラ２１Ａに入力される画像データは、ビデオＩ／Ｆ２０７およびＮＩＣ２０８を経由して該当するクライアント装置に送信されることとなる。
【００４６】
図７に戻り、プリンタコントローラ２１Ａは、クライアント装置３１Ａからのプリントジョブの受信（受付）やメールサーバ５３Ａから読み出した電子メールの受信（受付）や画像形成装置で読み取った原稿画像データのクライアント装置への送信など、各種の情報を他の装置とＬＡＮを介して送受信するためのＮＩＣ（Ｎetwork  Ｉnterface  Ｃard）２０８、受信したプリントジョブや電子メール・メッセージを一旦格納する固定記憶装置２０５、固定記憶装置２０５からプリントジョブを読み出し、読み出したプリントジョブのＰＤＬ（ページ記述言語）で記述されたプリントデータをビットマップデータに展開してビデオインターフェイス２０７へ出力する画像展開部２０８、画像展開部２０８から出力されるプリントデータ（ビットマップデータ）を画像形成装置１１ＡのビデオＩ／Ｆ１１８へ送信したり、画像形成装置１１Ａで読み取られ、ビデオＩ／Ｆ１１８から出力される画像データを受信し、ＮＩＣ２０８へ出力するビデオＩ／Ｆ２０７、固定記憶装置２０５から読み出される書換用ファームウエアを画像形成装置１１ＡのシリアルＩ／Ｆ１１７へ送信するシリアルＩ／Ｆ２０６を備える。
【００４７】
なお、ＮＩＣ２０８〜固定記憶装置２０５〜画像展開部２０８〜ビデオＩ／Ｆ２０７〜ビデオＩ／Ｆ１１８の間およびビデオＩ／Ｆ２０７〜ＮＩＣ２０８の間は、画像データを転送することとなるため、比較的高速なデータバスで接続されている。
続いて、上記システムにおける装置ごとの制御（処理）内容について、フローチャートを参照しながら説明する。
＜センター装置での処理＞
図９は、ファームウエアの書換に関し、センター装置のＣＰＵ９０１において実行される基本処理を示すフローチャートである。
【００４８】
本フローチャートで示されるプログラムは、センター装置９０のメイン電源の投入によって起動される。先ず、メモリの初期化やパラメータの初期化など、一般的にコンピュータが実行する初期化処理が行われる（ステップＳ５０１）。その後、キーボード９３が備えるファンクションキーＦ１〜Ｆ３の何れかが押下されると（ステップＳ５０３、Ｓ５０７、Ｓ５１１いずれかでＹｅｓ）、押下されたファンクションキーに応じた処理が実行されることとなる。
【００４９】
Ｆ１キーが押下されると（ステップＳ５０３でＹｅｓ）、電子メールを送信するために必要な情報を入力するための通信設定画面（不図示）がディスプレイ９２に表示される。当該通信設定画面にしたがって、オペレータがキーボード９３などの入力デバイスを介して、メールサーバ８３のＩＰアドレスやコンピュータ９１の電子メールアドレスを入力すると、入力されたこれらの情報が固定記憶装置９０４に記憶される（ステップＳ５０５）。固定記憶装置９０４に記憶されたコンピュータ９１の電子メールアドレスは、ファームウエアを電子メール・メッセージとして配信する際の、当該電子メール・メッセージのヘッダ部のFromフィールドのフィールド・ボディに記述されることとなる。
【００５０】
Ｆ２キーが押下されると（ステップＳ５０７でＹｅｓ）、ディスプレイ９２に画像形成装置登録画面（不図示）が表示される。当該登録画面にしたがって、オペレータが入力デバイスを介し、画像形成装置の機種や画像形成装置の電子メールあるいは当該画像形成装置が設置されているユーザの名称、住所、電話番号等の情報が入力されるとこれらの情報は、前述した登録情報テーブル（図５参照）に登録される（ステップＳ５０９）。なお、ユーザの名称、住所、電話番号等は、登録情報テーブルの「その他の情報」欄に登録される。その他の情報は、画像形成装置の所属先（設置ユーザ）の特定を容易にするためのものである。
【００５１】
Ｆ３キーが押下されると（ステップＳ５１１でＹｅｓ）、ファームウエアの送信処理が実行される（ステップＳ５１３）。
ファームウエア送信処理の詳細について、図１０のフローチャートを参照しながら説明する。
先ず、ファームウエア書換対象を指定するための書換指定画面（不図示）がディスプレイ９２に表示され、当該画面にしたがってオペレータから入力デバイスを介して入力される、画像形成装置の機種名、および制御モジュール番号が受け付けられる（ステップＳ７０１）。すなわち、オペレータは、ここで、画像形成装置の一機種一モジュール内の一フラッシュＲＯＭのファームウエアの書き換えを指示することとなる。
【００５２】
上記受付が終了すると、登録情報テーブルを参照し、当該登録情報テーブルに登録されている画像形成装置の登録台数「ｎ」を計数し（ステップＳ７０３）、ループカウンタとなる変数「ｉ」に１を代入する（ステップＳ７０５）。
続いて、ループカウンタｉの値と登録台数ｎの値とを比較し（ステップＳ７０７）、ループカウンタｉの値が登録台数ｎの値以下であれば（ステップＳ７０７でＹｅｓ）、登録情報テーブルのｉ番目のレコードに記録されている画像形成装置の機種を読み出し（ステップＳ７０９）、読み出した機種が、ステップＳ７０１で受け付けられた（指定された）機種か否か、すなわち、ファームウエアの書換対象機種か否かの判断を行う（ステップＳ７１１）。
【００５３】
指定された機種の場合は（ステップＳ７１１でＹｅｓ）、登録情報テーブルのｉ番目のレコードから電子メールアドレスを読み出し（ステップＳ７１３）、読み出した電子メールアドレスを宛先とし、ファームウエアを添付した電子メール・メッセージ（図４参照）を作成する（ステップＳ７１５）。なお、添付するファームウエアは、ステップＳ７０１で受け付けた（オペレータが指定した）機種、および制御モジュール番号の別に対応して格納されている固定記憶装置９０４から読み出される。また、言うまでもなく、電子メール・メッセージのヘッダ部の各フィールドのフィールドボディには、ステップＳ７０１などで指定される事項が記述されることとなる。
【００５４】
続くステップＳ７１７では、作成した電子メール・メッセージを送信する。すなわち、図９のステップＳ５０５で設定され、固定記憶装置９０４に記憶されている、メールサーバ８３のＩＰアドレスを基に当該メールサーバ８３との間でＴＣＰコネクションを確立した後、電子メール送信のインターネット標準であるＳＭＴＰプロトコル（ＲＦＣ８２１）に従ってメールサーバ８３に電子メール・メッセージを送信するのである。
【００５５】
電子メール・メッセージの送信が終了すると、ループカウンタｉを１つインクリメントしてステップＳ７０７に戻る。
ステップＳ７０７以降の処理を、ループカウンタｉの値が登録台数ｎの値を超えるまで（ステップＳ７０７でＮｏ）、すなわち、登録されている画像形成装置の内、オペレータがファームウエアの書換を指定した全ての画像形成装置宛に、ファームウエアが添付された電子メールの送信が終了するまで繰り返す。そして、ループカウンタｉの値が登録台数ｎの値を超えると（ステップＳ７０７でＮｏ）、図７に示すルーチンを終了する。
【００５６】
以上の処理によって、オペレータがファームウエアの書換対象となる機種、および制御モジュールを指定するだけで、該当する画像形成装置全てに、書換用のファームウエアが配信されることとなる。
＜プリントコントローラでの処理＞
図１１は、プリンタコントローラ２１ＡのＣＰＵ２０１（図７）において実行される基本処理を示すフローチャートである。
【００５７】
本フローチャートで示されるプログラムは、プリンタコントローラ２１Ａのメイン電源の投入によって起動される。先ず、メモリの初期化やパラメータの初期化など、一般的にコンピュータが実行する初期化処理が行われる（ステップＳ９０１）。その後、必要に応じて、以下の処理が実行される。
操作パネル２０９のＦ１キーが押下されると（ステップＳ９１１でＹｅｓ）、電子メール・メッセージを送受信するために必要な情報を入力するための通信設定画面（不図示）が操作パネル２０９の表示部に表示される。当該通信設定画面にしたがって、オペレータにより、操作パネル２０９から、メールサーバ５３ＡのＩＰアドレス、当該プリンタコントローラ２１Ａに接続されている画像形成装置１１Ａの電子メールアドレス、およびメールサーバ５３Ａに画像形成装置１１Ａ宛の電子メール・メッセージが届いているかどうかの確認をする時間間隔（以下、「確認間隔」と言う。）が入力されると、入力された情報は、それぞれＮＶ−ＲＡＭ２０４に格納される（ステップＳ９１３）。当該確認間隔としては、例えば、１分〜２０分程度の値が設定される。
【００５８】
いずれかのクライアント装置からプリントジョブを受信すると（ステップＳ９２１でＹｅｓ）、受信したプリントジョブを固定記憶装置２０５へスプールし（ステップＳ９２３）、当該プリントジョブのジョブ管理テーブル（図８）への登録を行う（ステップＳ９２５）。このとき、当該プリントジョブはジョブ管理テーブルの最後尾に登録される。
【００５９】
いずれかのクライアント装置からスキャン要求があると（ステップＳ９３１でＹｅｓ）、ジョブ管理テーブルの最後尾に当該スキャンジョブの登録を行う（ステップＳ９３３）。
続いて、ステップＳ９４１では、メールサーバ５３Ａに対して画像形成装置１１Ａ宛の電子メール・メッセージが届いているか否かの確認を前回行ってから前記確認間隔が経過したか否かを判断し、経過している場合には、ステップＳ９４３に進み、電子メール・メッセージの有無の確認と有った場合の当該電子メールメッセージのダウンロードとを実行する。
【００６０】
図１２は、ステップＳ９４３の詳細を示すフローチャートである。
先ず、メールサーバ５３ＡのＩＰアドレスを基に、メールサーバ５３ＡとのＴＣＰコネクションを確立し（ステップＳ１１０１）、画像形成装置１１Ａ宛に新しい電子メールメッセージが届いているか否かの確認を行う（ステップＳ１１０３）。
【００６１】
画像形成装置１１Ａ宛の新しい電子メールメッセージが１通も届いていなかった場合には（ステップＳ１１０３でＮｏ）、メールサーバ５３ＡとのＴＣＰコネクションを切断して（ステップＳ１１１１）本ルーチンを終了する。
一方、新しい電子メールメッセージが到着していた場合には（ステップＳ１１０３でＹｅｓ）、メールサーバ５３ＡからＰＯＰ３（Ｐost  Ｏffice  Ｐrotocol  version３）プロトコルに従って当該新着の電子メール・メッセージをダウンロードする。なお、この場合、新着の電子メール・メッセージが複数あった場合でも、到着順に一つの電子メールメッセージだけをダウンロードすることとする。
【００６２】
電子メール・メッセージのダウンロードが終了すると、当該ダウンロードした電子メールメッセージに対応する、メールサーバ５３Ａ内のオリジナルの電子メールメッセージを削除させ（メールサーバ５３ＡにDeleteコマンドを出力し）（ステップＳ１１０７）、メールサーバ５３ＡとのＴＣＰコネクションを切断する（ステップＳ１１０９）。
【００６３】
続いて、ダウンロードした電子メールのContent-Descriptionフィールドのフィールド・ボディをチェックし、ファームウエアが添付されているか否かを判断する（ステップＳ１１２１）。
ファームウエアが添付されていた場合には（ステップＳ１１２１でＹｅｓ）、ボディ部からUS-ASCII文字を抜き出し（ステップＳ１３１１）、これを逆Base64変換してバイナリデータに復元する（ステップＳ１１３３）と共に、ヘッダ部のSubjectフィールドのフィールド・ボディから制御モジュールの番号を読み出す（ステップＳ１１３５）。
【００６４】
そして、バイナリデータに変換されたファームウエアを固定記憶装置２０５に格納し（ステップＳ１１３７）、当該格納された書換用ファームウエアで、対象とするフラッシュＲＯＭのファームウエアを書き換える処理を「ファームウエア書換ジョブ」として、ジョブ管理テーブル（図８）の末尾に登録する（ステップＳ１１３９）。このとき、既述したように、ジョブ種類欄には、ファームウエア書換ジョブであることを示す「２」が、付帯情報欄には、書き換え対象の制御モジュール番号が、アドレス欄には固定記憶装置２０５におけるファームウエアの格納アドレスがそれぞれ登録されることとなる。
【００６５】
なお、ステップＳ１１２１で電子メールにファームウエアが添付されていないと判断した場合には、ファームウエア書換以外の用途のメッセージが添付されていた場合の処理を実行して（ステップＳ１１２３）、本ルーチンを終了する。ステップＳ１１２３の処理は、本発明の主眼とは直接的には関係ないので、その説明については省略する。
【００６６】
図１１に戻り、上記したステップＳ９４３の処理が終了するか、あるいは、ステップＳ９４１で確認間隔が経過していないと判断した場合には、画像形成装置１１Ａが「ＲＥＡＤＹ」状態か「ＢＵＳＹ」状態かをチェックする（ステップＳ９５１）。ＲＥＡＤＹ状態であれば（ステップＳ９５１でＮｏ）、ジョブ管理テーブルにジョブが登録されているか否かのチェックを行い（ステップＳ９６１）、登録されていれば（ステップＳ９６１でＹｅｓ）、ステップＳ９６３へ進み、当該ジョブを画像形成装置に実行させる処理を行う。
【００６７】
図１３は、ステップＳ９６３の詳細を示すフローチャートである。
先ず、ジョブ管理テーブルの先頭に登録されているジョブのジョブの種類を読み出し（ステップＳ１２０１）、読み出したジョブの種類に応じて、続く処理を切り替える。
ジョブの種類がプリントジョブの場合は（ステップＳ１２０３でＹｅｓ）、ジョブ管理テーブルに格納されているアドレスを参照して固定記憶装置２０５からプリントジョブを読み出し（ステップＳ１２１１）、読み出したプリントジョブに基づいて、ビットマップデータ（イメージデータ）を作成し（ステップＳ１２１３）、作成したイメージデータを画像形成装置１１Ａに送信して、画像形成装置１１Ａに当該プリントジョブを処理させる（ステップＳ１２１５）。
【００６８】
ジョブの種類がスキャンジョブの場合は（ステップＳ１２０３でＮｏ、Ｓ１２２０でＹｅｓ）、スキャン要求をしたクライアント装置のＩＰアドレス等を含むスキャンデータを読み出し（ステップＳ１２２１）、画像形成装置１１Ａに対しスキャンジョブの実行を指示する（ステップＳ１２２３）。
ジョブの種類がファームウエア書換ジョブの場合は（ステップＳ１２０３とＳ１２２０の両方でＮｏ）、画像形成装置が「ＮＧ」信号を出力しているか否かをチェックし（ステップＳ１２３０）、ＮＧ信号が出力されていれば（ステップＳ１２３０でＹｅｓ）、一連のファームウエア書換ジョブの送信処理を行う。すなわち、ジョブ管理テーブルに格納されているアドレスを参照して固定記憶装置２０５からファームウエアを読み出し（ステップＳ１２３１）、ジョブ管理テーブルから書き換え対象制御モジュールのモジュール番号を読み出し（ステップＳ１２３３）、読み出したファームウエアに上記モジュール番号を添付して、画像形成装置１１Ａに送信し、該当するフラッシュＲＯＭのファームウエアの書換を実行させる（ステップＳ１２３５）。上記した処理により、トナー切れ等のトラブルの原因で、いずれにしても、ファームウエア書換ジョブ以外のジョブの実行ができないときを利用して、ファームウエアの書換が実行されることとなる。すなわち、他のジョブの実行を可能な限り妨げること無く、ファームウエアの書換を行うことができるのである。
【００６９】
一方、画像形成装置がＮＧ信号を出力していない場合には（ステップＳ１２３０でＮｏ）、ジョブ管理テーブルに登録されている全てのジョブを一つずつ繰り下げると共に、ファームウエア書換ジョブ以外のジョブ中、最も処理順位の高いジョブを先頭に移動する（ステップＳ１２４１）。この処理により、処理対象とされたファームウエア書換ジョブ（ステップＳ１２０１）の処理順位が２番目となり、処理順位１番目には、ファームウエア書換ジョブ以外のジョブ来ることとなる。また、先頭に移動したジョブの空欄を埋めるため、当該ジョブが登録されていた以降のジョブを一つずつ繰り上げる処理が行われる。なお、ファームウエア書換ジョブ以外の種類のジョブが登録されていない場合には、ジョブ管理テーブルの入れ替えは実行しないこととする。上記した処理のより、画像形成装置でトラブルが発生していないときには（ファームウエア書換以外の種類のジョブの実行が可能なときには）、ファームウエアの書換が禁止されることとなる。その結果、ファームウエア書換ジョブと他のジョブとが同時に処理待ち状態となった場合に、ファームウエアの書換のために当該他のジョブの実行が妨げられるといった事態を回避することが可能となる。また、ファームウエア書換ジョブしか処理待ちになっていない場合であっても、当該ファームウエアの書換を禁止することにより、当該ファームウエアの書換開始から終了の間に他の種類のジョブが受け付けられた場合の、当該他の種類のジョブの実行が妨げられることが回避される。
【００７０】
ジョブの種類が「プリントジョブ」、「スキャンジョブ」、「ファームウエア書換ジョブ」のいずれの場合も、画像形成装置１１Ａへのジョブの送信あるいはジョブの実行指示が完了したら、対応するジョブ（先頭のジョブ）をジョブ管理テーブルから抹消し、他に処理待ちのジョブが登録されている場合には、それらのジョブの処理順位を一つずつ繰り上げる（ステップＳ１２４２）。
【００７１】
図１１に戻り、ステップＳ９５１で画像形成装置１１ＡがＢＵＳＹ状態であると判断するか（ステップＳ９５１でＹｅｓ）、ＲＥＡＤＹ状態であっても（ステップＳ９５１でＮｏ）、未処理ジョブが無ければ（ステップＳ９６１でＮｏ）、ステップＳ９７１へ進む。
ステップＳ９７１では、画像形成装置が「ＮＧ」信号を出力しているか否かをチェックし、画像形成装置がＮＧ信号を出力していない場合には（ステップＳ９７１でＮｏ）、ステップＳ９７３をスキップして、ステップＳ９１１へリターンする。一方、画像形成装置がＮＧ信号を出力している場合には（ステップＳ９７１でＹｅｓ）、ステップＳ９７３へ進んで、ファームウエア送信処理を行う。
【００７２】
図１４は、ステップＳ９７３の詳細を示すフローチャートである。
先ず、ジョブ管理テーブルにファームウエア書換ジョブが登録されているか否かをチェックし（ステップＳ１５０１）、１件も登録されていなければ（ステップＳ１５０１でＮｏ）、そのままリターンする。一方、登録されていれば、その内の一番処理順位の高いファームウエア書換ジョブのジョブ管理テーブルに格納されているアドレスを参照して固定記憶装置２０５からファームウエアを読み出し（ステップＳ１５０３、ジョブ管理テーブルから書き換え対象制御モジュールのモジュール番号（ステップＳ１５０５）、読み出したファームウエアに上記モジュール番号を添付して、画像形成装置１１Ａに送信し、該当するフラッシュＲＯＭのファームウエアの書換を実行させる（ステップＳ１５０７）。上記した処理により、画像形成装置でトラブルが発生しているとき、すなわち、いずれにしてもファームウエア書換ジョブ以外のジョブの実行ができないときを利用して、ファームウエアの書換が実行されることとなる。
＜画像形成装置での処理＞
図１５は、ジョブの実行制御に関し、画像形成装置１１Ａの制御モジュール１のＣＰＵ１１１（図２）においてなされる基本処理を示すフローチャートである。
【００７３】
本フローチャートで示されるプログラムは画像形成装置の電源が投入されると起動される。先ず、各種メモリの初期化などの一般的な初期化処理を行う（ステップＳ１３０１）。
初期化処理に続いては、プリンタコントローラ２１Ａから受け付ける（送信される）ジョブの種類等に応じて、処理を切り替える。
【００７４】
受け付けたのがプリントジョブの場合には（ステップＳ１３０３でＹｅｓ）、制御モジュール２及び制御モジュール３に指示してプリントジョブの実行を開始させる（ステップＳ１３０５）。
受け付けたのがスキャンジョブの場合には（ステップＳ１３０７でＹｅｓ）、制御モジュール３に指示してスキャンジョブの実行を開始させる（ステップＳ１３０９）。
【００７５】
制御モジュール２〜４のいずれかからも、トラブル発生の通知がない場合は（ステップＳ１３１１でＮｏ）、上記したステップＳ１３０３〜Ｓ１３０９の処理を繰り返す。一方、制御のジュール２〜４のいずれかから、トラブルが発生した旨の通知を受けると（ステップＳ１３１１でＹｅｓ）、既述したように、ＮＧ信号を出力する一方、プリンタコントローラからファームウエア書換ジョブが送信されるのを待つ（ステップＳ１３１５）。ファームウエア書換ジョブが送信される（ファームウエア書換ジョブを受信する）前に、制御モジュール２〜４からトラブルが回復した旨の通知を受けると（ステップＳ１３１３でＹｅｓ）、ステップＳ１３０３へリターンする。一方、トラブルが回復する旨の通知を受ける（ステップＳ１３１３でＹｅｓ）前に、すなわち、当該画像形成装置でトラブル発生中に、ファームウエア書換ジョブを受信すると（ステップＳ１３１５でＹｅｓ）、ステップＳ１３１７へ進み、ファームウエア書換処理を実行する。
【００７６】
図１６は、画像形成装置１１Ａにおけるファームウエア書換処理の流れを示したフローチャートである。
先ず、受け付けられたファームウエアが、制御モジュール１に対するファームウエアか否かの判断がなされる（ステップＳ１４０１）。制御モジュール１に対するファームウエアの場合には（ステップＳ１４０１でＹｅｓ）、フラッシュＲＯＭ１１２に格納されている入出力プログラムがＳ−ＲＡＭ１１３に退避され（ステップＳ１４０５）、退避された入出力プログラム（Ｓ−ＲＡＭ１１３内の入出力プログラム）に従って書換用ファームウエア（新たなファームウエア）がフラッシュＲＯＭ１１２に書き込まれる（ステップＳ１４０７）。
【００７７】
受け付けられたファームウエアが、制御モジュール２に対するものである場合には（ステップＳ１４０１でＮｏ、ステップＳ１４１１でＹｅｓ）、当該ファームウエアが制御モジュール２へ転送される（ステップＳ１４１３）。そして、フラッシュＲＯＭ１２２に格納されている入出力プログラムがＳ−ＲＡＭ１２３に退避され（ステップＳ１４１５）、退避された入出力プログラムに従って、書換用ファームウエアがフラッシュＲＯＭ１２２に書き込まれる（ステップＳ１４１７）。
【００７８】
受け付けられたファームウエアが、制御モジュール３に対するものである場合には（ステップＳ１４０１およびＳ１４１１でＮｏ、ステップＳ１４２１でＹｅｓ）、当該ファームウエアが制御モジュール３へ転送される（ステップＳ１４２３）。そして、フラッシュＲＯＭ１３２に格納されている入出力プログラムがＳ−ＲＡＭ１２３に退避され（ステップＳ１４２５）、退避された入出力プログラムに従って、書換用ファームウエアがフラッシュＲＯＭ１３２に書き込まれる（ステップＳ１４２７）。
【００７９】
受け付けられたファームウエアが、制御モジュール４に対するものである場合には（ステップＳ１４０１、Ｓ１４１１およびＳ１４２１でＮｏ、ステップＳ１４３１でＹｅｓ）、当該ファームウエアが制御モジュール４へ転送される（ステップＳ１４３３）。そして、フラッシュＲＯＭ１４２に格納されている入出力プログラムがＳ−ＲＡＭ１４３に退避され（ステップＳ１４３５）、退避された入出力プログラムに従って、書換用ファームウエアがフラッシュＲＯＭ１３２に書き込まれる（ステップＳ１４３７）。
【００８０】
受け付けられたファームウエアが制御モジュール１〜４のいずれに対するファームウエアでもない場合は、（ステップＳ１４０１、Ｓ１４１１、Ｓ１４２１およびＳ１４３１でＮｏ）、なにもせずに終了する。
なお、ファームウエアの書換が終了すると（ステップＳ１４０７、Ｓ１４１７、Ｓ１４２７、または、Ｓ１４３７）、画像形成装置は再起動される（ステップＳ１４４１）。
（実施の形態２）
上記実施の形態１におけるファームウエア書換システムでは、サービスセンター（センター装置９０）が、各画像形成装置に向けて一方的に書換用ファームウエアを配信し、各画像形成装置に付設されたプリンタコントローラは、配信された書換用ファームウエアを一応受け付け、画像形成装置にトラブルが発生するのを待って、当該書換用ファームウエアを画像形成装置に送信して、ファームウエアの書換を実行させることとした。
【００８１】
これに対し、実施の形態２におけるファームウエア書換システムでは、画像形成装置にトラブルが発生すると、プリンタコントローラがセンター装置にその旨を通報し、当該通報のあった時点で書換用ファームウエアが準備されている場合には、当該書換用ファームウエアを当該画像形成装置に向けて送信することとしている。
【００８２】
したがって、上記内容を達成するため、実施の形態１とは異なる構成および処理を中心に説明し、実施の形態１と共通する構成や処理についての図面や説明は省略することとする。
実施の形態２では、サービスセンターは、図１７に示すように、さらに、サーバ７１を備えている。当該サーバ７１は、完成された書換用ファームウエアを格納すると共に、当該書換用ファームウエアをメールサーバ８３経由で、ユーザの各画像形成装置に向けて送信するための装置である。サーバ７１は、センター内ＬＡＮに接続されている。
【００８３】
図１８は、サーバ７１の構成を示すブロック図である。
本図に示すように、サーバ７１は、ＣＰＵ７０１、ＲＯＭ７０２、ＲＡＭ７０３、固定記憶装置７０４、ディスプレイ７２の表示制御をする表示制御部７０５、ファンクションキーなどを備えたキーボード７３からの入力の受け付けを制御する入力制御部７０６、および、ＬＡＮを介して他の装置と各種のデータを送受信するためのＮＩＣ（Ｎetwork  Ｉnterface  Ｃard）７０７を備えている。実施の形態２では、完成したファームウエアは、サーバ７１の固定記憶装置７０４に格納するようになっている。ファームウエアのバージョンアップ版が完成すると、対応する旧版と入れ替えに当該バージョンアップ版をサーバー７１に格納するようにしている。サーバ７１（固定記憶装置７０４）に格納されるファームウエアはファイル名で識別され、当該ファイル名は、画像形成装置の機種名、制御モジュール番号およびバージョンをアンダーバー「＿」で区切った書式で表現される。例えば、機種が「model１」の制御モジュール１用のファームウエアでバージョンが「2.00」の場合のファイル名は、「model１＿１＿200.dat」となる。
【００８４】
以下、実施の形態２のファームウエア書換システムにおける各装置の制御（処理）内容について、当該実施の形態２に特有なものを中心に説明する。
＜画像形成装置での処理＞
図１９は、ジョブの実行制御に関し、画像形成装置１１Ａの制御モジュール１のＣＰＵ１１１（図２）においてなされる基本処理を示すフローチャートである。
【００８５】
本フローチャートで示されるプログラムは画像形成装置の電源が投入されると起動される。先ず、各種メモリの初期化などの一般的な初期化処理を行う（ステップＳ１０１）。このとき、ＮＶ−ＲＡＭ１１４（図２）内に設けられているトラブルフラグがＯＦＦにセットされる。このトラブルフラグは、後述するトラブル通知が、一回のトラブル発生中に2回以上なされないようにするために利用されるフラグである。
【００８６】
初期化処理に続いては、プリンタコントローラ２１Ａから受け付ける（送信される）ジョブの種類等に応じて、処理を切り替える。
受け付けたのがプリントジョブの場合には（ステップＳ１０３でＹｅｓ）、制御モジュール２及び制御モジュール３に指示してプリントジョブの実行を開始させる（ステップＳ１０５）。
【００８７】
受け付けたのがスキャンジョブの場合には（ステップＳ１０７でＹｅｓ）、制御モジュール３に指示してスキャンジョブの実行を開始させる（ステップＳ１０９）。
受け付けたのがファームウエア書換ジョブの場合は（ステップＳ１１１でＹｅｓ）、ファームウエア書換処理を実行する（ステップＳ１１３）。なお、ファームウエア書換処理は、図１６のフローチャートを用いて説明したのと同様なので、その説明については省略する。
【００８８】
以上ステップＳ１０３〜Ｓ１１３の処理は、トラブルが発生していない間（ステップＳ１１５でＮｏ、ステップＳ１１７でＮｏ）繰り返される。
一方、トラブルが発生すると（ステップＳ１１７でＹｅｓ）、画像形成装置（ＣＰＵ１１１）からプリンタコントローラへトラブル通知がなされる（ステップＳ１１９）と共に、トラブルフラグがＯＮにセットされる（ステップＳ１２１）。当該トラブル通知には、トラブルの内容やトラブルが発生した箇所の制御を受け持っている制御モジュールのモジュール番号や当該制御モジュールに組み込まれているファームウエアのバージョン情報などが含まれる。なお、実施の形態２では、ファームウエアの不具合に起因して発生するトラブルを含む一切のトラブルが通知対象となる。これは、サービスセンター（センター装置９０）において、ユーザの画像形成装置で発生するあらゆるトラブルを把握し、当該画像形成装置の管理情報として用いるためである。
【００８９】
トラブルが発生すると（ステップＳ１１７でＹｅｓ）、トラブルが回復するまで（ステップＳ１２３でＹｅｓ）、画像形成装置は、ファームウエアの受信待ち状態となる（ステップＳ１２３からステップＳ１１１へリターンする）。
トラブルが回復すると（ステップＳ１２３でＹｅｓ）、プリンタコントローラに回復通知をする（ステップＳ１２５）と共に、トラブルフラグをＯＦＦにリセットして（ステップＳ１２７）、ステップＳ１０３へリターンする。
＜プリンタコントローラでの処理＞
図２０は、プリンタコントローラ２１ＡのＣＰＵ２０１（図７）において実行される基本処理を示すフローチャートである。
【００９０】
本図に示すフローチャートは、実施の形態１における図１１のフローチャートからステップＳ９７１、Ｓ９７３が削除される一方、ステップＳ９８１、Ｓ９８３が追加され、さらにステップＳ９４３がステップＳ９４５に変更された形となっている。したがって、図１１のフローチャートにおける処理と共通する処理については、同じステップ番号を付してその説明については省略する。
【００９１】
プリンタコントローラ２１Ａは、画像形成装置１１Ａからトラブル通知がなされると（ステップＳ９８１でＹｅｓ）、トラブルが発生した旨をサービスセンターへ送信するための電子メール送信処理を実行する（ステップＳ９８３）。なお、本ステップで送信される電子メール・メッセージの書式は、図４を用いて説明したのと同様である。
【００９２】
図２１は、ステップＳ９８３の詳細を示すフローチャートである。
先ず、電子メールのヘッダ部を作成するために必要な情報を取得する（ステップＳ８０１）。すなわち、「To」フィールドに記述するセンター装置の電子メールアドレスや「From」フィールドに記述する画像形成装置１１Ａの電子メールアドレスをＮＶ−ＲＡＭ２０４（図７）から読み出し、ＣＰＵ２０１が内蔵する内部クロックから現在の日時を特定する（「Date」フィールドに記述される。）。
【００９３】
続いて、画像形成装置からトラブルデータを受信する（ステップＳ８０３）。当該トラブルデータとは、前記したトラブル通知に含まれる「トラブルの内容やトラブルが発生した箇所の制御を受け持っている制御モジュールのモジュール番号や当該制御モジュールに組み込まれているファームウエアのバージョン情報など」である。
【００９４】
そして、上記ステップＳ８０１とＳ８０３で得た情報に基づいて、電子メール・メッセージを作成する（ステップＳ８０５）。ここで、「Subject」フィールドには、画像形成装置の機種名とトラブル発生箇所の制御を受け持っている制御モジュールのモジュール番号と当該制御モジュールに組み込まれているファームウエアのバージョン情報とがアンダーバー「＿」でつながれた形で記述される。「Content-Description」フィールドには、当該電子メールが、「トラブル発生通報」であることを示す「Trouble」が記述される。ボディ部には、トラブルの内容が１６進数で表現されるコード化（以下、「トラブルコード」と言う。）されて記述される。なお、トラブルの内容とトラブルコードとが対応つけられたテーブル（不図示）が、ＮＶ−ＲＡＭ２０４に予め格納されており、当該テーブルを参照することによってトラブルコードが得られるようになっている。
【００９５】
電子メール・メッセージが作成されると、メールサーバ５３ＡとＴＣＰコネクションを確立し（ステップＳ８０７）、続くステップＳ８０９で作成した電子メール・メッセージをＳＭＴＰプロトコルによりメールサーバ５３Ａに送信する。電子メールの送信が終了すると、ＴＣＰコネクションを切断し、一連の送信処理を終了する（ステップＳ８１１）。
【００９６】
次に、図２０におけるステップＳ９４５の詳細について、図２２を参照しながら説明する。
本図に示すフローチャートは、実施の形態１における図１２のフローチャートにステップＳ１１２５およびステップＳ１１２７を追加した形となっている。したがって、図１２のフローチャートにおける処理と共通する処理については、同じステップ番号を付してその詳細な説明については省略する。
【００９７】
ステップＳ１１３５が終了すると、画像形成装置が「ＮＧ」信号を出力しているか否かをチェックし（ステップＳ１１２５）、ＮＧ信号が出力されていれば（ステップＳ１１２５でＹｅｓ）、ステップＳ１１３３でバイナリデータに変換されたファームウエアにステップＳ１１３５で読み出した制御モジュール番号を添付して、画像形成装置１１Ａに送信し、該当するフラッシュＲＯＭのファームウエアの書換を実行させる（ステップＳ１１２７）。
【００９８】
一方、画像形成装置がＮＧ信号を出力していない場合には（ステップＳ１１２５でＮｏ）、バイナリデータに変換されたファームウエアを固定記憶装置２０５に格納し（ステップＳ１１３７）、当該格納された書換用ファームウエアで、対象とするフラッシュＲＯＭのファームウエアを書き換える処理を「ファームウエア書換ジョブ」として、ジョブ管理テーブル（図８）の末尾に登録する（ステップＳ１１３９）。
【００９９】
ここまでに説明したように、画像形成装置でトラブルが発生しないと、サービスセンターから書換用ファームウエアは配信されないのであるが、ファームウエアが到着したとき（ファームウエアを受信したとき）には、既に、トラブルが回復している場合が起こり得る。そこで、ファームウエアを受信したときに、画像形成装置のトラブルが継続している場合には、ファームウエアの書換を実行し、トラブルが回復しているときには、他の種類のジョブと同様に、ファームウエアを固定記憶装置２０５に格納すると共に、ジョブ管理テーブルに登録することとしたのである。
【０１００】
続いて、図２０のステップＳ９６５の詳細について、図２３を参照しながら説明する。
本図に示すフローチャートは、実施の形態１における図１３のフローチャートからステップＳ１２３０およびステップＳ１２４１を削除した形となっている。すなわち、実施の形態２では、ジョブ管理テーブルの先頭にファームウエア書換ジョブがきた場合には、他の種類のジョブと同様に取り扱って、実行させることとしたのである。なお、ここで実行されるファームウエアは、画像形成装置にトラブルが発生したのをきっかけとして、サービスセンターから配信されたものの、当該ファームウエアを受信したときには、トラブルは既に回復していたため、固定記憶装置に記憶保持されていたファームウエアである。
【０１０１】
なお、図２３において図１３のフローチャートにおける処理と共通する処理については、同じステップ番号を付してその説明については省略する。
＜センター装置での処理＞
図２４は、センター装置のＣＰＵ９０１において実行される基本処理を示すフローチャートである。
【０１０２】
本フローチャートで示されるプログラムは、センター装置９０のメイン電源の投入によって起動される。先ず、メモリの初期化やパラメータの初期化など、一般的にコンピュータが実行する初期化処理が行われる（ステップＳ２０１）。その後、キーボード９３が備えるファンクションキーＦ１〜Ｆ５の何れかが押下されると（ステップＳ２０３、Ｓ２０７、Ｓ２１１、Ｓ２１５、Ｓ２１９いずれかでＹｅｓ）、押下されたファンクションキーに応じた処理が実行されることとなる。
【０１０３】
Ｆ１キーが押下されると（ステップＳ２０３でＹｅｓ）、電子メールを送信するために必要な情報を入力するための通信設定画面（不図示）がディスプレイ９２に表示される。当該通信設定画面にしたがって、オペレータがキーボード９３などの入力デバイスを介して、メールサーバ８３のＩＰアドレスやコンピュータ９１の電子メールアドレスおよびセンター装置９０（コンピュータ９１）宛の電子メール・メッセージが届いているかどうかの時間間隔（確認間隔）を入力すると、入力されたこれらの情報が固定記憶装置９０４に記憶される（ステップＳ２０５）。固定記憶装置９０４に記憶されたコンピュータ９１の電子メールアドレスは、ファームウエアを電子メール・メッセージとして配信する際の、当該電子メール・メッセージのヘッダ部のFromフィールドのフィールド・ボディに記述されることとなる。また、ここでの確認間隔には、比較的短い間隔、例えば、１分程度が設定される。
【０１０４】
Ｆ２キーが押下されると（ステップＳ２０７でＹｅｓ）、ステップS２０９に進み、ディスプレイ９２に新機種登録画面（不図示）が表示される。当該登録画面にしたがって、オペレータが入力デバイスを介し、新たに登録する機種名および当該機種の画像形成装置の管理に必要な各種カウントデータを入力すると入力された情報は、固定記憶装置９０４に格納される。カウントデータには、感光体ドラムの寿命を推定するために用いるプリント枚数などが含まれる。また、新機種登録画面においては、当該機種の画像形成装置で発生するトラブルの内、ファームウエアの書換の実行対象となるトラブルを特定するためのトラブルコードが選択される。ここでは、ファームウエアの不具合以外が原因で発生するトラブルのトラブルコードを選択することとする。選択されたトラブルコードは、他のトラブルコードと識別できる形で固定記憶装置９０４に格納される。
【０１０５】
Ｆ３キーが押下されたとき（ステップＳ２１１でＹｅｓ）に、ステップＳ２１３でなされる処理は、実施の形態１の図９のフローチャートにおける、Ｆ２キーが押下されたときに（ステップＳ５０７でＹｅｓ）、ステップＳ５０９でなされる処理と同様なので、その説明については省略する。
Ｆ４キーが押下されると（ステップＳ２１５でＹｅｓ）、ディスプレイ９２にトラブル状況が表示される（ステップＳ２１７）。すなわち、トラブル発生通報を行った画像形成装置の機種名とユーザ情報（ユーザ名称、住所、電話番号）、トラブル発生日時などが、そのトラブル内容と共にディスプレイ９２に表示される。なお、Ｆ４キーの操作（押下の有無）とは無関係に、ディスプレイ９２の隅には、現在発生中のトラブル件数が常時表示されている。
【０１０６】
Ｆ５キーが押下されると（ステップＳ２１９でＹｅｓ）、登録されている画像形成装置の選択画面（不図示）となり、当該画面において一の画像形成装置を選択すると、選択された画像形成装置に関する各種の情報（データ）が表示される。すなわち、当該画像形成装置の機種名やユーザ情報、あるいは、各種のカウンタ（トータルカウンタ、用紙サイズ別カウンタ、ＪＡＭカウンタ、トラブルカウンタ、ＰＭカウンタ）の値、および、エレメントデータ（画像形成装置の各種センサーの出力値や制御データ）が、月別または項目別に表示される。
【０１０７】
続いて、ステップＳ２２３では、メールサーバ８３に対してコンピュータ９１宛の電子メール・メッセージが届いているか否かの確認を前回行ってから上記確認間隔が経過したか否かを判断し、経過している場合には、ステップＳ２２５に進み、電子メール・メッセージの有無の確認と有った場合の当該電子メール・メッセージのダウンロード等を実行する。
【０１０８】
図２５は、ステップＳ２２５の詳細を示すフローチャートである。
先ず、メールサーバ８３のＩＰアドレスを基に、メールサーバ８３とのＴＣＰコネクションを確立し（ステップＳ１７０１）、センター装置９０（コンピュータ９１）宛に新しい電子メールメッセージが届いているか否かの確認を行う（ステップＳ１７０３）。
【０１０９】
コンピュータ９１宛の新しい電子メールメッセージが１通も届いていなかった場合には（ステップＳ１７０３でＮｏ）、メールサーバ８３とのＴＣＰコネクションを切断して（ステップＳ１７３１）本ルーチンを終了する。
一方、新しい電子メールメッセージが到着していた場合には（ステップＳ１７０３でＹｅｓ）、メールサーバ８３からＰＯＰ３（Ｐost  Ｏffice  Ｐrotocol  version３）プロトコルに従って当該新着の電子メール・メッセージをダウンロードする。なお、この場合、新着の電子メール・メッセージが複数あった場合でも、到着順に一つの電子メールメッセージだけをダウンロードすることとする。
【０１１０】
電子メール・メッセージのダウンロードが終了すると、当該ダウンロードした電子メールメッセージに対応する、メールサーバ８３内のオリジナルの電子メールメッセージを削除させ（メールサーバ８３にDeleteコマンドを出力し）（ステップＳ１７０７）、メールサーバ８３とのＴＣＰコネクションを切断する（ステップＳ１７０９）。
【０１１１】
続いて、ダウンロードした電子メール・メッセージのボディ部（添付データ）を取り出した後（ステップＳ１７１１）、ボディ部からUS-ASCII文字を抜き出し、これを逆Base64変換してバイナリデータに復元して（ステップＳ１７１３）、これを、固定記憶装置９０４に記憶すると共に、当該電子メールメッセージのヘッダ部の各フィールドに記述された事項も固定記憶装置９０４に記憶する（ステップＳ１７１５）。
【０１１２】
続くステップＳ１７１７では、電子メール・メッセージの「Content-Description」フィールドの記述から、当該電子メールがトラブル通報か否かを判定し、トラブル通報の場合は（ステップＳ１７１７でＹｅｓ）、ボディ部から読み出したトラブルコードが、図２４のステップＳ２０９で選択されたトラブルコードの内のいずれかに該当するか否かを判断する（ステップＳ１７１９）。
【０１１３】
該当すると判定した場合は（ステップＳ１７１９でＹｅｓ）、電子メール・メッセージの「Subject」フィールドの記述から、トラブルの発生した画像形成装置の機種名、制御モジュール番号および当該制御モジュールに組み込まれているファームウエアのバージョン情報を読み出し（ステップＳ１７２１）、続く、ファームウエア更新確認処理（ステップＳ１７２３）に進む。
【０１１４】
一方、ステップＳ１７１７でトラブル通報ではないと判定したり、トラブル通報であるものの、ステップＳ１７１９で選択されたトラブルではないと判定した場合には、受信した電子メール・メッセージにその他の処理（不図示）を行って、本ルーチンを終了する。当該その他の処理は、本発明の主眼とは直接的には関係ないので、その説明については省略する。
【０１１５】
図２６は、上記ステップＳ１７２３の詳細を示すフローチャートである。
先ず、サーバ７１に対し、図２５のステップＳ１７２１で読み出した、機種名、制御モジュール番号およびバージョン情報を通知し、該当する機種の制御モジュールに対応するファームウエアが更新されているか否か、すなわち、新たなバージョンのファームウエアがサーバ７１に格納されているか否かについて問い合わせる（ステップＳ１８０１）。
【０１１６】
その結果、サーバ７１から、ファームウエアが更新されている旨の応答があった場合には（ステップＳ１８０３でＹｅｓ）、サーバ７１に当該トラブルのあった画像形成装置の電子メールアドレス、機種名および制御モジュール番号を通知し、当該新たなファームウエアの送信を指示する（ステップＳ１８０５）。
一方、ファームウエアが更新されていない旨の応答があった場合には（ステップＳ１８０３でＮｏ）、ステップＳ１８０５をスキップしてリターンする。
＜サーバ７１での処理＞
図２７は、書換用ファームウエアの送信に関し、サーバ７１（図１７）のＣＰＵ７０１（図１８）で実行される基本処理を示すフローチャートである。
【０１１７】
本フローチャートで示されるプログラムは、サーバ７１のメイン電源の投入によって起動される。先ず、メモリの初期化やパラメータの初期化など、一般のコンピュータが実行する初期化処理が行われる（ステップＳ１９０３）。その後、各種のキー入力やセンター装置９０（コンピュータ９１）からの指示に応じた処理が行われる。
【０１１８】
Ｆ１キーが押下されると（ステップＳ１９０３でＹｅｓ）、電子メールを送信するために必要な情報を入力するための通信設定画面（不図示）がディスプレイ７２に表示される。当該通信設定画面にしたがって、オペレータがキーボード７３を介して、メールサーバのＩＰアドレス、サーバ７１の電子メールアドレスを入力すると、入力されたこれらの情報が固定記憶装置７０４に記憶される（ステップＳ１９１１）。固定記憶装置７０４に記憶されたサーバ７１の電子メールアドレスは、ファームウエアを電子メール・メッセージとして配信する際の、当該電子メール・メッセージのヘッダ部のFromフィールドのフィールドボディに記述されることとなる。
【０１１９】
センター装置９０から、機種名、制御モジュール番号、および、バージョン情報を伴ったファームウエア更新確認指示を受け付けると（ステップＳ１９０５でＹｅｓ）、固定記憶装置７０４に記憶されているファームウエアのファイル名を検索し、該当する機種および制御モジュールのファームウエアのファイル名を読み出す（ステップＳ１９２１）。読み出したファイル名からバージョン情報を取り出し（ステップＳ１９２３）、取り出したバージョン情報とセンター装置９０から受け付けたバージョン情報とを比較する（ステップＳ１９２５）。比較の結果、両バージョン情報が異なれば、サーバ７１内の該当するファームウエアは更新されていると判断し（新たなバージョンのファームウエアが準備されていると判断し）、同じであれば更新されていないと判断して、その旨を比較結果として、センター装置９０に通知する（ステップＳ１９２７）。
【０１２０】
センター装置９０から、画像形成装置の電子メールアドレス、機種名および制御モジュール番号を伴ったファームウエア送信指示を受け付けると（ステップＳ１９０７でＹｅｓ）、該当するファームウエアの送信を実行する（ステップＳ１９３１）。
図２８は、上記ファームウエア送信処理（ステップＳ１９３１）の詳細を示すフローチャートである。
【０１２１】
先ず、センター装置９０から受け付けた機種名および制御モジュールに該当するファームウエアを固定記憶装置７０４から読み出し、同じくセンター装置９０から受け付けた電子メールアドレスを宛先とし、読み出したファームウエアを添付した電子メール・メッセージを作成する（ステップＳ１６０１）。なお、電子メール・メッセージの書式や作成要領は実施の形態１で説明したのと同様なので、その説明については、省略する。但し、当該電子メール・メッセージのヘッド部のSubjectフィールドのフィールドボディには、機種名と制御モジュール番号に続いて、添付されるファームウエアのバージョン情報が記述される。例えば、機種が「model１」の制御モジュール１用のファームウエアでバージョンが「2.00」の場合のSubjectフィールドは、「Subject:model１＿１＿200.dat」となる。なお、このバージョン情報はボディ部に記述することとしてもよい。
【０１２２】
続いて、メールサーバ８３のＩＰアドレスを基に、メールサーバ８３とのＴＣＰコネクションを確立した後（ステップＳ１６０３）、作成した電子メール・メッセージをＳＭＴＰプロトコルにより送信する（ステップＳ１６０５）。
電子メール・メッセージの送信が終了すると、ＴＣＰコネクションを切断し、一連のファームウエア送信処理を終了する（ステップＳ１６０７）。
【０１２３】
以上説明したように、実施の形態２に係るファームウエアの書換システムによれば、ユーザ側の画像処理装置から（プリンタコントローラ〜メールサーバを経由して）トラブル発生通報がなされると、センター装置では、当該トラブルがファームウエアの不具合によるものか否かの判定が行われる。判定の結果、ファームウエアの不具合以外の原因によるトラブルである場合には、新たなバージョンのファームウエアが準備されていれば、当該書換用ファームウエアが、トラブル通報をした画像処理装置に送信されファームウエアの書換が実行されることとなる。すなわち、本ファームウエア書換システムは、画像処理装置において画像処理が実行できないときを利用して、ファームウエアの書換を実行しようとするものであり、可能な限りファームウエアの実行を妨げることを防止できる。
【０１２４】
また、実施の形態２に係るファームウエアの書換システムによれば、画像処理装置からトラブル発生通報のあったタイミングでセンター装置から当該画像処理装置にファームウエアが配信されることとなるため、画像処理処理装置からセンター装置に対し書換用ファームウエアの有無の確認をする必要がなくなり、その結果、当該画像処理装置からの確認の問い合わせにセンター装置が応答することもなくなる。さらに、センター装置における画像処理装置の管理の一環として行われているトラブル発生通報を利用してファームウエアの配信のタイミングが図られているため、ファームウエア配信要求のみのために画像処理装置からセンター装置にアクセスする必要もない。したがって、画像処理装置およびセンター装置における処理負荷が低減されることとなる。
【０１２５】
上記実施の形態では、画像処理装置で発生したトラブルが、ファームウエアの不具合に起因するものでない場合すべてについて、（新たなバージョンのファームウエアが準備されていれば）、書換用ファームウエアの配信を行うこととした。
しかしながら、上記トラブルの中には、比較的短時間で回復処理がとられるものも含まれるため、上述したように、書換用ファームウエアが配信されたときには、すでにトラブルが回復しているといった事態が発生することが予想される。
【０１２６】
そこで、画像処理が実行できないときを利用してファームウエアの書換を行うといった本実施の形態の趣旨をさらに徹底させるため、書換用ファームウエアの配信対象となるトラブルを、さらに、回復までに要する時間（以下、「復旧時間」と言う。）が所定時間を超えるものに限定することとしてもよい。当該所定時間とは、画像処理装置でトラブルが発生してから、配信されたファームウエアの書換が終了するまでに要する平均的な時間（以下、単に「平均書換時間」と言う。）を言う。前記復旧時間と平均的書換時間とは、統計的に割り出すことが可能で、割り出された平均的書換時間よりも長い復旧時間を要するトラブルの発生通報があった場合に限って（新たなバージョンのファームウエアが準備されていることが前提であるが）、書換用ファームウエアを配信することとしてもよい。当該トラブルは、該当するトラブルのトラブルコードを選択することによって（図２４、ステップS２０９）特定される。
【０１２７】
さらに一層上記本実施の形態の趣旨を徹底させるため、ユーザーでは対処できない、いわゆるサービスマンコールの対象となるトラブルが発生した場合に限って、書換用ファームウエアを配信することとしてもよい。
以上、本発明を実施の形態に基づいて説明してきたが、本発明は上記した実施の形態に限定されないことは言うまでもなく、例えば、以下のような形態とすることもできる。
（１）上記実施の形態では、プリンタコントローラと画像形成装置とを別個独立して設けたが、画像形成装置にプリンタコントローラを内蔵させ、両者を一体化した構成としてもよい。
（２）上記（１）のようにした場合には、制御モジュール１（ＣＰＵ１１１）を削除し、制御モジュール１が担っていた処理をプリンタコントローラ（ＣＰＵ２０１）で行うようにしてもよい。
（３）上記実施の形態では、画像形成装置の制御部全体を４個の制御モジュール（制御部）で構成したが、当該制御部全体を構成する制御モジュール（制御部）の数はこれに限らず、１個、２個、若しくは３個、または、５個以上でも構わない。
【０１２８】
【発明の効果】
以上説明したように、本発明に係る画像処理装置によれば、画像処理が実行できなくなった場合にファームウエアの書換実行されることとなる。すなわち、元々画像処理の実行できないときを利用してファームウエアの書換がなされるので、画像処理ジョブの実行が妨げられることがない。
【０１２９】
また、本発明に係るファームウエア配信装置において実行されるプログラムによれば、画像処理装置から画像処理の実行ができなくなるトラブルが発生したときになされる当該トラブルの内容の通知を受けたタイミングで、書換用のファームウエアを当該画像形成装置に配信するので、可能な限り、画像形成装置における画像処理の実行が妨げられることを防止できる。
【図面の簡単な説明】
【図１】実施の形態１に係るファームウエア書換システムの概略構成を示す図である。
【図２】画像形成装置の制御部全体の構成を示すブロック図である。
【図３】センター装置の構成を示すブロック図である。
【図４】ファームウエアが添付された電子メール・メッセージの一例を示す図である。
【図５】センター装置の固定記憶装置に格納されている登録情報テーブルを示す図である。
【図６】クライアント装置の構成を示すブロック図である。
【図７】プリンタコントローラの構成を示すブロック図である。
【図８】プリンタコントローラのＮＶ−ＲＡＭに格納されているジョブ管理テーブルを示す図である。
【図９】実施の形態１に係るセンター装置において実行される基本処理を示すフローチャートである。
【図１０】実施の形態１に係るセンター装置において実行されるファームウエア送信処理を示すフローチャートである。
【図１１】実施の形態１に係るプリンタコントローラにおいて実行される基本処理を示すフローチャートである。
【図１２】実施の形態１に係るプリンタコントローラにおいて実行される電子メールのダウンロード処理を示すフローチャートである。
【図１３】実施の形態１に係るプリンタコントローラにおいて実行される、画像形成装置に対するジョブの送信処理を示すフローチャートである。
【図１４】実施の形態１に係るプリンタコントローラにおいて実行される、画像形成装置に対するファームウエア書換ジョブの送信処理を示すフローチャートである。
【図１５】実施の形態１に係る画像形成装置において実行される基本処理を示すフローチャートである。
【図１６】画像形成装置において実行されるファームウエア書換処理を示すフローチャートである。
【図１７】実施の形態２に係るファームウエア書換システムの概略構成を示す図である。
【図１８】実施の形態２に係るサーバの構成を示すブロック図である。
【図１９】実施の形態２に係る画像形成装置において実行される基本処理を示すフローチャートである。
【図２０】実施の形態２に係るプリンタコントローラにおいて実行される基本処理を示すフローチャートである。
【図２１】実施の形態２に係るプリンタコントローラにおいて実行される、センター装置へのトラブル通報の送信処理を示すフローチャートである。
【図２２】実施の形態２に係るプリンタコントローラにおいて実行される電子メールのダウンロード処理等を示すフローチャートである。
【図２３】実施の形態２に係るプリンタコントローラにおいて実行される、画像形成装置に対するジョブの送信処理を示すフローチャートである。
【図２４】実施の形態２に係るセンター装置において実行される基本処理を示すフローチャートである。
【図２５】実施の形態２に係るプリンタコントローラにおいて実行される電子メールのダウンロード処理等を示すフローチャートである。
【図２６】実施の形態２に係るプリンタコントローラにおいて実行されるファームウエア更新確認処理等を示すフローチャートである。
【図２７】実施の形態２に係るサーバにおける基本処理を示すフローチャートである。
【図２８】実施の形態２に係るサーバにおいて実行されるファームウエア送信処理を示すフローチャートである。
【符号の説明】
１１Ａ、１２Ａ、…、１１Ｂ、１２Ｂ、…    画像形成装置
２１Ａ、２２Ａ、…、２１Ｂ、２２Ｂ、…    プリンタコントローラ
４１Ａ、４１Ａ、…、４１Ｂ、４２Ｂ、…    画像処理装置
７１  サーバー
８３  メールサーバ
９０  センター装置
１１２、１２２、１３２、１４２    フラッシュＲＯＭ
１１１、１２１、１３１、１４１、２０１    ＣＰＵ
【図１】
0004250881.tif 000002
【図２】
0004250881.tif 000003
【図３】
0004250881.tif 000004
【図４】
0004250881.tif 000005
【図５】
0004250881.tif 000006
【図６】
0004250881.tif 000007
【図７】
0004250881.tif 000008
【図８】
0004250881.tif 000009
【図９】
0004250881.tif 000010
【図１０】
0004250881.tif 000011
【図１１】
0004250881.tif 000012
【図１２】
0004250881.tif 000013
【図１３】
0004250881.tif 000014
【図１４】
0004250881.tif 000015
【図１５】
0004250881.tif 000016
【図１６】
0004250881.tif 000017
【図１７】
0004250881.tif 000018
【図１８】
0004250881.tif 000019
【図１９】
0004250881.tif 000020
【図２０】
0004250881.tif 000021
【図２１】
0004250881.tif 000022
【図２２】
0004250881.tif 000023
【図２３】
0004250881.tif 000024
【図２４】
0004250881.tif 000025
【図２５】
0004250881.tif 000026
【図２６】
0004250881.tif 000027
【図２７】
0004250881.tif 000028
【図２８】
0004250881.tif 000029