JP5353470B2 - Usbデバイス、画像処理装置、usb転送制御方法、usb転送制御プログラム及び記録媒体 - Google Patents

Usbデバイス、画像処理装置、usb転送制御方法、usb転送制御プログラム及び記録媒体 Download PDF

Info

Publication number
JP5353470B2
JP5353470B2 JP2009148090A JP2009148090A JP5353470B2 JP 5353470 B2 JP5353470 B2 JP 5353470B2 JP 2009148090 A JP2009148090 A JP 2009148090A JP 2009148090 A JP2009148090 A JP 2009148090A JP 5353470 B2 JP5353470 B2 JP 5353470B2
Authority
JP
Japan
Prior art keywords
packet
transfer
data amount
timer
counting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009148090A
Other languages
English (en)
Other versions
JP2011003162A (ja
Inventor
哲 高野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2009148090A priority Critical patent/JP5353470B2/ja
Publication of JP2011003162A publication Critical patent/JP2011003162A/ja
Application granted granted Critical
Publication of JP5353470B2 publication Critical patent/JP5353470B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Description

本発明は、USBデバイス、画像処理装置、USB転送制御方法、USB転送制御プログラム及び記録媒体に関し、詳細には、USBホストからのUSB転送のバルクアウト転送によるデータの転送を受け取るUSBデバイス、該USBデバイスを備えた画像処理装置、USB転送制御方法、USB転送制御プログラム及び記録媒体に関する。
プリンタ装置、複写装置、複合装置、ファクシミリ装置等の画像データを取り扱う画像処理装置においては、USB(Universal Serial Bus)によるバルクアウト(BulkOut)転送によって画像データの転送を受け取ることが行われている。
例えば、複合装置は、USBホストとしてパーソナルコンピュータを使用するUSBデバイスコントローラが接続され、USBホストからの画像データをUSBのバルクアウト転送によって受信して、画像形成出力や転送出力等の画像処理を行っている。
このバルクアウト転送は、そのプロトコルとして、1パケットで転送可能なデータ量が、USBデバイスのエンドポイント(Endpoint)内のバッファの最大値までと決められており、USBホストがバルクアウト転送によってデータを転送する場合、最終データがShortPacket(エンドポイントのバッファの最大に満たないデータ量を転送するパケット)のときには、該パケットが最終データであるか否かを判定することができるが、最終データがバッファの最大値と同値のデータ量を転送するマックスパケット(MaxPacket)のときには、そのパケットだけでは最終データであるかどうかを決定することができない。この場合、USBホストは、一般的に、最終データパケット送信後、NullPacket(データの存在しないパケット:ゼロレングスデータともいう。)を送信することとなっている。
ところが、NullPacketを送信するか送信しないかはUSBホストに依存されており、USBホストによっては、送信しない場合もあり、データ受信を受ける画像処理装置としては、マックスパケットの後にNullPacketが送信されてこなくても最終データパケットであることに対する対策が必要である。
そこで、従来、マックスパケット受信後に、タイマが予め設定されている固定の一定時間をカウントしても、NullPacketを受信しないときには、異常と判定して、前のマックスパケットを最終データとして処理する技術がある(特許文献1参照)。
しかしながら、上記公報記載の従来技術にあっては、バルクアウト転送において、マックスパケット受信後に、タイマが固定の一定時間をカウントしても、NullPacketを受信しないときには、前のマックスパケットを最終データとして処理しているため、マックスパケットを受信すると、常に、次のパケットを受信するか、タイマが固定の一定時間をカウントするかを待つ必要があり、マックスパケットを最終パケットと判定するまでに常に固定の一定時間を必要とし、バルクアウト転送を適切に処理しつつ、処理速度を向上させる上で、改良の必要があった。
そこで、本発明は、バルクアウト転送のマックスパケット受信後に該マックスパケットが最終パケットであるか否かの判断時間を適切に短縮して、適切なUSB転送と処理速度の向上を行うUSBデバイス、画像処理装置、USB転送制御方法、USB転送制御プログラム及び記録媒体を提供することを目的としている。
記目的を達成するため、本発明のUSBデバイスは、USB転送のバルクアウト転送によって転送される複数のパケットのデータ量をカウントするデータ量カウント手段と、前記データ量カウント手段が所定のマックスパケットデータ量のマックスパケットを検出すると、当該マックスパケットの受信をカウント開始トリガとして所定の最終データ判定時間のカウントを開始するタイマカウント手段と、前記マックスパケットの転送間隔時間を計測したマックスパケット転送間隔時間に基づいて前記最終データ判定時間を決定して前記タイマカウント手段に設定するタイマ値設定手段と、前記タイマカウント手段が前記最終データ判定時間のカウントを開始してから次のパケットを受信することなく当該最終データ判定時間をカウントアウトすると、該最終データ判定時間のカウント開始トリガとなった前記マックスパケット最終パケット判定するパケット判定手段と、を備えたUSBデバイスにおいて、前記バルクアウト転送によって転送されるSOFパケットを検出するSOFパケット検出手段を備え、前記タイマ値設定手段は、前記マックスパケットと次のマックスパケットとの間に前記SOFパケット検出手段の検出する前記SOFパケットの数に基づいて前記マックスパケット転送間隔時間を計測する第1の転送制御構成、或いは所定周波数の内部クロックを計数するクロック計数手段を備え、前記タイマ値設定手段は、前記マックスパケットと次のマックスパケットとの間に前記クロック計数手段が計数する前記内部クロック数に基づいて前記マックスパケット転送間隔時間を計測する第2の転送制御構成、或いは前記バルクアウト転送の転送速度を検出して当該転送速度に基づいて前記マックスパケットデータ量を決定するデータ量決定手段を備え、前記タイマカウント手段は、前記データ量決定手段の決定した前記マックスパケットデータ量を前記データ量カウント手段がカウントすると、前記最終データ判定時間のカウントを開始する第3の転送制御構成の何れか1つであることを特徴とする。
また、本発明の画像処理装置は、USBホストが接続され、当該USBホストからUSB転送のバルクアウト転送によって転送される画像データをUSBデバイスで受信し、当該受信した画像データに所定の画像処理を行う画像処理装置において、前記USBデバイスとして、上記何れか1つのUSBデバイスを備えたことを特徴とする
に、本発明のUSB転送制御方法は、データ量カウント手段により、USB転送のバルクアウト転送によって転送される複数のパケットのデータ量をカウントするデータ量カウント処理ステップと、タイマカウント手段により、前記データ量カウント処理ステップで所定のマックスパケットデータ量のマックスパケットが検出されると、当該マックスパケットの受信をカウント開始トリガとして所定の最終データ判定時間のカウントを開始するタイマカウント処理ステップと、タイマ値設定手段により、前記マックスパケットの転送間隔時間を計測したマックスパケット転送間隔時間に基づいて前記最終データ判定時間を決定して前記タイマカウント処理ステップの前記最終データ判定時間として設定するタイマ値設定処理ステップと、パケット判定手段により、前記タイマカウント処理ステップで前記最終データ判定時間のカウントを開始してから次のパケットを受信することなく当該最終データ判定時間がカウントアウトされると、当該最終データ判定時間のカウント開始トリガとなった前記マックスパケットを最終パケットと判定するパケット判定処理ステップと、を有するUSB転送制御方法において、SOFパケット検出手段により、前記データ量カウント処理ステップでの前記バルクアウト転送によって転送されるSOFパケットを検出するSOFパケット検出処理ステップを有し、前記タイマ値設定処理ステップでは、前記マックスパケットと次のマックスパケットとの間に前記SOFパケット検出処理ステップで検出する前記SOFパケットの数に基づいて前記マックスパケット転送間隔時間を計測する第1の転送制御、或いはクロック計数手段により、所定周波数の内部クロックを計数するクロック計数処理ステップを有し、前記タイマ値設定処理ステップでは、前記マックスパケットと次のマックスパケットとの間に前記タイマ値設定処理ステップで計数する前記クロック数に基づいて前記マックスパケット転送間隔時間を計測する第2の転送制御、或いはデータ量決定手段により、前記データ量カウント処理ステップでの前記バルクアウト転送の転送速度を検出して当該転送速度に基づいて前記マックスパケットデータ量を決定するデータ量決定処理ステップを有し、前記タイマカウント処理ステップでは、前記データ量決定処理ステップで決定した前記マックスパケットデータ量を前記データ量カウント処理ステップでカウントすると、前記最終データ判定時間のカウントを開始する第3の転送制御のうちの何れか1つを行うことを特徴とする
加えて、本発明のUSB転送制御プログラムは、データ量カウント手段により、USB転送のバルクアウト転送によって転送される複数のパケットのデータ量をカウントするデータ量カウント処理ステップの手順と、タイマカウント手段により、前記データ量カウント処理ステップで所定のマックスパケットデータ量のマックスパケットが検出されると、当該マックスパケットの受信をカウント開始トリガとして所定の最終データ判定時間のカウントを開始するタイマカウント処理ステップの手順と、タイマ値設定手段により、前記マックスパケットの転送間隔時間を計測したマックスパケット転送間隔時間に基づいて前記最終データ判定時間を決定して前記タイマカウント処理ステップの前記最終データ判定時間として設定するタイマ値設定処理ステップの手順と、パケット判定手段により、前記タイマカウント処理ステップで前記最終データ判定時間のカウントを開始してから次のパケットを受信することなく当該最終データ判定時間がカウントアウトされると、当該最終データ判定時間のカウント開始トリガとなった前記マックスパケットを最終パケットと判定するパケット判定処理ステップの手順と、をコンピュータにより実行させるためのUSB転送制御プログラムにおいて、SOFパケット検出手段により、前記データ量カウント処理ステップの手順での前記バルクアウト転送によって転送されるSOFパケットを検出するSOFパケット検出処理ステップの手順を有し、前記タイマ値設定処理ステップの手順では、前記マックスパケットと次のマックスパケットとの間に前記SOFパケット検出処理ステップの手順で検出する前記SOFパケットの数に基づいて前記マックスパケット転送間隔時間を計測する第1の転送制御、或いはクロック計数手段により、所定周波数の内部クロックを計数するクロック計数処理ステップの手順を有し、前記タイマ値設定処理ステップの手順では、前記マックスパケットと次のマックスパケットとの間に前記タイマ値設定処理ステップの手順で計数する前記内部クロック数に基づいて前記マックスパケット転送間隔時間を計測する第2の転送制御、或いはデータ量決定手段により、前記データ量カウント処理ステップの手順での前記バルクアウト転送の転送速度を検出して前記転送速度に基づいて前記マックスパケットデータ量を決定するデータ量決定処理ステップの手順を有し、前記タイマカウント処理ステップの手順では、前記データ量決定処理ステップの手順で決定した前記マックスパケットデータ量を前記データ量カウント処理ステップの手順でカウントすると、前記最終データ判定時間のカウントを開始する第3の転送制御のうちの何れか1つを行うことを特徴とする尚、本発明の記録媒体は、USB転送制御プログラムにおける各ステップの手順をコンピュータにより読み取り可能に記録したことを特徴とする。
本発明によれば、SOFパケット検出手段によりバルクアウト転送によって転送されるSOFパケットを検出し、タイマ値設定手段がマックスパケットと次のマックスパケットと間にSOFパケットの数に基づいてマックスパケット転送間隔時間を計測する第1の転送制御、或いはクロック計数手段により所定周波数の内部クロックを計数し、タイマ値設定手段がマックスパケットと次のマックスパケットとの間に内部クロック数に基づいてマックスパケット転送間隔時間を計測する第2の転送制御、或いはデータ量決定手段によりバルクアウト転送の転送速度を検出してその転送速度に基づいてマックスパケットデータ量を決定し、タイマカウント手段が決定したマックスパケットデータ量をデータ量カウント手段でカウントすると、最終データ判定時間のカウントを開始する第3の転送制御のうちの何れか1つを行うため、バルクアウト転送のマックスパケット受信後にマックスパケットが最終パケットであるか否かの最終データ判定時間を適切に短縮することができ、適切なUSB転送と処理速度の向上とを実現することができる。
本発明の一実施例を適用した複合装置の要部ブロック構成図。 I/F制御部のブロック構成図。 パケット監視部のブロック構成図。 タイマ設定値決定部のブロック構成図。 カウンタによるデータ間隔計測処理を示すタイミング図。 SOFに基づくトラフィック判定処理の説明図。 USB転送のトラフィックとSOFの関係を示す図。 USB転送制御処理を示すフローチャート。 第2実施例における複合装置のタイマ設定値決定部のブロック構成図。 クロックに基づくトラフィック判定処理の説明図。
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
図1〜図5は、本発明のUSBデバイス、画像処理装置、USB転送制御方法、USB転送制御プログラム及び記録媒体の第1実施例を示す図であり、図1は、本発明のUSBデバイス、画像処理装置、USB転送制御方法、USB転送制御プログラム及び記録媒体の第1実施例を適用した複合装置1の要部ブロック構成図である。
図1において、複合装置1は、演算処理部2、主記憶部3、I/F(インターフェイス)制御部4、画像入力部5、画像出力部6、操作部7及び補助記憶部8等を備えているとともに、図示しないが、ファクシミリ通信部、ネットワーク通信部等を備えており、スキャナ機能、プリンタ機能、コピー機能、ファクシミリ機能、転送機能等の複数の機能を備えている。
主記憶部3は、ROM(Read Only Memory)、RAM(Random Access Memory)等の記憶素子で構成され、主に、複合装置1の基本プログラムや本発明のUSB転送制御プログラム等のプログラム及びシステムデータを記憶している。補助記憶部8は、ハードディスク等で構成され、主に、画像データ等を保管する。
演算処理部2は、主記憶部3内のプログラムに基づいて複合装置1の各部を制御して複合装置1としての基本処理を実行するとともに、後述する本発明のUSB転送制御処理を実行する。
すなわち、複合装置1は、ROM、EEPROM(Electrically Erasable and Programmable Read Only Memory )、EPROM、フラッシュメモリ、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory )、CD−RW(Compact Disc Rewritable )、DVD(Digital Video Disk)、SD(Secure Digital)カード、MO(Magneto-Optical Disc)等のコンピュータが読み取り可能な記録媒体に記録されている本発明のUSB転送制御方法を実行するUSB転送制御プログラムを読み込んで主記憶部3に導入することで、後述するUSB転送を効率的にかつ高速に行うUSB転送制御方法を実行するUSBデバイスを搭載する画像処理装置として構築されている。このUSB転送制御プログラムは、アセンブラ、C、C++、C#、Java(登録商標)等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
画像入力部5は、例えば、CCD(Charge Coupled Device )を利用したイメージスキャナ等が利用されており、一般にADF(自動原稿送り装置)を備えている。ADFは、セットされた複数枚の原稿を1枚ずつ画像入力部5の原稿読取位置に送給し、画像入力部5は、ADFから搬送されてきた原稿を走査して、原稿の画像を所定の解像度で読み取って演算処理部2に出力する。
画像出力部6は、例えば、電子写真式記録装置等を用いたプリンタが使用されており、受信した画像データや画像入力部5で読み取った画像データ等の演算処理部2から渡される画像データに基づいて画像を用紙に記録出力する。
操作部7は、複合装置1を操作するのに必要な各種キーやディスプレイ(例えば、LCD(Liquid Crystal Display)等)及び複合装置1の動作状態を表示するLED等のランプ等を備え、操作キーからは、複合装置1を利用した各種操作の命令が入力される。操作部7は、操作キーから入力された命令内容や複合装置1からオペレータに通知する各種情報をディスプレイに表示する。
I/F制御部4は、主にUSBやLAN(Local Area Network)等の汎用インターフェイスのデータ送受信を行い、受信したデータを、演算処理部2を介することなく、DMA(Direct Memory Access)転送により、各記憶部3、8に転送する。
I/F制御部4は、図2に示すようにブロック構成されており、USBデバイスコントローラ11、WDMAC(Write Direct Memory Access Controller)12、RDMAC(Read DMAC)13及びデータバス14等を備えている。
USBデバイスコントローラ(USBデバイス)11は、PHY(物理メディアインターフェイス)21、SIE(Serial Interface Engine:シリアルインターフェイスエンジン)22及びパケット監視部23等を備えており、SIE22は、プロトコルエンジン31、コントロール転送用エンドポイント32、バルクアウト(BulkOut)用エンドポイント33、バルクイン(BulkIn)用エンドポイント34等を備えている。
データバス14は、アービタ機能を有し、各インターフェイスとやりとりするデータを演算処理部2との間で双方向に転送する。
I/F制御部4には、USBホスト100がハブ(HUB)101を介して接続され、USBホスト100は、例えば、パーソナルコンピュータ等のUSB転送のホストである。ハブ101には、最大127のUSBデバイスを接続することができるが、通常の利用状況は、せいぜい数個のUSBデバイスが接続される。
USBデバイスコントローラ11のPHY21は、USBホスト100とのデータの送受信を行い、パラレル−シリアル変換を行う。
SIE22は、USB転送のデジタル部分の処理を行い、ビットスタッフィング、CRC生成とチェック及びエラー報告等の低水準の細部における作業を実施する。プロトコルエンジン31は、USBホスト100からのデータが、コントロール転送用エンドポイント32、バルクアウト転送用エンドポイント33、バルクイン転送用エンドポイント34のどのエンドポイント32〜34のデータであるかを判別して、各エンドポイント32〜34に振り分ける。エンドポイント32〜34は、少なくとも2つ以上存在し、エンドポイント32〜34毎に機能が異なる。各エンドポイント32〜33は、それぞれ所定容量のバッファ32b、33b、34bを備えており、USBホスト100から転送されてくる1パケットのデータサイズが、このバッファ32b〜34bのサイズ(容量)によって決定される。
バルクアウト用エンドポイント33には、WDMAC12が接続され、WDMAC12は、データバス14に接続されていて、主記憶部3または補助記憶部8へデータをDMA転送して記憶部3、8へのデータの書き込みを行う。
バルクイン用エンドポイント34には、RDMAC13が接続されており、主記憶部3または補助記憶部8のデータを読み出して各インターフェイスにDMAC転送する。
パケット監視部23は、バルクアウト用エンドポイント33とWDMAC12との間に配設されており、バルクアウト用エンドポイント33からのデータをWDMAC12に転送するとともに、パケットの切れ目を監視する。
パケット監視部23は、図3に示すようにブロック構成されており、EP I/F(エンドポイント用インターフェイス)41、DMAC I/F(DMAC用インターフェイス)42、転送サイズカウンタ部43、タイマカウンタ部44及びタイマ設定値決定部45等を備えている。また、上記SIE22は、速度監視部35とレジスタ36を備えている。
EP I/F41は、バルクアウト用エンドポイント33とDMAC I/F42に接続されて、バルクアウト用エンドポイント33からのデータを受け取ってDMAC I/F42に渡す。
DMAC I/F42は、WDMAC12に接続され、EP I/F41から受け取ったデータをWDMAC12に渡す。
転送サイズカウンタ部(データ量カウント手段)43は、バルクアウト用エンドポイント33からEP I/F41に送られる1パケット内のデータ量、すなわち、WDMAC12に転送される1パケット内のデータ量をカウントして、パケットサイズが、Maxデータサイズ(マックスパケットデータ量)でないとき、すなわち、バルクアウト用エンドポイント33のバッファ33bのサイズに満たないデータ量であるときには、最終データであると判断して、タイマカウンタ部44及びタイマ設定値決定部45に対して、クリア信号を出力する。また、転送サイズカウンタ部43は、パケットサイズがMaxデータサイズのときには、タイマカウンタ部44にスタート信号を出力し、その後、新しいパケットデータがバルクアウト用エンドポイント33から転送されてくると、タイマカウンタ部44及びタイマ設定値決定部45にクリア信号を出力する。さらに、転送サイズカウンタ部43は、USBバスの転送スピードによって利用可能なバッファサイズが変動するので、SIE22内部の速度監視部(データ量決定手段)35からの速度決定信号を受け取って、Maxデータサイズを変更する。また、各Maxデータサイズは、SIE22内部のレジスタ36より設定が可能であり、例えば、ハイスピード(High Speed)のときには、512Byte、フルスピード(Full Speed)のときには、64Byteに設定される。このレジスタ36によって設定されるMaxデータサイズは、バルクアウト用エンドポイント33のバッファサイズとなる。
タイマカウンタ部(タイマカウント手段)44は、Maxサイズ転送終了後、すなわち、マックスパケットサイズ(Maxデータサイズ)のデータの転送終了後に転送サイズカウンタ部43からスタート信号が入力されると、予め設定された最終データ判定時間(タイマ値)をカウントし、この最終データ判定時間の初期値は、SIE22内部のレジスタ36により設定することが可能である。タイマカウンタ部44は、最終データ判定時間のカウントを開始して、次のパケットデータの転送が始まると、転送サイズカウンタ部43からのクリア信号によりカウント処理を停止してタイマカウンタをクリアする。タイマカウンタ部44は、設定された最終データ判定時間をカウントすると、DMACI/F42に対して異常通知信号を出力するとともに、タイマカウンタをクリアし、タイマ設定値決定部45にクリア信号を出力する。
タイマ設定値決定部(タイマ値設定手段)45は、例えば、図4に示すように、カウンタ51、パケット間隔判別部52及びLUT(ルックアップテーブル)53等を備えており、カウンタ51には、EP I/F41からの画像データ転送中を示すREQ信号、転送サイズカウンタ部43からのクリア信号及びSIE22内部のSOFパケット検知部37からのパルスが入力される。SOFパケット検知部(SOFパケット検出手段)37は、USB転送におけるパケットデータのSOF(Start of Frame)を検出する毎にSOF検出パルスをカウンタ51に出力する。
カウンタ51は、図5に示すように、EP I/F41から入力される画像データ転送中を示すREQ信号がネゲートしている時間(マックスパケットと次のマックスパケットとの間の時間:マックスパケット転送間隔時間)をSOFパケット検知部37から入力されるSOF検出パルスの数をカウントすることで計測し、REQ信号のアサートを検知すると、現在のカウント値をパケット間隔判別部52に出力する。カウンタ51は、REQ信号のアサート検知、転送サイズカウンタ部43からのクリア信号、または、タイマカウンタ部44からのクリア信号の入力によってカウント値をクリアする。
パケット間隔判別部(パケット判定手段)52は、カウンタ51からカウント値が入力されるとともに、転送サイズカウンタ部43及びタイマカウンタ部44からクリア信号が入力され、カウンタ51から出力されるカウント値を、例えば、3回のカウント分保持して、常にトラフィック状況を判別する。パケット間隔判別部52は、REQ信号のアサート検出(立ち上がり検出)を示すカウンタ部51からのカウント値51の入力をトリガとして、その都度、それまで保持していたパケット間隔を判別し、該パケット間隔に基づいてバスのトラフィック、例えば、図6、図7に示すトラフィックTr1〜Tr4を判定して、該トラフィックTr1〜Tr4に対応する最終データ判定時間であるタイマ値をLUT53から読み出して、タイマカウンタ部44に対して、タイマ値を出力する。パケット間隔判別部52には、転送サイズカウンタ部43及びタイマカウンタ部44からクリア信号が入力され、このクリア信号が入力されると、全て初期化されて、タイマカウンタ部44に対して予め設定されている初期値をタイマ値として出力する。
パケット間隔判別部52は、例えば、図6(a)に示すように、過去3回分のマックスパケット間隔におけるSOFパケット数を記憶し、該SOFパケット数に基づいてUSBバスのトラフィックをトラフィックTr1〜Tr4に分類する際の閾値が、レジスタ36によって設定される。パケット間隔判別部52は、過去3回分のパケット間隔におけるSOFパケット数のうち最大SOFパケット数を閾値と比較して、図6(b)に示すように、トラフィックTr1〜Tr4のいずれに該当するかでトラフィックTr1〜Tr4を判定する。そして、パケット間隔判別部52は、このトラフィックTr1〜Tr4に対応するタイマ値(最終データ判定時間)をLUT53から読み出してタイマカウンタ部44に設定する。
なお、図6(a)には、マックスパケット間隔のトラフィック状況1〜4として、過去3回分のSOFパケット数が示されており、そのうち最大のSOFパケット数がハッチングの施されている枠内の数値として示されている。本実施例では、最大SOFパケット数の閾値とトラフィックTr1〜Tr4との関係が、トラフィックTr1<トラフィックTr2<トラフィックTr3<トラフィックTr4に設定されており、図6(b)には、最大SOFパケット数とトラフィックTr1〜Tr4の対応関係が示されている。
すなわち、タイマ設定値決定部45は、USB転送の複数に分類したトラフィックTr1〜Tr4とタイマカウント部44のカウントするタイマ値とを対応させたLUT53を備え、マックスパケット転送間隔時間(Maxサイズデータ転送間隔時間)をカウンタ部51のカウントするSOFパケット数によって監視して、例えば、直前のパケット間隔をトラフィック状況としてとらえて、LUT53からタイマ値を取得して、取得したタイマ値をタイマカウンタ部44に出力する。なお、上記説明では、過去3回分の最大のSOFパケット数を用いてトラフィックTr1〜Tr4を判定しているが、過去3回分の平均のSOFパケット数を用いてもよいし、過去2回以上における適宜の回数分の最大または平均のSOFパケット数を用いてもよい。また、前回のSOFパケット数を用いてトラフィックTr1〜Tr4を判定してもよい。
このLUTは、例えば、図7に示すように、4つのトラフィックTr1〜Tr4を想定して、各トラフィックTr1〜Tr4に対応したタイマ設定値を対応付けたものであり、図4では、トラフィックTr1〜Tr4は、USB転送のSOFを基準として、バルクアウト転送が発生した回数によってトラフィックTr1〜Tr4を設定している。図7は、USBホスト−ハブ101間のUSBバスのトラフィック状況を示しており、トラフィックTr1は、SOFとSOFとの間に4回バルクアウト転送が発生、トラフィックTr2は、SOFとSOFとの間に1回のみバルクアウト転送が発生、トラフィックTr3は、SOF2回の間に1回のみバルクアウト転送が発生、トラフィックTr4は、SOF5回の間に1回のみバルクアウト転送が発生する場合を示している。そして、LUTは、このトラフィックTr1〜Tr4のそれぞれに対してタイマ設定値を対応付けたものとなっている。
なお、バルクアウト転送は、各種存在するUSB転送のうち、バルクイン転送やコントロール転送と同様にSOFとは非同期で転送が行われる非同期転送であって、優先順位がこれらの転送と同じである。また、USB転送には、その他に、アイソクロナス転送、インタラプト転送というSOFパケットと同期して転送されるタイプの転送がある。
そして、本実施例では、トラフィックTr1〜Tr4をSOFを基準としてバルクアウト転送の発生回数によって判定している。すなわち、USB転送においては、SOF同期型の同期転送は、SOFに非同期の転送よりも優先順位が高いが、USBホスト100が占有率を管理しているため、ある程度の非同期転送の占有率も確保され、トラフィック状況が急激に変化することはないとともに、バルクアウト転送は、非同期転送であるため、ハブ101に他のデバイスが接続されていない場合、または、接続されていても転送を行っていない場合には、図4のトラフィックTr1に示すように、バルクアウト転送のみでUSBバスを占有することが可能であるため、また、通常、ハブ101に接続されるUSBデバイス数が急激に変化することがないことから、SOFを基準としてバルクアウト転送の発生回数によってUSBバスのトラフックTr1〜Tr4を判定することができる。
次に、本実施例の作用を説明する。本実施例の複合装置1は、USBホスト100からUSB転送のバルクアウト転送によって画像データを受け取ってプリント出力や転送出力を行う際の該バルクアウト転送を適切かつ高速に行う。
すなわち、複合装置1は、パーソナルコンピュータ等のUSBホスト100が接続されるI/F制御部4を備えており、I/F制御部4には、ハブ101を介してUSBホスト100が接続される。
USBホスト100は、複合装置1にUSB転送のバルクアウト転送によってSOFとは非同期に画像データをパケット転送する。このUSB転送のバルクアウト転送は、上述のように、最終データがマックスパケット(MaxPacket)のときには、そのパケットだけでは最終データであるかどうかを決定することができないため、USBホスト100がNullPacketを送信することとなっているが、USBホスト100によってはNullPacketを送信してこない場合がある。そこで、複合装置1のI/F制御部4は、USBデバイスコントローラ11にパケット監視部23を有し、パケット監視部23が、予め設定したタイマ値をカウントして、該タイマ値をカウントする前に次のパケットを受信すると、該マックスパケットは最終データではなく、タイマ値をカウントすると、該マックスパケットが最終データであると判断する処理を行うが、このタイマ値をSOFを基準とするUSBバスのトラフィックに基づいてタイマ値を設定して、適切かつ速やかにマックスパケットが最終データであるか否か判断している。
すなわち、パケット監視部23は、図8に示すように、バルクアウト用エンドポイント33からパケットデータがEP I/F41に送られてくると(ステップS101)、転送サイズカウンタ部43が、該パケットデータのパケットデータサイズがマックスパケットのデータサイズであるか否か判断して(ステップS102)、パケットサイズがマックスパケットデータサイズでないときには、すなわち、パケットサイズがバルクアウト用エンドポイント33のバッファ33bのサイズに満たないときには、該パケットデータは最終データであると判断して、タイマカウンタ部44及びタイマ設定値決定部45にクリア信号を出力して、処理を終了する。このとき、タイマカウンタ部44は、転送サイズカウンタ部43からクリア信号が入力されると、タイマカウンタをクリアし、タイマ設定値決定部45は、マックスパケットサイズデータ転送間隔の監視を終了する。
ステップS102で、転送サイズカウンタ部43は、パケットサイズがマックスパケットデータサイズであるときには、タイマカウンタ部44にスタート信号を出力し、タイマカウンタ部44は、タイマ設定値決定部45によって設定された最終データ判定時間であるタイマ値のカウントを開始する(ステップS103)。
転送サイズカウンタ部43は、タイマカウンタ部44にタイマ値のカウントを開始させると、次のパケットデータを受信したかチェックし(ステップS104)、次のパケットデータを受信しないときには、タイマカウンタ部44がタイマ値(設定時間)をカウントしたか、すなわち、タイマカウンタ部44からクリア信号が入力されたかチェックする(ステップS105)。転送サイズカウンタ部43は、タイマカウンタ部44がタイマ値をカウントしていないときには、ステップS104に戻って、次のパケットを受信したかのチェックから上記同様の処理を繰り返し行う(ステップS104、S105)。
ステップS104で、転送サイズカウンタ部43は、次のパケットデータを受信すると、マックスパケットのパケットデータが最終データではないと判断して、タイマカウンタ部44にクリア信号を出力して、タイマカウンタ部44のカウント動作を停止させてカウント値をクリアし(ステップS106)、ステップS102に戻って、次のパケットについて、マックスパケットであるか否かの判断から上記同様に処理する(ステップS102〜S106)。
ステップS105で、転送サイズカウンタ部43は、次のパケットデータを受信することなく、タイマカウンタ部44がタイマ値をカウントすると、すなわち、設定された最終データ判定時間が経過すると、マックスパケットが最終データであると判断し、タイマカウンタ部44及びタイマ設定値決定部45にクリア信号を出力して、タイマカウンタ部44がDMACI/F42に対して異常通知信号を出力する最終データ処理を行う(ステップS107)。DMAC I/F42は、異常通知信号を受け取ると、WDMAC12に最終データである旨を通知する。
また、タイマカウンタ部44は、タイマ値をカウントするタイマカウンタをクリアし(ステップS108)、転送サイズカウンタ部43及びタイマ設定値決定部45にクリア信号を出力する(ステップS109)。
そして、タイマ設定値決定部45は、マックスパケットの間隔(Maxデータ間隔)がSOFを基準として、図7に示したトラフィックTr1〜Tr4のいずれに該当するか判断して、該当するトラフィックTr1〜Tr4に対してLUT53で対応付けされている採集データ判定時間であるタイマ値を取得し、該取得したタイマ値をタイマカウンタ部44に設定する。タイマカウンタ部44は、転送サイズカウンタ部43がマックスパケットのパケットデータを検出してタイマ値をカウントする際に、タイマ設定値決定部45によって設定されるタイマ値をカウントする。
タイマカウンタ部44は、USBバスのトラフィックTr1〜Tr4に応じたタイマ値をカウントして、転送サイズカウンタ部43が、このタイマカウンタ部44によるタイマ値のカウント結果に基づいて、マックスパケットが最終データであるか否か判断する。
そして、SOFは、USBホスト100が、USB転送のマイクロフレーム単位で時間を管理して、マイクロフレームの区切りを示すために、フレームの開始に際してUSBバスに発行するものであり、一定のマイクロ時間間隔で発行される。バルクアウト転送は、上述のように、SOFとは非同期の転送であり、SOF同期型の転送よりも優先順位は低いが、USBホスト100がUSBバスの占有率を管理しているため、非同期転送の占有率もある程度確保され、USB転送のトラフィックが急激に変化することはない。
また、SOFは、通常、複合装置1内部の基準クロックのクロック周期よりも長いクロック周期を有しており、トラフィックを判定してタイマ値を設定するために処理するデータ数が、基準クロックを基準とする場合よりも少なくて済み、安価にかつ高速に処理を行うことができる。
そこで、複合装置1のパケット監視部23は、タイマ設定値決定部45が、SOFを基準として、バルクアウト転送のマックスパケットの転送間隔を監視して、USB転送のトラフィックTr1〜Tr4を判定し、該トラフィックTr1〜Tr4に対応した最終データ判定時間であるタイマ値をタイマカウンタ部44に設定して、マックスパケットの受信後にタイマカウンタ部44がこのタイマ値をカウントするまでに、次のパケットを受信するか否かによってマックスパケットが最終データであるか否か判定している。
このように、本実施例の複合装置1は、I/F制御部4にUSBデバイスコントローラ11を搭載しており、該USBデバイスコントローラ11は、USB転送のバルクアウト転送によって転送されてくる各パケットのデータ量を、そのパケット監視部23の転送サイズカウンタ部43でカウントして、所定のマックスパケットデータ量のマックスパケットを検出すると、タイマカウンタ部44で、所定の最終データ判定時間であるタイマ値のカウントを開始し、タイマカウンタ部44が該タイマ値のカウントを開始してから次のパケットを受信することなく、タイマ値をカウントアウトすると、該タイマ値のカウント開始トリガとなった前記マックスパケットが最終パケットであると判定するとともに、タイマ設定値決定部45でマックスパケットの転送間隔時間を計測して、計測した該マックスパケット転送間隔時間に基づいて前記最終データ判定時間であるタイマ値を決定してタイマカウンタ部44に設定している。
したがって、USB転送のバルクアウト転送において、マックスパケットの後にNullPacketが送られてこない場合にも、マックスパケット転送間隔時間に応じて最終データ判定時間であるタイマ値を調整してカウントすることで、マックスパケットが最終パケットであるか否かを速やかにかつ適切に判定することができ、適切なUSB転送と処理速度の向上を行うことができる。
また、本実施例の複合装置1は、バルクアウト転送におけるデータ転送において、異常が発生する前のデータ転送(パケット転送)までのUSBバスのトラフィック状況を、マックスパケット転送間隔時間に基づいて監視して、最終データ判定時間であるタイマ値を動的に設定している。
したがって、USBデバイスコントローラ11を有した複合装置1において、バルク転送におけるマックスパケットが最終パケットであるか否かを速やかにかつ適切に判定することができ、適切なUSB転送の転送効率の向上と処理速度の向上を行うことができる。
さらに、本実施例の複合装置1は、パケット監視部23のタイマ設定値決定部45が、マックスパケットと次のマックスパケットとの間に、バルクアウト転送によって転送されてくるSOFパケットをSOFパケット検知部37で検知して、このSOFパケットの数に基づいてマックスパケット転送間隔時間を計測している。
したがって、USB転送のバルクアウト転送で用いられるSOFパケットを基準としてUSBバスのトラフィック状況を判定して、マックスパケット転送間隔時間を動的に設定することができ、適切なUSB転送の転送効率の向上と処理速度の向上を行うことができる。
また、本実施例の複合装置1は、過去所定回数分(例えば、3回分)のパケット転送間隔時間を記憶して、このパケット転送間隔時間の最大時間(または平均時間)に基づいて前記最終データ判定時間を決定している。
したがって、より一層適切にUSBバスのトラフィック状況を判定して、マックスパケット転送間隔時間を動的に設定することができ、適切なUSB転送の転送効率の向上と処理速度の向上を行うことができる。
さらに、本実施例の複合装置1は、バルクアウト転送の転送速度を速度監視部35で監視して、該バルクアウト転送の転送速度の検出結果に基づいてマックスパケットデータ量(Maxデータサイズ)を決定している。
したがって、バルクアウト転送においてCPUである演算処理部2にかかる負荷を軽減することができる。
図9及び図10は、本発明のUSBデバイス、画像処理装置、USB転送制御方法、USB転送制御プログラム及び記録媒体の第2実施例を示す図であり、図9は、本発明のUSBデバイス、画像処理装置、USB転送制御方法、USB転送制御プログラム及び記録媒体の第2実施例を適用した複合装置のタイマ設定値決定部のブロック構成図である。
なお、本実施例は、第1実施例の複合装置1と同様の複合装置に適用したものであり、本実施例の説明においては、第1実施例と同様の構成部分には、同一の符号を付してその詳細な説明を省略するとともに、図示しない部分についても、必要に応じて、第1実施例で用いた符号をそのまま用いて説明する。
本実施例の複合装置1は、USBホスト100からバルクアウト転送によって画像データが転送される場合に、マックスパケットが最終データであるか否かを判定する最終データ判定時間であるタイマ値を、内部の基準クロックを基準としてUSBバスのトラフィックを判定した結果に基づいて決定している。
図9において、タイマ設定値決定部60は、複合装置1のI/F制御部4のUSBデバイスコントローラ11が備えているパケット監視部23に設けられており、カウンタ61、パケット間隔判別部62及びLUT63等を備えている。
カウンタ61には、EP I/F41から画像データ転送中を示すREQ信号が入力され、転送サイズカウンタ部43からクリア信号が入力される。転送サイズカウンタ部43は、第1実施例の場合と同様に、バルクアウト用エンドポイント33からEP I/F41に送られる1パケット内のデータ量、すなわち、WDMAC12に転送される1パケット内のデータ量をカウントして、パケットサイズが、Maxデータサイズでないとき、すなわち、バルクアウト用エンドポイント33のバッファ33bのサイズに満たないデータ量であるときには、最終データであると判断して、タイマカウンタ部44及びタイマ設定値決定部60のカウンタ61に対して、クリア信号を出力する。また、転送サイズカウンタ部43は、第1実施例の場合と同様に、パケットサイズがMaxデータサイズのときには、タイマカウンタ部44にスタート信号を出力し、その後、新しいパケットデータがバルクアウト用エンドポイント33から転送されてくると、タイマカウンタ部44及びタイマ設定値決定部60のカウンタ61にクリア信号を出力する。さらに、転送サイズカウンタ部43は、USBバスの転送速度によって利用可能なバッファサイズが変動するので、SIE22内部の速度監視部35からの速度決定信号を受け取って、Maxデータサイズを変更する。
カウンタ61は、図5に示したように、EP I/F41から入力される画像データ転送中を表すREQ信号がネゲートしている時間を複合装置1の内部の基準クロックにより計測し、REQ信号のアサートを検知すると、現在のカウント値をパケット間隔判別部62に出力する。カウンタ61は、REQ信号のアサート検知または転送サイズカウンタ部43からのクリア信号の入力によってカウント値をクリアする。
パケット間隔判別部62は、カウンタ61からカウント値が入力されるとともに、転送サイズカウンタ部43及びタイマカウンタ部44からクリア信号が入力され、カウンタ61から出力されるカウント値を保持して、常にトラフィック状況を判別する。パケット間隔判別部62は、REQ信号のアサート検出(立ち上がり検出)を示すカウンタからのカウント値の入力をトリガとして、その都度、それまで保持していたパケット間隔を判別し、該パケット間隔に基づいてバスのトラフィック、例えば、上記トラフィックTr1〜Tr4を判定して、該トラフィックTr1〜Tr4に対応する最終データ判定時間であるタイマ値をLUT53から読み出して、タイマカウンタ部44に対して、該タイマ値を出力する。パケット間隔判別部62には、転送サイズカウンタ部43及びタイマカウンタ部44からクリア信号が入力され、このクリア信号が入力されると、全て初期化されて、タイマカウンタ部44に対して予め設定されている初期値をタイマ値として出力する。
パケット間隔判別部62は、例えば、トラフィックTr1の判別は、0.5[SOFパケット時間]以下、トラフィックTr2の判別は、1[SOFパケット時間]以下、トラフィックTr3の判別は、2[SOFパケット時間]以下、それ以外はトラフィックTr4と判別する。
パケット間隔判別部62は、例えば、図10(a)に示すように、過去3回分のパケット間隔における基準クロック数を記憶し、該基準クロック数に基づいてUSBバスのトラフィックをトラフィックTr1〜Tr4に分類する際の閾値が、レジスタ36によって設定される。パケット間隔判別部62は、図10(b)に示すように、過去3回分のパケット間隔における基準クロック数のうち最大基準クロック数を閾値と比較して分類したトラフィックTr1〜Tr4のいずれに該当するかでトラフィックTr1〜Tr4を判定する。そして、パケット間隔判別部52は、このトラフィックTr1〜Tr4に対応する最終データ判定時間であるタイマ値をLUT53から読み出してタイマカウンタ部44に設定する。
なお、図10(a)には、パケット間隔のトラフィック状況1〜4として、過去3回分の基準クロック数が示されており、そのうち最大の基準クロック数がハッチングの施されている枠内の数値として示されている。本実施例では、最大基準クロック数の閾値とトラフィックTr1〜Tr4との関係が、トラフィックTr1<トラフィックTr2<トラフィックTr3<トラフィックTr4に設定されており、図10(b)には、最大基準クロック数とトラフィックTr1〜Tr4の対応関係が示されている。
すなわち、タイマ設定値決定部45は、USB転送の複数に分類したトラフィックTr1〜Tr4とタイマカウント部44のカウントするタイマ値とを対応させたLUT53を備え、Maxサイズデータ転送間隔をカウンタ部51のカウントする基準クロック数によって監視して、例えば、直前のパケット間隔をトラフィック状況としてとらえて、LUT53からタイマ値を取得して、取得したタイマ値をタイマカウンタ部44に出力する。なお、上記説明では、過去3回分の最大のクロック数を用いてトラフィックTr1〜Tr4を判定しているが、過去3回分の平均のクロック数を用いてもよいし、過去2回以上における適宜の回数分の最大または平均のクロック数を用いてもよい。また、前回のクロック数を用いてトラフィックTr1〜Tr4を判定してもよい。
LUT63は、パケット間隔判別部62からのトラフィックTr1〜Tr4に対応するタイマ値を返す。このLUT63の各トラフィックTr1〜Tr4におけるタイマ値は、SIE22内部のレジスタ36より設定が可能である。
本実施例の複合装置1は、上記第1実施例の複合装置1と同様に、図8に示したUSB転送制御処理を行って、マックスパケットが最終データであるか否かの判定を、パケット監視部23のタイマカウンタ部44が、該マックスパケットを受信してから次のパケットを受信することなくタイマ設定値決定部60によって設定される最終データ判定時間であるタイマ値をカウントするか否かに基づいて行っている。
そして、タイマ設定値決定部60は、マックスパケットの間隔(マックスパケット転送間隔時間)の基準クロック数を基準として、トラフィックTr1〜Tr4のいずれに該当するか判断して、該当するトラフィックTr1〜Tr4に対してLUT63で対応付けされている最終データ判定時間であるタイマ値を取得し、該取得したタイマ値をタイマカウンタ部44に設定する。タイマカウンタ部44は、転送サイズカウンタ部43がマックスパケットのパケットデータを検出してタイマ値をカウントする際に、タイマ設定値決定部60によって設定されるタイマ値をカウントする。
タイマカウンタ部44は、USBバスのトラフィックTr1〜Tr4に応じたタイマ値をカウントして、転送サイズカウンタ部43が、このタイマカウンタ部44によるタイマ値のカウント結果に基づいて、マックスパケットのパケットデータが最終データであるか否か判断する。
そして、基準クロックは、第1実施例で用いたSOFよりも高周波数であるため、マックスパケットの間隔(Maxデータ間隔)をより精度よく計測することができる。
そこで、複合装置1のパケット監視部23は、タイマ設定値決定部60が、基準クロックを基準として、バルクアウト転送のマックスパケットの転送間隔を監視して、USB転送のトラフィックTr1〜Tr4を判定し、該トラフィックTr1〜Tr4に対応した最終データ判定時間であるタイマ値をタイマカウンタ部44に設定して、マックスパケットの受信後にタイマカウンタ部44がこのタイマ値をカウントするまでに、次のパケットを受信するか否かによってマックスパケットが最終データであるか否か判定している。
このように、本実施例の複合装置1は、USBデバイスコントローラ11のパケット監視部23に設けられているタイマ設定値決定部60が、マックスパケットと次のマックスパケットとの間に発生する所定周波数の内部クロック数を検出し、該内部クロック数に基づいてマックスパケット転送間隔時間を計測して、最終データ判定時間を決定している。
したがって、本来複合装置1内に備えられているクロックを用いてUSBバスのトラフィック状況を判定して、マックスパケット転送間隔時間を動的に設定することができ、適切なUSB転送の転送効率の向上と処理速度の向上を行うことができる。
また、上記各実施例において、受信したパケットがマックスパケットでないときには、転送サイズカウンタ部43からタイマカウンタ部44にスタート信号を出力せず、タイマカウンタ部44が最終データ判定時間のカウントを開始しない。
したがって、受信したパケットがマックスパケットでないときには、タイマカウンタ部44を動作させないようにすることができ、消費電力を削減することができる。
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、USBホストからバルクアウト転送によってデータを受信するUSBデバイス、画像処理装置、USB転送制御方法、USB転送制御プログラム及び記録媒体に利用することができる。
1 複合装置
2 演算処理部
3 主記憶部
4 I/F制御部
5 画像入力部
6 画像出力部
7 操作部
8 補助記憶部
11 USBデバイスコントローラ
12 WDMAC
13 RDMAC
14 データバス
21 PHY
22 SIE
23 パケット監視部
31 プロトコルエンジン
32 コントロール転送用エンドポイント
32b バッファ
33 バルクアウト用エンドポイント
33b バッファ
34 バルクイン用エンドポイント
34b バッファ
35 速度監視部
36 レジスタ
41 EP I/F
42 DMAC I/F
43 転送サイズカウンタ部
44 タイマカウンタ部
45 タイマ設定値決定部
51 カウンタ
52 パケット間隔判別部
53 LUT
60 タイマ設定値決定部
61 カウンタ
62 パケット間隔判別部
63 LUT
100 USBホスト
101 ハブ(HUB)
特開2004−214942号公報

