(57)【特許請求の範囲】
【請求項１】
制御コマンドにより機器を制御するデバイス制御装置であって、
前記機器に対する前記制御コマンドを生成するコマンド生成部と、
前記機器のエラーを監視するモニタ部と、
前記機器のファームウェアのバージョン情報と前記機器のエラーを解消するための前記制御コマンドの変更内容とが対応して登録されたコマンド変更表と
を備え、
前記モニタ部は、前記機器のエラーの発生頻度に基づき、前記バージョン情報に対応させて前記エラーを解消するための所定の制御コマンドの内容を所定の代替内容に変更するようなコマンド変更内容を前記コマンド変更表に登録し、
前記コマンド生成部は前記所定の制御コマンドを生成する場合、前記コマンド変更表を参照して前記所定の制御コマンドの内容を前記所定の代替内容に変更する
ことを特徴とするデバイス制御装置。
【請求項２】
前記モニタ部は、前記機器のエラーの回数をカウントするカウンタを備え、前記カウンタが閾値を超えた場合、前記コマンド変更表に前記コマンド変更内容を登録することを特徴とする請求項１記載のデバイス制御装置。
【請求項３】
機器に対する制御コマンドを生成するコマンド生成部と、
前記機器のエラーを監視するモニタ部と、
前記機器のファームウェアのバージョン情報と前記機器のエラーを解消するための前記制御コマンドの変更内容との変更内容とが対応して登録されたコマンド変更表を生成する手段と、
を備え、
前記モニタ部は、前記機器のエラーの発生頻度に基づき、前記バージョン情報に対応させて前記エラーを解消するための所定の制御コマンドの内容を所定の代替内容に変更するようなコマンド変更内容を前記コマンド変更表に登録し、
前記コマンド生成部は前記所定の制御コマンドを生成する場合、前記コマンド変更表を参照して前記所定の制御コマンドの内容を前記所定の代替内容に変更する
ことを特徴とするデバイス制御装置としてコンピュータを機能させるためのプログラムを記録した、コンピュータ読み取り可能な記録媒体。
【請求項４】
前記モニタ部は、前記機器のエラーの回数をカウントするカウンタを備え、前記カウンタが閾値を超えた場合、前記コマンド変更表に前記コマンド変更内容を登録することを特徴とするデバイス制御装置としてコンピュータを機能させるためのプログラムを記録した、コンピュータ読み取り可能な請求項３記載の記録媒体。
【請求項５】
制御コマンドにより機器を制御するデバイス制御方法であって、
コマンド生成手段が前記機器に対する前記制御コマンドを生成するステップと、
モニタ手段が前記機器のエラーを監視するステップと、
前記機器のファームウェアのバージョン情報に対応させて前記エラーを解消するための制御コマンドを登録したコマンド変更表を生成するステップと、
前記コマンド生成手段は前記コマンド変更表を参照して前記制御コマンドを生成するステップと
前記機器のエラーの発生頻度に基づき、前記バージョン情報に対応させて前記エラーを解消するための所定の制御コマンドの内容を所定の代替内容に変更するようなコマンド変更内容を前記コマンド変更表に登録するステップと、
前記所定の制御コマンドを生成する場合、前記コマンド変更表を参照して前記所定の制御コマンドの内容を前記所定の代替内容に変更するステップと
を有するデバイス制御方法。
【請求項６】
前記モニタ手段が前記機器のエラーの回数をカウントするステップと、
カウンタが閾値を超えた場合、前記コマンド変更表に前記コマンド変更内容を登録するステップ
を有する請求項５記載のデバイス制御方法。
【請求項７】
制御コマンドにより制御される機器と、前記機器を制御するデバイス制御装置とを備えたデバイス制御システムであって、
前記機器に対する前記制御コマンドを生成するコマンド生成部と、
前記機器のエラーを監視するモニタ部と、
前記機器のファームウェアのバージョン情報と前記機器のエラーを解消するための前記制御コマンドの変更内容とが対応して登録されたコマンド変更表と
を有し、
前記モニタ部は、前記機器のエラーの発生頻度に基づき、前記バージョン情報に対応させて前記エラーを解消するための所定の制御コマンドの内容を所定の代替内容に変更するようなコマンド変更内容を前記コマンド変更表に登録し、
前記コマンド生成部は前記所定の制御コマンドを生成する場合、前記コマンド変更表を参照して前記所定の制御コマンドの内容を前記所定の代替内容に変更する
ことを特徴とするデバイス制御システム。
【請求項８】
前記モニタ部は、前記機器のエラーの回数をカウントするカウンタを備え、前記カウンタが閾値を超えた場合、前記コマンド変更表に前記コマンド変更内容を登録することを特徴とする請求項７記載のデバイス制御システム。
【発明の詳細な説明】
【０００１】
【発明の技術分野】
本発明は、コンピュータ周辺機器を制御するための装置及び方法に関する。
【０００２】
【従来の技術】
ホストコンピュータにプリンタやスキャナなどの周辺機器を接続した一般的なコンピュータシステムでは、個々の周辺機器特有のデバイスドライバやデバイスモニタなどと呼ばれるプログラムがホストコンピュータに搭載され、これらのプログラムを実行することによりホストコンピュータはそれぞれの周辺機器を制御したりその状態をモニタしたりすることができる（以下、本明細書では、この種のプログラムを「デバイスドライバ」と総称し、それを実行するコンピュータ又はそれと同等の機能を発揮するハードウェアを「デバイス制御装置」とよぶ）。
【０００３】
ところで、近年の通信ネットワークの発達により、ホストコンピュータ上で作動するソフトウェアの改版は、通信回線を通じてのファイル転送により非常に容易に行えるようになった。デバイスドライバもその例外ではなく、よって、初期版のデバイスドライバを改良したりバグを修正したりした後期版のデバイスドライバは、周辺機器メーカ側のサーバから例えばインターネットなどを通じてユーザへと配布されている。
【０００４】
【発明が解決しようとする課題】
一方、同じソフトウェアであっても、周辺機器に搭載されたＲＯＭ内のファームウェアについては、これを上記のような簡単な方法で書き換えることができない。そのため、改良されたファームウェアが開発されても、これを簡易にユーザに提供することができない。特に、そのファームウェアにバグがあったような場合、殆どそうしたバグはプリンタの機能にとり本質的でない（例えば、特別なモードにおける些細な不具合）にも拘わらず、それを修正するためにＲＯＭ交換という面倒をユーザに強いなければならない。
【０００５】
従って、本発明の目的は、周辺機器のファームウェアを、ＲＯＭ交換より簡易な次善の方法で、実質的に改良又は修正できるようにすることにある。
【０００６】
【課題を解決するための手段】
本発明に従うデバイス制御装置は、機器に対する制御コマンドを作成する際、その機器が所定の注意バージョンの部品をもつ場合、所定の制御コマンドの内容を、その機器が他バージョンの部品を持つ場合とは異なる内容に変更する機能をもつ。例えば、その機器が、バグの発見されたファームウェアを含んだ注意バージョンのＲＯＭを搭載していた場合、ＲＯＭ内の当該ファームウェアと代替性のある別のファームウェアを使用するよう制御コマンドを書き換えてやることで、実質的にそのバグを解消することができる。或いは、機器の交換部品を新しいバージョンのものに変更した場合に、その機器のファームウェアを若干改変した方が良好な結果が得られるというような場合、制御コマンドのパラメータ又はデータを変更することにより、実質的にファームウェアを改変したと同等な効果が得られることもある。このような場合に、本発明は機器のＲＯＭを変更することなく、デバイス制御装置側のデバイスドライバの変更で対応することができる。
【０００７】
デバイス制御装置は、望ましくは、機器に対して、その機器が持つ部品のバージョンを問い合わせる機能を更に有することができる。これにより、対象機器のＲＯＭなどのバージョンを自動的に調べて、それが注意バージョンであるならばコマンド変更を行ない、注意バージョンでなければ通常にコマンドを作成するという自動処理を行うことができる。
【０００８】
本発明のデバイス制御装置としてコンピュータを動作させるためのデバイスドライバは、ディスク型ストレージや半導体メモリなどの各種媒体を通じてコンピュータにインストールすることができるが、最も効果的な方法は、通信ネットワークを通じてコンピュータにロードする方法である。
【０００９】
【発明の実施の形態】
図１は、本発明の一実施形態の全体構成を示す。
【００１０】
ホストコンピュータ１にプリンタ３が接続されている。ホストコンピュータ１はプリンタドライバ５を有し、このプリンタドライバ５はプリンタ３と双方向通信を行うことができる。プリンタ３は、用紙上へイメージを実際に印刷するための印刷エンジン９、用紙を印刷エンジン９へ送るための給紙機構１１、及びプリンタドライバ７から送られてくる印刷コマンドを解釈して印刷イメージを生成しそして印刷エンジン９及び給紙機構１１を駆動するコントローラ７を有している。コントローラ９は、マイクロコンピュータであって、それを動作させるためのファームウェアが書き込まれているＲＯＭ１３を有している。ＲＯＭ１３内のファームウェアには、コントローラ７が行う各種の処理、例えば、コマンド解釈、イメージレンダリング、ハーフトーニング、給紙制御、エラー処理、ステータス管理等のための多くのプログラムが含まれるが、図１では、給紙制御用の３種類のプログラム、すなわち、ノーマル給紙プログラム１５Ａ、封筒給紙プログラム１５Ｂ及び葉書給紙プログラム１５Ｃだけが例示的に示されている。
【００１１】
プリンタドライバ５は、ＧＵＩ部２１とコマンド生成部２３を有する。ＧＵＩ部２１は、ユーザにＧＵＩを提供してＧＵＩ上でのユーザの設定に従ってカラー／モノクロ、用紙サイズ、用紙種類、解像度、印刷頁などの印刷条件を決定する。コマンド生成部２３は、アプリケーションからＯＳを通じて渡される印刷対象の文書データを、ＧＵＩ部２１の決定した印刷条件の下でプリンタ３に印刷させるための印刷コマンドを生成して、この印刷コマンドをプリンタ３へ送るようＯＳへ渡す。
【００１２】
印刷コマンドを生成する際、コマンド生成部２３は、プリンタ３に対しＲＯＭ１３のバージョン（ファームウェアのバーション）や各種部品などのバージョンを問い合わせ、そのバージョンが所定のものである場合、特定の印刷コマンドの内容を別の内容に変更する機能を有している。このコマンド変更機能は、プリンタＲＯＭ１３内のファームウェアの実質的な改良又はバグの修正の目的で用いることができる。例えば、特定バージョン「０１．００」のＲＯＭ１３内の葉書給紙プログラム１５Ｃにバグが発見されたが、代わりに封筒給紙プログラム１５Ｂを使うと葉書給紙も問題無く行えることが分かったとする。この場合、その後の新しいプリンタドライバ５に、バージョン「０１．００」のＲＯＭ１３を持つプリンタ３に対しては、印刷条件の用紙種類が葉書であっても、葉書給紙でなく封筒給紙を要求するコマンドを作成するようなコマンド変更機能を持たせることにより、実質的にバグを解消することができる。或いは、ある時期以降に発売される新しい特別の印刷用紙を使用した場合、既存のバージョンのＲＯＭ１３内のプログラムに従うインクドットゲインを若干変更した方が画質が良くなることが分かったとする。その場合、新しいプリンタドライバ５では、ＧＵＩ部２１にその新しい印刷用紙を設定できるようにすると共に、印刷条件の用紙種類がその新しい用紙であるときは、既存のバージョンのプリンタ３に対しては、ドットゲインをその用紙に合ったものに変更するよう、印刷コマンドのパラメータ又は画像データを変更する機能を持たせることができる。或いは、ある時期以降に発売される新しいバージョンのインクを使用した場合、既存のバージョンのＲＯＭ１３内の色変換テーブルを若干変更した方が画質が良くなることが分かったとする。その場合、新しいプリンタドライバ５では、その新しいバージョンのインクカートリッジを搭載した既存バージョンのプリンタ３に対しては、色変換テーブルをその用紙に合ったものに変更したと同様な結果が得られるよう、印刷コマンドのパラメータ又は画像データを変更する機能を持たせることができる。
【００１３】
図２は、印刷を行うときのプリンタドライバ５とプリンタ３（コントローラ７）の処理流れを示す。
【００１４】
プリンタドライバ５はまずプリンタ３に対してＲＯＭ１３やその他の部品（例えば上述したインクカートリッジなど）のバージョンを問い合わせる（ステップＳ１）。プリンタ３からバージョンの回答が来ると（Ｓ８）と、プリンタドライバ５は、そのバージョン情報を記憶する（Ｓ２）。次に、プリンタドライバ５は、ユーザのＧＵＩ上での設定に従って（特に設定が無ければデフォルト設定の）印刷条件を決定する（Ｓ３）。その後、ユーザから印刷実行指令が入ると、プリンタドライバ５はコマンド生成処理に入る。まず、プリンタ３から取得したバージョン情報の中に所定の注意バージョンが含まれていないか否かチェックする。例えば、上述した葉書給紙のバグの例では、ＲＯＭ１３のバージョン「０１．００」が注意バージョンである。また、上述した新しい印刷用紙の例では、その印刷用紙の発売時点での既存のＲＯＭバージョンは全て注意バージョンである。また、上述した新しいインクカートリッジの例では、その新しいカートリッジの発売時点での既存の全てのＲＯＭバージョンの各々とその新しいカートリッジのバージョンとの組み合わせが注意バージョンである。
【００１５】
このような注意バージョンがバージョン情報内に無ければ、プリンタドライバ５は、決定された印刷条件にそのまま従って通常に印刷コマンドを作成して（Ｓ５）、それをプリンタ３へ送る（Ｓ７）。一方、バージョン情報内に注意バージョンが含まれていた場合には、その注意バージョンに対応したコマンド変更機能を用いて、所定のコマンドの内容を所定の代替内容に変更する（Ｓ６）。例えば、上述した例では、ＲＯＭ１３のバージョン「０１．００」であった場合、葉書給紙のコマンドを封筒給紙のコマンドに変更したり、ＲＯＭバージョンが新しい印刷用紙の発売時点での既存バージョンであった場合、ドットゲインを変更するように、関連するコマンドのパラメータ又は画像データを変更したり、或いは、ＲＯＭバージョンが新しいインクカートリッジ発売時点での既存バージョンで且つカートリッジのバージョンがその新しいバージョンである場合、色変換テーブルを実質的に変更するように、関連するコマンドのパラメータ又は画像データを変更したりする。このコマンド変更の方法には、幾通りもの方法が採用できる。例えば、通常の印刷コマンド作成アルゴリズムでコマンドを作成した上でそれを変更してもよいし、或いは、葉書給紙のバグの場合のように印刷条件を読み替えれば済むものでは、印刷条件を読み替えた上で通常の印刷コマンド作成アルゴリズムを実行してもよいし、或いは、通常の印刷コマンド作成アルゴリズムからは独立した別の変更コマンド作成アルゴリスムを実行してもよい。こうして、変更された印刷コマンドを作成した後、これをプリンタ３へ送る（Ｓ７）。
【００１６】
プリンタ３は、プリンタドライバ５からの印刷コマンドを解釈して印刷を実行する（Ｓ９）。変更された印刷コマンドの場合、それに従ってプリンタ３が動作するので、例えば、葉書印刷の時でもバグのある葉書給紙プログラム１５Ｃに代えて封筒給紙プログラム１５Ｂを用いたり、新しい用紙にはドットゲインを若干変更したり、というようにプリンタ３が動作するので所望の印刷結果が得られる。
【００１７】
図３は、上述の実施形態の変形例を示す。
【００１８】
この変形例は、プリンタ３側に例えばファームウェアのバグなどの原因で特定のエラーが頻発する場合に、プリンタドライバ５がそれの事実を学習してエラーを解消する方向に印刷コマンドを自動変更するようにしたものである。すなわち、プリンタドライバ５は、更にプリンタモニタ部２７とコマンド変更表２５を有している。コマンド変更表２５には、図４に例示するように、前述した注意バージョンと、それに対応するコマンドの変更内容とが記載されており、これをコマンド生成部２３が参照することにより、上述したコマンド変更機能を発揮できるようになっている。プリンタモニタ部１７は、例えば常駐型のプログラムであって、プリンタ３の状態を随時にモニタすることが、その一つの機能としてプリンタ３のエラー監視機能を有している。そして、プリンタモニタ部１７は、エラー監視機能によってプリンタ３の印刷中に発生したエラーを検出する度に、プリンタ３のバージョン情報に対応させて各エラー内容毎の発生回数をカウントし、発生回数（又は発生頻度）が所定のしきい値を超えた場合には、そのエラーを解消する方向へ印刷コマンドを変更するようなコマンド変更内容をコマンド変更表２５に書き加える（又は、書き換える）表更新機能を有している。
【００１９】
図５は、プリンタモニタ部２７とプリンタ３（コントローラ７）の印刷実行時（図２のステップＳ９）のエラー監視に関わる処理流れを示す。
【００２０】
プリンタ３は、エラーが発生すると（Ｓ１１）、そのエラー内容をプリンタドライバ５に通知し（Ｓ１２）、そして所定のエラー処理（例えば印刷停止など）に入る（Ｓ１３）。プリンタドライバ５のプリンタモニタ部２７は、プリンタ３からエラー通知を受けると、そのエラー内容に対応するエラーメッセージをユーザに提示し（Ｓ１４）、また、プリンタ３のバージョン情報とそのエラー内容とに対応したエラー回数のカウンタを１だけ増加させる（Ｓ１５）。その後、プリンタモニタ部２７は、そのエラー回数又は頻度が所定の閾値以上になったかチェックし（Ｓ１６）、閾値以上になった場合は、そのエラー回数カウンタに対応するバージョン情報と、そのエラーを解消するための印刷コマンドの変更内容とを、コマンド変更表２５に登録する（Ｓ１７）。例えば、ＲＯＭバージョン「０１．００」のプリンタ３で葉書給紙のエラー回数が閾値以上になったならば、図４に示すように、注意バージョンとしてのＲＯＭバージョン「０１．００」と、葉書給紙を封筒給紙に変更する旨の変更内容とを変更表２５に登録する。以後、ＲＯＭバージョン「０１．００」のプリンタ３に対しては、葉書印刷時には封筒給紙のコマンドＷがおこなれるので、問題無く給紙できるようになる。
【００２１】
本発明は上記実施形態以外の様々な形態でも実施することができる。例えば、プリンタだけでなく、イメージスキャナやディスクドライブなど様々な周辺機器にも本発明は適用できる。
【図面の簡単な説明】
【図１】本発明の一実施形態の全体構成を示すブロック図。
【図２】印刷を行うときのプリンタドライバ５とプリンタ３（コントローラ７）の処理流れを示すフローチャート。
【図３】図１の実施形態の変形例を示すブロック図。
【図４】コマンド変更表を例示する図。
【図５】プリンタモニタ部２７とプリンタ３（コントローラ７）の印刷実行時（図２のステップＳ９）のエラー監視に関わる処理流れを示すフローチャート。
【符号の説明】
１  ホストコンピュータ
３  プリンタ
５  プリンタドライバ
７  コントローラ
１３  ＲＯＭ
１５  ファームウェア
２１  コマンド生成部
２３  ＧＩＵ部
２５  コマンド変更表
２７  プリンタモニタ部
【図１】
0004068705.tif 000002
【図２】
0004068705.tif 000003
【図３】
0004068705.tif 000004
【図４】
0004068705.tif 000005
【図５】
0004068705.tif 000006