JP5121876B2 - データ転送装置 - Google Patents

データ転送装置 Download PDF

Info

Publication number
JP5121876B2
JP5121876B2 JP2010097862A JP2010097862A JP5121876B2 JP 5121876 B2 JP5121876 B2 JP 5121876B2 JP 2010097862 A JP2010097862 A JP 2010097862A JP 2010097862 A JP2010097862 A JP 2010097862A JP 5121876 B2 JP5121876 B2 JP 5121876B2
Authority
JP
Japan
Prior art keywords
data
buffer
data transfer
transfer means
time
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.)
Active
Application number
JP2010097862A
Other languages
English (en)
Other versions
JP2011227757A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2010097862A priority Critical patent/JP5121876B2/ja
Publication of JP2011227757A publication Critical patent/JP2011227757A/ja
Application granted granted Critical
Publication of JP5121876B2 publication Critical patent/JP5121876B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Description

この発明は転送元機器にあるデータを転送先機器に転送するデータ転送装置に関するもので、特にそれぞれの機器のインターフェイスに互換性がない場合のデータ転送装置に関する。
近年、高速シリアルインターフェイスとしてUSB(Universal Serial Bus)が普及している。従来RS−232Cなどに見られるUART(Universal Asynchronous Receiver Transmitter)によるシリアル通信デバイスは高速で安定してデータ伝送の行えるUS
Bに置換えられる傾向にある。
UARTによるインターフェイスとUSBによるインターフェイスは互換性がないため、従来のUARTによるインターフェイスを装備した機器をUSBに接続することは出来ない。そのため従来のUARTによるインターフェイスを装備した機器からUSBインターフェイスを装備した機器にデータ転送する場合、互いのインターフェイスを接続するためのUART〜USB変換デバイスが商品化されている。以下UART〜USB変換デバイスの例を説明する。
図5はUART〜USB変換デバイスの構成の一例である。図5において、UART〜USB変換デバイス10は、転送元機器20と転送先機器30との間に接続されてデータ転送装置を構成している。
転送元機器20は、データの転送要求を発生するアプリケーション部21と、アプリケーション部21からのデータ転送要求に基づいてUART(調歩同期)でデータ送信を行うシリアルインターフェイス処理部(SIO)22を備えている。
UART〜USB変換デバイス10は、シリアルインタ―フェイス処理部(SIO)22より転送されたデータを受けるFIFO(First-In First-Out)部11と、FIFO部11に到着したデータを直接授受するDMA(Direct Memory Access)部12と、データをバッファリングする複数のUSB送信用バッファ部(X−Buffer、Y−Buffer)13と、USB送信用バッファ部13のデータ準備状況に応じてUSB送信用バッファ部13のバッファを切り替えるUSBバッファマネージャ14と、転送先機器30のホストコントローラ31からの送信要求に応じてUSBのエンドポイントにデータを送信する機能を持ったデバイスコントローラ15を備えている。
転送先機器30は、UART〜USB変換デバイス10に対してUSBのエンドポイントへ周期的にデータ送信要求を行うホストコントローラ31と、エンドポイントに届いたデータを一時蓄積するデータバッファ32と、一連のデータ転送完了時にデータバッファ32からアプリケーション部33へのデータ転送を行うCPU34を備えている。
図6、図7は図5に示すデータ転送装置の基本動作を説明するためのタイムチャート図であり、上から下に時間が経過している。図の網掛け部と白抜きの矢印は、各構成部でのデータ転送動作を示している。また網掛けの模様の違いは説明の都合で設けているもので、一連のデータをUART〜USB変換デバイス10内のUSB送信用バッファ部(X−Buffer、Y−Buffer)13のサイズで区切ったものである。また転送先機器30から左向きに出ている黒矢印は送信要求(INトークン)を示している。
以下、図6、図7を用いて図5のデータ転送装置の動作を説明する。
転送元機器20では、アプリケーション部21から一連のデータの送信要求があるとデ
ータの転送を開始する。転送されたデータは、UART〜USB変換デバイス10内のFIFO部11およびDMA部12を通じて、USB送信用バッファ部(X−Buffer、Y−Buffer)13へDMA転送される。DMA転送先のバッファはUSBバッファマネージャ14により、バッファ中のデータが存在しない(即ち、USBのエンドポイントへの送信準備ステータスが未完了となっているバッファ)いずれかのバッファが選択される。図2では、一連のデータの先頭データの受信バッファとしてX−Bufferが選択されている。
DMA転送中にDMA転送先のバッファが一杯になると、USBバッファマネージャ14は、該バッファのステータスを受信完了に設定するとともに、受信バッファとして該バッファ(X−Buffer)と異なるバッファ(Y−Buffer)を受信バッファとして選択する。
ステータスが受信完了となったバッファが存在するとき、USBバッファマネージャ14は、転送先機器30より発行される送信要求(INトークン)に応じて、受信完了となったバッファ内のデータをパケット送信し、送信準備ステータスを未完了に戻す。
DMA部12よりのデータ転送が所定の時間t以上停止したとき、USBバッファマネージャ14は、転送元機器20より転送された一連のデータの終端と判断して、DMA部12よりデータを転送中のバッファのステータスを受信完了に設定(図中☆のタイミング)する。また、USBバッファマネージャ14は、転送先機器30より発行される送信要求(INトークン)に応じて、受信完了となったバッファ内のデータをパケット送信した後に、送信準備ステータスを未完了に戻す。
転送先機器30のホストコントローラ31は、UART〜USB変換デバイス10より送信された一連のデータのパケットサイズが、UART〜USB変換デバイス10内の各バッファのサイズより小さいとき、転送元機器20より転送された一連のデータの終端と判断して、アプリケーション部33へのデータ転送を行う。
上記の構成で一連のデータのサイズがUART〜USB変換デバイス10内の各バッファのサイズの倍数であるとき、一連のデータの終端を検出することが出来ない。それを回避するため、図7に示すように、転送先機器30のホストコントローラ31は、送信要求(INトークン)に対応するUART〜USB変換デバイス10よりのデータパケット送信が、所定の時間t以上の間ない場合、一連のデータの終端と判断して、アプリケーション部33へのデータ転送を行う。図7はこの場合の動作例を示す。
上記動作において一連のデータをアプリケーション部33へ転送する間、ホストコントローラ31は送信要求(INトークン)の発行を行わない。これは、転送先機器30に設けられる一連のデータを受信するためのデータバッファ32が一つなのでバッファのデータをアプリケーション部33へ転送する間は、UART〜USB変換デバイス10よりのパケット受信用に該バッファを用いることが出来ないためである。
一連のデータとして送信されるデータのサイズは一般に大きいため、転送先機器30に設けられる一連のデータを受信するためのデータバッファ32は一つであるのが一般的である。
上記したデータ転送装置のほかに、マックスパケットサイズ毎にデータを転送する装置において、転送時にマックスパケットサイズ未満の未転送データを検出すると、ショートパケットとして送出するロジックを持ったデータ転送装置(特許文献1参照)、USB−OTGのプロトコル処理部ロジックでUSBバスへの送信開始要求を、あらかじめ条件設定レジスタで設定された条件によって自動的に送出されるよう構成することにより、CPUによる逐次処理を不用とし、通信処理がCPUにかける処理負荷を軽減するデータ転送装置(特許文献2参照)も知られている。
また、他のデータ転送装置として、転送レートの大きい高速周辺回路と、転送レートの小さい低速周辺回路が共通バッファを用いてデータを転送する回路において、共通バッファにあるデータ量が所定の値を超えてから、所定の時間経過後に低速周辺回路による転送要求が出力されることと、共通バッファにあるデータ量が所定の値を超えてから、所定の時間経過後に高速周辺回路の転送要求が前記所定の時間より短い時間後にデータ転送要求を出すデータ転送ロジックを有したデータ転送装置(特許文献3参照)も知られている。
特開2004−021613号公報 特開2003−316735号公報 W004/102404号公報
上述のように、図示して説明したデータ転送装置において、ホストコントローラ31が送信要求(INトークン)の発行を行っていないタイミングが存在するため、そのタイミングで転送元機器20より、UART〜USB変換デバイス10内のバッファサイズより大きなサイズ(概ねUART〜USB変換デバイス10のFIFO部11のサイズとX−Buffer、Y−Bufferのサイズを加えた値)のデータ転送要求があったとき、データの欠落が発生する。図8にこのようなデータ欠落の発生例を示す。図8の例では、転送元機器20から2回目のデータ送信要求の転送データの一部が転送先機器30に転送されず欠落している。
データの欠落を防止するため、UART〜USB変換デバイス10のFIFO部11のサイズとX−Buffer、Y−Bufferのサイズを大きくする、もしくは転送先機器30のデータバッファ32を複数設けるなどの方法があるが、機器としてUART〜USB変換デバイス10やUSBホストデバイスとして、汎用のデバイスが用いられることが多く、一般に自由にバッファサイズや構成を選択することは困難である。また専用でデバイスを作成する場合においても、バッファサイズを大きくとると回路規模が大きくなりコストアップを招くため好ましくない。
また、転送元機器20でデータ送信要求が発生する毎に一定のウエイト(遅延要素)を挿入し、転送先機器30のホストコントローラ31がアプリケーション部33へのデータ転送を完了するのを待つ方法もあるが、転送元機器20のアプリケーション部21で小さなサイズの転送要求が続けて発行されると、その全ての送信要求に対してウエイトが挿入されるためスループットが低下してしまい、実用性が損なわれる。
この発明は、上記問題を解決するためになされたものであり、スループットを大きく損なうことなく、データの欠落を回避するようにしたデータ転送装置を提供することを目的とするものである。
この発明のデータ転送装置は、データフロー制御機能を持たない第一のデータ転送手段と、第一のデータ転送手段で転送されたデータをバッファリングする複数のバッファと、第一のデータ転送手段より受信したデータ量が複数のバッファの1つのバッファのバッファサイズと等しくなったとき、もしくは第一のデータ転送手段からのデータ受信があらかじめ設定された所定の時間t以上行われなかったときに、バッファリング中のバッファのステータスを受信完了とし、第一のデータ転送手段より転送されるデータをバッファリ
ングするバッファを別のバッファに切り替えるバッファ制御手段と、受信側からデータの送信要求が発行され、送信要求の際にバッファ制御手段が設定するステータスが受信完了であれば、バッファに蓄積されたデータを受信側に転送する第二のデータ転送手段と、第二のデータ転送手段で転送されたデータをバッファリングするデータバッファと、第二のデータ転送手段より一度に受信したデータのサイズが、複数のバッファのバッファサイズより小さい場合、もしくはバッファ制御手段が設定するステータスがあらかじめ設定された所定の時間t以上受信完了とならない場合に、データバッファに蓄積されたデータを転送する第三のデータ転送手段を備え、第一のデータ転送手段は、一つ前のデータ転送要求によるデータ送信完了から次のデータ転送要求を受信するまでの時間が、あらかじめ設定された所定の時間tより大きいとき、所定の時間t経過したタイミングからあらかじめ設定された所定の時間t経過するまでの間データの転送を開始せず、その間に発生したデータ転送要求によるデータの転送開始を遅延する機能を持つようにしたものである。
また、この発明のデータ転送装置は、データフロー制御機能を持たない第一のデータ転送手段と、第一のデータ転送手段で転送されたデータをバッファリングする複数のバッファと、第一のデータ転送手段より受信したデータ量が複数のバッファの1つのバッファのバッファサイズと等しくなったとき、もしくは第一のデータ転送手段からのデータ受信があらかじめ設定された所定の時間t以上行われなかったときに、バッファリング中のバッファのステータスを受信完了とし、第一のデータ転送手段より転送されるデータをバッファリングするバッファを別のバッファに切り替えるバッファ制御手段と、受信側からデータの送信要求が発行され、送信要求の際にバッファ制御手段が設定するステータスが受信完了であれば、バッファに蓄積されたデータを受信側に転送する第二のデータ転送手段と、第二のデータ転送手段で転送されたデータをバッファリングするデータバッファと、第二のデータ転送手段より一度に受信したデータのサイズが、複数のバッファのバッファサイズより小さい場合、もしくはあらかじめ設定された所定の回数N以上送信要求を行ったにもかかわらず、バッファ制御手段が設定するステータスが受信完了とならない場合に、データバッファに蓄積されたデータを転送する第三のデータ転送手段を備え、第一のデータ転送手段は、一つ前のデータ転送要求によるデータ送信完了から次のデータ転送要求を受信するまでの時間が、あらかじめ設定された所定の時間tより大きいとき、所定の時間t経過したタイミングからあらかじめ設定された所定の時間t経過するまでの間データの転送を開始せず、その間に発生したデータ転送要求によるデータの転送開始を遅延する機能を持つようにしたものである。
また、この発明のデータ転送装置は、データフロー制御機能を持たない第一のデータ転送手段と、第一のデータ転送手段で転送されたデータをバッファリングする複数のバッファと、第一のデータ転送手段より受信したデータ量が複数のバッファの1つのバッファのバッファサイズと等しくなったとき、もしくは受信側からの送信要求を所定の回数N受ける間に、第一のデータ転送手段からのデータ受信が無かったときに、バッファリング中のバッファのステータスを受信完了とし、第一のデータ転送手段より転送されるデータをバッファリングするバッファを別のバッファに切り替えるバッファ制御手段と、受信側からデータの送信要求が発行され、送信要求の際にバッファ制御手段が設定するステータスが受信完了であれば、バッファに蓄積されたデータを受信側に転送する第二のデータ転送手段と、第二のデータ転送手段で転送されたデータをバッファリングするデータバッファと、第二の転送手段より一度に受信したデータのサイズが、複数のバッファのバッファサイズより小さい場合、もしくは所定の回数N以上送信要求を行ったにもかかわらず、バッファ制御手段が設定するステータスが受信完了とならない場合に、データバッファに蓄積されたデータを転送する第三のデータ転送手段を備え、第一のデータ転送手段は、一つ前のデータ転送要求によるデータ送信完了から次のデータ転送要求を受信するまでの時間が、あらかじめ設定された所定の時間tより大きいとき、所定の時間t経過したタイ
ミングからあらかじめ設定された所定の時間t経過するまでの間データの転送を開始せず、その間に発生したデータ転送要求によるデータの転送開始を遅延する機能を持つようにしたものである。
この発明によれば、第一のデータ転送手段からのデータ送信間隔が所定の時間t以上開くときは、次のデータの送信を遅らせるようにして、第三のデータ転送手段が受信データを転送している時の動作と、第一のデータ転送手段からのデータ送信動作のタイミングが重ならないようにしているから、転送タイミングの重複による転送データの欠落を防止することが出来る。
また、あらかじめ設定された所定の時間t、時間tの設定値として、所定の時間tと同じ値を用い、あらかじめ設定された所定の時間tの設定値として、第三のデータ転送手段が一度の転送に要する所要時間の最大値を用いることにより、遅延要素の挿入によるスループットの低下を最小限にすることができる。
この発明の実施の形態1によるデータ転送装置の概略図である。 この発明の実施の形態1によるデータ転送装置の動作を説明する図である。 この発明の実施の形態1によるデータ転送装置の他の動作を説明する図である。 この発明の実施の形態1によるデータ転送装置の第一のデータ転送手段の処理フローを示す図である。 一般のデータ転送装置の概略図である。 図5に示すデータ転送装置の動作を説明する図である。 図5に示すデータ転送装置の他の動作を説明する図である。 図5に示すデータ転送装置の不具合の動作例を説明する図である。
実施の形態1.
以下、この発明の実施の形態1におけるデータ転送装置について、図1〜図4に基づいて説明する。
図1はこの発明の実施形態のデータ転送装置の概略図を示し、図1において、UART〜USB変換デバイス10は、転送元機器20と転送先機器30との間に接続されて使用される。
転送元機器20は、データの転送要求を発生するアプリケーション部21と、アプリケーション部21からのデータ転送要求に基づいてUART(調歩同期)でデータ送信を行うシリアルインターフェイス処理部(SIO)22を備えている。シリアルインターフェイス処理部(SIO)22には、アプリケーション部21からデータ転送要求があったとしても、一つ前のデータ転送要求によるデータ送信完了から次のデータ転送要求を受信するまでの時間が、あらかじめ設定された所定の時間tより大きい場合は、データの転送開始を遅延する機能22aを有している。
UART〜USB変換デバイス10は、シリアルインタ―フェイス処理部(SIO)22より転送されたデータを受けるFIFO(First-In First-Out)部11と、FIFO部11に到着したデータを直接授受するDMA(Direct Memory Access)部12と、データをバッファリングする複数のUSB送信用バッファ部(X−Buffer、Y−Buffer)13と、FIFO部11に記憶されているデータをUSB送信用バッファ部13の一方のバッファ(例えばX−Buffer)に転送すると共に、その一方のバッファ(例えばX−Buffer)が受信したデータ量がバッファサイズと等しくなったとき、もし
くはデータ受信があらかじめ設定された所定の時間t以上行われなかったときに、バッファリング中のバッファのステータスを受信完了とし、FIFO部11より転送されるデータをバッファリングするバッファを別のバッファ(例えばY−Buffer)に切り替
えるUSBバッファマネージャ14と、後述する転送先機器30のホストコントローラ31からの送信要求に応じてUSB送信用バッファ部13にバッファされているデータをUSBのエンドポイントに送信する機能を持ったUSBデバイスコントローラ15を備えている。
転送先機器30は、UART〜USB変換デバイス10に対してUSBのエンドポイントへ周期的にデータ送信要求を行うホストコントローラ31と、エンドポイントに届いたデータを一時蓄積するデータバッファ32と、一連のデータ転送完了時にデータバッファ32からアプリケーション部33へのデータ転送を行うCPU34を備えている。
上記構成において、転送元機器20のシリアルインターフェイス処理部(SIO)22と、UART〜USB変換デバイス10のFIFO部11とDMA部12で第一のデータ転送手段を構成し、この第一のデータ転送手段はデータフロー制御機能を持たない。
なお、第一のデータ転送手段からのデータ送信間隔が所定の時間t以上開くときに、次のデータの送信を遅らせる遅延機能22aはシリアルインターフェイス処理部(SIO)22に設ける場合を説明したが、UART〜USB変換デバイス10のFIFO部11またはDMA部12に設けてもよい。
また、FIFO部11は、受信データのキューイングを行なうバッファメモリとして動作するもので、このFIFO部11を省略して第一のデータ転送手段を構成してもよい。
また、UART〜USB変換デバイス10にDMA部12を用いた例を示しているが、この発明の構成においてDMA部12は必ずしも必要ではなく、例えばUART〜USB変換デバイス10の駆動ソフトウェアなどにより転送するようにすれば省略可能である。
さらに、上記構成において、UART〜USB変換デバイス10のUSBデバイスコントローラ15と、転送先機器30のホストコントローラ31で第二のデータ転送手段を構成している。この第二のデータ転送手段は、ホストコントローラ31からUSBデバイスコントローラ15にデータの送信要求を発行し、送信要求の際にUSBバッファマネージャ14が設定するステータスが受信完了であれば、USB送信用バッファ部13に蓄積されているデータを転送先機器30のデータバッファ32に転送する。
また、転送先機器30のCPU34は第三のデータ転送手段を構成している。この第三のデータ転送手段は、第二の転送手段より一度に受信したデータのサイズが、USB送信用バッファ部13のバッファ(第一の転送手段でFIFO部11が用いられる場合はそのバッファを含む)より小さい場合、もしくはUSBバッファマネージャ14が設定するステータスがあらかじめ設定された所定の時間t以上、受信完了とならない場合に、ホストコントローラ31の制御により、データバッファ32に蓄積されたデータをアプリケーション部33に転送する。
また、USBバッファマネージャ14は、複数のUSB送信用バッファ部13のどのバッファにデータを蓄積するかの切り替え、およびバッファのステータス(データ受信完了、未完了など)を記憶しておくバッファ制御手段を構成している。
図2、図3はこの発明によるデータ転送装置の動作を説明するためのタイムチャート図であり、上から下に時間が経過している。図の網掛け部と白抜きの矢印は、各構成部でのデータ転送動作を示している。また網掛けの模様の違いは説明の都合で設けているもので、一連のデータをUART〜USB変換デバイス10内のUSB送信用バッファ部(X−Buffer、Y−Buffer)13のサイズで区切ったものである。また転送先機器30から左向きに出ている黒矢印は送信要求(INトークン)を示している。
以下、図2、図3を用いてこの発明によるデータ転送装置の動作を説明する。
転送元機器20では、アプリケーション部21から一連のデータの送信要求(図中(1)
)がシリアルインターフェイス処理部(SIO)22にあると、シリアルインターフェイス処理部(SIO)22はデータの転送を開始する。転送されたデータは、UART〜USB変換デバイス10内のFIFO部11およびDMA部12を通じて、USB送信用バッファ部(X−Buffer、Y−Buffer)13へDMA転送される。DMA転送先のバッファはUSBバッファマネージャ14により、バッファ中のデータが存在しない(即ちUSBのエンドポイントへの送信準備ステータスが未完了となっているバッファ)いずれかのバッファが選択される。図2では転送元機器20で発生する1回目のデータ送信要求に対応して送信されるデータの受信バッファとしてX−Bufferが選択されている。
また図2では、転送元機器20で発生する2回目のデータ送信要求(図中(2))に対応
して送信されるデータ受信中にDMA転送先のバッファ(X−Buffer)が一杯になると(図中★のタイミング)、USBバッファマネージャ14が、該バッファのステータスを受信完了に設定するとともに、受信バッファとして該バッファと異なるバッファ(Y−Buffer)を受信バッファとして選択する。(図中(3))
ステータスが受信完了となったバッファ(X−Buffer)が存在するとき、転送先機器30のホストコントローラ31より発行される送信要求(INトークン)(図中(4)
)に応じて、USBデバイスコントローラ15は受信完了となったバッファ内のデータを転送先機器30にパケット送信(図中(5))する。一方、USBバッファマネージャ14
は、受信バッファの送信準備ステータスを未完了に戻す。
なお、2回目のデータ送信要求(図中(2))が1回目の送信要求(図中(1))の発生からあらかじめ設定された所定の時間t経過していなければ、シリアルインターフェイス処理部(SIO)22の遅延機能22aは働かず、シリアルインターフェイス処理部(SIO)22はウエイト(遅延要素)を挿入しない。
UART〜USB変換デバイス10内でDMA部12よりのデータ転送が所定の時間t以上停止したとき、USBバッファマネージャ14は、転送元機器20より転送された一連のデータの終端と判断して、DMA部12よりデータを転送中のバッファのステータスを受信完了に設定(図中(6)☆のタイミング)する。転送先機器30のホストコントロ
ーラ31より発行される送信要求(INトークン)に応じて、USBデバイスコントローラ15は受信完了となったバッファ(Y−Buffer)内のデータを転送先機器30にパケット送信する。一方、USBバッファマネージャ14は、受信バッファの送信準備ステータスを未完了に戻す。
転送先機器30のホストコントローラ31は、UART〜USB変換デバイス10より送信されたパケットのサイズが、UART〜USB変換デバイス10内の各バッファのサイズ(例えば、USB送信用バッファ部13のバッファサイズ)より小さいとき、転送元機器20より転送された一連のデータの終端と判断して、CPU34からアプリケーション部33へのデータ転送を行う(図中(7))。
上記の構成でUART〜USB変換デバイス10に蓄積されるデータのサイズが、UART〜USB変換デバイス10内の各バッファのサイズの倍数であるとき、転送先機器30は一連のデータの終端を検出することが出来ない。それを回避するため、図3の(8)に
示すように転送先機器30のホストコントローラ31は、送信要求(INトークン)に対応するUART〜USB変換デバイス10よりのデータパケット送信が、所定の時間t以上の間ない場合、一連のデータの終端と判断して、アプリケーション部33へのデータ
転送を行う。
次にホストコントローラ31が送信要求(INトークン)の発行を行っていないタイミングで、転送元機器20より大きなサイズ(概ねUART〜USB変換デバイス10のFIFO部11のサイズとX−Buffer、Y−Bufferのサイズを加えた値)のデータ転送要求があったとき、データの欠落が発生するのを防ぐ方法について説明する。
この発明のデータ転送装置では、転送元機器20からデータ送信が完了してから、次のデータ送信要求を受信するまでの時間が、あらかじめ設定された時間tより大きいとき、シリアルインターフェイス処理部(SIO)22は、その遅延機能22aによりウエイト(遅延要素)を挿入し、データ送信要求に対応したデータの送信を遅延するようにしている。
例えば、図2および図3に示すように、2回目の送信要求(図中(2))によるデータ送
信完了から3回目のデータ送信要求(図中(9))までの時間が、あらかじめ設定された所
定の時間t経過しておれば、シリアルインターフェイス処理部(SIO)22の遅延機能22aはウエイト(遅延要素)を挿入し、所定の時間t経過したタイミングから、あらかじめ設定された所定の時間t経過するまでの間、データの転送を開始せず、その間に発生したデータ転送要求によるデータの転送開始を遅延するようにしている。
図4はシリアルインターフェイス処理部(SIO)22のその時の処理フローを示している。この図4において、ステップS1はシリアルインターフェイス処理部(SIO)22がアプリケーション部21からデータの送信要求を受ける処理である。ステップS2はシリアルインターフェイス処理部(SIO)22からデータ送信を完了してから、次のデータ送信要求を受信するまでの時間が、あらかじめ設定された時間tより大きいとき、遅延機能22aによりウエイト(遅延要素)を挿入して、送信タイミングを所定の時間t遅延してデータの転送開始を遅延処理する。このステップS2は次のデータ送信要求を受信するまでの時間が、あらかじめ設定された時間tより小さいときは遅延処理を行なわない。ステップS3はシリアルインターフェイス処理部(SIO)22からUARTラインへのデータ送信処理である。
このように前のデータ送信完了から次のデータ送信要求を受信するまでの時間が、あらかじめ設定された時間tより大きいときにデータ送信処理を遅延することで、3回目のデータ送信要求(図中(9))で転送したデータは、図2および図3に示すようにUART
〜USB変換デバイス10のUSB送信用バッファ部(X−Buffer、Y−Buffer)13にデータの欠落がない状態でバッファリングされ、さらに転送先機器30のデータバッファ32への転送、アプリケーション部33への転送もデータの欠落が生じない。
上記した実施の形態1の発明によれば、転送先機器30のCPU34がアプリケーション部33に受信データを転送中のように、転送先機器30のホストコントローラ31が送信要求(INトークン)の発行を行っていないタイミングに、転送元機器20からデータ転送要求があったとしても、転送元機器20からのデータの転送開始を遅延するようにして転送タイミングの重複を避けているため、UART〜USB変換デバイス10内のバッファサイズ以上のデータ送信が行われなくなり、データ欠落を回避することが出来る。
また、上記した実施の形態1の発明において、あらかじめ設定された所定の時間t、tの設定値として、所定の時間tと同じ値を用い、あらかじめ設定された所定の時間tの設定値として、第三のデータ転送手段が一度の転送に要する所要時間の最大値を用いると、ウエイト(遅延要素)の挿入による転送レート(スループット)の低下を最小限に抑えることが出来る。
実施の形態2.
次にこの発明の実施の形態2のデータ転送装置について説明する。この実施の形態2のデータ転送装置の構成は図1と同じ構成である。
第三のデータ転送手段(CPU34)でアプリケーション部33にデータを転送する場合、実施の形態1では、バッファ制御手段であるUSBバッファマネージャ14が設定するステータスがあらかじめ設定された所定の時間t以上受信完了とならない場合に、一連のデータの終端と判断してデータを転送していた。
しかし実施の形態2の発明は、転送先機器30のホストコントローラ31より発行される送信要求(INトークン)の発行時間間隔が、おおむね一定であれば、所定の時間tの時間計測の代替として、送信要求(INトークン)の発行回数を計数し、あらかじめ設定された所定の発行回数Nになれば受信完了のタイミングと判定するようにしたものである。その他の構成および動作は実施の形態1と同じであるので、その説明は省略する。
このように送信要求(INトークン)の発行回数が所定の回数Nになれば、第三のデータ転送手段(CPU34)によりアプリケーション部33にデータを転送する。
この構成によれば、USBバッファマネージャ14にタイマを別途設けることなくタイミングを検出することができるので、機能を実現するに必要な回路規模を最小限に抑えることができる。
上記した実施の形態2の発明において、あらかじめ設定された所定の時間tの設定値として、所定の時間tを用い、所定の発行回数Nの設定値として、所定の時間tあたりに転送先機器30から発行される送信要求(INトークン)の回数を用い、あらかじめ設定された所定の時間tの設定値として、第三のデータ転送手段が一度の転送に要する所要時間の最大値を用いると、ウエイト(遅延要素)の挿入による転送レートの低下を最小限に抑えることが出来る。
実施の形態3.
次にこの発明の実施の形態3のデータ転送装置について説明する。この実施の形態3のデータ転送装置の構成は図1と同じ構成である。
実施の形態1および実施の形態2の発明において、バッファ制御手段であるUSBバッファマネージャ14は、第一のデータ転送手段からUSB送信用バッファ部(X−Buffer、Y−Buffer)13へのデータ受信が、あらかじめ設定された所定の時間t以上行われなかったときに、バッファリング中のバッファのステータスを受信完了としていたが、実施の形態3の発明は、所定の時間tの時間計測の代替として、ホストコントローラ31より発行される送信要求(INトークン)の発行回数を計数し、あらかじめ設定された所定の発行回数Nになればバッファのステータスを受信完了のタイミングと判定するようにしたものである。
また、実施の形態1の所定の時間tの時間計測の代替として、送信要求(INトークン)の発行回数を計数し、あらかじめ設定された所定の発行回数Nになれば受信完了のタイミングと判定するようにしたものである。
その他の構成および動作は実施の形態1或いは実施の形態2と同じであるので、その説明は省略する。
この構成によれば、USBバッファマネージャ14にタイマを別途設けることなくタイミングを検出することができるので、機能を実現するに必要な回路規模を最小限に抑えることができる。
上記した実施の形態3の発明において、あらかじめ設定された所定の回数Nとして第二のデータ転送手段からの送信要求(INトークン)が所定の回数Nと同じ値を用い、
あらかじめ設定された所定の時間tの設定値として、第二のデータ転送手段からの送信要求が所定の回数N発行される時間の最小値を用い、あらかじめ設定された所定の時間tの設定値として、第三のデータ転送手段が一度の転送に要する所要時間の最大値を用いると、ウエイト(遅延要素)の挿入による転送レートの低下を最小限に抑えることが出来る。
上述の構成において所定時間の計測には誤差が伴うため、所定の時間t、tや、所定の回数N、Nの設定値を、検出時間の誤差マージンを考慮した設定値としても良い。
10:UART〜USB変換デバイス 11:FIFO(First-In First-Out)部
12:DMA(Direct Memory Access)部 13:USB送信用バッファ部
14USBバッファマネージャ(バッファ制御手段)
15:USBデバイスコントローラ
20:転送元機器 21:アプリケーション部
22:シリアルインターフェイス処理部(SIO) 22a:遅延機能
30:転送先機器 31:ホストコントローラ
32:データバッファ 34:CPU(第三のデータ転送手段)

