(57)【要約】【課題】転送先機器が受信データを転送する動作と、転送元機器からのデータ送信動作のタイミングが重なると転送データの欠落が生じる課題があった。【解決手段】第一のデータ転送手段２２、１１、１２と、第一のデータ転送手段で転送されたデータをバッファリングする複数のバッファ１３と、第一のデータ転送手段より転送されるデータをバッファリングするバッファを別のバッファに切り替えるバッファ制御手段１４と、バッファに蓄積されたデータを受信側に転送する第二のデータ転送手段１５、３１と、第二のデータ転送手段で転送されたデータを転送する第三のデータ転送手段３４を備え、第一のデータ転送手段は、データの送信間隔が所定の時間ｔ３より大きいとき、次のデータ送信を遅らせる機能２２ａを設けて転送データの欠落を防止する。【選択図】図１
2011227757.tif 000002
【特許請求の範囲】
【請求項１】
データフロー制御機能を持たない第一のデータ転送手段と、前記第一のデータ転送手段で転送されたデータをバッファリングする複数のバッファと、前記第一のデータ転送手段より受信したデータ量が前記複数のバッファの１つのバッファのバッファサイズと等しくなったとき、もしくは前記第一のデータ転送手段からのデータ受信があらかじめ設定された所定の時間ｔ１以上行われなかったときに、バッファリング中のバッファのステータスを受信完了とし、前記第一のデータ転送手段より転送されるデータをバッファリングするバッファを別のバッファに切り替えるバッファ制御手段と、受信側からデータの送信要求が発行され、前記送信要求の際に前記バッファ制御手段が設定するステータスが受信完了であれば、前記バッファに蓄積されたデータを受信側に転送する第二のデータ転送手段と、前記第二のデータ転送手段で転送されたデータをバッファリングするデータバッファと、前記第二のデータ転送手段より一度に受信したデータのサイズが、前記複数のバッファのバッファサイズより小さい場合、もしくは前記バッファ制御手段が設定するステータスがあらかじめ設定された所定の時間ｔ２以上受信完了とならない場合に、前記データバッファに蓄積されたデータを転送する第三のデータ転送手段を備え、
前記第一のデータ転送手段は、一つ前のデータ転送要求によるデータ送信完了から次のデータ転送要求を受信するまでの時間が、あらかじめ設定された所定の時間ｔ３より大きいとき、前記所定の時間ｔ３経過したタイミングからあらかじめ設定された所定の時間ｔ４経過するまでの間データの転送を開始せず、その間に発生したデータ転送要求によるデータの転送開始を遅延する機能を持つことを特徴とするデータ転送装置。
【請求項２】
前記所定の時間ｔ２、時間ｔ３の設定値として、前記所定の時間ｔ１と同じ値を用い、前記所定の時間ｔ４の設定値として、前記第三のデータ転送手段が一度の転送に要する所要時間の最大値を用いることを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
データフロー制御機能を持たない第一のデータ転送手段と、前記第一のデータ転送手段で転送されたデータをバッファリングする複数のバッファと、前記第一のデータ転送手段より受信したデータ量が前記複数のバッファの１つのバッファのバッファサイズと等しくなったとき、もしくは前記第一のデータ転送手段からのデータ受信があらかじめ設定された所定の時間ｔ１以上行われなかったときに、バッファリング中のバッファのステータスを受信完了とし、前記第一のデータ転送手段より転送されるデータをバッファリングするバッファを別のバッファに切り替えるバッファ制御手段と、受信側からデータの送信要求が発行され、前記送信要求の際に前記バッファ制御手段が設定するステータスが受信完了であれば、前記バッファに蓄積されたデータを受信側に転送する第二のデータ転送手段と、前記第二のデータ転送手段で転送されたデータをバッファリングするデータバッファと、前記第二のデータ転送手段より一度に受信したデータのサイズが、前記複数のバッファのバッファサイズより小さい場合、もしくはあらかじめ設定された所定の回数Ｎ以上送信要求を行ったにもかかわらず、前記バッファ制御手段が設定するステータスが受信完了とならない場合に、前記データバッファに蓄積されたデータを転送する第三のデータ転送手段を備え、
前記第一のデータ転送手段は、一つ前のデータ転送要求によるデータ送信完了から次のデータ転送要求を受信するまでの時間が、あらかじめ設定された所定の時間ｔ３より大きいとき、前記所定の時間ｔ３経過したタイミングからあらかじめ設定された所定の時間ｔ４経過するまでの間データの転送を開始せず、その間に発生したデータ転送要求によるデータの転送開始を遅延する機能を持つことを特徴とするデータ転送装置。
【請求項４】
前記所定の時間ｔ３の設定値として、前記所定の時間ｔ１と同じ値を用い、前記所定の回数Ｎの設定値として、前記所定の時間ｔ１あたりに受信側から発行される送信要求の回数を用い、前記所定の時間ｔ４の設定値として、前記第三のデータ転送手段が一度の転送
に要する所要時間の最大値を用いることを特徴とする請求項３に記載のデータ転送装置。
【請求項５】
データフロー制御機能を持たない第一のデータ転送手段と、前記第一のデータ転送手段で転送されたデータをバッファリングする複数のバッファと、前記第一のデータ転送手段より受信したデータ量が前記複数のバッファの１つのバッファのバッファサイズと等しくなったとき、もしくは受信側からの送信要求を所定の回数Ｎ１受ける間に、前記第一のデータ転送手段からのデータ受信が無かったときに、バッファリング中のバッファのステータスを受信完了とし、前記第一のデータ転送手段より転送されるデータをバッファリングするバッファを別のバッファに切り替えるバッファ制御手段と、受信側からデータの送信要求が発行され、送信要求の際に前記バッファ制御手段が設定するステータスが受信完了であれば、前記バッファに蓄積されたデータを受信側に転送する第二のデータ転送手段と、前記第二のデータ転送手段で転送されたデータをバッファリングするデータバッファと、前記第二の転送手段より一度に受信したデータのサイズが、前記複数のバッファのバッファサイズより小さい場合、もしくは所定の回数Ｎ２以上送信要求を行ったにもかかわらず、前記バッファ制御手段が設定するステータスが受信完了とならない場合に、前記データバッファに蓄積されたデータを転送する第三のデータ転送手段を備え、
前記第一のデータ転送手段は、一つ前のデータ転送要求によるデータ送信完了から次のデータ転送要求を受信するまでの時間が、あらかじめ設定された所定の時間ｔ３より大きいとき、前記所定の時間ｔ３経過したタイミングからあらかじめ設定された所定の時間ｔ４経過するまでの間データの転送を開始せず、その間に発生したデータ転送要求によるデータの転送開始を遅延する機能を持つことを特徴とするデータ転送装置。
【請求項６】
前記の所定の回数Ｎ２として所定の回数Ｎ１と同じ値を用い、前記所定の時間ｔ３の設定値として前記所定の回数Ｎ１発行される時間の最小値を用い、前記所定の時間ｔ４の設定値として、前記第三のデータ転送手段が一度の転送に要する所要時間の最大値を用いることを特徴とする請求項５に記載のデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は転送元機器にあるデータを転送先機器に転送するデータ転送装置に関するもので、特にそれぞれの機器のインターフェイスに互換性がない場合のデータ転送装置に関する。
【背景技術】
【０００２】
近年、高速シリアルインターフェイスとしてＵＳＢ（Universal Serial Bus）が普及している。従来ＲＳ−２３２Ｃなどに見られるＵＡＲＴ（Universal Asynchronous Receiver Transmitter）によるシリアル通信デバイスは高速で安定してデータ伝送の行えるＵＳ
Ｂに置換えられる傾向にある。
ＵＡＲＴによるインターフェイスとＵＳＢによるインターフェイスは互換性がないため、従来のＵＡＲＴによるインターフェイスを装備した機器をＵＳＢに接続することは出来ない。そのため従来のＵＡＲＴによるインターフェイスを装備した機器からＵＳＢインターフェイスを装備した機器にデータ転送する場合、互いのインターフェイスを接続するためのＵＡＲＴ〜ＵＳＢ変換デバイスが商品化されている。以下ＵＡＲＴ〜ＵＳＢ変換デバイスの例を説明する。
【０００３】
図５はＵＡＲＴ〜ＵＳＢ変換デバイスの構成の一例である。図５において、ＵＡＲＴ〜ＵＳＢ変換デバイス１０は、転送元機器２０と転送先機器３０との間に接続されてデータ転送装置を構成している。
転送元機器２０は、データの転送要求を発生するアプリケーション部２１と、アプリケーション部２１からのデータ転送要求に基づいてＵＡＲＴ（調歩同期）でデータ送信を行うシリアルインターフェイス処理部（ＳＩＯ）２２を備えている。
【０００４】
ＵＡＲＴ〜ＵＳＢ変換デバイス１０は、シリアルインタ―フェイス処理部（ＳＩＯ）２２より転送されたデータを受けるＦＩＦＯ（First-In First-Out）部１１と、ＦＩＦＯ部１１に到着したデータを直接授受するＤＭＡ（Direct Memory Access）部１２と、データをバッファリングする複数のＵＳＢ送信用バッファ部（Ｘ−Ｂｕｆｆｅｒ、Ｙ−Ｂｕｆｆｅｒ）１３と、ＵＳＢ送信用バッファ部１３のデータ準備状況に応じてＵＳＢ送信用バッファ部１３のバッファを切り替えるＵＳＢバッファマネージャ１４と、転送先機器３０のホストコントローラ３１からの送信要求に応じてＵＳＢのエンドポイントにデータを送信する機能を持ったデバイスコントローラ１５を備えている。
【０００５】
転送先機器３０は、ＵＡＲＴ〜ＵＳＢ変換デバイス１０に対してＵＳＢのエンドポイントへ周期的にデータ送信要求を行うホストコントローラ３１と、エンドポイントに届いたデータを一時蓄積するデータバッファ３２と、一連のデータ転送完了時にデータバッファ３２からアプリケーション部３３へのデータ転送を行うＣＰＵ３４を備えている。
【０００６】
図６、図７は図５に示すデータ転送装置の基本動作を説明するためのタイムチャート図であり、上から下に時間が経過している。図の網掛け部と白抜きの矢印は、各構成部でのデータ転送動作を示している。また網掛けの模様の違いは説明の都合で設けているもので、一連のデータをＵＡＲＴ〜ＵＳＢ変換デバイス１０内のＵＳＢ送信用バッファ部（Ｘ−Ｂｕｆｆｅｒ、Ｙ−Ｂｕｆｆｅｒ）１３のサイズで区切ったものである。また転送先機器３０から左向きに出ている黒矢印は送信要求（ＩＮトークン）を示している。
【０００７】
以下、図６、図７を用いて図５のデータ転送装置の動作を説明する。
転送元機器２０では、アプリケーション部２１から一連のデータの送信要求があるとデ
ータの転送を開始する。転送されたデータは、ＵＡＲＴ〜ＵＳＢ変換デバイス１０内のＦＩＦＯ部１１およびＤＭＡ部１２を通じて、ＵＳＢ送信用バッファ部（Ｘ−Ｂｕｆｆｅｒ、Ｙ−Ｂｕｆｆｅｒ）１３へＤＭＡ転送される。ＤＭＡ転送先のバッファはＵＳＢバッファマネージャ１４により、バッファ中のデータが存在しない（即ち、ＵＳＢのエンドポイントへの送信準備ステータスが未完了となっているバッファ）いずれかのバッファが選択される。図２では、一連のデータの先頭データの受信バッファとしてＸ−Ｂｕｆｆｅｒが選択されている。
【０００８】
ＤＭＡ転送中にＤＭＡ転送先のバッファが一杯になると、ＵＳＢバッファマネージャ１４は、該バッファのステータスを受信完了に設定するとともに、受信バッファとして該バッファ（Ｘ−Ｂｕｆｆｅｒ）と異なるバッファ（Ｙ−Ｂｕｆｆｅｒ）を受信バッファとして選択する。
ステータスが受信完了となったバッファが存在するとき、ＵＳＢバッファマネージャ１４は、転送先機器３０より発行される送信要求（ＩＮトークン）に応じて、受信完了となったバッファ内のデータをパケット送信し、送信準備ステータスを未完了に戻す。
【０００９】
ＤＭＡ部１２よりのデータ転送が所定の時間ｔ１以上停止したとき、ＵＳＢバッファマネージャ１４は、転送元機器２０より転送された一連のデータの終端と判断して、ＤＭＡ部１２よりデータを転送中のバッファのステータスを受信完了に設定（図中☆のタイミング）する。また、ＵＳＢバッファマネージャ１４は、転送先機器３０より発行される送信要求（ＩＮトークン）に応じて、受信完了となったバッファ内のデータをパケット送信した後に、送信準備ステータスを未完了に戻す。
転送先機器３０のホストコントローラ３１は、ＵＡＲＴ〜ＵＳＢ変換デバイス１０より送信された一連のデータのパケットサイズが、ＵＡＲＴ〜ＵＳＢ変換デバイス１０内の各バッファのサイズより小さいとき、転送元機器２０より転送された一連のデータの終端と判断して、アプリケーション部３３へのデータ転送を行う。
【００１０】
上記の構成で一連のデータのサイズがＵＡＲＴ〜ＵＳＢ変換デバイス１０内の各バッファのサイズの倍数であるとき、一連のデータの終端を検出することが出来ない。それを回避するため、図７に示すように、転送先機器３０のホストコントローラ３１は、送信要求（ＩＮトークン）に対応するＵＡＲＴ〜ＵＳＢ変換デバイス１０よりのデータパケット送信が、所定の時間ｔ２以上の間ない場合、一連のデータの終端と判断して、アプリケーション部３３へのデータ転送を行う。図７はこの場合の動作例を示す。
【００１１】
上記動作において一連のデータをアプリケーション部３３へ転送する間、ホストコントローラ３１は送信要求（ＩＮトークン）の発行を行わない。これは、転送先機器３０に設けられる一連のデータを受信するためのデータバッファ３２が一つなのでバッファのデータをアプリケーション部３３へ転送する間は、ＵＡＲＴ〜ＵＳＢ変換デバイス１０よりのパケット受信用に該バッファを用いることが出来ないためである。
一連のデータとして送信されるデータのサイズは一般に大きいため、転送先機器３０に設けられる一連のデータを受信するためのデータバッファ３２は一つであるのが一般的である。
【００１２】
上記したデータ転送装置のほかに、マックスパケットサイズ毎にデータを転送する装置において、転送時にマックスパケットサイズ未満の未転送データを検出すると、ショートパケットとして送出するロジックを持ったデータ転送装置（特許文献１参照）、ＵＳＢ−ＯＴＧのプロトコル処理部ロジックでＵＳＢバスへの送信開始要求を、あらかじめ条件設定レジスタで設定された条件によって自動的に送出されるよう構成することにより、ＣＰＵによる逐次処理を不用とし、通信処理がＣＰＵにかける処理負荷を軽減するデータ転送装置（特許文献２参照）も知られている。
【００１３】
また、他のデータ転送装置として、転送レートの大きい高速周辺回路と、転送レートの小さい低速周辺回路が共通バッファを用いてデータを転送する回路において、共通バッファにあるデータ量が所定の値を超えてから、所定の時間経過後に低速周辺回路による転送要求が出力されることと、共通バッファにあるデータ量が所定の値を超えてから、所定の時間経過後に高速周辺回路の転送要求が前記所定の時間より短い時間後にデータ転送要求を出すデータ転送ロジックを有したデータ転送装置（特許文献３参照）も知られている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００４−０２１６１３号公報
【特許文献２】特開２００３−３１６７３５号公報
【特許文献３】Ｗ００４／１０２４０４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
上述のように、図示して説明したデータ転送装置において、ホストコントローラ３１が送信要求（ＩＮトークン）の発行を行っていないタイミングが存在するため、そのタイミングで転送元機器２０より、ＵＡＲＴ〜ＵＳＢ変換デバイス１０内のバッファサイズより大きなサイズ（概ねＵＡＲＴ〜ＵＳＢ変換デバイス１０のＦＩＦＯ部１１のサイズとＸ−Ｂｕｆｆｅｒ、Ｙ−Ｂｕｆｆｅｒのサイズを加えた値）のデータ転送要求があったとき、データの欠落が発生する。図８にこのようなデータ欠落の発生例を示す。図８の例では、転送元機器２０から２回目のデータ送信要求の転送データの一部が転送先機器３０に転送されず欠落している。
【００１６】
データの欠落を防止するため、ＵＡＲＴ〜ＵＳＢ変換デバイス１０のＦＩＦＯ部１１のサイズとＸ−Ｂｕｆｆｅｒ、Ｙ−Ｂｕｆｆｅｒのサイズを大きくする、もしくは転送先機器３０のデータバッファ３２を複数設けるなどの方法があるが、機器としてＵＡＲＴ〜ＵＳＢ変換デバイス１０やＵＳＢホストデバイスとして、汎用のデバイスが用いられることが多く、一般に自由にバッファサイズや構成を選択することは困難である。また専用でデバイスを作成する場合においても、バッファサイズを大きくとると回路規模が大きくなりコストアップを招くため好ましくない。
【００１７】
また、転送元機器２０でデータ送信要求が発生する毎に一定のウエイト（遅延要素）を挿入し、転送先機器３０のホストコントローラ３１がアプリケーション部３３へのデータ転送を完了するのを待つ方法もあるが、転送元機器２０のアプリケーション部２１で小さなサイズの転送要求が続けて発行されると、その全ての送信要求に対してウエイトが挿入されるためスループットが低下してしまい、実用性が損なわれる。
【００１８】
この発明は、上記問題を解決するためになされたものであり、スループットを大きく損なうことなく、データの欠落を回避するようにしたデータ転送装置を提供することを目的とするものである。
【課題を解決するための手段】
【００１９】
この発明のデータ転送装置は、データフロー制御機能を持たない第一のデータ転送手段と、第一のデータ転送手段で転送されたデータをバッファリングする複数のバッファと、第一のデータ転送手段より受信したデータ量が複数のバッファの１つのバッファのバッファサイズと等しくなったとき、もしくは第一のデータ転送手段からのデータ受信があらかじめ設定された所定の時間ｔ１以上行われなかったときに、バッファリング中のバッファのステータスを受信完了とし、第一のデータ転送手段より転送されるデータをバッファリ
ングするバッファを別のバッファに切り替えるバッファ制御手段と、受信側からデータの送信要求が発行され、送信要求の際にバッファ制御手段が設定するステータスが受信完了であれば、バッファに蓄積されたデータを受信側に転送する第二のデータ転送手段と、第二のデータ転送手段で転送されたデータをバッファリングするデータバッファと、第二のデータ転送手段より一度に受信したデータのサイズが、複数のバッファのバッファサイズより小さい場合、もしくはバッファ制御手段が設定するステータスがあらかじめ設定された所定の時間ｔ２以上受信完了とならない場合に、データバッファに蓄積されたデータを転送する第三のデータ転送手段を備え、第一のデータ転送手段は、一つ前のデータ転送要求によるデータ送信完了から次のデータ転送要求を受信するまでの時間が、あらかじめ設定された所定の時間ｔ３より大きいとき、所定の時間ｔ３経過したタイミングからあらかじめ設定された所定の時間ｔ４経過するまでの間データの転送を開始せず、その間に発生したデータ転送要求によるデータの転送開始を遅延する機能を持つようにしたものである。
【００２０】
また、この発明のデータ転送装置は、データフロー制御機能を持たない第一のデータ転送手段と、第一のデータ転送手段で転送されたデータをバッファリングする複数のバッファと、第一のデータ転送手段より受信したデータ量が複数のバッファの１つのバッファのバッファサイズと等しくなったとき、もしくは第一のデータ転送手段からのデータ受信があらかじめ設定された所定の時間ｔ１以上行われなかったときに、バッファリング中のバッファのステータスを受信完了とし、第一のデータ転送手段より転送されるデータをバッファリングするバッファを別のバッファに切り替えるバッファ制御手段と、受信側からデータの送信要求が発行され、送信要求の際にバッファ制御手段が設定するステータスが受信完了であれば、バッファに蓄積されたデータを受信側に転送する第二のデータ転送手段と、第二のデータ転送手段で転送されたデータをバッファリングするデータバッファと、第二のデータ転送手段より一度に受信したデータのサイズが、複数のバッファのバッファサイズより小さい場合、もしくはあらかじめ設定された所定の回数Ｎ以上送信要求を行ったにもかかわらず、バッファ制御手段が設定するステータスが受信完了とならない場合に、データバッファに蓄積されたデータを転送する第三のデータ転送手段を備え、第一のデータ転送手段は、一つ前のデータ転送要求によるデータ送信完了から次のデータ転送要求を受信するまでの時間が、あらかじめ設定された所定の時間ｔ３より大きいとき、所定の時間ｔ３経過したタイミングからあらかじめ設定された所定の時間ｔ４経過するまでの間データの転送を開始せず、その間に発生したデータ転送要求によるデータの転送開始を遅延する機能を持つようにしたものである。
【００２１】
また、この発明のデータ転送装置は、データフロー制御機能を持たない第一のデータ転送手段と、第一のデータ転送手段で転送されたデータをバッファリングする複数のバッファと、第一のデータ転送手段より受信したデータ量が複数のバッファの１つのバッファのバッファサイズと等しくなったとき、もしくは受信側からの送信要求を所定の回数Ｎ１受ける間に、第一のデータ転送手段からのデータ受信が無かったときに、バッファリング中のバッファのステータスを受信完了とし、第一のデータ転送手段より転送されるデータをバッファリングするバッファを別のバッファに切り替えるバッファ制御手段と、受信側からデータの送信要求が発行され、送信要求の際にバッファ制御手段が設定するステータスが受信完了であれば、バッファに蓄積されたデータを受信側に転送する第二のデータ転送手段と、第二のデータ転送手段で転送されたデータをバッファリングするデータバッファと、第二の転送手段より一度に受信したデータのサイズが、複数のバッファのバッファサイズより小さい場合、もしくは所定の回数Ｎ２以上送信要求を行ったにもかかわらず、バッファ制御手段が設定するステータスが受信完了とならない場合に、データバッファに蓄積されたデータを転送する第三のデータ転送手段を備え、第一のデータ転送手段は、一つ前のデータ転送要求によるデータ送信完了から次のデータ転送要求を受信するまでの時間が、あらかじめ設定された所定の時間ｔ３より大きいとき、所定の時間ｔ３経過したタイ
ミングからあらかじめ設定された所定の時間ｔ４経過するまでの間データの転送を開始せず、その間に発生したデータ転送要求によるデータの転送開始を遅延する機能を持つようにしたものである。
【発明の効果】
【００２２】
この発明によれば、第一のデータ転送手段からのデータ送信間隔が所定の時間ｔ３以上開くときは、次のデータの送信を遅らせるようにして、第三のデータ転送手段が受信データを転送している時の動作と、第一のデータ転送手段からのデータ送信動作のタイミングが重ならないようにしているから、転送タイミングの重複による転送データの欠落を防止することが出来る。
また、あらかじめ設定された所定の時間ｔ２、時間ｔ３の設定値として、所定の時間ｔ１と同じ値を用い、あらかじめ設定された所定の時間ｔ４の設定値として、第三のデータ転送手段が一度の転送に要する所要時間の最大値を用いることにより、遅延要素の挿入によるスループットの低下を最小限にすることができる。
【図面の簡単な説明】
【００２３】
【図１】この発明の実施の形態１によるデータ転送装置の概略図である。
【図２】この発明の実施の形態１によるデータ転送装置の動作を説明する図である。
【図３】この発明の実施の形態１によるデータ転送装置の他の動作を説明する図である。
【図４】この発明の実施の形態１によるデータ転送装置の第一のデータ転送手段の処理フローを示す図である。
【図５】一般のデータ転送装置の概略図である。
【図６】図５に示すデータ転送装置の動作を説明する図である。
【図７】図５に示すデータ転送装置の他の動作を説明する図である。
【図８】図５に示すデータ転送装置の不具合の動作例を説明する図である。
【発明を実施するための形態】
【００２４】
実施の形態１．
以下、この発明の実施の形態１におけるデータ転送装置について、図１〜図４に基づいて説明する。
図１はこの発明の実施形態のデータ転送装置の概略図を示し、図１において、ＵＡＲＴ〜ＵＳＢ変換デバイス１０は、転送元機器２０と転送先機器３０との間に接続されて使用される。
【００２５】
転送元機器２０は、データの転送要求を発生するアプリケーション部２１と、アプリケーション部２１からのデータ転送要求に基づいてＵＡＲＴ（調歩同期）でデータ送信を行うシリアルインターフェイス処理部（ＳＩＯ）２２を備えている。シリアルインターフェイス処理部（ＳＩＯ）２２には、アプリケーション部２１からデータ転送要求があったとしても、一つ前のデータ転送要求によるデータ送信完了から次のデータ転送要求を受信するまでの時間が、あらかじめ設定された所定の時間ｔ３より大きい場合は、データの転送開始を遅延する機能２２ａを有している。
【００２６】
ＵＡＲＴ〜ＵＳＢ変換デバイス１０は、シリアルインタ―フェイス処理部（ＳＩＯ）２２より転送されたデータを受けるＦＩＦＯ（First-In First-Out）部１１と、ＦＩＦＯ部１１に到着したデータを直接授受するＤＭＡ（Direct Memory Access）部１２と、データをバッファリングする複数のＵＳＢ送信用バッファ部（Ｘ−Ｂｕｆｆｅｒ、Ｙ−Ｂｕｆｆｅｒ）１３と、ＦＩＦＯ部１１に記憶されているデータをＵＳＢ送信用バッファ部１３の一方のバッファ（例えばＸ−Ｂｕｆｆｅｒ）に転送すると共に、その一方のバッファ（例えばＸ−Ｂｕｆｆｅｒ）が受信したデータ量がバッファサイズと等しくなったとき、もし
くはデータ受信があらかじめ設定された所定の時間ｔ１以上行われなかったときに、バッファリング中のバッファのステータスを受信完了とし、ＦＩＦＯ部１１より転送されるデータをバッファリングするバッファを別のバッファ（例えばY−Ｂｕｆｆｅｒ）に切り替
えるＵＳＢバッファマネージャ１４と、後述する転送先機器３０のホストコントローラ３１からの送信要求に応じてＵＳＢ送信用バッファ部１３にバッファされているデータをＵＳＢのエンドポイントに送信する機能を持ったＵＳＢデバイスコントローラ１５を備えている。
【００２７】
転送先機器３０は、ＵＡＲＴ〜ＵＳＢ変換デバイス１０に対してＵＳＢのエンドポイントへ周期的にデータ送信要求を行うホストコントローラ３１と、エンドポイントに届いたデータを一時蓄積するデータバッファ３２と、一連のデータ転送完了時にデータバッファ３２からアプリケーション部３３へのデータ転送を行うＣＰＵ３４を備えている。
【００２８】
上記構成において、転送元機器２０のシリアルインターフェイス処理部（ＳＩＯ）２２と、ＵＡＲＴ〜ＵＳＢ変換デバイス１０のＦＩＦＯ部１１とＤＭＡ部１２で第一のデータ転送手段を構成し、この第一のデータ転送手段はデータフロー制御機能を持たない。
なお、第一のデータ転送手段からのデータ送信間隔が所定の時間ｔ３以上開くときに、次のデータの送信を遅らせる遅延機能２２ａはシリアルインターフェイス処理部（ＳＩＯ）２２に設ける場合を説明したが、ＵＡＲＴ〜ＵＳＢ変換デバイス１０のＦＩＦＯ部１１またはＤＭＡ部１２に設けてもよい。
また、ＦＩＦＯ部１１は、受信データのキューイングを行なうバッファメモリとして動作するもので、このＦＩＦＯ部１１を省略して第一のデータ転送手段を構成してもよい。
また、ＵＡＲＴ〜ＵＳＢ変換デバイス１０にＤＭＡ部１２を用いた例を示しているが、この発明の構成においてＤＭＡ部１２は必ずしも必要ではなく、例えばＵＡＲＴ〜ＵＳＢ変換デバイス１０の駆動ソフトウェアなどにより転送するようにすれば省略可能である。
【００２９】
さらに、上記構成において、ＵＡＲＴ〜ＵＳＢ変換デバイス１０のＵＳＢデバイスコントローラ１５と、転送先機器３０のホストコントローラ３１で第二のデータ転送手段を構成している。この第二のデータ転送手段は、ホストコントローラ３１からＵＳＢデバイスコントローラ１５にデータの送信要求を発行し、送信要求の際にＵＳＢバッファマネージャ１４が設定するステータスが受信完了であれば、ＵＳＢ送信用バッファ部１３に蓄積されているデータを転送先機器３０のデータバッファ３２に転送する。
【００３０】
また、転送先機器３０のＣＰＵ３４は第三のデータ転送手段を構成している。この第三のデータ転送手段は、第二の転送手段より一度に受信したデータのサイズが、ＵＳＢ送信用バッファ部１３のバッファ（第一の転送手段でＦＩＦＯ部１１が用いられる場合はそのバッファを含む）より小さい場合、もしくはＵＳＢバッファマネージャ１４が設定するステータスがあらかじめ設定された所定の時間ｔ２以上、受信完了とならない場合に、ホストコントローラ３１の制御により、データバッファ３２に蓄積されたデータをアプリケーション部３３に転送する。
また、ＵＳＢバッファマネージャ１４は、複数のＵＳＢ送信用バッファ部１３のどのバッファにデータを蓄積するかの切り替え、およびバッファのステータス（データ受信完了、未完了など）を記憶しておくバッファ制御手段を構成している。
【００３１】
図２、図３はこの発明によるデータ転送装置の動作を説明するためのタイムチャート図であり、上から下に時間が経過している。図の網掛け部と白抜きの矢印は、各構成部でのデータ転送動作を示している。また網掛けの模様の違いは説明の都合で設けているもので、一連のデータをＵＡＲＴ〜ＵＳＢ変換デバイス１０内のＵＳＢ送信用バッファ部（Ｘ−Ｂｕｆｆｅｒ、Ｙ−Ｂｕｆｆｅｒ）１３のサイズで区切ったものである。また転送先機器３０から左向きに出ている黒矢印は送信要求（ＩＮトークン）を示している。
【００３２】
以下、図２、図３を用いてこの発明によるデータ転送装置の動作を説明する。
転送元機器２０では、アプリケーション部２１から一連のデータの送信要求（図中(1)
）がシリアルインターフェイス処理部（ＳＩＯ）２２にあると、シリアルインターフェイス処理部（ＳＩＯ）２２はデータの転送を開始する。転送されたデータは、ＵＡＲＴ〜ＵＳＢ変換デバイス１０内のＦＩＦＯ部１１およびＤＭＡ部１２を通じて、ＵＳＢ送信用バッファ部（Ｘ−Ｂｕｆｆｅｒ、Ｙ−Ｂｕｆｆｅｒ）１３へＤＭＡ転送される。ＤＭＡ転送先のバッファはＵＳＢバッファマネージャ１４により、バッファ中のデータが存在しない（即ちＵＳＢのエンドポイントへの送信準備ステータスが未完了となっているバッファ）いずれかのバッファが選択される。図２では転送元機器２０で発生する１回目のデータ送信要求に対応して送信されるデータの受信バッファとしてＸ−Ｂｕｆｆｅｒが選択されている。
【００３３】
また図２では、転送元機器２０で発生する２回目のデータ送信要求（図中(2)）に対応
して送信されるデータ受信中にＤＭＡ転送先のバッファ（Ｘ−Ｂｕｆｆｅｒ）が一杯になると（図中★のタイミング）、ＵＳＢバッファマネージャ１４が、該バッファのステータスを受信完了に設定するとともに、受信バッファとして該バッファと異なるバッファ（Ｙ−Ｂｕｆｆｅｒ）を受信バッファとして選択する。（図中(3)）
ステータスが受信完了となったバッファ（Ｘ−Ｂｕｆｆｅｒ）が存在するとき、転送先機器３０のホストコントローラ３１より発行される送信要求（ＩＮトークン）（図中(4)
）に応じて、ＵＳＢデバイスコントローラ１５は受信完了となったバッファ内のデータを転送先機器３０にパケット送信（図中(5)）する。一方、ＵＳＢバッファマネージャ１４
は、受信バッファの送信準備ステータスを未完了に戻す。
【００３４】
なお、２回目のデータ送信要求（図中(2)）が１回目の送信要求（図中(1)）の発生からあらかじめ設定された所定の時間ｔ３経過していなければ、シリアルインターフェイス処理部（ＳＩＯ）２２の遅延機能２２ａは働かず、シリアルインターフェイス処理部（ＳＩＯ）２２はウエイト（遅延要素）を挿入しない。
【００３５】
ＵＡＲＴ〜ＵＳＢ変換デバイス１０内でＤＭＡ部１２よりのデータ転送が所定の時間ｔ１以上停止したとき、ＵＳＢバッファマネージャ１４は、転送元機器２０より転送された一連のデータの終端と判断して、ＤＭＡ部１２よりデータを転送中のバッファのステータスを受信完了に設定（図中(6)☆のタイミング）する。転送先機器３０のホストコントロ
ーラ３１より発行される送信要求（ＩＮトークン）に応じて、ＵＳＢデバイスコントローラ１５は受信完了となったバッファ（Ｙ−Ｂｕｆｆｅｒ）内のデータを転送先機器３０にパケット送信する。一方、ＵＳＢバッファマネージャ１４は、受信バッファの送信準備ステータスを未完了に戻す。
【００３６】
転送先機器３０のホストコントローラ３１は、ＵＡＲＴ〜ＵＳＢ変換デバイス１０より送信されたパケットのサイズが、ＵＡＲＴ〜ＵＳＢ変換デバイス１０内の各バッファのサイズ（例えば、ＵＳＢ送信用バッファ部１３のバッファサイズ）より小さいとき、転送元機器２０より転送された一連のデータの終端と判断して、ＣＰＵ３４からアプリケーション部３３へのデータ転送を行う（図中(7)）。
【００３７】
上記の構成でＵＡＲＴ〜ＵＳＢ変換デバイス１０に蓄積されるデータのサイズが、ＵＡＲＴ〜ＵＳＢ変換デバイス１０内の各バッファのサイズの倍数であるとき、転送先機器３０は一連のデータの終端を検出することが出来ない。それを回避するため、図３の(8)に
示すように転送先機器３０のホストコントローラ３１は、送信要求（ＩＮトークン）に対応するＵＡＲＴ〜ＵＳＢ変換デバイス１０よりのデータパケット送信が、所定の時間ｔ２以上の間ない場合、一連のデータの終端と判断して、アプリケーション部３３へのデータ
転送を行う。
【００３８】
次にホストコントローラ３１が送信要求（ＩＮトークン）の発行を行っていないタイミングで、転送元機器２０より大きなサイズ（概ねＵＡＲＴ〜ＵＳＢ変換デバイス１０のＦＩＦＯ部１１のサイズとＸ−Ｂｕｆｆｅｒ、Ｙ−Ｂｕｆｆｅｒのサイズを加えた値）のデータ転送要求があったとき、データの欠落が発生するのを防ぐ方法について説明する。
この発明のデータ転送装置では、転送元機器２０からデータ送信が完了してから、次のデータ送信要求を受信するまでの時間が、あらかじめ設定された時間ｔ３より大きいとき、シリアルインターフェイス処理部（ＳＩＯ）２２は、その遅延機能２２ａによりウエイト（遅延要素）を挿入し、データ送信要求に対応したデータの送信を遅延するようにしている。
【００３９】
例えば、図２および図３に示すように、２回目の送信要求（図中(2)）によるデータ送
信完了から３回目のデータ送信要求（図中(9)）までの時間が、あらかじめ設定された所
定の時間ｔ３経過しておれば、シリアルインターフェイス処理部（ＳＩＯ）２２の遅延機能２２ａはウエイト（遅延要素）を挿入し、所定の時間ｔ３経過したタイミングから、あらかじめ設定された所定の時間ｔ４経過するまでの間、データの転送を開始せず、その間に発生したデータ転送要求によるデータの転送開始を遅延するようにしている。
【００４０】
図４はシリアルインターフェイス処理部（ＳＩＯ）２２のその時の処理フローを示している。この図４において、ステップＳ１はシリアルインターフェイス処理部（ＳＩＯ）２２がアプリケーション部２１からデータの送信要求を受ける処理である。ステップＳ２はシリアルインターフェイス処理部（ＳＩＯ）２２からデータ送信を完了してから、次のデータ送信要求を受信するまでの時間が、あらかじめ設定された時間ｔ３より大きいとき、遅延機能２２ａによりウエイト（遅延要素）を挿入して、送信タイミングを所定の時間ｔ４遅延してデータの転送開始を遅延処理する。このステップＳ２は次のデータ送信要求を受信するまでの時間が、あらかじめ設定された時間ｔ３より小さいときは遅延処理を行なわない。ステップＳ３はシリアルインターフェイス処理部（ＳＩＯ）２２からＵＡＲＴラインへのデータ送信処理である。
【００４１】
このように前のデータ送信完了から次のデータ送信要求を受信するまでの時間が、あらかじめ設定された時間ｔ３より大きいときにデータ送信処理を遅延することで、３回目のデータ送信要求（図中(9)）で転送したデータは、図２および図３に示すようにＵＡＲＴ
〜ＵＳＢ変換デバイス１０のＵＳＢ送信用バッファ部（Ｘ−Ｂｕｆｆｅｒ、Ｙ−Ｂｕｆｆｅｒ）１３にデータの欠落がない状態でバッファリングされ、さらに転送先機器３０のデータバッファ３２への転送、アプリケーション部３３への転送もデータの欠落が生じない。
【００４２】
上記した実施の形態１の発明によれば、転送先機器３０のＣＰＵ３４がアプリケーション部３３に受信データを転送中のように、転送先機器３０のホストコントローラ３１が送信要求（ＩＮトークン）の発行を行っていないタイミングに、転送元機器２０からデータ転送要求があったとしても、転送元機器２０からのデータの転送開始を遅延するようにして転送タイミングの重複を避けているため、ＵＡＲＴ〜ＵＳＢ変換デバイス１０内のバッファサイズ以上のデータ送信が行われなくなり、データ欠落を回避することが出来る。
【００４３】
また、上記した実施の形態１の発明において、あらかじめ設定された所定の時間ｔ２、ｔ３の設定値として、所定の時間ｔ１と同じ値を用い、あらかじめ設定された所定の時間ｔ４の設定値として、第三のデータ転送手段が一度の転送に要する所要時間の最大値を用いると、ウエイト（遅延要素）の挿入による転送レート（スループット）の低下を最小限に抑えることが出来る。
【００４４】
実施の形態２．
次にこの発明の実施の形態２のデータ転送装置について説明する。この実施の形態２のデータ転送装置の構成は図１と同じ構成である。
第三のデータ転送手段（ＣＰＵ３４）でアプリケーション部３３にデータを転送する場合、実施の形態１では、バッファ制御手段であるＵＳＢバッファマネージャ１４が設定するステータスがあらかじめ設定された所定の時間ｔ２以上受信完了とならない場合に、一連のデータの終端と判断してデータを転送していた。
【００４５】
しかし実施の形態２の発明は、転送先機器３０のホストコントローラ３１より発行される送信要求（ＩＮトークン）の発行時間間隔が、おおむね一定であれば、所定の時間ｔ２の時間計測の代替として、送信要求（ＩＮトークン）の発行回数を計数し、あらかじめ設定された所定の発行回数Ｎになれば受信完了のタイミングと判定するようにしたものである。その他の構成および動作は実施の形態１と同じであるので、その説明は省略する。
このように送信要求（ＩＮトークン）の発行回数が所定の回数Ｎになれば、第三のデータ転送手段（ＣＰＵ３４）によりアプリケーション部３３にデータを転送する。
この構成によれば、ＵＳＢバッファマネージャ１４にタイマを別途設けることなくタイミングを検出することができるので、機能を実現するに必要な回路規模を最小限に抑えることができる。
【００４６】
上記した実施の形態２の発明において、あらかじめ設定された所定の時間ｔ３の設定値として、所定の時間ｔ１を用い、所定の発行回数Ｎの設定値として、所定の時間ｔ１あたりに転送先機器３０から発行される送信要求（ＩＮトークン）の回数を用い、あらかじめ設定された所定の時間ｔ４の設定値として、第三のデータ転送手段が一度の転送に要する所要時間の最大値を用いると、ウエイト（遅延要素）の挿入による転送レートの低下を最小限に抑えることが出来る。
【００４７】
実施の形態３．
次にこの発明の実施の形態３のデータ転送装置について説明する。この実施の形態３のデータ転送装置の構成は図１と同じ構成である。
実施の形態１および実施の形態２の発明において、バッファ制御手段であるＵＳＢバッファマネージャ１４は、第一のデータ転送手段からＵＳＢ送信用バッファ部（Ｘ−Ｂｕｆｆｅｒ、Ｙ−Ｂｕｆｆｅｒ）１３へのデータ受信が、あらかじめ設定された所定の時間ｔ１以上行われなかったときに、バッファリング中のバッファのステータスを受信完了としていたが、実施の形態３の発明は、所定の時間ｔ１の時間計測の代替として、ホストコントローラ３１より発行される送信要求（ＩＮトークン）の発行回数を計数し、あらかじめ設定された所定の発行回数Ｎ１になればバッファのステータスを受信完了のタイミングと判定するようにしたものである。
【００４８】
また、実施の形態１の所定の時間ｔ２の時間計測の代替として、送信要求（ＩＮトークン）の発行回数を計数し、あらかじめ設定された所定の発行回数Ｎ２になれば受信完了のタイミングと判定するようにしたものである。
その他の構成および動作は実施の形態１或いは実施の形態２と同じであるので、その説明は省略する。
この構成によれば、ＵＳＢバッファマネージャ１４にタイマを別途設けることなくタイミングを検出することができるので、機能を実現するに必要な回路規模を最小限に抑えることができる。
【００４９】
上記した実施の形態３の発明において、あらかじめ設定された所定の回数Ｎ２として第二のデータ転送手段からの送信要求（ＩＮトークン）が所定の回数Ｎ１と同じ値を用い、
あらかじめ設定された所定の時間ｔ３の設定値として、第二のデータ転送手段からの送信要求が所定の回数Ｎ１発行される時間の最小値を用い、あらかじめ設定された所定の時間ｔ４の設定値として、第三のデータ転送手段が一度の転送に要する所要時間の最大値を用いると、ウエイト（遅延要素）の挿入による転送レートの低下を最小限に抑えることが出来る。
上述の構成において所定時間の計測には誤差が伴うため、所定の時間ｔ２、ｔ３や、所定の回数Ｎ１、Ｎ２の設定値を、検出時間の誤差マージンを考慮した設定値としても良い。
【符号の説明】
【００５０】
１０：ＵＡＲＴ〜ＵＳＢ変換デバイス      １１：ＦＩＦＯ（First-In First-Out）部
１２：ＤＭＡ（Direct Memory Access）部  １３：ＵＳＢ送信用バッファ部
１４ＵＳＢバッファマネージャ（バッファ制御手段）
１５：ＵＳＢデバイスコントローラ
２０：転送元機器                        ２１：アプリケーション部
２２：シリアルインターフェイス処理部（ＳＩＯ）    ２２ａ：遅延機能
３０：転送先機器                        ３１：ホストコントローラ
３２：データバッファ                    ３４：ＣＰＵ（第三のデータ転送手段）
【図１】
2011227757.tif 000003
【図２】
2011227757.tif 000004
【図３】
2011227757.tif 000005
【図４】
2011227757.tif 000006
【図５】
2011227757.tif 000007
【図６】
2011227757.tif 000008
【図７】
2011227757.tif 000009
【図８】
2011227757.tif 000010