(57)【要約】【課題】フラッシュメモリに格納されている実行モジュールを更新モジュールによって上書きしている最中に印刷装置の電源が切られた場合、フラッシュメモリ上の更新中の実行モジュールのデータが破壊されるという課題があった。【解決手段】各モジュールｍ１〜ｍ５をバージョンアップする際、ＥＥＰＲＯＭに格納されている各モジュールｍ１〜ｍ５を上書き格納するのではなく、ＨＤＤに格納し、電源立ち上げ時にこのＨＤＤに格納した更新モジュールＤ１２ｂを読み出してＲＡＭに展開する。これによって、バージョンアップ時にレーザプリンタの電源が遮断される不測の事態が発生したとしても、ＥＥＰＲＯＭに格納されているモジュールｍ１〜ｍ５のデータを破壊することがなくなり、このデータの破壊が原因となってレーザプリンタが立ち上がらなくなったりするといった問題を回避することが可能になる。【選択図】　図１
2004017603.tif 000002
【特許請求の範囲】
【請求項１】
所定の領域に格納された複数の実行モジュールを起動し、同実行モジュールの動作に従って入力した印刷データに基づく印刷を実行する印刷装置であって、
上記各実行モジュールを更新する更新モジュールを実行モジュール毎に入力可能な更新モジュール入力手段と、
上記各実行モジュールと上記入力した更新モジュールとを別個の領域に格納するモジュール格納手段と、
上記各実行モジュールの起動に際して、上記更新モジュールを上記モジュール格納手段の上記各実行モジュールが格納される領域に読み出すことによって実行モジュールとして起動可能にする実行モジュール読出手段と、
上記領域に読み出された各実行モジュールを起動し、同実行モジュールの動作に従って入力した印刷データに基づく印刷を実行する印刷手段とを具備することを特徴とする印刷装置。
【請求項２】
上記実行モジュールおよび更新モジュールは、バージョン情報を有するとともに、上記実行モジュール読出手段は、上記モジュール格納手段から最新のバージョン情報を有する更新モジュールを上記領域に読み出すことを特徴とする上記請求項１に記載の印刷装置。
【請求項３】
上記モジュール格納手段は、上記実行モジュールと上記入力した更新モジュールとを物理的に別個の領域に格納することを特徴とする上記請求項１または請求項２のいずれかに記載の印刷装置。
【請求項４】
上記モジュール格納手段は、上記実行モジュールを高速アクセス可能な領域に格納するとともに、上記入力した更新モジュールを同実行モジュールを格納する領域より相対的に低速アクセスであって大容量の領域に格納することを特徴とする上記請求項３に記載の印刷装置。
【請求項５】
上記モジュール格納手段は、上記高速アクセス可能な領域をフラッシュメモリにて形成するとともに、上記低速アクセスであって大容量の領域をハードディスクにて形成することを特徴とする上記請求項４に記載の印刷装置。｜
【請求項６】
上記更新モジュール入力手段は、同一実行モジュールについての更新モジュールを入力した場合、上記モジュール格納手段に対して順次上書き格納することを特徴とする上記請求項１〜請求項５のいずれかに記載の印刷装置。
【請求項７】
上記更新モジュール入力手段は、同一実行モジュールについての更新モジュールを入力した場合、上記モジュール格納手段に入力した同入力した更新モジュールを順次上書きしないで格納することを特徴とする上記請求項１〜請求項５のいずれかに記載の印刷装置。
【請求項８】
上記更新モジュール入力手段は、当該印刷装置の外部に設置され更新モジュールが格納されるホストと通信可能に接続するとともに、同ホストに定期的にアクセスしつつ、同ホストに格納された更新モジュールを入力することを特徴とする上記請求項１〜請求項７のいずれかに記載の印刷装置。
【請求項９】
所定の領域に格納された複数の実行モジュールを起動し、同実行モジュールの動作に従って入力した印刷データに基づく印刷を実行する印刷方法であって、
上記各実行モジュールを更新する更新モジュールを実行モジュール毎に入力可能な更新モジュール入力工程と、
上記各実行モジュールと上記入力した更新モジュールとを別個の領域に格納するモジュール格納工程と、
上記各実行モジュールの起動に際して、上記格納された更新モジュールを上記各実行モジュールが格納される領域に読み出すことによって実行モジュールとして起動可能にする実行モジュール読出工程と、
上記領域に読み出された各実行モジュールを起動し、同実行モジュールの動作に従って入力した印刷データに基づく印刷を実行する印刷工程とを具備することを特徴とする印刷方法。
【請求項１０】
所定の領域に格納された複数の実行モジュールを起動し、同実行モジュールの動作に従って入力した印刷データに基づく印刷を実行する機能を実現する印刷処理プログラムであって、
上記各実行モジュールを更新する更新モジュールを実行モジュール毎に入力可能な更新モジュール入力機能と、
上記各実行モジュールと上記入力した更新モジュールとを別個の領域に格納するモジュール格納機能と、
上記各実行モジュールの起動に際して、上記格納された更新モジュールを上記各実行モジュールが格納される領域に読み出すことによって実行モジュールとして起動可能にする実行モジュール読出機能と、
上記領域に読み出された各実行モジュールを起動し、同実行モジュールの動作に従って入力した印刷データに基づく印刷を実行する印刷機能とを具備することを特徴とする印刷処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、印刷装置、印刷方法および印刷処理プログラムに関し、特に、複数の実行モジュールを起動して印刷を行う印刷装置、印刷方法および印刷処理プログラムに関する。
【０００２】
【従来の技術】
従来、この種の印刷装置は、予め各実行モジュールをＥＥＰＲＯＭ等のフラッシュメモリに格納し、印刷を行うにあたり、各実行モジュールをフラッシュメモリからＲＡＭに読み出して起動している。そして、これらの実行モジュールを新しいバージョンに更新する場合、フラッシュメモリに格納された内容を上書きして実行モジュールとして保存している。
【０００３】
【発明が解決しようとする課題】
上述した従来の印刷装置においては、フラッシュメモリに格納されている実行モジュールを更新モジュールによって上書きしている最中（実行モジュールの更新作業中）に停電や誤操作等の不測の事態によって当該印刷装置の電源が切られた場合、フラッシュメモリ上の更新中の実行モジュールのデータが破壊され、印刷装置が立ち上がらなくなってしまう恐れがあるという課題があった。また、フラッシュメモリに格納されている内容をバージョンを更新した後に、バージョンを戻す場合、フラッシュメモリに格納されている内容を消去するとともに、同フラッシュメモリに再書込する必要があり、作業が煩雑であった。
【０００４】
本発明は、上記課題にかんがみてなされたもので、実行モジュールの更新作業中に上述した不測の事態が発生したとしても印刷装置が立ち上がらなくなる状況を回避することが可能になるとともに、簡易にバージョンアップ後に元のバージョンに戻すことが可能な印刷装置、印刷方法および印刷処理プログラムの提供を目的とする。
【０００５】
【課題を解決するための手段】
上記目的を達成するため、請求項１にかかる発明は、所定の領域に格納された複数の実行モジュールを起動し、同実行モジュールの動作に従って入力した印刷データに基づく印刷を実行する印刷装置について、当該各実行モジュールを更新する際、更新モジュール入力手段にてこの更新モジュールを実行モジュール毎に入力する。そして、モジュール格納手段は、各実行モジュールと、更新モジュール入力手段にて入力した更新モジュールとを別個の領域に格納する。ここで、印刷装置にて印刷を行うにあたって各実行モジュールを起動するに際し、実行モジュール読出手段は、モジュール格納手段の実行モジュールとは別個の領域に格納された更新モジュールを各実行モジュールが格納されている領域に対応する実行モジュールとして読み出す。これによって、当該更新モジュールを実行モジュールとして起動可能とする。そして、印刷手段は、実行モジュールが格納されている領域から各実行モジュールを起動し、同起動された実行モジュールの動作に従って入力した印刷データに基づく印刷を実行する。
【０００６】
起動時、実行モジュールとして同実行モジュールが格納される領域に更新モジュールを読み出す基準の一例として、請求項２にかかる発明は、実行モジュールとは別個の領域に格納された更新モジュールを当該実行モジュールが格納されている領域に読み出す場合に、実行モジュールおよび更新モジュールに付加されたバージョン情報を基準にする。すなわち、実行モジュール読出手段は、モジュール格納手段から最新のバージョン情報を有する更新モジュールを上記領域に読み出す。
【０００７】
上述したように実行モジュールと更新モジュールとをモジュール格納手段にて格納するに際して、別個の領域に格納すれば、更新モジュールの格納時に電源遮断等のトラブルが発生したとしても、実行モジュールが格納されている領域のデータについては破壊を防止することができる。かかる場合、実行モジュールと更新モジュールとを格納する領域を同一の物理領域内を区分して別個の領域とするようにしても良いし、物理的に異なる領域にそれぞれを格納して別個としても良い。そこで、請求項３にかかる発明は、モジュール格納手段に物理的に異なる別個の領域を用意し、実行モジュールと更新モジュール入力手段にて入力した更新モジュールとをこの物理的に異なる領域にそれぞれ別個に格納する。
【０００８】
実行モジュールは実行時、同実行モジュールは格納されているモジュール格納手段の領域から適宜読み込まれる。一方、更新モジュールは、更新があった場合、各実行モジュール毎にデータがモジュール格納手段に格納される。従って、実行モジュールが実行時に読み込まれるに際しては高速に読み込まれる必要があり、各実行モジュールの更新モジュールを格納していくに際しては容量が大きい必要がある。そこで、モジュール格納手段における物理的に異なる領域の一例として、請求項４にかかる発明は、実行モジュールを高速アクセス可能な領域に格納し、入力した更新モジュールを同実行モジュールを格納する領域より相対的に低速アクセスであって大容量の領域に格納する。
【０００９】
上述した高速アクセス可能な領域および相対的に低速アクセスであって大容量の領域の具体的な態様の一例として、請求項５にかかる発明は、高速アクセス可能な領域をフラッシュメモリにて形成する。一方、低速アクセスであって大容量の領域をハードディスクにて形成する。
【００１０】
更新モジュールについては最新のデータをモジュール格納手段に格納させておけば、常に最新の更新モジュールを実行モジュールとして起動させることができる。そこで、請求項６にかかる発明は、更新モジュール入力手段にて同一実行モジュールについての更新モジュールを入力した場合、モジュール格納手段の所定の領域おいて順次上書き格納する。
【００１１】
更新モジュールを格納した更新モジュールを残しておくことによって、モジュール格納手段にて更新モジュールの入力履歴を管理することができて好適である。そこで、請求項７にかかる発明は、更新モジュール入力手段にて同一実行モジュールについての更新モジュールを入力した場合、モジュール格納手段に入力した同入力した更新モジュールを順次上書きしないで格納する。
【００１２】
上述してきた発明においては、更新モジュール入力手段にて更新モジュールを入力した際に、同入力した更新モジュールをモジュール格納手段に格納させ、実行モジュールとして起動可能にした。ここで、実行モジュールの更新は定期的に行われる場合が多く、その都度、更新モジュール入力手段に更新モジュールを入力させる作業が発生すると煩雑である。かかる場合、更新モジュールの自動更新ができると好適である。そこで、請求項８にかかる発明は、更新モジュール入力手段を当該印刷装置の外部に設置され更新モジュールが格納されるホストと通信可能に接続する。そして、この更新モジュール入力手段にてホストに定期的にアクセスし、同ホストに格納された更新モジュールを入力する。
【００１３】
また、所定の領域に格納された複数の実行モジュールを起動し、同実行モジュールの動作に従って入力した印刷データに基づく印刷を実行する手法は必ずしも実体のある装置に限られる必要はなく、その方法としても機能することは容易に理解できる。
このため、所定の領域に格納された複数の実行モジュールを起動し、同実行モジュールの動作に従って入力した印刷データに基づく印刷を実行する印刷方法であって、上記各実行モジュールを更新する更新モジュールを実行モジュール毎に入力可能な更新モジュール入力工程と、上記各実行モジュールと上記入力した更新モジュールとを別個の領域に格納するモジュール格納工程と、上記各実行モジュールの起動に際して、上記格納された更新モジュールを上記各実行モジュールが格納される領域に読み出すことによって実行モジュールとして起動可能にする実行モジュール読出工程と、上記領域に読み出された各実行モジュールを起動し、同実行モジュールの動作に従って入力した印刷データに基づく印刷を実行する印刷工程とを具備する構成としてある。
すなわち、必ずしも実体のある装置に限らず、その方法としても有効であることに相違はない。
【００１４】
ところで、このような画像処理装置は単独で存在する場合もあるし、ある機器に組み込まれた状態で利用されることもあるなど、発明の思想としてはこれに限らず、各種の態様を含むものである。従って、ソフトウェアであったりハードウェアであったりするなど、適宜、変更可能である。発明の思想の具現化例としてインストール制御装置のソフトウェアとなる場合には、かかる機能を実現するプログラムが当然に存在し、同プログラムの実行にて機能が利用されるといわざるをえない。
【００１５】
その一例として、請求項１０にかかる発明は、所定の領域に格納された複数の実行モジュールを起動し、同実行モジュールの動作に従って入力した印刷データに基づく印刷を実行する機能を実現する印刷処理プログラムであって、上記各実行モジュールを更新する更新モジュールを実行モジュール毎に入力可能な更新モジュール入力機能と、上記各実行モジュールと上記入力した更新モジュールとを別個の領域に格納するモジュール格納機能と、上記各実行モジュールの起動に際して、上記格納された更新モジュールを上記各実行モジュールが格納される領域に読み出すことによって実行モジュールとして起動可能にする実行モジュール読出機能と、上記領域に読み出された各実行モジュールを起動し、同実行モジュールの動作に従って入力した印刷データに基づく印刷を実行する印刷機能とを具備する構成としてある。
【００１６】
【発明の効果】
以上説明したように請求項１、請求項９、請求項１０にかかる発明によれば、実行モジュールが格納される領域と更新モジュールが格納される領域とを別個の領域にすることによって、更新モジュールを入力中に当該印刷装置の電源が切られた場合に、実行モジュールのデータが破壊されてしまうことを防止することが可能であるとともに、実行モジュールのバージョンを戻す場合には、更新モジュールとして古いバージョンのモジュールを格納させればよいので、簡易に実行モジュールを元のバージョンに戻すことが可能な印刷装置、印刷方法、印刷処理プログラムを提供することができる。
また、請求項２にかかる発明によれば、最新の実行モジュールを起動させることが可能になる。
さらに、請求項３にかかる発明によれば、更新モジュールと実行モジュールとを格納する領域を物理的に別個にすることができる。
【００１７】
さらに、請求項４にかかる発明によれば、モジュール格納手段を物理的に別個の領域に区分した場合のそれぞれの領域に適した性質の一例を提示することができる。
さらに、請求項５にかかる発明によれば、物理的に別個の領域に区分した際の具体的な態様を提示することができる。
さらに、請求項６にかかる発明によれば、常に最新の更新モジュールにて管理することができる。
さらに、請求項７にかかる発明によれば、モジュール格納手段にて更新履歴を管理することができる。
さらに、請求項８にかかる発明によれば、実行モジュールを定期的に自動で更新することが可能になる。
【００１８】
【発明の実施の形態】
ここでは、下記の順序に従って本発明の実施形態について説明する。
（１）発明の概要：
（２）レーザプリンタの構成：
（３）更新モジュール登録処理の処理内容：
（４）モジュール起動処理の処理内容：
（５）変形例（ネットワークでの定期更新）：
（６）まとめ：
【００１９】
（１）発明の概要：
図１は、本発明にかかる印刷装置の概要を示した概要図である。同図において、本発明にかかる印刷装置Ｍは、更新モジュール入力手段Ｃ１と、モジュール格納手段Ｃ２と、実行モジュール読出手段Ｃ３と、印刷手段Ｃ４とを有する構成となっている。印刷装置Ｍは、電源立ち上げされた場合、所定の領域Ｒ１に格納されている複数の実行モジュールを順次起動して実行する。そして、これらの実行モジュールの実行動作によって、当該印刷装置Ｍの各機能が実現される。ここで、この各実行モジュールは、各実行モジュール毎にバージョンアップが可能であり、機能追加や機能改修に応じて、各実行モジュール毎に適宜バージョンアップ版の更新モジュールが作成される。
【００２０】
更新モジュールが作成されると、印刷装置Ｍにホストコンピュータ等の外部機器を接続し、この接続したホストコンピュータ等から作成したバージョンアップ用の更新モジュールを印刷装置Ｍに入力して、対応する実行モジュールを更新する。かかる場合、入力した更新モジュールを実行モジュールが格納された領域Ｒ１に格納することによって、この入力した更新モジュールに対応する実行モジュールを上書きして更新するのではなく、更新モジュールを領域Ｒ１とは別個の領域Ｒ２に格納する。そして、印刷装置Ｍが電源立ち上げされた場合、実行モジュール読出手段Ｃ３は、領域Ｒ２から領域Ｒ１に更新モジュールを読み出すとともに更新し、実行モジュールとして起動可能にする。
【００２１】
印刷手段Ｃ４は、領域Ｒ２に読み出された更新モジュールを実行モジュールとして起動し、この実行モジュールの連携した動作に基づいて入力した印刷データの印刷を実行する。このように、更新モジュールを印刷装置Ｍにインストールする際、領域Ｒ１に格納された実行モジュールを上書きすることなく、領域Ｒ２に一旦格納し、当該印刷装置Ｍの電源立ち上げ時に、領域Ｒ２に格納された更新モジュールを実行モジュールとして領域Ｒ１に読み出す。これによって、更新モジュールを入力している場合に、電源遮断等のトラブルが発生したとしても、領域Ｒ１に格納されている実行モジュールのデータについては、その破壊を防止することができる。
【００２２】
（２）レーザプリンタの構成：
図２は、上述した印刷装置が適用されるレーザプリンタの構成を示した構成図である。同図において、レーザプリンタ２０は、内部にＣＰＵ２１と、ＨＤＤ２２と、ＲＡＭ２３と、ＥＥＰＲＯＭ２４と、通信インターフェース２５と、印刷コントローラ２６と、プリンタエンジン２７とを有する構成となっている。そして、これらの各構成２１〜２７は、バス２８に接続されており、このバス２８を介して相互にデータや制御信号を入出力可能になっている。また、ＣＰＵ２１は、ＨＤＤ２２に格納された所定の設定データあるいはＥＥＰＲＯＭ２４に格納された当該レーザプリンタ２０の所定の機能を実行可能な複数の実行モジュールを適宜ＲＡＭ２３をワークエリアとして読み出しつつ実行し、同レーザプリンタ２０の機能を実現可能にする。ここで、本実施形態において、当該レーザプリンタ２０は通信インターフェース２５を介して、所定の通信ケーブルにより、ホストコンピュータ１０に接続されている。
【００２３】
当該ホストコンピュータ１０は、図示しないＣＰＵ、ＲＡＭ、ＲＯＭ、ＨＤＤ等を内部に備え、このＨＤＤに格納されたアプリケーションの１つである画像プログラム１１をＣＰＵ等にて実行することによって画像の印刷データを生成可能になっている。そして、生成された印刷データは、プリンタドライバを介してホストコンピュータ１０からレーザプリンタ２０に出力される。この印刷データは、所定のページ記述言語（ＰＤＬ）で記述された文字列であり、レーザプリンタ２０内の通信インターフェース２５およびバス２８を介して印刷コントローラ２６のインターフェース部２６ａに入力される。印刷コントローラ２６内のインターフェース部２６ａは、この印刷データを解釈し、描画命令を生成し、描画部２６ｂに供給する。描画部２６ｂは、インターフェース部２６ａにて生成された描画命令に従ってドットに対応したＲＧＢの各色の階調データからなるＲＧＢデータを生成し、画像メモリであるバンドメモリ２６ｃに格納する。ここで、色処理部２６ｄは、色処理を行う。
【００２４】
すなわち、バンドメモリ２６ｃに格納されたＲＧＢデータを直接読み出し、ＥＥＰＲＯＭ２４に格納されている図示しない色変換テーブルを使用してＲＧＢデータをＣＭＹＫデータに色変換する。さらに、色処理部２６ｄは、色変換されたドット毎のＣＭＹＫデータに対してハーフトーン処理（二値化処理）を行い、画像再生データを生成する。かかる場合、色処理部２６ｄは、所定のハーフトーン処理テーブルを参照してハーフトーン処理を行う。そして、このようにして生成された画像再生データは、ドット内のレーザ駆動パルス信号に変換されるとともに、バス２８を介してプリンタエンジン２７に供給される。プリンタエンジン２７に画像再生データが供給されると、ＣＰＵ２１の制御によってプリンタエンジン２７が駆動され、同画像再生データに基づく印刷が実行される。
【００２５】
上述したようにＥＥＰＲＯＭ２４に格納されている各実行モジュールは、機能追加や機能改修に応じてバージョンアップされる。このバージョンアップを行う更新モジュールは、ホストコンピュータ１０のＨＤＤに格納され、このホストコンピュータ１０のＨＤＤに格納されているアプリケーションの１つである更新モジュール転送プログラム１２によって、更新モジュールデータとしてレーザプリンタ２０に転送可能になっている。レーザプリンタ２０は、更新モジュールデータの転送を通信インターフェース２５にて受け付けると、バス２８を介してＨＤＤ２２に格納する。
【００２６】
図３は、上述したレーザプリンタ２０の各ハードウェアを前提にして起動されるとともに実行され、上述した各機能を実現する各実行モジュールの構成を示したモジュール構成図である。同図において、レーザプリンタ２０は、実行モジュールとして通信制御モジュールｍ１と、印刷データ制御モジュールｍ２と、ＰＤＬモジュールｍ３と、印刷モジュールｍ４と、起動モジュールｍ５とを有しており、通信制御モジュールｍ１は、ホストコンピュータ１０から入力したデータが印刷データであるか更新モジュールデータであるかを判別し、印刷データであれば印刷の後処理に移行させるとともに、更新モジュールデータであれば、更新モジュールとしてＨＤＤ２２に格納して登録する更新モジュール登録処理を実行する。
【００２７】
通信制御モジュールｍ１にてホストコンピュータ１０から入力したデータが印刷データであると判別された場合は、この印刷データは印刷データ制御モジュールｍ２に出力される。印刷データを入力した印刷データ制御モジュールｍ２は、この印刷データのデータ構成等をチェックした後に、ＰＤＬモジュールｍ３に出力する。そして、ＰＤＬモジュールｍ３は、入力した印刷データを解釈するとともに、描画命令を生成し、印刷モジュールｍ４に出力する。そして、印刷モジュールｍ４は、入力した描画命令に従ってＲＧＢデータを生成し、色処理を実行して、画像再生データを生成するとともに、同画像再生データに基づいた印刷を実行する。ここで、起動モジュールｍ５は、レーザプリンタ２０が電源立ち上げされた場合に、ＣＰＵ２１によってＲＡＭ２３に読み出されて実行される。そして、同起動モジュールｍ５は、ＥＥＰＲＯＭ２４に格納されているモジュールｍ１〜ｍ４や、ＨＤＤ２２に格納されて登録された更新モジュールをＲＡＭ２３に読み出して展開し、ＣＰＵ２１にて実行可能にする。
【００２８】
このようにレーザプリンタ２０のＥＥＰＲＯＭ２４に格納された通信制御モジュールｍ１、印刷データ制御モジュールｍ２、ＰＤＬモジュールｍ３、印刷モジュールｍ４、起動モジュールｍ５は、上述したとおり機能追加あるいは機能改修にともない、バージョンアップされた更新モジュールが作成される。バージョンアップされた場合、バージョンアップされたモジュールｍ１〜ｍ５を更新するため、上述した更新モジュール転送プログラム１２によって、ホストコンピュータ１０からレーザプリンタ２０に更新モジュールデータを転送する。かかる場合、従来、更新モジュール転送プログラム１２によって転送された更新モジュールデータは、通信インターフェース２５を介してレーザプリンタ２０に入力されるとともに、ＥＥＰＲＯＭ２４に転送され、同ＥＥＰＲＯＭ２４に格納されている各モジュールｍ１〜ｍ５のデータを上書きしていた。
【００２９】
しかし、このように上書きによる更新を行っている最中に、誤ってレーザプリンタ２０の電源が遮断されたりする不測の事態が生じると、上書き中のモジュールｍ１〜ｍ５のデータが破壊されてしまうという現象が発生し得る。このように不測の事態が生じてモジュールｍ１〜ｍ５のデータが破壊されてしまった場合、レーザプリンタ２０が正常にその機能を実現することができなくなるだけではなく、起動さえしなくなることがあり得る。そこで、本実施形態においては、ホストコンピュータ１０の更新モジュール転送プログラム１２によって、レーザプリンタ２０に転送された更新モジュールデータをＨＤＤ２２に格納して登録する。そして、レーザプリンタ２０が電源立ち上げされた場合に、この登録された更新モジュールを対応するモジュールｍ１〜ｍ４としてＲＡＭ２３に展開してＣＰＵ２１にて実行可能とする。
【００３０】
これによって、更新モジュールの更新中に、レーザプリンタ２０の電源が遮断されるような不測の事態が生じたとしても、ＥＥＰＲＯＭ２４に格納されている各モジュールｍ１〜ｍ５のデータを破壊することがなくなる。かかる態様においては、更新モジュールをインストールする際に、レーザプリンタ２０の通信制御モジュールｍ１によって後述する更新モジュール登録処理が実行され、更新モジュールデータをＨＤＤ２２に格納し、レーザプリンタ２０が電源立ち上げされた場合に、起動モジュールｍ５によって後述するモジュール起動処理が実行されることによって、ＨＤＤ２２に格納された更新モジュールデータを適宜ＲＡＭ２３に読み込んでモジュールｍ１〜ｍ４としてＣＰＵ２１にて実行可能にする。
【００３１】
（３）更新モジュール登録処理の処理内容：
図４は、上述した通信制御モジュールｍ１にて実行される更新モジュール登録処理の処理内容を示したフローチャートである。同図において、通信制御モジュールｍ１は通信インターフェース２５を介してホストコンピュータ１０からデータが入力されたか否かを判別する（ステップＳ１００）。ここで、本実施形態において、ホストコンピュータ１０から入力されるデータはホストコンピュータ１０上の画像プログラム１１にて生成され出力される印刷データと、更新モジュール転送プログラム１２から転送される更新モジュールデータとである。図５はこの印刷データと更新モジュールデータのデータ構成を示したデータ構成図である。
【００３２】
図において、印刷データＤ１１および更新モジュールデータＤ１２はヘッダ部Ｄ１ａとデータ部Ｄ１ｂとから構成されており、印刷データＤ１１はヘッダ部Ｄ１ａに指定フォント等のヘッダデータＤ１１ａが格納されるとともに、データ部Ｄ１ｂに描画命令等のコマンドデータが格納されている。一方、更新モジュールデータＤ１２はヘッダ部Ｄ１ａにモジュール更新識別情報Ｄ１２ａが格納されるとともに、データ部Ｄ１ｂに更新モジュールＤ１２ｂが格納されている。また、この更新モジュールＤ１２ｂの最後にはデータの末尾を示すエンドデータＤ１２ｃが格納されている。ここで、モジュール更新識別情報Ｄ１２ａは、印刷データＤ１１と更新モジュールＤ１２とを区別可能な所定の識別情報およびバージョンを示す更新情報とにより構成されている。この識別情報については、印刷データＤ１１と更新モジュールデータＤ１２を区別可能であれば良く、その態様は特に限定されない。
【００３３】
ステップＳ１００にてかかる各データ構成を有する印刷データＤ１１あるいは更新モジュールデータＤ１２をホストコンピュータ１０から入力されたと判別された場合は、ヘッダ部Ｄ１ａを抽出するとともに（ステップＳ１０５）、この抽出したヘッダ部Ｄ１ａにモジュール更新識別情報Ｄ１２ａが格納されているか否かを判別する（ステップＳ１１０）。このステップＳ１１０の判別において、ステップＳ１００にて入力されたデータが更新モジュールデータＤ１２であると判別された場合は、データ部Ｄ１ｂに格納されている更新モジュールＤ１２ｂ等を抽出して入力する（ステップＳ１１５）。そして、この抽出した更新モジュールＤ１２ｂをＨＤＤ２２に保存するとともに（ステップＳ１２０）、エンドデータＤ１２ｃを入力したか否かを判別することによって、更新モジュールＤ１２ｂの全てのデータを入力したか否かを判別する（ステップＳ１２５）。
【００３４】
全データが入力されたと判別された場合は、サムチェック等のデータチェック方式によって、全データが正常に入力されてＨＤＤ２２に保存されたか否かを判別する（ステップＳ１３０）。全データが正常に入力されたと判別された場合は、入力してＨＤＤ２２に格納した更新モジュールＤ１２ｂを登録する（ステップＳ１３５）。この登録は、モジュール更新識別情報Ｄ１２ａから更新情報を取得し、更新モジュールＤ１２ｂに対応させて行われる。ここで、ＨＤＤ２２に登録された更新モジュールＤ１２ｂの格納状態を図６に示す。図において、ＨＤＤ２２には「更新モジュール」Ｆ１のフォルダが作成されており、その下に更新モジュールＤ１２ｂが「通信制御モジュール（バージョン２．０）」、「ＰＤＬモジュール（バージョン２．０）」のように格納される。
【００３５】
本実施形態においては、図に示すように、通信制御モジュールｍ１およびＰＤＬモジュールｍ３の更新モジュールＤ１２ｂを登録する。一方、ステップＳ１３０にて更新モジュールＤ１２ｂが正常に入力されなかったと判別された場合は、ＨＤＤ２２に格納したそれまでのデータを削除して登録を行わない（ステップＳ１４０）。また、ステップＳ１１０にて、ヘッダ部Ｄ１ａにモジュール更新識別情報Ｄ１２ａが格納されておらず、入力したデータを印刷データＤ１１と判別した場合は、印刷データＤ１１を適宜入力して同印刷データＤ１１に基づいて所定の印刷処理を実行する（ステップＳ１５０）。このように、更新モジュールＤ１２ｂが登録された場合、レーザプリンタ２０の電源立ち上げ起動時にこれらＨＤＤ２２に格納された更新モジュールＤ１２ｂがワークメモリであるＲＡＭ２３に適宜読み込まれて展開されることになる。このＲＡＭ２３への展開は、電源立ち上げ時に起動される起動モジュールｍ５にて実行される。
【００３６】
（４）モジュール起動処理の処理内容：
図７は、この起動モジュールｍ５にて実行されるモジュール起動処理の処理内容を示したフローチャートである。同図において、レーザプリンタ２０が電源立ち上げされると（ステップＳ２００）、ＣＰＵ２１はＥＥＰＲＯＭ２４に格納されている起動モジュールｍ５をＲＡＭ２３に展開しつつ起動する（ステップＳ２０５）。そして、モジュールｍ１〜ｍ４から最初にＲＡＭ２３に展開するものを特定する（ステップＳ２１０）。起動モジュールｍ５は、ＨＤＤ２２を読み出し、この特定したモジュール（モジュールｍ１〜ｍ５の何れか）について当該ＨＤＤ２２のフォルダ「更新モジュール」Ｆ１の下に更新モジュールＤ１２ｂが格納されて登録されているか否かを判別する（ステップＳ２２０）。
【００３７】
ＨＤＤ２２に更新モジュールＤ１２ｂが登録されていると判別された場合は、この更新モジュールＤ１２ｂの更新情報を取得する。本実施形態においては、通信制御モジュールｍ１の「バージョン２．０」とＰＤＬモジュールｍ３の「バージョン２．０」が更新情報として登録されているので、この２つのモジュールがステップＳ２１０にて特定された場合に、これらの通信制御モジュールｍ１，ＰＤＬモジュールｍ３についての更新情報を取得することになる（ステップＳ２２５）。次に、ＥＥＰＲＯＭ２４にアクセスして、同ＥＥＰＲＯＭ２４に格納されている通信制御モジュールｍ１とＰＤＬモジュールｍ３の更新情報を取得する（ステップＳ２３０）。そして、更新モジュールＤ１２ｂとして格納されたモジュールの更新情報と、ＥＥＰＲＯＭ２４に格納されているモジュールの更新情報とを比較し（ステップＳ２３５）、更新モジュールＤ１２ｂの更新情報の方が新しいと判別された場合は、更新モジュールＤ１２ｂをレーザプリンタ２０の機能実行に使用するモジュールとしてＲＡＭ２３に読み出して展開する（ステップＳ２４０）。
【００３８】
一方、ステップＳ２３５にてＥＥＰＲＯＭ２４に格納されているモジュールの更新情報の方が新しいと判別された場合は、同ＥＥＰＲＯＭ２４に格納されているモジュールをＲＡＭ２３に読み出して展開する（ステップＳ２４５）。そして、全モジュールｍ１〜ｍ４についてステップＳ２１０にて特定しつつ、ＨＤＤ２２あるいはＥＥＰＲＯＭ２４からＲＡＭ２３に読み出して展開したか否かを判別し（ステップＳ２５０）、全モジュールｍ１〜ｍ４がＲＡＭ２３に読み出されて展開されたと判別された場合は、このＲＡＭ２３に展開された各モジュールｍ１〜ｍ４を順次起動して、レーザプリンタ２０としての機能を実現可能にする（ステップＳ２５５）。
【００３９】
図８は、上述した更新モジュール登録処理およびモジュール起動処理が実行された際の、ＨＤＤ２２、ＥＥＰＲＯＭ２４、ＲＡＭ２３の格納状態および格納状態の遷移を示した図である。同図において、ＨＤＤ２２には、通信制御モジュールｍ１のバージョン２．０およびＰＤＬモジュールｍ３のバージョン２．０の更新モジュールＤ１２ｂが格納されている。そして、ＥＥＰＲＯＭ２４には、通信制御モジュールｍ１のバージョン１．０と、印刷データ制御モジュールｍ２のバージョン１．０と、ＰＤＬモジュールｍ３のバージョン１．０と、印刷モジュールｍ４のバージョン１．０とが格納されている。かかる状態で、上述した起動モジュールｍ５にて上述したモジュール起動処理が実行されると、ＲＡＭ２３には、通信制御モジュールｍ１（バージョン２．０）と、印刷データ制御モジュールｍ２（バージョン１．０）と、ＰＤＬモジュールｍ３（バージョン２．０）と、印刷モジュールｍ４（バージョン１．０）とが読み出されて展開されることになる。
【００４０】
上述した実施形態においては、更新モジュール登録処理にて更新モジュールＤ１２ｂをＨＤＤ２２に登録する場合、ＨＤＤ２２のフォルダ「更新モジュール」Ｆ１の下に順次格納していった。このように、最新の更新モジュールＤ１２ｂを「更新モジュール」Ｆ１の下に順次格納していくことによって、当該「更新モジュール」Ｆ１において最新の更新モジュールＤ１２ｂを管理することが可能になる。一方、各モジュールｍ１〜ｍ４の更新は、更新モジュールＤ１２ｂが作成される毎に行われるものであり、その更新履歴をＨＤＤ２２において行うことができると好適である。この更新履歴をＨＤＤ２２において行うことが可能なフォルダ構成の一例を図９に示す。同図においては、「更新モジュール」Ｆ１の下に起動モジュールｍ５が起動時に参照する「参照用フォルダ」Ｆ１１を作成するとともに、各モジュールｍ１〜ｍ４毎に「通信制御モジュール用フォルダ」Ｆ１２、「印刷データ制御モジュール用フォルダ」Ｆ１３、「ＰＤＬモジュール用フォルダ」Ｆ１４、「印刷モジュール用フォルダ」Ｆ１５を作成する。
【００４１】
そして、ホストコンピュータ１０から入力した最新の更新モジュールＤ１２ｂをこの「参照用フォルダ」Ｆ１１に格納し、その最新の更新モジュールＤ１２ｂの以前に入力した更新モジュールＤ１２ｂについては、それぞれのフォルダＦ１２〜Ｆ１５に移行させる。これによって、更新モジュールＤ１２ｂとして、ホストコンピュータ１０からレーザプリンタ２０に入力したデータは、上書きされることなくＨＤＤ２２に格納され、所定のブラウザにて、ホストコンピュータ１０からＨＤＤ２２の各フォルダＦ１１〜Ｆ１５の内容を視認することや、選択できるようにすることによって、各モジュールｍ１〜ｍ４の更新履歴の把握や、所定のバージョンに戻すことが可能になる。
【００４２】
（５）変形例（ネットワークでの定期更新）：
上述してきた実施形態においては、更新モジュールデータＤ１２をホストコンピュータ１０からレーザプリンタ１０に対して、同ホストコンピュータ１０の更新モジュール転送プログラム１２を利用してダウンロードする形態を採用した。むろん、各モジュールｍ１〜ｍ５をバージョンアップする方法は、ホストコンピュータ１０の動作を主体として行うようにしても良いし、レーザプリンタ２０の動作を主体にして行うようにしても良い。すなわち、レーザプリンタ２０が更新モジュールデータＤ１２を管理する管理サーバに定期的にアクセスして、更新モジュールデータＤ１２が同管理サーバにアップロードされたら、このアップロードされた更新モジュールデータＤ１２をレーザプリンタ２０にダウンロードする方法を採用しても良い。これによって、定期的に更新モジュールデータＤ１２をダウンロードできるようになり好適である。また、管理サーバの管理者は、適宜レーザプリンタ２０に対して更新モジュールデータＤ１２の転送作業を行う必要がなく、更新モジュールデータＤ１２を管理サーバにアップロードするだけで良いため、各モジュールｍ１〜ｍ４のバージョン管理作業を簡素化することが可能になる。
【００４３】
図１０は、かかる手法を実現可能なモジュールバージョン管理システムの構成の一例を示した構成図である。同図において、モジュールバージョン管理システムは、更新モジュールデータＤ１２を格納する管理サーバ１００と、各階に分散する各部門にて使用するレーザプリンタ２０１〜２０ｎをＬＡＮ１０２にて接続する構成となっている。本実施形態においては、レーザプリンタ２０１，２０２が１階の営業部門に配置され、レーザプリンタ２０３が３階の知的財産部門に配置され、レーザプリンタ２０ｎが２階の技術部門に配置されていることを示している。ここで、かかる構成において各レーザプリンタ２０１〜２０ｎにて実行される更新モジュール登録処理の処理内容を図１１のフローチャートに示す。
【００４４】
同図において、当該更新モジュール登録処理では、所定間隔にて定期的に管理サーバ１００にアクセスする（ステップＳ３００）。そして、同管理サーバ１００に更新モジュールデータＤ１２がアップロードされ格納されているか否かを判別する（ステップＳ３０５）。更新モジュールデータＤ１２がアップロードされていた場合は、その更新モジュールデータＤ１２の更新情報を入力する（ステップＳ３１０）。そして、ＨＤＤ２２に対応するモジュールｍ１〜ｍ５の更新モジュールデータＤ１２が格納されているか否かを判別する（ステップＳ）。
【００４５】
格納されている場合は、このＨＤＤ２２に格納されている更新モジュールデータＤ１２の更新情報を入力するとともに（ステップＳ３２０）、管理サーバ１００に格納されてる更新モジュールデータＤ１２の更新情報と、ＨＤＤ２２に格納されている更新モジュールデータＤ１２の更新情報とを比較し（ステップＳ３２５）、管理サーバ１００に格納されている更新モジュールデータＤ１２の方が最新であるか判別し（ステップＳ３３０）、新しい場合に、管理サーバ１００から更新モジュールデータＤ１２を入力して（ステップＳ３３５）、ＨＤＤ２２に保存する（ステップＳ３４０）。そして、エンドデータＤ１２ｃを入力したか否かを判別することによって、更新モジュールＤ１２ｂの全てのデータを入力したか否かを判別する（ステップＳ３４５）。
【００４６】
全データが入力されたと判別された場合は、サムチェック等のデータチェック方式によって、全データが正常に入力されてＨＤＤ２２に保存されたか否かを判別する（ステップＳ３５０）。全データが正常に入力されたと判別された場合は、管理サーバ１００にアクセスして他の更新モジュールデータＤ１２が格納されているか否かを判別し（ステップＳ３５５）、他の更新モジュールデータＤ１２が格納されている場合は、ステップＳ３１０以降の処理を繰り返す。一方、他の更新モジュールデータＤ１２が格納されていないと判別された場合は、入力してＨＤＤ２２に格納した更新モジュールＤ１２ｂを更新情報とともに登録する（ステップＳ３６５）。一方、ステップＳ３５０にて正常に保存されなかったと判別された場合は、ＨＤＤ２２に格納した更新モジュールＤ１２ｂを削除する（ステップＳ３６０）。これによって、各レーザプリンタ２０１〜２０ｎの各モジュールｍ１〜ｍ５を更新するに際し、各レーザプリンタ２０１〜２０ｎ毎に各モジュールｍ１〜ｍ５を更新モジュール転送プログラム１２を使用して転送する必要がなくなり、レーザプリンタ２０１〜２０ｎの各モジュールｍ１〜ｍ５のバージョンアップを容易に行うことが可能になる。
【００４７】
（６）まとめ：
このように、レーザプリンタ２０の各モジュールｍ１〜ｍ５をバージョンアップする際、ＥＥＰＲＯＭ２４に格納されている各モジュールｍ１〜ｍ５を上書き格納するのではなく、ＨＤＤ２２に格納し、電源立ち上げ時にこのＨＤＤ２２に格納した更新モジュールＤ１２ｂを読み出してＲＡＭ２３に展開する。これによって、バージョンアップ時にレーザプリンタ２０の電源が遮断される不測の事態が発生したとしても、ＥＥＰＲＯＭ２４に格納されているモジュールｍ１〜ｍ５のデータを破壊することがなくなり、このデータの破壊が原因となってレーザプリンタ２０が立ち上がらなくなったりするといった問題を回避することがことが可能になる。
【図面の簡単な説明】
【図１】本発明にかかる印刷装置の概要を示した概要図である。
【図２】レーザプリンタの構成を示した構成図である。
【図３】実行モジュールの構成を示したモジュール構成図である。
【図４】更新モジュール登録処理の処理内容を示したフローチャートである。
【図５】印刷データと更新モジュールデータのデータ構成を示したデータ構成図である。
【図６】レーザプリンタのＨＤＤのフォルダ構成を示した図である。
【図７】モジュール起動処理の処理内容を示したフローチャートである。
【図８】モジュールの展開態様を示した模式図である。
【図９】更新履歴可能なレーザプリンタのフォルダ構成を示した図である。
【図１０】モジュールバージョン管理システムの構成の一例を示した構成図である。
【図１１】更新モジュール登録処理の処理内容を示したフローチャートである。
【符号の説明】
Ｍ…印刷装置
Ｃ１…更新モジュール入力手段
Ｃ２…モジュール格納手段
Ｃ３…実行モジュール読出手段
Ｃ４…印刷手段
Ｒ１…領域
Ｒ２…領域
１０…ホストコンピュータ
１１…画像プログラム
１２…更新モジュール転送プログラム
２０…レーザプリンタ
２１…ＣＰＵ
２２…ＨＤＤ
２３…ＲＡＭ
２４…ＥＥＰＲＯＭ
２５…通信インターフェース
２６…印刷コントローラ
２６ａ…インターフェース部
２６ｂ…描画部
２６ｃ…バンドメモリ
２６ｄ…色処理部
２７…プリンタエンジン
２８…バス
【図１】
2004017603.tif 000003
【図２】
2004017603.tif 000004
【図３】
2004017603.tif 000005
【図４】
2004017603.tif 000006
【図５】
2004017603.tif 000007
【図６】
2004017603.tif 000008
【図７】
2004017603.tif 000009
【図８】
2004017603.tif 000010
【図９】
2004017603.tif 000011
【図１０】
2004017603.tif 000012
【図１１】
2004017603.tif 000013