Claims (6)

  1. データフロー制御機能を持たない第一のデータ転送手段と、前記第一のデータ転送手段で転送されたデータをバッファリングする複数のバッファと、前記第一のデータ転送手段より受信したデータ量が前記複数のバッファの1つのバッファのバッファサイズと等しくなったとき、もしくは前記第一のデータ転送手段からのデータ受信があらかじめ設定された所定の時間t以上行われなかったときに、バッファリング中のバッファのステータスを受信完了とし、前記第一のデータ転送手段より転送されるデータをバッファリングするバッファを別のバッファに切り替えるバッファ制御手段と、受信側からデータの送信要求が発行され、前記送信要求の際に前記バッファ制御手段が設定するステータスが受信完了であれば、前記バッファに蓄積されたデータを受信側に転送する第二のデータ転送手段と、前記第二のデータ転送手段で転送されたデータをバッファリングするデータバッファと、前記第二のデータ転送手段より一度に受信したデータのサイズが、前記複数のバッファのバッファサイズより小さい場合、もしくは前記バッファ制御手段が設定するステータスがあらかじめ設定された所定の時間t以上受信完了とならない場合に、前記データバッファに蓄積されたデータを転送する第三のデータ転送手段を備え、
    前記第一のデータ転送手段は、一つ前のデータ転送要求によるデータ送信完了から次のデータ転送要求を受信するまでの時間が、あらかじめ設定された所定の時間tより大きいとき、前記所定の時間t経過したタイミングからあらかじめ設定された所定の時間t経過するまでの間データの転送を開始せず、その間に発生したデータ転送要求によるデータの転送開始を遅延する機能を持つことを特徴とするデータ転送装置。
  2. 前記所定の時間t、時間tの設定値として、前記所定の時間tと同じ値を用い、前記所定の時間tの設定値として、前記第三のデータ転送手段が一度の転送に要する所要時間の最大値を用いることを特徴とする請求項1に記載のデータ転送装置。
  3. データフロー制御機能を持たない第一のデータ転送手段と、前記第一のデータ転送手段で転送されたデータをバッファリングする複数のバッファと、前記第一のデータ転送手段より受信したデータ量が前記複数のバッファの1つのバッファのバッファサイズと等しくなったとき、もしくは前記第一のデータ転送手段からのデータ受信があらかじめ設定された所定の時間t以上行われなかったときに、バッファリング中のバッファのステータスを受信完了とし、前記第一のデータ転送手段より転送されるデータをバッファリングするバッファを別のバッファに切り替えるバッファ制御手段と、受信側からデータの送信要求が発行され、前記送信要求の際に前記バッファ制御手段が設定するステータスが受信完了であれば、前記バッファに蓄積されたデータを受信側に転送する第二のデータ転送手段と、前記第二のデータ転送手段で転送されたデータをバッファリングするデータバッファと、前記第二のデータ転送手段より一度に受信したデータのサイズが、前記複数のバッファのバッファサイズより小さい場合、もしくはあらかじめ設定された所定の回数N以上送信要求を行ったにもかかわらず、前記バッファ制御手段が設定するステータスが受信完了とならない場合に、前記データバッファに蓄積されたデータを転送する第三のデータ転送手段を備え、
    前記第一のデータ転送手段は、一つ前のデータ転送要求によるデータ送信完了から次のデータ転送要求を受信するまでの時間が、あらかじめ設定された所定の時間tより大きいとき、前記所定の時間t経過したタイミングからあらかじめ設定された所定の時間t経過するまでの間データの転送を開始せず、その間に発生したデータ転送要求によるデータの転送開始を遅延する機能を持つことを特徴とするデータ転送装置。
  4. 前記所定の時間tの設定値として、前記所定の時間tと同じ値を用い、前記所定の回数Nの設定値として、前記所定の時間tあたりに受信側から発行される送信要求の回数を用い、前記所定の時間tの設定値として、前記第三のデータ転送手段が一度の転送
    に要する所要時間の最大値を用いることを特徴とする請求項3に記載のデータ転送装置。
  5. データフロー制御機能を持たない第一のデータ転送手段と、前記第一のデータ転送手段で転送されたデータをバッファリングする複数のバッファと、前記第一のデータ転送手段より受信したデータ量が前記複数のバッファの1つのバッファのバッファサイズと等しくなったとき、もしくは受信側からの送信要求を所定の回数N受ける間に、前記第一のデータ転送手段からのデータ受信が無かったときに、バッファリング中のバッファのステータスを受信完了とし、前記第一のデータ転送手段より転送されるデータをバッファリングするバッファを別のバッファに切り替えるバッファ制御手段と、受信側からデータの送信要求が発行され、送信要求の際に前記バッファ制御手段が設定するステータスが受信完了であれば、前記バッファに蓄積されたデータを受信側に転送する第二のデータ転送手段と、前記第二のデータ転送手段で転送されたデータをバッファリングするデータバッファと、前記第二の転送手段より一度に受信したデータのサイズが、前記複数のバッファのバッファサイズより小さい場合、もしくは所定の回数N以上送信要求を行ったにもかかわらず、前記バッファ制御手段が設定するステータスが受信完了とならない場合に、前記データバッファに蓄積されたデータを転送する第三のデータ転送手段を備え、
    前記第一のデータ転送手段は、一つ前のデータ転送要求によるデータ送信完了から次のデータ転送要求を受信するまでの時間が、あらかじめ設定された所定の時間tより大きいとき、前記所定の時間t経過したタイミングからあらかじめ設定された所定の時間t経過するまでの間データの転送を開始せず、その間に発生したデータ転送要求によるデータの転送開始を遅延する機能を持つことを特徴とするデータ転送装置。
  6. 前記の所定の回数Nとして所定の回数Nと同じ値を用い、前記所定の時間tの設定値として前記所定の回数N発行される時間の最小値を用い、前記所定の時間tの設定値として、前記第三のデータ転送手段が一度の転送に要する所要時間の最大値を用いることを特徴とする請求項5に記載のデータ転送装置。
