(57)【要約】【課題】USBの転送レートを向上させる。【解決手段】ホスト２１からUSBバス２２を介して、デバイス２３のUSBコントローラ３０内に設けたFIFOバッファ３５へ、所定のトークン処理（OUTトークン処理又はPINGトークン処理）によりデータを転送する場合に、USBコントローラ３０側において、予め前記所定のトークン処理の設定処理時間を定め、FIFOバッファ３５にデータの転送を受け付ける空きがない場合であっても、データの転送の処理時間が設定処理時間より短い場合にはホスト２１へACKを発行し、設定処理時間より長い場合にはホスト２１へNYETを発行する。そして、ACKの発行に応じてホスト２１が前記所定のトークン処理を行ったが、データをFIFOバッファ３５に格納できないときは、ホスト２１へNAKを発行する。【選択図】図１
2007251715.tif 000002
【特許請求の範囲】
【請求項１】
ホストからシリアルバスを介して、デバイスに設けたバッファメモリへ、所定のトークン処理によりデータを転送する場合に、
前記デバイス側で前記バッファメモリを監視し、前記ホストへノット・イエット（NYET）を発行すべき場合であっても、次のパケット到着までに前記バッファメモリに空きができると予測される場合には前記ホストへアクノリッジ（ACK）を送信し、実際に前記ホストから前記データを転送してきたときに前記バッファメモリに空きがなかつた場合には、前記ホストへネガティブ・アクノリッジ（NAK）を送信することを特徴とするデータ転送方法。
【請求項２】
ホストからシリアルバスを介して、デバイスのシリアルバス・コントローラ内に設けたバッファメモリへ、所定のトークン処理によりデータを転送する場合に、
前記シリアルバス・コントローラ側において、予め前記所定のトークン処理の設定処理時間を定め、
前記バッファメモリに前記データの転送を受け付ける空きがない場合であっても、
前記データの転送の処理時間が前記設定処理時間より短い場合には前記ホストへアクノリッジ（ACK）を発行し、前記設定処理時間より長い場合には前記ホストへノット・イエット（NYET）を発行するデータ転送方法であって、
前記アクノリッジ（ACK）の発行に応じて前記ホストが前記所定のトークン処理を行ったが、前記データを前記バッファメモリに格納できないときは、前記ホストへネガティブ・アクノリッジ（NAK）を発行することを特徴とするデータ転送方法。
【請求項３】
前記設定処理時間は、前記シリアルバス・コントローラにおける前記所定のトークン処理の平均処理時間とすることを特徴とする請求項２記載のデータ転送方法。
【請求項４】
前記シリアルバス・コントローラは、前記ホストからのデータ受信時に、前記バッファメモリに空きがあって前記データを格納する際に、前記データがショートパケットの場合には、前記ホストへアクノリッジ（ACK)を発行することを特徴とする請求項２又は３記載のデータ転送方法。
【請求項５】
前記アクノリッジ（ACK)を発行する場合、フレーム間隔を監視し、予めフレーム間隔を定め、フレーム時間からスタート・オフ・フレーム（SOF）トークンまで充分に時間がある場合に、前記アクノリッジ（ACK）を発行することを特徴とする請求項２〜４のいずれか１項に記載のデータ転送方法。
【請求項６】
前記所定のトークン処理は、アウト（OUT）トークン処理、又はピング（PING）トークン処理であることを特徴とする請求項１〜５のいずれか１項に記載のデータ転送方法。
【請求項７】
デバイスに設けられ、ホストからシリアルバスを介して前記デバイスへアウト（OUT)トークン処理又はピング(PING)トークン処理によりデータを転送するデータ転送装置において、
前記データを格納するバッファメモリと、
アウト（OUT)トランザクションの間隔を計測する第１の計測手段と、
前記第１の計測手段の計測結果に基づき、次のアウト（OUT)トランザクション又はピング（PING)トランザクションの到着時刻を予測する予測手段と、
前記バッファメモリの読み出し時間を計測する第２の計測手段と、
前記予測手段の予測結果と前記第２の計測手段の計測結果とを比較する比較手段と、
前記データにおける受信パケットサイズを計測する第３の計測手段と、
前記比較手段の比較結果、前記第３の計測手段の計測結果、及び指定されたフレーム間隔に基づき、ハンドシェイクを決定する決定手段と、
を有することを特徴とするデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユニバーサル・シリアル・バス(Universal Serial Bus；USB）のハイスピード（High-Speed）転送等において、次のパケットの到着を予測することで、デバイス（装置）のデータ転送レートを向上させるデータ転送方法及びそのデータ転送装置に関するものである。
【背景技術】
【０００２】
従来、パーソナルコンピュータ（PC）等のコンピュータと周辺機器等のデバイスとを接続するインタフェース規格として、USB規格が知られており、この中で、より高速な動作レートを実現できるUSB2.0規格が注目され、これを用いた通信方法や通信装置等が提案されている。例えば、下記の文献には、USB2.0規格を用いた通信コントローラの技術が記載されている。
【０００３】
【特許文献１】特開２００５−１０７６８３号公報
【０００４】
この特許文献１等に記載されているように、USB2.0規格では、High-Speed転送で480Mbpsという速度を実現し、且つ127台までの周辺デバイスを接続するため、USBバスでの無駄なデータを省く方法として、ノット・イエット（NYET）とピング（PING）が採用されている。NYETは、デバイスが次のデータを受信する際の十分なファーストイン・ファーストアウト（FIFO）バッファからなるバッファメモリの空きがない場合に使用するハンドシェーク（送受信確認処理）である。PINGは、コンピュータ等のホストがデバイスのFIFOバッファの空きを確認するために使用するトークン（taken、制御パケット）である。
【０００５】
図７は、USB2.0規格を用いた従来のUSBのデータ転送方法の一例を示す図である。
例えば、ホスト１からUSBバス２を介してデバイス３へデータを転送する場合、ホスト１は、先ず、アウト・トークン（OUTトークン）とデータ（DATA）をデバイス３へ送信する。デバイス３は、受信したDATAにエラーのないことを確認し、且つ次のDATAを受信する際の十分なFIFOバッファの空きがない場合、NYETをホスト１へ送信する。ホスト１はNYETを受け、PINGトークンをデバイス３へ発行し、デバイス３のFIFOバッファの空きを確認する。
【０００６】
デバイス３はPINGトークンを受信したら、FIFOバッファの空きがあればアクノリッジ（ACK）、空きがなければネガティブ・アクノリッジ（NACK又はNAK）を送信する。PINGトランザクション（PING処理）はデバイス３からACKが送信されるまで行われるので、デバイス３の処理速度により複数回実施されることもある。デバイス３がPINGに対してACKを送信したら、ホスト１はOUTトークンとDATAを送信する。
【０００７】
図８は、図７のデータ転送方法を用いた従来のUSBコントローラを示す概略の構成図である。
【０００８】
ホスト１には、USBバス２を介してデバイス３が接続されている。デバイス３内には、デバイス全体を制御する制御部（例えば、マイクロコンピュータ（MCU)）３a、データ格納用のメモリ３ｂ、及びUSBコントローラ１０等が設けられている。
【０００９】
USBコントローラ１０は、USBバス２に対して送受信を行うUSBトランシーバ１１、シリアル・インタフェース・エンジン（Serial Interface Engine；SIE)１２、FIFOバッファ１３、レジスタ群１４、MCUインタフェース（MCU I/F）１５等で構成されている。
【００１０】
SIE１２は、USB通信のシリアル通信制御を行う部分であって、プロトコルの一部も分担しており、ハンドシェークの自動応答や、データを送受信する機能を有し、演算・制御を行う制御部１２a、バイトカウンタ１２ｂ、及びスタート・オフ・フレーム（Start Of Frame；SOF)タイマ１２ｃ等で構成されている。バイトカウンタ１２ｂは、データ受信数をカウントするものである。SOFとは、ホスト１がデバイス２と同期をとるために定期的に送信するパケットであり、High-Speed転送の場合、125μsec毎とに送信される。何らかのUSBバス２上の事故により、デバイス３にSOFが届かない場合のことが考えられるため、USBコントローラ１０内部にはSOFタイマ１２ｃが内蔵される。FIFOバッファ１３は、1パケットの最大長を1個と考え、構成によっては2個以上の場合もある。
【００１１】
図８のデータ転送方法を説明する。
先ず、デバイス３は、ホスト１からUSBバス２を通じてUSBトランシーバ１１によりデータを受信すると、SIE１２を通じてFIFOバッファ１３へデータを格納する。FIFOバッファ１３へデータを格納する際、バイトカウンタ１２ｂで受信サイズを計測する。デバイス３は、データ格納後、FIFOバッファ１３の空き状況によってハンドシェークを決定する。受信データにエラーがなく、且つFIFOバッファ１３に空きがあればACKを、空きがなければNYETを送信する。ハンドシェークを送信後、USBバス２を介してホスト１へ割り込みを上げ、FIFOバッファ１３からホスト１内のメモリへデータをコピーする。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、従来のデータ転送方法では、次のような課題があった。
データ受信時のFIFOバッファ状況のみでハンドシェークを決定している。このため、FIFOバッファ１３が1個の場合には、必ずNYETが送信される。又、FIFOバッファ１３が2個の場合は、メモリ３ｂへ格納する速度によりFIFOバッファ１３に空きがないため、NYETを送信する。デバイス３が一旦NYETを送信すると、ホスト１はデバイス３内のFIFOバッファ１３の空き状況を確認するため、PINGトランザクションを開始する。PINGトランザクションは、USBバス２のデータの占有率を低下させる反面、データの転送スピードも低下させるという問題点がある。特にNYET後、最初のPINGトランザクションまでにFIFOバッファ１３に空きができた場合、PINGトランザクション分の転送レート低下につながるという問題点がある。
【課題を解決するための手段】
【００１３】
本発明のデータ転送方法、及びデータ転送装置では、ホストからシリアルバスを介して、デバイスに設けたバッファメモリへ、所定のトークン処理によりデータを転送する場合に、前記デバイス側で前記バッファメモリを監視し、前記ホストへNYETを発行すべき場合であっても、次のパケット到着までに前記バッファメモリに空きができると予測される場合には前記ホストへACKを送信し、実際に前記ホストから前記データを転送してきたときに前記バッファメモリに空きがなかつた場合には、前記ホストへNAKを送信する。
【発明の効果】
【００１４】
本発明のデータ転送方法、及びデータ転送装置によれば、次のトランザクションを予測し、バッファメモリを監視することで、余分なPINGトランザクションが省略され、バッファメモリを有効に利用できるように、ホストからデバイスへデータを転送するため、データ転送の高速化が達成できる。更に、パケットサイズやフレーム間隔を監視することで、より正確に次のトランザクションを予測することができる。
【発明を実施するための最良の形態】
【００１５】
USBのデータ転送方法では、ホストからUSBバスを介して、デバイスのUSBコントローラ内に設けたFIFOバッファへ、所定のトークン処理（OUTトークン処理又はPINGトークン処理）によりデータを転送する場合に、前記USBコントローラ側において、予め前記所定のトークン処理の設定処理時間を定め、前記FIFOバッファに前記データの転送を受け付ける空きがない場合であっても、前記データの転送の処理時間が前記設定処理時間より短い場合には前記ホストへACKを発行し、前記設定処理時間より長い場合には前記ホストへNYETを発行する。そして、前記ACKの発行に応じて前記ホストが前記所定のトークン処理を行ったが、前記データを前記FIFOバッファに格納できないときは、前記ホストへNAKを発行する。
【実施例１】
【００１６】
（実施例１の構成）
図１は、本発明の実施例１に係るデータ転送方法に用いられるデータ転送装置（例えば、USBコントローラ）を示す概略の構成図である。
【００１７】
従来の図８と同様に、PC等のホスト２１には、USBバス２２を介してデバイス２３が接続されている。デバイス２３は、監視してホスト２１から送信されるSOFを受信する等の機能を有している。このデバイス２３内には、デバイス全体を制御する制御部（例えば、MCU）２３a、データ格納用のメモリ２３ｂ、及びUSBコントローラ３０等が設けられている。
【００１８】
USBコントローラ３０は、従来と同様に、USBバス２２に対して送受信を行うUSBトランシーバ３１、SIE３４、バッファメモリ（例えば、FIFOバッファ）３５、レジスタ群３７、及びMCU I/F３８を有すると共に、新たに、第１の計測手段（例えば、トランザクション間隔タイマ）３２、比較手段（例えば、比較部）３３、FIFO読み出し時間を計測する第２の計測手段（例えば、FIFO読み出しタイマ）３６、及びレジスタ群３７内のフレーム間隔レジスタ３７ａが設けられている。
【００１９】
USBコントローラ３０において、USBトランシーバ３１は、USBバス３１との間で送受信を行う回路である。USBトランシーバ３１には、トランザクション間隔タイマ３２及びSIE３４が接続され、そのトランザクション間隔タイマ３２が、比較部３３を介してSIE３４に接続されている。
【００２０】
トランザクション間隔タイマ３２は、デバイス２３がハンドシェークを送信してからOUTトークン又はPINGトークンを受信するまでのトランザクション間隔を計測するタイマである。OUTトランザクション間隔の計算は多数の方法が考えられるが、本実施例１では前の保持値と現タイマ値との平均を取る方法を採用している。又、トランザクション間隔タイマ３２の初期値は、例えば、1フレーム時間125μsec/1フレームの最大パケット数13≠9μsecとする。
【００２１】
トランザクション間隔タイマ３２に接続された比較部３３は、該トランザクション間隔タイマ３２の出力値とFIFO読み出しタイマ３６の出力値とを比較するものであり、この出力側に、SIE３４が接続されている。SIE３４は、従来と同様に、USB通信のシリアル通信制御を行う部分であって、プロトコルの一部も分担しており、ハンドシェークの自動応答や、データを送受信する機能を有し、演算・制御を行う予測手段・決定手段（例えば、制御部）３４a、データ受信数をカウントする第３の計測手段（例えば、バイトカウンタ）３４b、及びSOFタイマ３４ｃ等で構成されている。SOFタイマ３４cは、従来と同様に、ホスト２１がデバイス２３と同期をとるためのタイマである。何らかのUSBバス２２上の事故により、デバイス２３にSOFが届かない場合のことを考え、SOFタイマ３４ｃが内蔵される。
【００２２】
SIE３４には、FIFOバッファ３５と、フレーム間隔タイマ３７aを有するレジスタ群３７とが接続されている。FIFOバッファ３５は、1パケットの最大長を1個と考え、構成によっては2個以上の場合もある。フレーム間隔レジスタ３７aは、ソフトウェアが設定できるレジスタであり、フレームの有効時間を設定する。このフレーム間隔レジスタ３７aに示される時間以降にハンドシェークを送信する場合には、先ずSOFまでの残り時間とトランザクション間隔とを比較し、SOFまでの残り時間が大きければ、トランザクション間隔をSOFまでの残り時間に置き換える。
【００２３】
FIFOバッファ３５には、FIFO読み出しタイマ３６とMCU I/F３８が接続され、そのFIFO読み出しタイマ３６が比較部３３に接続されている。FIFO読み出しタイマ３６は、FIFOバッファ３５内のデータをホスト２１側のメモリに読み出す時間を計測するタイマであり、このFIFO読み出し時間は前回のFIFO読み出し時間を使用する。レジスタ群３７もMCU I/F３８に接続されている。MCU I/F３８には、MCU２３a、及びメモリ２３b等が接続されている。
【００２４】
（データ転送方法の概略）
本実施例１では、トランザクション間隔タイマ３２により、OUTトランザクションの間隔を計測することで、次のOUTトランザクションもしくはPINGトランザクションの到着時刻を予測し、この予測時刻と、FIFO読み出しタイマ３６により計測したFIFOバッファ読み出し時間とを比較部３３で比較することで、ハンドシェークを決定する。又、バイトカウンタ３４bで受信パケットサイズや、フレーム間隔レジスタ３７aでフレーム間隔を監視することにより、無駄なトランザクションを削減する。
【００２５】
USBはパケット通信であるため、ホスト２１からUSBバス２２を介してデバイス２３へデータを転送する場合、複数のパケットに分割されて送信される場合が多く、且つ複数のパケットはおよそ同間隔で転送されてくるものと予測できる。トランザクション間隔タイマ３２により計測したトランザクションの間隔と、FIFO読み出しタイマ３６により計測した、FIFOバッファ３５からデータを読み出す時間とを比較部３３で比較し、次のトランザクションまでにFIFOバッファ３５が空になると予測した場合にはACKを送信する。これにより、NYETを送信した場合と比べて、トランザクション数が減り、データ転送レートを向上できる。
【００２６】
USBはホスト２１とデバイス２２の同期を取るため、ホスト２１は一定間隔でSOFを送信する。ホスト２１はSOFを送信するため、SOF直前には新しいトランザクションを開始しない。USBはシリアル通信であるため、デバイス２３が送信するパケットとぶつかる可能性があるためである。この点に着目し、デバイス２３が、ソフトウェアの指定したフレーム間隔レジスタ３７aにおけるフレーム間隔時間以降からSOF到着までにハンドシェークを送信する場合に、SOF到着までの時間が十分大きければACKを返す。SOFまでの時間を有効に使用することで、よりトランザクション数を減らし、転送レートを向上することができる。
【００２７】
USBは１パケットの最大長が決まっている。これ以下のサイズのパケットをショートパケットという。USBでは、データが複数のパケットに跨った場合、最後のパケット以外のパケットサイズは最大長であることと規定されている。このため、ショートパケットの場合は複数パケット転送の最後であり、その後暫くは転送がないと予想できるので、ショートパケットの場合にはACKを送信する。これにより、次の転送が始まる時の余分なトランザクションを減らし、転送レートを向上することができる。
【００２８】
又、１フレーム中にOUTトランザクションもしくはPINGトランザクションがない場合には、その後暫く転送がないと予想できるため、トランザクション間隔タイマ３２を停止する。
【００２９】
（データ転送方法の詳細）
図２は、図１のUSBコントローラ３０におけるデータ受信時の動作フローを示す図である。
【００３０】
先ず、USBコントローラ３０では、USBトランシーバ３１が、ホスト２１からUSBバス２２を介して送られてくるデータを受信すると（ステップＳ１）、SIE３４内の制御部３４aにより、FIFOバッファ３６が空か否かを判定する（ステップＳ３）。FIFOバッファ３５が空であれば、SIE３４を通じて、FIFOバッファ３５へデータを格納する（ステップＳ４）。FIFOバッファ３５が空でない場合には、制御部３４aの制御により、トランザクション間隔タイマ３２で計測されるトランザクション間隔を初期化し（ステップＳ１１）、USBトランシーバ３１からホスト２１へNAKを送信する（ステップＳ１２）。
【００３１】
FIFOバッファ３５へデータを格納する際（ステップＳ４）、バイトカウンタ３４bにて受信サイズを計測し、制御部３４aにより、データがショートパケットか否かを判定する（ステップＳ５）。もしショートパケットである場合には、制御部３４aの制御により、USBトランシーバ３１からホスト２１へACKを送信する（ステップＳ１０）。
【００３２】
ショートパケットでない場合は、制御部３４aにより、OUTトランザクションの平均間隔を計算する（ステップＳ７）。計算したOUTトランザクションの平均間隔が、予めFIFO読み出しタイマ３６で測定してあるFIFO読み出し時間よりも大きいか否か（トランザクション平均間隔 ≧ FIFO読み出し時間）を、比較部３３で比較する（ステップＳ８）。大きければ、USBトランシーバ３１からホスト２１へACKを送信し（ステップＳ９）、小さければ、NYETを送信し（ステップＳ１０）、制御部３４aの制御により、トランザクション間隔タイマ３２を起動して、データ受信動作を終了する。
【００３３】
図３は、図２中のOUTトランザクション平均間隔計算方法（ステップＳ７）のフローを示す図である。
【００３４】
先ず、制御部３４aにより、トランザクション間隔タイマ３２から値を取得し、前回のトランザクション平均間隔時間との平均を計算し（ステップＳ７−１）、この平均値がフレーム間隔以降か否かを判定する（ステップＳ７−２）。もし平均値が、フレーム間隔レジスタ３７aに示される時間よりも後ならば、制御部３４aにより、SOFまでの残り時間と比較し（ステップＳ７−３）、SOFまでの残り時間が大きければ、トランザクション間隔タイマ３２のトランザクション間隔をSOFまでの残り時間に置き換え（ステップＳ７−４）、計算処理を終了する。
【００３５】
一方、前記平均値が、フレーム間隔レジスタ３７aに示される時間よりも前の場合は計算処理を終了し（ステップＳ７−２）、又、前記SOFまでの残り時間が小さければ、計算処理を終了する（ステップＳ７−３）。
【００３６】
図４は、図１のUSBコントローラ３０におけるNYET送信後のPINGトランザクション処理の動作（PINGトークン受信動作）フローを示す図である。
【００３７】
先ず、USBコントローラ３０では、USBトランシーバ３１が、ホスト２１からUSBバス２２を介して送られてくるPINGトークンを受信すると（ステップＳ２０）、SIE３４内の制御部３４aにより、トランザクション間隔タイマ３２を停止し（ステップＳ２１）、PINGトランザクション間隔を計算する（ステップＳ２２）。制御部３４aにより、トランザクション平均間隔を求めたら、比較部３３により、FIFO読み出しタイマ３６で測定されたFIFO読み出し時間と比較する（ステップＳ２３）。もしトランザクション平均間隔がFIFO読み出し時間よりも大きければ（トランザクション平均間隔 ≧ FIFO読み出し時間）、USBトランシーバ３１からホスト２１へACKを送信し（ステップＳ２４）、小さければ、NAKを送信し（ステップＳ２５）、制御部３４aの制御により、トランザクション間隔タイマ３２を起動して、PINGトークンの受信動作を終了する。
【００３８】
図５は、図４中のPINGトランザクション間隔計算方法（ステップＳ２２）のフローを示す図である。
【００３９】
制御部３４aにより、トランザクションタ間隔タイマ３２の値をトランザクション平均間隔に足し、トランザクション平均間隔を求める（ステップＳ２２−１）。制御部３４aにより、フレーム間隔以降か否かを判定する（ステップＳ２２−２）。フレーム間隔以降でない場合は、PINGトランザクション間隔計算処理を終了する。フレーム間隔以降であれば、制御部３４aにより、OUTトランザクションと同様、SOFまでの時間と比較する（ステップＳ２２−３，Ｓ２２−４）。即ち、SOFまでの残り時間が、トランザクション平均間隔を超えるか否かを判定し（ステップＳ２２−３）、超えない場合には、計算処理を終了し、超える場合には、SOFまでの残り時間を、トランザクション平均間隔として出力し（ステップＳ２２−４）、計算処理を終了する。
【００４０】
（実施例１の効果）
本実施例１によれば、次の（１）〜（３）のような効果がある。
【００４１】
（１）  次のトランザクションを予測し（ステップＳ８，Ｓ２３等）、FIFOバッファ３５を監視することで（ステップＳ３等）、余分なPINGトランザクションが省略され、FIFOバッファ３５を有効に利用できるように、ホスト２１からデバイス２３へデータを転送するため、データ転送の高速化が達成できる。
【００４２】
（２）  図６（Ａ）、（Ｂ）は、本発明の実施例１のUSB転送における前記（１）の効果の一例を示す図である。
【００４３】
例えば、２回に１回、ホスト２１へNYETを送信するようなデバイス２３の場合、図６（Ａ）に示すように、(OUTトランザクション(ACK)−OUTトランザクション(NYET)−PINGトランザクション(ACK))というシーケンスが考えられるが、本実施例１の図６（Ｂ）に示すように、NYETを送信すべき時にACKを送信すれば、シーケンス(OUTトランザクション(ACK)−OUTトランザクション(ACK))の２回のトランザクションで転送が終了するため、単純計算で約１．５倍の転送レート向上が期待できる。
【００４４】
（３）  パケットサイズやフレーム間隔を監視することで（ステップＳ５，Ｓ８，Ｓ２３等）、より正確に次のトランザクションを予測することができる。
【００４５】
なお、本発明は、上記実施例１に限定されず、例えば、図１のUSBコントローラ３０を図示以外の他の回路構成に変更したり、あるいは、図２〜図６のフローを図示以外の他の処理内容に変更する等、種々の変形や利用形態が可能である。
【図面の簡単な説明】
【００４６】
【図１】本発明の実施例１に係るデータ転送方法に用いられるUSBコントローラを示す概略の構成図である。
【図２】図１のUSBコントローラにおけるデータ受信時の動作フローを示す図である。
【図３】図２中のOUTトランザクション平均間隔計算方法のフローを示す図である。
【図４】図１のUSBコントローラにおけるNYET送信後のPINGトランザクション処理の動作（PINGトークン受信動作）フローを示す図である。
【図５】図４中のPINGトランザクション間隔計算方法のフローを示す図である。
【図６】本発明の実施例１のUSB転送における効果の一例を示す図である。
【図７】従来のUSBのデータ転送方法の一例を示す図である。
【図８】図７のデータ転送方法を用いた従来のUSBコントローラを示す概略の構成図である。
【符号の説明】
【００４７】
２１      ホスト
２２      USBバス
２３      デバイス
３０      USBコントローラ
３２      トランザクション間隔タイマ
３４      SIE
３４ａ      制御部
３４ｂ      バイトカウンタ
３４ｃ      SOFタイマ
３５      FIFOバッファ
３６      FIFO読み出しタイマ
３７ａ      フレーム間隔レジスタ
【図１】
2007251715.tif 000003
【図２】
2007251715.tif 000004
【図３】
2007251715.tif 000005
【図４】
2007251715.tif 000006
【図５】
2007251715.tif 000007
【図６】
2007251715.tif 000008
【図７】
2007251715.tif 000009
【図８】
2007251715.tif 000010