Claims (8)

  1. USB転送のバルクアウト転送によって転送される複数のパケットのデータ量をカウントするデータ量カウント手段と、
    前記データ量カウント手段が所定のマックスパケットデータ量のマックスパケットを検出すると、該マックスパケットの受信をカウント開始トリガとして所定の最終データ判定時間のカウントを開始するタイマカウント手段と、
    前記マックスパケットの転送間隔時間を計測したマックスパケット転送間隔時間に基づいて前記最終データ判定時間を決定して前記タイマカウント手段に設定するタイマ値設定手段と、
    前記タイマカウント手段が前記最終データ判定時間のカウントを開始してから次のパケットを受信することなく該最終データ判定時間をカウントアウトすると、該最終データ判定時間のカウント開始トリガとなった前記マックスパケットを最終パケットと判定するパケット判定手段と、を備えたUSBデバイスにおいて、
    前記バルクアウト転送によって転送されるSOFパケットを検出するSOFパケット検出手段を備え、
    前記タイマ値設定手段は、前記マックスパケットと次のマックスパケットとの間に前記SOFパケット検出手段の検出する前記SOFパケットの数に基づいて前記マックスパケット転送間隔時間を計測することを特徴とするUSBデバイス。
  2. USB転送のバルクアウト転送によって転送される複数のパケットのデータ量をカウントするデータ量カウント手段と、
    前記データ量カウント手段が所定のマックスパケットデータ量のマックスパケットを検出すると、当該マックスパケットの受信をカウント開始トリガとして所定の最終データ判定時間のカウントを開始するタイマカウント手段と、
    前記マックスパケットの転送間隔時間を計測したマックスパケット転送間隔時間に基づいて前記最終データ判定時間を決定して前記タイマカウント手段に設定するタイマ値設定手段と、
    前記タイマカウント手段が前記最終データ判定時間のカウントを開始してから次のパケットを受信することなく当該最終データ判定時間をカウントアウトすると、当該最終データ判定時間のカウント開始トリガとなった前記マックスパケットを最終パケットと判定するパケット判定手段と、を備えたUSBデバイスにおいて、
    所定周波数の内部クロックを計数するクロック計数手段を備え、
    前記タイマ値設定手段は、前記マックスパケットと次のマックスパケットとの間に前記クロック計数手段が計数する前記内部クロック数に基づいて前記マックスパケット転送間隔時間を計測することを特徴とするUSBデバイス。
  3. 請求項1又は2記載のUSBデバイスにおいて、前記タイマ値設定手段は、過去所定回数分の前記マックスパケット転送間隔時間を記憶しており、当該過去所定回数分のマックスパケット転送間隔時間の最大時間又は平均時間に基づいて前記最終データ判定時間を決定することを特徴とするUSBデバイス。
  4. USB転送のバルクアウト転送によって転送される複数のパケットのデータ量をカウントするデータ量カウント手段と、
    前記データ量カウント手段が所定のマックスパケットデータ量のマックスパケットを検出すると、当該マックスパケットの受信をカウント開始トリガとして所定の最終データ判定時間のカウントを開始するタイマカウント手段と、
    前記マックスパケットの転送間隔時間を計測したマックスパケット転送間隔時間に基づいて前記最終データ判定時間を決定して前記タイマカウント手段に設定するタイマ値設定手段と、
    前記タイマカウント手段が前記最終データ判定時間のカウントを開始してから次のパケットを受信することなく当該最終データ判定時間をカウントアウトすると、当該最終データ判定時間のカウント開始トリガとなった前記マックスパケットを最終パケットと判定するパケット判定手段と、を備えたUSBデバイスにおいて、
    前記バルクアウト転送の転送速度を検出して当該転送速度に基づいて前記マックスパケットデータ量を決定するデータ量決定手段を備え、
    前記タイマカウント手段は、前記データ量決定手段の決定した前記マックスパケットデータ量を前記データ量カウント手段がカウントすると、前記最終データ判定時間のカウントを開始することを特徴とするUSBデバイス。
  5. USBホストが接続され、当該USBホストからUSB転送のバルクアウト転送によって転送される画像データをUSBデバイスで受信し、当該受信した画像データに所定の画像処理を行う画像処理装置において、
    前記USBデバイスとして、請求項1〜4の何れか1項記載のUSBデバイスを備えたことを特徴とする画像処理装置
  6. データ量カウント手段により、USB転送のバルクアウト転送によって転送される複数のパケットのデータ量をカウントするデータ量カウント処理ステップと、
    タイマカウント手段により、前記データ量カウント処理ステップで所定のマックスパケットデータ量のマックスパケットが検出されると、当該マックスパケットの受信をカウント開始トリガとして所定の最終データ判定時間のカウントを開始するタイマカウント処理ステップと、
    タイマ値設定手段により、前記マックスパケットの転送間隔時間を計測したマックスパケット転送間隔時間に基づいて前記最終データ判定時間を決定して前記タイマカウント処理ステップの前記最終データ判定時間として設定するタイマ値設定処理ステップと、
    パケット判定手段により、前記タイマカウント処理ステップで前記最終データ判定時間のカウントを開始してから次のパケットを受信することなく当該最終データ判定時間がカウントアウトされると、当該最終データ判定時間のカウント開始トリガとなった前記マックスパケットを最終パケットと判定するパケット判定処理ステップと、を有するUSB転送制御方法において、
    SOFパケット検出手段により、前記データ量カウント処理ステップでの前記バルクアウト転送によって転送されるSOFパケットを検出するSOFパケット検出処理ステップを有し、前記タイマ値設定処理ステップでは、前記マックスパケットと次のマックスパケットとの間に前記SOFパケット検出処理ステップで検出する前記SOFパケットの数に基づいて前記マックスパケット転送間隔時間を計測する第1の転送制御、或いはクロック計数手段により、所定周波数の内部クロックを計数するクロック計数処理ステップを有し、前記タイマ値設定処理ステップでは、前記マックスパケットと次のマックスパケットとの間に前記タイマ値設定処理ステップで計数する前記内部クロック数に基づいて前記マックスパケット転送間隔時間を計測する第2の転送制御、或いはデータ量決定手段により、前記データ量カウント処理ステップでの前記バルクアウト転送の転送速度を検出して当該転送速度に基づいて前記マックスパケットデータ量を決定するデータ量決定処理ステップを有し、前記タイマカウント処理ステップでは、前記データ量決定処理ステップで決定した前記マックスパケットデータ量を前記データ量カウント処理ステップでカウントすると、前記最終データ判定時間のカウントを開始する第3の転送制御のうちの何れか1つを行うことを特徴とするUSB転送制御方法。
  7. データ量カウント手段により、USB転送のバルクアウト転送によって転送される複数のパケットのデータ量をカウントするデータ量カウント処理ステップの手順と、
    タイマカウント手段により、前記データ量カウント処理ステップで所定のマックスパケットデータ量のマックスパケットが検出されると、当該マックスパケットの受信をカウント開始トリガとして所定の最終データ判定時間のカウントを開始するタイマカウント処理ステップの手順と、
    タイマ値設定手段により、前記マックスパケットの転送間隔時間を計測したマックスパケット転送間隔時間に基づいて前記最終データ判定時間を決定して前記タイマカウント処理ステップの前記最終データ判定時間として設定するタイマ値設定処理ステップの手順と、
    パケット判定手段により、前記タイマカウント処理ステップで前記最終データ判定時間のカウントを開始してから次のパケットを受信することなく当該最終データ判定時間がカウントアウトされると、当該最終データ判定時間のカウント開始トリガとなった前記マックスパケットを最終パケットと判定するパケット判定処理ステップの手順と、をコンピュータにより実行させるためのUSB転送制御プログラムにおいて、
    SOFパケット検出手段により、前記データ量カウント処理ステップの手順での前記バルクアウト転送によって転送されるSOFパケットを検出するSOFパケット検出処理ステップの手順を有し、前記タイマ値設定処理ステップの手順では、前記マックスパケットと次のマックスパケットとの間に前記SOFパケット検出処理ステップの手順で検出する前記SOFパケットの数に基づいて前記マックスパケット転送間隔時間を計測する第1の転送制御、或いはクロック計数手段により、所定周波数の内部クロックを計数するクロック計数処理ステップの手順を有し、前記タイマ値設定処理ステップの手順では、前記マックスパケットと次のマックスパケットとの間に前記タイマ値設定処理ステップの手順で計数する前記内部クロック数に基づいて前記マックスパケット転送間隔時間を計測する第2の転送制御、或いはデータ量決定手段により、前記データ量カウント処理ステップの手順での前記バルクアウト転送の転送速度を検出して前記転送速度に基づいて前記マックスパケットデータ量を決定するデータ量決定処理ステップの手順を有し、前記タイマカウント処理ステップの手順では、前記データ量決定処理ステップの手順で決定した前記マックスパケットデータ量を前記データ量カウント処理ステップの手順でカウントすると、前記最終データ判定時間のカウントを開始する第3の転送制御のうちの何れか1つを行うことを特徴とするUSB転送制御プログラム
  8. 請求項7記載のUSB転送制御プログラムにおける各ステップの手順をコンピュータにより読み取り可能に記録したことを特徴とする記録媒体