JP2010097862A 2010-04-21 2010-04-21 データ転送装置 Active JP5121876B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010097862A JP5121876B2 (ja) 2010-04-21 2010-04-21 データ転送装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010097862A JP5121876B2 (ja) 2010-04-21 2010-04-21 データ転送装置

Publications (2)

Publication Number Publication Date
JP2011227757A JP2011227757A (ja) 2011-11-10
JP5121876B2 true JP5121876B2 (ja) 2013-01-16

Family

ID=45043016

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010097862A Active JP5121876B2 (ja) 2010-04-21 2010-04-21 データ転送装置

Country Status (1)

Country Link
JP (1) JP5121876B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6995815B2 (ja) 2019-10-11 2022-01-17 ニッコー・マテリアルズ株式会社 積層装置およびそれを用いた積層方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106716392B (zh) * 2014-09-25 2021-06-08 高准公司 用于串行通信的栈定时调整

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6995815B2 (ja) 2019-10-11 2022-01-17 ニッコー・マテリアルズ株式会社 積層装置およびそれを用いた積層方法

Also Published As

Publication number Publication date
JP2011227757A (ja) 2011-11-10

Similar Documents

Publication Publication Date Title
US7496700B1 (en) Serial tunneling protocol (STP) flow control in SAS expanders without SATA link state machine
US9047418B2 (en) Methods and devices for extending USB 3.0-compliant communication
US20080222330A1 (en) Semiconductor integrated circuit and image processing apparatus having the same
CN102819512A (zh) 一种基于spi的全双工通信装置及其方法
JPH10207822A (ja) 高速i/oコントローラにおける割り込み処理方法
TW201214134A (en) USB transaction translator and a micro-frame synchronization method
EP1754160B1 (en) Bus connection device
US11567893B2 (en) Method and a mirrored serial interface (MSI) for transferring data
JP2005122372A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
WO2014075545A1 (zh) Usb低速设备数据传输控制方法及控制器
JP5121876B2 (ja) データ転送装置
EP1454242B1 (en) Asynchronous serial data interface
US6574294B1 (en) Data streaming for non-DMA digital computing devices
US6952276B2 (en) Printer detecting data precisely in response to change in data transmission speed
US20070028015A1 (en) System and method for processing data streams
JP5734034B2 (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
JP2012064090A (ja) 情報処理装置、情報処理システムおよび情報処理システムの通信方法
JP5736847B2 (ja) 画像形成装置およびその制御方法
CN101170382A (zh) 一种数据传输的方法和系统
CN117834093B (zh) 高速串行接口半双工和全双工切换时的应答包传输方法
JP2007251715A (ja) データ転送方法及びそのデータ転送装置
JP5482306B2 (ja) データ転送制御装置及び電子機器
JP2012118821A (ja) データ転送装置、プリンタ、制御方法
JP2006195607A (ja) バルクアウト転送終了判定方法および回路
JP3458665B2 (ja) 送受信バッファ制御回路及びその方法並びにその制御プログラムを記録する記録媒体

Legal Events

Date Code Title Description
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: 20121009

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121023

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151102

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5121876

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151102

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350