(57)【要約】【課題】ＵＳＢ規格のハイスピード対応デバイスにおいて、確実且つ高速なデータ転送を実現することができるデータ転送方法及び装置及び印刷方法及び印刷装置及びデータ転送装置の制御プログラム及び記憶媒体を提供する。【解決手段】ホストＰＣ１０１とプリンタ１０２との間のデータ転送を行うデータ転送装置において、データ終了を検知するタイマの設定時間を転送モードに応じて変更するように、プリンタコントローラ１０４が制御する。【選択図】　　　図２
2004118517.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ転送モードを有すると共にホスト側装置がサポートするデータ転送モードにより実際のデータ通信モードを互いに決定する機能を有し且つ前記ホスト側装置と周辺機器との間のデータ転送を行うデータ転送方法であって、
前記データ転送モードを検出するデータ転送モード検出ステップと、
データ受信後タイマに設定された時間が経過しても次のデータ受信が無い場合にデータ転送終了とするデータ転送終了検知ステップと、
前記転送モード検出ステップにより検出されたデータ転送モードに応じて前記タイマの設定時間を変更するように制御する制御ステップとを有することを特徴とするデータ転送方法。
【請求項２】
前記データ転送モードとは、データ転送を行う通信速度であることを特徴とする請求項１に記載のデータ転送方法。
【請求項３】
前記ホスト側装置とは、コンピュータであることを特徴とする請求項１に記載のデータ転送方法。
【請求項４】
前記周辺機器とは、プリンタであることを特徴とする請求項１に記載のデータ転送方法。
【請求項５】
前記データ転送終了検知ステップを前記デバイス側装置のファームウェアに設けたことを特徴とする請求項１に記載のデータ転送方法。
【請求項６】
前記データ転送終了検知ステップを前記デバイス側装置のハードウェアに設けたことを特徴とする請求項１に記載のデータ転送方法。
【請求項７】
データ転送の有無を判断する判断ステップを有することを特徴とする請求項１に記載のデータ転送方法。
【請求項８】
前記判断ステップは、転送されたデータ量をカウントする能を備え、この機能にてカウントされたデータ転送量の変化によりデータ転送の有無を判断することを特徴とする請求項７に記載のデータ転送方法。
【請求項９】
データ転送に用いられるシリアルバスは、ＵＳＢ　Ｒｅｖ２．０に準拠しており且つハイスピードモードに対応していることを特徴とする請求項１乃至８のいずれかに記載のデータ転送方法。
【請求項１０】
複数のデータ転送モードを有すると共にホスト側装置がサポートするデータ転送モードにより実際のデータ通信モードを互いに決定する機能を有し且つ前記ホスト側装置と周辺機器との間のデータ転送を行うデータ転送装置であって、
前記データ転送モードを検出するデータ転送モード検出手段と、
データ受信後タイマに設定された時間が経過しても次のデータ受信が無い場合にデータ転送終了とするデータ転送終了検知手段と、
前記転送モード検出手段により検出されたデータ転送モードに応じて前記タイマの設定時間を変更するように制御する制御手段とを有することを特徴とするデータ転送装置。
【請求項１１】
前記データ転送モードとは、データ転送を行う通信速度であることを特徴とする請求項１０に記載のデータ転送装置。
【請求項１２】
前記ホスト側装置とは、コンピュータであることを特徴とする請求項１０に記載のデータ転送装置。
【請求項１３】
前記周辺機器とは、プリンタであることを特徴とする請求項１０に記載のデータ転送装置。
【請求項１４】
前記データ転送終了検知手段を前記デバイス側装置のファームウェアに設けたことを特徴とする請求項１０に記載のデータ転送装置。
【請求項１５】
前記データ転送終了検知手段を前記デバイス側装置のハードウェアに設けたことを特徴とする請求項１０に記載のデータ転送装置。
【請求項１６】
データ転送の有無を判断する判断手段を有することを特徴とする請求項１０に記載のデータ転送装置。
【請求項１７】
前記判断手段は、転送されたデータ量をカウントする能を備え、この機能にてカウントされたデータ転送量の変化によりデータ転送の有無を判断することを特徴とする請求項１６に記載のデータ転送装置。
【請求項１８】
データ転送に用いられるシリアルバスは、ＵＳＢ　Ｒｅｖ２．０に準拠しており且つハイスピードモードに対応していることを特徴とする請求項１０乃至１７のいずれかに記載のデータ転送装置。
【請求項１９】
請求項１乃至９のいずれかに記載のデータ転送方法によりデータを転送することを特徴とする印刷方法。
【請求項２０】
請求項１０乃至１９のいずれかに記載のデータ転送装置によりデータを転送することを特徴とする印刷装置。
【請求項２１】
複数のデータ転送モードを有すると共にホスト側装置がサポートするデータ転送モードにより実際のデータ通信モードを互いに決定する機能を有し且つ前記ホスト側装置と周辺機器との間のデータ転送を行うデータ転送装置を制御するためのコンピュータ読み取り可能な制御プログラムであって、
前記データ転送モードを検出するデータ転送モード検出ステップと、データ受信後タイマに設定された時間が経過しても次のデータ受信が無い場合にデータ転送終了とするデータ転送終了検知ステップと、前記転送モード検出ステップにより検出されたデータ転送モードに応じて前記タイマの設定時間を変更するように制御する制御ステップとをコンピュータに実行させるためのプログラムコードから成ることを特徴とするデータ転送装置の制御プログラム。
【請求項２２】
前記データ転送モードとは、データ転送を行う通信速度であることを特徴とする請求項２１に記載のデータ転送装置の制御プログラム。
【請求項２３】
前記ホスト側装置とは、コンピュータであることを特徴とする請求項２１に記載のデータ転送装置の制御プログラム。
【請求項２４】
前記周辺機器とは、プリンタであることを特徴とする請求項２１に記載のデータ転送装置の制御プログラム。
【請求項２５】
前記データ転送終了検知ステップを前記デバイス側装置のファームウェアに設けたことを特徴とする請求項２１に記載のデータ転送装置の制御プログラム。
【請求項２６】
前記データ転送終了検知ステップを前記デバイス側装置のハードウェアに設けたことを特徴とする請求項２１に記載のデータ転送装置の制御プログラム。
【請求項２７】
データ転送の有無を判断する判断ステップをコンピュータに実行させるためのプログラムコードから成ることを特徴とする請求項２１に記載のデータ転送装置の制御プログラム。
【請求項２８】
前記判断ステップは、転送されたデータ量をカウントする能を備え、この機能にてカウントされたデータ転送量の変化によりデータ転送の有無を判断することを特徴とする請求項２７に記載のデータ転送装置の制御プログラム。
【請求項２９】
データ転送に用いられるシリアルバスは、ＵＳＢ　Ｒｅｖ２．０に準拠しており且つハイスピードモードに対応していることを特徴とする請求項２１乃至２８のいずれかに記載のデータ転送装置の制御プログラム。
【請求項３０】
請求項２１乃至２９に記載の制御プログラムを格納したことを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホスト側装置と周辺機器との間のデータ転送を行うデータ転送方法及び装置及び印刷方法及び印刷装置及びデータ転送装置の制御プログラム及び記憶媒体に関する。
【０００２】
【従来の技術】
ホスト側装置である例えばＰＣ（パーソナルコンピュータ）に周辺機器である例えばプリンタ（印刷装置）を接続する方法として、近年ＵＳＢの普及が進んでいる。ＵＳＢは、既存のレガシーインターフェースを統合していくことを目的に開発され、プラグアンドプレイ、活線挿抜による使い勝手の良さ、ポートの拡張性の高さ等から普及が進んでいる。更に、２０００年４月に正式な仕様が公開されたＵＳＢ規格Ｒｅｖ２．０仕様では、転送速度が４８０Ｍｂｐｓ迄引き上げられ、ＵＳＢの普及は、より一層進むものと考えられる。
【０００３】
また、ＵＳＢ、ＩＥＥＥ１３９４等を用いた高速データ転送に関する技術は、従来公知である。（例えば、特許文献１〜７参照）
【０００４】
【特許文献１】
特開平１０−２２８３５５号公報
【特許文献２】
特開平１０−２２８３５７号公報
【特許文献３】
特開平１０−２２８３６４号公報
【特許文献４】
特開平１１−１７０６３２号公報
【特許文献５】
特開２０００−３４１３０６号公報
【特許文献６】
特開２００１−６７３０９号公報
【特許文献７】
特開２００１−６７３１０号公報
【０００５】
【発明が解決しようとする課題】
ＵＳＢを使用したデータの転送方法では、ＵＳＢプロトコル上でのデータ転送の終了について規定されていない。ＵＳＢによるデータ転送方法を用いたプリンタでは、データ転送の終了が判断できないと、ＩＥＥＥ１２８４．４でのデータ転送と非ＩＥＥＥ１２８４．４でのデータ転送とが混在した場合、プリント動作に不具合が起きてしまう。
【０００６】
そのため、データ転送が終了したか否かの判断は、通常ショートパケットの認識により行われる。ＵＳＢでのデータ転送では、最大パケットサイズより大きいデータ転送を行おうとした場合、データは、パケットサイズに分割されてデータ転送が行われる。例えば、フルスピードのバルク転送を行おうとした場合、その最大パケットサイズは６４バイトである。フルスピードのバルク転送で２００バイトのデータを転送しようとした場合、データは６４バイト、６４バイト、６４バイト、８バイトとデータを分割して転送する。
【０００７】
このように、データ転送では、データ転送終了の最後のパケットまでは、最大パケット長でデータ転送が行われ、最後のパケットのみ最大パケットサイズに満たないデータ量でデータ転送が行われる。つまり、最大パケットサイズに満たないデータが転送されたことを認識して、データ転送が終了したものと判断する。
【０００８】
しかし、これだけでは最大パケットサイズの整数倍のデータを転送しようとした場合に、データ転送を終了したことを認識することができない。
【０００９】
そこで、最大パケットサイズの整数倍のデータ転送での転送終了検知には、通常はタイマを使用した方法が用いられる。この方法は、最大パケット長のデータが送られて来ても、一定時間次のパケットの受信がない場合は、データ転送が終了したものと判断するものである。
【００１０】
この方法では、データ転送が終了したものと見なすまでの時間設定を慎重に行わなければならない。何故ならば、ＵＳＢによるプリンタのデータ転送の場合、ＩＥＥＥ１２８４．４のデータと非ＩＥＥＥ１２８４．４のデータとを混在させてデータ転送を行う場合、設定時間が短すぎると、ＣＰＵによるＩＥＥＥ１２８４．４でのデータ転送か、非ＩＥＥＥ１２８４．４でのデータ転送かを判断する回数が増えてしまうため、データ転送速度が遅くなってしまう。逆に、長すぎた場合は、データの区切りを認識できないため、データ転送が失敗してしまうからである。
【００１１】
一般に、ＵＳＢによるデータ転送の終了認識方法は、前述したショートパケットによる方法とタイマの設定時間による方法とを組み合わせて行う。
【００１２】
ＵＳＢ規格Ｒｅｖ２．０規格で新しく策定されたハイスピードモードは、フルスピードモードの４０倍高速であるが、下位互換性を保つため、フルスピードモードもサポートする必要がある。具体的には、周辺機器の上位側に接続されるホスト側装置がハイスピード対応であればハイスピードでの動作が、ホスト側装置がフルスピード対応であればフルスピードでの動作が、それぞれ要求される。
【００１３】
このため、前記データ転送終了の認識方式の時間設定をフルスピードと同じ時間とすると、ハイスピード動作にとっては長すぎる時間設定となる。また、同様に、ハイスピードモードにとって最適な設定時間は、フルスピードモードにとっては短すぎる時間設定となる。
【００１４】
本発明は上述した従来技術の有する問題点を解消するためになされたものであり、その目的は、ハイスピード対応デバイスにおいて、確実且つ高速なデータ転送を可能にしたデータ転送方法及び装置及び印刷方法及び印刷装置及びデータ転送装置の制御プログラム及び記憶媒体を提供することである。
【００１５】
【課題を解決するための手段】
上記目的を達成するために本発明のデータ転送方法は、複数のデータ転送モードを有すると共にホスト側装置がサポートするデータ転送モードにより実際のデータ通信モードを互いに決定する機能を有し且つ前記ホスト側装置と周辺機器との間のデータ転送を行うデータ転送方法であって、前記データ転送モードを検出するデータ転送モード検出ステップと、データ受信後タイマに設定された時間が経過しても次のデータ受信が無い場合にデータ転送終了とするデータ転送終了検知ステップと、前記転送モード検出ステップにより検出されたデータ転送モードに応じて前記タイマの設定時間を変更するように制御する制御ステップとを有することを特徴とする。
【００１６】
また、上記目的を達成するために本発明のデータ転送装置は、複数のデータ転送モードを有すると共にホスト側装置がサポートするデータ転送モードにより実際のデータ通信モードを互いに決定する機能を有し且つ前記ホスト側装置と周辺機器との間のデータ転送を行うデータ転送装置であって、前記データ転送モードを検出するデータ転送モード検出手段と、データ受信後タイマに設定された時間が経過しても次のデータ受信が無い場合にデータ転送終了とするデータ転送終了検知手段と、前記転送モード検出手段により検出されたデータ転送モードに応じて前記タイマの設定時間を変更するように制御する制御手段とを有することを特徴とする。
【００１７】
また、上記目的を達成するために本発明の印刷方法は、前記データ転送方法によりデータを転送することを特徴とする。
【００１８】
また、上記目的を達成するために本発明の印刷装置は、前記データ転送装置によりデータを転送することを特徴とする。
【００１９】
また、上記目的を達成するために本発明のデータ転送装置の制御プログラムは、複数のデータ転送モードを有すると共にホスト側装置がサポートするデータ転送モードにより実際のデータ通信モードを互いに決定する機能を有し且つ前記ホスト側装置と周辺機器との間のデータ転送を行うデータ転送装置を制御するためのコンピュータ読み取り可能な制御プログラムであって、前記データ転送モードを検出するデータ転送モード検出ステップと、データ受信後タイマに設定された時間が経過しても次のデータ受信が無い場合にデータ転送終了とするデータ転送終了検知ステップと、前記転送モード検出ステップにより検出されたデータ転送モードに応じて前記タイマの設定時間を変更するように制御する制御ステップとをコンピュータに実行させるためのプログラムコードから成ることを特徴とする。
【００２０】
更に、上記目的を達成するために本発明の記憶媒体は、前記制御プログラムを格納したことを特徴とする。
【００２１】
【発明の実施の形態】
以下、本発明の各実施の形態を図面に基づき説明する。
【００２２】
（一実施形態）
まず、本発明の一実施形態を図１乃至図４に基づき説明する。
【００２３】
図１は、本実施の形態に係るデータ転送装置によりデータ転送を行うプリントシステムの構成を示すブロック図である。
【００２４】
同図において、１０１はホスト側装置であるホストＰＣ（パーソナルコンピュータ）、１０２は周辺機器（デバイス）であるプリンタ（印刷装置）であり、これらは外部バス１０２を介して互いに接続されている。プリンタ１０２は、プリンタコントローラ１０４とプリンタエンジン１０５とを有している。
【００２５】
そして、ホストＰＣ１０１で生成された画像データを、外部バス１０２を経由してプリンタ１０２に転送し、このプリンタ１０２によりプリント出力処理が行われる。プリンタコントローラ１０４では、ホストＰＣ１０１との通信に用いられる外部バス１０３とのインターフェース（Ｉ／Ｆ）制御を行う。
【００２６】
即ち、プリンタコントローラ１０４では、ホストＰＣ１０１から転送されるプリンタ制御コマンド（画像データを変換したもの）の解釈・ビットマップデータ生成、ビットマップデータ生成時における各種画像処理、ユーザからの操作を受け付け、プリンタエンジン１０５へのコマンド送信が主に行われる。
【００２７】
また、プリンタエンジン１０５では、プリンタコントローラ１０４で生成されたビットマップデータを受け取り、図示しないインクヘッドの吐出タイミングデータ生成、印字処理、インクヘッドへのインク供給・回復処理、紙搬送、ヘッド動作におけるモータ制御が主に行われる。
【００２８】
以上の処理により、ホストＰＣ１０１から受け取った画像データがプリンタ１０３によりプリント出力される。
【００２９】
図２は、図１に示すプリンタシステムにおけるプリンタコントローラ１０４の構成を示すブロック図であり、同図に示すようにプリンタコントローラ１０４は、ＵＳＢコントローラ２０１、ＤＭＡ（Ｄｉｒｅｃｔ　Ｍｅｍｏｒｙ　Ａｃｃｅｓｓ）コントローラ２０２、ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）２０３、ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）２０４、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ　Ｅｒａｓａｂｌｅ　ａｎｄ　Ｐｒｏｇｒａｍｍａｂｌｅ　Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）２０５、メモリコントローラ２０６、操作パネル２０７、操作パネルインターフェース（操作パネルＩ／Ｆ）２０８、ＣＰＵ２０９、画像処理ＡＳＩＣ（特定用途向け集積回路）２１０、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ　Ｄｙｎａｍｉｃ　Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）２１１及び内部バス２１２を有している。
【００３０】
ＵＳＢコントローラ２０１はエンドポイントバッファ（ＥＰバッファ）２０１ａを有し、このＵＳＢコントローラ２０１にはＵＳＢを介してホストＰＣ１０１が接続され、また、画像処理ＡＳＩＣ２１０にはプリンタエンジン１０５が接続されている。
【００３１】
次に、ＵＳＢについて簡単に説明する。
【００３２】
ＵＳＢでのデータ転送は、基本的に３つのパケット、即ち、トークンパケット、データパケット、ハンドシェークパケットで構成される。これら３つのパケットで構成される１回のデータ転送をトランザクションと呼ぶ。
【００３３】
トークンパケットには、トランザクションの種類を示すパケットＩＤ（識別子）、データ転送のターゲットとなる周辺機器（デバイス）のアドレス、エンドポイント番号が格納されており、このトークンパケットの情報に適合した周辺機器（デバイス）とホスト側装置との間でデータ転送が可能になる。このトークンパケットは、ホスト側装置のみが生成することができる。これは、ホスト側装置のみでバスのアクセス権を管理していることを意味する。データパケットには、転送データが格納されている。ハンドシェークパケットには、データ転送が正常に完了したか否かを示す情報が格納されている。
【００３４】
トランザクションには、イントランザクション、アウトトランザクション、セットアップトランザクションの３種類がある。イントランザクションでは、周辺機器からホスト側装置へデータが転送される。アウトトランザクションでは、ホスト側装置から周辺機器へデータが転送される。セットアップトランザクションは、ホスト側装置から周辺機器に対して規格で規定されたコマンドの転送に使用される。これら３つのトランザクションで、バルク転送、コントロール転送、アイソクロナス転送、インタラプト転送と呼ばれるトランスファーが構成される。
【００３５】
バルク転送は、イントランザクション、またはアウトトランザクションの並びである。コントロール転送は、セットアップトランザクションのみ、またはセットアップトランザクションに続くイントランザクションとアウトトランザクションの並びである。アイソクロナス転送は、ハンドシェークパケットの無いイントランザクションまたはアウトトランザクションの並びである。インタラプト転送は、一つのイントランザクションである。
【００３６】
これらのトランスファーは、フレームと呼ばれる１ｍｓ単位の期間に並べられる。この制御は、ホスト外部バス制御部で行われる。フレームの開始は、ＳＯＦ（Ｓｔａｒｔ　ｏｆ　Ｆｒａｍｅ）パケットと呼ばれる特殊なパケットで通知される。このうち、アイソクロナス転送とインタラプト転送は、フレーム内にその帯域が確保されている。バルク転送は、非同期のデータ転送であり、コントロール転送は、バスに接続されている周辺機器外部バス制御部の初期化に使用される。アイソクロナス転送は、同期転送であり、単位時間当たりのデータ転送量が確保されている。
【００３７】
但し、他のトランスファーとは異なり、アイソクロナス転送のみデータの保証はされていない。インタラプト転送は、設定時間毎に必ず転送されることが保証されているため、割込み処理に使用される。ＵＳＢ規格Ｒｅｖ２．０仕様で、μフレームが追加されている。ハイスピードモードにおけるデータ転送は、μフレームによる同期が行われる。μフレームは、フレームの１／８の長さの１２５μｓである。ＳＯＦは、フレームと同じＳＯＦパケットが使用され、同じフレーム番号を持つＳＯＦが連続して８回発行される。
【００３８】
以上のようなＵＳＢ通信は、ホスト側装置とエンドポイントとの間で行われる。周辺機器（デバイス）は、複数のエンドポイントを持つことができ、複数のエンドポイントをグループ化することにより、インターフェースと呼ばれる単位にすることができる。周辺機器（デバイス）は、更にインターフェースを複数持つことができ、複数のインターフェースをグループ化することにより、周辺機器（デバイス）構成とすることができる。これらのインターフェース及び周辺機器（デバイス）構成を定義することにより、複雑な機能を持った周辺機器（デバイス）へ柔軟に対応することができる。
【００３９】
次に、ＵＳＢを用いたデータ転送方法に対して本発明を適用した場合のデータ転送方法について、図３を用いて説明する。
【００４０】
ここでは、ホストＰＣ１０１からプリンタ１０２へのプリントデータの転送を行なう場合を例に挙げて説明する。また、ここでは、ＵＳＢコントローラ２０１のエンドポイントバッファ（ＥＰバッファ）２０１ａからメモリへのデータ転送にＤＭＡ転送を使用する場合を例に挙げて説明する。
【００４１】
図３は、本実施の形態に係るデータ転送装置を適用した場合のプリントデータ転送における動作の流れを示すフローチャートである。
【００４２】
プリンタ１０２へのデータ転送を行う際には、バルクＯＵＴ転送が用いられる。
【００４３】
本実施の形態では、ホストＰＣ１０１からプリンタ１０２へプリントデータを、ＵＳＢバルクＯＵＴ転送を使用して転送する場合を例に挙げて説明する。
【００４４】
まず、データ転送に先立って、転送モードに応じたタイマ設定時間をセットし（ステップＳ３０１）、次に、ＤＭＡサイズをＭａｘパケットサイズにセットしておく（ステップＳ３０２）。
【００４５】
尚、転送モードに応じたタイマの時間設定の設定方法については後述する。
【００４６】
ホストＰＣ１０１からデータ転送が開始され、最初のパケットを受信すると（ステップＳ３０３）、データは、ＵＳＢコントローラ２０１内のシリアルインターフェースエンジンによりＵＳＢプロトコルの解釈が行われ、前記ステップＳ３０３において受信したパケットのデータサイズがＭａｘパケットサイズであるか否かを判断し（ステップＳ３０４）、データは、エンドポイントバッファ２０１ａに格納される。
【００４７】
そして、受信したパケットのデータサイズがＭａｘパケットサイズではないと判断された場合は、ショートパケット受信割込みが発生する（ステップＳ３１３）。ショートパケット受信割込みを検知したらＤＭＡ転送終了要求が出され（ステップＳ３１４）、ＤＭＡを停止させる。
【００４８】
ＤＭＡを停止させると、ＤＭＡコントローラ２０２からのＤＭＡ転送終了割込みが発生する（ステップＳ３０５）。ＤＭＡ転送終了割込みを検知したら、受信したデータがＩＥＥＥ１２８４．４のデータであるか否かを判断する（ステップＳ３０６）。ＩＥＥＥ１２８４．４のデータであると判断された場合は、ＩＥＥＥ１２８４．４における処理を行い（ステップＳ３１５）、その後、前記ステップＳ３０１へ戻る。
【００４９】
尚、ここでは、ＩＥＥＥ１２８４．４における処理内容についての説明は省略する。
【００５０】
一方、前記ステップＳ３０４において受信したパケットのデータサイズがＭａｘパケットサイズであると判断された場合は、ＤＭＡ転送終了割込みが発生し（ステップＳ３０５）、次に、ＩＥＥＥ１２８４．４のデータか否かを判断する（ステップＳ３０６）。そして、上述したショートパケットの場合と同様に、ＩＥＥＥ１２８４．４のデータであれば、ＩＥＥＥ１２８４．４における処理を行い（ステップＳ３１５）、その後、前記ステップＳ３０２へ戻る。
【００５１】
また、前記ステップＳ３０６において受信したデータがＩＥＥＥ１２８４．４ではないと判断された場合は、最初のパケットがショートパケットであるか否かを判断する（ステップＳ３０７）。そして、最初のパケットがショートパケットであると判断された場合は、データ転送が終了しているため、前記ステップＳ３０１へ戻る。
【００５２】
一方、前記ステップＳ３０７において最初のパケットがショートパケットではないと判断された場合は、ＤＭＡサイズを再度セットする（ステップＳ３０８）。
【００５３】
次に、パケットを設定時間内に受信したか否かを判断する（ステップＳ３０９）。そして、次のパケットを設定時間内に受信しないと判断された場合は、ＤＭＡ転送終了要求が出され（ステップＳ３１７）、ＤＭＡ転送終了割込みが発生し、ＤＭＡ転送が終了し（ステップＳ３１２）、その後、前記ステップＳ３０１へ戻る。
【００５４】
一方、前記ステップＳ３０９において、次のパケットを設定時間内に受信したと判断された場合は、その受信したパケットのサイズがＭａｘパケットサイズであるか否かを判断する。そして、受信したパケットのサイズがショートパケットの場合は、ショートパケット割込みが発生し（ステップＳ３１６）、ＤＭＡ転送終了要求が出され（ステップＳ３１７）、ＤＭＡ転送終了割込みが発生し（ステップＳ３１２）、ＤＭＡ転送を終了させて、その後、前記ステップＳ３０２へ戻る。
【００５５】
一方、前記ステップＳ３１０において設定時間内で受信したパケットのサイズがＭａｘパケットサイズであると判断された場合は、ＤＭＡデータの転送が完了したか否かを判断する（ステップＳ３１１）。そして、ＤＭＡデータの転送が完了しないと判断された場合は、前記ステップＳ３０９へ戻る。
【００５６】
一方、予めセットしておいたＤＭＡサイズと比較し、セットしたＤＭＡサイズ分のデータ受信が行われた場合は、ＤＭＡ転送完了となり、前記ステップＳ３１１にお上述した第一実施の形態ける判断結果は肯定（ＹＥＳ）となり、ＤＭＡ転送終了割込みが発生するので（ステップＳ３１２）、前記ステップＳ３０２へ戻る。
【００５７】
また、セットしておいたＤＭＡサイズのデータ受信が行われていない場合は、ホストＰＣ１０１から次のデータパケットが送信されて来るか否かが分らないため、タイマを作動させ、ここで設定時間内に次のパケットが来ればＤＭＡ転送を行い、設定時間経過してもデータ受信が無い場合は、ＤＭＡ転送を終了させる。
【００５８】
パケットを受信したか否かの判断は、エンドポイントバッファ２０１ａがフルになった場合に発生する割込みを用いて行えば良い。また、データ転送が行われたデータ量をカウントしておき、データ転送量に変化があるか否かで、パケットを受信したか否かを判断するようにしても良い。
【００５９】
以上の動作を繰り返すことによりデータ転送を行うことで、効率的なデータ転送を実現することができる。
【００６０】
次に、データ転送モードの検出方法とタイマの設定時間の設定方法について説明する。
【００６１】
タイマの設定時間の切り換えは、ＵＳＢ接続時のバス・エニュミレーション（データ転送速度検出）時に行えば良い。
【００６２】
以下にその方法を説明する。
【００６３】
まず、プリンタの電源投入によりプリンタコントローラ１０４の初期化が行われる。この際に、ＵＳＢコントローラの初期化が行われる。この時点では、タイマ設定にフルスピード用の時間を設定しておく。
【００６４】
その後、プリンタ１０２とホストＰＣ１０１とがＵＳＢにより接続されている場合は、ＵＳＢのバス・エニュミレーションが行われる。また、プリンタ１０２とホストＰＣ１０１とが接続されていない場合は、それらの接続が行われた時点でＵＳＢのバス・エニュミレーションが行われる。
【００６５】
ＵＳＢデバイスは、図４に示すデバイス・ステートを遷移していき、アイドル状態となることができる。
【００６６】
以下、具体的なＵＳＢのバス・エニュミレーション時の動作について説明する。
【００６７】
図４は、エニュミレーション時の動作を説明するためのデバイス・ステート・ダイアグラム（Ｄｅｖｉｃｅ　Ｓｔａｔｅ　Ｄｉａｇｒａｍ）である。
（１）ＵＳＢデバイスをハブ（Ｈｕｂ）に接続すると、ハブがステータスの変化をホストＰＣ１０１に通知する。このとき、ＵＳＢデバイスは、Ａｔｔａｃｈｅｄ（接続）ステート（図４の４０１）となり、ＵＳＢデバイスが接続されたポートは、ディスエーブルとなる。
（２）ホストＰＣ１０１は、ハブに何故ステータスが変化したかを問い合わせる。
（３）ホストＰＣ１０１は、新しいデバイスが接続されたことを知り、また、どのポートに接続されたことも知る。ホストＰＣ１０１は、新しいデバイスが接続されたポートに対し、ポートイネーブル、リセットコマンドを発行する。Ｐｏｗｅｒｅｄ（電源投入）ステート（図４の４０２）となる。
（４）ハブは、新しいデバイスが接続されたポートへのリセット信号を１０ｍｓ保持する。リセット信号が解除されるとポートがイネーブルになり、ハブは１００ｍＡのバス電流をＵＳＢデバイスに供給する。これで、ＵＳＢデバイスは、Ｄｅｆａｕｌｔ（デフォルト）ステート（図４の４０３）となる。ＵＳＢデバイスは、デフォルトアドレスに応答できるようになる。
（５）ＵＳＢデバイスが一意なアドレスを受け取るまでは、デフォルトパイプにデフォルトアドレスを通じてアクセスできる。ホストＰＣ１０１は、デバイスディスクリプタを読み取り、デフォルトパイプが使用できる最大データペイロードサイズを判断する。
（６）ホストＰＣ１０１は、ＵＳＢデバイスに一意のアドレスを割り当て、そのデバイスをＡｄｄｒｅｓｓ（アドレス割り当て）ステート（図４の４０４）に移す。
（７）ホストＰＣ１０１は、ＵＳＢデバイスからの構成情報を読み取るために、それぞれの構成０〜ｎを読み取る。このプロセスを完了するのに幾つかのフレームが必要になることがある。
（８）構成情報とＵＡＢデバイスの使用方法を基にして、ホストＰＣ１０１は、デバイスに構成値を割り当てる。これで、デバイスは、Ｃｏｎｆｉｇｕｒｅｄ
（構成）ステート（図４の４０５）となり、この構成中の全てのエンドポイントは、記述されている特性をとる。ＵＳＢデバイスは、その構成ディスクリプタの中で記述されている量のＶｂｕｓ電力を得ることができる。デバイスからの観点からは、デバイスは、使用可能な状態（アイドル）状態となっている。
【００６８】
ＵＳＢデバイスは、バスに接続してから使用可能になるまでに、上記のようにステートを遷移する。ＵＳＢのフルスピード（ＦＳ）とハイスピード（ＨＳ）の調停も上記ステート遷移の中で行われる。具体的には上記（４）のリセット信号の１０ｍｓ保持しているときに行われる。ハブがリセット信号を保持している際に、ＨＳ対応デバイスは、リセット信号を検知した場合、ＦＳ対応デバイスと同様に、まず、Ｄ＋ラインをプルアップする。その後、ＨＳ対応デバイスは、Ｄ＋、Ｄ−ラインをＫステートにドライブを行うことにより、ハブにＨＳ対応デバイスであることを通知する（デバイスＣｈｉｒｐと呼ばれる）。
【００６９】
ハブは、デバイスＣｈｉｒｐを検知すると、Ｄ＋、Ｄ−ラインをＫステートとＪステートとを交互にドライブすることにより、デバイスにＨＳ対応ハブであることを通知する（ハブＣｈｉｒｐと呼ばれる）。
【００７０】
以上のデバイスＣｈｉｒｐとハブＣｈｉｒｐとにより、互いにＨＳ対応デバイスであることが確認できると、ハイスピードモードとなる。
【００７１】
ハイスピード、フルスピードの調停方法は、前記手段によるため、ＵＳＢデバイスは、自分がハイスピードモード、フルスピードモードのどちらの転送モードを使用したデータ転送手段を用いるかを認識している。調停が行なわれた時点でＵＳＢデバイスは、ハイスピードモード、フルスピードモードのどちらの転送モードを使用するかをレジスタにセットしておくことにより、プリンタコントローラ１０４は、自分がどちらの転送モードを使用しているかが認識可能となる。転送モードがどちらか一方でもＨＳに対応していない場合は、フルスピードモードとなる。
【００７２】
以上の調停により、ハイスピードモードでの通信が確定しているデフォルトステートで、転送モードが示されるレジスタを参照し、ハイスピードモードでの転送モードが採用されている場合に、タイマの設定時間をハイスピード用の時間設定に切り換える。
【００７３】
以上説明した方法によれば、エニュミレーション時のタイマ設定時間の切り替えが実現できる。
【００７４】
尚、本発明は、上述した一実施形態に限定されるものではなく、種々の応用が可能である。
【００７５】
また、上述した一実施形態では、インクジェットプリンタを例に挙げて説明したが、例えば、レーザビームプリンタ（ＬＢＰ）、ストレージ機器等のデータ転送にＵＳＢを使用した場合等、様々な周辺機器に応用が可能である。
【００７６】
また、周辺機器のみではなく、ホスト装置側に本発明を適用しても良い。
【００７７】
更に、上述した一実施形態では、ソフト的に次のパケット受信までのタイマ設定を行ったが、ハード的に行っても良い。
【００７８】
（その他の実施形態）
本発明は、複数の機器（例えば、ホストコンピュータ、インターフェース機器、リーダー、プリンタ等）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機、ファクシミリ装置等）に適用してもよい。
【００７９】
また、本発明の目的は、上記実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成されることは言うまでもない。
【００８０】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８１】
上述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して実行することによっても、本発明が達成されることは言うまでもない。
【００８２】
この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８３】
また、プログラムコードを供給するための記憶媒体としては、例えば、ＲＡＭ、ＮＶ−ＲＡＭ、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ等）、磁気テープ、不揮発性のメモリカード、他のＲＯＭ等の上記プログラムコードを記憶できるものであれば良く、或いはネットワークを介したダウンロード等を用いることができる。
【００８４】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８５】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８６】
【発明の効果】
以上説明したように、本発明によれば、転送モードに応じてタイマ設定時間を設定することができ、ハイスピード対応デバイスにおいて、フルスピード転送モード及びハイスピード転送モードのいずれにおいても、確実で高速なデータ転送を実現することができる。更に、前記データ転送方式を印刷装置に用いることにより、高速な印刷装置が得られる。
【図面の簡単な説明】
【図１】本発明の一実施の形態に係るデータ転送装置によりデータ転送を行うプリントシステムの構成を示すブロック図である。
【図２】本発明の一実施の形態に係るデータ転送装置によりデータ転送を行うプリントシステムにおけるプリンタコントローラの構成を示すブロック図である
【図３】本発明の一実施の形態に係るデータ転送装置によりデータ転送を行うプリントシステムにおけるＵＳＢを使用したプリントデータ受信時における動作の流れを示すフローチャートである。
【図４】本発明の一実施の形態に係るデータ転送装置におけるエニュミレーション時の動作を説明するためのデバイス・ステート・ダイアグラムである。
【符号の説明】
１０１　　ホストＰＣ
１０２　　プリンタ
１０３　　外部バス
１０４　　プリンタコントローラ
１０５　　プリンタエンジン
２０１　　ＵＳＢコントローラ
２０２　　ＤＭＡコントローラ
２０３　　ＲＡＭ
２０４　　ＲＯＭ
２０５　　ＥＥＰＲＯＭ
２０６　　メモリコントローラ
２０７　　操作パネル
２０８　　操作パネルＩ／Ｆ
２０９　　ＣＰＵ
２１０　　画像処理ＡＳＩＣ
２１１　　ＳＤＲＡＭ
【図１】
2004118517.tif 000003
【図２】
2004118517.tif 000004
【図３】
2004118517.tif 000005
【図４】
2004118517.tif 000006