(57)【特許請求の範囲】
【請求項１】
ＵＳＢインタフェースによってプリンタとホストコンピュータとを接続したプリントシステムにおいて、ＵＳＢ接続状態で、ＵＳＢコマンドのうち前記ホストコンピュータが前記プリンタに対して前記プリンタのステータスを前記ホストコンピュータに送信するように要求するＩＮコマンドを送信して前記プリンタの異常状態の検出を行う、ＵＳＢインタフェースを有するプリンタの状態検出方法であって、
前記ホストコンピュータがデータを前記プリンタに出力する第１ステップと、
前記第１ステップにおいて前記データが出力された後に前記プリンタにおいて次のデータ受信の準備が出来ていないことを示すＮＡＫ応答が前記プリンタから前記ホストコンピュータに対して連続して出力される状態があらかじめ設定した時間以上に持続していることを前記ホストコンピュータが検出する第２ステップと、
前記第２ステップの前記ホストコンピュータによる前記検出に基づいて、前記ホストコンピュータが前記プリンタに対して前記プリンタの前記ステータスを前記ホストコンピュータに送信するように要求する前記ＩＮコマンドを送信することにより、前記ホストコンピュータが前記プリンタの前記ステータスを受信する第３ステップと、
前記第３ステップにおいて受信した前記プリンタの前記ステータスを前記ホストコンピュータが解析して前記プリンタの異常状態を検出する第４ステップと、
を有することを特徴とするＵＳＢインタフェースを有するプリンタの状態検出方法。
【請求項２】
ＵＳＢインタフェースによってプリンタとホストコンピュータとを接続したプリントシステムであって、前記ホストコンピュータにおいて請求項１に記載の状態検出方法を実行するように構成したことを特徴とするプリントシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プリンタとホストコンピュータとを接続したプリントシステムに関し、特にインタフェースとしてＵＳＢインタフェースを用いたプリントシステムの状態検出方法とそれを用いたプリントシステムに関するものである。
【０００２】
【従来の技術】
ＵＳＢインタフェースがパーソナルコンピュータの分野で一般的に用いられるようになってきており、プリンタを接続するインタフェースとしても用いられることが多くなってきている。プリンタとコンピュータとの接続においては、印字データをプリンタに送信するだけではなく、双方向に通信することによって、プリンタの状態をコンピュータに取り込むことも行われ、ＵＳＢインタフェースでも双方向性を有することから、ステータスを入力するために使われている。
【０００３】
従来のプリントシステムでは、プリンタの状態をコンピュータが監視したい場合には、ＵＳＢコマンドであるＢｕｌｋ ＩＮまたはＣｏｎｔｒｏｌ ＩＮコマンドを周期的にプリンタに出力し、その応答を入力して状態を監視していた。
【０００４】
【発明が解決しようとする課題】
しかし、従来のプリントシステムでは、プリンタの異常の有無にかかわらず周期的に上記ＩＮコマンドを出力していたために無駄な要求応答が発生していた。
【０００５】
また周期的な要求のために異常をすぐに検出することはできなかった。早く異常を検出しようとするならば、上記ＩＮコマンドを出力する周期を短くしなければならないが、それは無駄な要求応答を増やすことになり、上記問題を生むことになっていた。
【０００６】
本発明は、従来のUSB接続でのプリントシステムの有する上記課題を解決するためになされたものであり、その目的はインタフェースの負荷を増大させることなく、プリンタの異常状態等のステータスを早く検出することのできるプリンタの状態検出方法、およびこの方法を用いたプリントシステムを実現することである。
【０００７】
【課題を解決するための手段】
上記課題を解決するために、本発明に係るＵＳＢインタフェースを有するプリンタの状態検出方法は、ＵＳＢインタフェースによってプリンタとホストコンピュータとを接続したプリントシステムにおいて、ＵＳＢ接続状態で、ＵＳＢコマンドのうち前記ホストコンピュータが前記プリンタに対して前記プリンタのステータスを前記ホストコンピュータに送信するように要求するＩＮコマンドを送信して前記プリンタの異常状態の検出を行う、ＵＳＢインタフェースを有するプリンタの状態検出方法であって、前記ホストコンピュータがデータを前記プリンタに出力する第１ステップと、前記第１ステップにおいて前記データが出力された後に前記プリンタにおいて次のデータ受信の準備が出来ていないことを示すＮＡＫ応答が前記プリンタから前記ホストコンピュータに対して連続して出力される状態があらかじめ設定した時間以上に持続していることを前記ホストコンピュータが検出する第２ステップと、前記第２ステップの前記ホストコンピュータによる前記検出に基づいて、前記ホストコンピュータが前記プリンタに対して前記プリンタの前記ステータスを前記ホストコンピュータに送信するように要求する前記ＩＮコマンドを送信することにより、前記ホストコンピュータが前記プリンタの前記ステータスを受信する第３ステップと、前記第３ステップにおいて受信した前記プリンタの前記ステータスを前記ホストコンピュータが解析して前記プリンタの異常状態を検出する第４ステップと、を有することを特徴とするものである。
【０００８】
また本発明に係るプリントシステムは、ＵＳＢインタフェースによってプリンタとホストコンピュータとを接続したプリントシステムであって、前記ホストコンピュータにおいて前記状態検出方法を実行するように構成したことを特徴とするものである。
【０００９】
【発明の実施の形態】
本発明によるプリンタの状態検出方法について図面に基づいて説明する。図１及び図２は本方法を実行するコンピュータ側プログラムのフローチャートである。
【００１０】
プリンタとコンピュータとはＵＳＢ（ユニバーサルシリアルバス）によって接続され、プリントシステムを構成する。ＵＳＢは、パーソナルコンピュータの分野で標準的に用いられるインタフェースである。このインタフェースは、基本的にはデータをシリアルに送受信するシリアルインタフェースであり、データまたはコマンドはビットシリアルに送受信される。
【００１１】
データの送信及びステータスの入力等には、いくつかのコマンドが決められており、コンピュータはこれらのコマンドとデータを組み合わせてプリンタに送信し、プリンタからの応答がある場合にはそれを入力する。
【００１２】
コンピュータ側プログラムの処理は、図１のフローチャートのように行われる。まず、ステップ１においてエラーを検出するためのタイムアウトカウンタを初期化する。このカウンタの働きについては後述する。次にステップ２において、次に出力するデータを準備し、ステップ３においてこのデータをプリンタに出力する。ＵＳＢにおいてデータを出力するためにはＯＵＴコマンドが用いられる。
【００１３】
次にステップ４において、この出力に対するプリンタの応答を入力する。プリンタには、データを受信しこれを印字するために、データの加工からメカニズムの駆動まで、一定の処理時間が必要である。このためこの間は次のデータを処理することができないのでＮＡＫ応答を返して次のデータを送信しないように要求する。内部の処理が終わり次のデータ処理が可能になるとＡＣＫ応答を返して次のデータ送信を要求する。ステップ４で入力した応答は、ステップ５においてまずＡＣＫであるかどうか判断される。ＡＣＫである場合には、プリンタは次のデータ受信準備ができているということなので、ステップ１に戻って次のデータの出力にかかる。
【００１４】
ステップ５においてＡＣＫではないと判断された場合には、ステップ６においてＮＡＫであるかどうか判断される。ＮＡＫではない場合には、この例では状態が定まらないのでステップ４に戻って新たなインタフェース応答を入力する。なお、具体的なプリンタの場合は、その他のコマンドも用意されているので、ＮＡＫではないと判断した場合には、その他のコマンドの解析を行うようになっている。
【００１５】
ステップ６でＮＡＫである場合には、ステップ７においてタイムアウトカウンタを更新する。ところで、前述のようにプリンタは内部処理に時間がかかることから、ＮＡＫとＡＣＫを処理に応じて出力してインタフェースの送受信制御を行っている。従って正常な状態に応じてもＮＡＫが返されることはあるが、それが持続して出力される時間には上限があって、正常な状態においては、その上限以下の時間でＡＣＫが返されることになる。ところがたとえばプリント用紙切れのように異常な状態が長く続く場合には、ＮＡＫが返される時間が継続し、上限時間を超えることになる。ステップ８では、タイムアウトカウンタの内容を上記上限値と比較し、これを越えているかどうかを判断する。越えていなければ、まだ正常な範囲と判断しステップ４に戻って新たなインタフェース応答を入力する。
【００１６】
ステップ８においてタイムオーバーと判断した場合には、図２のステップ９においてＩＮコマンドをプリンタに送信する。ＵＳＢにおいてＩＮコマンドは、プリンタのステータスを送信するように要求するコマンドである。ＩＮコマンドを入力したプリンタは、現在のプリンタの状態を送信してくるので、ステップ１０において、このステータスを受信する。続いて受信したステータスをステップ１１において解析しプリンタの状態を識別する。
【００１７】
なお、前記実施例においてタイムアウトを観測するために、ソフトウエアによってカウンタを構成し、これによってカウントするようにしたが、ハードウエアカウンタによってタイムアウト時間を計測するようにしてもよい。
【００１８】
【発明の効果】
以上のようにプリントシステムを構成すれば、正常な状態ではＩＮコマンドをプリンタに送信してステータスを受信するといった処理が不要になり、インタフェースの負荷を増大させることがない。またエラーが発生した場合も、それから短時間でステータスの解析が行えるようになるという効果もある。
【図面の簡単な説明】
【図１】本発明に係るプリンタの状態検出方法を実現するコンピュータプログラムのフローチャート（その１）である。
【図２】本発明に係るプリンタの状態検出方法を実現するコンピュータプログラムのフローチャート（その２）である。
【図１】
0004499862.tif 000002
【図２】
0004499862.tif 000003