(57)【要約】【課題】電子機器の実用性を損なうことなく、電子機器内のファームウェアの記憶容量を低減する。【解決手段】電子機器（例えばプリンタ）の出荷当初、電子機器内のプログラムデバイス７には、必須機能を提供するための必須ファームウェアモジュール５１〜６３だけが格納されている。後に、ユーザが、必須機能以外の機能を提供するためのオプショナルファームウェアモジュール６７〜７５を、外部機器（例えばホストコンピュータ）に用意されたがオプショナルファームウェア群４５の中から選んで、追加的に又は置換的に電子機器内のプログラムデバイス７に格納することができる。【選択図】図２
2008225882.tif 000002
【特許請求の範囲】
【請求項１】
前記電子機器に搭載可能な全ての機能のうちの一部の所定の複数種類の機能を提供するための所定の複数のファームウェアモジュールを初期的に格納し、前記初期格納されたファームウェアモジュールの合計サイズより大きい容量を持つ書き換え可能な記録媒体であるプログラムデバイスと、
前記初期格納されたファームウェアモジュールとは別の種類の1以上のファームウェアモジュールを外部から受け、前記受けたファームウェアモジュールを前記プログラムデバイスに追加的又は置換的に格納し、且つ、前記プログラムデバイスに既に追加的に格納されたファームウェアモジュールを削除するファームウェアメンテナンス手段と
を備えた電子機器。
【請求項２】
請求項１に記載の電子機器において、
前記初期格納されたファームウェアモジュールは、前記電子機器の所定の必須機能を提供するための必須ファームウェアモジュールであり、
前記別の種類の１以上のファームウェアモジュールは、前記電子機器の前記必須機能とは別の１以上の種類のオプショナルな機能をそれぞれ提供するための１以上のオプショナルファームウェアであり、
前記必須ファームウェアモジュール中の少なくとも一つのファームウェアモジュールは、それと代替性のある所定の１種類以上のオプショナル機能をそれぞれ提供するための所定の少なくとも１つのオプショナルファームウェアモジュールと置換されることができる置換可能必須ファームウェアモジュールであり、
前記ファームウェアメンテナンス手段は、
前記所定の少なくとも１つのオプショナルファームウェアモジュールを外部から受けて、前記プログラムデバイス内の前記置換可能必須ファームウェアモジュールを、前記受けた所定のオプショナルファームウェアモジュールで置換するファームウェア置換手段を有する
電子機器。
【請求項３】
請求項２に記載の電子機器において、
外部装置と通信するための複数種類の通信インタフェース装置を備え、
前記置換可能必須ファームウェアモジュールが、前記複数種類のインタフェース装置の中の１種類のインタフェース装置を制御するためのインタフェース制御プログラムであり、
前記置換可能必須ファームウェアモジュールと置換可能である前記所定の少なくとも１つのオプショナルファームウェアモジュールが、前記複数種類のインタフェース装置の中の他の少なくとも１種類のインタフェース装置を制御するための少なくとも１つのインタフェース制御プログラムである、
電子機器。
【請求項４】
請求項２に記載の電子機器において、
前記電子機器は、印刷ジョブデータを外部から受けて印刷を行うプリンタであり、
前記置換可能必須ファームウェアモジュールが、前記印刷ジョブデータで使用され得る複数種類の印刷言語の中の１種類の印刷言語を解釈するための印刷言語制御プログラムであり、
前記置換可能必須ファームウェアモジュールと置換可能である前記所定の少なくとも1つのオプショナルファームウェアモジュールが、前記複数種類の印刷言語の中の他の少なくとも１種類の印刷言語をそれぞれ解釈するための少なくとも１つの印刷言語制御プログラムである、
電子機器。
【請求項５】
請求項２に記載の電子機器において、
前記電子機器は、前記１以上のオプショナルファームウェアモジュール及び前記置換可能必須ファームウェアモジュールを格納した外部記憶装置と通信可能であり、
前記ファームウェアメンテナンス手段は、
前記外部記憶装置からいずれかのオプショナルファームウェアモジュール又はいずれかの置換可能必須ファームウェアモジュールを受けて、前記受けたファームウェアモジュールを前記プログラムデバイスに追加的又は置換的に格納する手段を有する
電子機器。
【請求項６】
請求項１に記載の電子機器において、
前記電子機器は、前記別の種類の１以上のファームウェアモジュールを格納した外部記憶装置と通信可能であり、
前記ファームウェアメンテナンス手段は、
前記プログラムデバイスと前記外部記憶装置とを調べて、前記外部記憶装置内の1以上のファームウェアモジュールと置換可能な1以上のファームウェアモジュールを、前記プログラムデバイスからピップアップし、前記プログラムデバイスからピックアップされたい1以上のファームウェアモジュールと置換可能である１以上のファームウェアモジュールを、前記外部記憶装置からピックアップする手段と、
前記外部記憶装置からピックアップされた１以上のファームウェアモジュールの中から、ユーザに１つのファームウェアモジュールを選択させる手段と、
前記ユーザ選択された１つのファームウェアモジュールで、前記プログラムデバイスからピックアップされた１以上のファームウェアモジュール中の、前記ユーザ選択された１つのファームウェアモジュールと代替可能な１つのファームウェアモジュールを、前記ユーザ選択された１つのファームウェアモジュールで置換する手段と
を有する
電子機器。
【請求項７】
請求項１に記載の電子機器において、
前記プログラムデバイスの記憶エリアの中で、前記ファームウェアモジュールが格納されてないエリアを、前記ファームウェアモジュールの格納とは別の目的に使用する空エリア管理手段を更に備えた電子機器。
【請求項８】
請求項１に記載の電子機器において、
前記電子機器は、ホスト装置の周辺デバイスであり、
前記ホスト装置に前記電子機器のためのデバイスドライバがインストールされるときに、前記ファームウェア置換手段が動作するようになっている電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、プリンタのような電子機器に関し、特に、その電子機器に内蔵される或る程度に固定的なコンピュータプログラムつまりファームウェアのメンテナンスのための技術に関する。
【背景技術】
【０００２】
電子機器には、それがもつ種々の機能のための種々のファームウェアが内蔵される。コンピュータ周辺機器の一つであるプリンタを例にとると、プリンタには、多くの印刷制御言語(例えば、プリンタメーカ独自言語、PostScript（登録商標）等の標準的ページ記述言語、エミュレータなど)、ネットワーク通信機能、種々のオプションデバイス(例えばハードディスクドライブ)との制御・通信機能、複数種類のホストインターフェース機能など、非常に多くの機能が搭載される。それらの機能を行うために非常に多くのファームウェアモジュールがプリンタに内蔵される。
【０００３】
特許文献１には、通信インタフェース用のファームウェアの書き換えに関する技術が開示されている。この従来技術によれば、機器に装着される通信インタフェースが新しいものに取り換えられた場合、機器内の古い通信インタフェース用のファームウェアが、自動的に新しい通信インタフェース用のファームウェアに書き換えられる。
【特許文献１】特開２００２−３２４０１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
電子機器に内蔵されるファームウェアモジュールの種類やサイズは、電子機器の機能の多様化と高度化に伴い増大している。従って、それら多数のファームウェアモジュールを記憶するために必要なプログラムデバイス（典型的には、フラッシュメモリのような書換可能不揮発性半導体メモリ）の容量も年々増大している。ところが、大容量のプログラムデバイスは高価である為、この事がプリンタのコストアップの大きな要因となる。
【０００５】
従って、本発明の目的は、電子機器の実用性を損なうことなく、電子機器内のファームウェアの記憶容量を低減することにある。
【課題を解決するための手段】
【０００６】
本発明に従う電子機器は、前記電子機器に搭載可能な全ての機能のうちの一部の所定の複数種類の機能を提供するための所定の複数のファームウェアモジュールを初期的に格納し、前記初期格納されたファームウェアモジュールの合計サイズより大きい容量を持つ書き換え可能な記録媒体であるプログラムデバイスと、前記初期格納されたファームウェアモジュールとは別の種類の1以上のファームウェアモジュールを外部から受け、前記受けたファームウェアモジュールを前記プログラムデバイスに追加的又は置換的に格納し、且つ、前記プログラムデバイスに既に追加的に格納されたファームウェアモジュールを削除するファームウェアメンテナンス手段とを備える。
【０００７】
この電子機器によれば、電子機器に搭載可能な全ての機能中の一部の機能のファームウェアモジュールがプログラムデバイスに格納されるから、プログラムデバイスの容量を全ファームウェアモジュールの合計サイズより小さくすることができる。プログラムデバイスの容量は、初期格納されたファームウェアモジュールの合計サイズよりは大きく、初期的に空エリアがあるので、後に必要に応じて、初期格納されたファームウェアモジュール以外のファームウェアモジュールをその空エリアに格納することができる。
【０００８】
好適な実施形態では、前記初期格納されたファームウェアモジュールは、前記電子機器の所定の必須機能を提供するための必須ファームウェアモジュールであり、前記別の種類１以上のファームウェアモジュールは、前記電子機器の前記必須機能とは別の１以上の種類のオプショナルな機能をそれぞれ提供するための１以上のオプショナルファームウェアである。さらに、前記必須ファームウェアモジュール中の少なくとも一つのファームウェアモジュールは、それと代替性のある所定の１種類以上のオプショナル機能をそれぞれ提供するための所定の少なくとも１つのオプショナルファームウェアモジュールと置換されることができる置換可能必須ファームウェアモジュールである。そして、前記ファームウェアメンテナンス手段は、前記所定の少なくとも１つのオプショナルファームウェアモジュールを外部から受けて、前記プログラムデバイス内の前記置換可能必須ファームウェアモジュールを、前記受けた所定のオプショナルファームウェアモジュールで置換するファームウェア置換手段を有する。
【０００９】
例えば、この電子機器が外部装置と通信するための複数種類の通信インタフェース装置を備える場合、前記置換可能必須ファームウェアモジュールは、前記複数種類のインタフェース装置の中の１種類のインタフェース装置を制御するためのインタフェース制御プログラムであってよく、前記置換可能必須ファームウェアモジュールと置換可能である前記所定の少なくとも１つのオプショナルファームウェアモジュールは、前記複数種類のインタフェース装置の中の他の少なくとも１種類のインタフェース装置を制御するための少なくとも１つのインタフェース制御プログラムであってよい。
【００１０】
あるいは、例えば、この電子機器が、印刷ジョブデータを外部から受けて印刷を行うプリンタである場合、前記置換可能必須ファームウェアモジュールが、前記印刷ジョブデータで使用され得る複数種類の印刷言語の中の１種類の印刷言語を解釈するための印刷言語制御プログラムであってよく、また、前記置換可能必須ファームウェアモジュールと置換可能である前記所定の少なくとも1つのオプショナルファームウェアモジュールが、前記複数種類の印刷言語の中の他の少なくとも１種類の印刷言語をそれぞれ解釈するための少なくとも１つの印刷言語制御プログラムであってよい。
【００１１】
このような構成により、電子機器に、代替可能な複数の機能が搭載可能である場合、それら複数の機能のファームウェアモジュールの全てをプログラムデバイスに格納する必要はなく、少なくとも１つ又は少数の良く利用する機能のファームウェアモジュールだけを格納しておくことができるから、プログラムデバイスの容量が節約できる。
【００１２】
また、好適な実施形態では、この電子機器は、前記１以上のオプショナルファームウェアモジュール及び前記置換可能必須ファームウェアモジュールを格納した外部記憶装置と通信可能である。そして、前記ファームウェアメンテナンス手段は、前記外部記憶装置からいずれかのオプショナルファームウェアモジュール又はいずれかの置換可能必須ファームウェアモジュールを受けて、前記受けたファームウェアモジュールを前記プログラムデバイスに追加的又は置換的に格納する手段を有する。
【００１３】
この構成によれば、外部記憶装置内にオプショナルファームウェアモジュールだけでなく置換可能必須ファームウェアモジュールも格納されていて、そこからいずれかのファームウェアモジュールを受けてプログラムデバイスに格納できる。それゆえ、プログラムデバイス内の置換可能必須ファームウェアモジュールを、外部記憶装置からの代替性のあるオプショナルファームウェアモジュールと置換することだけでなく、そのような置換を行った後に、逆方向に置換をして再び置換可能必須ファームウェアモジュールをプログラムデバイスに戻すこともできる。
【００１４】
好適な実施形態では、この電子機器は、前記別の種類の１以上のファームウェアモジュールを格納した外部記憶装置と通信可能である。そして、前記ファームウェアメンテナンス手段は、前記プログラムデバイスと前記外部記憶装置とを調べて、前記外部記憶装置内の1以上のファームウェアモジュールと置換可能な1以上のファームウェアモジュールを、前記プログラムデバイスからピップアップし、前記プログラムデバイスからピックアップされたい1以上のファームウェアモジュールと置換可能である１以上のファームウェアモジュールを、前記外部記憶装置からピックアップする手段と、前記外部記憶装置からピックアップされた１以上のファームウェアモジュールの中から、ユーザに１つのファームウェアモジュールを選択させる手段と、前記ユーザ選択された１つのファームウェアモジュールで、前記プログラムデバイスからピックアップされた１以上のファームウェアモジュール中の、前記ユーザ選択された１つのファームウェアモジュールと代替可能な１つのファームウェアモジュールを、前記ユーザ選択された１つのファームウェアモジュールで置換する手段とを有する。
【００１５】
この構成によれば、ファームウェアメンテナンス手段が、プログラムデバイスと外部記憶装置とを調べて、互いに置換可能なファームウェアモジュールの組をピックアップし、そのピックアップされたものの中から、ユーザが置換対象のファームウェアモジュールを選択することができる。それゆえ、特にファームウェアモジュールの種類が多い場合に、ユーザの操作が楽でかつ間違いが少ない。
【００１６】
好適な実施形態では、この電子機器は、前記プログラムデバイスの記憶エリアの中で、前記ファームウェアモジュールが格納されてないエリアを、前記ファームウェアモジュールの格納とは別の目的に使用する空エリア管理手段を更に備える。これにより、空エリアを有効活用して、電子機器の性能を高めることができる。
【００１７】
好適な実施形態では、この電子機器は、ホスト装置の周辺デバイスであり、前記ホスト装置に前記電子機器のためのデバイスドライバがインストールされるときに、前記ファームウェア置換手段が動作するようになっている。これにより、周辺デバイスとしてのこの電子機器を利用する環境をセットアップするときに、電子機器内のファームウェアを、初期格納されたファームウェアモジュールの組み合わせより適切な組み合わせへとセットアップできるので、ユーザにとり使い易い。
【発明の効果】
【００１８】
本発明によれば、電子機器の実用性を損なうことなく、電子機器内のファームウェアの記憶容量が低減できる。
【発明を実施するための最良の形態】
【００１９】
図１は、本発明に従う電子機器の一実施形態であるプリンタとホストコンピュータを有するプリントシステムの全体構成を示す。
【００２０】
図１に示すように、プリントシステム１００は、プリンタ１と、これに通信可能に接続されたホストコンピュータ３とを備える。プリンタ１は、ＣＰＵ５、プログラムデバイス７、コントロールパネル９、印刷エンジン１１、エンジンコントローラ２３、及びホスト装置との通信用の複数種類の通信インタフェース装置１５、１７、１９などを備える。
【００２１】
プログラムデバイス７は、例えばフラッシュメモリのような書換え可能な不揮発性メモリであり、そこには、複数のファームウェアモジュールが記憶されるが、それらの具体例は後に説明する。ＣＰＵ５は、プログラムデバイス７からファームウェアモジュールをロードしそれを実行することにより、プリンタ１の各部の動作を制御する。コントロールパネル９は、ユーザが手動でプリンタ１を操作したり、プリンタ１からのユーザ向けのメッセージを表示したりするための装置である。印刷エンジン１１は、用紙へ液状または粉状のインクを付着させて画像を印刷する動作を行うための機構及び回路である。エンジンコントローラ１３は、ＣＰＵ５から印刷データを受けて印刷エンジン１１を駆動し制御する回路である。
【００２２】
複数種類の通信インタフェース装置１５、１７、１９は、それぞれ、ホストコンピュータ３やその他の周辺デバイスと通信するためのものである。この実施形態では、一例として、１種類の通信インタフェース装置１５のみがホストコンピュータ３との接続で使用されているが、残りのインタフェース１７、１９は使用されていない。
【００２３】
ホストコンピュータ３、汎用的なコンピュータ、デジタルカメラあるいはその他の情報処理機器であってよく、ＣＰＵ２１、ＲＡＭ２３、ＲＯＭ２５、ストレージ装置２７、及びプリンタ１のような外部の電子機器との通信用の複数種類のインタフェース装置３１、３３、３５などを備える。複数種類のインタフェース装置３１、３３、３５のうち、この実施形態では、一つのインタフェース装置３１がプリンタ１との接続に使用されている。
【００２４】
ストレージ装置２７は、例えばハードディスクドライブであり、そこには、ＣＰＵ２１により実行されたり、あるいはプリンタ１へ送信されたりすることになる、各種のプログラムが格納されている。それらのプログラムの代表は、オペレーティングシステム及び各種アプリケーションプログラムであるが、いずれも図示省略されている。さらに、プリンタ１に関連するプログラムとして、プリンタドライバ４１、ファームウェアセットアッププログラム４３及びオプショナルファームウェアモジュール群４５が、ストレージ装置２７に格納される。プリンタドライバ４１、ファームウェアセットアッププログラム４３及びオプショナルファームウェアモジュール群４５は、プリンタ１に付属するＣＤ−ＲＯＭのような外部記録媒体、あるいは、プリンタメーカが提供する広域ネットワーク上のダウンロードサイトなどから、ホストコンピュータ３に供給される。
【００２５】
プリンタドライバ４１は、ＣＰＵ２１に実行されることで、主に、アプリケーションプログラムから文書データを受けて印刷ジョブデータを作成し、その印刷ジョブデータをプリンタ１に送る処理を行う。ファームウェアセットアッププログラム４３は、ＣＰＵ２１に実行されることで、本発明の原理に従って、プリンタ１のプログラムデバイス７にユーザ所望のファームウェアモジュールを追加したり、消去したり、或いは置換したりすることをプリンタ１に命令し、かつ、追加されるファームウェアモジュールをオプションファームウェアモジュール群４５から選んでプリンタ１へ送信する。オプションファームウェアモジュール群４５は、プリンタ１のプログラムデバイス７に追加されたり、消去されたり、或いは置換されたりすることができる複数のファームウェアモジュールの集まりであり、その具体例は後述する。
【００２６】
ファームウェアセットアッププログラム４３の実行は、ユーザが任意の時に行えるようになっていてもよいし、プリンタドライバ４１がインストールされるときに、自動的に行われるようになっていてもよい。後者の場合、プリンタ１を使用する環境をセットアップするときに、プリンタ１内のファームウェアのセットアップ（ユーザにとって最適と思われるファームウェアモジュールのプリンタ１へのセットアップ）が行えるので便利である。プログラム４３とオプションファームウェアモジュール群４５は、必ずしも、ストレージ装置２７にインストールされてなくてもよく、例えばプリンタドライバ４１をインストールするためのプリンタ１に付属のＣＤ−ＲＯＭのような外部記録媒体に格納されていて、実行時にはそこからＣＰＵ２１にロードされるようになっていてもよい。
【００２７】
図２は、図１に示されたプリントシステム１において、プリンタ１内のファームウェアを追加、消去、置換するための機能的構成をより具体的に示す。
【００２８】
図２において、ファームウェアセットアッププロセス８１とは、図１に示したファームウェアセットアッププログラム４３がホストコンピュータ１により実行されることで行われる制御プロセスである。また、ファームウェアメンテナンスプロセス８３とは、プリンタ１のプログラムデバイス７に格納されたファームウェアモジュールの一つである後述のファームウェアメンテナンスプログラム５９が、プリンタ１で実行されることにより行われる制御プロセスである。ホストコンピュータ１で、ファームウェアセットアッププログラム４３が起動されてファームウェアセットアッププロセス８１が開始されると、ファームウェアセットアッププロセス８１はプリンタ１に命じてファームウェアメンテナンスプログラム５９を起動させ、ファームウェアメンテナンスプロセス８３が開始するようになっている。
【００２９】
図２に示されるように、ファームウェアセットアッププロセス８１とファームウェアメンテナンスプロセス８３とが、互いに連携して、ホストコンピュータ３内のオプショナルファームウェアモジュール群４５中から任意のファームウェアモジュールを選択して、選択されたファームウェアモジュールを、プリンタ１内のプログラムデバイス７に書き込むことができる。それだけでなく、ファームウェアセットアッププロセス８１とファームウェアメンテナンスプロセス８３とは、互いに連携して、プログラムデバイス７から不要なファームウェアモジュールを削除したり、或いは、プログラムデバイス７内の或るファームウェアモジュールを、オプショナルファームウェアモジュール群４５中の代替可能なファームウェアモジュールで置換したりすることができる。
【００３０】
ところで、プリンタ１の工場出荷時において、プリンタ１内のプログラムデバイス７には、図２に例示されるような所定の複数のプログラムモジュール５１〜６３が、初期的に格納されている。これらの初期格納されたプログラムモジュール５１〜６３は、プリンタ１に必須な（必須と考えられる）所定の機能（以下、「必須機能」といい、例えば、印刷機能、ホストコンピュータとの通信機能、ユーザインタフェース（コントロールパネル）の機能、及び、本発明の原理に従ったファームウェアをメンテナンスする機能など）をそれぞれ実現するためのファームウェアモジュールであり、これらを以下、「必須ファームウェアモジュール」という。
【００３１】
プログラムデバイス７の容量は、望ましくは、初期格納された必須プログラムモジュール５１〜６３の合計サイズより大きく、その容量中の余った分の領域は、ユーザエリア６５として管理される。ユーザエリア６４は、ファームウェア以外のデータ又はプログラム、例えば、ユーザが任意に入力したフォントデータ、文書フォームデータ、または、ホストコンピュータ３などから入力された印刷ジョブデータなどのユーザデータを記憶するために利用可能である。
【００３２】
必須ファームウェアモジュールが提供する必須機能は、プリンタ１に搭載可能な全部の機能ではなく、そのうちの一部にすぎない。必須機能以外のオプショナルな機能を提供するためのファームウェアモジュール６７、６９、７１〜７７は、プログラムデバイス７に初期的には格納されておらず、代わりに、オプショナルファームウェアモジュール群４５に含まれており、後に、ファームウェアセットアッププロセス８１とファームウェアメンテナンスプロセス８３とを通じて、プログラムデバイス７に追加的に又は置換的に格納することができるようになっている。ユーザエリア６５のサイズは、このような後の追加的又は置換的なモジュール格納によって変化する。
【００３３】
この実施形態では、プログラムデバイス７に初期格納された必須ファームウェアモジュールには、例えば、プリンタＯＳ（プリンタのオペレーティングシステム）５１、プリンタ１に搭載された所定デバイス用のデバイスドライバ群５３、コントロールパネル制御プログラム５５、所定周辺機器の制御用やその他の所定必須機能用のプログラム５７、ファームウェアメンテナンスプログラム５９などが含まれる。ここで、ファームウェアメンテナンスプログラム５９は、プリンタ１のＣＰＵ５により実行されることで、上述したファームウェアメンテナンスプロセス８３を行うものである。ファームウェアメンテナンスプロセス８３は、ホストコンピュータ３におけるファームウェアセットアッププログラム４３の実行によって行われるファームウェアセットアッププロセス８１と連携して、プログラムデバイス７内のファームウェアモジュールの追加、削除及び置換の動作を行う。
【００３４】
プログラムデバイス７に初期格納された必須ファームウェアモジュールには、さらに、少なくとも１種類（または最低限必要な小数種類）の印刷制御言語プログラム６１と、少なくとも１種類（または最低限必要な小数種類）のホスト通信インタフェース制御プログラム６３が含まれる。印刷制御言語（印刷ジョブデータで使用される言語）には複数種類のもの（例えば、プリンタ１のメーカが独自に定義した印刷制御言語、PostScript（登録商標）のような標準的なページ記述言語、及び各種のエミュレータなど）があるが、このうちプリンタ１で最もよく使われる１種類（または最低限必要な種類）の言語（例えば、プリンタ１のメーカが独自に定義した印刷制御言語）を解釈する印刷制御言語プログラム６１が、必須ファームウェアモジュールとして初期格納されている。また、ホスト通信用のインタファースにも複数種類のもの（例えば、図１に示した複数種類のインタフェース１５〜１９であり、例えば、パラレルインタフェース、ＵＳＢ、ネットワークインタフェースなど）があるが、その中で、プリンタ１で最もよく使われる１種類（または最低限必要な種類）の通信インタフェース（例えば、図１に示した１種類の通信インタフェース装置１５であり、例えばＵＳＢ）の制御プログラム６３が、必須ファームウェアモジュールとして初期格納されている。
【００３５】
ここで、印刷制御言語プログラム６１は、これと代替性をもつ別種類のオプショナルな印刷言語制御機能を提供するオプショナルな印刷制御言語プログラムと置換されることができる。その理由は、プリンタ１に搭載可能な全ての種類の印刷制御言語が必ずしも使用できなければならないわけではなく、ユーザが利用する少なくとも１種類のプリンタ制御言語が使用できれば、プリンタの必要条件を満たすからである。必須ファームウェアモジュールとしての印刷制御言語プログラム６１、及びこれと代替性のある他種類のオプショナルな印刷制御言語プログラム６７、６９は、オプショナルファームウェアモジュール群４５に含まれており、後に、ファームウェアセットアッププロセス８１とファームウェアメンテナンスプロセス８３とを通じて、プログラムデバイス７に追加的に又は置換的に格納することができ、また、置換や追加をした後に元へ戻すこともできるようになっている。
【００３６】
これと同様に、通信インタフェース制御プログラム６３も、これと代替性をもつ別種類のオプショナルな通信インタフェース機能を提供するオプショナルな通信インタフェース制御プログラムと置換されることができる。その理由は、プリンタ１に搭載可能な全ての種類の通信インタフェースが必ずしも使用できなければならないわけではなく、ユーザが利用する少なくとも１種類の通信インタフェースが使用できれば、プリンタの必要条件を満たすからである。必須ファームウェアモジュールとしての通信インタフェース制御プログラム６３、及びこれと代替性のある他種類のオプショナルな印刷制御言語プログラム７１、７５は、オプショナルファームウェアモジュール群４５に含まれており、後に、ファームウェアセットアッププロセス８１とファームウェアメンテナンスプロセス８３とを通じて、プログラムデバイス７に追加的に又は置換的に格納することができ、また、置換や追加をした後に元へ戻すこともできるようになっている。
【００３７】
プログラムデバイス7に初期格納された必須ファームウェアモジュールのうち、印刷制御言語プログラム６１と通信インタフェース制御プログラム６３のように、それと代替性のある他の種類のファームウェアモジュールによって置換され得るものを、以下、「置換可能必須ファームウェアモジュール」という。これに対し、プリンタＯＳ５１、デバイスドライバ群５３、コントロールパネル制御プログラム５５、周辺機器制御プログラム５７及びファームウェアメンテナンスプログラム５９のように、他の種類のファームウェアモジュールで置換し得ない必須ファームウェアモジュールを、以下、「絶対必須ファームウェアモジュール」という。
【００３８】
他方、ホストコンピュータ３に格納されたオプショナルファームウェアモジュール群４５には、上述したように、プログラムデバイス７に追加的に又は置換的に格納することができる複数のオプショナルなファームウェアモジュール６７〜７７が含まれており、これらを以下、「オプショナルファームウェアモジュール」という。これらのオプショナルファームウェアモジュールの中には、既に説明したオプショナルな印刷制御言語プログラム６５、６９及びオプショナルな通信インタフェース制御プログラム７１、７３の他に、付加的な機能をプリンタ１に提供するためのファームウェアモジュールとして、ネットワークＯＳ７５及びハードディスク制御プログラム７７がある。ネットワークＯＳ７５は、追加機能としてのＬＡＮなどのネットワークでの通信機能を提供するオペレーシングシステムである。ハードディスク制御プログラム７７は、追加機能としてハードディスクドライブ使用機能を提供するためのデバイスドライバである。
【００３９】
さらに、上述した置換可能必須ファームウェアモジュールである印刷制御言語プログラム６１と通信インタフェース制御プログラム６３も、オプショナルファームウェアモジュール群４５に含まれている。その理由は、その必須ファームウェアモジュールが別の代替性のあるオプショナルファームウェアモジュールに置換にされた後に、再びその必須ファームウェアモジュールを格納することができるようにするためである。
【００４０】
このようなオプショナルファームウェアモジュール群４５中から、ユーザが利用したい一部のオプショナルファームウェアモジュールだけを選択して、プログラムデバイス７に置換的又は追加的に格納することが、プログラムデバイス７の容量を超えない範囲内で可能である。もし、プログラムデバイス７の容量が、全ての必須及びオプショナルファームウェアモジュールの合計のサイズ以上に大きければ、全ての必須及びオプショナルファームウェアモジュールをプログラムデバイス７に格納することが可能である。図３は、全ての必須及びオプショナルオプショナルファームウェアモジュールがプログラムデバイス７に格納された状態を示している。従来技術によれば、プログラムデバイスの容量は、全てのファームウェアモジュールを収容できるよう大きく、プログラムデバイスは初期的に図３に示すように、全てのファームウェアモジュールを格納した状態になっている。これに対し、本実施形態によれば、必須ファームウェアモジュールだけが初期的にプログラムデバイス７に格納されており、後に、ユーザが必要と考えるオプショナルファームウェアモジュールを選択的にプログラムデバイス７に追加的又は置換的に格納すればよい。そのため、プログラムデバイス７の容量は、全てのファームウェアモジュールの合計サイズより小さく、必須ファームウェアモジュールの合計サイズより大きい適当値に選ぶことができ、プログラムデバイス７の容量とコストの増大を抑えることができる。加えて、プログラムデバイス７に格納されるファームウェアモジュールの数を極力少なくすれば、ユーザエリア６５として使用できる容量が増えるから、プリンタ１のパフォーマンスの向上が期待できる。
【００４１】
なお、図２及び図３を参照して上に説明した各種のファームウェアモジュールの具体例は、本発明の説明のための簡単な例を示したにすぎず、本発明の実施品では、これらの例示とは異なる種類の或いはより多くの種類のファームウェアモジュールが、必須ファームウェアモジュール又はオプショナルファームウェアモジュールとして採用され得る。
【００４２】
図４は、図２に示したファームウェアセットアッププロセス８１の流れを示す。
【００４３】
図４に示すように、ステップS1で、ファームウェアセットアッププロセス８１は、ファームウェアメンテナンスプロセス８３を通じて、プリンタ１内のプログラムデバイス７を調べて、そこに現在格納されている置換可能なファームウェアモジュールと消去可能なファームウェアモジュールの全てをピックアップし、また、プログラムデバイス７の空エリアサイズ（ユーザエリア６５のサイズ）を把握し、ピックアップされた置換可能なファームウェアモジュールと消去可能なファームウェアモジュールのリスト（以下、「実装リスト」という）と、把握された空エリアサイズとを、ホストコンピュータ１のディスプレイスクリーン(図示省略）に表示する。ここで、置換可能なファームウェアモジュールとは、プログラムデバイス７内の置換可能必須ファームウェアモジュールと、置換可能必須ファームウェアモジュールを置換してプログラムデバイス７に格納されたオプショナルファームウェアモジュールである。消去可能なファームウェアモジュールとは、プログラムデバイス７に追加的に格納されたオプショナルファームウェアモジュールである。
【００４４】
ステップS2で、ファームウェアセットアッププロセス８１は、ホストコンピュータ１内のオプショナルファームウェアモジュール群４５を調べて、そこに含まれる置換可能必須及びオプショナルファームウェアモジュールの全てをピックアップし、ピックアップされたファームウェアモジュールのリスト（以下、「オプションリスト」という）を、ホストコンピュータ１のディスプレイスクリーン(図示省略）に、上述した実装リストと並べて表示する。
【００４５】
ステップS3で、ファームウェアセットアッププロセス８１は、行いたい操作の種類（置換、追加または削除）をユーザに選択させる。ユーザ選択された操作種類が「置換」であったならば（ステップS11）、制御はステップ１２へ進み、「追加」であったならば(ステップS21）、制御はステップ２２へ進み、また、「削除」であったならば(ステップS31)、制御はステップS32へ進む。
【００４６】
ステップS11で「置換」が選択された場合、ステップS12で、ファームウェアセットアッププロセス８１は、ユーザに、表示された実装リスト中の上記ステップS2でピックアップされた置換可能なファームウェアモジュールの中から、削除したいファームウェアモジュール（以下、「削除モジュール」という）を選択させる。ステップS13で、ファームウェアセットアッププロセス８１は、ユーザ選択された削除モジュールと機能的に置換可能（代替性のある）であって且つプログラムデバイス７の空エリアサイズの範囲内で（つまり、空きエリアサイズを超えずに）その置換が行えるようなサイズをもつファームウェアモジュール（以下「置換可能モジュール」という）、を、表示されたオプションリスト中で選択し表示する。ステップS14で、ファームウェアセットアッププロセス８１は、ユーザに、表示された置換可能モジュール中から、削除モジュールと置換したいアームウェアモジュール(以下、「置換モジュール」という）を選択させる。
【００４７】
ステップS15で、ファームウェアセットアッププロセス８１は、ストレージ装置２７のオプショナルファームウェア群４５から置換モジュールを読み出し、そして、置換命令と、削除モジュールの識別情報と、読み出された置換モジュールとを、プリンタ１（ファームウェアメンテナンスプロセス８３）へ送信する。
【００４８】
他方、ステップS21で「追加」が選択された場合、ステップS22で、ファームウェアセットアッププロセス８１は、プログラムデバイス７の空エリアサイズの範囲内で（つまり、空きエリアサイズを超えずに）追加可能であるようなサイズをもつファームウェアモジュール（以下、「追加可能モジュール」という）を、表示されたオプションリスト中で選択し表示する。ステップS23で、ファームウェアセットアッププロセス８１は、ユーザに、追加したいファームウェアモジュール（以下、「追加モジュール」と言う）を、表示された追加可能モジュール中から選択させる。
【００４９】
ステップS24で、ファームウェアセットアッププロセス８１は、追加モジュールをストレージ装置４１内のオプショナルファームウェア群４５から読み出し、追加命令と、読み出された追加モジュールとを、プリンタ１（ファームウェアメンテナンスプロセス８３）へ送信する。
【００５０】
また、ステップS31で「削除」が選択された場合、ステップS32で、ファームウェアセットアッププロセス８１は、ユーザに、表示された実装リスト中の上記ステップS2でピックアップされた削除可能なファームウェアモジュールの中から、削除モジュールを選択させる。そして、ステップS33で、削除命令と、削除モジュールの識別情報とを、プリンタ１（ファームウェアメンテナンスプロセス８３）へ送信する。
【００５１】
図５は、図２に示されたファームウェアメンテナンスプロセス８３の流れを示す。これは、上述したファームウェアセットアッププロセス８１と連携するプロセスである。
【００５２】
図５に示すように、ステップS41で、ファームウェアメンテナンスプロセス８３は、ホストコンピュータ１（ファームウェアセットアッププロセス８１）から、置換、追加又は削除命令と、それに付随するパラメータ又はデータ（すなわち、置換モジュールまたは追加モジュールと、もしあれば、削除モジュールの識別情報）とを受信する。ステップS42で、ファームウェアメンテナンスプロセス８３は、プログラムデバイス７に対して、命じられた置換、追加又は削除を実行する。すなわち、置換命令を受けた場合には、受けた識別情報に該当する削除モジュールをプログラムデバイス７から削除し、そして、受けた置換モジュールをプログラムデバイス７に書き込む。また、追加命令を受けた場合には、受けた追加モジュールをプログラムデバイス７に書き込む。また、削除命令を受けた場合には、受けた識別情報に該当する削除モジュールをプログラムデバイス７から削除する。
【００５３】
ステップS43で、ファームウェアメンテナンスプロセス８３は、置換、追加又は削除が行われた後のプログラムデバイス７内の空エリアの場所とサイズを調べ、以後、その空エリアをユーザエリア６５として利用できるように管理する。
【００５４】
以上、本発明の好適な実施形態を説明したが、上記実施形態は本発明の説明のための例示にすぎず、本発明の範囲を上記実施形態にのみ限定する趣旨ではない。従って、本発明は、その要旨を逸脱することなしに、上記実施形態とは異なる態様でも、実施することができる。
【００５５】
例えば、上述した実施形態においてホストコンピュータ３で実行されるファームウェアセットアッププログラム４３が提供するファームウェアモジュールの置換／追加／消去のための機能が、プリンタ１内のファームウェアメンテナンスプログラム５９によって行われえるようになっていて、それにより、ホストコンピュータ３を用いなくても、プリンタ１だけで、ファームウェアモジュールの置換／追加／消去が行えるようになっていてもよい。その場合、オプショナルファームウェアモジュール群４５は、外部記録媒体、ホストコンピュータ又はネットワーク上のダウンロードサイトなどの外部装置から、プリンタ１に提供されるようになっていてよい。
【００５６】
また、上述した実施形態では、プログラムデバイス７は、書き換え可能な不揮発性メモリ、例えばフラッシュメモリであるが、別の種類の書き換え可能な記録媒体、例えば書き換え可能な不揮発性メモリの一つであるハードディスクドライブ、或いは、書き換え可能なメモリの一つであるＲＡＭなどであってもよい。
【図面の簡単な説明】
【００５７】
【図１】本発明に従う電子機器の一実施形態であるプリンタとホストコンピュータを有するプリントシステムの全体構成を示すブロック図。
【図２】図１に示されたプリントシステム１において、プリンタ１内のファームウェアを追加、消去、置換するための機能的構成をより具体的に示したブロック図。
【図３】全てのファームウェアモジュールが格納されたプログラムデバイス７の状態を示すブロック図。
【図４】図２に示したファームウェアセットアッププロセス８１の流れを示す図。
【図５】図２に示したファームウェアメンテナンスプロセス８３の流れを示す図。
【符号の説明】
【００５８】
１００  プリントシステム、  １  プリンタ、  ３  ホストコンピュータ、  ５  CPU、  ７  プログラムデバイス、  １５、１７、１９  通信インタフェース、  ４３  ファームウェアセットアッププログラム、  ４５  オプショナルファームウェアモジュール群、  ５１、５３、５５、５７、５９  （絶対）必須ファームウェアモジュール、  ６１、６３  （置換可能）必須ファームウェアモジュール、  ６７、６９、７１、７３、７５、７７  オプショナルファームウェアモジュール、  ６５  ユーザエリア。
【図１】
2008225882.tif 000003
【図２】
2008225882.tif 000004
【図３】
2008225882.tif 000005
【図４】
2008225882.tif 000006
【図５】
2008225882.tif 000007