JP2004246750A - Usb通信方法 - Google Patents

Usb通信方法 Download PDF

Info

Publication number
JP2004246750A
JP2004246750A JP2003037645A JP2003037645A JP2004246750A JP 2004246750 A JP2004246750 A JP 2004246750A JP 2003037645 A JP2003037645 A JP 2003037645A JP 2003037645 A JP2003037645 A JP 2003037645A JP 2004246750 A JP2004246750 A JP 2004246750A
Authority
JP
Japan
Prior art keywords
communication device
host
side communication
peripheral device
data packet
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
Application number
JP2003037645A
Other languages
English (en)
Inventor
Masabumi Yoshioka
正文 吉岡
Akinori Hirukawa
明則 蛭川
Satoshi Aikawa
聡 相河
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2003037645A priority Critical patent/JP2004246750A/ja
Publication of JP2004246750A publication Critical patent/JP2004246750A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

【課題】本発明はUSB規格に従って通信する場合にホストPCと周辺機器との間の遅延が大きい場合であっても正常な通信が可能なUSB通信方法を提供することを目的とする。
【解決手段】ホスト側通信装置と周辺機器側通信装置とを用いてホストコントローラと周辺機器との間の通信を中継し、ホストコントローラの通信をホスト側通信装置で終端する。周辺機器からのデータパケットをホスト側通信装置上のメモリに保持しておき、ホストコントローラからの要求に対して該当するデータパケットがメモリに存在する場合には、ホスト側通信装置がメモリから読み出したデータパケットをホストコントローラに直接送信する。ホスト側通信装置及び周辺機器側通信装置はデータの伝送方向を識別して制御を行う。通常モードではホスト側通信装置はホストコントローラに対して応答を返し、周辺機器側通信装置は周辺機器に対して応答を返す。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、USB(Universal Serial Bus)規格に従って通信する場合に用いられるUSB通信方法に関する。
【0002】
【従来の技術】
従来より、USB規格に準じた通信インタフェースは、パーソナルコンピュータ(PC)や様々な周辺機器に広く採用されている。
USB規格の仕様については、USB仕様書として公開されている。USB規格では、最大で127台の周辺機器を接続することができる。
【0003】
また、この種の従来技術は特許文献1に開示されている。
【特許文献1】
特表2002−542527
【0004】
【発明が解決しようとする課題】
しかしながら、USB仕様書においては装置はホストPCから5メートル以内になければならないとされている。
【0005】
勿論、USBハブを用いればその距離を伸ばすことは可能であるが、その場合でも最大で30mまでしか伸ばすことはできない。このため、USBインタフェースを用いて通信する場合には、従来は周辺機器をホストPCから30m離れた場所では利用できなかった。
このような距離の制限はUSBの動作原理にある。すなわち、USBではバスの使用権は全てホストPCが持ち、ホストPCが各周辺機器に使用可能な帯域を割り振るように制御される。
【0006】
また、ホストPCが各周辺機器に帯域を割り振ってからホストPCがデータを受信するまでの時間が16bitタイム以内と短く、更にケーブル内の遅延として7.5bitタイムが割り当てられているので、周辺機器がバスの使用権を受け取ってから送信するまでには8.5bitタイム(12Mbpsで0.7μs)しか許されず余裕が小さい。
【0007】
このような仕様であるため、仕様を無視して多くの遅延が生ずるUSB機器を接続したとしても信号の衝突が生じることになり、実際には通信はできない。
本発明は、USB規格に従って通信する場合に、ホストPCと周辺機器との間の遅延が大きい場合であっても正常な通信が可能なUSB通信方法を提供することを目的とする。
【0008】
【課題を解決するための手段】
請求項1は、ホスト装置側に接続されたホストコントローラと、所定の周辺機器との間でUSBの規格に従って通信するためのUSB通信方法において、前記ホストコントローラに接続されたホスト側通信装置と、前記周辺機器に接続された周辺機器側通信装置とを用いて、前記ホストコントローラとホスト側通信装置との間、前記周辺機器と周辺機器側通信装置との間、前記ホスト側通信装置と周辺機器側通信装置との間でそれぞれ通信を行うと共に、前記ホストコントローラからのパケットをホスト側通信装置が受信した場合に、ホスト側通信装置が前記パケットから第1の伝送方向を識別する第1の手順と、前記第1の伝送方向が前記ホストコントローラに入力される方向でない場合には、次に続くデータパケットの有無をホスト側通信装置が識別する第2の手順と、前記第2の手順で続くデータパケットがある場合には、そのデータパケットを前記ホスト側通信装置がホストコントローラから受信する第3の手順と、前記ホスト側通信装置が受信した前記ホストコントローラからのパケットを前記周辺機器側通信装置に転送する第4の手順と、前記第1の伝送方向が前記ホストコントローラに入力される方向である場合には、前記ホスト側通信装置は該当するデータパケットが自身のメモリに保持されているか否かを識別し、保持されている場合には該当するデータパケットを前記ホストコントローラに転送する第5の手順と、前記ホスト側通信装置が周辺機器側通信装置からのデータパケットを受信してメモリに保存する第6の手順と、前記周辺機器側通信装置がホスト側通信装置からのパケットを受信した場合に、前記パケットから前記周辺機器側通信装置が第2の伝送方向を識別する第7の手順と、前記第2の伝送方向が前記ホストコントローラに入力される方向でない場合には、次に続くデータパケットの有無を前記周辺機器側通信装置が識別する第8の手順と、前記第8の手順で続くデータパケットがある場合には、そのデータパケットを前記周辺機器側通信装置が受信する第9の手順と、前記第2の伝送方向が前記ホストコントローラに入力される方向でない場合に、前記周辺機器側通信装置が受信したパケットを前記周辺機器に転送する第10の手順と、前記第2の伝送方向が前記ホストコントローラに入力される方向である場合に、前記周辺機器側通信装置が受信したパケットを前記周辺機器に転送する第11の手順と、前記第2の伝送方向が前記ホストコントローラに入力される方向である場合に、前記周辺機器からのパケットを前記周辺機器側通信装置が受信する第12の手順と、前記第12の手順でデータパケットを受信した場合には、前記周辺機器側通信装置が受信したデータパケットに宛先情報を付加して前記ホスト側通信装置に転送する第13の手順とを設けたことを特徴とする。
【0009】
請求項1においては、ホストコントローラ(ホストPC)に接続されたホスト側通信装置と、周辺機器に接続された周辺機器側通信装置とを用いて、前記ホストコントローラと周辺機器との間の通信を中継する。
また、周辺機器が送出したデータをホスト側通信装置のメモリに保持しておくため、ホスト側通信装置と周辺機器側通信装置との間の遅延時間が大きい場合であっても、ホストコントローラからの要求に対して短い時間で要求されたデータを送信することが可能になる。
【0010】
すなわち、ホスト側通信装置と周辺機器側通信装置との間の距離が大きい場合であっても、USB規格で規定された時間内にデータをホスト側通信装置に対して送信可能であり、正しく通信を行うことができる。
請求項2は、請求項1のUSB通信方法において、前記ホスト側通信装置と周辺機器側通信装置との間で無線回線を用いて通信を行うことを特徴とする。
【0011】
請求項2においては、ホスト側通信装置と周辺機器側通信装置とをケーブルで接続する必要が無くなるため、ホストコントローラ(ホストPC)や各周辺機器を配置する上での位置の自由度が高くなる。
請求項3は、請求項1のUSB通信方法において、前記ホスト側通信装置と周辺機器側通信装置との間で、少なくとも周辺機器の消費電力に関する情報を伝送することを特徴とする。
【0012】
請求項3においては、周辺機器の消費電力をホストコントローラ側で監視できるので、過負荷などの警告を出力することが可能になる。
請求項4は、請求項1のUSB通信方法において、前記ホスト側通信装置と周辺機器側通信装置との間で、少なくともUSBインタフェースに対する周辺機器の脱着に関する情報を伝送することを特徴とする。
【0013】
請求項4においては、周辺機器の脱着をホストコントローラ側で監視できるので、周辺機器の脱着に関する警告を出力することが可能になる。
請求項5は、請求項1のUSB通信方法において、前記ホスト側通信装置と周辺機器側通信装置との間で通信を行う際に、再送を含む誤り補償制御を行うことを特徴とする。
【0014】
ホストコントローラの通信をホスト側通信装置で終端し、周辺機器の通信を周辺機器側通信装置で終端する場合には、ホスト側通信装置と周辺機器側通信装置との間でデータが消失した場合に送信元と宛先との間でデータの不一致が生じる。例えば、ホストコントローラが周辺機器宛に送信したデータがホスト側通信装置と周辺機器側通信装置との間で消失すると、ホストコントローラは送信を完了したと見なすが、そのデータは周辺機器に届かない。
【0015】
請求項5においては、ホスト側通信装置と周辺機器側通信装置との間で通信を行う際に再送を含む誤り補償制御を行うので、ホスト側通信装置と周辺機器側通信装置との間でデータが消失するのを防止することができ、送信元と宛先との間でデータの不一致の発生を防止できる。
請求項6は、請求項1のUSB通信方法において、前記第3の手順でホストコントローラからのデータパケットを受信した場合に、前記ホスト側通信装置がホストコントローラに対して受信確認の応答を返す第14の手順と、前記第5の手順で前記ホスト側通信装置がデータパケットを前記ホストコントローラに送信した後で、前記ホストコントローラから受信確認の応答を受け取った場合には、送信したデータパケットをメモリから削除する第15の手順と、前記第1の伝送方向が前記ホストコントローラに入力される方向である場合に、前記ホスト側通信装置のメモリに該当するデータパケットが存在しない場合には、前記ホスト側通信装置が前記ホストコントローラに対して存在しないことを表す応答を送信する第16の手順と、前記第12の手順で周辺機器側通信装置が周辺機器からのデータパケットを受信した場合には、周辺機器側通信装置が周辺機器に対して受信確認の応答を返す第17の手順とを更に設けたことを特徴とする。
【0016】
請求項6においては、ハンドシェイクパケット(ACKパケット,NAKパケット,STALLパケット)やフレームパケットについてホスト側通信装置及び周辺機器側通信装置が終端することができるので、ホストコントローラとホスト側通信装置との間、並びに周辺機器側通信装置と周辺機器との間の帯域を有効活用することが可能になる。
【0017】
請求項7は、請求項6のUSB通信方法において、前記ホスト側通信装置及び周辺機器側通信装置は、通信モードがアイソクロナス転送か否かを識別し、その結果に応じて制御の内容を変更することを特徴とする。
USB通信のアイソクロナス転送においては、ACKパケットなどの応答確認を行わない。請求項7では、通信モードがアイソクロナス転送か否かを識別して制御を行うので、アイソクロナス転送にも対応できる。
【0018】
【発明の実施の形態】
本発明のUSB通信方法の1つの実施の形態について図1〜図10を参照して説明する。この形態は全ての請求項に対応する。
図1はホスト側通信装置の動作(1)を示すフローチャートである。図2は周辺機器側通信装置の動作(1)を示すフローチャートである。図3はホスト側通信装置の動作(2)を示すフローチャートである。図4は周辺機器側通信装置の動作(2)を示すフローチャートである。図5は通信システムの主要部の構成例を示すブロック図である。
【0019】
図6は下り方向の通信動作を示すシーケンス図である。図7は上り方向の通信動作を示すシーケンス図である。図8は通信システムの主要部の構成例を示すブロック図である。図9はアイソクロナス転送モードの下り方向の通信動作を示すシーケンス図である。図10はアイソクロナス転送モードの上り方向の通信動作を示すシーケンス図である。
【0020】
この形態では、請求項1における第1の手順,第2の手順,第3の手順,第4の手順,第5の手順,第6の手順,第7の手順,第8の手順,第9の手順,第10の手順,第11の手順,第12の手順及び第13の手順は、それぞれステップS11,S12,S13,S15,S17,S42,S22,S23,S24,S25,S27,S28及びS32に相当する。
【0021】
また、請求項6における第14の手順,第15の手順,第16の手順及び第17の手順は、それぞれステップS14,S18,S19及びS30に相当する。この形態においては、図5又は図8に示すような通信システムに本発明を適用する場合を想定している。
図5において、例えばパーソナルコンピュータ上に配置されるホストコントローラ10にはUSBインタフェース11が設けられ、周辺機器40にもUSBインタフェース41が設けられている。
【0022】
一般的な接続形態では、ホストコントローラ10のUSBインタフェース11と周辺機器40のUSBインタフェース41とを1つのUSBケーブルで直接接続することになるが、図5の例ではホストコントローラ10と周辺機器40との間にホスト側通信装置20及び周辺機器側通信装置30を介在するように接続してある。
【0023】
すなわち、ホストコントローラ10のUSBインタフェース11はUSBケーブル51を介してホスト側通信装置20と接続され、周辺機器40のUSBインタフェース41はUSBケーブル52を介して周辺機器側通信装置30と接続され、ホスト側通信装置20と周辺機器側通信装置30との間は有線の通信回線53で接続されている。
【0024】
ホスト側通信装置20にはUSBインタフェース21,通信制御部22,通信インタフェース23,誤り補償制御部24及び記憶部25が設けてあり、周辺機器側通信装置30には通信インタフェース31,通信制御部32,USBインタフェース33及び誤り補償制御部34が設けてある。
【0025】
USBインタフェース11,21,31及び41は、いずれもUSB規格の仕様に従って動作する通信インタフェースである。
なお、ホスト側通信装置20と周辺機器側通信装置30との間の接続は有線に限らない。すなわち、図8に示すように無線通信インタフェース61,62を設ければホスト側通信装置20と周辺機器側通信装置30とを無線回線で接続することができる。
【0026】
図5及び図8に示す通信システムにおいては、ホスト側通信装置20及び周辺機器側通信装置30がホストコントローラ10と周辺機器40との間の通信を中継することにより、本発明特有の動作が実現する。
ホスト側通信装置20に設けられた誤り補償制御部24及び周辺機器側通信装置30に設けられた誤り補償制御部34は、ホスト側通信装置20と周辺機器側通信装置30との間で通信する際に、再送制御を含む誤り補償制御を行う。この誤り補償制御により、ホストコントローラ10と周辺機器40との間でデータの不一致が生じるのを防止する。
【0027】
また、周辺機器側通信装置30は周辺機器40における電力消費量の大きさや、周辺機器40がUSBインタフェース33と実際に接続されているか否かを表す脱着情報を検出し、それらの情報をホスト側通信装置20を介してホストコントローラ10に送信する。
ホスト側通信装置20の動作の主要部は図1及び図3に示されたとおりであり、周辺機器側通信装置30の動作の主要部は図2及び図4に示されたとおりである。また、図1に示す内容はホスト側通信装置20がホストコントローラ10からの情報を受け取った場合の動作であり、図3に示す内容はホスト側通信装置20が周辺機器側通信装置30からの情報を受け取った場合の動作である。
【0028】
また、図2に示す内容は周辺機器側通信装置30がホスト側通信装置20側からの情報を受け取った場合の動作であり、図4に示す内容は周辺機器側通信装置30が定期的に行う動作である。
実際のホスト側通信装置20及び周辺機器側通信装置30の動作について説明する前に、一般的なUSB規格の通信動作について以下に説明する。
【0029】
情報は基本的にトークンパケット,データパケット,ハンドシェイクパケットの順に送信される。
トークンパケットは、どのようなデータをどの方向に流すかなどを指示するためのパケットである。トークンパケット内のPID(4ビットの識別子)により、セットアップ,IN,OUT,SOF,データ,NAK,ACK,STALLなどが区別される。
【0030】
データパケットは伝送するデータ本体を表す。ハンドシェイクパケットは、前に送られたであろうパケットが受信されたか否かの通知に利用されるパケットであり、ACKパケット,NAKパケット及びSTALLパケットの3種類がある。
これらのパケットは連続的に送信される。連続するパケットは同方向でない場合が多い。また、基本的にACKは前パケットと逆方向に流れる。更に、データパケットは存在しない場合もある。
【0031】
データの伝送方向を表す「IN」は、ホストコントローラに入力される方向を表し、「OUT」はホストコントローラから周辺機器に向かう方向を表している。
また、SOFは1msec毎にホストコントローラから送信されるパケットである。エンドポイント(Endpoint)は、トークンパケット内に記載されている値であり、パケットの引き渡し先の周辺機器のアプリケーションを特定するために利用される。
【0032】
次に、図1に示すホスト側通信装置20の動作について説明する。
ホストコントローラ10とホスト側通信装置20との間で通信を開始すると、ステップS10でホストコントローラ10からのトークンパケットをホスト側通信装置20が受信する。
【0033】
この場合、ホスト側通信装置20は受信したトークンパケットを調べてホストコントローラ10がINパケットの送信要求(周辺機器に対して)を行っているか否かを識別する。すなわち、INパケットフラグの有無をステップS11で調べる。INパケットの場合にはステップS16に進み、それ以外、すなわちセットアップパケットやOUTパケットの場合にはステップS12に進む。
【0034】
ステップS12では、続くデータパケットがホストコントローラ10から到着するか否かを識別する。そして、ホストコントローラ10からのデータパケットが到着した場合にはそれをホスト側通信装置20が受信する。
続くステップS14では、受信したパケットに対する応答としてホスト側通信装置20はACKをホストコントローラ10に返信する。
【0035】
次のステップS15では、ホストコントローラ10から受信したトークンパケット及びデータパケット(もしあれば)をホスト側通信装置20が周辺機器側通信装置30に送信する。
受信したトークンパケットがINパケットの送信要求であった場合には、ステップS11からS16に進む。この場合、ホスト側通信装置20はトークンパケットに記述されているエンドポイント/PIDを参照し、該当するデータパケットが記憶部25のメモリに保存されているか否かを調べる。
【0036】
該当するデータパケットが記憶部25に保存されている(前に周辺機器40から受け取った結果)場合には、ステップS16からS17に進み、記憶部25に保持されているデータ(同じ送信元(周辺機器40)からのデータ)の中で最も古いデータパケットを取り出してホストコントローラ10に送信する。
ここで送信したデータパケットに対する応答としてホストコントローラ10のACKパケットをホスト側通信装置20が受信した場合には、ホスト側通信装置20はステップS18で該当するデータパケットを記憶部25のメモリから削除する。
【0037】
また、ステップS16で該当する要求されたデータパケットが記憶部25のメモリに存在しない場合には、ステップS19に進み、ホスト側通信装置20はNAKをホストコントローラ10に返信する。
一方、ホスト側通信装置20が周辺機器側通信装置30からの情報を受け取った場合には、図3に示す動作を実行する。
【0038】
すなわち、ステップS41でホスト側通信装置20は周辺機器側通信装置30からのデータパケットを受信する。
ステップS42では、受け取ったパケットに記載されたPID,エンドポイントを抽出し、このデータパケットをPID,エンドポイントに対応付けて記憶部25のメモリに蓄積する。
【0039】
これらの動作を繰り返し行う。
次に、図2に示す周辺機器側通信装置30の動作について説明する。
ホストコントローラ10から送信されホスト側通信装置20で中継されて送出されたトークンパケットは、周辺機器側通信装置30が図2のステップS21で受信する。
【0040】
周辺機器側通信装置30は、このトークンパケットを受信した後、次のステップS22でトークンパケットの内容を調べ、それがINパケットの送信要求であるか否か、すなわちINパケットフラグがあるか否かを識別する。
INパケットの送信要求でない場合には、ステップS22からS23に進み、続くデータパケットがホスト側通信装置20から到着するか否かを確認する。データパケットが到着した場合には、そのデータパケットを周辺機器側通信装置30がステップS24で受信する。
【0041】
その後、周辺機器側通信装置30はステップS21で受信したトークンパケットと受信したデータパケット(もしあれば)とをステップS25で周辺機器40に対して送信する。
また、ステップS25で送信したパケットに対する周辺機器40からの応答であるACKパケットを周辺機器側通信装置30が受信したか否かをステップS26で確認する。
【0042】
ACKパケットが到着しない場合には、ステップS26からS25に戻って同じパケットを再び送信する。ACKパケットが到着するとステップS21の処理に戻る。
一方、周辺機器側通信装置30が受信したホストコントローラ10からのトークンパケットがINパケットの送信要求であった場合には、ステップS22からS27に進む。
【0043】
ステップS27では、周辺機器側通信装置30はステップS21で受信したトークンパケットを周辺機器40に対して送信する。
また、ステップS27で送信したパケットに対する応答として周辺機器40から送信されるパケットを周辺機器側通信装置30はステップS28で受信する。ステップS29では、ステップS28で受信したパケットがデータパケットであるか否かを識別する。そして、データパケットである場合にはステップS30に進む。
【0044】
ステップS30では、周辺機器40からのデータパケットに対する応答として、周辺機器側通信装置30はACKを周辺機器40へ送信する。
ステップS31では、周辺機器側通信装置30はホストコントローラ10からのトークンパケットに記載された宛先のPID,エンドポイントをステップS28で周辺機器40から受信したデータパケットに付加する。
【0045】
そして、このデータパケットを周辺機器側通信装置30は次のステップS32でホスト側通信装置20に送信する。
ステップS28でデータパケット以外のパケット(ACK,NAK,STALL)を受信した場合には、ステップS29からS21に戻る。
周辺機器側通信装置30は、これらの動作を繰り返し行う。
【0046】
また、周辺機器側通信装置30は図4に示す処理を周期的に実行する。
図4のステップS51では、周辺機器側通信装置30は周辺機器40に対してSOFフレームを送信すると共に、SOFフレームに入力する値(フレーム番号)を1増やす。
その後、周辺機器側通信装置30はステップS52で1msecの時間待ちを行った後、再びステップS51に戻る。
【0047】
従って、周辺機器40には周辺機器側通信装置30から1msecの間隔で周期的にSOFフレームが入力される。
次に、システム全体の動作例について図6,図7を参照して説明する。ホストコントローラ10から周辺機器40へ向けて下り方向にデータを伝送する場合の動作が図6に示されており、周辺機器40からホストコントローラ10に向けて上り方向にデータを伝送する場合の動作が図7に示されている。
【0048】
図6に示すように、ホストコントローラ10がトークンパケットP12及びデータパケットP11を周辺機器40に向けて送信すると、ホスト側通信装置20はそれを受信してからACKパケットP13をホストコントローラ10に返す。また、ホスト側通信装置20はホストコントローラ10から受信した各パケットをトークンパケットP15及びデータパケットP14として周辺機器側通信装置30へ送信する。
【0049】
周辺機器側通信装置30は、ホスト側通信装置20から送信された各パケットを受信し、それをトークンパケットP17及びデータパケットP16として周辺機器40に送信する。
【0050】
周辺機器側通信装置30からのパケットを周辺機器40が受信すると周辺機器40はACKパケットP18を周辺機器側通信装置30に返す。
ここで、ホストコントローラ10からのパケットP11,P12の送信に対する応答が、周辺機器40ではなくホスト側通信装置20から直接、ACKパケットP13としてホストコントローラ10に返されるので、ホスト側通信装置20と周辺機器側通信装置30との間の伝送遅延時間が大きい場合であっても、短時間で応答を返すことができる。
【0051】
従って、ホストコントローラ10と周辺機器40との間でUSB規格の仕様を超える長さの通信網を形成した場合であっても、正常な通信が可能である。
一方、周辺機器40からホストコントローラ10へデータを送る場合には、図7に示すような動作が実施される。
図7において、ホストコントローラ10はそれが周辺機器40宛に送信するトークンパケットP21により、周辺機器40に対してデータの送信が可能である(送信を許可した)ことを通知する。
【0052】
ホスト側通信装置20はトークンパケットP21を受信するとそれに対して応答するが、この時点ではホスト側通信装置20は周辺機器40からのデータパケットをまだ受け取っておらずメモリに保持していないので、NAKパケットP22をホストコントローラ10に返す。
ホスト側通信装置20は、ホストコントローラ10から受信したトークンパケットP21をトークンパケットP23として周辺機器側通信装置30に転送する。
【0053】
周辺機器側通信装置30は、ホスト側通信装置20からのトークンパケットP23を受信すると、それをトークンパケットP24として周辺機器40に転送する。
周辺機器40は、周辺機器側通信装置30から転送されたトークンパケットP24の受信により、自分に送信権があることを知る。そして、周辺機器40はデータパケットP25を作成しそれを周辺機器側通信装置30に送信する。
【0054】
周辺機器側通信装置30は、周辺機器40からのデータパケットP25を受信すると、それに対する応答としてACKパケットP26を周辺機器40に送信する。また、周辺機器側通信装置30は周辺機器40からのデータパケットP25を送信元の情報を付加したデータパケットP27としてホスト側通信装置20に転送する。
【0055】
なお、ACKパケットP26の送信とデータパケットP27の送信のタイミングについてはどちらが先でもよいし同時でもよい。
ホスト側通信装置20は、周辺機器側通信装置30から転送されたデータパケットP27を受信すると、ステップS71で、送信元の情報に対応付けてそのデータパケットをメモリに保持する。
【0056】
その後、ホストコントローラ10から再び周辺機器40に対してデータを送信可能であることを表すトークンパケットP30が送信される。このトークンパケットP30をホスト側通信装置20が受信すると、該当するデータパケットがホスト側通信装置20のメモリに保持されているので、ホスト側通信装置20はそのデータをメモリから取り出してデータパケットP31としてホストコントローラ10に送信する。
【0057】
ホストコントローラ10は、ホスト側通信装置20からのデータパケットP31を受信すると、それを受信したことを表す応答としてACKパケットP32をホスト側通信装置20に返す。
この場合、ホスト側通信装置20はACKパケットP32を受信すると該当するデータパケットをメモリ上から削除する。
【0058】
また、ホスト側通信装置20はトークンパケットP30を受信すると、それをトークンパケットP33として周辺機器側通信装置30に転送する。周辺機器側通信装置30は、トークンパケットP33を受信するとそれをトークンパケットP34として周辺機器40に送信する。
【0059】
このように、周辺機器40が送信するデータパケットを予めホスト側通信装置20のメモリ上に保持しておき、ホストコントローラ10からのトークンパケットを受信した時に、ホスト側通信装置20が直接ホストコントローラ10に対して該当するデータパケットを送信するので、ホスト側通信装置20と周辺機器側通信装置30との間の伝送遅延時間が大きい場合であっても、ホストコントローラ10が周辺機器40に対して送信を要求してから短時間で応答することができる。このため、ホストコントローラ10と周辺機器40との間の距離が大きい場合であっても、USBの規格に違反することなく情報を正常に伝送できる。
【0060】
以上に示した動作例は、一般的な転送モードの場合を想定している。USB規格ではACKパケットの存在しないアイソクロナス転送モードを利用することもできる。
そこで、アイソクロナス転送モードを使う可能性がある場合には、図9,図10に示すようにホスト側通信装置20及び周辺機器側通信装置30の動作を変更すればよい。
【0061】
図9において、ホスト側通信装置20はステップS81でアイソクロナス転送モードか否かを識別し、周辺機器側通信装置30はステップS82でアイソクロナス転送モードか否かを識別する。
図9の例では、アイソクロナス転送モードの場合を想定しているので、図6に示したACKパケットP13やACKパケットP18の送信は省略される。
【0062】
同様に、図10においてホスト側通信装置20はステップS83でアイソクロナス転送モードか否かを識別し、周辺機器側通信装置30はステップS84でアイソクロナス転送モードか否かを識別する。
図10の例では、アイソクロナス転送モードの場合を想定しているので、図7に示した各パケットP22,P26,P32の送信は省略されている。
【0063】
なお、ホスト側通信装置20と周辺機器側通信装置30との間の通信回線においてデータパケットの転送に失敗すると、ホストコントローラ10と周辺機器40との間で伝送したデータの不一致が生じることになる。しかし、この例では誤り補償制御部24,34の制御によりホスト側通信装置20と周辺機器側通信装置30との間でデータ伝送に誤りが発生した場合には再送などの手続きを行うので、確実にデータが伝送される。これにより、ホストコントローラ10と周辺機器40との間でデータの不一致が生じるのが防止される。
【0064】
【発明の効果】
本発明によれば、USBの通信区間を従来より大幅に延長することが可能になる。
【図面の簡単な説明】
【図1】ホスト側通信装置の動作(1)を示すフローチャートである。
【図2】周辺機器側通信装置の動作(1)を示すフローチャートである。
【図3】ホスト側通信装置の動作(2)を示すフローチャートである。
【図4】周辺機器側通信装置の動作(2)を示すフローチャートである。
【図5】通信システムの主要部の構成例を示すブロック図である。
【図6】下り方向の通信動作を示すシーケンス図である。
【図7】上り方向の通信動作を示すシーケンス図である。
【図8】通信システムの主要部の構成例を示すブロック図である。
【図9】アイソクロナス転送モードの下り方向の通信動作を示すシーケンス図である。
【図10】アイソクロナス転送モードの上り方向の通信動作を示すシーケンス図である。
【符号の説明】
10 ホストコントローラ
11 USBインタフェース
20 ホスト側通信装置
21 USBインタフェース
22 通信制御部
23 通信インタフェース
24 誤り補償制御部
25 記憶部
30 周辺機器側通信装置
31 通信インタフェース
32 通信制御部
33 USBインタフェース
34 誤り補償制御部
40 周辺機器
41 USBインタフェース
51,52 USBケーブル
53 通信回線
61,62 無線通信インタフェース

