JP2011198047A - Usb中継装置及び方法 - Google Patents
Usb中継装置及び方法 Download PDFInfo
- Publication number
- JP2011198047A JP2011198047A JP2010064213A JP2010064213A JP2011198047A JP 2011198047 A JP2011198047 A JP 2011198047A JP 2010064213 A JP2010064213 A JP 2010064213A JP 2010064213 A JP2010064213 A JP 2010064213A JP 2011198047 A JP2011198047 A JP 2011198047A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- usb
- host
- response
- signal
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
【課題】
USB2.0に対応するUSB信号を少ない中継負担と遅延で中継する。
【解決手段】
OUTトランザクションにおいて、CPU(26)は、ホスト(10)から
デバイス(12)へのOUT,DATA0/1パケットを下りバッファ(24)を介してデバイス(12)に転送すると共に、NAK,ACKパケット生成装置(34)によりNAK信号を生成させてホスト(10)に送信する。その後、CPU(26)は、デバイス(12)からの応答を受信する前のホスト(10)からのPING信号に対して、NAK,ACKパケット生成装置(34)によりNAK信号を生成させてホスト(10)に送信する。デバイス(12)からの応答を受信した直後のホスト(10)からのPING信号に対して、CPU(26)は、デバイス(12)からの応答の内容に応じた内容の通信をホスト(10)と行う。
【選択図】 図1
USB2.0に対応するUSB信号を少ない中継負担と遅延で中継する。
【解決手段】
OUTトランザクションにおいて、CPU(26)は、ホスト(10)から
デバイス(12)へのOUT,DATA0/1パケットを下りバッファ(24)を介してデバイス(12)に転送すると共に、NAK,ACKパケット生成装置(34)によりNAK信号を生成させてホスト(10)に送信する。その後、CPU(26)は、デバイス(12)からの応答を受信する前のホスト(10)からのPING信号に対して、NAK,ACKパケット生成装置(34)によりNAK信号を生成させてホスト(10)に送信する。デバイス(12)からの応答を受信した直後のホスト(10)からのPING信号に対して、CPU(26)は、デバイス(12)からの応答の内容に応じた内容の通信をホスト(10)と行う。
【選択図】 図1
Description
本発明は、ユニバーサルシリアルバス(USB)信号を中継するUSB中継装置及び方法に関する。
USBインタフェースを、有線LAN、無線LAN及び赤外線等のUSBとは異なる通信媒体で中継する場合、USB通信で規定される応答時間TAT(ターンアラウンドタイム)の制約を克服する必要がある。
特許文献1〜5には、USBホストとUSBデバイスの間に配置される中継装置がUSBデバイスの代わりにUSBホストに応答パケットを送信する代理応答方式が記載されている(特許文献1〜5)。
USB2.0では、新たにPINGパケットが導入され、中継装置はこのPINGパケットにも対応する必要があり、更には、少ない遅延でデータ伝送を中継する必要がある。
本発明は、OUTトランザクションにおいて、このような要望を満たすUSB中継装置及び方法を提示することを目的とする。
本発明に係るUSB中継装置は、USBホストとUSBデバイス間のUSB通信を中継するUSB中継装置であって、当該USBホストから当該USBデバイスへの下り信号を一時保管する下りバッファと、当該USBデバイスから当該USBホストへの上り信号を一時保管する上りバッファと、当該USBホストに送信すべきACK信号及びNAK信号を生成する応答パケット生成手段と、当該下り信号及び当該上り信号に従い、当該下りバッファ、当該上りバッファ及び当該応答パケット生成手段を制御する制御手段であって、(1)当該USBデバイスへのデータを搬送するデータ信号を当該下りバッファを介して当該USBデバイスに転送すると共に、当該応答パケット生成手段によりNAK信号を生成させて当該USBホストに送信し、(2)当該USBデバイスからの応答を受信する前の当該USBホストからのPING信号に対して、当該応答パケット生成手段によりNAK信号を生成させて当該USBホストに送信し、(3)当該USBデバイスからの応答を受信した直後の当該USBホストからのPING信号に対して、当該USBデバイスからの応答の内容に応じた内容の通信を当該USBホストと行う制御手段とを具備することを特徴とする。
本発明に係るUSB中継方法は、USBホストとUSBデバイス間のUSB通信を中継する方法であって、当該USBホストからの当該USBデバイスへのデータを搬送するデータ信号を当該USBデバイスに転送すると共に、NAK信号を当該USBホストに送信するステップと、当該USBデバイスからの応答を受信する前の当該USBホストからのPING信号に対して、NAK信号を当該USBホストに送信するステップと、当該USBデバイスからの応答を受信した直後の当該USBホストからのPING信号に対して、当該USBデバイスからの応答の内容に応じた内容の通信を当該USBホストと行うステップとを具備することを特徴とする。
本発明によれば、少ない中継負担と遅延でUSB信号を中継できる。
以下、図面を参照して、本発明の実施例を詳細に説明する。
図1は、本発明の一実施例の概略構成ブロック図を示す。USBホスト(以下、「ホスト」と略す)10とUSBデバイス(以下、「デバイス」と略す。)12の間にホスト側中継装置20とデバイス側中継装置40を配置する。ホスト10は、USBバス(又はUSBケーブル)14を介してホスト側中継装置20と接続し、デバイス12は、USBバス(又はUSBケーブル)16を介してデバイス側中継装置40に接続する。ホスト側中継装置20とデバイス側中継装置40は、周知の赤外線通信方式で相互に通信する。赤外線通信の代わりに、有線LAN又は無線LANを使用しても良い。なお、この明細書では、ホスト10からデバイス12に向かう信号の流れを下りと表現し、デバイス12からホスト10に向かう信号の流れを上りと表現する。
本実施例のOUTトランザクションの場合を例に、本実施例の基本的な信号の流れを説明する。OUTトランザクションでは、ホスト10がデバイス12に宛てて、OUTパケット、DATA0/1パケット及びPINGパケットを出力する。OUTパケットはOUTトランザクションの開始を宣言するパケットである。DATA0/1パケットはデータを搬送するパケットである。PINGパケットはデバイスの動作状況を確認する問い合わせのパケットであり、デバイスに応答を許可するパケットでもある。他方、デバイス12がOUTトランザクションでホスト10に向けるパケットは、ACKパケット、NAKパケット、NYETパケット及びSTALLパケットの何れかである。ACKパケットはパケットの受信を示す。NAKパケットはパケットの受信の失敗を示す。NYETパケットは、データ受信の準備未完、例えば受信用バッファに空きが無い状態を示す。STALLは、通信を阻害するトラブルが起きていることを意味し、例えば、デバイスがホストからのデバイス・リクエストを理解できない場合などに、デバイスがSTALLパケットをホストに送信する。ホストは、STALLパケットをデバイスから受信すると、以後、当該デバイスへの通信を中止する。
ホスト10がUSBバス14に出力したパケットは、ホスト側中継装置20に入力する。ホスト側中継装置20のUSB送受信装置22は、USBバス14からのパケットを受信し、下りバッファ24とCPU26に供給する。下りバッファ24は、USB送受信装置22からのパケットを取り込み、CPU26の制御下で、無線変換装置30に出力するか、破棄する。破棄されるパケットは、OUTトランザクションでは、デバイス12に転送する必要のないPINGパケットと、デバイス12にとって重複するDATA0/1パケットであり、CPU26がこれらのパケットを下りバッファ24から消去する。下りバッファ24がリングバッファ構成の場合、読み出しアドレスポインタを修正することで、不要データを下りバッファ24から消去できる。
CPU26は、動作するプログラムにより実現される機能として、ホスト10からのトークンの種類を識別するトークン識別機能26A、受信したトークンからヘッダを分離するヘッダ分離機能26B、同一デバイス向けのトークンかを識別するためにヘッダを比較する比較機能26Cを具備する。これら機能26A,26B,26Cの詳細は後述する。比較機能26Cによる比較のために、CPU26は、ヘッダ分離機能で分離したOUTパケットのヘッダ情報、DATA0/1パケットのパケットID(識別情報)及びPINGパケットのヘッダ情報をメモリ28に格納する。ヘッダ情報で、対比に必要なデータは、USBデバイス12のアドレスとエンドポイントであり、いずれも、ホスト10からのINパケット、OUTパケット及びPINGパケットに含まれる。
無線変換装置30は下りバッファ24からのパケットに無線通信に適した符号変換、例えば、8B/10B変換を施し、赤外線信号に変換して、デバイス側中継装置40に送信する。
デバイス側中継装置40は、基本的に、ホスト側中継装置20からの無線信号をUSBパケット形式に変換してデバイス12に転送し、デバイス12からのUSBパケットを無線信号に変換してホスト側中継装置20に転送するだけである。すなわち、デバイス側中継装置40の無線変換装置42は、ホスト側中継装置20の無線変換装置30からの赤外線信号を受信し、10B/8B変換し、無線変換装置30での変換前のパケット構造に戻して、下りバッファ44に供給する。下りバッファ44は、無線変換装置42からのパケットをそのままUSB送受信装置48に供給する。USB送受信装置48は、無線変換装置30からのパケットにUSBパケット送信に必要なシンクコード等を付加してUSBパケット構造を作り、USBバス16を介してデバイス12に供給する。
デバイス側中継装置40のCPU46は、デバイス側中継装置40の初期化と、ホスト側中継装置20との無線通信のリンクの確立を制御する。
デバイス12がホスト10に向けたパケットは、USBバス16を介してデバイス側中継装置40のUSB送受信装置48に入力する。USB送受信装置48は、USBバス16からのパケットを受信し、上りバッファ50に供給する。上りバッファ50は、USB送受信装置48からのパケットを取り込み、そのまま無線変換装置42に出力する。
無線変換装置42は上りバッファ50からのパケットに無線通信に適した符号変換、例えば、8B/10B変換を施し、赤外線信号に変換して、ホスト側中継装置20に送信する。
ホスト側中継装置20の無線変換装置30は、デバイス側中継装置40からのからの赤外線信号を受信し、10B/8B変換し、無線変換装置42での変換前のパケット構造に戻して、上りバッファ32に供給する。上りバッファ32は、無線変換装置30からのパケットをバッファリングし、CPU26の制御下で、USB送受信装置22に読み出す。CPU26は、上りバッファ32に格納されたデバイス12からの応答の種類を常時監視する。
USB送受信装置22は、上りバッファ32からのパケットにUSBパケット送信に必要なシンクコード等を付加してUSBパケット構造を作り、USBバス14を介してホスト10に供給する。
また、NAK,ACKパケット生成装置34は、CPU26の制御下で、NAKパケット又はACKパケットを生成し、USB送受信装置22に供給する。USB送受信装置22は、NAK,ACKパケット生成装置34からのパケットにUSBパケット送信に必要なシンクコード等を付加してUSBパケット構造を作り、USBバス14を介してホスト10に供給する。
図2は、ホスト側中継装置20のCPU26のメインフローを示す。先に説明したように、ホスト10から出力され、ホスト側中継装置20に入力したUSBパケットは、下りバッファ24に格納されると共に、CPU26に取り込まれる(S1)。CPU26のトークン識別機能26Aは、そのUSBパケットがOUT、IN及びSETUPの何れであるかを識別し(S2,S4,S6)、CPU26は、それぞれに応じて中継処理を実行する(S3,S5,S7)。すなわち、CPU26は、OUTパケットに対しOUTトランザクションの中継処理を実行し(S2,S3)、INパケットに対してINトランザクションの中継処理を実行し(S4,S5)、SETUPパケットに対しSETUPトランザクションの中継処理を実行する(S6,S7)。
図3乃至図5は、ステップS3に示すOUTトランザクション中継処理のフローチャートを示す。図6は、デバイス12がDATAパケットに対してACKパケットで応答する場合の、本実施例におけるOUTトランザクションのシーケンス例を示す。図7は、デバイス12がDATAパケットに対してNAKパケットで応答する場合の、本実施例におけるOUTトランザクションのシーケンス例を示す。図8はデバイス12がDATAパケットに対してNYETパケットで応答する場合の、本実施例におけるOUTトランザクションのシーケンス例を示す。図9はデバイス12がDATAパケットに対してSTALLパケットで応答する場合の、本実施例におけるOUTトランザクションのシーケンス例を示す。図6乃至図9には、図3乃至図5に示すフローの対応するステップを付記してある。
USB2.0では高速化への対応からPINGパケットが導入された。中継装置20,40間で使用する通信媒体の伝送レートが、USB2.0のレートを大幅に超えない限り、ホスト側中継装置20は、デバイス12に代わる応答、すなわち代理応答をホスト10に返信する必要がある。本実施例では、CPU26はホスト10から同じデバイス12に向けて出力されるOUTパケット及びPINGパケットに対して、以下のように処理する。なお、同じデバイス12に向けたパケットか否かは、各パケットのヘッダ、より具体的には、デバイス12を示す目的アドレスとエンドポイント(EP)からなる部分を対比し、同じであれば、同じデバイスに向けたパケットであると判断する。データパケットの種別、すなわち、DATA0かDATA1かを判別するには、そのパケット識別子(ID)を対比する。
本実施例では、ホスト側中継装置20は、OUTトランザクションの中継処理として、データ転送ステージ、応答待機ステージ、終了ステージ、データ再送ステージ、通信停止ステージを具備する。データ転送ステージは、ホスト10からのデータをデバイス12に転送するステージである。応答待機ステージはデバイスからの応答を待機するステージである。終了ステージはデバイスからのACKパケットに対して、次のデータ転送に移行するためのステージである。データ再送ステージは、デバイス12からのNAK又はNYETパケットに対して、データの再送に向けたステージである。通信停止ステージは、デバイス12からのSTALLパケットをホスト10に転送するステージである。
図3において、まず、データ転送ステージとして、CPU26のヘッダ分離機能26Bが、ホスト10からのOUTパケット及びこれに続くDATA0/1パケットの識別情報を分離し、メモリ28に格納する(S11)。ここでの識別機能は、OUTパケットのヘッダ情報の少なくともデバイスアドレスとエンドポイントの情報、並びに、DATA0/1パケットのパケット識別子からなる。
CPU26は下りバッファ24に格納されているOUTパケット及びDATA0/1パケットを無線変換装置30に読み出す(S12)。これにより、先に説明したように、OUTパケット及びDATA0/1パケットが、デバイス12に転送される。この読み出しと同時又は前後して、CPU26は、NAK,ACKパケット生成装置34によりホスト10にNAKパケットを送信する(S13)。
以上のデータ転送(S12)及びNAK応答(S13)の後、CPU26は、応答待機処理(S14)に移行する。図4は、応答待機処理(S14)の詳細なフローチャートを示す。ホスト側中継装置20は、ホスト10からの同じデバイス12に向けたPINGパケットを待機する(S21)。PINGパケットかどうかは、トークン識別機能26Aでホスト10からのトークンのパケット識別子を調べることで判別できる。また、同じデバイス向けかどうかは、比較機能26Cを使って、ホスト10からのトークンのヘッダに格納されるデバイスアドレス及びエンドポイントを、メモリ28に記憶したOUTパケットのヘッダの対応する情報と対比することで判別できる。受信されたPINGパケットは、先に説明したように、下りバッファ24に格納され、CPU26に供給される。
同じデバイス12向けのPINGを受信したら(S21)、CPU26は、デバイス12に転送しないので、下りバッファ24からこのPINGパケットを消去し(S22)、デバイス12からの応答信号を受信済みかどうか、すなわち上りバッファ32に格納済みかどうかを判断する(S23)。PINGを無闇に中継しないことで、無線伝送部分及びデバイス側中継装置40の負担を軽減できる。
デバイス12からの応答を受信していない場合(S23)、CPU26は、NAK,ACKパケット生成装置34によりホスト10にNAKパケットを送信し(S24)、次のPINGの受信を待機する(S21)。PINGパケットをデバイス12に転送せずに破棄することで、デバイス12の無用な受信処理を軽減する。また、ホスト10は、このNAKパケットに対して、一定時間間隔でPINGパケットを同じデバイス12に向けて送信する。
デバイス12からの応答を受信済みの場合(S23)、その応答がACK、NAK、NYET及びSTALLの何れであるかにより、分岐する(S25)。
デバイス12からの応答としてACKパケットが上りバッファ32に格納された場合(S25)、これは、先のOUTパケット及びこれに続くDATA0/1パケットにより、データがデバイス12に格納されたことを意味する。この状況では、CPU26は、上りバッファ32のACKパケットを読み出してホスト10に返信する(S26)。このACKパケットは、ホスト10からのPINGパケットに対する受信承認信号となる。
ホスト10は、USBの規約上、PINGパケットに対するACKパケットに対し、先にOUTパケット及びDATA0/1パケットでデバイス12に向けて送信したデータと同じデータを、再びデバイス12に向けて送信する。例えば、最初のDATAパケットがDATA0パケットである場合、再送されるデータパケットは、同じ種類のDATA0パケットになる。
ホスト側中継装置20は、ホスト10から同じデバイス12に向けたOUTパケット及びこれに続くDATA0/1パケットを待機する(S27)。CPU26は、OUTパケット及びこれに続くDATA0/1パケットを受信したら、比較機能26Cを使って、OUTパケットのヘッダ情報及びDATA0/1パケットのパケットIDを、先にメモリ28に記憶した最初のOUTパケットのヘッダ情報及びDATA0/1パケットのパケットIDと比較する。この比較により、同じデバイスに向けた、転送済みのデータか否か、すなわち、同じデータの再送か否かを判別できる。
具体的には、OUTパケットのヘッダ情報の比較で同一デバイス向けか否かを判別できる。また、ホスト10は、最初のDATAパケットに対してNAKパケットを受信しているので、このステージで送信するDATAパケットは、同じ種類のDATAパケット(最初のDATAパケットがDATA0パケットである場合、このステージで送信する最初のDATAパケットもDATA0パケット)になる。DATAパケットのパケット識別子を対比することで、同種か否かを判別できる。
転送ステージでデバイス12に転送済みのデータであることを確認したら、受信したOUTパケット及びこれに続くDATA0/1パケットを、デバイス12に転送せずに下りバッファ24から削除し、ホスト10にはACKパケットを送信する(S28)。CPU26は、最初のOUTパケットのヘッダ情報及びDATA0/1パケットのパケットIDの記憶をメモリ28から消去する。
ステップS28により、OUTトランザクションを正常に終了したことになり、ホスト10は、次のデータを転送するためのOUTトランザクションを開始できる。
デバイス12からの応答がNAKパケットであった場合(S25)、これは、デバイス12が、先のOUTパケット及びこれに続くDATA0/1パケットによるデータを受信していないことを意味し、ホスト側中継装置20は、デバイス12がデータを受信できる状態になるのを待機する必要がある。そのため、CPU26は、上りバッファ32のNAKパケットを読み出してホスト10に返信する(S29)。もちろん、上りバッファ32のNAKパケットを破棄し、NAK,ACKパケット生成装置34にNAKパケットを生成させても良い。
ステップS29でホスト10に送信されるNAKパケットは、ホスト10にとって、ホスト10からのPINGパケットに対する受信失敗の応答信号となり、ホスト10は、デバイス12がACKパケットを返信するようになるまで、PINGパケットを繰り返し送信することになる。これに対応するため、CPU26は、デバイス12からのACK応答待機プロセスに入る(S30)。
図5は、ACK応答待機処理(S30)の詳細なフローチャートを示す。ホスト側中継装置20は、ホスト10からデバイス12に向けたPINGパケットの受信を待機する(S41)。CPU26は、受信したPINGパケットの識別情報(具体的にはデバイスアドレスとエンドポイント)をメモリ28に格納する(S42)。OUTパケット及びDATA0/1パケットに対してデバイス12からNAKパケットを受信したので、OUTトランザクションをリセットする必要があり、そのために、最初のOUTパケット及びDATA0/1パケットに対して記憶したヘッダ情報及びPIDをメモリ28から消去する。
CPU26はまた、受信したPINGパケットを下りバッファ24から読み出してデバイス12に向け転送し(S43)、ホスト10にNAKパケットを送信する(S44)。
以後、ホスト10から同じデバイス12に向けたPINGパケットを受信するのを待機する(S45)。同じデバイス12向けか否かは、受信したPINGパケットの識別情報を、ステップS42でメモリ28に記憶した識別情報と比較することで、判別できる。同じデバイス12向けのPINGパケットを受信したら(S45)、CPU26は、デバイス12から応答を受信しているかどうかを調べる(S46)。
応答を受信している場合(S46)、CPU26は、応答がACKパケットかどうかを調べる(S47)。デバイス12からACKパケットを受信している場合に限り(S47)、CPU26は、下りバッファ24に格納されるPINGパケットを破棄し、上りバッファ32に格納されるACKパケットを読み出してホスト10に送信して(S48)、図5に示すフローを終了する。もちろん、上りバッファ32に格納されるACKパケットを破棄し、NAK,ACKパケット生成装置34にACKパケットを生成させ、USB送受信装置22に出力させてもよい。
応答がACK以外の場合(S47)、先に受信し、下りバッファ24に格納されるPINGパケットを読み出して、デバイス12に向け送信し(S43)、ホスト10にはNAKパケットを送信する(S44)。これにより、デバイス12がACKパケットを応答するようになるまで、ホスト10は待機することになる。
デバイス12からの応答を受信していない場合(S46)、CPU26は、下りバッファ24に格納されるPINGパケットを破棄し(S49)、NAKパケットをホスト10に送信する(S50)。すなわち、CPU26は、NAK,ACKパケット生成装置34にNAKパケットを生成させ、USB送受信装置22を介してホスト10に送信させる。以後、ステップS45に戻り、次のPINGパケットを待機する。
本実施例では、ステップS49を設けることで、デバイス12からの応答前に複数のPINGパケットを送信しないようにしている。これにより、徒にデバイス12を多忙にさせることを防止し、また、中継装置20,40間の無線伝送路の帯域の浪費を防止している。
ステップS48でホスト10に送信されるACKパケットは、ホスト10にとって、PINGパケットに対する応答であり、デバイス12がデータを受信できる状態にあることを意味する。ホスト10は、このACKパケットに対して、改めて、ステップS11で送信したデータと同じデータを搬送するOUTトランザクションを再開することになる。この意味で、図5に示すACK待機プロセスは、ホスト10にデータ再送を促すプロセスでもある。
デバイス12からの応答としてNYETパケットが上りバッファ32に格納された場合(S25)、これは、デバイス12が、先のOUTパケット及びこれに続くDATA0/1パケットによるデータを受信する準備ができていないことを意味し、ホスト10に対しNYETパケットを送信する必要がある。図8は、この場合のシーケンス例を示す。
USBのプロトコル上、デバイスがNYETパケットを返信できるのは、OUTパケット及びDATA0/1パケットに対してのみであるので、CPU26は、NAK,ACKパケット生成装置34にACKパケットを生成させ、USB送受信装置22を介してホスト10に送信させる(S31)。
ホスト10は、USBの規約上、PINGパケットに対するACKパケットに対し、先にOUTパケット及びDATA0/1パケットでデバイス12に向けて送信したデータと同じデータを、再びデバイス12に向けて送信する。例えば、最初のDATAパケットがDATA0パケットである場合、再送されるデータパケットは、同じ種類のDATA0パケットになる。
ホスト側中継装置20は、ホスト10から同じデバイス12に向けたOUTパケット及びこれに続くDATA0/1パケットを待機する(S32)。CPU26は、OUTパケット及びこれに続くDATA0/1パケットを受信したら、比較機能26Cを使って、OUTパケットのヘッダ情報及びDATA0/1パケットのパケットIDを、先にメモリ28に記憶した最初のOUTパケットのヘッダ情報及びDATA0/1パケットのパケットIDと比較する。この比較により、同じデバイスに向けた、転送済みのデータか否か、すなわち、同じデータの再送か否かを判別できる。
具体的には、OUTパケットのヘッダ情報の比較で同一デバイス向けか否かを判別できる。また、ホスト10は、最初のDATAパケットに対してNAKパケットを受信しているので、このステージで送信するDATAパケットは、同じ種類のDATAパケット(最初のDATAパケットがDATA0パケットである場合、このステージで送信する最初のDATAパケットもDATA0パケット)になる。DATAパケットのパケット識別子を対比することで、同種か否かを判別できる。
デバイス12がデータを受信できる状態にないので、CPU26は、ホスト10から再送されたOUTパケット及びDATA0/1パケットを下りバッファ24から消去し、上りバッファ32からNYETパケットを読み出してホスト10に送信する(S33)。
ホスト10は以後、デバイス12がデータ受信可能になったことを確認するために、PINGパケットを繰り返し又は定期的にデバイス12に送信する。また、ホスト側中継装置20は、ACK待機プロセス(S30)を実行して、デバイス12がデータ受信可能な状態になるのを待機する。ACK待機プロセスでのシーケンスは図7に図示したものと同じであるので、図8では、ACK待機プロセスの詳細を省略してある。
デバイス12からの応答としてSTALLパケットが上りバッファ32に格納された場合(S25)、これは、デバイス12の通信機能又はデバイス12との間の通信路に障害があることを意味する。このとき、CPU26は、上りバッファ32のSTALLパケットを読み出してホスト10に返信する(S34)。ホスト10は、通常、STALLパケットに対し、デバイス12との以後の通信を中止する。図9は、この場合のシーケンス例を示す。
図10は、INトランザクションの処理(S5)のフローチャートを示す。CPU26のヘッダ分離機能26Bが、ホスト10からのINパケットの識別情報を分離し、メモリ28に格納する(S61)。ここでの識別機能は、INパケットのヘッダ情報の少なくともデバイスアドレスとエンドポイントの情報からなる。
CPU26は下りバッファ24に格納されているINパケットを無線変換装置30に読み出す(S62)。これにより、先に説明したように、INパケットが、デバイス12に転送される。この読み出しと同時又は前後して、CPU26は、NAK,ACKパケット生成装置34によりホスト10にNAKパケットを送信する(S63)。
以後、ホスト側中継装置20は、ホスト10からの同じデバイス12に向けたINパケットを待機する(S64)。INパケットかどうかは、トークン識別機能26Aでホスト10からのトークンのパケット識別子を調べることで判別できる。また、同じデバイス向けかどうかは、比較機能26Cを使って、ホスト10からのトークンのヘッダに格納されるデバイスアドレス及びエンドポイントを、メモリ28に記憶したINパケットのヘッダの対応する情報と対比することで判別できる。受信されたINパケットは、先に説明したように、下りバッファ24に格納され、CPU26に供給される。
同じデバイス12向けのINパケットを受信したら(S64)、CPU26は、デバイス12に転送しないので、下りバッファ24からこのINパケットを消去し(S65)、デバイス12からの応答信号を受信済みかどうかを判断する(S66)。デバイス12からの応答は、DATA0/1パケット、NAKパケット、又はSTALLパケットである。
デバイス12からの応答を受信していない場合(S66)、CPU26は、NAK,ACKパケット生成装置34によりホスト10にNAKパケットを送信し(S67)、次のINパケットの受信を待機する(S64)。INパケットをデバイス12に転送せずに破棄することで、デバイス12の無用な受信処理を軽減する。また、ホスト10は、ステップS67のNAKパケットに対して、INパケットを同じデバイス12に向けて送信する。
デバイス12からの応答を受信済みの場合(S23)、CPU26は、デバイス12からの応答を上りバッファ32から読み出してホスト10に転送し(S68)、図2のステップS1に戻る。
図2のSETUP処理(S7)では、ホスト側中継装置20は、ホスト10からのSETUPパケット及びこれに続くDATA0/1パケットをデバイス12に転送し、ホスト10にはACKパケットを送信する。なぜなら、SETUPパケットに対する返信はACKパケットに限定されているからである。ホスト側中継装置20からのSETUPパケット及びDATA0/1パケットは、デバイス側中継装置40を介してデバイス12に入力する。デバイス12は、応答としてACKパケットを返信する。デバイス側中継装置40はデバイス12からのACKパケットをホスト側中継装置20に転送する。ホスト側中継装置20は、デバイス側中継装置40を介して入力するデバイス12からのACKパケットを破棄する。既にホスト10に送信済みだからである。
特定の説明用の実施例を参照して本発明を説明したが、特許請求の範囲に規定される本発明の技術的範囲を逸脱しないで、上述の実施例に種々の変更・修整を施しうることは、本発明の属する分野の技術者にとって自明であり、このような変更・修整も本発明の技術的範囲に含まれる。
10:USBホスト(又はホスト)
12:USBデバイス(又はデバイス)
14、16:USBバス(又はUSBケーブル)
20:ホスト側中継装置
22:USB送受信装置
24:下りバッファ
26:CPU
26A:トークン識別機能
26B:ヘッダ分離機能
26C:比較機能
28:メモリ
30:無線変換装置
32:上りバッファ
34:NAK,ACKパケット生成装置
40:デバイス側中継装置
42:無線変換装置
44:下りバッファ
46:CPU
48:USB送受信装置
50:上りバッファ
12:USBデバイス(又はデバイス)
14、16:USBバス(又はUSBケーブル)
20:ホスト側中継装置
22:USB送受信装置
24:下りバッファ
26:CPU
26A:トークン識別機能
26B:ヘッダ分離機能
26C:比較機能
28:メモリ
30:無線変換装置
32:上りバッファ
34:NAK,ACKパケット生成装置
40:デバイス側中継装置
42:無線変換装置
44:下りバッファ
46:CPU
48:USB送受信装置
50:上りバッファ
Claims (2)
- USBホストとUSBデバイス間のUSB通信を中継するUSB中継装置であって、
当該USBホストから当該USBデバイスへの下り信号を一時保管する下りバッファと、
当該USBデバイスから当該USBホストへの上り信号を一時保管する上りバッファと、
当該USBホストに送信すべきACK信号及びNAK信号を生成する応答パケット生成手段と、
当該下り信号及び当該上り信号に従い、当該下りバッファ、当該上りバッファ及び当該応答パケット生成手段を制御する制御手段であって、(1)当該USBデバイスへのデータを搬送するデータ信号を当該下りバッファを介して当該USBデバイスに転送すると共に、当該応答パケット生成手段によりNAK信号を生成させて当該USBホストに送信し、(2)当該USBデバイスからの応答を受信する前の当該USBホストからのPING信号に対して、当該応答パケット生成手段によりNAK信号を生成させて当該USBホストに送信し、(3)当該USBデバイスからの応答を受信した直後の当該USBホストからのPING信号に対して、当該USBデバイスからの応答の内容に応じた内容の通信を当該USBホストと行う制御手段
とを具備することを特徴とするUSB中継装置。 - USBホストとUSBデバイス間のUSB通信を中継する方法であって、
当該USBホストからの当該USBデバイスへのデータを搬送するデータ信号を当該USBデバイスに転送すると共に、NAK信号を当該USBホストに送信するステップと、
当該USBデバイスからの応答を受信する前の当該USBホストからのPING信号に対して、NAK信号を当該USBホストに送信するステップと、
当該USBデバイスからの応答を受信した直後の当該USBホストからのPING信号に対して、当該USBデバイスからの応答の内容に応じた内容の通信を当該USBホストと行うステップ
とを具備することを特徴とするUSB中継方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010064213A JP2011198047A (ja) | 2010-03-19 | 2010-03-19 | Usb中継装置及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010064213A JP2011198047A (ja) | 2010-03-19 | 2010-03-19 | Usb中継装置及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011198047A true JP2011198047A (ja) | 2011-10-06 |
Family
ID=44876159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010064213A Pending JP2011198047A (ja) | 2010-03-19 | 2010-03-19 | Usb中継装置及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011198047A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017149768A1 (ja) * | 2016-03-04 | 2017-09-08 | Necディスプレイソリューションズ株式会社 | データ伝送システムとプロジェクタ、および、データ伝送方法 |
WO2021260779A1 (ja) * | 2020-06-23 | 2021-12-30 | 日本電信電話株式会社 | Usb接続制御システム、usb接続制御方法、usb-ネットワーク変換装置及びプログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005107677A (ja) * | 2003-09-29 | 2005-04-21 | Sharp Corp | 通信コントローラ、通信システム、通信機器、および通信方法 |
JP2005107683A (ja) * | 2003-09-29 | 2005-04-21 | Sharp Corp | 通信コントローラ、通信システム、通信機器、および通信方法 |
-
2010
- 2010-03-19 JP JP2010064213A patent/JP2011198047A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005107677A (ja) * | 2003-09-29 | 2005-04-21 | Sharp Corp | 通信コントローラ、通信システム、通信機器、および通信方法 |
JP2005107683A (ja) * | 2003-09-29 | 2005-04-21 | Sharp Corp | 通信コントローラ、通信システム、通信機器、および通信方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017149768A1 (ja) * | 2016-03-04 | 2017-09-08 | Necディスプレイソリューションズ株式会社 | データ伝送システムとプロジェクタ、および、データ伝送方法 |
CN108701104A (zh) * | 2016-03-04 | 2018-10-23 | Nec显示器解决方案株式会社 | 数据传输***、投影仪、和数据传输方法 |
JPWO2017149768A1 (ja) * | 2016-03-04 | 2018-12-27 | Necディスプレイソリューションズ株式会社 | データ伝送システム、プロジェクタ、データ伝送方法および電子機器 |
US10606781B2 (en) | 2016-03-04 | 2020-03-31 | Nec Display Solutions, Ltd. | Data transmission system, projector, and data transmission method including first apparatus with first communication part and second apparatus with second communication part |
CN108701104B (zh) * | 2016-03-04 | 2021-06-04 | Nec显示器解决方案株式会社 | 数据传输***、投影仪、和数据传输方法 |
WO2021260779A1 (ja) * | 2020-06-23 | 2021-12-30 | 日本電信電話株式会社 | Usb接続制御システム、usb接続制御方法、usb-ネットワーク変換装置及びプログラム |
JP7371782B2 (ja) | 2020-06-23 | 2023-10-31 | 日本電信電話株式会社 | Usb接続制御システム、usb接続制御方法、usb-ネットワーク変換装置及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6500123B2 (ja) | 車載ゲートウェイ装置、及び車載ネットワークシステム | |
US8179918B2 (en) | Relay connection unit for vehicle | |
TW200405691A (en) | System for efficient recovery of node-b buffered data following MAC layer reset | |
JP4415036B2 (ja) | ネットワークシステム、ネットワーク装置及び中継装置 | |
EP2963869A1 (en) | Communication system, switch, control apparatus, control channel configuration method and program | |
US8838782B2 (en) | Network protocol processing system and network protocol processing method | |
JP2011198046A (ja) | 中継装置及び方法 | |
JP5063655B2 (ja) | 通信ゲートウェイ装置 | |
JP2011198047A (ja) | Usb中継装置及び方法 | |
JP5476852B2 (ja) | 通信装置、通信システムおよび通信方法 | |
JP4210993B2 (ja) | Usbハブ装置、usb周辺装置及びデータ送受信方法 | |
US8880972B2 (en) | Serial transmission apparatus, information processing apparatus, and serial transmission method | |
JP2015106796A (ja) | 通信装置、通信制御方法及びプログラム | |
JP4990187B2 (ja) | データ転送装置 | |
JP2008005442A (ja) | 通信装置、通信システム、および通信方法 | |
JP2008199431A (ja) | 通信装置 | |
JP4458873B2 (ja) | シリアルデータ転送方法とその装置 | |
KR101019055B1 (ko) | 네트워크 상에서 데이터 전송 시 신뢰성 유지 방법 및 장치 | |
JP3884389B2 (ja) | 中継装置、認証システム及びプログラム | |
JP4069125B2 (ja) | 伝送方法、送信装置、および送受信システム | |
JP5998343B2 (ja) | デバイスサーバシステム、デバイスサーバおよびプログラム | |
JP2013232847A (ja) | 通信システム、通信装置、中継装置、通信装置の制御方法、中継装置の制御方法、およびプログラム | |
JP5223582B2 (ja) | メッセージ伝送装置及びメッセージ伝送方法 | |
EP1032177A2 (en) | Signal processing apparatus with three layer processing sections | |
JP2002281034A (ja) | 情報転送装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120807 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130705 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130716 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20131112 |