(57)【要約】      （修正有）【課題】ファームウェアの更新において、記憶領域を節約し、更新作業の処理時間を短縮する。【解決手段】オプションの構成に応じて実行可能なオプション機能を設定するオプション機能設定部２３３と、オプション機能に対応して２以上のモジュールにモジュール化された機器制御ファームウェアを更新可能に格納するファームウェア格納部２０８と、更新のために提供される新バージョンのファームウェアを取得するファームウェア取得部２３０と、前記オプション機能の設定に応じて新バージョンのファームウェアからモジュールを抽出するモジュール抽出部２３２と、抽出したモジュールをファームウェア格納部に格納しあるいはすでに格納されている現バージョンのモジュールを更新するファームウェア更新部２３１とを備える。【選択図】図２
2006039848.tif 000002
【特許請求の範囲】
【請求項１】
オプションの構成に応じて実行可能なオプション機能を設定するオプション機能設定部と、
オプション機能に対応して２以上のモジュールにモジュール化された機器制御ファームウェアを更新可能に格納するファームウェア格納部と、
更新のために提供される新バージョンのファームウェアを取得するファームウェア取得部と、
前記オプション機能の設定に応じて新バージョンのファームウェアからモジュールを抽出するモジュール抽出部と、
抽出したモジュールをファームウェア格納部に格納しあるいはすでに格納されている現バージョンのモジュールを更新するファームウェア更新部と
を備えるデータ処理装置。
【請求項２】
前記ファームウェア更新部は、抽出された各モジュールがファームウェア格納部内の実質的に連続した記憶領域に配置されるように各モジュールへの参照情報を処理する請求項１記載のデータ処理装置。
【請求項３】
前記ファームウェア取得部は、新バージョンのファームウェアの全モジュールを格納する２次ファームウェア格納部を有し、
前記モジュール抽出部は、２次ファームウェア格納部に格納されたファームウェアからオプション機能の設定に対応したモジュールを抽出し、
前記ファームウェア更新部は、抽出された各モジュールへの参照情報を処理してファームウェア格納部の実質的に連続した領域に配置する請求項１記載のデータ処理装置。
【請求項４】
前記ファームウェア取得部は、新バージョンのファームウェアの少なくとも一部を格納する２次ファームウェア格納部を有し、
前記モジュール抽出部は、新バージョンのファームウェアのモジュールのうちオプション機能の設定に対応したモジュールだけを抽出して、取得部に取得させて２次ファームウェア格納部に格納させ、
前記ファームウェア更新部は、２次ファームウェア格納部に格納された各モジュールへの参照情報を処理してファームウェア格納部の実質的に連続した領域に配置する請求項１記載のデータ処理装置。
【請求項５】
前記ファームウェアが、各モジュールの先頭アドレスを示すモジュール参照テーブルと、モジュール内の各エントリーポイントを引数を用いて参照するための前記先頭アドレスから各エントリーポイントへのオフセット情報を示すテーブルとを含み、
ファームウェア更新部は、各モジュールをファームウェア格納部に再配置する場合に、配置に応じてモジュール参照テーブルの参照情報を更新する請求項２〜４のいずれか一つに記載のデータ処理装置。
【請求項６】
モジュール抽出部が、抽出したモジュールあるいは抽出しないモジュールに関する情報を表示する表示部を更に備える請求項１記載のデータ処理装置。
【請求項７】
前記モジュール抽出部は、抽出しなかったモジュールを保持しておくために当該モジュールの圧縮をおこなう請求項３記載のデータ処理装置。
【請求項８】
請求項１〜７のいずれか一つに記載のデータ処理装置を含んでなる画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ処理装置およびそれを含んでなる画像形成装置に関する。より詳細には、オプション機能を有し、オプション機能に対応してモジュール化された機器制御ファームウェアを用いて処理を行うデータ処理装置およびそれを含んでなる画像形成装置に関する。
【背景技術】
【０００２】
プリンタなど、マイクロコンピュータを用いた機器の制御ソフトウェア（ファームウェア）は、従来は、そのすべてを機器内のＲＯＭに格納していた。このような従来の技術では、機能の追加や不具合の修正のために一部のファームウェアに変更があった場合でもファームウェア全体の更新が必要であった。
【０００３】
そのため、これに対して、印刷を行う都度、ホストＰＣが、機器が保有するモジュールの情報を取得し、印刷処理実行に必要なファームウェアのモジュールのみをホストＰＣからダウンロードする手法が知られている（例えば、特許文献１参照）。しかし、ダウンロードするデータ量が大きいとネットワークに負荷がかかり、ホストＰＣ側にも負荷がかかる。結果的に、印刷処理に時間を要してしまう。また、ファームウェアのモジュールは、都度の印字処理の選択項目に対応して構成されるため、印字の各設定に対応して細かく細分化され、多くの機能やオプション構成を有する装置では、モジュールを選択し、ダイナミックリンクする処理が複雑化してしまう。
【０００４】
また、ネットワークを介して画像形成装置のファームウェアのバージョンを定期的にモニタし、画像形成装置の電源投入時、必要に応じてファーウェアをダウンロードする手法が知られている（例えば、特許文献２参照）。しかし、この場合も、ファームウェアのすべてを機器内のＲＯＭに格納しており、機能の追加や不具合の修正、一部のファームウェアに変更があった場合、ファームウェア全体の更新が必要であった。
【特許文献１】特開２００１−６７２２８号公報
【特許文献２】特開２００１−２１６１０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
データ処理装置、特に画像形成装置においては近年多機能化が進んで種々のオプション機器、オプション機能が提供され、ユーザはそれぞれの使用目的や処理量あるいは要求する処理速度に応じて装置にまつわる種々のオプションを選択できるようになってきている。
【０００６】
その一方で、これらの機器を制御するためのファームウェアは容量が増大し、また機能の追加や不具合の修正のためにファームウェアを更新できることがますます必要とされている。メーカー側は、新バージョンのファームウェアを個々のオプション構成別に提供するよりも、あらゆる機器構成に対応させて提供する方が便宜であるし、ファームウェアの更新作業を行うユーザあるいはサービスエンジニアにとっても、選択が単純になって便宜である。しかし、全てのモジュールを機器内に格納し、都度更新するのではファームウェアを格納するための記憶容量が大きくなり不経済である。また、更新時の処理量が多いために、時間を要してしまう。各機器のオプション構成に合わせて必要なモジュールのみを格納し、バージョンの更新を行うことが自動的に実現される装置が望まれている。
【０００７】
この発明は、このような事情を考慮してなされたものであり、装置のオプション構成に応じて必要なモジュールのみを格納し、更新することのできるデータ処理装置を提供するものである。
【課題を解決するための手段】
【０００８】
この発明は、オプションの構成に応じて実行可能なオプション機能を設定するオプション機能設定部と、オプション機能に対応して２以上のモジュールにモジュール化された機器制御ファームウェアを更新可能に格納するファームウェア格納部と、更新のために提供される新バージョンのファームウェアを取得するファームウェア取得部と、前記オプション機能の設定に応じて新バージョンのファームウェアからモジュールを抽出するモジュール抽出部と、抽出したモジュールをファームウェア格納部に格納しあるいはすでに格納されている現バージョンのモジュールを更新するファームウェア更新部とを備えるデータ処理装置を提供する。
【発明の効果】
【０００９】
この発明のデータ処理装置は、オプション機能の設定に応じて新バージョンのファームウェアからモジュールを抽出するモジュール抽出部と、抽出したモジュールをファームウェア格納部に格納しあるいはすでに格納されている現バージョンのモジュールを更新するファームウェア更新部とを備えるので、必要なモジュールのみを格納し更新することができ、全てのモジュールを格納して記憶する場合に比べてファームウェアを格納するための記憶領域が節約でき、更新作業の処理量を減らして処理時間を短縮することができる。
また、ファームウェアが、オプション機能に応じてモジュール化されているので、各印字設定に対応してモジュール化される場合に比べてモジュール選択の論理が単純であり、ファームウェアをモジュール化しやすく、モジュール選択を自動化しやすい。また、モジュール選択の判断を誤るおそれも少ない。
【発明を実施するための最良の形態】
【００１０】
この発明のデータ処理装置は、オプションの構成に応じて実行可能なオプション機能を設定するオプション機能設定部と、オプション機能に対応して２以上のモジュールにモジュール化された機器制御ファームウェアを更新可能に格納するファームウェア格納部と、更新のために提供される新バージョンのファームウェアを取得するファームウェア取得部と、前記オプション機能の設定に応じて新バージョンのファームウェアからモジュールを抽出するモジュール抽出部と、抽出したモジュールをファームウェア格納部に格納しあるいはすでに格納されている現バージョンのモジュールを更新するファームウェア更新部とを備える。
【００１１】
ここで、データ処理装置は、例えば画像データを処理する装置であってもよいがこれに限定されず、装置に格納されたファームウェアに基づいてデータを処理する装置であればよい。また、オプションとは装置の本体に対して機能の拡張を目的として付加される機器およびファームウェアをいう。この明細書でいうオプションは、機器の付加が不要でファームウェアの付加のみによって実現される機能を含んでいてもよい。
【００１２】
前記ファームウェア更新部は、抽出された各モジュールがファームウェア格納部内の実質的に連続した記憶領域に配置されるように各モジュールへの参照情報を処理してもよい。ここで、実質的に連続した記憶領域とは、前のモジュールの末尾のアドレスと次のモジュールの先頭のアドレスが必ずしも連続したアドレスに配置されなくてもよいが、間隔が最小になるように配置することをいう。例えば、プログラムコードのワードアラインメント配置が要求されるＣＰＵでは、前のモジュールの末尾のコードが偶数アドレスの場合、次のモジュールの先頭も偶数アドレスに配置されるので、モジュール間には１バイトの間隔が空く。このような回路構成等の制約によって生じる間隔は、実質的に連続であると解する。
【００１３】
上記構成によれば、ファームウェアが、実質的に連続した記憶領域に配置されるのでファームウェアを格納するための記憶領域に不要な空き領域ができず、記憶容量を節約することができる。
【００１４】
また、前記ファームウェア取得部は、新バージョンのファームウェアの全モジュールを格納する２次ファームウェア格納部を有し、前記モジュール抽出部は、２次ファームウェア格納部に格納されたファームウェアからオプション機能の設定に対応したモジュールを抽出し、前記ファームウェア更新部は、抽出された各モジュールへの参照情報を処理してファームウェア格納部の実質的に連続した領域に配置するようにしてもよい。
【００１５】
あるいはまた、前記ファームウェア取得部は、新バージョンのファームウェアの少なくとも一部を格納する２次ファームウェア格納部を有し、前記モジュール抽出部は、新バージョンのファームウェアのモジュールのうちオプション機能の設定に対応したモジュールだけを抽出して、取得部に取得させて２次ファームウェア格納部に格納させ、前記ファームウェア更新部は、２次ファームウェア格納部に格納された各モジュールへの参照情報を処理してファームウェア格納部の実質的に連続した領域に配置するようにしてもよい。このようにすれば、オプション機能の設定に対応したモジュールだけが抽出されて取得されるので、新バージョンのファームウェアすべて取得する場合に比べて、２次ファームウェア格納部に新バージョンのファームウェアを転送する時間が短くできる。また、２次ファームウェア格納部の容量が少なくてすむ。
【００１６】
前記ファームウェアが、各モジュールへの参照情報を示す参照テーブルを含み、ファームウェア更新部は、各モジュールをファームウェア格納部に再配置する場合に、配置に応じて参照テーブルの参照情報を更新するようにしてもよい。このようにすれば、ファームウェア更新部による各モジュールの再配置が、参照テーブルの更新によって実現でき、単純な処理でモジュールの再配置を実現することができる。
【００１７】
モジュール抽出部が抽出したモジュールあるいは抽出しないモジュールに関する情報を表示する表示部を更に備えるようにしてもよい。このようにすれば、選択されたモジュールあるいは選択されなかったモジュールに関する情報が表示されるので、その時点のオプション設定を確認することができ、例えば、設定忘れ等がないかどうかの確認をおこなうことができる。
【００１８】
前記モジュール抽出部は、抽出しなかったモジュールを保持しておくために当該モジュールの圧縮を行うようにしてもよい。このようにそれば、後でオプションを追加する際にファームウェアを追加取得する必要がなく、しかも使用されないモジュールを格納するために必要な記憶容量を圧縮処理によって減らすことができる。
また、この発明の画像形成装置は、前述したデータ処理装置のいずれかを含んでいてもよい。
以下、図面に示す実施形態に基づいてこの発明を詳述する。
【００１９】
（実施の形態１）
この実施の形態では、この発明の装置の構成例について説明する。図１は、この発明のデータ処理装置の一実施形態である、デジタル複合機（ＭＦＰまたはＭｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌｓともいう）のデータ処理部の構成を示すブロック図である。図２は、この発明のデータ処理装置のファームウェア更新に関する機能を示すブロック図である。また、図３は、この発明の画像形成装置の一実施形態として、図１のデータ処理部を含む電子写真方式のデジタル・フルカラー複合機の構成を示す断面図である。
【００２０】
図１において、デジタル複合機の本体データ処理部２２０が含む各ブロックのうち、スキャナ部２０５は読み込んだ原稿の画像データを処理するブロックで、例えば、ＡＳＩＣで構成される画像処理回路とＣＰＵ２０３に前記ＡＳＩＣを制御させて原稿画像の処理を実現するためのファームウェアなどで構成される。
Ｗｅｂサーバ２０４は、原稿画像データをＷｅｂサイト上のデータとしてネットワーク上の外部機器からアクセスさせるためのブロックであり、ＣＰＵ２０３に前記機能を実現させるためのファームウェアで構成することができる。
印字部２０６は、読み込んだ原稿画像もしくはネットワークを介して受信する印字データを処理して印刷させるブロックであり、ＣＰＵ２０３に前記機能を実現させるためのファームウェアで構成することができる。
操作表示部２０７は、データ処理にまつわるメッセージを表示したり、ユーザに操作指示を入力させたりするためのブロックであり、液晶やＬＥＤを用いた表示器と操作キー、それらを用いてＣＰＵ２０３に前記機能を実現させるためのファームウェアで構成することができる。
【００２１】
主記憶部２１１は、前述のスキャナ部２０５、Ｗｅｂサーバ２０４、印字部２０６や操作表示部２０７の処理を行うために原稿の画像データ、印字データあるいは表示データを一時的に格納するブロックであり、ＤＲＡＭなどを用いて実現することができる。また、主記憶部２１１は、ファームウェアを更新する際に、取得したファームウェアを一時的に格納する２次ファームウェア格納部としても機能する。
ファームウェア格納部２０８は、取得したファームウェアを格納するブロックであり、例えば、フラッシュメモリなどの記憶素子を用いて実現することができる。
ＣＰＵ（中央処理装置）２０３は、ファームウェア格納部２０８に格納されたファームウェアに基づいて画像データ、印字データを処理し、さらにファームウェアの更新処理を行うブロックであり、マイクロコンピュータ、あるいはマイクロプロセッサなどのＣＰＵに相当する。なお、ＣＰＵは、実効命令を取得するために直接ファームウェア格納部２０８をアクセスしてもよいが、例えば、電源投入時にファームウェア格納部２０８に格納されたファームウェアを主記憶部２１１上にロードし、ＣＰＵ２０３が命令を実行するときに主記憶部２１１上にロードされたファームウェアをアクセスするように構成されていてもよい。主記憶部２１１は、ファームウェア格納部２０８よりもアクセスの速い素子を用いて回路を構成されることが多く、前記の構成にすれば、ＣＰＵ２０８が命令フェッチの都度ファームウェア格納部２０８をアクセスするよりも高速に処理を行うことができるからである。
【００２２】
通信制御部２０２は、印字データや新バージョンのファームウェアを外部のホスト２００から通信ネットワーク２０１を介して取得するためのブロックであり、通信制御回路やファームウェアから構成することができる。
また、本体−オプション通信制御部２１２は、本体に付加されるオプションとの通信を行うブロックであって、通信制御回路やファームウェアから構成することができる。
また、オプション部２２１が含む各ブロックのうち、オプション−本体通信制御部２０９は、オプションと本体との通信を制御するブロックで、通信制御回路やファームウェアから構成することができる。オプション制御部２１０は、オプションを制御するブロックで、入出力回路、ＣＰＵとファームウェアから構成することができる。
【００２３】
図２は、前述のデータ処理装置のファームウェア更新に関する各部の機能を示している。図２で、ファームウェア取得部２３０は、外部から提供される新バージョンのファームウェアを取得して、２次ファームウェア格納部２１１へ格納する。
また、オプション機能設定部２３３は、データ処理装置のオプション装着状態を判定し、それに応じてオプション機能を設定する。
モジュール抽出部２３２は、オプション機能の設定に応じてファームウェア取得部２３０が取得しようとしている新バージョンのファームウェア、あるいは取得されて２次ファームウェア格納部２１１に格納されたファームウェアの中から必要なモジュールを抽出する。
さらにまた、ファームウェア更新部２３１は、モジュール袖手粒２３２によって抽出されたモジュールをファームウェア格納部２０８へ格納する。
【００２４】
前記ファームウェア取得部２３０、ファームウェア更新部２３１、モジュール抽出部２３２、オプション機能設定部２３３は、図１に示すＣＰＵ２０３に、ファームウェアに基づく処理を実行させることによってそれらの機能を実現することができる。
【００２５】
次に、図３に示すデジタル・フルカラー複合機の原稿画像読み取りから印字出力までのデータの流れを説明する。スキャナ部１０７０中の露光部１００２に原稿が載置され、原稿の読み取り面を第１露光走査部１００３が走査して露光し、原稿に反射した光を第２露光走査部１００４、光学レンズ１００５を経てイメージセンサ１００６へ導く。イメージセンサ１００６はセンサ面上に結像した原稿画像を電気的な画像データの信号に変換する。そして、画像データは、図１の本体データ処理部２２０のスキャナ部２０５へ入力される。入力された画像データは、スキャナ部２０５で処理され、画像データとしてＷｅｂサーバ２０４に格納されてネットワークを介して外部の機器からアクセスできるようにされたり、印字部２０６へ送られて印字処理されたりする。印字処理をする場合、画像データは印字部２０６から印刷部（プリンタ）１０７１が備えるブラック用レーザ走査ユニット（以下LSUという）１０１５やイエロー作像ユニット１０２１、マゼンタ作像ユニット１０３１、シアン作像ユニット１０４１に含まれるＬＳＵへ転送する画像データに変換されて転送される。
【００２６】
図３に示す印刷部１０７１は、プリンタエンジンの一態様である電子写真式のフルカラープリンタの例である。本体データ処理部２２０で処理されたブラックのプリントデータは、LSU１０１５内のレーザ素子（図示せず）への信号が入力され、LSU１０１５からのレーザ光が感光体１０１３の表面を走査し、感光体１０１３の表面上に静電潜像が形成される。形成された潜像は、現像部１０１７によって現像され、イメージ領域にトナーを付着させる。感光体表面のイメージ領域に付着したトナーは第１転写部１０１９で転写ベルト１０５０に転写される。以上がブラック（Ｋ）のプリントデータについての説明であるが、カラーデータの場合はイエロー（Ｙ）、マゼンタ（Ｍ）、シアン（Ｃ）の各色について同様の作像処理が行われ、転写ベルト１０５０に転写される。これらの処理を行う部分は図３の点線で描かれた矩形内に配置された各色の作像ユニット１０２１、１０３１、１０４１である。このようにして転写ベルト１０５０上に転写された各色のトナーは第２転写部１０１２で、用紙トレイ１０１０から給送された用紙に転写された後、定着部１０５２で溶されて色が混ぜ合わされた状態で用紙に定着され、出紙部１０５５へ出力される。
【００２７】
（実施の形態２）
この実施の形態では、本体データ処理部２２０のファームウェアの構造と、ファームウェアの更新について説明する。図３に示す印刷部１０７１は本体のみの構成であるが、機能拡張のために印字出力された用紙を仕分けするソータ、自動両面印字を可能にする両面機構、出力した用紙をステープルするステープラーなどのオプションが用意されている。ユーザは、それぞれの使用形態に応じてそれらのオプションを選択して装着することができる。
【００２８】
ファームウェアは、本体のみの処理に関するモジュールと、これらのオプション機器を用いた場合の処理に関するモジュールとを含んでおり、それらはモジュール化されている。図４は、全てのモジュールを含むファームウェアをファームウェア格納部格納した場合のアドレス配置を模式的に示す説明図である。図中に示す横長の矩形がファームウェアのアドレス配置であり、左端が下位アドレス側、右端が上位アドレス側である。ファームウェアは左端から右端まで実質的に連続した領域に配置されるが、複数のモジュールを含み、それらのモジュールはオプション機能に対応してモジュール化されている。即ち、本体のみの処理に関するモジュール１０１、１０３、１０５、１０７、１０９、１１１、ソータの処理に関するモジュール１００、１１０、両面機構の処理に関するモジュール１０２およびステープラーの処理に関するモジュール１０４，１０６，１０８に分かれている。
【００２９】
新バージョンのファームウェアを提供する場合、提供する側は全てのオプションに対応したファームウェアを提供し、ファームウェアを取得する時点でそれぞれの装置に装着されているオプションに応じて必要なモジュールを更新すればよい。例えば、ソータ、両面機構は装着されているが、ステープラーが装着されていない装置では、ステープラーを除いたモジュールを取得すればよい。この場合、ステープラーに関するモジュールが除かれた部分を不連続な空き領域とせず、互いのモジュール間の間隔を詰めて配置することができれば、ファームウェア格納部の記憶容量を節約することができる。
【００３０】
図５は、ステープラーを含まない装置のファームウェアを、モジュール間が不連続にならないように詰めて配置した様子を示す説明図である。このようにすれば、ステープラーのモジュール分だけ、ファームウェアを格納する記憶領域を節約することができる。しかし、図５のように、モジュールを詰めて配置した場合に、各モジュール内のエントリーポイントを正しく参照することができるようにしなければならない。従来のファームウェアではこのような再配置処理を想定していないために、モジュール配置を変えるとモジュールの外部からエントリーポイントを正しく参照することができない。
【００３１】
この発明の装置に係るファームウェアは、モジュールの再配置後も、モジュールの外部からエントリーポイントを正しく参照できるように、各モジュールの先頭アドレスを示すモジュール参照テーブルと、モジュールの先頭からそのモジュール内の各エントリーポイントへのオフセットをテーブルにして引数を用いて各エントリーポイントを参照するためのテーブルとを含む。
【００３２】
図６は、モジュール参照テーブルと各エントリーポイントを参照するためのテーブルの構造を模式的に示す説明図である。図６で、本体処理モジュール１２１には、図５のモジュール１０１，１０３，１０５，１０７，１０９，１１１に相当する処理が格納されている。また、ソータ処理モジュール１２２には、図５のモジュール１００、１１０に相当する処理が格納されており、両面機構処理モジュール１２３には、図５のモジュール１０２に相当する処理が格納されている。
【００３３】
そして、オプション機能関数コール部１２１は、各オプションモジュールの先頭アドレスを示すモジュール参照テーブルと、モジュール内の各エントリーポイントへのオフセットを示すテーブルを含む。モジュール参照テーブルのうち、この装置に装着されていないステープラー処理のモジュールはファームウェア格納部２０８に格納されないので、参照はアドレスは0x00000000である。ソータ処理モジュール、両面機構処理モジュールに対しては、それらのモジュールが配置される先頭アドレスが格納される。例えば、両面機構処理モジュールの先頭アドレスが0xZZZZZZZZ（各Zは任意の１６進数を示す）である。一例として、両面機構処理モジュール内の関数を実行する場合を考える。その関数のエントリーポイントが図６に示すＡ３であり、その関数を参照するための引数として、モジュールを示す引数が２、モジュール内のエントリーポイントを示す引数が２であるとする。オプション機能関数を参照する手順として、まずモジュール参照テーブルを、モジュールを示す引数を用いて参照し、両面機構処理モジュールの先頭アドレス0xZZZZZZZZを得る。次に、エントリーポイントを示す引数を用いて、両面機構処理モジュール内のオフセットを示すテーブルを参照し、Ａ３へのオフセット0x0000NNNN（各Nは任意の１６進数を示す）を得る。そして、両者の和、即ち0xZZZZZZZZ+0x0000NNNNのアドレスに配置されている目的のエントリーを参照する。前述の実施形態では、モジュールを参照する引数とモジュール内のエントリーポイントを参照する引数がある場合を例示して説明したが、引数は一つだけであってもよい。この場合、例えば引数をいくつかの範囲に分割し、各範囲を特定のモジュールと対応させてもよい。また、前述の実施形態では、モジュールのオフセットが４桁の１６進数で表現されているが、これに限定されない。
【００３４】
すべてのオプション機能の関数コールは、引数を用いて行い、新バージョンのモジュールを提供する際に、各モジュールのサイズ情報を付加しておく。引数は、新バージョンのファームウェアを提供する時点で各エントリーポイントに対して一意的に割り当てられている。モジュール内のオフセットも、新バージョンのファームウェアを提供する時点で確定している。新バージョンを取得した際に、各装置のファームウェア更新部は、必要なモジュールだけを配置した後に、各モジュールのサイズ情報を用いて先頭アドレス、即ち、モジュール参照テーブルの値を決定する。
【００３５】
（実施の形態３）
この実施の形態では、ファームウェアを更新する手順の一例を説明する。図７は、この発明のデータ処理装置のファームウェア更新手順の一例を示すフローチャートである。フローチャートの各処理には処理のステップが識別できるように符号を付してある。
【００３６】
ファームウェアを更新する際に、まず図２に示すファームウェア取得部２３０が、新バージョンのバームウェアを取得して主記憶部２１１にダウンロードする（ステップＳ１０）。新バージョンのファームウェアは、例えばネットワーク上のサーバからダウンロードしてもよいし、ＵＳＢやパラレルインターフェースを介して接続されたホストからダウンロードしてもよい。あるいは、装置がソケット端子を備え、ソケットに装着されたＲＯＭやデータカードなどからダウンロードするようにしてもよい。ファームウェアのダウンロード後、正常にダウンロードが行われたかどうかのチェックを行う（ステップＳ１１）。これは、例えばダウンロードしたファームウェアのパリティーチェックやサムチェックなどで判定することができる。ダウンロードが正常に行われた場合、ルーチンはステップＳ１２へ進む。異常終了の場合は以後の処理を行わない。この場合、異常を知らせるメッセージを表示してユーザの再操作を促すようにしてもよい。ステップＳ１２で、オプション機能設定部２３３が装置のオプション構成を判定する。装置に全てのモジュールが装着されている場合、ルーチンはステップＳ１３へ進み、モジュール抽出部２３２は、全てのモジュールを選択する。一方、装置に一部のオプションが装着されている場合、ルーチンはステップＳ１４へ進み、モジュール抽出部２３２は、装着オプションに対応するモジュールを抽出する。あるいは、まったくオプションが装着されていない場合には、ルーチンはステップＳ１５へ進み、モジュール抽出部２３２は、本体に関するモジュールのみを選択する。
【００３７】
前記モジュールが選択された後、選択したモジュールに関する表示を行う（ステップＳ１６）。この表示は装置が内部的に行ったモジュール選択を参考情報としてユーザに知らせるものであってもよいし、ユーザの確認を得て次のステップへ進むための選択入力を求めるものであってもよい。逆に、ユーザが不要と考えれば表示を省略してもよい。
【００３８】
前記表示の後、ファームウェア更新部２３１は、取得して２次ファームウェア格納部２１１に格納されたファームウェアに付加されている各モジュールの先頭アドレス情報とサイズ情報とを読み出す（ステップＳ１７）。前記アドレス情報から格納されているモジュールの先頭を知り、前記サイズ情報から各モジュールのサイズを知る。これらの情報は、モジュール単位でファームウェア格納部２０８に再配置して格納するために利用する。また、前記情報に基づいて、各モジュールの再配置に対応するようにモジュール参照テーブルを更新する（ステップＳ１８）。そして、前記モジュール参照テーブルを含むオプション機能関数コール部と選択された各モジュールとをファームウェア格納部２０８に格納する（ステップＳ１９）。
【００３９】
次に、モジュール抽出部は、将来オプション構成を変えたときのために抽出しなかったモジュールを圧縮して格納しておくかどうかを調べ（ステップＳ２０）、格納しておく場合には、非選択モジュールを圧縮してファームウェア格納部２０８に格納する（ステップＳ２１）。このとき、圧縮された状態での非選択モジュールの先頭アドレスと圧縮状態でのサイズ情報を付加しておく。将来オプションが追加された場合は、追加されたオプションに対応する圧縮モジュールを前記付加情報に基づいて２次ファームウェア格納部２１１に展開し、本体及びそれまでに使用しているオプションのモジュールと共に２次ファームウェア格納部２１１上で再配置してからファームウェア格納部２０８に格納すればよい。  このようにすれば、オプション構成が変わっても、その都度ファームウェアをダウンロードする必要がない。
【００４０】
前述のようにして、ファームウェア格納部２０８には、オプション構成に応じたモジュールだけが格納され、装着されていないオプションのモジュールは格納されないか、あるいは圧縮されて格納されるので、実行されないオプションのモジュールによってファームウェア格納部２０８の記憶領域が無駄に占有されることがない。処理実行時に、ファームウェアを主記憶部２１１にロードする構成では、主記憶部２１１の領域を無駄に占有することもない。
【００４１】
（実施の形態４）
この実施の形態では、ファームウェアを更新する手順の実施の形態３とは異なる一例を説明する。図８は、この実施形態を示すフローチャートである。
ファームウェアを更新する際に、まずオプション機能設定部２３３が装置のオプション構成を判定する。装置に全てのモジュールが装着されている場合、ルーチンはステップＳ３１へ進み、モジュール抽出部２３２は、全てのモジュールを選択する。一方、装置に一部のオプションが装着されている場合、ルーチンはステップＳ３２へ進み、モジュール抽出部２３２は、装着オプションに対応するモジュールを抽出する。あるいは、まったくオプションが装着されていない場合には、ルーチンはステップＳ３３へ進み、モジュール抽出部２３２は、本体に関するモジュールのみを選択する。
【００４２】
前記モジュールが選択された後、選択したモジュールに関する表示を行う（ステップＳ３４）。この表示は装置が内部的に行ったモジュール選択を参考情報としてユーザに知らせるものであってもよいし、ユーザの確認を得て次のステップへ進むための選択入力を求めるものであってもよい。逆に、ユーザが不要と考えれば表示を省略してもよい。
【００４３】
前記表示の後、ファームウェア取得部２３０は、ダウンロードしようとする新バージョンのファームウェアに付加されている各モジュールの先頭アドレス情報とサイズ情報とを読み出す（ステップＳ３５）。前記アドレス情報から格納されているモジュールの先頭を知り、前記サイズ情報から各モジュールのサイズを知る。これらの情報は、モジュール単位でファームウェアをダウンロードし、２次ファームウェア格納部２１１に格納するために利用する。そして、ファームウェア取得部２３０は、新バージョンのバームウェアのうち、洗濯されたモジュールを取得して２次ファームウェア格納部２１１にダウンロードする（ステップＳ３６）。新バージョンのファームウェアは、例えばネットワーク上のサーバからダウンロードしてもよいし、ＵＳＢやパラレルインターフェースを介して接続されたホストからダウンロードしてもよい。あるいは、装置がソケット端子を備え、ソケットに装着されたＲＯＭやデータカードなどからダウンロードするようにしてもよい。
【００４４】
次に、ファームウェア取得部２３０は、将来オプション構成を変えたときのために抽出しなかったモジュールを圧縮して格納しておくかどうかを調べ（ステップＳ３７）、格納しておく場合には、非選択モジュールを２次ファームウェア格納部２１１にダウンロードした後に圧縮処理して主記憶部２１１に格納する（ステップＳ３８）。このとき、圧縮された状態での非選択モジュールの先頭アドレスと圧縮状態でのサイズ情報を付加しておく。将来オプションが追加された場合は、追加されたオプションに対応する圧縮モジュールを前記付加情報に基づいて２次ファームウェア格納部２１１に展開し、本体及びそれまでに使用しているオプションのモジュールと共に２次ファームウェア格納部２１１上で再配置してからファームウェア格納部２０８に格納すればよい。このようにすれば、オプション構成が変わっても、その都度ファームウェアをダウンロードする必要がない。
【００４５】
ファームウェアのダウンロード後、正常にダウンロードが行われたかどうかのチェックを行う（ステップＳ３９）。これは、例えばダウンロードしたファームウェアのパリティーチェックやサムチェックなどで判定することができる。ダウンロードが正常に行われた場合、ルーチンはステップＳ４０へ進む。異常終了の場合はダウンロードしたファームウェアのファームウェア格納部２０８への格納処理を行わない。この場合、異常を知らせるメッセージを表示してユーザの再操作を促すようにしてもよい。また、前記情報に基づいて、各モジュールの再配置に対応するようにモジュール参照テーブルを更新する（ステップＳ４０）。そして、前記モジュール参照テーブルを含むオプション機能関数コール部とダウンロードした各モジュールとをファームウェア格納部２０８に格納する（ステップＳ４１）。
【００４６】
前述のようにして、主記憶部２１１およびファームウェア格納部２０８には、オプション構成に応じたモジュールだけが格納され、装着されていないオプションのモジュールは格納されないか、あるいは圧縮されて格納されるので、実行されないオプションのモジュールによって主記憶部２１１あるいはファームウェア格納部２０８の記憶領域が無駄に占有されることがない。また、処理実行時に、ファームウェアを主記憶部２１１にロードする構成では、主記憶部２１１の領域を無駄に占有することもない。
【図面の簡単な説明】
【００４７】
【図１】の発明のデータ処理装置の一実施形態である、デジタル複合機のデータ処理部の構成を示すブロック図である。（実施の形態１）
【図２】この発明のデータ処理装置のファームウェア更新に関する機能を示すブロック図である。（実施の形態２）
【図３】この発明の画像形成装置の一実施形態として、図１のデータ処理部を含む電子写真方式のデジタル・フルカラー複合機の構成を示す断面図である。（実施の形態１）
【図４】全てのモジュールを含むファームウェアをファームウェア格納部格納した場合のアドレス配置を模式的に示す説明図である。（実施の形態２）
【図５】ステープラーを含まない装置のファームウェアを、モジュール間が不連続にならないように詰めて配置した様子を示す説明図である。（実施の形態２）
【図６】モジュール参照テーブルと各エントリーポイントを参照するためのテーブルの構造を模式的に示す説明図である。（実施の形態２）
【図７】この発明のデータ処理装置のファームウェア更新手順の一例を示すフローチャートである。（実施の形態３）
【図８】この発明のデータ処理装置のファームウェア更新手順の異なる一例を示すフローチャートである。（実施の形態４）
【符号の説明】
【００４８】
１００、１１０    ソータ処理モジュール
１０１，１０３，１０５，１０７，１０９，１１１    本体処理モジュール
１０２    両面機構処理モジュール
１０４、１０６，１０８    ステープラー処理モジュール
２００    ホストＰＣ
２０１    通信ネットワーク
２０２    通信制御部
２０３    中央処理装置、ＣＰＵ
２０４    ＷＥＢサーバ
２０５    スキャナ部
２０６    印字部
２０７    操作表示部
２０８    ファームウェア格納部
２０９    オプション−本体通信制御部
２１０    オプション制御部
２１１    主記憶部、２次ファームウェア格納部
２１２    本体−オプション通信制御部
２２０    本体データ処理部
２２１    オプション部
２３０    ファームウェア取得部
２３１    ファームウェア格納部
２３２    モジュール抽出部
２３３    オプション機能設定部
１０００    原稿トレイ
１００１    原稿送り装置
１００２    露光部
１００３    第１露光走査部、露光ランプユニット
１００４    第２露光走査部
１００５    光学レンズ
１００６    イメージセンサ
１０１０    用紙トレイ
１０１１    レジスト部
１０１２    第２転写部
１０１３    感光体
１０１４    帯電部
１０１５    レーザ走査ユニット、ＬＳＵ
１０１６    レーザビーム
１０１７    現像部
１０１８    トナー容器
１０１９    感光体クリーニング部
１０２０    第１転写部
１０２１，１０３１，１０４１    作像ユニット
１０５０    転写ベルト
１０５１    転写ベルトクリーニング部
１０５２    定着部
１０５３    両面反転部
１０５４    スイッチャ
１０５５    出紙部
１０７０    スキャナ部
１０７１    印刷部、プリンタ
【図１】
2006039848.tif 000003
【図２】
2006039848.tif 000004
【図３】
2006039848.tif 000005
【図４】
2006039848.tif 000006
【図５】
2006039848.tif 000007
【図６】
2006039848.tif 000008
【図７】
2006039848.tif 000009
【図８】
2006039848.tif 000010