Claims (7)

  1. ホスト装置側に接続されたホストコントローラと、所定の周辺機器との間でUSBの規格に従って通信するためのUSB通信方法において、前記ホストコントローラに接続されたホスト側通信装置と、前記周辺機器に接続された周辺機器側通信装置とを用いて、前記ホストコントローラとホスト側通信装置との間、前記周辺機器と周辺機器側通信装置との間、前記ホスト側通信装置と周辺機器側通信装置との間でそれぞれ通信を行うと共に、
    前記ホストコントローラからのパケットをホスト側通信装置が受信した場合に、ホスト側通信装置が前記パケットから第1の伝送方向を識別する第1の手順と、
    前記第1の伝送方向が前記ホストコントローラに入力される方向でない場合には、次に続くデータパケットの有無をホスト側通信装置が識別する第2の手順と、
    前記第2の手順で続くデータパケットがある場合には、そのデータパケットを前記ホスト側通信装置がホストコントローラから受信する第3の手順と、
    前記ホスト側通信装置が受信した前記ホストコントローラからのパケットを前記周辺機器側通信装置に転送する第4の手順と、
    前記第1の伝送方向が前記ホストコントローラに入力される方向である場合には、前記ホスト側通信装置は該当するデータパケットが自身のメモリに保持されているか否かを識別し、保持されている場合には該当するデータパケットを前記ホストコントローラに転送する第5の手順と、
    前記ホスト側通信装置が周辺機器側通信装置からのデータパケットを受信してメモリに保存する第6の手順と、
    前記周辺機器側通信装置がホスト側通信装置からのパケットを受信した場合に、前記パケットから前記周辺機器側通信装置が第2の伝送方向を識別する第7の手順と、
    前記第2の伝送方向が前記ホストコントローラに入力される方向でない場合には、次に続くデータパケットの有無を前記周辺機器側通信装置が識別する第8の手順と、
    前記第8の手順で続くデータパケットがある場合には、そのデータパケットを前記周辺機器側通信装置が受信する第9の手順と、
    前記第2の伝送方向が前記ホストコントローラに入力される方向でない場合に、前記周辺機器側通信装置が受信したパケットを前記周辺機器に転送する第10の手順と、
    前記第2の伝送方向が前記ホストコントローラに入力される方向である場合に、前記周辺機器側通信装置が受信したパケットを前記周辺機器に転送する第11の手順と、
    前記第2の伝送方向が前記ホストコントローラに入力される方向である場合に、前記周辺機器からのパケットを前記周辺機器側通信装置が受信する第12の手順と、
    前記第12の手順でデータパケットを受信した場合には、前記周辺機器側通信装置が受信したデータパケットに宛先情報を付加して前記ホスト側通信装置に転送する第13の手順と
    を設けたことを特徴とするUSB通信方法。
  2. 請求項1のUSB通信方法において、前記ホスト側通信装置と周辺機器側通信装置との間で無線回線を用いて通信を行うことを特徴とするUSB通信方法。
  3. 請求項1のUSB通信方法において、前記ホスト側通信装置と周辺機器側通信装置との間で、少なくとも周辺機器の消費電力に関する情報を伝送することを特徴とするUSB通信方法。
  4. 請求項1のUSB通信方法において、前記ホスト側通信装置と周辺機器側通信装置との間で、少なくともUSBインタフェースに対する周辺機器の脱着に関する情報を伝送することを特徴とするUSB通信方法。
  5. 請求項1のUSB通信方法において、前記ホスト側通信装置と周辺機器側通信装置との間で通信を行う際に、再送を含む誤り補償制御を行うことを特徴とするUSB通信方法。
  6. 請求項1のUSB通信方法において、
    前記第3の手順でホストコントローラからのデータパケットを受信した場合に、前記ホスト側通信装置がホストコントローラに対して受信確認の応答を返す第14の手順と、
    前記第5の手順で前記ホスト側通信装置がデータパケットを前記ホストコントローラに送信した後で、前記ホストコントローラから受信確認の応答を受け取った場合には、送信したデータパケットをメモリから削除する第15の手順と、
    前記第1の伝送方向が前記ホストコントローラに入力される方向である場合に、前記ホスト側通信装置のメモリに該当するデータパケットが存在しない場合には、前記ホスト側通信装置が前記ホストコントローラに対して存在しないことを表す応答を送信する第16の手順と、
    前記第12の手順で周辺機器側通信装置が周辺機器からのデータパケットを受信した場合には、周辺機器側通信装置が周辺機器に対して受信確認の応答を返す第17の手順と
    を更に設けたことを特徴とするUSB通信方法。
  7. 請求項6のUSB通信方法において、前記ホスト側通信装置及び周辺機器側通信装置は、通信モードがアイソクロナス転送か否かを識別し、その結果に応じて制御の内容を変更することを特徴とするUSB通信方法。