JP2009148090A 2009-06-22 2009-06-22 Usbデバイス、画像処理装置、usb転送制御方法、usb転送制御プログラム及び記録媒体 Expired - Fee Related JP5353470B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009148090A JP5353470B2 (ja) 2009-06-22 2009-06-22 Usbデバイス、画像処理装置、usb転送制御方法、usb転送制御プログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009148090A JP5353470B2 (ja) 2009-06-22 2009-06-22 Usbデバイス、画像処理装置、usb転送制御方法、usb転送制御プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2011003162A JP2011003162A (ja) 2011-01-06
JP5353470B2 true JP5353470B2 (ja) 2013-11-27

Family

ID=43561043

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009148090A Expired - Fee Related JP5353470B2 (ja) 2009-06-22 2009-06-22 Usbデバイス、画像処理装置、usb転送制御方法、usb転送制御プログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP5353470B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8904062B2 (en) * 2011-06-30 2014-12-02 Mcci Corporation Network control model driver

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003248558A (ja) * 2002-02-21 2003-09-05 Canon Inc データ転送方法、および、その装置
JP3857598B2 (ja) * 2002-02-25 2006-12-13 株式会社リコー データ転送方法およびそのデータ転送方法を利用するデバイス制御モジュール,画像形成装置
JP2004133537A (ja) * 2002-10-08 2004-04-30 Canon Inc データ転送方法及びデータ転送装置及び印刷方法及び印刷装置及びデータ転送装置の制御プログラム及び記憶媒体
JP2006191406A (ja) * 2005-01-07 2006-07-20 Kawasaki Microelectronics Kk データ終了判定方法
JP2006195607A (ja) * 2005-01-12 2006-07-27 Kawasaki Microelectronics Kk バルクアウト転送終了判定方法および回路
JP2007251715A (ja) * 2006-03-17 2007-09-27 Oki Electric Ind Co Ltd データ転送方法及びそのデータ転送装置
JP4730381B2 (ja) * 2007-03-09 2011-07-20 日本電気株式会社 Usb通信制御方法及び装置

