(57)【要約】【課題】  ホスト側コンピュータとＵＳＢ機器との間で通信異常が生じた場合、通信異常を検出するとともにＵＳＢ機器自らがホスト側コンピュータに対し通信の回復措置を測り、人為的な行為を必要とすることなく復帰するプリンタを提供する。【解決手段】  ＵＳＢ通信プロトコルの制御部として転送データのフレームに含まれＳＯＦパケットを監視するＳＯＦパケット監視手段と、ＵＳＢの２本のデータ線についているプルアップ抵抗、終端抵抗の接続／非接続のスイッチング手段と、ＵＳＢの２本のデータ線の電位を監視する電位監視手段と、ホストコンピュータからＵＳＢインターフェースを介して送られてくるプリントデータのバッファリング手段を設ける。【選択図】  図１
2006171868.tif 000002
【特許請求の範囲】
【請求項１】
USBインターフェースを介してホストコンピュータと通信を行うプリンタにおいて、
前記プリンタは、USB通信プロトコルの制御部として転送データのフレームに含まれるSOFパケットを監視するSOFパケット監視手段と、
USBの2本のデータ線についているプルアップ抵抗、終端抵抗の接続／非接続を制御するスイッチング手段と、
USBの2本のデータ線の電位を監視する電位監視手段と、
ホストコンピュータからUSBインターフェースを介して送られてくるプリントデータのバッファリング手段とを備えることを特徴とする。
【請求項２】
請求項１記載のプリンタにおいて、
SOFパケット監視手段が監視するSOFパケットの有無により、USBの通信が正常に行われているか否かを判断することを特徴とするもの。
【請求項３】
請求項１記載のプリンタにおいて、
スイッチング手段の状態によってUSBのデータ線に接続している終端抵抗の接続／非接続を切り替えることでUSBのデータ線の電位を変化させることを特徴とするもの。
【請求項４】
請求項１記載のプリンタにおいて、
物理的なUSB接続用のケーブルの状態に関わらず、電位監視手段が監視するUSBデータ線の電位に基づき、USB機器の実質的な接続／非接続状態を切り替えることを特徴とするもの。
【請求項５】
請求項１記載のプリンタにおいて、
バッファリング手段に溜まっているプリントデータの有無により、ホストコンピュータから送られてきたプリントデータが全てプリントされたか否かを判断し、その判断に基づきプリンタの状態を変化させることを特徴とするもの。
【請求項６】
USBインタフェースを介しホストコンピュータとUSBによる通信を行いながらプリントデータの出力を行っている最中に、SOF監視手段によってUSBの通信状況に異常が起きていると判断した場合には、バッファリング手段に溜まっているプリントデータが空になるまではプリント動作を行い、バッファリング手段のプリントデータが空になった後では、2本のUSBデータラインに接続している終端抵抗をスイッチング手段の動作によって一旦切り離し、USB接続ケーブルが接続しているままの状態にも関わらず実質的な非接続状態を作り出し、電位監視手段が上記の実質的な非接続状態を監視したなら、その後にはスイッチング手段を動作させて終端抵抗を接続させる動作を行うことで実質的な再接続動作された状態を作り出しUSB通信の回復動作を行うことを特徴とする。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、USBインターフェースを備えるプリンタに関する。
【背景技術】
【０００２】
コンピュータ（とくに、パーソナルコンピュータ）におけるシリアル接続の規格としてUSB（ユニバーサルシリアルバス、Universal Serial Bus）が知られている。USB規格を用いて、たとえば、パーソナルコンピュータとプリンタなどの周辺機器（本発明においては、これらUSBインターフェースを備える機器の総称としてUSB機器としてある）とを接続することができる。
【０００３】
USBは、プリンタをはじめマウス、キーボードなどの周辺機器を規格で定められた端子により接続できるようにし、汎用性を高めている。
【０００４】
従来はUSB1.1と言われる規格で、そのデータ転送速度は最大12Mbpsであったが、近年ではUSB2.0となりデータ転送速度は最大480Mbpsまで向上することとなった（USB2.0では、USB1.1からあった12Mbps（FSモード）での通信と、480Mbps（HSモード）の両方の通信をサポートしている。）このことにより、今後ますます様々な周辺機に応用される可能性をもった、将来性の高いインターフェースである。
【０００５】
これらUSB機器は、自動的にシステム構成を行うプラグ・アンド・プレイ（PnP）機能を備えることで、ユーザ自身がホストを周辺機器に合わせて設定したりホストを再起動する手間を不要とする。
【０００６】
ホスト機器とUSB機器が接続されると、USB端子間で電気通信（以下、「USB通信」という）をし、USBデバイスの種類を認識して対応するドライバを組込み、USB通信を行うシステムを確立させる。そして、通信可能であるかぎり必要に応じてUSB機器との通信を繰り返す。
【０００７】
換言すれば、USBケーブルを接続する動作、もしくはUSB機器の電源ONによってプラグ・アンドプレイ動作が始まり、機器が認識されるということである。
このことに必要な一連のプロトコルは、USB規格によって定めらている（例えば、（特許文献１）参照）。
【特許文献１】特開２００２−１６３０４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、USB通信はホスト側から通信を開始する仕様で、USB機器側から通信を開始することができないようになっている。このため、ホストが通信異常と判断した場合、かつ、USB機器側に原因があると判断できる場合、ホストからUSB機器に対して通信回復の試みが可能であるが、USB機器側でホスト側に原因があると判断できる通信異常に対して、USB機器はホスト側が何らかの手段（例えば人為的にホストを再起動する）で回復するまで通信ができない。
【０００９】
また、ホストがUSB機器側に原因がある通信異常を検出できなくても、USB機器自身が例えばウォッチドックタイマーでUSB機器自身の異常を検出し、USB機器自身がUSB通信を含めて初期化する事で通信の回復を試みる事も考えられるがUSB通信はホストからUSB機器に対しての一方的な開始方法なので、USB機器側からホストに対して通信を開始し、USB通信の初期化を実行することができない。つまり、USB機器は通信が回復する可能性が残されているにも関わらずUSB機器側から積極的に通信の回復する措置をとる事ができないという不具合がある。
【００１０】
このような場合、USB機器のUSBコネクタからUSBケーブルを抜き差しするという行為を行うことによって、ほとんどの場合は通信を回復させ得ることが知られている。それはPnP動作がやり直されるからである。
【００１１】
しかし、通信異常が生じるたびにケーブル端子を抜き差しすることは手間を伴う非効率的な操作である。また、無人で動作している場合、抜き差しは不可能である。
【００１２】
また、USB2.0のHSモードでは、480Mbpsという高速な転送速度を実現するために、データ線の振幅を400mVとしている。このため、FSモードと比較すると外来ノイズによる影響を受け易く、速くなった転送速度と引き換えに通信異常が起こる可能性が高くなったとも言える。
【００１３】
そこで、本発明は、ホスト側コンピュータとUSB機器との間で通信異常が生じた場合、通信異常を検出するとともにUSB機器自らがホスト側コンピュータに対し通信の回復措置を測り、人為的な行為を必要とすることなく復帰するプリンタを提供することを目的とする。
【課題を解決するための手段】
【００１４】
前述の目的を達成するために、本発明によるUSBインターフェースを備えるプリンタでは、USB通信プロトコルの制御部として転送データのフレームに含まれるSOFパケットを監視するSOFパケット監視手段と、USBの2本のデータ線についているプルアップ抵抗、終端抵抗の接続／非接続のスイッチング手段と、USBの2本のデータ線の電位を監視する電位監視手段と、ホストコンピュータからUSBインターフェースを介して送られてくるプリントデータのバッファリング手段を設けることによって、USBインタフェースを介しホストコンピュータと通信しながらプリントデータの出力を行っている最中にUSB通信中に異常発生した時には、プリンタにバッファリングされたプリントデータが空になった後擬似的な非接続状態を作り出すことで、ケーブルの抜き差しを行うことなくUSB通信のリセットを行うことが可能となり、自動的に回復するプリンタとなる。
【発明の効果】
【００１５】
以上の説明からあきらかなように本発明のプリンタによれば、ホストと通信してデータをプリント中、なんらかの原因によって通信に異常が発生したとしても、人手によるケーブルの抜き差しを伴うことなく通信の回復ができるため、ユーザーにとっては、非常に使い勝手の良いプリンタとなる。
【発明を実施するための最良の形態】
【００１６】
（実施形態１）
図１に本発明のプリンタ１０１、及びホストコンピュータ１３１との接続形態を示す。
【００１７】
プリンタ１０１はUSB規格に該当する4極のUSBコネクタ１０２を備える。USBコネクタ１０２は、USB規格にのっとった、VBUS、D+、D-、GNDの信号が割り振られている。VBUSはホスト１３１からプリンタ１０１のUSB回路へ電源を供給するラインとして用いられ、その接地レベルがGNDである。D+、D-はUSBのデータをやりとりを行うためのラインであり、FSモードでは3.3Vの、HSモードでは400mVの振幅をもつ差動信号として機能する。
【００１８】
USBインターフェース制御部１０３は、USBコネクタ１０２を介して行うUSB通信のプロトコル制御機能、差動信号とシングルエンド信号との変換機能、などを備える。
【００１９】
１０４、１０５は1.5KΩのプルアップ抵抗であり、それぞれD+、D-を+3.3Vにプルアップするためのものである。プルアップするか否かはUSBインターフェース制御部１０３がプルアップスイッチ１０６、１０７を制御することで行われる。このことによって、D+、D-を差動信号としてではなく個々の信号の電圧レベルを変更することが可能となっており、USB機器の転送速度の仕様、USBバスの状態などを、プリンタ１０１がホストコンピュータ２０１に対して示すことが可能となっている。
【００２０】
１０８、１０９は４５Ωの終端抵抗であり、それぞれD+とGND、D-とGND間を終端する機能を持つ。終端抵抗１０８、１０９によってD+、D-を終端するか否かは、スイッチ部１１０、１１１を制御することで可能となっている。この制御は、USBインターフェース制御部１０３が行う。
【００２１】
画像処理部１１２は、USBインターフェース制御部１０３から送られてきたデータをプリントするためのプリント画像データへと変換する機能をもつ。
【００２２】
プリントデータ制御部１１３は、プリントデータをプリンタエンジン１１４の印刷タイミングに合わせて転送する。その際、画像処理部１１２から送られてくるデータとプリンタエンジン１１４へ送るデータの速度差を吸収する必要がある。そのため、内部にはFIFO（ファーストインファストアウト）メモリの機能を有しており、FIFOメモリ１１５の状態はUSBインターフェース制御部１０３へとフィードバックしている。
【００２３】
プリンタエンジン１１４は、タンデム方式のレーザービームプリンタである。
【００２４】
ホストコンピュータ１３１は、USBコネクタ１３２を備えており、プリンタ装置１０１とUSBケーブル１４１により接続する。
【００２５】
本発明のプリンタ１０１の動作の仕組みを図4に示すフローチャートを用いて説明する。
【００２６】
ホストコンピュータ１３１とプリンタ１０１をUSBケーブル１４１で接続すると、USBインターフェース制御部１０３がVBUSの電位の変化を察知する。USBインターフェース制御部１０３はVBUS電位の変化より、接続されたことを知る（ステップS401）
USBインターフェース制御部１０３は、自らの転送速度をホスト１３１に知らせるためにプルアップ抵抗１０６、１０７を制御する（ステップS402）。
【００２７】
USBの規格では、1.5Mbps、12Mbps、480Mbpsの３つの通信速度が存在しており、各々、LSモード、FSモード、HSモードと呼ばれ、LSモードの時はD-が、FSモード、HSモードの時はD+がプルアップされる。これはUSBの規格仕様によっている。
【００２８】
これらの制御は、USB制御手段１０３がプルアップスイッチ１０６、１０７をon/offすることによって、プルアップ抵抗１０４、１０５の接続／非接続を切り替えることによって行われる。本発明のプリンタ１０１はHSモードで操作可能なので、１０５がプルアップされる。１０４のプルアップはなされない。これでFSモードでの通信は可能な状態である（ステップS402）。
【００２９】
次に、ステップS403でホスト１３１と接続したプリンタ１０１は、ホスト１３１との間でUSBの規格に準じたハンドシェイクを行う（ステップS404）。ハンドシェイクが成立すればHSモードでの通信が可能となり、USB制御インターフェース１０３がプルアップスイッチ１０７を制御してプルアップ抵抗１０５を解除する（ステップS404）。
【００３０】
ステップS404でハンドシェイクが成立しなかった場合は、FSモードで動作を続ける（ステップS405）。
【００３１】
ステップS404で動作モードが確定した後、ホスト１３１はプリンタ１０１が動作するために必要なデバイスドライバなどをロードする。すなわち、PnP動作が完了してホスト１３１からプリンタ１０１を動作させることが可能になる（ステップS407）。
【００３２】
HSモードでは、D+、D-は各々振幅400mVの差動信号として動作する。図2がホスト１３１、及びプリンタ１０１のUSBインターフェース部のドライバ／レシーバ回路である。
定電流源から、おおよそ17.8mA前後の定電流が45Ωの両終端抵抗を流れることで、
22.5Ω×17.8mA≒400mV
の出力振幅を実現しているのである。１５１、１５１の太線で示してあるのが、ホスト１３１が送信時の電流の流れである。プリンタ１０１が送信時も、同様である。定電流源の電流値はUSB規格では決まっていないが、振幅レベルのハイレベル最大値と90Ωの差動信号ということはUSB規格により決まっているので、USBデータ線の振幅レベルがUSB規格の値を満たす電流源であればよい。
【００３３】
USB通信によってUSBのデータ線を流れる実際のデータは、図3のような構成となっている。更に、フレームを構成するトランザクションは、送受信の単位であるパケットからなる。何種類かあるパケットによって構成されたトランザクションが集まって出来るフレームが繰り返し繰り返し通信がスケジューリングされるのである。
【００３４】
フレームは必ずSOF（Start Of Frame）と呼ばれる周期的なパケットで始まっており、HSモードではSOFは125usec周期で繰り返しされている。すなわち、USB通信が正常に行われていることはすなわち、SOFが定期的に送信されてくることなのである。
【００３５】
USBインターフェース制御部１０３は、前述の定期的に来るはずであるSOFパケットを監視している（ステップS408）。定期的に来るはずのSOFパケットが定期的に来なくなった場合、二通りのことが考えられる。
【００３６】
一つは、ホストコンピュータ１３１からのプリントデータ転送が正常に終了し、アイドル状態が続いた時である。
【００３７】
この場合、USBの規格における所定の時間SOFパケットが来ない時の対処に準じてプリンタ１０１はサスペンド状態に入る。サスペンドに入るには、USBインターフェース制御部１０３がプルアップスイッチ１０７をONしプルアップ抵抗１０５を接続することで可能となる（ステップS410）。
【００３８】
もう一つは、ホスト１３１はSOFパケットを発行しているにも関わらず、外的ノイズなどの要因によってデータ転送途中にSOFパケットとして認識できないものになってしまった時である。
【００３９】
どちらの場合であるかの判断は、USBインターフェース制御部１０３にフィードバックしているプリントデータ転送制御部１１３のFIFOメモリ１１５の情報で行っている（ステップS409）。FIFOメモリ１１５が空である場合は、プリント動作は終了していると判断する。この場合はステップS410のサスペンド状態に入る。
【００４０】
FIFOメモリ１１５が空でない場合は、FIFO１１５メモリが空になるまでUSBインターフェース制御部１０３は能動的な制御は行わない。したがってプリントデータ制御部１１３はプリンタエンジン１１４にプリントデータを転送し続ける（ステップS411）。
【００４１】
ステップS411を経てFIFOメモリ１１５が空になったという情報がUSBインターフェース制御部１０３に入ってきた場合、プリンタ１０１はサスペンド状態には入らない。
【００４２】
USBインターフェース制御部１０３は、スイッチ部１１０、１１１をOFFする。そのことによって、終端抵抗１０８、１０９が非接続となり、結果D+、D-の信号レベルは
45Ω×17.8mA≒800mV
となる（ステップS412）。図２で言うと、１５１の電流が流れなくなるのである。これはすなわち、接続していたUSBケーブル１４１を抜いた時に実質的には等しいことが図から理解できるはずである。よって、ホスト１３１は、プリンタ１０１が実質的に切り離されたものと認識する。
【００４３】
さらに、USBインターフェース制御部１０３は、D+、D-の電位の変化を監視しており、一旦offにした終端抵抗１０８、１０９をスイッチ部１１０、１１１を制御することでonにする（ステップS413）。ステップS412〜ステップS413の一連の動作の後、D+のプルアップスイッチ１０７をonとし、プルアップ抵抗１０５を接続する（ステップS413）。このことはすなわち、ホスト１３１にとって、ステップS401と全く同じことである。
【００４４】
すなわち、ホスト１３１にとっては、ステップS412〜ステップS414の動作が行われたことにより、USBケーブル１４１に対してはなにも行われなかったにもかかわらず、実質的に抜いて差した、と等しい意味があるのである。
【００４５】
そのことによって、ホスト１３１はS403〜S407の動作によりUSB機器の認識処理をやり直すこととなる。このことによって、USBインターフェースの再確立が行われる。すなわち、ケーブルを抜き差しした時やUSB機器の電源をon/offした時に行われる、PnPプレイが行われるのである。
【００４６】
上述の実施形態では、スイッチ部１１０、１１１の手段に関しては限定していない。トランジスタ、FET、ダイオードなどの一般的な電子スイッチを使用することができる。また、リレーのような機械的なものでも構わない。もちろん、ワンチップの半導体の中に組み込むことも可能である。同様のことはプルアップスイッチ部１０６、１０７にも適用できる。
【図面の簡単な説明】
【００４７】
【図１】本発明の実施形態によるプリンタ１０１の構成と、ホストコンピュータ２０１との接続形態を説明するための図面である。
【図２】プリンタ１０１とホストコンピュータ２０１のUSBインターフェースのドライバ／レシーバ部の構成を説明するための図面である。
【図３】USBのデータフレームの構成を示す図面である。
【図４】本発明におけるプリンタ１０１の動作を説明するためのフローチャートである。
【符号の説明】
【００４８】
１０１  プリンタ
１０２  ＵＳＢコネクタ
１０３  ＵＳＢインターフェース制御部
１０４  プルアップ抵抗
１０５  プルアップ抵抗
１０６  プルアップスイッチ
１０７  プルアップスイッチ
１０８  終端抵抗
１０９  終端抵抗
１１０  スイッチ
１１１  スイッチ
１１２  画像処理部
１１３  プリントデータ転送制御部
１１４  プリンタエンジン
１１５  ＦＩＦＯ
１４１  ＵＳＢケーブル
【図１】
2006171868.tif 000003
【図２】
2006171868.tif 000004
【図３】
2006171868.tif 000005
【図４】
2006171868.tif 000006