JP2003037645A 2003-02-17 2003-02-17 Usb通信方法 Pending JP2004246750A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003037645A JP2004246750A (ja) 2003-02-17 2003-02-17 Usb通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003037645A JP2004246750A (ja) 2003-02-17 2003-02-17 Usb通信方法

Publications (1)

Publication Number Publication Date
JP2004246750A true JP2004246750A (ja) 2004-09-02

Family

ID=33022380

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003037645A Pending JP2004246750A (ja) 2003-02-17 2003-02-17 Usb通信方法

Country Status (1)

Country Link
JP (1) JP2004246750A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009059018A (ja) * 2007-08-30 2009-03-19 Seiko Epson Corp 情報処理システム、情報処理装置および情報処理システムのデータ転送方法
WO2009050761A1 (ja) * 2007-10-15 2009-04-23 Fujitsu Limited ストレージシステム、ストレージ制御装置、ストレージシステムの制御方法及びそのプログラム
JP2015528163A (ja) * 2012-07-05 2015-09-24 オムロン マネージメント センター オブ アメリカ, インコーポレイテッドOmron Management Center Of America, Inc. 中間トランスポートを介したusbシグナリングのための方法および装置
WO2023032147A1 (ja) * 2021-09-03 2023-03-09 日本電信電話株式会社 Usb伝送システム、装置、プログラム及び方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009059018A (ja) * 2007-08-30 2009-03-19 Seiko Epson Corp 情報処理システム、情報処理装置および情報処理システムのデータ転送方法
WO2009050761A1 (ja) * 2007-10-15 2009-04-23 Fujitsu Limited ストレージシステム、ストレージ制御装置、ストレージシステムの制御方法及びそのプログラム
JP2015528163A (ja) * 2012-07-05 2015-09-24 オムロン マネージメント センター オブ アメリカ, インコーポレイテッドOmron Management Center Of America, Inc. 中間トランスポートを介したusbシグナリングのための方法および装置
WO2023032147A1 (ja) * 2021-09-03 2023-03-09 日本電信電話株式会社 Usb伝送システム、装置、プログラム及び方法