Also Published As

Publication number Publication date
JP2011003162A (ja) 2011-01-06

Similar Documents

Publication Publication Date Title
US8041842B2 (en) Printing device and logic packet processing method
US7702841B2 (en) Semiconductor integrated circuit and image processing apparatus having the same
KR102372289B1 (ko) 메모리 액세스 시스템, 그 제어방법, 컴퓨터 판독가능한 기억매체, 및 화상 형성장치
US11137965B2 (en) Information processing apparatus for controlling transmission of information while varying transmission intervals
JP6175794B2 (ja) データ処理装置およびデータ処理方法
US10996904B2 (en) Network control device, image forming apparatus, control method of network control device, and non-transitory recording medium
JP5353470B2 (ja) Usbデバイス、画像処理装置、usb転送制御方法、usb転送制御プログラム及び記録媒体
US8848260B2 (en) Transfer of image data using power saving state
JP5414307B2 (ja) 電子機器及びその制御方法
JP5736847B2 (ja) 画像形成装置およびその制御方法
JP2012011603A (ja) 情報処理装置、画像出力装置、情報処理方法およびプログラム
JP2007026196A (ja) Usbテストモニタ回路
JP3970728B2 (ja) データ通信装置
JP5768540B2 (ja) 画像処理装置およびデータ転送管理方法
JP4877956B2 (ja) シリアルデータ受信方法,装置および画像形成装置
JP3394717B2 (ja) データ転送システム
JP2012061639A (ja) 画像形成装置および印刷制御方法
JP2006195607A (ja) バルクアウト転送終了判定方法および回路
JPH08224945A (ja) バンドバッファリング方式の画像出力装置
JP6213003B2 (ja) 通信制御装置、画像処理装置、通信制御プログラム
JP5483946B2 (ja) 画像処理装置、画像処理装置の制御方法、及びプログラム
JP2008023867A (ja) 画像形成装置、画像形成方法、及び画像形成プログラム
JP2017204702A (ja) 情報処理装置、及び画像形成装置
JP2004042538A (ja) 印刷装置
JP2003048345A (ja) プリンタ装置およびプリンタ装置のデータ転送方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120328

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120409

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120409

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130604

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130627

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20130627

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130730

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130812

LAPS Cancellation because of no payment of annual fees