(57)【要約】【課題】本発明は、ＵＳＢホストからのバルクアウト転送による画像データの転送を受け取るＵＳＢデバイス、画像処理装置、ＵＳＢ転送制御方法、ＵＳＢ転送制御プログラム及び記録媒体に関する。【解決手段】複合装置のＩ／Ｆ制御部４に搭載されているＵＳＢデバイスコントローラ１１のパケット監視部２３は、ＵＳＢ転送のバルクアウト転送によって転送されてくる各パケットのデータ量をカウントして、マックスパケットデータ量のマックスパケットを検出すると、最終データ判定タイマ値のカウントを開始し、最終データ判定タイマ値をカウントアウトすると、該マックスパケットが最終パケットであると判定するとともに、マックスパケットの転送間隔時間を計測して、計測した該マックスパケット転送間隔時間に基づいて前記最終データ判定タイマ値を決定する。【選択図】          図１
2011003162.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢ転送のバルクアウト転送によって転送されてくる各パケットのデータ量をカウントするデータ量カウント手段と、
前記データ量カウント手段が所定のマックスパケットデータ量のマックスパケットを検出すると、該マックスパケットの受信をカウント開始トリガとして所定の最終データ判定時間のカウントを開始するタイマカウント手段と、
前記マックスパケットの転送間隔時間を計測して、計測した該マックスパケット転送間隔時間に基づいて前記最終データ判定時間を決定して前記タイマカウント手段に設定するタイマ値設定手段と、
前記タイマカウント手段が前記最終データ判定時間のカウントを開始してから次のパケットを受信することなく該最終データ判定時間をカウントアウトすると、該最終データ判定時間のカウント開始トリガとなった前記マックスパケットを最終パケットと判定するパケット判定手段と、
を備えていることを特徴とするＵＳＢデバイス。
【請求項２】
前記ＵＳＢデバイスは、
バルクアウト転送によって転送されてくるＳＯＦパケットを検出するＳＯＦパケット検出手段をさらに備え、
前記タイマ値設定手段は、マックスパケットと次のマックスパケットとの間に前記ＳＯＦパケット検出手段の検出する前記ＳＯＦパケットの数に基づいて前記マックスパケット転送間隔時間を計測することを特徴とする請求項１記載のＵＳＢデバイス。
【請求項３】
前記ＵＳＢデバイスは、
所定周波数の内部クロックを計数するクロック計数手段をさらに備え、
前記タイマ値設定手段は、マックスパケットと次のマックスパケットとの間に前記クロック計数手段が計数する前記クロック数に基づいて前記マックスパケット転送間隔時間を計測することを特徴とする請求項１記載のＵＳＢデバイス。
【請求項４】
前記タイマ値設定手段は、過去所定回数分の前記パケット転送間隔時間を記憶して、該過去所定回数分のパケット転送間隔時間の最大時間または平均時間に基づいて前記最終データ判定時間を決定することを特徴とする請求項１から請求項３のいずれかに記載のＵＳＢデバイス。
【請求項５】
前記ＵＳＢデバイスは、
バルクアウト転送の転送速度を検出して該転送速度に基づいて前記マックスパケットデータ量を決定するデータ量決定手段をさらに備え、
前記タイマカウント手段は、前記データ量決定手段の決定したマックスパケットデータ量を前記データ量カウント手段がカウントすると、前記最終データ判定時間のカウントを開始することを特徴とする請求項１から請求項４のいずれかに記載のＵＳＢデバイス。
【請求項６】
ＵＳＢホストが接続され、該ＵＳＢホストからＵＳＢ転送のバルクアウト転送によって転送されてくる画像データをＵＳＢデバイスで受信して、該受信した画像データに所定の画像処理を行う画像処理装置において、
前記ＵＳＢデバイスとして、請求項１から請求項５のいずれかに記載のＵＳＢデバイスを備えていることを特徴とする画像処理装置。
【請求項７】
ＵＳＢ転送のバルクアウト転送によって転送されてくる各パケットのデータ量をカウントするデータ量カウント処理ステップと、
前記データ量カウント処理ステップで所定のマックスパケットデータ量のマックスパケットが検出されると、該マックスパケットの受信をカウント開始トリガとして所定の最終データ判定時間のカウントを開始するタイマカウント処理ステップと、
前記マックスパケットの転送間隔時間を計測して、計測した該マックスパケット転送間隔時間に基づいて前記最終データ判定時間を決定して前記タイマカウント処理ステップの前記最終データ判定時間として設定するタイマ値設定処理ステップと、
前記タイマカウント処理ステップで前記最終データ判定時間のカウントを開始してから次のパケットを受信することなく該最終データ判定時間がカウントアウトされると、該最終データ判定時間のカウント開始トリガとなった前記マックスパケットを最終パケットと判定するパケット判定処理ステップと、
を有していることを特徴とするＵＳＢ転送制御方法。
【請求項８】
コンピュータに、
ＵＳＢ転送のバルクアウト転送によって転送されてくる各パケットのデータ量をカウントするデータ量カウント処理と、
前記データ量カウント処理で所定のマックスパケットデータ量のマックスパケットが検出されると、該マックスパケットの受信をカウント開始トリガとして所定の最終データ判定時間のカウントを開始するタイマカウント処理と、
前記マックスパケットの転送間隔時間を計測して、計測した該マックスパケット転送間隔時間に基づいて前記最終データ判定時間を決定して前記タイマカウント処理の前記最終データ判定時間として設定するタイマ値設定処理と、
前記タイマカウント処理で前記最終データ判定時間のカウントを開始してから次のパケットを受信することなく該最終データ判定時間がカウントアウトされると、該最終データ判定時間のカウント開始トリガとなった前記マックスパケットを最終パケットと判定するパケット判定処理と、
を実行させることを特徴とするＵＳＢ転送制御プログラム。
【請求項９】
請求項８記載のＵＳＢ転送制御プログラムを記録したことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢデバイス、画像処理装置、ＵＳＢ転送制御方法、ＵＳＢ転送制御プログラム及び記録媒体に関し、詳細には、ＵＳＢホストからのＵＳＢ転送のバルクアウト転送によるデータの転送を受け取るＵＳＢデバイス、該ＵＳＢデバイスを備えた画像処理装置、ＵＳＢ転送制御方法、ＵＳＢ転送制御プログラム及び記録媒体に関する。
【背景技術】
【０００２】
プリンタ装置、複写装置、複合装置、ファクシミリ装置等の画像データを取り扱う画像処理装置においては、ＵＳＢ（Universal Serial Bus）によるバルクアウト（BulkOut）転送によって画像データの転送を受け取ることが行われている。
【０００３】
例えば、複合装置は、ＵＳＢホストとしてパーソナルコンピュータを使用するＵＳＢデバイスコントローラが接続され、ＵＳＢホストからの画像データをＵＳＢのバルクアウト転送によって受信して、画像形成出力や転送出力等の画像処理を行っている。
【０００４】
このバルクアウト転送は、そのプロトコルとして、１パケットで転送可能なデータ量が、ＵＳＢデバイスのエンドポイント（Endpoint）内のバッファの最大値までと決められており、ＵＳＢホストがバルクアウト転送によってデータを転送する場合、最終データがShortPacket（エンドポイントのバッファの最大に満たないデータ量を転送するパケット）のときには、該パケットが最終データであるか否かを判定することができるが、最終データがバッファの最大値と同値のデータ量を転送するマックスパケット（MaxPacket）のときには、そのパケットだけでは最終データであるかどうかを決定することができない。この場合、ＵＳＢホストは、一般的に、最終データパケット送信後、NullPacket（データの存在しないパケット：ゼロレングスデータともいう。）を送信することとなっている。
【０００５】
ところが、NullPacketを送信するか送信しないかはＵＳＢホストに依存されており、ＵＳＢホストによっては、送信しない場合もあり、データ受信を受ける画像処理装置としては、マックスパケットの後にNullPacketが送信されてこなくても最終データパケットであることに対する対策が必要である。
【０００６】
そこで、従来、マックスパケット受信後に、タイマが予め設定されている固定の一定時間をカウントしても、NullPacketを受信しないときには、異常と判定して、前のマックスパケットを最終データとして処理する技術がある（特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記公報記載の従来技術にあっては、バルクアウト転送において、マックスパケット受信後に、タイマが固定の一定時間をカウントしても、NullPacketを受信しないときには、前のマックスパケットを最終データとして処理しているため、マックスパケットを受信すると、常に、次のパケットを受信するか、タイマが固定の一定時間をカウントするかを待つ必要があり、マックスパケットを最終パケットと判定するまでに常に固定の一定時間を必要とし、バルクアウト転送を適切に処理しつつ、処理速度を向上させる上で、改良の必要があった。
【０００８】
そこで、本発明は、バルクアウト転送のマックスパケット受信後に該マックスパケットが最終パケットであるか否かの判断時間を適切に短縮して、適切なＵＳＢ転送と処理速度の向上を行うＵＳＢデバイス、画像処理装置、ＵＳＢ転送制御方法、ＵＳＢ転送制御プログラム及び記録媒体を提供することを目的としている。
【課題を解決するための手段】
【０００９】
本発明は、上記目的を達成するために、ＵＳＢ転送のバルクアウト転送によって転送されてくる各パケットのデータ量をカウントして、所定のマックスパケットデータ量のマックスパケットを検出すると、所定の最終データ判定時間のカウントを開始し、該最終データ判定時間をカウントアウトすると、該最終データ判定時間のカウント開始トリガとなった前記マックスパケットが最終パケットであると判定するとともに、前記マックスパケットの転送間隔時間を計測して、計測した該マックスパケット転送間隔時間に基づいて前記最終データ判定時間を決定することにより、上記目的を達成している。
【００１０】
また、本発明は、マックスパケットと次のマックスパケットとの間に、バルクアウト転送によって転送されてくるＳＯＦパケット数または所定周波数の内部クロック数を検出し、該ＳＯＦパケット数または内部クロック数に基づいて前記マックスパケット転送間隔時間を計測することを特徴としてもよい。
【００１１】
さらに、本発明は、過去所定回数分のパケット転送間隔時間の最大時間または平均時間に基づいて前記最終データ判定時間を決定することを特徴としてもよい。
【００１２】
また、本発明は、前記マックスパケットデータ量を、バルクアウト転送の転送速度の検出結果に基づいて決定することを特徴としてもよい。
【発明の効果】
【００１３】
本発明によれば、バルクアウト転送のマックスパケット受信後に該マックスパケットが最終パケットであるか否かの最終データ判定時間を適切に短縮することができ、適切なＵＳＢ転送と処理速度の向上を行うことができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施例を適用した複合装置の要部ブロック構成図。
【図２】Ｉ／Ｆ制御部のブロック構成図。
【図３】パケット監視部のブロック構成図。
【図４】タイマ設定値決定部のブロック構成図。
【図５】カウンタによるデータ間隔計測処理を示すタイミング図。
【図６】ＳＯＦに基づくトラフィック判定処理の説明図。
【図７】ＵＳＢ転送のトラフィックとＳＯＦの関係を示す図。
【図８】ＵＳＢ転送制御処理を示すフローチャート。
【図９】第２実施例における複合装置のタイマ設定値決定部のブロック構成図。
【図１０】クロックに基づくトラフィック判定処理の説明図。
【発明を実施するための形態】
【００１５】
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
【実施例１】
【００１６】
図１〜図５は、本発明のＵＳＢデバイス、画像処理装置、ＵＳＢ転送制御方法、ＵＳＢ転送制御プログラム及び記録媒体の第１実施例を示す図であり、図１は、本発明のＵＳＢデバイス、画像処理装置、ＵＳＢ転送制御方法、ＵＳＢ転送制御プログラム及び記録媒体の第１実施例を適用した複合装置１の要部ブロック構成図である。
【００１７】
図１において、複合装置１は、演算処理部２、主記憶部３、Ｉ／Ｆ（インターフェイス）制御部４、画像入力部５、画像出力部６、操作部７及び補助記憶部８等を備えているとともに、図示しないが、ファクシミリ通信部、ネットワーク通信部等を備えており、スキャナ機能、プリンタ機能、コピー機能、ファクシミリ機能、転送機能等の複数の機能を備えている。
【００１８】
主記憶部３は、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等の記憶素子で構成され、主に、複合装置１の基本プログラムや本発明のＵＳＢ転送制御プログラム等のプログラム及びシステムデータを記憶している。補助記憶部８は、ハードディスク等で構成され、主に、画像データ等を保管する。
【００１９】
演算処理部２は、主記憶部３内のプログラムに基づいて複合装置１の各部を制御して複合装置１としての基本処理を実行するとともに、後述する本発明のＵＳＢ転送制御処理を実行する。
【００２０】
すなわち、複合装置１は、ＲＯＭ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory ）、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory ）、ＣＤ−ＲＷ（Compact Disc Rewritable ）、ＤＶＤ（Digital Video Disk）、ＳＤ（Secure Digital）カード、ＭＯ（Magneto-Optical Disc）等のコンピュータが読み取り可能な記録媒体に記録されている本発明のＵＳＢ転送制御方法を実行するＵＳＢ転送制御プログラムを読み込んで主記憶部３に導入することで、後述するＵＳＢ転送を効率的にかつ高速に行うＵＳＢ転送制御方法を実行するＵＳＢデバイスを搭載する画像処理装置として構築されている。このＵＳＢ転送制御プログラムは、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
【００２１】
画像入力部５は、例えば、ＣＣＤ（Charge Coupled Device ）を利用したイメージスキャナ等が利用されており、一般にＡＤＦ（自動原稿送り装置）を備えている。ＡＤＦは、セットされた複数枚の原稿を１枚ずつ画像入力部５の原稿読取位置に送給し、画像入力部５は、ＡＤＦから搬送されてきた原稿を走査して、原稿の画像を所定の解像度で読み取って演算処理部２に出力する。
【００２２】
画像出力部６は、例えば、電子写真式記録装置等を用いたプリンタが使用されており、受信した画像データや画像入力部５で読み取った画像データ等の演算処理部２から渡される画像データに基づいて画像を用紙に記録出力する。
【００２３】
操作部７は、複合装置１を操作するのに必要な各種キーやディスプレイ（例えば、ＬＣＤ（Liquid Crystal Display）等）及び複合装置１の動作状態を表示するＬＥＤ等のランプ等を備え、操作キーからは、複合装置１を利用した各種操作の命令が入力される。操作部７は、操作キーから入力された命令内容や複合装置１からオペレータに通知する各種情報をディスプレイに表示する。
【００２４】
Ｉ／Ｆ制御部４は、主にＵＳＢやＬＡＮ（Local Area Network）等の汎用インターフェイスのデータ送受信を行い、受信したデータを、演算処理部２を介することなく、ＤＭＡ（Direct Memory Access）転送により、各記憶部３、８に転送する。
【００２５】
Ｉ／Ｆ制御部４は、図２に示すようにブロック構成されており、ＵＳＢデバイスコントローラ１１、ＷＤＭＡＣ（Write Direct Memory Access Controller）１２、ＲＤＭＡＣ（Read ＤＭＡＣ）１３及びデータバス１４等を備えている。
【００２６】
ＵＳＢデバイスコントローラ（ＵＳＢデバイス）１１は、ＰＨＹ（物理メディアインターフェイス）２１、ＳＩＥ（Serial Interface Engine：シリアルインターフェイスエンジン）２２及びパケット監視部２３等を備えており、ＳＩＥ２２は、プロトコルエンジン３１、コントロール転送用エンドポイント３２、バルクアウト（BulkOut）用エンドポイント３３、バルクイン（BulkIn）用エンドポイント３４等を備えている。
【００２７】
データバス１４は、アービタ機能を有し、各インターフェイスとやりとりするデータを演算処理部２との間で双方向に転送する。
【００２８】
Ｉ／Ｆ制御部４には、ＵＳＢホスト１００がハブ（ＨＵＢ）１０１を介して接続され、ＵＳＢホスト１００は、例えば、パーソナルコンピュータ等のＵＳＢ転送のホストである。ハブ１０１には、最大１２７のＵＳＢデバイスを接続することができるが、通常の利用状況は、せいぜい数個のＵＳＢデバイスが接続される。
【００２９】
ＵＳＢデバイスコントローラ１１のＰＨＹ２１は、ＵＳＢホスト１００とのデータの送受信を行い、パラレル−シリアル変換を行う。
【００３０】
ＳＩＥ２２は、ＵＳＢ転送のデジタル部分の処理を行い、ビットスタッフィング、ＣＲＣ生成とチェック及びエラー報告等の低水準の細部における作業を実施する。プロトコルエンジン３１は、ＵＳＢホスト１００からのデータが、コントロール転送用エンドポイント３２、バルクアウト転送用エンドポイント３３、バルクイン転送用エンドポイント３４のどのエンドポイント３２〜３４のデータであるかを判別して、各エンドポイント３２〜３４に振り分ける。エンドポイント３２〜３４は、少なくとも２つ以上存在し、エンドポイント３２〜３４毎に機能が異なる。各エンドポイント３２〜３３は、それぞれ所定容量のバッファ３２ｂ、３３ｂ、３４ｂを備えており、ＵＳＢホスト１００から転送されてくる１パケットのデータサイズが、このバッファ３２ｂ〜３４ｂのサイズ（容量）によって決定される。
【００３１】
バルクアウト用エンドポイント３３には、ＷＤＭＡＣ１２が接続され、ＷＤＭＡＣ１２は、データバス１４に接続されていて、主記憶部３または補助記憶部８へデータをＤＭＡ転送して記憶部３、８へのデータの書き込みを行う。
【００３２】
バルクイン用エンドポイント３４には、ＲＤＭＡＣ１３が接続されており、主記憶部３または補助記憶部８のデータを読み出して各インターフェイスにＤＭＡＣ転送する。
【００３３】
パケット監視部２３は、バルクアウト用エンドポイント３３とＷＤＭＡＣ１２との間に配設されており、バルクアウト用エンドポイント３３からのデータをＷＤＭＡＣ１２に転送するとともに、パケットの切れ目を監視する。
【００３４】
パケット監視部２３は、図３に示すようにブロック構成されており、ＥＰ  Ｉ／Ｆ（エンドポイント用インターフェイス）４１、ＤＭＡＣ  Ｉ／Ｆ（ＤＭＡＣ用インターフェイス）４２、転送サイズカウンタ部４３、タイマカウンタ部４４及びタイマ設定値決定部４５等を備えている。また、上記ＳＩＥ２２は、速度監視部３５とレジスタ３６を備えている。
【００３５】
ＥＰ  Ｉ／Ｆ４１は、バルクアウト用エンドポイント３３とＤＭＡＣ  Ｉ／Ｆ４２に接続されて、バルクアウト用エンドポイント３３からのデータを受け取ってＤＭＡＣ  Ｉ／Ｆ４２に渡す。
【００３６】
ＤＭＡＣ  Ｉ／Ｆ４２は、ＷＤＭＡＣ１２に接続され、ＥＰ  Ｉ／Ｆ４１から受け取ったデータをＷＤＭＡＣ１２に渡す。
【００３７】
転送サイズカウンタ部（データ量カウント手段）４３は、バルクアウト用エンドポイント３３からＥＰ  Ｉ／Ｆ４１に送られる１パケット内のデータ量、すなわち、ＷＤＭＡＣ１２に転送される１パケット内のデータ量をカウントして、パケットサイズが、Maxデータサイズ（マックスパケットデータ量）でないとき、すなわち、バルクアウト用エンドポイント３３のバッファ３３ｂのサイズに満たないデータ量であるときには、最終データであると判断して、タイマカウンタ部４４及びタイマ設定値決定部４５に対して、クリア信号を出力する。また、転送サイズカウンタ部４３は、パケットサイズがMaxデータサイズのときには、タイマカウンタ部４４にスタート信号を出力し、その後、新しいパケットデータがバルクアウト用エンドポイント３３から転送されてくると、タイマカウンタ部４４及びタイマ設定値決定部４５にクリア信号を出力する。さらに、転送サイズカウンタ部４３は、ＵＳＢバスの転送スピードによって利用可能なバッファサイズが変動するので、ＳＩＥ２２内部の速度監視部（データ量決定手段）３５からの速度決定信号を受け取って、Maxデータサイズを変更する。また、各Maxデータサイズは、ＳＩＥ２２内部のレジスタ３６より設定が可能であり、例えば、ハイスピード（High Speed）のときには、５１２Ｂｙｔｅ、フルスピード（Full Speed）のときには、６４Ｂｙｔｅに設定される。このレジスタ３６によって設定されるMaxデータサイズは、バルクアウト用エンドポイント３３のバッファサイズとなる。
【００３８】
タイマカウンタ部（タイマカウント手段）４４は、Maxサイズ転送終了後、すなわち、マックスパケットサイズ（Maxデータサイズ）のデータの転送終了後に転送サイズカウンタ部４３からスタート信号が入力されると、予め設定された最終データ判定時間（タイマ値）をカウントし、この最終データ判定時間の初期値は、ＳＩＥ２２内部のレジスタ３６により設定することが可能である。タイマカウンタ部４４は、最終データ判定時間のカウントを開始して、次のパケットデータの転送が始まると、転送サイズカウンタ部４３からのクリア信号によりカウント処理を停止してタイマカウンタをクリアする。タイマカウンタ部４４は、設定された最終データ判定時間をカウントすると、ＤＭＡＣＩ／Ｆ４２に対して異常通知信号を出力するとともに、タイマカウンタをクリアし、タイマ設定値決定部４５にクリア信号を出力する。
【００３９】
タイマ設定値決定部（タイマ値設定手段）４５は、例えば、図４に示すように、カウンタ５１、パケット間隔判別部５２及びＬＵＴ（ルックアップテーブル）５３等を備えており、カウンタ５１には、ＥＰ  Ｉ／Ｆ４１からの画像データ転送中を示すＲＥＱ信号、転送サイズカウンタ部４３からのクリア信号及びＳＩＥ２２内部のＳＯＦパケット検知部３７からのパルスが入力される。ＳＯＦパケット検知部（ＳＯＦパケット検出手段）３７は、ＵＳＢ転送におけるパケットデータのＳＯＦ（Start of Frame）を検出する毎にＳＯＦ検出パルスをカウンタ５１に出力する。
【００４０】
カウンタ５１は、図５に示すように、ＥＰ  Ｉ／Ｆ４１から入力される画像データ転送中を示すＲＥＱ信号がネゲートしている時間（マックスパケットと次のマックスパケットとの間の時間：マックスパケット転送間隔時間）をＳＯＦパケット検知部３７から入力されるＳＯＦ検出パルスの数をカウントすることで計測し、ＲＥＱ信号のアサートを検知すると、現在のカウント値をパケット間隔判別部５２に出力する。カウンタ５１は、ＲＥＱ信号のアサート検知、転送サイズカウンタ部４３からのクリア信号、または、タイマカウンタ部４４からのクリア信号の入力によってカウント値をクリアする。
【００４１】
パケット間隔判別部（パケット判定手段）５２は、カウンタ５１からカウント値が入力されるとともに、転送サイズカウンタ部４３及びタイマカウンタ部４４からクリア信号が入力され、カウンタ５１から出力されるカウント値を、例えば、３回のカウント分保持して、常にトラフィック状況を判別する。パケット間隔判別部５２は、ＲＥＱ信号のアサート検出（立ち上がり検出）を示すカウンタ部５１からのカウント値５１の入力をトリガとして、その都度、それまで保持していたパケット間隔を判別し、該パケット間隔に基づいてバスのトラフィック、例えば、図６、図７に示すトラフィックＴｒ１〜Ｔｒ４を判定して、該トラフィックＴｒ１〜Ｔｒ４に対応する最終データ判定時間であるタイマ値をＬＵＴ５３から読み出して、タイマカウンタ部４４に対して、タイマ値を出力する。パケット間隔判別部５２には、転送サイズカウンタ部４３及びタイマカウンタ部４４からクリア信号が入力され、このクリア信号が入力されると、全て初期化されて、タイマカウンタ部４４に対して予め設定されている初期値をタイマ値として出力する。
【００４２】
パケット間隔判別部５２は、例えば、図６（ａ）に示すように、過去３回分のマックスパケット間隔におけるＳＯＦパケット数を記憶し、該ＳＯＦパケット数に基づいてＵＳＢバスのトラフィックをトラフィックＴｒ１〜Ｔｒ４に分類する際の閾値が、レジスタ３６によって設定される。パケット間隔判別部５２は、過去３回分のパケット間隔におけるＳＯＦパケット数のうち最大ＳＯＦパケット数を閾値と比較して、図６（ｂ）に示すように、トラフィックＴｒ１〜Ｔｒ４のいずれに該当するかでトラフィックＴｒ１〜Ｔｒ４を判定する。そして、パケット間隔判別部５２は、このトラフィックＴｒ１〜Ｔｒ４に対応するタイマ値（最終データ判定時間）をＬＵＴ５３から読み出してタイマカウンタ部４４に設定する。
【００４３】
なお、図６（ａ）には、マックスパケット間隔のトラフィック状況１〜４として、過去３回分のＳＯＦパケット数が示されており、そのうち最大のＳＯＦパケット数がハッチングの施されている枠内の数値として示されている。本実施例では、最大ＳＯＦパケット数の閾値とトラフィックＴｒ１〜Ｔｒ４との関係が、トラフィックＴｒ１＜トラフィックＴｒ２＜トラフィックＴｒ３＜トラフィックＴｒ４に設定されており、図６（ｂ）には、最大ＳＯＦパケット数とトラフィックＴｒ１〜Ｔｒ４の対応関係が示されている。
【００４４】
すなわち、タイマ設定値決定部４５は、ＵＳＢ転送の複数に分類したトラフィックＴｒ１〜Ｔｒ４とタイマカウント部４４のカウントするタイマ値とを対応させたＬＵＴ５３を備え、マックスパケット転送間隔時間（Maxサイズデータ転送間隔時間）をカウンタ部５１のカウントするＳＯＦパケット数によって監視して、例えば、直前のパケット間隔をトラフィック状況としてとらえて、ＬＵＴ５３からタイマ値を取得して、取得したタイマ値をタイマカウンタ部４４に出力する。なお、上記説明では、過去３回分の最大のＳＯＦパケット数を用いてトラフィックＴｒ１〜Ｔｒ４を判定しているが、過去３回分の平均のＳＯＦパケット数を用いてもよいし、過去２回以上における適宜の回数分の最大または平均のＳＯＦパケット数を用いてもよい。また、前回のＳＯＦパケット数を用いてトラフィックＴｒ１〜Ｔｒ４を判定してもよい。
【００４５】
このＬＵＴは、例えば、図７に示すように、４つのトラフィックＴｒ１〜Ｔｒ４を想定して、各トラフィックＴｒ１〜Ｔｒ４に対応したタイマ設定値を対応付けたものであり、図４では、トラフィックＴｒ１〜Ｔｒ４は、ＵＳＢ転送のＳＯＦを基準として、バルクアウト転送が発生した回数によってトラフィックＴｒ１〜Ｔｒ４を設定している。図７は、ＵＳＢホスト−ハブ１０１間のＵＳＢバスのトラフィック状況を示しており、トラフィックＴｒ１は、ＳＯＦとＳＯＦとの間に４回バルクアウト転送が発生、トラフィックＴｒ２は、ＳＯＦとＳＯＦとの間に１回のみバルクアウト転送が発生、トラフィックＴｒ３は、ＳＯＦ２回の間に１回のみバルクアウト転送が発生、トラフィックＴｒ４は、ＳＯＦ５回の間に１回のみバルクアウト転送が発生する場合を示している。そして、ＬＵＴは、このトラフィックＴｒ１〜Ｔｒ４のそれぞれに対してタイマ設定値を対応付けたものとなっている。
【００４６】
なお、バルクアウト転送は、各種存在するＵＳＢ転送のうち、バルクイン転送やコントロール転送と同様にＳＯＦとは非同期で転送が行われる非同期転送であって、優先順位がこれらの転送と同じである。また、ＵＳＢ転送には、その他に、アイソクロナス転送、インタラプト転送というＳＯＦパケットと同期して転送されるタイプの転送がある。
【００４７】
そして、本実施例では、トラフィックＴｒ１〜Ｔｒ４をＳＯＦを基準としてバルクアウト転送の発生回数によって判定している。すなわち、ＵＳＢ転送においては、ＳＯＦ同期型の同期転送は、ＳＯＦに非同期の転送よりも優先順位が高いが、ＵＳＢホスト１００が占有率を管理しているため、ある程度の非同期転送の占有率も確保され、トラフィック状況が急激に変化することはないとともに、バルクアウト転送は、非同期転送であるため、ハブ１０１に他のデバイスが接続されていない場合、または、接続されていても転送を行っていない場合には、図４のトラフィックＴｒ１に示すように、バルクアウト転送のみでＵＳＢバスを占有することが可能であるため、また、通常、ハブ１０１に接続されるＵＳＢデバイス数が急激に変化することがないことから、ＳＯＦを基準としてバルクアウト転送の発生回数によってＵＳＢバスのトラフックＴｒ１〜Ｔｒ４を判定することができる。
【００４８】
次に、本実施例の作用を説明する。本実施例の複合装置１は、ＵＳＢホスト１００からＵＳＢ転送のバルクアウト転送によって画像データを受け取ってプリント出力や転送出力を行う際の該バルクアウト転送を適切かつ高速に行う。
【００４９】
すなわち、複合装置１は、パーソナルコンピュータ等のＵＳＢホスト１００が接続されるＩ／Ｆ制御部４を備えており、Ｉ／Ｆ制御部４には、ハブ１０１を介してＵＳＢホスト１００が接続される。
【００５０】
ＵＳＢホスト１００は、複合装置１にＵＳＢ転送のバルクアウト転送によってＳＯＦとは非同期に画像データをパケット転送する。このＵＳＢ転送のバルクアウト転送は、上述のように、最終データがマックスパケット（MaxPacket）のときには、そのパケットだけでは最終データであるかどうかを決定することができないため、ＵＳＢホスト１００がNullPacketを送信することとなっているが、ＵＳＢホスト１００によってはNullPacketを送信してこない場合がある。そこで、複合装置１のＩ／Ｆ制御部４は、ＵＳＢデバイスコントローラ１１にパケット監視部２３を有し、パケット監視部２３が、予め設定したタイマ値をカウントして、該タイマ値をカウントする前に次のパケットを受信すると、該マックスパケットは最終データではなく、タイマ値をカウントすると、該マックスパケットが最終データであると判断する処理を行うが、このタイマ値をＳＯＦを基準とするＵＳＢバスのトラフィックに基づいてタイマ値を設定して、適切かつ速やかにマックスパケットが最終データであるか否か判断している。
【００５１】
すなわち、パケット監視部２３は、図８に示すように、バルクアウト用エンドポイント３３からパケットデータがＥＰ  Ｉ／Ｆ４１に送られてくると（ステップＳ１０１）、転送サイズカウンタ部４３が、該パケットデータのパケットデータサイズがマックスパケットのデータサイズであるか否か判断して（ステップＳ１０２）、パケットサイズがマックスパケットデータサイズでないときには、すなわち、パケットサイズがバルクアウト用エンドポイント３３のバッファ３３ｂのサイズに満たないときには、該パケットデータは最終データであると判断して、タイマカウンタ部４４及びタイマ設定値決定部４５にクリア信号を出力して、処理を終了する。このとき、タイマカウンタ部４４は、転送サイズカウンタ部４３からクリア信号が入力されると、タイマカウンタをクリアし、タイマ設定値決定部４５は、マックスパケットサイズデータ転送間隔の監視を終了する。
【００５２】
ステップＳ１０２で、転送サイズカウンタ部４３は、パケットサイズがマックスパケットデータサイズであるときには、タイマカウンタ部４４にスタート信号を出力し、タイマカウンタ部４４は、タイマ設定値決定部４５によって設定された最終データ判定時間であるタイマ値のカウントを開始する（ステップＳ１０３）。
【００５３】
転送サイズカウンタ部４３は、タイマカウンタ部４４にタイマ値のカウントを開始させると、次のパケットデータを受信したかチェックし（ステップＳ１０４）、次のパケットデータを受信しないときには、タイマカウンタ部４４がタイマ値（設定時間）をカウントしたか、すなわち、タイマカウンタ部４４からクリア信号が入力されたかチェックする（ステップＳ１０５）。転送サイズカウンタ部４３は、タイマカウンタ部４４がタイマ値をカウントしていないときには、ステップＳ１０４に戻って、次のパケットを受信したかのチェックから上記同様の処理を繰り返し行う（ステップＳ１０４、Ｓ１０５）。
【００５４】
ステップＳ１０４で、転送サイズカウンタ部４３は、次のパケットデータを受信すると、マックスパケットのパケットデータが最終データではないと判断して、タイマカウンタ部４４にクリア信号を出力して、タイマカウンタ部４４のカウント動作を停止させてカウント値をクリアし（ステップＳ１０６）、ステップＳ１０２に戻って、次のパケットについて、マックスパケットであるか否かの判断から上記同様に処理する（ステップＳ１０２〜Ｓ１０６）。
【００５５】
ステップＳ１０５で、転送サイズカウンタ部４３は、次のパケットデータを受信することなく、タイマカウンタ部４４がタイマ値をカウントすると、すなわち、設定された最終データ判定時間が経過すると、マックスパケットが最終データであると判断し、タイマカウンタ部４４及びタイマ設定値決定部４５にクリア信号を出力して、タイマカウンタ部４４がＤＭＡＣＩ／Ｆ４２に対して異常通知信号を出力する最終データ処理を行う（ステップＳ１０７）。ＤＭＡＣ  Ｉ／Ｆ４２は、異常通知信号を受け取ると、ＷＤＭＡＣ１２に最終データである旨を通知する。
【００５６】
また、タイマカウンタ部４４は、タイマ値をカウントするタイマカウンタをクリアし（ステップＳ１０８）、転送サイズカウンタ部４３及びタイマ設定値決定部４５にクリア信号を出力する（ステップＳ１０９）。
【００５７】
そして、タイマ設定値決定部４５は、マックスパケットの間隔（Maxデータ間隔）がＳＯＦを基準として、図７に示したトラフィックＴｒ１〜Ｔｒ４のいずれに該当するか判断して、該当するトラフィックＴｒ１〜Ｔｒ４に対してＬＵＴ５３で対応付けされている採集データ判定時間であるタイマ値を取得し、該取得したタイマ値をタイマカウンタ部４４に設定する。タイマカウンタ部４４は、転送サイズカウンタ部４３がマックスパケットのパケットデータを検出してタイマ値をカウントする際に、タイマ設定値決定部４５によって設定されるタイマ値をカウントする。
【００５８】
タイマカウンタ部４４は、ＵＳＢバスのトラフィックＴｒ１〜Ｔｒ４に応じたタイマ値をカウントして、転送サイズカウンタ部４３が、このタイマカウンタ部４４によるタイマ値のカウント結果に基づいて、マックスパケットが最終データであるか否か判断する。
【００５９】
そして、ＳＯＦは、ＵＳＢホスト１００が、ＵＳＢ転送のマイクロフレーム単位で時間を管理して、マイクロフレームの区切りを示すために、フレームの開始に際してＵＳＢバスに発行するものであり、一定のマイクロ時間間隔で発行される。バルクアウト転送は、上述のように、ＳＯＦとは非同期の転送であり、ＳＯＦ同期型の転送よりも優先順位は低いが、ＵＳＢホスト１００がＵＳＢバスの占有率を管理しているため、非同期転送の占有率もある程度確保され、ＵＳＢ転送のトラフィックが急激に変化することはない。
【００６０】
また、ＳＯＦは、通常、複合装置１内部の基準クロックのクロック周期よりも長いクロック周期を有しており、トラフィックを判定してタイマ値を設定するために処理するデータ数が、基準クロックを基準とする場合よりも少なくて済み、安価にかつ高速に処理を行うことができる。
【００６１】
そこで、複合装置１のパケット監視部２３は、タイマ設定値決定部４５が、ＳＯＦを基準として、バルクアウト転送のマックスパケットの転送間隔を監視して、ＵＳＢ転送のトラフィックＴｒ１〜Ｔｒ４を判定し、該トラフィックＴｒ１〜Ｔｒ４に対応した最終データ判定時間であるタイマ値をタイマカウンタ部４４に設定して、マックスパケットの受信後にタイマカウンタ部４４がこのタイマ値をカウントするまでに、次のパケットを受信するか否かによってマックスパケットが最終データであるか否か判定している。
【００６２】
このように、本実施例の複合装置１は、Ｉ／Ｆ制御部４にＵＳＢデバイスコントローラ１１を搭載しており、該ＵＳＢデバイスコントローラ１１は、ＵＳＢ転送のバルクアウト転送によって転送されてくる各パケットのデータ量を、そのパケット監視部２３の転送サイズカウンタ部４３でカウントして、所定のマックスパケットデータ量のマックスパケットを検出すると、タイマカウンタ部４４で、所定の最終データ判定時間であるタイマ値のカウントを開始し、タイマカウンタ部４４が該タイマ値のカウントを開始してから次のパケットを受信することなく、タイマ値をカウントアウトすると、該タイマ値のカウント開始トリガとなった前記マックスパケットが最終パケットであると判定するとともに、タイマ設定値決定部４５でマックスパケットの転送間隔時間を計測して、計測した該マックスパケット転送間隔時間に基づいて前記最終データ判定時間であるタイマ値を決定してタイマカウンタ部４４に設定している。
【００６３】
したがって、ＵＳＢ転送のバルクアウト転送において、マックスパケットの後にNullPacketが送られてこない場合にも、マックスパケット転送間隔時間に応じて最終データ判定時間であるタイマ値を調整してカウントすることで、マックスパケットが最終パケットであるか否かを速やかにかつ適切に判定することができ、適切なＵＳＢ転送と処理速度の向上を行うことができる。
【００６４】
また、本実施例の複合装置１は、バルクアウト転送におけるデータ転送において、異常が発生する前のデータ転送（パケット転送）までのＵＳＢバスのトラフィック状況を、マックスパケット転送間隔時間に基づいて監視して、最終データ判定時間であるタイマ値を動的に設定している。
【００６５】
したがって、ＵＳＢデバイスコントローラ１１を有した複合装置１において、バルク転送におけるマックスパケットが最終パケットであるか否かを速やかにかつ適切に判定することができ、適切なＵＳＢ転送の転送効率の向上と処理速度の向上を行うことができる。
【００６６】
さらに、本実施例の複合装置１は、パケット監視部２３のタイマ設定値決定部４５が、マックスパケットと次のマックスパケットとの間に、バルクアウト転送によって転送されてくるＳＯＦパケットをＳＯＦパケット検知部３７で検知して、このＳＯＦパケットの数に基づいてマックスパケット転送間隔時間を計測している。
【００６７】
したがって、ＵＳＢ転送のバルクアウト転送で用いられるＳＯＦパケットを基準としてＵＳＢバスのトラフィック状況を判定して、マックスパケット転送間隔時間を動的に設定することができ、適切なＵＳＢ転送の転送効率の向上と処理速度の向上を行うことができる。
【００６８】
また、本実施例の複合装置１は、過去所定回数分（例えば、３回分）のパケット転送間隔時間を記憶して、このパケット転送間隔時間の最大時間（または平均時間）に基づいて前記最終データ判定時間を決定している。
【００６９】
したがって、より一層適切にＵＳＢバスのトラフィック状況を判定して、マックスパケット転送間隔時間を動的に設定することができ、適切なＵＳＢ転送の転送効率の向上と処理速度の向上を行うことができる。
【００７０】
さらに、本実施例の複合装置１は、バルクアウト転送の転送速度を速度監視部３５で監視して、該バルクアウト転送の転送速度の検出結果に基づいてマックスパケットデータ量（Maxデータサイズ）を決定している。
【００７１】
したがって、バルクアウト転送においてＣＰＵである演算処理部２にかかる負荷を軽減することができる。
【実施例２】
【００７２】
図９及び図１０は、本発明のＵＳＢデバイス、画像処理装置、ＵＳＢ転送制御方法、ＵＳＢ転送制御プログラム及び記録媒体の第２実施例を示す図であり、図９は、本発明のＵＳＢデバイス、画像処理装置、ＵＳＢ転送制御方法、ＵＳＢ転送制御プログラム及び記録媒体の第２実施例を適用した複合装置のタイマ設定値決定部のブロック構成図である。
【００７３】
なお、本実施例は、第１実施例の複合装置１と同様の複合装置に適用したものであり、本実施例の説明においては、第１実施例と同様の構成部分には、同一の符号を付してその詳細な説明を省略するとともに、図示しない部分についても、必要に応じて、第１実施例で用いた符号をそのまま用いて説明する。
【００７４】
本実施例の複合装置１は、ＵＳＢホスト１００からバルクアウト転送によって画像データが転送される場合に、マックスパケットが最終データであるか否かを判定する最終データ判定時間であるタイマ値を、内部の基準クロックを基準としてＵＳＢバスのトラフィックを判定した結果に基づいて決定している。
【００７５】
図９において、タイマ設定値決定部６０は、複合装置１のＩ／Ｆ制御部４のＵＳＢデバイスコントローラ１１が備えているパケット監視部２３に設けられており、カウンタ６１、パケット間隔判別部６２及びＬＵＴ６３等を備えている。
【００７６】
カウンタ６１には、ＥＰ  Ｉ／Ｆ４１から画像データ転送中を示すＲＥＱ信号が入力され、転送サイズカウンタ部４３からクリア信号が入力される。転送サイズカウンタ部４３は、第１実施例の場合と同様に、バルクアウト用エンドポイント３３からＥＰ  Ｉ／Ｆ４１に送られる１パケット内のデータ量、すなわち、ＷＤＭＡＣ１２に転送される１パケット内のデータ量をカウントして、パケットサイズが、Maxデータサイズでないとき、すなわち、バルクアウト用エンドポイント３３のバッファ３３ｂのサイズに満たないデータ量であるときには、最終データであると判断して、タイマカウンタ部４４及びタイマ設定値決定部６０のカウンタ６１に対して、クリア信号を出力する。また、転送サイズカウンタ部４３は、第１実施例の場合と同様に、パケットサイズがMaxデータサイズのときには、タイマカウンタ部４４にスタート信号を出力し、その後、新しいパケットデータがバルクアウト用エンドポイント３３から転送されてくると、タイマカウンタ部４４及びタイマ設定値決定部６０のカウンタ６１にクリア信号を出力する。さらに、転送サイズカウンタ部４３は、ＵＳＢバスの転送速度によって利用可能なバッファサイズが変動するので、ＳＩＥ２２内部の速度監視部３５からの速度決定信号を受け取って、Maxデータサイズを変更する。
【００７７】
カウンタ６１は、図５に示したように、ＥＰ  Ｉ／Ｆ４１から入力される画像データ転送中を表すＲＥＱ信号がネゲートしている時間を複合装置１の内部の基準クロックにより計測し、ＲＥＱ信号のアサートを検知すると、現在のカウント値をパケット間隔判別部６２に出力する。カウンタ６１は、ＲＥＱ信号のアサート検知または転送サイズカウンタ部４３からのクリア信号の入力によってカウント値をクリアする。
【００７８】
パケット間隔判別部６２は、カウンタ６１からカウント値が入力されるとともに、転送サイズカウンタ部４３及びタイマカウンタ部４４からクリア信号が入力され、カウンタ６１から出力されるカウント値を保持して、常にトラフィック状況を判別する。パケット間隔判別部６２は、ＲＥＱ信号のアサート検出（立ち上がり検出）を示すカウンタからのカウント値の入力をトリガとして、その都度、それまで保持していたパケット間隔を判別し、該パケット間隔に基づいてバスのトラフィック、例えば、上記トラフィックＴｒ１〜Ｔｒ４を判定して、該トラフィックＴｒ１〜Ｔｒ４に対応する最終データ判定時間であるタイマ値をＬＵＴ５３から読み出して、タイマカウンタ部４４に対して、該タイマ値を出力する。パケット間隔判別部６２には、転送サイズカウンタ部４３及びタイマカウンタ部４４からクリア信号が入力され、このクリア信号が入力されると、全て初期化されて、タイマカウンタ部４４に対して予め設定されている初期値をタイマ値として出力する。
【００７９】
パケット間隔判別部６２は、例えば、トラフィックＴｒ１の判別は、０．５［ＳＯＦパケット時間］以下、トラフィックＴｒ２の判別は、１［ＳＯＦパケット時間］以下、トラフィックＴｒ３の判別は、２［ＳＯＦパケット時間］以下、それ以外はトラフィックＴｒ４と判別する。
【００８０】
パケット間隔判別部６２は、例えば、図１０（ａ）に示すように、過去３回分のパケット間隔における基準クロック数を記憶し、該基準クロック数に基づいてＵＳＢバスのトラフィックをトラフィックＴｒ１〜Ｔｒ４に分類する際の閾値が、レジスタ３６によって設定される。パケット間隔判別部６２は、図１０（ｂ）に示すように、過去３回分のパケット間隔における基準クロック数のうち最大基準クロック数を閾値と比較して分類したトラフィックＴｒ１〜Ｔｒ４のいずれに該当するかでトラフィックＴｒ１〜Ｔｒ４を判定する。そして、パケット間隔判別部５２は、このトラフィックＴｒ１〜Ｔｒ４に対応する最終データ判定時間であるタイマ値をＬＵＴ５３から読み出してタイマカウンタ部４４に設定する。
【００８１】
なお、図１０（ａ）には、パケット間隔のトラフィック状況１〜４として、過去３回分の基準クロック数が示されており、そのうち最大の基準クロック数がハッチングの施されている枠内の数値として示されている。本実施例では、最大基準クロック数の閾値とトラフィックＴｒ１〜Ｔｒ４との関係が、トラフィックＴｒ１＜トラフィックＴｒ２＜トラフィックＴｒ３＜トラフィックＴｒ４に設定されており、図１０（ｂ）には、最大基準クロック数とトラフィックＴｒ１〜Ｔｒ４の対応関係が示されている。
【００８２】
すなわち、タイマ設定値決定部４５は、ＵＳＢ転送の複数に分類したトラフィックＴｒ１〜Ｔｒ４とタイマカウント部４４のカウントするタイマ値とを対応させたＬＵＴ５３を備え、Maxサイズデータ転送間隔をカウンタ部５１のカウントする基準クロック数によって監視して、例えば、直前のパケット間隔をトラフィック状況としてとらえて、ＬＵＴ５３からタイマ値を取得して、取得したタイマ値をタイマカウンタ部４４に出力する。なお、上記説明では、過去３回分の最大のクロック数を用いてトラフィックＴｒ１〜Ｔｒ４を判定しているが、過去３回分の平均のクロック数を用いてもよいし、過去２回以上における適宜の回数分の最大または平均のクロック数を用いてもよい。また、前回のクロック数を用いてトラフィックＴｒ１〜Ｔｒ４を判定してもよい。
【００８３】
ＬＵＴ６３は、パケット間隔判別部６２からのトラフィックＴｒ１〜Ｔｒ４に対応するタイマ値を返す。このＬＵＴ６３の各トラフィックＴｒ１〜Ｔｒ４におけるタイマ値は、ＳＩＥ２２内部のレジスタ３６より設定が可能である。
【００８４】
本実施例の複合装置１は、上記第１実施例の複合装置１と同様に、図８に示したＵＳＢ転送制御処理を行って、マックスパケットが最終データであるか否かの判定を、パケット監視部２３のタイマカウンタ部４４が、該マックスパケットを受信してから次のパケットを受信することなくタイマ設定値決定部６０によって設定される最終データ判定時間であるタイマ値をカウントするか否かに基づいて行っている。
【００８５】
そして、タイマ設定値決定部６０は、マックスパケットの間隔（マックスパケット転送間隔時間）の基準クロック数を基準として、トラフィックＴｒ１〜Ｔｒ４のいずれに該当するか判断して、該当するトラフィックＴｒ１〜Ｔｒ４に対してＬＵＴ６３で対応付けされている最終データ判定時間であるタイマ値を取得し、該取得したタイマ値をタイマカウンタ部４４に設定する。タイマカウンタ部４４は、転送サイズカウンタ部４３がマックスパケットのパケットデータを検出してタイマ値をカウントする際に、タイマ設定値決定部６０によって設定されるタイマ値をカウントする。
【００８６】
タイマカウンタ部４４は、ＵＳＢバスのトラフィックＴｒ１〜Ｔｒ４に応じたタイマ値をカウントして、転送サイズカウンタ部４３が、このタイマカウンタ部４４によるタイマ値のカウント結果に基づいて、マックスパケットのパケットデータが最終データであるか否か判断する。
【００８７】
そして、基準クロックは、第１実施例で用いたＳＯＦよりも高周波数であるため、マックスパケットの間隔（Maxデータ間隔）をより精度よく計測することができる。
【００８８】
そこで、複合装置１のパケット監視部２３は、タイマ設定値決定部６０が、基準クロックを基準として、バルクアウト転送のマックスパケットの転送間隔を監視して、ＵＳＢ転送のトラフィックＴｒ１〜Ｔｒ４を判定し、該トラフィックＴｒ１〜Ｔｒ４に対応した最終データ判定時間であるタイマ値をタイマカウンタ部４４に設定して、マックスパケットの受信後にタイマカウンタ部４４がこのタイマ値をカウントするまでに、次のパケットを受信するか否かによってマックスパケットが最終データであるか否か判定している。
【００８９】
このように、本実施例の複合装置１は、ＵＳＢデバイスコントローラ１１のパケット監視部２３に設けられているタイマ設定値決定部６０が、マックスパケットと次のマックスパケットとの間に発生する所定周波数の内部クロック数を検出し、該内部クロック数に基づいてマックスパケット転送間隔時間を計測して、最終データ判定時間を決定している。
【００９０】
したがって、本来複合装置１内に備えられているクロックを用いてＵＳＢバスのトラフィック状況を判定して、マックスパケット転送間隔時間を動的に設定することができ、適切なＵＳＢ転送の転送効率の向上と処理速度の向上を行うことができる。
【００９１】
また、上記各実施例において、受信したパケットがマックスパケットでないときには、転送サイズカウンタ部４３からタイマカウンタ部４４にスタート信号を出力せず、タイマカウンタ部４４が最終データ判定時間のカウントを開始しない。
【００９２】
したがって、受信したパケットがマックスパケットでないときには、タイマカウンタ部４４を動作させないようにすることができ、消費電力を削減することができる。
【００９３】
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００９４】
本発明は、ＵＳＢホストからバルクアウト転送によってデータを受信するＵＳＢデバイス、画像処理装置、ＵＳＢ転送制御方法、ＵＳＢ転送制御プログラム及び記録媒体に利用することができる。
【符号の説明】
【００９５】
１  複合装置
２  演算処理部
３  主記憶部
４  Ｉ／Ｆ制御部
５  画像入力部
６  画像出力部
７  操作部
８  補助記憶部
１１  ＵＳＢデバイスコントローラ
１２  ＷＤＭＡＣ
１３  ＲＤＭＡＣ
１４  データバス
２１  ＰＨＹ
２２  ＳＩＥ
２３  パケット監視部
３１  プロトコルエンジン
３２  コントロール転送用エンドポイント
３２ｂ  バッファ
３３  バルクアウト用エンドポイント
３３ｂ  バッファ
３４  バルクイン用エンドポイント
３４ｂ  バッファ
３５  速度監視部
３６  レジスタ
４１  ＥＰ  Ｉ／Ｆ
４２  ＤＭＡＣ  Ｉ／Ｆ
４３  転送サイズカウンタ部
４４  タイマカウンタ部
４５  タイマ設定値決定部
５１  カウンタ
５２  パケット間隔判別部
５３  ＬＵＴ
６０  タイマ設定値決定部
６１  カウンタ
６２  パケット間隔判別部
６３  ＬＵＴ
１００  ＵＳＢホスト
１０１  ハブ（ＨＵＢ）
【先行技術文献】
【特許文献】
【００９６】
【特許文献１】特開２００４−２１４９４２号公報
【図１】
2011003162.tif 000003
【図２】
2011003162.tif 000004
【図３】
2011003162.tif 000005
【図４】
2011003162.tif 000006
【図５】
2011003162.tif 000007
【図６】
2011003162.tif 000008
【図７】
2011003162.tif 000009
【図８】
2011003162.tif 000010
【図９】
2011003162.tif 000011
【図１０】
2011003162.tif 000012