Similar Documents

Publication Publication Date Title
JP3045985B2 (ja) 接続確立方法、通信方法、状態変化伝達方法、状態変化実行方法、無線装置、無線デバイス、及びコンピュータ
US6381666B1 (en) Method and apparatus for extending the range of the universal serial bus protocol
AU2007278728B2 (en) Method and apparatus for distributing usb hub functions across a network
EP1750401B1 (en) USB 1.1 over a high speed link
US7493431B2 (en) Method and apparatus for extending the range of the universal serial bus protocol
US20090063717A1 (en) Rate Adaptation for Support of Full-Speed USB Transactions Over a High-Speed USB Interface
US7117283B2 (en) Multi-master extended I2C protocol
JP4432385B2 (ja) データ中継システム
WO2003034206B1 (en) Host network interface device and drive network interface device
JP2007088775A (ja) 無線通信システム、無線通信装置及び方法
EP1516261B1 (en) Bus system, station for use in a bus system, and bus interface
CN104461978B (zh) 单向数据传输的方法及装置
US20130332504A1 (en) Station, target apparatus, initiator apparatus, communication system, and communication method
EP2685385A1 (en) Network system
CN100391150C (zh) 数据传送装置及数据传送方法
JP2004246750A (ja) Usb通信方法
JP2006120115A (ja) 情報機器及びその制御方法
US9619005B2 (en) Apparatus and method for saving power of USB device
JP2006243866A (ja) 通信方式
WO2012019376A1 (zh) 无线通信终端网络设备功能的实现方法及装置
CA2269961C (en) Method and apparatus for extending the range of the universal serial bus protocol as it applies to asynchronous transfers
JP2002290442A (ja) 通信装置、プログラム、情報記憶媒体および通信制御方法
JP2948380B2 (ja) データ通信装置
JP3915313B2 (ja) Plcにおけるlan通信方式
CN115037795A (zh) 一种嵌入式设备多机通信方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070814

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080115