(57)【要約】【課題】本発明により、効率的なデータ転送を図ることができるデータ転送装置と及びデータ転送方法を提供すること。【解決手段】本発明にかかるデータ転送装置は、ＵＳＢトランシーバ１３１は、ホスト装置１０からデータを受信し、さらに、ホスト装置から次に送信されるデータの到着タイミング情報を受信する。また、ＵＳＢトランシーバ１３１が受信した到着タイミング情報に基づき、ホスト装置１０が次にデータを送信する場合に、ホスト装置からのデータ送信を許可するか否かについて決定するハンドシェーク決定部１３３を備えるものである。【選択図】図１
2010170458.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置から受信したデータとホスト装置から次に送信されるデータの到着タイミング情報を受信するデータ受信手段と、
前記データ受信手段が受信した到着タイミング情報に基づき、ホスト装置からのデータ送信可否を決定するハンドシェーク決定手段を備えるデータ転送装置。
【請求項２】
前記ホスト装置から受信するデータは、制御パケットとデータパケットを含み、
前記データ受信手段は、ホスト装置から次に送信される制御パケット又はデータパケットの到着タイミング情報を受信し、
前記ハンドシェーク決定手段は、前記データ受信手段が受信した制御パケット又はデータパケットの到着タイミング情報に基づき、ホスト装置からのデータ送信可否を決定することを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記データ受信手段は、前記制御パケットから、ホスト装置へデータ送信可否情報を送信する送信タイミング情報、を取得し、
前記ハンドシェーク決定手段は、前記到着タイミング情報と前記送信タイミング情報に基づいてホスト装置からのデータ送信可否を決定することを特徴とする請求項２記載のデータ転送装置。
【請求項４】
ホスト装置から受信したデータを蓄積するバッファと、
前記バッファに蓄積されたデータの読出し時間を制御する制御手段と、
前記データの読出し時間と前記到着タイミング情報又は前記データの読出し時間と前記到着タイミング情報と前記送信タイミング情報に基づきホスト装置からのデータ送信可否を決定するハンドシェーク決定手段を備える請求項１乃至３記載のデータ転送装置。
【請求項５】
前記制御手段は、前記バッファに残存するデータ量と、前記データパケットのバッファへの到達タイミング情報に基づきデータの読出し時間を決定することを特徴とする請求項４記載のデータ転送装置。
【請求項６】
ホスト装置からのアドレス情報を保存するアドレス情報保存手段をさらに備える請求項１乃至５記載のデータ転送装置。
【請求項７】
ホスト装置から受信したデータとホスト装置から次に送信されるデータの到着タイミング情報を受信し、
前記到着タイミング情報に基づき、ホスト装置からのデータ送信可否を決定するデータ転送方法。
【請求項８】
前記受信したデータは、制御パケットとデータパケットを含み、ホスト装置から次に送信される制御パケット又はデータパケットの到着タイミング情報を受信し、
前記制御パケット又はデータパケットの到着タイミング情報に基づき、ホスト装置からのデータ送信可否を決定することを特徴とする請求項７記載のデータ転送方法。
【請求項９】
前記制御パケットに含まれる、ホスト装置へデータ送信可否情報を送信する送信タイミング情報、を取得し、
前記到着タイミング情報と前記送信タイミング情報に基づいてホスト装置からのデータ送信可否を決定することを特徴とする請求項８記載のデータ転送方法。
【請求項１０】
ホスト装置から受信したデータを蓄積し、
前記蓄積されたデータの読出し時間を制御し、
前記データの読出し時間と前記到着タイミング情報又は前記データの読出し時間と前記到着タイミング情報と前記送信タイミング情報に基づきホスト装置からのデータ送信可否を決定することを特徴とする請求項７乃至９記載のデータ転送方法。
【請求項１１】
前記データの読み出し時間は、未読出しデータ量と、前記データパケットを蓄積する蓄積タイミング情報に基づきデータの読出し時間を決定することを特徴とする請求項１０記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ転送装置及びデータ転送方法に関し、特に効率的なデータ転送を実現するためのデータ転送装置及びデータ転送方法に関する。
【背景技術】
【０００２】
近年、通信の接続線を無くすワイヤレス化技術により、通信のワイヤレス化が進み、パーソナルコンピュータ（ＰＣ）やその周辺機器、ゲーム機など幅広い電化製品の入出力インタフェースとしてワイヤレス化技術が採用されてきた。さらに今までのＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースによる有線接続を最新の無線技術を用いて拡張するインタフェース規格であるワイヤレスＵＳＢ（ＷＵＳＢ）が策定されている。ワイヤレスＵＳＢは、ＰＣやデジタル家電の無線技術に採用されている。ＰＣやデジタル家電の通信がワイヤレス化されるにつれ、画像データや動画データ等の大容量データ転送を行うことが増えてくる。このため、通信制御用の半導体集積回路に対して受信データを確実に取り込み、再転送要求処理の発生回数を低減させて転送スループットを向上させる要求が高まってきた。例えば、特許文献１には、ＵＳＢ装置のデータ転送レートを向上させるために、ＵＳＢ装置が、バッファの使用状況をホスト装置に対して通知する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２５１７１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
図６は、ＵＳＢコントローラの構成を示す一例である。
【０００５】
図６は、ＰＣ等のホスト２１にＵＳＢバス２２を介してデバイス２３が接続されている。デバイス２３は、ホスト２１から送信されるスタートオブフレーム（Ｓｔａｒｔ  Ｏｆ  Ｆｒａｍｅ；ＳＯＦ）を受信する等の機能を有している。ＳＯＦは、ホスト２１とデバイス２３が同期をとるために用いられるデータである。このデバイス２３内には、デバイス全体を制御する制御部（例えば、Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ；ＭＣＵ）２３ａ、データ格納用のメモリ２３ｂ、及びＵＳＢコントローラ３０等を備える。ＵＳＢコントローラ３０は、ＵＳＢトランシーバ３１、トランザクション間隔タイマ３２、比較部３３、シリアルインタフェースエンジン（Ｓｅｒｉａｌ  Ｉｎｔｅｒｆａｃｅ  Ｅｎｇｉｎｅ；ＳＩＥ）３４、ＦＩＦＯバッファ３５、レジスタ群３７、ＭＣＵ  Ｉ／Ｆ３８、ＦＩＦＯ読み出し時間を計測するＦＩＦＯ読出しタイマ３６、及びレジスタ群３７内のフレーム間隔レジスタ３７ａを備える。
【０００６】
ＵＳＢコントローラ３０において、ＵＳＢトランシーバ３１は、ＵＳＢバス２２を介して、ホスト２１と送受信を行う回路である。ＵＳＢトランシーバ３１には、トランザクション間隔タイマ３２及びＳＩＥ３４が接続され、そのトランザクション間隔タイマ３２が、比較部３３を介してＳＩＥ３４に接続されている。
【０００７】
トランザクション間隔タイマ３２は、デバイス２３がハンドシェークを送信してからＯＵＴトークン又はＰＩＮＧトークンを受信するまでのトランザクション間隔を計測するタイマである。ハンドシェークとは、ＦＩＦＯバッファの空き容量の状態を通知する信号である。ＦＩＦＯバッファ３５に空きがある場合は、ホスト２１にハンドシェーク値として、アクノリッジ（ＡＣＫ）を送信する。ＦＩＦＯバッファに空きがない場合は、ホスト２１にハンドシェーク値として、ノットイェット（ＮＹＥＴ）を送信する。ＯＵＴトークンは、デバイス２３がホスト２１にＡＣＫを送信した場合に、ホスト２１がデータとともに送信するトークンである。ＰＩＮＧトークンは、デバイス２３がホスト２１にＮＹＥＴを送信した場合に、ホスト２１がデバイス２３に対して送信するものである。ＰＩＮＧトークンはデバイス２３のバッファに空きがあるか否かを確認するものであり、デバイス２３からＡＣＫが送信されるまで、継続して、ホスト２１がデバイス２３に送信するものである。
【０００８】
トランザクション間隔タイマ３２の計測には、以前用いたトランザクション間隔タイマ値と新たに測定したトランザクション間隔タイマ値との平均を取る方法がある。トランザクション間隔タイマ３２の初期値は、例えば、１フレーム時間１２５μｓｅｃ／１フレームの最大パケット数１３≠９μｓｅｃとする。
【０００９】
トランザクション間隔タイマ３２に接続された比較部３３は、該トランザクション間隔タイマ３２の出力値とＦＩＦＯ読出しタイマ３６の出力値とを比較するものであり、この出力側に、ＳＩＥ３４が接続されている。ＳＩＥ３４は、ＵＳＢ通信のシリアル通信制御を行う部分である。さらに、ハンドシェークの自動応答や、データを送受信する機能を有し、演算・制御を行う制御部３４ａ、データ受信数をカウントするバイトカウンタ３４ｂ、及びＳＯＦタイマ３４ｃ等で構成されている。ＳＯＦタイマ３４ｃは、ホスト２１がデバイス２３と同期をとるためのタイマである。何らかのＵＳＢバス２２上のエラーにより、デバイス２３にＳＯＦが届かない場合のことを考え、ＳＯＦタイマ３４ｃが内蔵される。
【００１０】
ＳＩＥ３４には、ＦＩＦＯバッファ３５と、フレーム間隔レジスタ３７ａを有するレジスタ群３７が接続されている。ＦＩＦＯバッファ３５は、１パケットの最大長を１個と考え、構成によっては２個以上の場合もある。フレーム間隔レジスタ３７ａは、ソフトウェアが設定できるレジスタであり、フレームの有効時間を設定する。このフレーム間隔レジスタ３７ａに示される時間以降にハンドシェークを送信する場合には、先ずＳＯＦまでの残り時間とトランザクション間隔とを比較し、ＳＯＦまでの残り時間が大きければ、トランザクション間隔をＳＯＦまでの残り時間に置き換える。
【００１１】
ＦＩＦＯバッファ３５には、ＦＩＦＯ読出しタイマ３６とＭＣＵ  Ｉ／Ｆ３８が接続され、そのＦＩＦＯ読出しタイマ３６が比較部３３に接続されている。ＦＩＦＯ読出しタイマ３６は、ＦＩＦＯバッファ３５内のデータをホスト２１側のメモリに読み出す時間を計測するタイマである。このＦＩＦＯ読出し時間は前回処理において使用したＦＩＦＯ読出し時間を使用する。レジスタ群３７もＭＣＵ  Ｉ／Ｆ３８に接続されている。ＭＣＵ  Ｉ／Ｆ３８には、ＭＣＵ２３ａ、及びメモリ２３ｂ等が接続されている。
【００１２】
上記構成のデータ転送方法、及びデータ転送装置では、ホスト２１からＳＩＥ３４を介して、デバイス２３に設けたＦＩＦＯバッファ３５へ、所定のトークン処理によりデータを転送する。この場合に、デバイス２３側でＦＩＦＯバッファ３５を監視する。ＦＩＦＯバッファ３５にデータが存在し、ホスト２１へノット・イェット（ＮＹＥＴ）を発行すべき場合であっても、次のパケット到着までにＦＩＦＯバッファ３５に空きができると予測される場合には前記ホスト２１へアクノリッジ（ＡＣＫ）を送信する。実際にホスト２１から前記データを転送してきたときにＦＩＦＯバッファ３５に空きがなかった場合には、前記ホストへネガティブアクノリッジ（ＮＡＫ）を送信する。
【００１３】
図７は、図６のＵＳＢコントローラ３０におけるデータ受信時の動作フローを示す図である。まず、ＵＳＢコントローラ３０において、ＵＳＢトランシーバ３１が、ホスト２１からＵＳＢバス２２を介して送られてくるデータを受信すると（Ｓ１）、ＳＩＥ３４内の制御部３４ａにより、ＦＩＦＯバッファ３５が空か否かを判定する（Ｓ２）。ＦＩＦＯバッファ３５が空であれば、ＳＩＥ３４を通じて、ＦＩＦＯバッファ３５へデータを格納する（Ｓ３）。
【００１４】
ＦＩＦＯバッファ３５が空でない場合には、制御部３４ａの制御により、トランザクション間隔タイマ３２で計測されるトランザクション間隔を初期化し（Ｓ１０）、ＵＳＢトランシーバ３１からホスト２１へＮＡＫを送信する（Ｓ１１）。
【００１５】
ＦＩＦＯバッファ３５へデータを格納する際（Ｓ３）、バイトカウンタ３４ｂにて受信サイズを計測し、制御部３４ａにより、データがショートパケットか否かを判定する（Ｓ４）。もしショートパケットである場合には、制御部３４ａの制御により、ＵＳＢトランシーバ３１からホスト２１へＡＣＫを送信する（Ｓ５）。
ショートパケットでない場合は、制御部３４ａにより、ＯＵＴトランザクションの平均間隔を計算する（Ｓ６）。計算したＯＵＴトランザクションの平均間隔が、予めＦＩＦＯ読み出しタイマ３６で測定しているＦＩＦＯ読み出し時間よりも大きいか否か（トランザクション平均間隔 ≧ ＦＩＦＯ読み出し時間）を、比較部３３で比較する（Ｓ７）。大きければ、ＵＳＢトランシーバ３１からホスト２１へＡＣＫを送信し（Ｓ８）、小さければ、ＮＹＥＴを送信し（Ｓ９）、制御部３４ａの制御により、トランザクション間隔タイマ３２を起動（Ｓ１２）して、データ受信動作を終了する。
【００１６】
上述の方法においては、ホストへＡＣＫを送出することができる状態においても、ＮＹＥＴを送出してしまい、再転送要求処理が発生してデータ転送効率を悪くするという問題がある。その理由としては、ハンドシェークのＯＵＴトランザクション受信間隔を過去のＯＵＴトランザクション間隔情報から予測し、ＯＵＴトランザクション受信間隔を決定しているためである。具体的には、ホスト側から送信されるＯＵＴトランザクション間隔に変動が生じた場合にＯＵＴトランザクション受信間隔の追随ができなく、次のＯＵＴトランザクションを受信できないと判断して、ホストへＮＹＥＴを送出するためである。
【課題を解決するための手段】
【００１７】
本発明にかかるデータ転送装置は、ホスト装置から受信したデータとホスト装置から次に送信されるデータの到着タイミング情報を受信するデータ受信部と、前記データ受信部が受信した到着タイミング情報に基づき、ホスト装置からのデータ送信可否を決定するハンドシェーク決定部を備えるものである。
【００１８】
また、本発明にかかるデータ転送方法は、ホスト装置から受信したデータとホスト装置から次に送信されるデータの到着タイミング情報を受信し、前記到着タイミング情報に基づき、ホスト装置からのデータ送信可否を決定するものである。
【００１９】
本発明では、次に送信されるデータの到着タイミング情報を用いて、ハンドシェークを決定する。つまり、過去に測定したＯＵＴトランザクション受信間隔を用いる必要はなく、ＯＵＴトランザクション間隔に変動が生じた場合にも、適切なハンドシェークを決定することができる。これにより、無駄な再転送要求処理の発生を防止し、データ転送効率の向上を実現している。
【発明の効果】
【００２０】
本発明により、効率的なデータ転送を図ることができるデータ転送装置及びデータ転送方法を提供することができる。
【図面の簡単な説明】
【００２１】
【図１】実施の形態１にかかるデータ転送装置の構成図である。
【図２】実施の形態１にかかるデータ転送装置の処理フロー図である。
【図３】実施の形態１にかかるデータの受信状況を示す図である。
【図４】実施の形態２にかかるデータ転送装置の構成図である。
【図５】実施の形態２にかかるデータ転送装置の処理フロー図である。
【図６】従来のデータ転送装置の構成図である。
【図７】従来のデータ転送装置の処理フロー図である。
【発明を実施するための形態】
【００２２】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。まず、図１を用いて、本発明の実施の形態１にかかるデータ転送装置の構成について説明する。本発明の実施の形態１にかかるデータ転送装置１００は、ＭＣＵ１１０と、メモリ１２０と、ＵＳＢコントローラ１３０から構成される。さらに、ＵＳＢコントローラは、ＵＳＢトランシーバ１３１とＳＩＥ１３２と、ハンドシェーク決定部１３３と、ＭＡＣスケジュールパケット取得部１３４と、インターパケット値取得部１３５と、データヘッダ時間算出部１３６と、次回データ受信時間算出部１３７と、ＦＩＦＯバッファ１３８と、ＭＣＵインタフェース（ＭＣＵ  Ｉｎｔｅｒｆａｃｅ；ＭＣＵ／ＩＦ）１３９と、レジスタ群１４０から構成される。
【００２３】
ＵＳＢトランシーバ１３１と、ＳＩＥ１３２はデータ受信手段に相当する。ハンドシェーク決定部１３３と、ＭＡＣスケジュールパケット取得部１３４と、インターパケット値取得部１３５と、データヘッダ時間算出部１３６と、次回データ受信時間算出部１３７はハンドシェーク決定手段に相当する。ＦＩＦＯバッファ１３８はバッファに相当する。ＭＣＵ１１０は制御手段に相当する。
【００２４】
ＵＳＢトランシーバ１３１は、ホスト装置１０とＵＷＢ（Ｕｌｔｒａ  Ｗｉｄｅ  Ｂａｎｄ）電波によって通話可能に接続されている。ＵＳＢトランシーバ１３１は、ＵＷＢ電波を用いて、ホスト装置１０とデータの送受信を行う。ＵＳＢトランシーバ１３１は、ホスト装置１０から送信されたデータをＳＩＥ１３２に出力する。ホスト装置から送信されるデータには、ホスト装置１０とデータ転送装置１００を接続するための接続用パケット、スケジュール情報を含むスケジュールパケット、ＯＵＴデータパケットが含まれる。
【００２５】
ＳＩＥ１３２は、ＵＳＢトランシーバ１３１より取得した接続用パケットを、インターパケット値取得部１３５へ出力する。インターパケット値取得部１３５は、入力した情報から、スケジュールパケットとＯＵＴデータの送信間隔時間を示す、インターパケット値情報（ＴＷ２）を取得する。インターパケット値取得部１３５は、取得したインターパケット値情報を次回データ受信時間算出部１３７に出力する。
【００２６】
また、ＳＩＥ１３２は、ＵＳＢトランシーバ１３１より出力されたスケジュールパケットを、ＭＡＣ層スケジュールパケット取得部１３４に出力する。さらに、ＳＩＥ１３２は、ＵＳＢトランシーバ１３１より出力されたＯＵＴデータパケットを、ＦＩＦＯバッファ１３８へ出力する。ＭＡＣ層スケジュールパケット取得部１３４は、入力した情報から、データ転送装置１００からホスト装置１０に対して送信するハンドシェークの送信時刻を示す、ハンドシェーク送信タイミング情報（ｔ１）を取得する。さらに、次に送信されるスケジュールパケットの到着タイミング情報（ｔ２）を取得する。ＭＡＣ層スケジュールパケット取得部１３４は、ハンドシェーク送信タイミング情報と到着タイミング情報を、次回データ受信時間算出部１３７に出力する。
【００２７】
ここで、ホスト装置とデータ転送装置が時刻同期を行っている場合、到着タイミング情報は、データ転送装置１００がスケジュールパケットを取得する時刻情報を示してもよい。また、到着タイミング情報は、ホスト装置１０がスケジュールパケットを送信する時刻情報を示してもよい。さらに、ホスト装置とデータ転送装置が時刻同期を行っていない場合、到着タイミング情報は、すでに取得したスケジュールパケットから次回送信されるスケジュールパケットの間隔を示す時間でもよいし、すでに取得した接続用パケット又はＯＵＴデータパケット等のデータから次回送信されるスケジュールパケットまでの間隔を示す時間でもよい。もしくは、上記時間情報と、データ転送装置の有する時刻情報に基づいた、時刻情報を示してもよい。
【００２８】
ハンドシェーク送信タイミング情報は、データ転送装置１００がホスト装置１０に対してハンドシェークを送信する時刻情報を示してもよい。また、ハンドシェーク送信タイミング情報は、すでに取得したスケジュールパケットから、ハンドシェークを送信するまでの間隔を示す時間でもよい。
【００２９】
データヘッダ時間算出部１３６は、ホスト装置１０とデータ転送装置１００が接続された際にプロトコルで定まる、スケジュールパケットの最少転送時間（ＴＷ１）と、ＯＵＴデータをＳＩＥ１３４が受信してから、ＯＵＴデータが、ＦＩＦＯバッファ１３８へ到達するまでの時間（ＴＷ３）を格納する。また、データヘッダ時間算出部１３６は、ＴＷ１とＴＷ３を、次回データ受信時間算出部１３７に出力する。ここで、ＴＷ３は、ＵＳＢトランシーバ１３１がＯＵＴデータを受信してからＦＩＦＯバッファ１３８へ到達するまでの時間を示してもよい。
【００３０】
次回データ受信時間算出部１３７は、取得した情報ｔ１、ｔ２、ＴＷ１、ＴＷ２、ＴＷ３に基づいて、次回データ受信時間（ＴＷ４）を算出する。次回データ受信時間（ＴＷ４）とは、データ転送装置１００が、ホスト装置１０に対してハンドシェークを送信してから、ホスト装置１０からデータ転送装置１００へ送信されたＯＵＴデータが、ＦＩＦＯバッファ１３８へ到達するまでの時間であり、式１で示される。
ＴＷ４＝ｔ２−ｔ１＋ＴＷ１＋ＴＷ２＋ＴＷ３・・・（式１）
次回データ受信時間算出部１３７は、ＴＷ４をハンドシェーク決定部１３３に出力する。
【００３１】
ＦＩＦＯバッファ１３８は、ＳＩＥ１３２から取得したＯＵＴデータをＭＣＵ／ＩＦ１３９を介して、メモリ１２０へ出力する。この際、ＦＩＦＯバッファ１３８は、メモリ１２０へ未出力であって、ＦＩＦＯバッファ１３８に残存するデータ量（Ｅ１）をハンドシェーク決定部１３３に出力する。
【００３２】
ハンドシェーク決定部１３３は、ＦＩＦＯバッファ１３８から取得した、ＦＩＦＯ１３８に残存するデータ量（Ｅ１）と、ＴＷ４の値を含むＦＩＦＯ読出能力調整要求を、ＭＣＵ１１０に出力する。ＦＩＦＯ読出能力調整要求を取得したＭＣＵ１１０は、ＦＩＦＯ１３８に残存するデータ量（Ｅ１）と、ＴＷ４から、単位処理時間にＦＩＦＯ１３８が読み出すデータ量情報（Ｆ１）を含むＦＩＦＯ読出能力調整応答を、ハンドシェーク決定部１３３に出力する。
【００３３】
ハンドシェーク決定部は、ＴＷ４と、Ｅ１と、Ｆ１に基づいて、ハンドシェークを決定する。具体的には、以下の式２が成立する場合は、ホスト装置１０に対してハンドシェークとしてＡＣＫを送信し、式２が成立しない場合は、ホスト装置１０に対してハンドシェークとしてＮＹＥＴを送信する。
Ｅ１／Ｆ１≦ＴＷ４・・・（式２）
【００３４】
レジスタ群１４０は、ＳＩＥ１３２及びＭＣＵ／ＩＦ１３９と接続されている。レジスタ群１４０は、例えばフレーム間隔レジスタを有し、フレームの有効時間等を設定することができる。
【００３５】
次に図２を用いて本発明の実施の形態１にかかるデータ転送装置１００の処理フローを説明する。データ転送装置１００は、ホスト装置１０と接続を行う（Ｓ１０１）。接続において、ＵＳＢコントローラ１３０は、プロトコルにより定まる、スケジュールパケットの最少転送時間（ＴＷ１）と、ＯＵＴデータをＳＩＥ１３４が受信してからＦＩＦＯバッファ１３８へ到達するまでの時間（ＴＷ３）をパラメータ値として設定する（Ｓ１０２）。設定したパラメータ値はデータヘッダ時間算出部１３６が保持する。
【００３６】
次に、データ転送装置１００は、ホスト装置１０から接続用パケットを受信する（Ｓ１０３）。接続用パケットは、データ転送装置１００とホスト装置１０がデータの送受信を行うにあたり、ネゴシエーションを行うために用いられる。本発明の実施の形態１においては、インターパケット値取得部１３５は、接続用パケットから、スケジュールパケットとＯＵＴデータパケットの送信時間間隔（インターパケット値）情報を取得する（Ｓ１０４）。
【００３７】
次に、データ転送装置１００は、ホスト装置１０からスケジュールパケットを受信する（Ｓ１０５）。ここで、ＭＡＣ層スケジュールパケット取得部１３４は、ホスト装置１０から送信されたスケジュールパケットのフィールドに規定されている情報から、次に送信されるスケジュールパケットの到着タイミング情報を取得する（Ｓ１０６）。
【００３８】
次に、データ転送装置１００は、ホスト装置１０からＯＵＴデータパケットを受信する（Ｓ１０７）。ＳＩＥ１３２がＯＵＴデータを受信した時に、ＦＩＦＯバッファ１３８に空きがない場合には、ＳＩＥ１３２はホスト装置１０に対してＮＡＫを送信する（Ｓ１１８）。ＦＩＦＯバッファ１３８に空きがある場合には、ＦＩＦＯバッファ１３８へＯＵＴデータを格納する（Ｓ１０９）。
【００３９】
次に、ＳＩＥ１３２は、ＯＵＴデータのパケット長の長短に基づいて処理を行う。通常、ＵＳＢ規格を用いた通信では、１パケットの最大長は決まっている。最大長以下のサイズのパケットをショートパケットという。ＵＳＢ規格では、データが複数のパケットに跨った場合、最後のパケット以外のパケットサイズは最大長であることと規定している。このため、データ転送装置１００が、ショートパケットを受信したということは、複数パケット転送の最後であり、その後暫くは、データ転送装置１００に対して、転送がないと予想できる。このため、ＯＵＴデータがショートパケットである場合は、ホスト装置１０に対してＡＣＫを送信する(Ｓ１１９)。ショートパケット以外、つまり、最大長のパケットであれば、Ｓ１１１の処理を行う。
【００４０】
次に、次回データ受信時間算出部１３７は、データヘッダ時間算出部１３６が保持しているＴＷ１、ＴＷ３と、インターパケット値取得部１３５が保持しているＴＷ２と、ＭＡＣ層スケジュールパケット取得部１３４が保持しているｔ１、ｔ２を取得する（Ｓ１１１）。それから、データ転送装置１００が、ホスト装置１０に対してハンドシェーク情報を送信してから、ホスト装置１０からデータ転送装置１００へ送信されたＯＵＴデータが、ＦＩＦＯバッファ１３８へ到達するまでの時間を示すＴＷ４を式１から算出する（Ｓ１１２）。
【００４１】
次に、ハンドシェーク決定部１３３は、ＦＩＦＯバッファ１３８に残存するデータ量（Ｅ１）と、ＴＷ４の値を含む、ＦＩＦＯ読出能力調整要求を、ＭＣＵ１１０に出力する。ＦＩＦＯ読出能力調整要求を取得したＭＣＵ１１０は、ＦＩＦＯ１３８に残存するデータ量（Ｅ１）と、ＴＷ４から、単位処理時間にＦＩＦＯ１３８が読み出すデータ量情報（Ｆ１）を決定する。ＭＣＵ１１０は、Ｆ１を含む、ＦＩＦＯ読出能力調整応答を、ハンドシェーク決定部１３３に出力する（Ｓ１１３）。
【００４２】
ハンドシェーク決定部１３３は、Ｅ１、Ｆ１、ＴＷ４が式２の関係を満たす場合、ホスト装置に対してＡＣＫを送信する（Ｓ１１５）。Ｅ１、Ｆ１、ＴＷ４が式２の関係を満たさない場合、ホスト装置に対してＮＹＥＴを送信する（Ｓ１１６）。
【００４３】
次に、ＵＳＢコントローラ１３０は、ホスト装置１０との通信が切断されたかを判断する（Ｓ１１７）。ホスト装置１０との通信が切断された場合は、処理を終了する。切断されていない場合は、Ｓ１０５へ戻り、同様の処理を行う。
【００４４】
次に図３を用いて、本発明の実施の形態１にかかるデータの通信状況を説明する。ＭＭＣ（Ｍｉｃｒｏ−ｓｃｈｅｄｕｌｅｄ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｍｍａｎｄ）２０１、ＭＭＣ２０４は、スケジュールパケットを示す。ＯＵＴ２０２、ＯＵＴ２０５はＯＵＴデータパケットを示す。ハンドシェーク２０３は、ハンドシェーク情報を示すものであり、ＡＣＫもしくはＮＹＥＴの値を示す。時刻ｔ０は、ＵＳＢトランシーバ１３１もしくはＳＩＥ１３２がＭＭＣ２０１を受信した時刻を示す。時刻ｔ１は、ＭＭＣ２０１によって指定されるものであり、データ転送装置１００からホスト装置１０に対して送信するハンドシェークの送信時刻を示す。時刻ｔ２は、ＭＭＣ２０１によって指定されるものであり、ホスト装置１０からデータ転送装置１００に対して、次に送信されるＭＭＣ２０４の到着時刻を示す。時刻ｔ３は、ホスト装置１０からデータ転送装置１００に対して、次に送信されるＯＵＴ２０５の到着時刻を示す。時刻ｔ４は、ＯＵＴ２０５がＦＩＦＯバッファ１３８に到達する時刻を示す。ＴＷ１乃至ＴＷ４は前述した定義と同様であるため、説明を省略する。
【００４５】
図３は、ＵＳＢコントローラが受信したＭＭＣ２０１に指定されている情報に基づいて、時刻ｔ１及びｔ２が定められることを示している。さらに、事前の接続処理（Ｓ１０１乃至Ｓ１０４）により定められているＴＷ１乃至ＴＷ３と、時刻ｔ１及び時刻ｔ２に基づいて、データ転送装置１００がホスト装置１０に対してハンドシェーク情報を送信してから、ホスト装置１０からデータ転送装置１００へ送信されたＯＵＴデータが、ＦＩＦＯバッファへ到達するまでの時間であるＴＷ４が、定められることを示している。
【００４６】
以上説明したように、本発明の実施の形態１にかかるデータ転送装置では、過去に測定したＯＵＴトランザクションタイマを基にハンドシェーク値を決定するのではなく、次回に送信されるスケジュールパケット及びＯＵＴデータパケットのスケジュール情報に基に、ハンドシェーク値を決定する。そのため、ＯＵＴトランザクションが変動した場合においても、適切なハンドシェークを決定することができる。
【００４７】
また、ＦＩＦＯバッファの読出し時間を、過去に測定した値を用いるのではなく、現在のＦＩＦＯバッファの状況を制御することにより、算出する。そのため、ＦＩＦＯバッファの読出し時間が変動した場合においても、適切なハンドシェークを決定することができる。
【００４８】
さらに、上記本発明の実施の形態１においては、ハンドシェークの決定に用いられるＦＩＦＯバッファの読出し時間として、Ｅ１／Ｆ１の値を定めたが、ＦＩＦＯバッファの読出し時間は、実測した値を用いてもよい。その場合は、ＦＩＦＯバッファの読出し時間として測定した実測値よりもＴＷ４が大きい場合は、ハンドシェークとしてＡＣＫを送信する。ＦＩＦＯバッファの読出し時間として測定した実測値よりも、ＴＷ４が小さい場合は、ハンドシェークとしてＮＹＥＴを送信する。
【００４９】
これにより、ＦＩＦＯバッファ制御の処理負担が軽減され、データ転送装置全体として処理負担の軽減を実現することができる。
【００５０】
さらに、上記本発明の実施の形態１においては、プロトコルで定まる値ＴＷ１、ＴＷ３、接続時のネゴシエーションにより定まるＴＷ２を用いて、ＴＷ４を決定している。これを、ｔ１及びｔ２又はｔ１もしくはｔ２を取得後、プロトコル等で定められている他の固定値を用いることで、ＴＷ４を用いてもよい。また、ＭＭＣ２０１（スケジュールパケット）が、ＯＵＴデータｔ３のスケジュール情報を定めてもよい。
【００５１】
（実施の形態２）
次に、図４を用いて、本発明の実施の形態２にかかるデータ転送装置の構成を説明する。ＵＳＢコントローラ１３０は、ホスト情報保存部１５０を備える。ホスト情報保存部１５０は、ＳＩＥ１３２から、ホスト装置１０のホストアドレス情報を取得する。さらに、ホスト情報保存部１５０は、インターパケット値取得部１３５からＴＷ２を取得し、データヘッダ時間算出部１３６からＴＷ１、ＴＷ３を取得する。ホスト情報保存部１５０は、ホストアドレス情報と、ＴＷ１乃至ＴＷ３の情報を関連づけて保存する。その他の構成は図１と同様であるため、説明を省略する。
【００５２】
次に、図５を用いて、本発明の実施の形態２にかかるデータ転送装置の処理フローを説明する。データ転送装置１００がホスト装置１０と接続したら（Ｓ１０１）、次回データ受信時間算出部１３７は、ホスト装置１０のホストアドレス情報を取得する（Ｓ２０２）。次回データ受信時間算出部１３７は、取得したホストアドレス情報と、ホスト情報保存部１５０に保存されているホストアドレス情報を比較する（Ｓ２０３）。取得したホストアドレス情報が、ホスト情報保存部１５０に保存されているホストアドレス情報と一致する場合は、次回データ受信時間算出部１３７は、一致したホストアドレス情報に対応付けられているＴＷ１乃至ＴＷ３を取得し、Ｓ１０５の処理を行う。取得したホストアドレス情報が、ホスト情報保存部１５０に保存されているホストアドレス情報と一致しない場合は、Ｓ１０２の処理を行う。その他の処理フローは、図２と同様であるため、説明を省略する。
【００５３】
以上説明したように、本発明の実施の形態２にかかるデータ転送装置においては、ホストアドレス情報を有することにより、Ｓ１０２乃至Ｓ１０４の処理を省略することができるため、データ転送装置全体としての処理負荷を軽減することができる。
【００５４】
以上の説明は、本発明の実施の形態を説明するものであり、本発明が以上の実施の形態に限定されるものではない。また、当業者であれば、以上の実施の形態の各要素を本発明の範囲において容易に変更、追加、返還することが可能である。
【符号の説明】
【００５５】
１０    ホスト装置
１００  データ転送装置
１１０  ＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ）
１２０  メモリ
１３０  ＵＳＢコントローラ
１３１  ＵＳＢトランシーバ
１３２  ＳＩＥ（Ｓｅｒｉａｌ  Ｉｎｔｅｒｆａｃｅ  Ｅｎｇｉｎｅ）
１３３  ハンドシェーク決定部
１３４  ＭＡＣ層スケジュールパケット取得部
１３５  インターパケット値取得部
１３６  データヘッダ時間算出部
１３７  次回データ受信時間算出部
１３８  ＦＩＦＯバッファ
１３９  ＭＣＵ Ｉ／Ｆ
１４０  レジスタ群
１５０  ホスト情報保存部
【図１】
2010170458.tif 000003
【図２】
2010170458.tif 000004
【図３】
2010170458.tif 000005
【図４】
2010170458.tif 000006
【図５】
2010170458.tif 000007
【図６】
2010170458.tif 000008
【図７】
2010170458.tif 000009