JP2005129010A - デバイス側コントローラ,ホスト側コントローラ,通信コントローラ,usbシステム,パケット通信方法,パケット通信プログラムおよび記録媒体 - Google Patents
デバイス側コントローラ,ホスト側コントローラ,通信コントローラ,usbシステム,パケット通信方法,パケット通信プログラムおよび記録媒体 Download PDFInfo
- Publication number
- JP2005129010A JP2005129010A JP2004216495A JP2004216495A JP2005129010A JP 2005129010 A JP2005129010 A JP 2005129010A JP 2004216495 A JP2004216495 A JP 2004216495A JP 2004216495 A JP2004216495 A JP 2004216495A JP 2005129010 A JP2005129010 A JP 2005129010A
- Authority
- JP
- Japan
- Prior art keywords
- host
- packet
- communication
- controller
- side controller
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 422
- 238000000034 method Methods 0.000 title claims description 64
- 230000005540 biological transmission Effects 0.000 claims abstract description 204
- 230000003287 optical effect Effects 0.000 claims description 115
- 238000012546 transfer Methods 0.000 claims description 110
- 230000006870 function Effects 0.000 claims description 71
- 230000004044 response Effects 0.000 claims description 19
- 230000008569 process Effects 0.000 description 25
- 238000012545 processing Methods 0.000 description 13
- 238000001514 detection method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 9
- 230000006866 deterioration Effects 0.000 description 7
- 230000010365 information processing Effects 0.000 description 7
- 230000007704 transition Effects 0.000 description 7
- 230000015654 memory Effects 0.000 description 6
- 206010009944 Colon cancer Diseases 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 101000941170 Homo sapiens U6 snRNA phosphodiesterase 1 Proteins 0.000 description 3
- 102100031314 U6 snRNA phosphodiesterase 1 Human genes 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 208000024891 symptom Diseases 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4045—Coupling between buses using bus bridges where the bus bridge performs an extender function
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
【課題】 USB規格よりも低速な通信路を用いた場合でも、通信効率の低下を抑制可能なUSBシステムを提供する。
【解決手段】 ホスト側コントローラ11のホストSM32が、ホスト10からデバイス13に向けて送信されるSOFパケットを受信した場合に、このパケットをデバイス側に送信することを回避する。また、デバイス側コントローラ12のデバイスSM42が、ホスト10とデバイス13との接続の確立後、所定周期で、SOFパケットをデバイス13に送信する。従って、コントローラ11・12間でSOFパケットを送信する必要がない。このため、通信速度の遅いコントローラ11・12間の通信帯域を、SOFパケット以外の、他のパケットのためだけに利用できる。従って、これら他のパケットの通信効率を向上させられる。
【選択図】 図1
【解決手段】 ホスト側コントローラ11のホストSM32が、ホスト10からデバイス13に向けて送信されるSOFパケットを受信した場合に、このパケットをデバイス側に送信することを回避する。また、デバイス側コントローラ12のデバイスSM42が、ホスト10とデバイス13との接続の確立後、所定周期で、SOFパケットをデバイス13に送信する。従って、コントローラ11・12間でSOFパケットを送信する必要がない。このため、通信速度の遅いコントローラ11・12間の通信帯域を、SOFパケット以外の、他のパケットのためだけに利用できる。従って、これら他のパケットの通信効率を向上させられる。
【選択図】 図1
Description
本発明は、ホストコンピューター(ホスト)と、その周辺機器(デバイス)との間におけるUSB通信(USB規格に沿ったデータ通信)を実現するための通信システムである、USBシステムに関するものである。
ユニバーサルシリアルバス(Universal Serial Bus:以下USB)は、パーソナルコンピューター等のホストに接続して用いる周辺装置(デバイス)に関する、拡張性の自由度を高めるために開発されたインタフェース仕様である。そして、このUSBは、ホストと様々なUSB対応デバイスとの通信を、共通のバスラインを用いて実施できるシリアルインタフェース規格である。
USBでは、原理上、1つのシステムの中で、1台のホスト(USBホスト)と、最大127台までのデバイスとを、同一バス上に接続できる。これらの接続は、物理的には、ツリー型のネットワーク構造をとっている。また、論理的には、ホスト(クライアントソフトウェア)とデバイス(USBファンクション)とが、1対1で通信する接続形態であるといえる。このような接続形態を維持するために、各デバイスは、時分割で(タイムシェアをして)、ホストと通信を行う。また、ホストは、時分割のスケジューリングを行う。
USB1.xでは、データ転送速度の異なる2つのモード、すなわち、1.5Mbpsのロースピードモード(LS)、および、12Mbpsのフルスピードモード(FS)が規定されている。
しかし、近年、ハードディスク,DVD(Digital Versatile Disc)などの高速データ転送の必要なデバイス(アプリケーション)にも、USBを適用するようになってきている。このため、前記のような転送速度では不十分であった。
そこで、USB2.0という新しい規格が策定されている。このUSB2.0では、480Mbpsの速度でデータ転送を行うハイスピードモード(HS)が追加されている。
ここで、USBでのデータ通信(データ転送)の構造について簡単に説明する。USBでのデータ転送は、ホストおよびデバイスにそれぞれ備えられているバッファ間で行われる。
デバイス側のバッファは、エンドポイントと呼ばれるFIFO(First In First Out)バッファである。各デバイスは、最大で16個のエンドポイントを持つことが可能である。また、各エンドポイントには、識別のための番号が付けられている。
そして、ホストは、データ転送の際に、デバイスのアドレスとエンドポイント番号とを用いて、所望のエンドポイントにアクセスするようになっている。
なお、エンドポイント0(番号が0のエンドポイント)は、デバイスをUSBに接続した直後の状態(コンフィギュレーション前の状態)から設定され、ホストとの間のコントロール転送の通信(初期化のための通信など)のために使用される。
また、ホスト−デバイス間のデータ通信は、フレームと呼ばれる通信枠を用いて行われる。このフレームは、所定周期で、ホスト−デバイス間で繰り返し転送されている(LS,FSモードでは1ms周期、またHSモードでは125us周期)。そして、全てのデータが、このフレームの中でやり取りされている。
また、このフレームは、複数のトランザクションから成り立っており、トランザクションは、複数のパケットから構成されている。
パケットは、トランザクションを構成する最小の通信単位であり、実際に通信されるデータの基本単位である。また、パケットには、内容に応じて、トークンパケット、データパケット、ハンドシェイクパケットなど、いくつかの種類がある。そして、このパケットを複数含み、意味のあるデータ転送の単位となったものをトランザクションと呼ぶ。
すなわち、USBでのデータ通信は、フレームの中でトランザクションごとに行われる。そして、1つのトランザクションでは、ホスト−デバイス間で複数のパケットが転送されるようになっている。
また、上記のトークンパケットには、各デバイスのアドレスおよびエンドポイント番号が含まれており、これによって、ホストが、データ通信の相手先を指定できるようになっている。
図11は、USBパケットの種別を示す説明図である。この図に示すように、パケットには、トークンパケット、データパケット、ハンドシェイクパケット、および特殊パケットがある。
また、トークンパケットには、INパケット、OUTパケット、SETUPパケット、SOFパケットがある。それぞれのパケットは、図11に示す目的で用いられる。データパケットには、DATA0パケット、DATA1パケットなどがある。ハンドシェイクパケットには、ACKパケット、NAKパケット、STALLパケット、NYETパケットがある。また、特殊パケットとして、PINGパケットなどがある。
また、図12は、USBのパケットフォーマットを示す説明図である。この図に示すPIDは、パケットの識別子であり、8ビットで構成される。また、トークンパケットには、CRC5、データパケットにはCRC16がそれぞれ付加されている。これらのCRCは、受信パケットにおける誤りの有無を判別するために用いられるものである。
なお、トークンパケットの1つであるSOF(Start of Frame)パケットは、ホストの発行するフレームの始まりを示すパケットである。そして、このSOFパケットは、ホストとデバイスとの間のバスがリセットされていないことを示す機能を有している。
USBのケーブルは、D+,D−の2本の信号線があり、それ以外に電源とグランドの都合4本の線を含んでいる。また、USB2.0においては、ホストは、HSモードでパスリセット状態を得る場合、バスリセット信号として、D+信号線およびD−信号線を、ともに10ms以上、ローレベル(SE0状態)とする。
そして、デバイスは、このSE0状態を3ms以上検出することで、バスリセット状態であると認識する。なお、SE0状態は、アイドル状態と同一である。このため、デバイスは、パケットを受信しない時間が3ms以上である場合に、バスリセット状態であると認識し、ホストとの接続を切断してしまう。
このような切断が行われると、デバイスとの物理的な接続をしなおしても(ケーブルのコネクタを抜き差ししても)、バスを復帰させる(デバイスを再認識する)ことは不可能となることが多い。従って、バスを復帰させるためには、ホストを再起動する必要が生じる。
そこで、USBシステムでは、このような事態を回避するために、フレームの先頭にSOFパケットを配置して、ホストからデバイスに対して、周期的かつ優先的にSOFパケットを送信するようになっている。すなわち、ホストは、USBシステム(ケーブル)に接続されているデバイス(バスリセットされていないデバイス)に対し、LS,FSモードでは1ms周期で、またHSモードでは、125us周期で、SOFパケットを常に送信するようになっている。
なお、USB規格では、このようなSOFパケットの送信を、他のパケットの送信に優先して行うように設定されている。また、デバイスは、このようなSOFパケットを受信しても、ホストに返信を行うことはない。また、このSOFパケットは、アイソクロナス転送時にホストとデバイスとの同期をとるためにも用いられる。
次に、USB通信における各トランザクションについて説明する。USB2.0規格では、ホストがデバイスからデータを読み出す場合、INトランザクションが用いられる。以下に、図13を用いて、INトランザクションについて説明する。
まず、T301において、ホストは、デバイスに向けてINパケットを送信し、INトランザクションの開始を通知する。INパケットを受信したデバイスは、転送すべきデータのない場合、その旨を通知するNAKパケットを、T302においてホストに向けて送信する。NAKパケットを受信したホストは、送信すべきデータがデバイスにないことを認識する。そして、次の送信タイミング(T303)で、再びINパケットを送信する。
これを受信したデバイスは、転送すべきデータを既に有している場合、T304のタイミングで、ホストに向けてDATAパケットを送信する。ホストは、所定時間以内に誤りなくDATAパケットを受信すると、T305のタイミングで、データを正常に受信したことを示すACKパケットを、デバイスに向けて送信する。デバイスは、所定時間以内にACKパケットを受信することで、ホストに対して正常にデータを転送できたことを認識できる。
なお、T304でホストに送信されるDATAパケットには、CRC16の符号が付加されている。このため、ホスト(データ受信側)は、受信データにおける誤りの有無を判別できる。
なお、CRC16により、データに誤りがあると判別された場合は、ホストは、何もパケットを返さない。従って、この場合、デバイスは、ホストからACKパケットを所定時間内に受信できない。このため、デバイスは、ホストに対して正常にデータを転送できなかったことを認識し、INトランザクションが失敗に終わったと認識する。
以上のようなINトランザクションにより、ホストは、デバイスからデータを取得する(読み出す)ことが可能となる。
また、USB2.0規格では、ホストがデバイスにデータを書き込む場合、OUTトランザクションが用いられる。以下に、図14を用いて、OUTトランザクションについて説明する。
まず、T401において、ホストは、デバイスに対してOUTパケットを送信し、OUTトランザクションの開始を通知する。その後、ホストは、T402において、デバイスにDATAパケットを送信する。
デバイスは、受信したOUTパケットおよびDATAパケットのCRCチェックを行い、受信パケットにおける誤りの有無を判別する。受信パケットに誤りがないとき、デバイスは、受信したDATAパケットを処理できる状態であるならば、ACKパケットをホストに送信する。一方、DATAパケットを処理できる状態でなければ、デバイスは、ホストにNAKパケットを返す。また、受信パケットに誤りのある場合は、デバイスはホストに何も返さない。
図14においては、受信パケットに誤りがないが、データを処理できないとして、T403において、デバイスがNAKパケットをホストに返している。このNAKパケットを受信したホストは、デバイスが受信パケットを処理できる状態でないことを認識する。そして、デバイスの状態を把握するために、T404において、PINGパケットをデバイスに送信する。
PINGパケットを受信したデバイスは、データを処理できる状態であるならば、ACKパケットを、またデータを処理できる状態でなければNAKパケットをホストに送信する。
図14においては、T405において、デバイスが、データを処理できる状態であるとし、ACKパケットをホストに送信している。ホストは、PINGパケットに対してACKパケットが返ってきたことから、デバイスがデータを処理できる状態であることを認識する。
なお、ホストは、PINGパケットに対してNAKパケットを受信した場合、デバイスがデータを処理できない状態であると認識し、再びPINGパケットを送信する。ここで、ホストは、デバイスがデータを処理できる状態になるまで(ACKパケットを受信するまで)、PINGパケットの送信を繰り返す。
図14においては、ホストは、PINGパケットに対してACKパケットを受信したため、T406およびT407において、OUTパケットおよびDATAパケットを再送信する。
これを受信したデバイスは、今度はデータを処理できる状態である。このため、デバイスは、受信パケットのCRCチェック後、誤りがなければACKパケットを送信する。ホストは、ACKパケットを受信することで、OUTパケットおよびDATAパケットがデバイスに誤りなく転送され、またデバイスで処理されたことを認識し、OUTトランザクションを終了する。このようなOUTトランザクションにより、ホストは、デバイスにデータを書き込むことが可能となる。
次に、SETUPトランザクションについて説明する。SETUPトランザクションは、USB2.0規格において、ホストにデバイスを接続した際に、ホスト−デバイス間でのシステム的な接続を確立する(コンフィギュレーションを完成させる)ために行われるものである。なお、このトランザクションは、ホストが、デバイスのエンドポイント0に対してデータ転送を行うことで実行される。以下に、図15を用いて、SETUPトランザクションについて説明する。
SETUPトランザクションでは、まず、T501において、ホストがデバイスにSETUPパケットを送信し、SETUPトランザクションの開始を通知する。その後、ホストは、T502において、DATAパケットを送信する。デバイスは、受信したSETUPパケットおよびDATAパケットのCRCをチェックする。
そして、受信パケットに誤りがないと判別された場合、デバイスは、T503において、ACKパケットをホストに送信する。一方、デバイスは、受信したSETUPパケットおよびDATAパケットに誤りがあると判断された場合には、ホストに何も返さない。
ホストは、ACKパケットを受信することで、デバイスにSETUPパケットおよびDATAパケットを正しく転送できたことを認識し、SETUPトランザクションを終了する。
なお、DATAパケットの送信から所定時間以内にACKパケットを受信できない場合、ホストは、デバイスにSETUPパケットもしくはDATAパケットを正常に転送できなかったこと、すなわち、SETUPトランザクションが失敗に終わったことを認識する。
前記の方法により、ホスト・デバイス間でのSETUPトランザクションを行うことが可能となる。
ところで、近年、デジタルカメラ、PDA(personal digital assistant)などのモバイル機器にも、USB端子が搭載され、USBに対応可能になってきている。
これらのモバイル機器とホストとの接続には、クレイドル(cradle;ゆりかご)方式が多く用いられている。すなわち、ホストに接続されたクレイドルのUSBコネクタと、モバイル機器のUSBコネクタとを接続することで、USB伝送を可能としている。
これらのUSBコネクタは、物理的な接点を持つ。このため、コネクタの抜き差しにより、コネクタの劣化が進み、品質の高いデータ転送を行えなくなる可能性がある。
上記のような物理的な接点をなくす方法として、ホストとモバイル機器との間で、光を用いた空間伝送を行う技術がある。このような技術は、例えば、特許文献1に記載されている。
特開2000−284872号公報(公開日;2000年10月13日)
しかしながら、USB2.0のハイスピードモードに完全に対応するためには、480Mbpsの転送速度を保ちながらデータを空間伝送する必要がある。従って、ホストおよびデバイスに備える光通信部(光学系および送受信部)として、高いCDR(Clock Data Recovery)性能をもつものが必要となるため、コスト増を招来する。
そこで、このようなコスト増を抑えるために、光通信の転送速度を低くしてUSB2.0のデータ転送を行うことが考えられる。
図16は、ホストからホストの光通信部(ホスト光通信部)までの通信を480Mbpsで、ホスト光通信部からデバイスの光通信部(デバイス光通信部)までの通信を100Mbpsで、さらに、デバイス光通信部からデバイスまでの通信を480Mbpsで行う場合における、SOFパケットの送信の様子を示すタイミングチャートである。なお、このSOFパケットの送信は、バスがリセットされていないことをデバイスに示すためのものである。
図16に示すように、T601において、ホストから送信されたSOFパケットは、ホスト光通信部で光信号に変換され、デバイス光通信部に送信される。デバイス光通信部は、SOFパケットを受信すると、デバイスに対し、SOFパケットをリピート送信する。また、ホストは、デバイスからの返信を待たずに、125us後のT602において、新たなSOFパケットを再送信する。
しかしながら、このような構成では、光通信部間の転送速度が遅いため、SOFパケット送信にかかる時間が、USB2.0の本来の(ネイティブの)時間に比べて長くなる。さらに、SOFパケットは、通信速度によらず、125usごとに、優先的に送信される。このため、SOFパケットの送信による光通信帯域の占有率が上昇して、他のパケットを送信するための帯域が減ってしまい、ホスト−デバイス間の通信効率が著しく低下してしまうという問題があった。
本発明は、上記のような従来の問題点に鑑みてなされたものである。そして、その目的は、USB規格における本来の通信速度よりも低速な通信路(例えば100Mbpsの光通信路)を用いた場合でも、通信効率の低下を抑制することの可能なUSBシステムを提供することにある。
上記の目的を達成するために、本発明のデバイス側コントローラ(本デバイス側コントローラ)は、USBシステムのデバイスに備えられ、ホストとデバイスとの間の通信を中継するデバイス側コントローラにおいて、ホストとデバイスとの接続が確立された後、SOFパケットをデバイスに送信するデバイス側制御部を備えていることを特徴としている。
また、本発明のホスト側コントローラ(本ホスト側コントローラ)は、ホストと、デバイスと、本デバイス側コントローラとを備えたUSBシステムのホストに備えられ、ホストとデバイスとの間の通信を中継するホスト側コントローラにおいて、ホストからデバイスに向けて送信されるSOFパケットを受信した場合に、このパケットをデバイス側に送信することを回避するホスト側制御部を備えていることを特徴としている。
また、本発明のUSBシステム(本システム)は、本デバイス側コントローラと、本ホスト側コントローラとを備えたシステムである。また、本デバイス側コントローラでは、上記デバイス側制御部は、SOFパケットを、所定周期でデバイスに送信するように設定されていることが好ましい。
また、この場合、ホスト側コントローラのホスト側制御部は、ホストから所定時間以上パケットを受信しなかった場合、リセット通知信号をデバイス側コントローラに送信し、上記デバイス側コントローラのデバイス側制御部は、リセット通知信号の受信に応じて、デバイスに対するSOFパケットの送信を停止するように設定されていることが好ましい。
また、デバイス側コントローラのデバイス側制御部は、デバイスに対してSOFパケット以外の他のパケットを送信する際、この送信に応じて実行されるデバイスとの通信中に、SOFパケットの送信タイミングが訪れることを回避するように、送信タイミングを調整するように設定されていることが好ましい。
また、この場合、デバイス側制御部は、ホスト側コントローラから受信したOUTパケットあるいはSETUPパケットとDATAパケットとをデバイスに送信する際、DATAパケットのサイズに基づいて、上記の送信タイミングを調整することが好ましい。
また、本システムでは、上記のホスト側制御部が、ホストからデバイスに向けて送信されるSOFパケットを受信した場合に、SOFパケットを受信したことを示すSOF受信通知信号をデバイス側に送信するとともに、上記デバイス側制御部が、SOF受信通知信号の受信に応じて、SOFパケットをデバイスに送信するように設定されていてもよい。
また、本システムでは、ホスト側コントローラおよびデバイス側コントローラが、両コントローラ間の通信速度を設定する速度設定部を備えていることが好ましい。また、速度設定部により、コントローラ間の通信速度が所定値以上に設定された場合、ホスト側コントローラのホスト側制御部が、ホストから受信したSOFパケットをデバイス側に送信する一方、上記デバイス側コントローラのデバイス側制御部が、ホスト側コントローラから受信したSOFパケットをデバイスに送信するように設定されていてもよい。
また、上記ホスト側制御部およびデバイス側制御部の少なくとも一方が、両コントローラ間でのパケットの送受信におけるエラーレートを算出し、このエラーレートが所定値以上となった場合に、上記速度設定部が、コントローラ間の通信速度を低下させるように設定されていることが好ましい。
また、本システムでは、両コントローラ間の通信経路における通信方式が、全二重通信であることが好ましい。また、両コントローラ間の通信経路は、光ケーブルによって形成されていてもよい。さらに、両コントローラ間の通信は、光無線通信、あるいは、電波を用いた無線通信によってなされてもよい。
また、本発明のパケット通信方法(本通信方法)は、USBシステムにおけるホストとデバイスとの間でパケットを通信するパケット通信方法において、ホストに備えられたホスト側コントローラのホスト側制御部によって、ホストから送信されたSOFパケットをデバイス側に転送することを回避する送信回避工程と、デバイスに備えられたデバイス側コントローラのデバイス側制御部によって、SOFパケットをデバイスに送信する送信工程とを含む方法である。
また、本発明のパケット通信プログラムは、USBシステムのホストに備えられたコンピューターに、本通信方法の送信回避工程を実行させるとともに、USBシステムのデバイスに備えられたコンピューターに、本システムの送信工程を実行させるプログラムである。また、本発明の記録媒体は、このパケット通信プログラムを記録した記録媒体である。
また、本発明の第2USBシステムは、ホストと、デバイスと、ホストに備えられ、ホストとデバイスとの間の通信を中継するホスト側コントローラと、デバイスに備えられ、ホストとデバイスとの間の通信を中継するデバイス側コントローラとを含むUSBシステムにおいて、コントローラ間のデータ転送を光通信で行うように設定されており、さらに、この光通信のデータ転送速度が、USB2.0におけるハイスピードモードでのデータ転送速度より遅くなっていることを特徴とするシステムである。
また、本発明の第1通信コントローラ(本第1通信コントローラ)は、ホストとデバイスとの間の通信を中継し、ホスト側コントローラとしての機能とデバイス側コントローラとしての機能とを備えている通信コントローラにおいて、通信コントローラがデバイス側コントローラとして機能している時、ホストとデバイスとの接続が確立された後、SOFパケットをデバイスに送信する通信制御部を備えていることを特徴とする通信コントローラである。
また、本発明の第2通信コントローラ(本第2通信コントローラ)は、ホストとデバイスとの間の通信を中継し、ホスト側コントローラとしての機能とデバイス側コントローラとしての機能とを備えている通信コントローラにおいて、通信コントローラがホスト側コントローラとして機能している時、ホストからデバイスに向けて送信されるSOFパケットを受信した場合に、このパケットをデバイス側に送信することを回避する通信制御部を備えていることを特徴とする通信コントローラである。
また、本第1通信コントローラは、通信コントローラがホスト側コントローラとして機能している時、上記通信制御部は、ホストからデバイスに向けて送信されるSOFパケットを受信した場合に、このパケットをデバイス側に送信することを回避するようにしてもよい。
また、本第1通信コントローラは、通信コントローラがデバイス側コントローラとして機能している時、上記通信制御部は、SOFパケットを、所定周期でデバイスに送信するように設定されていてもよい。
また、本第1通信コントローラは、通信コントローラがデバイス側コントローラとして機能している時、上記通信制御部は、デバイスに対してSOFパケット以外の他のパケットを送信する際、この送信に応じて実行されるデバイスとの通信中に、SOFパケットの送信タイミングが訪れることを回避するように、送信タイミングを調整してもよい。
また、本第1通信コントローラは、通信コントローラがデバイス側コントローラとして機能している時、上記通信制御部は、ホスト側コントローラから受信したOUTパケットあるいはSETUPパケットとDATAパケットとをデバイスに送信する際、DATAパケットのサイズに基づいて、上記の送信タイミングを調整してもよい。
また、本発明の第3USBシステムは、ホストと、デバイスと、上述した第1通信コントローラとを備えたUSBシステムである。
本発明のデバイス側コントローラは(本デバイス側コントローラ)は、USBシステムのデバイスに備えられ、ホストとデバイスとの間の通信を中継するデバイス側コントローラにおいて、ホストとデバイスとの接続が確立された後、所定周期でSOFパケットをデバイスに送信するデバイス側制御部を備えていることを特徴とするものである。
本デバイス側コントローラは、USBシステムに適用されるものである。ここで、USBシステムとは、ホストコンピューター(ホスト)と、その周辺機器(デバイス;USBファンクション)との間におけるUSB通信(USB規格に沿ったデータ通信)を実現するための通信システムである。
そして、本デバイス側コントローラは、USBシステムのデバイスに備えられ、ホストとデバイスとの間の通信を中継するものである。すなわち、本デバイス側コントローラは、デバイスから送信されるパケットを受信してホストに送信する一方、デバイスに送信されたパケットを受信してデバイスに伝達する機能を有している。ここで、パケットとは、USBシステムで通信されるデータの基本単位である。
また、USBシステムでは、パケットの1つであるSOFパケットを、他のパケットに優先させて、ホストからデバイスに対して送信するように規定されている。そして、本デバイス側コントローラには、このSOFパケットを自ら作成し、デバイスに送信するデバイス側制御部を備えている。
これにより、本デバイス側コントローラを用いれば、ホストと本デバイス側コントローラとの間でSOFパケットの送受信を実行する必要がない(すなわち、ホスト側からデバイスに向けてSOFパケットを送信する必要がない)。このため、ホストと本デバイス側コントローラとの間の通信経路を、SOFパケット以外の、他のパケットのためだけに利用できる。従って、これら他のパケットの通信効率を向上させられる。
また、本発明のUSBシステム(本システム)は、ホストおよびデバイスに加えて、本デバイス側コントローラを含んだUSBシステムである。このようなシステムを構築すれば、パケットの通信効率を向上することが可能となる。また、本システムに、以下に示すような本ホスト側コントローラを備えることも好ましい。本ホスト側コントローラは、ホストに備えられ、ホストとデバイスとの間の通信を中継するものである。すなわち、本ホスト側コントローラは、ホストから送信されるパケットを受け取ってデバイスに送信するとともに、ホストに向けて送信されたパケットを受信して、ホストに伝達するものである。
このように、本システムに、ホスト,本ホスト側コントローラ,本デバイス側コントローラ,デバイスを備える場合、通信経路は、この順に沿って形成されることとなる。すなわち、ホストとデバイスとの間の通信を、両コントローラが中継するように設定される。
また、特に、本ホスト側コントローラには、ホストからデバイスに向けて送信されるSOFパケットを受信した場合に、このパケットをデバイス側に送信することを回避するホスト側制御部を備えることが好ましい。これにより、本システムでは、ホストからデバイスに向けてSOFパケットを送信しても、このSOFパケットを本ホスト側コントローラで止められるため、これより先に送信されることがない。従って、上記した本デバイス側コントローラと併用することで、コントローラ間の通信効率を容易に向上させられる。
なお、上記した2つのコントローラを備えた本システムは、ホストとデバイスとの間に、通信速度(データ転送速度)の遅い(USBの規格に沿った通常の速度(通常速度;例えばHSでの480Mbps)より遅い)通信経路が形成されている場合に、特に有効である。すなわち、通常、ホストは、SOFパケットを一定周期でデバイスに送信する。このため、通信速度の遅いときには、SOFパケットによって、通信経路の多くが占有されてしまい、他のパケットの通信効率を悪化させてしまう。
そこで、このような場合に、ホストおよびデバイスに、通常速度で通信可能なように両コントローラを接続すれば、コントローラ間でのSOFパケットの送受信を不要とできる。従って、コントローラ間の通信速度の遅い場合でも、他のパケットに関する通信効率の悪化を抑制させられる。
なお、本ホスト側コントローラは、ホストに直接に接続されても、また、USBハブのダウンストリーム側のポートに接続されてもよい。さらに、ホストあるいはUSBハブの一部として構成されてもよい。また、本デバイス側コントローラは、デバイスに直接に接続されても、USBハブのアップストリーム側のポートに接続されてもよい。さらに、デバイスあるいはUSBハブの一部として構成されてもよい。
また、本システムでは、デバイス側制御部は、SOFパケットを、所定周期で(自主的に)デバイスに送信することが好ましい。これにより、外部から何らのきっかけ(合図)がなくとも、SOFパケットをデバイスに送信できる。
また、この場合、ホスト側制御部は、ホストから所定時間以上パケットを受信しなかった場合、「ホストがデバイスのバスをリセットしようとしている」と認識し、リセット通知信号をデバイス側コントローラに送信するように設定されていることが好ましい。そして、デバイス側制御部が、リセット通知信号を受けたときに、デバイスに対するSOFパケットの送信を停止することが好ましい。これにより、デバイスのバスリセットを容易に行える。
また、本システムでは、デバイス側制御部は、INトランザクション,OUTトランザクション,SETUPトランザクション時など、デバイスに対してSOFパケット以外の他のパケットを送信することも多い。また、他のパケットをデバイスに送信すると、デバイスから返信を受けることもある。
従って、所定周期でSOFパケットをデバイスに送信する場合、デバイス側制御部は、他のパケットの送信に応じて実行されるデバイスとの通信中に、SOFパケットの送信タイミングが訪れることを回避するように、他のパケットの送信タイミングを調整することが好ましい。
このような調整では、デバイス側制御部は、他のパケットの送信に応じてなされるデバイスとの通信に、最大でどの程度の時間(通信完了時間)がかかるか、を見積もる。そして、見積もった通信完了時間の過ぎるまでに、SOFパケットの送信タイミングが訪れないときには、他のパケットをデバイスに送信する。一方、通信完了時間の過ぎるまでにSOFパケットの送信タイミングが訪れてしまう場合、デバイス側制御部は、他のパケットの送信を、SOFパケットの送信後に行うこととなる。このような調整を行うことで、他のパケットの送受信によってSOFパケットの送信が妨げられてしまうことを回避できる。
また、デバイス側制御部は、OUTトランザクション,SETUPトランザクション時では、ホスト側から送信された、OUTパケットあるいはSETUPパケットと、DATAパケットとを、デバイスに送信する。そして、デバイスから、ACKパケットを受信することとなる。従って、デバイス側制御部は、デバイスに送信するDATAパケットのサイズ(パケット長)を、送信前に知ることが可能である。従って、このサイズに基づいて、上記の通信完了時間を見積もることで、正確な見積もりが可能となる。
また、デバイス側制御部は、外部(ホスト側コントローラ)からの合図によって、SOFパケットをデバイスに送信するように設定されていてもよい。すなわち、この構成では、ホスト側制御部は、ホストからデバイスに向けて送信されるSOFパケットを受信した場合に、SOFパケットを受信したことを示すSOF受信通知信号をデバイス側に送信する。そして、デバイス側制御部が、SOF受信通知信号の受信に応じて、SOFパケットをデバイスに送信するように設定される。
この構成では、ホスト側制御部が、SOFパケットより転送速度の著しく早いSOF受信通知信号をデバイス側コントローラに送信することで、デバイス側側制御部に対し、SOFパケットの送信タイミングを伝達するようになっている。従って、この構成でも、コントローラ間でSOFパケットを送受信する構成に比して、SOFパケット以外の他のパケットの通信効率を向上させられる。
また、本システムでは、本ホスト側コントローラおよび本デバイス側コントローラが、両コントローラ間の通信速度を設定する速度設定部をそれぞれ備えていることが好ましい。この速度設定部は、各コントローラに備えられ、コントローラ間の通信の開始時に、通信速度の設定(スピードネゴシエーション)を行うものである。
また、この構成では、速度設定部によってコントローラ間の通信速度が所定値以上に設定された場合、ホスト側制御部およびデバイス側制御部は、SOFパケットの通信を通常のUSB通信に沿って行うように設定されていてもよい。すなわち、この場合、ホスト側制御部が、ホストから受信したSOFパケットをデバイス側に送信する一方、デバイス側制御部が、受信したSOFパケットをデバイスに送信するように設定されていてもよい。
ここで、上記の所定値とは、例えば、上記した通常速度(USBの規格に沿った通常の速度)程度の、SOFパケットを送信しても通信に支障のない速度に応じた値である。すなわち、この構成では、コントローラ間の通信速度が所定値以上の場合、ホスト側制御部は、ホストから受信したSOFパケットをそのままデバイス側に送信する。そして、デバイス側制御部が、受信したSOFパケットをデバイスに伝達することとなる。
このように、コントローラ間の通信速度をある程度速くできる場合には、コントローラ間でSOFパケットを送受信しても、この間での通信帯域におけるSOFパケットの占有率を、通常程度に低く抑えられる。このため、SOFパケットの送受信によって、他のパケットの通信効率を悪化させることはない。
また、本システムでは、速度設定部による通信速度の設定後、ホスト側制御部およびデバイス側制御部の少なくとも一方(あるいは速度設定部)が、コントローラでのパケット送受信におけるエラーレートを算出することが好ましい。ここで、エラーレートとは、エラーの発生回数を、送受信回数で割った値(エラー発生率)である。また、この場合、速度設定部は、エラーレートが所定値以上となった場合に、コントローラ間の通信速度を低下させることが好ましい。これにより、通信速度の高すぎることに起因するエラーレートを低下させられる。
また、本システムでは、両コントローラ間の通信経路における通信方式が、全二重通信であることが好ましい。これにより、半二重通信において必要なプリアンブルをなくすことが可能となるため、コントローラ間の通信効率を向上させられる。
また、本システムでは、両コントローラ間の通信経路を、光ケーブル(光ファイバー)によって形成してもよい。これにより、パケットの長距離伝送が可能となる。
また、両コントローラ間の通信を、光無線通信、あるいは、電波を用いた無線通信によって行ってもよい。また、無線通信(空間通信)を用いる場合には、ケーブルレスのため、利便性(コントローラの配置自由度など)を向上させられる。
また、本発明のパケット通信方法(本通信方法)は、USBシステムにおけるホストとデバイスとの間でパケットを通信するパケット通信方法において、ホストに備えられたホスト側コントローラのホスト側制御部によって、ホストから送信されたSOFパケットをデバイス側に転送することを回避する送信回避工程と、デバイスに備えられたデバイス側コントローラのデバイス側制御部によって、SOFパケットをデバイスに送信する送信工程とを含む方法である。
本通信方法は、上記した本システムにおいて用いられている通信方法である。従って、本通信方法を用いれば、コントローラ間の通信効率を容易に向上させられる。
また、本発明のパケット通信プログラムは、USBシステムのホストに備えられたコンピューターに、本通信方法の送信回避工程を実行させるとともに、USBシステムのデバイスに備えられたコンピューターに、本通信方法の送信工程を実行させるためのプログラムである。
上記のようなコンピューターにこのプログラムを読み込ませることで、本通信方法の送信回避工程および送信工程を、そのコンピューターによって実現することが可能となる。また、このプログラムをコンピューターによって読取可能な記録媒体に記録させておくことで、プログラムの保存・流通を容易に行えるようになる。
また、本発明の第2USBシステムは、ホストと、デバイスと、ホストに備えられ、ホストとデバイスとの間の通信を中継するホスト側コントローラと、デバイスに備えられ、ホストとデバイスとの間の通信を中継するデバイス側コントローラとを含むUSBシステムにおいて、コントローラ間のデータ転送を光通信で行うように設定されており、さらに、この光通信のデータ転送速度が、USB2.0におけるハイスピードモード(HS)でのデータ転送速度(480Mbps)より遅く(例えば100Mbps)なっていることを特徴とするシステムである。
ここで、コントローラ間における光通信のデータ転送速度を、HSと同様の480Mbpsとする場合、例えば8B10Bの変調方式を用いると、480×10/8=600Mbpsの帯域を持った光送信機,光受信機(光トランシーバー)が必要である。そして、このような光送信機を得るためには、LD(レーザーダイオード)を用いる必要がある。
一方、コントローラ間の光通信におけるデータ転送速度を100Mbpsとする場合、光送信機を、LED(発光ダイオード)を用いて構成できる。そして、LDとLEDを比較すると、圧倒的にLEDの方が安価である。従って、コントローラ間の光通信の速度を遅くすることで、コントローラを低コストで構成できる。また、各コントローラの必要とする帯域を、600Mbpsから100Mbpsへと著しく低くできるので、各コントローラをさらに安価に製造できる。
なお、デバイスとして、データ転送速度の遅いもの(例えばフラッシュメモリ;50Mbps程度)を用いる場合、トランザクションの完了に要する時間は、デバイスの転送速度に大きく依存する。従って、コントローラ間のデータ転送速度については、デバイスの速度より速くすれば、トランザクションの完了時間に大きな影響を与えることはないといえる。このため、コントローラ間における光通信のデータ転送速度を、デバイスのデバイス転送速度よりも速くすることが好ましい。
また、本発明の通信コントローラ(本通信コントローラ)は、ホストとデバイスとの間の通信を中継し、ホスト側コントローラとしての機能とデバイス側コントローラとしての機能とを備えている通信コントローラにおいて、通信コントローラがデバイス側コントローラとして機能している時、ホストとデバイスとの接続が確立された後、SOFパケットをデバイスに送信する通信制御部を備えていることを特徴とするものである。
本通信コントローラは、USBシステムに適用されるものである。ここで、USBシステムとは、ホストコンピューター(ホスト)と、その周辺機器(デバイス;USBファンクション)との間におけるUSB通信(USB規格に沿ったデータ通信)を実現するための通信システムである。
そして、本通信コントローラは、ホストとデバイスとの間の通信を中継するものである。すなわち、本通信コントローラは、デバイス側コントローラとして機能しているとき、デバイスから送信されるパケットを受信してホストに送信する一方、デバイスに送信されたパケットを受信してデバイスに伝達する機能を有している。ここで、パケットとは、USBシステムで通信されるデータの基本単位である。
また、USBシステムでは、パケットの1つであるSOFパケットを、他のパケットに優先させて、ホストからデバイスに対して送信するように規定されている。そして、本通信コントローラは、このSOFパケットを自ら作成し、デバイスに送信する通信制御部を備えている。
これにより、本通信コントローラを用いれば、ホストと本通信コントローラとの間でSOFパケットの送受信を実行する必要がない(すなわち、ホスト側からデバイスに向けてSOFパケットを送信する必要がない)。このため、ホストと通信コントローラとの間の通信経路を、SOFパケット以外の、他のパケットのためだけに利用できる。従って、これら他のパケットの通信効率を向上させられる。
また、本発明のUSBシステム(本システム)は、ホストおよびデバイスに加えて、本通信コントローラを含んだUSBシステムである。このようなシステムを構築すれば、パケットの通信効率を向上することが可能となる。
また、本通信コントローラは、ホスト側コントローラとしても機能することができる。すなわち、本通信コントローラは、ホスト側コントローラとして機能しているとき、ホストから送信されるパケットを受け取ってデバイスに送信するとともに、ホストに向けて送信されたパケットを受信して、ホストに伝達する。
このように、本システムに、ホスト,ホスト側コントローラとして機能する本通信コントローラ,デバイス側コントローラとして機能する本通信コントローラ,デバイスを備える場合、通信経路は、この順に沿って形成されることとなる。すなわち、ホストとデバイスとの間の通信を、2つの通信コントローラが中継するように設定される。
また、特に、本通信コントローラの通信制御部は、通信コントローラがホスト側コントローラとして機能している時、ホストからデバイスに向けて送信されるSOFパケットを受信した場合に、このパケットをデバイス側に送信することを回避することが好ましい。これにより、本システムでは、ホストからデバイスに向けてSOFパケットを送信しても、このSOFパケットを本通信コントローラで止められるため、これより先に送信されることがない。従って、通信コントローラ間の通信効率を容易に向上させられる。
すなわち、本通信コントローラは、ホストとデバイスとの間の通信を中継し、ホスト側コントローラとしての機能とデバイス側コントローラとしての機能とを備えている通信コントローラにおいて、通信コントローラがホスト側コントローラとして機能している時、ホストからデバイスに向けて送信されるSOFパケットを受信した場合に、このパケットをデバイス側に送信することを回避する通信制御部を備えているものであるともいえる。
なお、本通信コントローラを備えた本システムは、ホストとデバイスとの間に、通信速度(データ転送速度)の遅い(USBの規格に沿った通常の速度(通常速度;例えばHSでの480Mbps)より遅い)通信経路が形成されている場合に、特に有効である。すなわち、通常、ホストは、SOFパケットを一定周期でデバイスに送信する。このため、通信速度の遅いときには、SOFパケットによって、通信経路の多くが占有されてしまい、他のパケットの通信効率を悪化させてしまう。
そこで、このような場合に、ホストおよびデバイスに、通常速度で通信可能なように通信コントローラを接続すれば、コントローラ間でのSOFパケットの送受信を不要とできる。従って、コントローラ間の通信速度の遅い場合でも、他のパケットに関する通信効率の悪化を抑制させられる。
なお、本通信コントローラは、ホストに直接に接続されても、また、USBハブのダウンストリーム側のポートに接続されてもよい。さらに、ホストあるいはUSBハブの一部として構成されてもよい。この場合、本通信コントローラは、ホスト側コントローラとして機能できる。また、本通信コントローラは、デバイスに直接に接続されても、USBハブのアップストリーム側のポートに接続されてもよい。さらに、デバイスあるいはUSBハブの一部として構成されてもよい。この場合、本通信コントローラは、デバイス側コントローラとして機能できる。
このように、本通信コントローラは、ホスト側コントローラとしての機能を有しているとともに、デバイス側コントローラとしての機能も有している。この構成により、USBシステムにおいて、1つの通信コントローラを、ホスト側コントローラとしても、デバイス側コントローラとしても使用できる。
したがって、1種類の通信コントローラを、ホストおよびデバイスにそれぞれ備えるだけで、本システムを構築できる。すなわち、2種類のコントローラを用意することなくシステムを構築できるため、システムの構築をより簡便にできる。
また、本通信コントローラは、USBシステムに接続された各種情報機器が、機器の置かれた状況に応じてホストとしてもデバイスとしても機能するシステムに用いることができる。なお、このようなUSBシステムとして、例えば、近年、規格化されたUSB−OTG(USB−On The Go)がある。
USB−OTGは、これまでUSBシステムを介してホスト(パーソナルコンピュータ等)に接続されていたデバイス(周辺機器)に、ホストとしての機能を持たせることができる規格である。したがって、USB−OTG規格に従ったUSBシステムでは、USB1.x規格やUSB2.0規格では不可能である、デバイス同士の接続によるデータ転送が可能となる。
例えば、本通信コントローラを用いてUSBシステムを組めば、デジタルカメラとプリンタとを直接に接続して、デジタルカメラをホストとして、プリンタをデバイスとして機能させることができる。これにより、ホストであるデジタルカメラから、デバイスであるプリンタにデータを転送することができる。
すなわち、本通信コントローラを備えているUSBシステムでは、パーソナルコンピュータをホストとして組み込まなくても、デジタルカメラの画像をプリンタによって直接的に印刷することができる。また、デジタルカメラやデジタルビデオカメラを、ハードディスク等のストレージ装置に直接的に接続し、データをこのストレージ装置に転送することによって、データを保存することが可能になる。
また、本通信コントローラがデバイス側コントローラとして機能している時、通信制御部は、SOFパケットを、所定周期でデバイスに送信するように設定されていてもよい。これにより、通信コントローラは、外部から何らのきっかけ(合図)がなくとも、SOFパケットをデバイスに送信できる。
また、本通信コントローラがデバイス側コントローラとして機能している時、通信制御部は、デバイスに対してSOFパケット以外の他のパケットを送信する際、この送信に応じて実行されるデバイスとの通信中に、SOFパケットの送信タイミングが訪れることを回避するように、送信タイミングを調整してもよい。
このような調整では、通信制御部は、他のパケットの送信に応じてなされるデバイスとの通信に、最大でどの程度の時間(通信完了時間)がかかるか、を見積もる。そして、見積もった通信完了時間の過ぎるまでに、SOFパケットの送信タイミングが訪れないときには、他のパケットをデバイスに送信する。一方、通信完了時間の過ぎるまでにSOFパケットの送信タイミングが訪れてしまう場合、通信制御部は、他のパケットの送信を、SOFパケットの送信後に行うこととなる。このような調整を行うことで、他のパケットの送受信によってSOFパケットの送信が妨げられてしまうことを回避できる。
また、本通信コントローラがデバイス側コントローラとして機能している時、通信制御部は、ホスト側コントローラから受信したOUTパケットあるいはSETUPパケットとDATAパケットとをデバイスに送信する際、DATAパケットのサイズに基づいて、上記の送信タイミングを調整してもよい。
この場合、通信制御部は、OUTトランザクション,SETUPトランザクション時では、ホスト側から送信された、OUTパケットあるいはSETUPパケットと、DATAパケットとを、デバイスに送信する。そして、デバイスから、ACKパケットを受信することとなる。従って、通信制御部は、デバイスに送信するDATAパケットのサイズ(パケット長)を、送信前に知ることが可能である。従って、このサイズに基づいて、上記の通信完了時間を見積もることで、正確な見積もりが可能となる。
また、本発明のUSBシステムを、ホストと、デバイスと、本通信コントローラとを備えたUSBシステムとすることもできる。
本発明の一実施形態について説明する。本実施の形態にかかるUSBシステムは、ホストコンピューター(ホスト)と、その周辺機器(デバイス)との間におけるUSB通信(USB2.0を用いたデータ通信)を実現するための通信システムである。
図1は、本システムの構成を示すブロック図である。この図に示すように、本システムは、ホスト10,ホスト側コントローラ11,デバイス側コントローラ12,デバイス13を備えた構成である。
ホスト(USBホスト)10は、本システムの親機となるパーソナルコンピューターであり、全てのUSB通信を制御するものである。また、デバイス(USBファンクション,USBデバイス)13は、ホスト10と通信を行う子機(ノード)であり、プリンターやDVDドライバーなど、ホストの周辺機器として機能するものである。
ホスト側コントローラ11は、USBケーブルによってホスト10と接続されており、ホスト10と外部(デバイス13)との間のUSB通信を中継するものである。すなわち、ホスト側コントローラ11は、ホスト10から送信されるパケットを受け取って外部に送信するとともに、ホスト10に向けて送信されたパケットを受信して、ホスト10に伝達するものである。
デバイス側コントローラ12は、USBケーブルによってデバイス13と接続されており、デバイス13とホスト10との間のUSB通信を中継するものである。すなわち、デバイス側コントローラ12は、デバイス13から送信されるパケットを受け取ってホスト10に送信するとともに、デバイス13に向けて送信されたパケットを受信して、デバイス13に伝達するものである。
また、本システムでは、コントローラ11・12間を、USB対応の光無線通信によって接続している。すなわち、本システムでは、ホスト10とデバイス13との間のUSB通信を、コントローラ11・12による光無線通信を介して実行するようになっている。なお、コントローラ11・12間の光無線通信におけるデータ転送速度は、100Mbpsであり、USB2.0のハイスピードモード(HS)時におけるデータ転送速度(480Mbps)よりも低速である。
ここで、本システムの特徴的な構成である、コントローラ11・12の構成について説明する。図1に示すように、ホスト側コントローラ11は、USB受信機20,送信FIFO21,変調回路22,光送信機23,光受信機24,復調回路25,受信FIFO26,USB送信機27,エラー検出回路28,タイマー29,スピードネゴシエーションステートマシン(SNSM)30,SOF判別回路31およびホスト側ステートマシン(ホストSM)32を備えた構成である。
一方、デバイス側コントローラ12は、ホスト側コントローラ11の有する上記の部材20〜30、および、デバイス側ステートマシン(デバイスSM)42を備えた構成である。
USB受信機20は、ホスト10あるいはデバイス13とUSBケーブルで接続されており、これらから送信されるUSB信号(パケットを含む信号)を受信する(受け取る)ものである。
送信FIFO21は、USB受信機20の受信したパケットを一時的に保存するものである。すなわち、上記したように、コントローラ11・12間の通信速度(100Mbps)は、USBケーブルでの最高通信速度(HS;480Mbps)よりも低速である。このため、送信FIFO21は、パケットを光通信によって転送(リピート)する際のタイミング調整に用いられる。
変調回路22は、光通信によって外部に送信できるよう、パケットを変調(光変調)するものである。変調回路22の変調方法としては、例えば、8B10Bを利用できる。光送信機23は、変調回路22によって変調されたパケットを外部に送信するものであり、発光ダイオード装置やレーザー装置から構成される。
光受信機24は、外部から受信された、光変調されたパケットを受信するものであり、例えばフォトダイオードから構成される。なお、光受信機24は、外部から何らかの光信号を受けると、シグナルディテクト信号をホストSM32(デバイスSM42)またはSNSM30に送信する。このシグナルディテクト信号は、受信信号の有無を判別するための信号である。復調回路25は、光受信機24によって受信されたパケットを、USBケーブルで通信可能なように復調するものである。復調回路25の復調方法としては、例えば、8B10Bを利用できる。
受信FIFO26は、復調されたパケットを一時的に保存するものである。また、受信FIFO26は、送信FIFO21と同様に、USBケーブルでのデータ送信と、光通信でのデータ受信との速度差を補償するために、パケットをUSBケーブルによって転送(リピート)する際のタイミング調整に用いられる。
エラー検出回路28は、復調回路25によって復調されたパケットにエラーがあるか否かを判別する回路である。USB送信機27は、ホスト10あるいはデバイス13とUSBケーブルで接続されており、これらに対し、受信FIFO26に保存されたパケット(パケットを含むUSB信号)を送信するものである。タイマー29は、ホストSM32あるいはデバイスSM42に使用されるタイマー(時間計測器)である。SNSM(速度設定部)30は、後述するスピードネゴシエーションを行うための制御部である。
ホスト側コントローラ11のSOF判別回路(ホスト側制御部)31は、USB受信機20によって受信されたパケットが、SOFパケットであるか否かを判別する回路である。ホストSM(ホスト側制御部)32は、ホスト側コントローラ11の全処理を制御する、コントローラ11の中枢部である。
同様に、デバイス側コントローラ12のデバイスSM(デバイス側制御部)42は、コントローラ12の全処理を制御する中枢部として機能する。
ここで、本システムのデータ通信動作について説明する。まず、デバイス13の接続時の動作について説明する。コントローラ11・12を介してデバイス13が本システムに接続されたとき、まず、ホスト10は、デバイス13の電源を検出する。これは、USBケーブルの4本の信号線(D+,D−,電源(VBUS)、GND)を流れる信号のうちの、VBUS信号を確認することでなされる。
次に、ホスト10は、デバイス13のスピード(対応しているモード)を検出する。そしてフルスピードモード(FS)、あるいは、ハイスピードモード(HS)に対応している場合、ホスト10は、D+の信号をプルアップする。一方、ロースピードモード(LS)のみに対応の場合は、ホスト10は、D−の信号をプルアップする。なお、以下では、デバイス13は、HSに対応しているとする。
次に、ホスト10は、D+信号線およびD−信号線を、ともに10ms以上、ローレベル(SE0状態)とし、デバイス13のバスをリセットする。その後、デバイス13は、HS特有の信号(CHIRPと呼ばれる)を、コントローラ11・12を介してホスト10に送信する。また、ホスト10も、コントローラ11・12を介して、デバイス13に対してHS特有の信号送信を行う。
これにより、ホストSM32およびデバイスSM42は、ホスト10およびデバイス13の通信モードがHSであることを確認する。その後、ホストSM32およびデバイスSM42は、SNSM30を制御して、コントローラ11・12間のスピードネゴシエーション(後述)を行う。これにより、ホスト10とデバイス13との接続(バス)が確立される(完了する)。
デバイス13が本システムに接続された後、ホスト10・デバイス13間では、コントローラ11・12を介したデータ転送が実施される。ホスト10からデバイス13に向けUSB信号(パケットを含む信号)が送信されると、この信号は、ホスト側コントローラ11のUSB受信機20に受信される。これを受けて、ホストSM32は、SOF判別回路31を制御して、受信したパケットがSOFパケットであるか否か、を判別させる。
そして、SOFパケットではないと判別された場合、ホストSM32は、USB信号(パケット)を解析し、パケットを送信FIFO21に保存する。その後、ホストSM32は、変調回路22および光送信機23を制御して、デバイス側コントローラ12に対し、受信したパケットを含む光信号を生成・送信させる。
なお、SOFパケットではないパケットは、上記したINトランザクション,OUTトランザクションあるいはSETUPトランザクションの各トランザクションに関し、データ転送等を行うパケットである。なお、本システムでは、各トランザクションに関し、USB2.0において定められたルールによりパケットの生成・送受信を行うが、詳細については説明を割愛する。
ホスト側コントローラ11から送信された光信号は、デバイス側コントローラ12の光受信機24によって受信される。そして、デバイスSM42は、復調回路25を制御して、光信号のパケットを復調させる。そして、デバイスSM42は、エラー検出回路28を制御して、復調したパケットにエラーがあるか否か(USB規格に準拠したパケットであるか否か)を判断する。
そして、デバイスSM42は、受信したパケットのうち、エラーのないパケットだけを受信FIFO26に蓄積する。その後、デバイスSM42は、パケットの全体を受信・復調した後、USB送信機27を制御して、このパケットを含むUSB信号を、所定のタイミングでデバイス13に送信する。
一方、ホストSM32は、ホスト側コントローラ11から受信したパケットがSOFパケットであると判断された場合、このパケットを送信FIFO21に保存することなく破棄し、デバイス側コントローラ12への転送(リピート)を取り止める。従って、本システムでは、デバイス側コントローラ12(デバイス13)は、ホスト側コントローラ11(ホスト10)からSOFパケットを受信しないことなる。
そして、本システムでは、デバイス側コントローラ12のデバイスSM42が、デバイス側コントローラ12とのネゴシエーションの完了後、タイマー29を制御して、HSにおけるSOFパケットの送信周期である125us(micro sec)を計測する。そして、デバイスSM42は、この周期でSOFパケットを生成して、デバイス13に対し、125us周期で送信する。これにより、本システムでは、SOFパケットを周期的にデバイス13に送信できる。従って、デバイス側コントローラ12からSOFパケットを送信しなくても、デバイス13のバスリセットを回避でき、デバイス13をアクティブ状態で維持することが可能となる。
また、デバイス13からホスト側コントローラ11に向けてパケットを含むUSB信号が送信された場合、この信号は、デバイス側コントローラ12のUSB受信機20に受信される。
そして、デバイスSM42は、受信したUSB信号(パケット)を解析し、このデータにおけるエラーの有無を判断する。なお、ここでは、デバイスSM42は、USB規格に準拠していないパケット、および、デバイス13からは送信されないはずのパケット(SOFパケットなど)を、エラーのあるパケットとして認識する。
そして、デバイスSM42は、エラーのないパケットだけを送信FIFO21に蓄積する。その後、デバイスSM42は、変調回路22および光送信機23を制御して、ホスト側コントローラ11に対し、受信したパケットを含む光信号を生成・送信させる。
デバイス側コントローラ12から送信された光信号は、ホスト側コントローラ11の光受信機24によって受信される。そして、ホストSM32は、復調回路25を制御して、光信号のパケットを復調させる。そして、ホストSM32は、エラー検出回路28を制御して、復調したパケットにエラーがあるか否か(USB規格に準拠したパケットであるか否か)を判断する。
そして、ホストSM32は、受信したパケットのうち、エラーのないパケットだけを受信FIFO26に蓄積する。その後、ホストSM32は、パケットの全体を受信・復調した後、USB送信機27を制御して、このパケットを含むUSB信号を、所定のタイミングでホスト側コントローラ11に送信する。
以上のように、本システムでは、ホスト側コントローラ11のホストSM32が、ホスト10からデバイス13に向けて送信されるSOFパケットを受信した場合に、このパケットをデバイス側に送信することを回避するようになっている。そして、デバイス側コントローラ12のデバイスSM42が、ホスト10とデバイス13との接続の確立後、所定周期で、SOFパケットをデバイス13に送信するようになっている。
従って、本システムでは、コントローラ11・12間でSOFパケットを送信する必要がない。このため、通信速度の遅いコントローラ11・12間の通信帯域を、SOFパケット以外の、他のパケットのためだけに利用できる。従って、これら他のパケットの通信を、SOFパケットによって妨げることを防止できるので、通信効率を向上させられる。
ここで、本システムにおいて、デバイス13のバスをリセットするための処理ついて説明する。図2は、この処理に関する、ホスト側コントローラ11におけるホストSM32の動作を示すフローチャート(状態遷移図)である。この図に示すように、ホストSM32は、ホスト10からデバイス13に送信されるUSB信号(パケット)を受信する度に、タイマー29をリセットし、その時点からの経過時間を計測する(ステップ(S)11・S12)。
そして、タイマー29の計測時間が所定時間(例えば3ms)に達したと判断した場合(タイムアウト;S13)、ホストSM32は、ホスト10がデバイス13のバスをリセットしようとしていると認識する。その後、ホストSM32は、光送信機23を制御して、リセット通知信号をデバイス側コントローラ12に送信する(S14)。
また、デバイス側コントローラ12のデバイスSM42は、リセット通知信号を受けると、ホスト10がバスをリセットしようとしている、と認識する。そして、デバイスSM42は、デバイス13に対するSOFパケットの送信を停止する。これにより、デバイス13のバスリセットを容易に行える。
次に、上記したスピードネゴシエーションについて説明する。このスピードネゴシエーションは、コントローラ11・12間における、光無線通信のデータ転送速度を決定するための処理である。図3は、この処理の例を示すタイミングチャートである。
図4は、この処理におけるホスト側コントローラ11のSNSM30の動作を示す説明図である。また、図5は、この処理におけるデバイス側コントローラ12のSNSM30の動作を示す説明図である。
ホスト側コントローラ11のSNSM30は、T1201において、光送信機23を制御して、所定の転送速度Aで、keep_speed信号の送信を開始し、タイマー29をリスタートさせる(リセット後すぐにスタートさせる)。なお、keep_speed信号は、転送速度を決めるための送信コード(リクエスト信号)の1つであり、送信先(デバイス側コントローラ12)に、現在の転送速度を維持することを求める信号である。
一方、デバイス側コントローラ12では、このkeep_speed信号を受信した光受信機24が、まず、シグナルディテクト信号をSNSM30に伝達する。これを受けて、SNSM30が、タイマー29をリスタートさせるとともに、光送信機23を制御して、ホスト側コントローラ11に対するkeep_speed信号の送信を開始する。また、SNSM30は、復調回路25,エラー検出回路28を制御して、受信したkeep_speed信号におけるエラーの有無を判断する。
そして、図3に示すように、T1203においてホスト側コントローラ11から送信されたkeep_speed信号が、光無線通信路においてピット化けし、デバイス側コントローラが正常に受信できなかった場合、デバイス側コントローラ12のSNSM30は、T1204において、keep_speed信号に代えて、lower_speed信号をホスト側コントローラ11に送信する。
このlower_speed信号は、転送速度を決めるためのリクエスト信号の1つであり、送信先(ホスト側コントローラ11)に、転送速度を下げるよう求める信号である。lower_speed信号を受信したデバイス側コントローラ12では、SNSM30が、現在の転送速度Aではデバイス転送を正常に行えないとを認識する。そして、デバイス側コントローラ12に対し、lower_speed信号を送信する(送信コードをlower_speedに切り替える)。
デバイス側コントローラ12のSNSM30は、ホスト側コントローラ11からlower_speed信号を受信することで、自身の送信したlower_speed信号がホスト側コントローラ11に認識されたと判断する。
そして、所定時間Taの経過後、コントローラ11・12のSNSM30は、その時点で送受信されている信号がlower_speed信号であるため、転送速度を、例えば半分(A/2)に低下させる。すなわち、ホスト側コントローラ11のSNSM30が、T1207において、転送速度A/2で、keep_speed信号の送信を開始するとともに、タイマー29をリスタートさせる。
一方、デバイス側コントローラ12のSNSM30も、光受信機24からのシグナルディテクト信号に応じて、keep_speed信号の送信を開始するとともに、タイマー29をリスタートさせる。
そして、コントローラ11・12の双方でエラーが検出されずに所定時間Taが経過すると、コントローラ11・12のSNSM30は、スピードネゴシエーションの終了信号(終了リクエスト)であるEnd_Nego信号の送受信を開始する。そして、SNSM30は、相手機器からのEnd_Nego信号を受信したときに、スピードネゴシエーションを終了し、アクティブ状態へと遷移する。
ここで、図4を用いて、ホスト側コントローラ11におけるSNSM30の動作を説明する。
ステートST0は、スピードネゴシエーションの開始ステートである。ここでは、ホスト側コントローラ11のSNSM30は、送信コードをkeep_speed信号とし、タイマー29をリスタートした後、ステートST1に状態を遷移する。
ステートSTlは、スピードネゴシエーションを行うステートである。ホスト側コントローラ11のSNSM30は、受信コードにエラーがあるか、相手機器(デバイス側コントローラ12)からのlower_speed信号を受信した場合は、送信コードをlower_speedに切り替える。
また、ホスト側コントローラ11のSNSM30は、所定時間Taの経過した後、送信コードがlower_speed信号であった場合は、ステートST0へ、また送信コードがkeep_speedであった場合はステートST2に状態を遷移する。
ここで、ステートST0に遷移する場合は、転送速度を現在の転送速度に対して、例えば半分にする(転送速度の低下の幅(度合い)は、ユーザーの所望の値に設定可能である。また、この幅は、あらかじめSNSM30に記憶されている)。一方、ステートST2に遷移する場合は、送信コードをEnd_Nego信号へと切り替える。このステートST2は、スピードネゴシエーションの終了を確認するステートである。相手機器(デバイス側コントローラ12)からEnd_Nego信号を受信すると、スピードネゴシエーションを終了し、アクティプ状態へと遷移する。
次に、図5を用いて、デバイス側コントローラ12におけるSNSM30の動作について説明する。ステートST0,ST1,ST2の各ステートにおける動作は、ホスト側コントローラ11のSNSM30と同一である。
ステートST0の前の状態であるステートST4は、ホスト側コントローラ11からリクエスト信号を受信したか否かを判別するステートである。光受信機24(あるいは他の受信信号検出回路)からシグナルディテクト信号を受けた場合、SNSM30は、ステートST0に状態を遷移する。
なお、上記したkeep_speed信号,lower_speed信号,End_Nego信号は、パケット(特定のフォーマットを持ったキャラクタ列)であっても、また、特定のキャラクタから構成されていてもよい。
また、上記では、ホスト10とデバイス13との間における通信モード(速度)の確認後に、スピードネゴシエーションを行うとしている。しかしながら、スピードネゴシエーションについては、ホスト10・デバイス13間の通信開始前であれば、とのタイミングで行ってもよい。
また、上記では、ホスト10とホスト側コントローラ11との間、および、デバイス側コントローラ12とデバイス13との間がUSBケーブルで接続されている状態で、スピードネゴシエーションを行うとしている。しかしながら、これに限らず、スピードネゴシエーションは、コントローラ11・12間が通信可能な状態であれば、コントローラ11・12とホスト10・デバイス13とのUSBケーブルによる接続前でも実施可能である。
また、本実施の形態では、ホストSM32が、ホスト10から受信したSOFパケットをデバイス側に送信することを回避し、さらに、デバイスSM42が、自ら作成したSOFパケットを所定周期でデバイス13に送信するとしている。しかしながら、上記のスピードネゴシエーションにおいて、コントローラ11・12間の光無線通信の速度を、USBケーブルと同等の速度(480Mbps)に設定できた場合には、これに限らない。
すなわち、このような場合には、ホストSM32は、ホスト10から受信したSOFパケットをそのままデバイス側に送信してもよい。そして、デバイスSM42が、デバイス側コントローラ12から受信したSOFパケットをデバイス13に伝達するように設定されていてもよい。
このような場合には、コントローラ11・12間でSOFパケットを送受信しても、この間での通信帯域におけるSOFパケットの占有率を、USBケーブルを使用した場合と同等程度に抑えられる。このため、SOFパケットの送受信によって、他のパケットの通信効率を悪化させることはない。しかしながら、もちろん、この場合でも、コントローラ11・12間でSOFパケットの送信を回避するように構成してもよい。
また、上記のようなスピードネゴシエーション後、ホストSM32,デバイスSM42の少なくとも一方が、エラー検出回路28を用いて、コントローラ11・12間でのパケット送受信におけるエラーレートを算出することが好ましい。ここで、エラーレートとは、エラーの発生回数を、送受信回数で割った値(エラー発生率)である。
そして、ホストSM32,デバイスSM42は、このエラーレートが所定値以上となった場合に、SNSM30を制御して、コントローラ11・12間の通信速度を低下させることが好ましい。これにより、通信速度の高すぎることに起因するエラーレートを低下させられる。
また、一般に、USBケーブルでの通信が半二重通信である場合、USBのシステムでは、ホストが、他のパケットより優先的に、SOFパケットをデバイスに送信するように、データ転送を調整する(SOFパケットを優先的に送信することは、USBの規定である)。ここで、半二重通信とは、ホストあるいはデバイスの一方が通信路を占有する通信方式である。
しかしながら、本システムのように、データ転送経路に転送速度の遅い部分(コントローラ11・12間)のある場合、ホストがデータ転送を良好に調整できずに、他のパケットのためにSOFパケットを送信できないケースもある(SOFパケットをデバイスに送信できないケースも生じる)。
図6は、このようなケースの例(INトランザクション)を示すタイミングチャートである。まず、T(タイミング)1501において、デバイス側コントローラ12のデバイスSM42が、SOFパケットをデバイス13に送信する。
そして、T1502において、ホスト側コントローラ11のホストSM32が、INパケットをデバイス側コントローラ12に送信する。デバイス側コントローラ12のデバイスSM42は、INパケットの受信完了後、これをデバイス13に送信する(T1503)。
ここで、デバイスSM42は、INパケットの受信完了を待って、これをデバイス13にリピートするように設定されている。これは、コントローラ11・12間の低速通信路(光無線通信)によって受信したINパケットを、デバイス側コントローラ12・デバイス13間の高速通信路(USBケーブル)を用いてリピートする際、データの欠落を防ぐためである。
また、図6に示すように、デバイス13は、INパケットを受信すると、T1504において、DATAパケットをデバイス側コントローラ12に対して送信する。
一方、デバイスSM42は、T1505において、SOFパケットの送信周期が訪れたため、デバイス13に向けてSOFパケットを送信しようとする。ところが、このとき、デバイス13がDATAパケットを送信中である。このため、半二重通信用のUSBケーブルでは、デバイスSM42は、デバイス13にSOFパケットを送信できない。
以下に、このような、INトランザクションの実行中にSOFパケットを送信できなくなることを防止する方法について説明する。すなわち、上記したように、デバイスSM42は、タイマー29を用いて、デバイス13に対するSOFパケットの送信タイミングを計る。また、INパケットをデバイス13に送信した場合に、デバイス13から返ってくるDATAパケットの最大長は、図7に示す値となる。
デバイスSM42は、これらの値から、デバイス13からDATAパケットを受信してホスト側コントローラ11に送信している間、および、デバイス側コントローラ12(デバイスSM42)からデバイス13に対してACKパケットを送信している間に、SOFパケットの送信タイミングが訪れないような、デバイス13に対するINパケットの送信タイミング(タイマー29の値)の範囲を逆算する(この範囲を、INパケット送信可能範囲とする)。すなわち、デバイスSM42は、INパケット送信可能範囲を計算し、この範囲内でINパケットをデバイス13に送信するように設定されている。これにより、SOFパケットの送信が、デバイス13との間における他のパケットの送受信によって妨げられることを回避できるようになっている。
なお、上記のINパケット送信可能範囲とは、INパケットの送信を開始する時間の範囲であり、『INパケットをデバイス13に送信してから、最大長のDATAパケットをデバイス13から受信してホスト側コントローラ11に送信し、その後、ホスト側コントローラ11から送信されたACKパケットをデバイス13に転送するまで』の間に、SOFパケットの送信タイミングが訪れない時間範囲である。
図8は、INトランザクションにおける、デバイスSM42の動作の流れを示すフローチャートである。この図に示すように、デバイスSM42は、ホスト側コントローラ11からINパケットを受信すると(S41)、タイマー29の値がINパケット送信可能範囲内であるか否かを判断する(S42)。そして、INパケット送信可能範囲であると判断した場合、デバイスSM42は、デバイス13にINパケットを転送し(S43)、処理を終了する。
一方、S42において、INパケット送信可能範囲でないと判断した場合、デバイスSM42は、SOFパケットの送信タイミングまで待機する(S44)。そして、SOFパケットを送信し(S45)、一定時間待機した後(S46)、デバイスSM42は、INパケット送信可能範囲であると判断して、INパケットをデバイス13に送信し(S43)、処理を終了する。
上記の処理により、INトランザクション中での、デバイス側コントローラ12(デバイスSM42)からデバイス13に対するSOFパケットの送信を、他のパケットの送受信によって妨げられることなく、良好に実施できる。なお、デバイスSM42は、S46の後、処理をS42に戻し、INパケット送信可能時間であることを再確認するようにしてもよい。また、S46の待機を実行せず、すぐにINパケットを送信する(あるいはS42に戻る)ようにしてもよい。
なお、上記したような、SOFパケットの送信に関する問題は、INトランザクション時だけでなく、OUTトランザクション時にも生じる。図9は、OUTトランザクションにおいてSOFパケットを送信できない例を示すタイミングチャートである。この図に示すように、まず、T1801において、デバイス側コントローラ12のデバイスSM42が、SOFパケットをデバイス13に送信する。
そして、T1802・T1803において、ホスト側コントローラ11のホストSM32が、OUTパケットおよびDATAパケットを、デバイス側コントローラに送信する。デバイス側コントローラ12のデバイスSM42は、これらのパケットの受信完了後、これらをデバイス13に送信する(T1804・T1805)。
ここで、デバイスSM42は、OUTパケットおよびDATAパケットの受信完了を待って、これをデバイス13にリピートするように設定されている。これは、コントローラ11・12間の低速通信路(光無線通信)によって受信したOUTパケットおよびDATAパケットを、デバイス側コントローラ12・デバイス13間の高速通信路(USBケーブル)を用いてリピートする際、データの欠落を防ぐためである。
また、T1506で、SOFパケットの送信周期が訪れる。しかしながら、デバイスSM42は、デバイス13に向けてDATAパケットを送信中であるため、SOFパケットを送信できない。
以下に、このような、OUTトランザクションの実行中にSOFパケットを送信できなくなることを防止する方法について説明する。すなわち、上記したように、デバイスSM42は、タイマー29を用いて、デバイス13に対するSOFパケットの送信タイミングを計る。また、デバイス側コントローラ12からデバイス13に送信されるDATAパケットの最大長は、図7に示す値となる。
デバイスSM42は、これらの値から、OUTパケットおよびDATAパケットの送信中、および、デバイス13からのACKパケットの受信中に、SOFパケットの送信タイミングが訪れないような、デバイス13に対するOUTパケットおよびDATAパケットの送信タイミング(タイマー29の値)の範囲を逆算する(この範囲を、OUTパケット送信可能範囲とする)。すなわち、デバイスSM42は、OUTパケット送信可能範囲を計算し、この範囲内でOUTパケットおよびDATAパケットをデバイス13に送信するように設定されている。これにより、SOFパケットの送信が、デバイス13との間における他のパケットの送受信によって妨げられることを回避できるようになっている。
なお、上記のOUTパケット送信可能範囲とは、OUTパケットの送信を開始する時間の範囲であり、『OUTパケットをデバイス13に送信してから、最大長のDATAパケットをデバイス13に送信し、ACKパケットをデバイス13から受信するまで』の間に、SOFパケットの送信タイミングが訪れない時間範囲である。
図10は、OUTトランザクションにおける、デバイスSM42の動作の流れを示すフローチャートである。この図に示すように、デバイスSM42は、ホスト側コントローラ11からOUTパケットおよびDATAパケットを受信すると(S51)、タイマー29の値がOUTパケット送信可能範囲内であるか否かを判断する(S52)。そして、OUTパケット送信可能範囲であると判断した場合、デバイスSM42は、デバイス13にOUTパケットおよびDATAパケットを転送し(S53)、処理を終了する。
一方、S52において、OUTパケット送信可能範囲でないと判断した場合、デバイスSM42は、SOFパケットの送信タイミングまで待機する(S54)。そして、SOFパケットを送信し(S55)、一定時間待機した後(S56)、デバイスSM42は、OUTパケット送信可能範囲であると判断して、OUTパケットおよびDATAパケットをデバイス13に送信し(S53)、処理を終了する。
上記の処理により、OUTトランザクション中での、デバイス側コントローラ12(デバイスSM42)からデバイス13に対するSOFパケットの送信を、他のパケットの送受信によって妨げられることなく、良好に実施できる。なお、デバイスSM42は、S56の後、処理をS52に戻し、OUTパケット送信可能時間であることを再確認するようにしてもよい。また、S56の待機を実行せず、すぐにOUTパケット・DATAパケットを送信する(あるいはS52に戻る)ようにしてもよい。
なお、デバイスSM42は、デバイス13に送信する前に、DATAパケットのパケット長(サイズ)を知ることが可能である。このため、OUTパケット送信可能範囲を、OUTパケットの送信を開始する時間の範囲であり、『OUTパケットをデバイス13に送信してから、ホスト側コントローラ11から受信したDATAパケットをデバイス13に送信し、ACKパケットをデバイス13から受信するまで』の間に、SOFパケットの送信タイミングが訪れない時間範囲、と設定してもよい。この場合、デバイスSM42は、OUTトランザクションの度に、OUTパケット送信可能範囲を計算しなおすこととなる。しかしながら、最適な時間範囲を設定可能となり、OUTパケットおよびDATAパケットの送信を無駄に待機してしまうことを防止できるので、送信効率を向上できる。
また、上記したようなSOFパケットの送信に関する問題は、SETUPトランザクション時にも生じる。SETUPトランザクションは、OUTトランザクションにおいて、OUTパケットの代わりにSETUPパケットをデバイス13に送信する処理である。従って、上記した図10の処理によって、SETUPトランザクション時でのSOFパケットの送信を良好に行える。
また、本実施の形態では、ホストSM32がSOFパケットをデバイス側コントローラ12にリピートせず、デバイスSM42が、所定周期(125μs)毎に、デバイス13にSOFパケットを送信するとしている。
しかしながら、これに限らず、ホストSM32が、ホスト10からSOFパケットを受信したときに、SOFパケットを受信したことを示すSOF受信通知信号をデバイス側コントローラ12に送信するようにしてもよい。そして、この信号を受けたタイミングで、デバイスSM42が、SOFパケットをデバイス13に送信するように設定されていてもよい。ここで、SOF受信通知信号としては、例えば、8B10Bの特定のキャラクタであってもよいし、別のパケット形式のものであってもよい。
この構成では、ホストSM32が、SOFパケットより転送速度の著しく早いSOF受信通知信号をデバイス側コントローラ12に送信することで、デバイス側コントローラ12のデバイスSM42に対し、SOFパケットの送信タイミングを伝達するようになっている。
これにより、SOFパケットの送信に関するコントローラ11・12間の光無線通信における通信速度(通信時間)を、『USBケーブルを用いてコントローラ11・12を接続し、これらの間でSOFパケットを転送する程度』にまで速められる。
従って、この構成でも、デバイス13のバスをアクティブな状態で維持できるとともに、SOFパケットの転送によるホスト−デバイス間の通信効率の低下を防止できる。なお、この構成では、デバイス側コントローラ12にタイマー29を備える必要はなくなる。
また、デバイス13に送信するSOFパケットを生成する際、デバイスSM42は、SOFパケットを、所定のルールに沿って生成することが好ましい。例えば、デバイスSM42は、図12に示したSOFパケットのフォーマットにおける、フレームナンバー(FrameNo)を正しく設定することが好ましい。このフレームナンバーは、HSでは、8パケット連続で同じ値をとり、9回目に1だけ増えるものである。また、FSでは、パケットごとに1づつ増えてゆく。
なお、本システムでは、デバイス側コントローラ12からデバイス13に送信されたSOFパケットのフレームナンバーが、ホスト10から送信されるはずのSOFパケットのものと同一でない可能性もある。しかしながら、デバイス13に受信されるSOFパケットについては、その受信タイミングが重要である。そして、フレームナンバーは、USB2.0で定められた上記のルールに従っていれば、ホスト10から送信されたものと一致していなくても問題はない。
また、本実施の形態では、ホスト10とデバイス13とが、HSで通信を行うとしている。しかしながら、他のモード(LS,FS)で通信を行うように設定されていてもよい。この場合でも、コントローラ11・12に間における通信帯域をSOFパケットの送信によって狭めてしまうことを回避できる。
また、本実施の形態では、ホスト側コントローラ11のホストSM32が、受信したパケットがSOFパケットであると確認された場合、このパケットを送信FIFO21に保存せずに破棄するとしている。しかしながら、デバイス側コントローラ12は、受信したパケットを送信FIFO21に保存し、その後に、このパケットがSOFパケットであるか否かを判断するように設定されていてもよい。この場合、ホストSM32は、受信したパケットがSOFパケットであると確認された場合、このパケットを送信FIFO21から破棄することとなる。
また、本実施の形態では、コントローラ11・12間の光無線通信におけるデータ転送速度を100Mbpsとしている。しかしながら、これに限らず、コントローラ11・12間の転送速度は、どのような値でもよい(USBケーブルを用いた転送速度より遅くても、早くても、同一でもよい)。この転送速度がどのような値であっても、本システムでは、コントローラ11・12間でSOFパケットを送受信しないため、他のパケットの通信効率を向上させられる。
また、本実施の形態では、コントローラ11・12間を、光無線通信によって接続するとしている。しかしながら、これに限らず、コントローラ11・12間を、光ケーブルで通信するようにしてもよい。なお、光ケーブルを用いた場合は、パケットの長距離伝送が可能となる。また、光無線通信(空間通信)を用いる場合には、ケーブルレスのため、利便性を向上させられる。
また、コントローラ11・12間の通信方式としては、半二重通信と全二重通信とのいずれを採用してもよい。ここで、全二重通信とは、ホストからデバイスへの送信と、デバイスからホストへの送信とを、並行して実行できる通信方式である。全二重通信を選択すると、発光ダイオードやレーザーダイオードからなる光送信機23を常に発光させておくこととなる。このため、パケットにプリアンブルを付加する必要がなく、通信路の通信効率(使用効率)を向上させられる。
ここで、全二重通信で光送信機23を常に発光させておく理由は、ホスト10あるいはデバイス13からUSB受信機20に対して受信されるパケットを、直ちにリピートするためである。
また、光送信機23を常に発光させておくことにより、コントローラ11・12間の接続・切断を容易に行える。すなわち、半二重通信の場合、光受信機24が一定時間以上光を受けない場合に、コントローラ11・12間の接続が切断されたと判断される。一方、全二重通信では、接続状態で常に光送信機23を発光させ、相手先コントローラの光受信機24に常に受光状態としておく。そして、接続を切断する際には、光送信機23の発光を停止する。これにより、光受信機24が光を受けなくなった段階で、接続が切れたと判断することが可能となる。これにより、半二重通信に比して、切断に要する時間を短縮できる。
また、コントローラ11・12間を、光ではなく、通常の電波による無線通信で接続するようにしてもよい。この場合、変調回路22,復調回路25の変調・復調方式を、適切に設定することが好ましい。また、光受信機24は、電波を受信する受信アンテナとなる。
また、上記のプリアンブルは、パケットの受信側において、クロックデータリカバリ回路(図示せず)により、クロックの同期をとるために必要な信号である。通常は、“1010”パターンの連続が使用される。プリアンブルの時間は、DATAパケットを送信できない時間である。このため、プリアンブルにより、無駄な時間が生じる。全二重通信の場合、ホストおよびデバイスが常に信号を送信しているため、パケットごとにクロック同期を取る必要がない。つまり、プリアンブルが必要ないといえる。このため、全二重通信では、転送効率を高められる。
また、本システムでは、デバイス側コントローラ12のデバイスSM42は、ホスト側コントローラ11からリセット通知信号を受けた場合、SOFパケットの送信を停止するとしている。このとき、本システムは、デバイス13の接続時の動作においてバスリセットされた場合と同様の状態となる。従って、デバイスSM42は、デバイス13からホスト10に向けて送信されるCHIRPを受けた場合、これをホスト側コントローラ11に送信するとともに、ホスト10(ホスト側コントローラ11)から送信されるであろうCHIRPをデバイス13に送信するようにしてもよい。これにより、接続時のネゴシエーションが完了するので、デバイスSM42は、SOFパケットの送信を再開することとなる。
従って、本発明のデバイス側コントローラを、USBシステムのデバイスに備えられ、ホストとデバイスとの間の通信を中継するデバイス側コントローラにおいて、デバイスからホストに向けて送信されたCHIRPを受信した場合、これをホスト側に送信するとともに、ホストから送信されるはずのCHIRPをデバイスに送信するデバイス側制御部を備えている構成である、と表現することもできる。
また、本実施の形態では、コントローラ11・12を、ホスト10あるいはデバイス13とUSBケーブルで接続するとしている。しかしながら、これに限らず、ホスト側コントローラ11を、ホスト10に接続されたUSBハブのダウンストリームのポートに接続するようにしてもよい。また、ホスト側コントローラ11を、ホスト10あるいはUSBハブの一部として構成してもよい。また、デバイス側コントローラ12を、USBハブのアップストリームのポートとUSBケーブルで接続してもよい。また、デバイスやUSBハブの一部として構成してもよい。
また、本システムでは、ホストSM32とデバイスSM42とは、実際には同様の部材であり、ホスト側コントローラ11とデバイス側コントローラ12とは、SOF判別回路31の違いだけで、あとは実質的に同一の構成である。従って、デバイス側コントローラ12を、ホスト側コントローラ11と同様の構成(SOF判別回路31を備えた構成)としてもよい。この場合、デバイス側コントローラ12のSOF判別回路31は用いられない。しかしながら、1種類のコントローラをホスト10とデバイス13とにそれぞれ備えるだけで、本システムを構築することが可能となる。
また、本実施の形態では、コントローラ11・12にエラー検出回路28を備えるとしている。しかしながら、送信されたパケットのエラーを検出しない構成では、このエラー検出回路28を備える必要はない。また、ホストSM32・デバイスSM42によって、パケットのエラーを検出するようにしてもよい。
また、本実施の形態では、ホスト側コントローラ11にタイマー29を備えるとしている。しかしながら、これに限らず、ホストSM32がタイマー29を用いない場合であれば(例えば、ホスト側コントローラ11からデバイス側コントローラ12にリセット通知信号を通知しない構成であれば)、ホスト側コントローラ11にタイマー29を備える必要はない。
また、本実施の形態では、ホスト10をパーソナルコンピューターであるとしている。しかしながら、これに限らず、ホスト10としては、デバイス13を使用可能で、USBの親機となれる機器であれば、どのような機器でもよい。
また、本実施の形態では、コントローラ11・12にSNSM30を備えるとしている。しかしながら、これに限らず、上記したようなスピードネゴシエーションを行わず、コントローラ11・12間での通信速度を一定とする構成では、コントローラ11・12にSNSM30を備える必要はない。
また、本実施の形態では、デバイス側コントローラ12のデバイスSM42が、ホスト10とデバイス13との接続が確立された後、SOFパケットをデバイス13に送信するとしている。また、ホスト側コントローラ11のホストSM32が、ホスト10からデバイス13に向けて送信されるSOFパケットを受信した場合に、このパケットをデバイス側コントローラ12に送信することを回避するとしている。
しかしながら、これに限らず、本システムを、通常のUSBシステムと同様に、ホスト10から送信されたSOFパケットを、ホスト側コントローラ11のホストSM32がデバイス側コントローラ12にリピートし、デバイス側コントローラ12のデバイスSM42がホスト10にリピートするように設定してもよい。
すなわち、本システムは、ホスト10・ホスト側コントローラ11間、および、デバイス側コントローラ12・デバイス13間の通信を、USBネイティブの最高速度であるハイスピードモード(HS;480Mbps)で行う。そして、コントローラ11・12間を、これよりも遅い,100Mbpsの光通信(光無線,あるいは光ケーブルによる通信)によって行うように設定されている。
ここで、コントローラ11・12間における光通信のデータ転送速度を480Mbpsとする場合、例えば8B10Bの変調方式を用いると、480×10/8=600Mbpsの帯域を持った光送信機および光受信機(光トランシーバー)が必要である。そして、このような光送信機を得るためには、LD(レーザーダイオード)を用いる必要がある。
一方、コントローラ11・12間の光通信におけるデータ転送速度を100Mbpsとする場合、光送信機23を、LED(発光ダイオード)を用いて構成できる。そして、LDとLEDを比較すると、圧倒的にLEDの方が安価である。従って、コントローラ11・12間の光通信の速度を遅くすることで、コントローラ11・12(光送信機23)を低コストで構成できる。また、光通信を用いることで、USBケーブルを用いることによる制限(ケーブル長など)を回避できる。
また、コントローラ11・12間でのデータ通信を行う部材を光送信機23,光受信機24のみとし、そのためのポート(通信端子)を、光送信機23,光受信機24の光ポートのみにする(メタルポートを用いない)ことが好ましい。また、コントローラ11・12を、ホスト10あるいはデバイス13と一体化することも好ましい。このように構成すれば、コントローラ11・12の必要とする帯域が、600Mbpsから100Mbpsへと著しく低くなる。これにより、安価な製造プロセスにより、コントローラ11・12を作成することが可能となる。
なお、デバイス13として、データ転送速度の遅いもの(例えばフラッシュメモリ;50Mbps程度)を用いる場合、トランザクションの完了に要する時間は、デバイス13の転送速度に大きく依存する。従って、コントローラ11・12間のデータ転送速度については、デバイス13の速度より速くすれば、トランザクションの完了時間に大きな影響を与えることはないといえる。
また、コントローラ11・12間を、光を用いない他の通信経路(電波による無線通信など)としても、転送速度を遅くすることで、コントローラ11・12のコストを削減できる。従って、本発明のUSBシステムを、ホストと、デバイスと、ホストに備えられ、ホストとデバイスとの間の通信を中継するホスト側コントローラと、デバイスに備えられ、ホストとデバイスとの間の通信を中継するデバイス側コントローラとを含むUSBシステムにおいて、コントローラ間のデータ転送速度が、USB2.0におけるハイスピードモードでのデータ転送速度より遅くなっていることを特徴とするUSBシステム、と表現することもできる。
また、本発明のUSBシステムを、USBシステムのホストに備えられ、外部とホストとの間で送受信されるパケットを中継するホスト側コントローラと、USBシステムのデバイスに備えられ、外部とデバイスとの間で送受信されるパケットを中継するデバイス側コントローラとを備えたUSBシステムにおいて、上記のホスト側コントローラが、ホストからデバイスに向けて送信されるSOFパケットを受信した場合に、このパケットをデバイス側に送信することを回避するとともに、上記デバイス側コントローラが、所定周期でSOFパケットをデバイスに送信するように設定されている構成である、と表現することもできる。
また、上記では、デバイス側コントローラ12における全ての処理を、デバイスSM42の制御により行うとしている。しかしながら、これに限らず、これらの処理を行うためのプログラムを記録媒体に記録し、このプログラムを読み出すことのできる情報処理装置を、デバイスSM42に代えて用いるようにしてもよい。
また、同様に、ホスト側コントローラ11における全ての処理をホストSM32によって行うとしているが、これらの処理を行うためのプログラムを記録媒体に記録し、このプログラムを読み出すことのできる情報処理装置を、ホストSM32に代えて用いるようにしてもよい。
この構成では、情報処理装置の演算装置(CPUやMPU)が、記録媒体に記録されているプログラムを読み出して処理を実行する。従って、このプログラム自体が処理を実現するといえる。
ここで、上記の情報処理装置としては、一般的なコンピューター(ワークステーションやパソコン)の他に、コンピューターに装着される、機能拡張ボードや機能拡張ユニットを用いることができる。
また、上記のプログラムとは、処理を実現するソフトウェアのプログラムコード(実行形式プログラム,中間コードプログラム,ソースプログラム等)のことである。このプログラムは、単体で使用されるものでも、他のプログラム(OS等)と組み合わせて用いられるものでもよい。また、このプログラムは、記録媒体から読み出された後、装置内のメモリ(RAM等)にいったん記憶され、その後再び読み出されて実行されるようなものでもよい。
また、プログラムを記録させる記録媒体は、情報処理装置と容易に分離できるものでもよいし、装置に固定(装着)されるものでもよい。さらに、外部記憶機器として装置に接続するものでもよい。
このような記録媒体としては、ビデオテープやカセットテープ等の磁気テープ、フロッピー(登録商標)ディスクやハードディスク等の磁気ディスク、CD−ROM,MO,MD,DVD,CD−R等の光ディスク(光磁気ディスク)、ICカード,光カード等のメモリカード、マスクROM,EPROM,EEPROM,フラッシュROM等の半導体メモリなどを適用できる。また、ネットワーク(イントラネット・インターネット等)を介して情報処理装置と接続されている記録媒体を用いてもよい。この場合、情報処理装置は、ネットワークを介するダウンロードによりプログラムを取得する。すなわち、上記のプログラムを、ネットワーク(有線回線あるいは無線回線に接続されたもの)等の伝送媒体(流動的にプログラムを保持する媒体)を介して取得するようにしてもよい。なお、ダウンロードを行うためのプログラムは、装置内(あるいは送信側装置・受信側装置内)にあらかじめ記憶されていることが好ましい。
また、本発明を、図17に示すような、ホスト側コントローラ11としての機能とデバイス側コントローラ12としての機能を備えている通信コントローラ100として実現することもできる。
図17に示すように、通信コントローラ100は、ホスト側コントローラ11としての機能を有しているとともに、デバイス側コントローラ12としての機能も有している。この構成により、USBシステムにおいて、1つの通信コントローラ100を、ホスト側コントローラ11としても、デバイス側コントローラ12としても使用できる。
すなわち、この通信コントローラ100は、ホスト側コントローラ11によって得られる作用効果を奏すると共に、デバイス側コントローラ12によって得られる作用効果を奏するものである。
したがって、1種類の通信コントローラ100を、ホスト10およびデバイス13にそれぞれ備えるだけで、ホスト側コントローラ11およびデバイス側コントローラ12を備えたシステムと機能的に同一のシステムを構築できる。すなわち、2種類のコントローラを用意することなくシステムを構築できるため、システムの構築をより簡便にできる。
また、通信コントローラ100は、USBシステムに接続された各種情報機器が、機器の置かれた状況に応じてホスト10としてもデバイス13としても機能するシステムに用いることができる。なお、このようなUSBシステムとして、例えば、近年、規格化されたUSB−OTG(USB−On The Go)がある。
USB−OTGは、これまでUSBシステムを介してホスト(パーソナルコンピュータ等)に接続されていたデバイス(周辺機器)に、ホストとしての機能を持たせることができる規格である。したがって、USB−OTG規格に従ったUSBシステムでは、USB1.x規格やUSB2.0規格では不可能である、デバイス同士の接続によるデータ転送が可能となる。
USB1.x規格やUSB2.0規格では、ホスト側とデバイス側との機能がそれぞれ固定されている。すなわち、これらの規格の下におけるデータのやり取りは、パーソナルコンピュータをホスト10として、このパーソナルコンピュータにUSBファンクションとなるデバイス13(デジタルカメラやプリンタ等)が接続された状態で行われる。
しかし、USB−OTG規格では、従来のUSBシステムで必要であったパーソナルコンピュータ(USBホスト)が必要でなくなっている。すなわち、USB−OTG規格では、パーソナルコンピュータ(USBホスト)なしにUSB機器同士でデータの送受信が可能であるため、利便性の向上が図られている。USB−OTGにおいては、繋がれたケーブルのコネクタの種類により、ホストとしても、デバイスとしても動作可能となる。
このUSB−OTGでは、USB2.0と同様に、LS(1.5Mbps),FS(12Mbps),HS(480Mbps)の転送速度をサポートしている。また、USB−OTG対応機器は、USBホストとしても、またUSBファンクション(デバイス)としても動作可能である。
また、USB−OTG規格においては、miniABという新しいコネクタの種類が追加された。このminiABは、miniA,miniBの両方のプラグを持ったケーブルを接続することが可能である。接続されるケーブルのプラグの形状により、miniAが接続された場合は、USBホストとして動作し、またminiBが接続された場合は、USBファンクションとして動作する。
また、HNP(Host Negotiation Protocol)という新しいプロトコルにより、ケーブルを接続した状態で、動的にホストとファンクションの機能を交代するといった機構を追加されている。つまり、USB−OTGでは、接続される機器がUSBホストとなるかUSBファンクションとなるかは、ケーブルのコネクタの種類、もしくはUSB−OTGで定められたHNP(Host Negotiation Protocol)で決定する。
すなわち、USB−OTGでは、USBホストおよびUSBファンクション(デバイス)は、その役割が固定されているものではなく、伝送されるデータの方向によってその役割が入れ替わることもありうる。同様に、ホスト側コントローラ11およびデバイス側コントローラ12も、その役割が固定されているものではなく、伝送されるデータの方向によってその役割が入れ替わることも可能である。
そのため、このUSB−OTGに対応すべく、一つの通信コントローラ100が、ホスト側コントローラ11とファンクション側コントローラ12との両方の機能を持っている。
例えば、通信コントローラ100を用いてUSBシステムを組めば、デジタルカメラとプリンタとを直接に接続して、デジタルカメラをホスト10として、プリンタをデバイス13として機能させることができる。これにより、ホスト10であるデジタルカメラから、デバイス12であるプリンタにデータを転送することができる。
すなわち、通信コントローラ100を備えているUSBシステムでは、パーソナルコンピュータをホスト10として組み込まなくても、デジタルカメラの画像をプリンタによって直接的に印刷することができる。また、デジタルカメラやデジタルビデオカメラを、ハードディスク等のストレージ装置に直接的に接続し、データをこのストレージ装置に転送することによって、データを保存することが可能になる。
なお、本発明の通信コントローラは、ホスト側コントローラ11およびデバイス側コントローラ12としての機能を必ずしも両方有しているものでなくてもよい。すなわち、本発明の通信コントローラは、本発明のホスト側コントローラ11としての機能を有していると共に、一般的な、従来のデバイス側コントローラ(例えば、SOFパケットを自ら生成することのないデバイス側コントローラ)としての機能を有しているものであってもよい。さらに、本発明の通信コントローラは、本発明のデバイス側コントローラ12としての機能を有していると共に、一般的な、従来のホスト側コントローラ(例えば、SOFパケットのデバイス側への送信を回避しないホスト側コントローラ)としての機能を有しているものであってもよい。
また、本発明は、USB規格におけるUSB信号の伝送方法および伝送装置に関するものであるともいえる。また、USBでは、接続形態を維持するために、最下層のプロトコルは時分割で通信し、ホストがスケジューリングを行うといえる。また、USB上のデータ通信は、トランザクションと呼ばれる単位で行われる。このトランザクションは、トークンパケット、データパケット、そしてハンドシェイクパケットと呼ばれるパケットで構成されている。ホストがトランザクション開始時に発行するトークンパケットで必ず始まり、トークンパケットに含まれるアドレスおよびエンドポイントにより、対応するデバイスが応答する。
エンドポイントとは、転送データを格納するためのFIFOバッファのことであり、USBホストとUSBデバイスのデータのやりとりは、かならずエンドポイントを介して実行される。USBデバイスは、最大16個のエンドポイントを持つことができ、複数のエンドポイントを認識するために、エンドポイントには番号がつけられる。USBホストはデータ転送の際にUSBデバイスのUSBアドレスとエンドポイントによりアクセスを行う。エンドポイントの中で0番のものは、エンドポイント0と呼ばれ、USBデバイスに必ず1つ存在しなければならない。このエンドポイント0は、コントロール転送時にSETUPパケットによって行われる初期化時に用いられる。また、USB2.0においては、HSモードがアクティブの場合、USBホストはバスリセット信号として、D+信号線とD−信号線をともに10ms以上ローレベル(SE0)とする。
また、SOFパケットは、アイソクロナス転送時にUSBホストとUSBデバイスの同期をとるために必要であり、アイソクロナス転送を行わないアプリケーションにおいては、リセットでないことを示す以外は必要ない。また、アイソクロナス転送を行うアプリケーションにおいても、USBデバイスから見るとSOFの受信タイミングが重要であり、SOFパケットのフレームナンバーについては、あらかじめUSB2.0で定められたルールに従っていれば、USBホストの送信したSOFパケットのフレームナンバーとUSBデバイスが受信したSOFパケットのフレームナンバーが一致している必要はないと考えられる。
また、本発明においては、USBホスト側に接続されるホスト側コントローラとUSBデバイス側に接続されるデバイス側コントローラから構成されてもよい。ホスト側コントローラは、USBホストからの信号を受信してUSBデバイスに送信し、デバイス側コントローラからの信号をUSBホストに向かって送信するが、USBホストとUSBケーブルで接続する以外にUSBハブのダウンストリームのポートとUSBケーブルで接続されても構わない。また、USBホストやUSBハブの一部として、構成されても構わない。デバイス側コントローラは、ホスト側コントローラからの信号をUSBデバイスに送信し、USBデバイスからの信号をホスト側コントローラに向かって送信するが、USBデバイスとUSBケーブルで接続する以外にUSBハブのアップストリームのポートとUSBケーブルで接続されても構わない。また、USBデバイスやUSBハブの一部として構成されも構わない。
また、送信FIFO21は、ホスト側コントローラとデバイス側コントローラ間の通信路がUSBの通信路と比べて同一もしくは低速である場合、前記同一または低速の通信路にパケットをリピートする際のタイミング調整を行ってもよい。また、本システムでは、ホストSM32は、INトランザクション、OUTトランザクション、SETUPトランザクションの各トランザクションにおいて、予め定められたルールにより、USBホストおよびデバイス側コントローラとパケットのやりとりを行う。
また、ホストSM32は、USB受信機20から受信したUSBパケットをSOF判別回路31により解析した後、受信パケットがSOFパケットであると判別される場合、デバイス側コントローラへのSOFパケットのリピートを行わない。ここで、リピートを行わない方法として、例えば送信FIFO21にSOFパケットのデータを書き込まないなどがあるが、その他の方法によりリピートを抑制しても構わない。
また、本システムでは、USBホストとUSBデバイスの間に、USB規格よりも低速な通信路が存在しても、ホスト側コントローラおよびデバイス側コントローラが上記の構成を持つことで、USBデバイスに対してSOFパケットを送信することが可能となり、USBデバイスをアクティブ状態で維持することが可能となるといえる。
また、ホストSM32がSOF受信通知信号をデバイス側コントローラ12に送信する構成では、USBホストとUSBデバイスの間に、USB規格よりも低速な通信路が存在しても、デバイス側コントローラ内にタイマーを持たなくても、USBデバイスに対してSOFパケットを送信することが可能となり、USBデバイスをアクティブ状態で維持することが可能となるといえる。
また、INトランザクション時、デバイスSM42は、タイマー29を監視し、SOFパケットの送信タイミングを計る。また、INパケットをUSBデバイスに送信した場合に返ってくるDATAパケットの最大長は、図7に示す値である。これらの値から、SOFパケットの送信タイミングよりもどれだけ早いタイミングでINパケットを送信したら、DATAパケットを受信中にSOFパケットの送信タイミングが訪れないか、また、さらにデバイス側コントローラがUSBデバイスに対してACKを送信する時間を加えた場合のINパケットの送信を行っても良いタイマーの値を逆算することが可能となり、その計算した値に達していなければ、USBデバイスに送信し、また、前記計算した値に達していれば、次のSOFパケットの送信後に、INパケットを送信するといったINパケットの送信タイミングの制御を行うことが可能となるといえる。
また、S42は、タイマー29の値が、INパケットを送信して、最大長のDATAパケットが返ってきた場合にACKパケットを送信するまでにSOFパケットの送信タイミングが訪れない程度の値に達しているかどうかを判別するステップであるともいえる。そして、タイマー29の値が達していれば、S44へ、またタイマーの値が達してなく、INパケットの送信を行っても良いと判断される場合は、S43へとそれぞれ遷移する。このような動作を行うホストSM32をデバイス側コントローラ11内に実装することにより、INトランザクションにおいて、USBデバイスの送信したDATAパケットやデバイス側コントローラの送信するINパケットおよびACKパケットにより、SOFパケットの送信ができなくなるといった状態を起こさないようにすることが可能となるといえる。
また、OUTトランザクション時、デバイスSM42は、タイマー29を監視し、SOFパケットの送信タイミングを計る。また、デバイス側コントローラが送信するDATAパケットの最大長は、図7に示す値である。これらの値から、デバイスSM42は、SOFパケットの送信タイミングよりもどれだけ早いタイミングでOUTパケットおよびDATAパケットを送信したら、SOFパケットの送信タイミングが訪れないか、また、USBデバイスが、前記DATAパケットに対するACKパケットを送信する時間を加えた場合のOUTパケットの送信開始を行っても良いタイマーの値を逆算することが可能となり、その計算した値に達していなければ、USBデバイスにOUTパケットおよびDATAパケットを送信開始し、また、前記計算した値に達していれば、次のSOFパケットの送信後に、OUTパケットおよびDATAパケットを送信するといったOUTパケットの送信開始タイミングの制御を行うことが可能となるといえる。また、デバイス側コントローラは次に送信すべきDATAパケットのパケット長を知ることが可能であるため、前記OUTパケット送信開始制御のためのタイマーの値を常に計算しなおして、最も良い値で制御を行うことも可能である。また、SETUPパケットトランザクションにおけるSETUPパケットおよびDATAパケットとACKパケットの位置関係は、OUTトランザクションにおけるOUTパケットおよびDATAパケットとACKパケットの位置関係と同じであるため、SETUPトランザクションにも応用することが可能である。
また、S52は、タイマー29の値が、OUTパケットおよびDATAパケットを送信して、USBデバイスがACKパケットを返すまでにSOFパケットの送信タイミングが訪れない程度の値に達しているかどうかを判別するステップであるともいえる。そして、タイマー29の値が達していれば、S54へ、またタイマーの値が達してなく、OUTパケットの送信を開始しても良いと判断される場合は、S53へとそれぞれ遷移する。
また、本発明の課題を、以下のように表現してもよい。すなわち、ホストとデバイスの間に、USB2.0のネイティブ速度と比べて転送速度の低い通信路を用いた場合、SOFパケットの送信における帯域の使用により、低速通信路における他のパケット転送が行える帯域が減ってしまう。また、SOFパケットをリピートしない場合は、デバイス側コントローラで、バスリセットを認識することができなくなる。また、バスがリセットされると、一時的にでもホストとデバイスとが切断される。ホストが一度デバイスの認識に失敗すると、再起動以外にデバイスの再認識はできない(デバイスの抜き差しでも認識されない)といった症状があらわれることがあり、この意味で、バスリセットはできるだけ少ないほうが望ましいといえる。また、全二重通信において常に発光しているものは、発光ダイオードやレーザーダイオードなどの送信機である。発光により、常に発光しているのは、全二重通信を行うためであり、いつ受信するかわからないパケットをリピートするためにも、発光(通信)を続けることが好ましい。また、受信信号の有無により、接続、切断などの制御も行うことが可能となる(半二重通信の場合は、一定時間以上、無信号であった場合に切断という手順になるため、切断に要する時間も多く必要になると考えられる)。また、空間通信においては、転送速度と通信距離により、エラーレートは大きく変化する。転送速度が速い場合、正常にデータ転送ができる距離というのは、転送速度が遅いときと比べて、短くなる。つまり、ある距離において、転送速度が速いほうが信号の伝送を行えない可能性が高くなる。また、シグナルディテクト信号は、受信信号の有無のみを判別するための信号であり、転送速度に比べて、遅い信号となるともいえる。
また、以上の実施の形態の例で示した方法により、USBのネイティブの速度よりも遅い通信速度がUSBホストとUSBデバイスの間に存在したとしても、USBデバイスに対して、USB規格で定められた周期でSOFパケットを送信することが可能であるといえる。また、USBホストが発光したバスリセット(SE0)も、問題なくUSBデバイスに伝達することが可能となる。また、スピードネゴシエーション回路を設けることにより、最も適した転送速度において、データ通信が可能となる。また、全二重通信を行うことにより、通信路の使用効率を向上させることが可能となる。また、低速通信路として、光ファイバを用いることにより、同一または低速の通信路の距離を長くとることが可能となり、応用範囲が広がる。
また、低速通信路として、電波を用いた無線を用いることにより、コネクタ劣化を防ぐことが可能となり、またケーブルレスとなるため、使い勝手が良くなる。また、低速通信路として、光を用いた空間伝送を用いることにより、コネクタ劣化を防ぐことが可能となり、高速な空間伝送を行うことが可能となる。また、タイマーの値を監視することにより、INトランザクション、OUTトランザクション、SETUPトランザクションの各トランザクションにおいて、デバイス側コントローラの送信するSOFパケットと他のパケットの衝突を回避することが可能となる。
また、本発明の目的は、USB2.0のネイティブ速度と比べて転送速度が低い通信路(例えば100Mbpsの光通信路)を用いた場合において、SOFパケットの転送による通信路の転送効率の低下を抑制すること、およびUSBホストが送信したリセット信号を問題なくUSBデバイスに伝達することにあるともいえる。
このような目的を達成するための本発明を、以下の第1〜13送受信回路,第1送受信方法として表現することもできる。すなわち、第1送受信回路は、USB規格に定められた転送速度と同一もしくはそれ以下の転送速度で転送可能なインタフェースを持った送受信回路であって、USBホストもしくはUSBハブのダウンストリーム側のポートに接続されるか、USBホストもしくはUSBハブの一部として構成されるホスト側コントローラと、USBデバイスもしくはUSBハブのアップストリーム側のポートに接続されるか、USBデバイスもしくはUSBハブの一部として構成されるデバイス側コントローラであって、両コントローラは、FIFO、ステートマシンを有し、ホスト側コントローラにおいては、SOF判別回路を有し、SOFパケットを前記同一もしくはそれ以下の転送速度の通信路にはリピートしないことを特徴とし、デバイス側コントローラにおいては、タイマーを有し、予め定められた一定時間ごとにSOFパケットをUSBデバイスに送信することを特徴とする。
こうすることにより、ホスト側コントローラとデバイス側コントローラにおいて、SOFパケットの送受信を行わないことが可能となり、SOFパケットによるホスト側コントローラとデバイス側コントローラ間の通信路の転送効率の低下を抑制することが可能となる。
また、第2送受信回路は、USB規格に定められた転送速度と同一もしくはそれ以下の転送速度で転送可能なインタフェースを持った送受信回路であって、FIFOを有し、ホスト側コントローラにおいては、SOF判別回路を有し、SOFパケットを受信したこと示す信号をデバイス側コントローラに送信することを特徴とし、デバイス側コントローラにおいては、前記SOF受信通知用信号を受信したら予め定められたSOFパケットをUSBデバイスに送信することを特徴とする。こうすることにより、ホスト側コントローラとデバイス側コントローラの同期をとることが可能となる。
本発明にかかる第3の送受信回路は、前述の第1送受信回路であって、ホスト側コントローラにおいて、タイマーを有し、予め定められた一定時間パケットを受信しなかった場合、SE0であると認識し、デバイス側コントローラに通知することを特徴とし、デバイス側コントローラにおいて、前記SE0受信通知を認識すると、SOFパケットの送信をやめることを特徴とする。こうすることにより、USBホストの送信したバスリセット信号を問題なくUSBデバイスに伝達することが可能となる。
また、第4送受信回路は、前述の第1送受信回路もしくは第2送受信回路であって、複数の転送速度が可能な送受信回路およびトランシーバを有し、相手ノードとのスピードネゴシエーションを行うことを特徴とする。こうすることにより、複数の転送速度で転送が可能なホスト側コントローラとデバイス側コントローラにおいて、同一の転送速度でパケット転送が可能となる。
また、第5送受信回路は、前述第4の送受信回路であって、前記スピードネゴシエーションにより、予め定められた転送速度以上で通信が可能であると判断される場合は、変復調のみを行ってSOFパケットのリピートを行うことを特徴とする。こうすることで、通信路の転送速度が前述の最大ターンアラウンドを満足する程、十分であると判断される場合は、USBホストの送信したSOFパケットを忠実にUSBデバイスに伝送することが可能となる。
また、第6送受信回路は、前述の第4送受信回路であって、前記同一または低速の通信路のエラーレートを解析し、予め定められたエラーレートよりも悪いと判断される場合、転送速度を落として通信を行うことを特徴とする。こうすることで、仮に通信路の品質が悪いと判断される場合は、転送速度を落とすことにより、品質の良い通信路において、データ転送が可能となる。
また、第7送受信回路は、前述の第1送受信回路であって、デバイス側コントローラにおいて、ホスト側コントローラからINパケットを受信した際に、タイマーの値が、予め定められた一定の値以上であるならば、USBデバイスに対してINパケットを送信せずに、次のSOFパケットを送信後に、INパケットをUSBデバイスに対して送信することを特徴とする。こうすることで、デバイス側コントローラがUSBデバイスに対してINパケットを送信した後に、USBデバイスによって送信されるDATAパケットにより、デバイス側コントローラがSOFパケットを送信できなくなるといった状態を起こさなくすることが可能となる。
また、第8送受信回路は、前述の第1送受信回路であって、デバイス側コントローラにおいて、ホスト側コントローラから、OUTパケットおよびDATAパケットもしくはSETUPパケットおよびDATAパケットを受信した際に、タイマーの値が、予め定められた一定の値以上であるならば、USBデバイスに対して、前記、OUTパケットおよびDATAパケットもしくはSETUPパケットおよびDATAパケットを送信せずに、次のSOFパケットを送信後に、前記OUTパケットおよびDATAパケットもしくはSETUPパケットおよびDATAパケットを送信することを特徴とする。こうすることで、デバイス側コントローラが、USBデバイスに対してDATAパケットを送信する際に、DATAパケットの送信中のために、一定の周期でSOFパケットが送信できないといった状態を起こさなくすることが可能となる。
また、第9送受信回路は、前述の第8送受信回路であって、前記、タイマーの値は、ホスト側コントローラから受信したDATAパケット長によって、可変であることを特徴とする。こうすることで、可変長であるDATAパケットに対して、最も適したタイマーの値を設定することが可能となり、デバイス側コントローラとUSBデバイスの間の通信効率の低下を抑制することが可能となる。
また、第10送受信回路は、前述の第1〜9送受信回路のいずれかの送受信回路であって、全二重通信を特徴とする。こうすることで、半二重通信において必要なプリアンブルをなくすことが可能となり、通信路の使用効率を向上することが可能となる。また、第11送受信回路は、前述の第1〜10送受信回路のいずれかの送受信回路であって、光ファイバを用いた長距離通信であることを特徴とする。こうすることで、USBホストとUSBデバイスの距離を長くすることが可能となり、応用範囲が広がる。
また、第12送受信回路は、前述の第1〜9送受信回路のいずれかにあてはまる送受信回路であって、ホスト側コントローラとデバイス側コントローラ間が無線通信であることを特徴とする。こうすることで、ケーブルレスとなり、コネクタの劣化などが防げる。また、第13送受信回路は、前述の第1〜10送受信回路のいずれかにあてはまる送受信回路であって、ホスト側コントローラとデバイス側コントローラ間が光を用いた空間伝送であることを特徴とする。こうすることで、ケーブルレスとなり、コネクタの劣化などが防げるとともに、高速な空間伝送を行うことが可能となる。また、第1送受信方法は、前述の第1〜第13送受信回路のいずれかの送受信回路を実現する送受信方法である。
また、本発明を、USB2.0のネイティブ速度よりも遅い通信速度により通信可能であり、USB2.0ホストもしくはUSB2.0ハブと一体型もしくは独立したホスト側コントローラおよびUSB2.0デバイスもしくはUSB2.0ハブと一体型もしくは独立したデバイス側コントローラによって構成されたUSBシステムにおいて、USB2.0のハイスピード転送を、前記、USBネイティブ速度よりも遅い通信速度により通信可能な通信路を持つ上記ホスト側コントローラとデバイス側コントローラ間を介して行うことを特徴とするUSB2.0システム、と表現することもできる。
上記のメカニズムにより、低速通信路においても、低速のアプリケーションの場合、全体としての転送速度が落ちない。USB2.0を単純に光化しようとする場合、例えば8B10Bの変調方式を用いたとすると、480×10/8=600Mbpsの帯域を持った光トランシーバが必要である。これを満たす安価な光トランシーバはLD(レーザーダイオード)ある。一方、本発明を用いて低速な通信路でUSB2.0の転送ができる場合、低速通信路が例えば100Mbpsの場合、これを満たす安価な光トランシーバは、LED(発光ダイオード)である。LDとLEDを比較すると、圧倒的にLEDの方が安価であり、本発明の構成により、光トランシーバのコストの削減が可能となる。
また、コントローラにおいても、たとえばホスト側コントローラがUSBホストに一体化され、他のメタルポートをなくし、光ポートのみの構成となった場合、コントローラの必要とする帯域が、600Mbpsから100Mbpsへと著しく低くなる。これは、安価な製造プロセスにより、コントローラの作成が可能となることを意味しており、やはり本発明によりコスト削減が可能となる。以上により、低速のアプリケーションを限定した場合、本発明によりコスト削減が可能であり、低速のアプリケーションとして例えばフラッシュメモリが搭載された携帯電話、デジタルカメラなどのアプリケーションにおいては、本発明が有効であると考えられる。
本発明は、ホストコンピューター(ホスト)と、その周辺機器(デバイス)との間におけるUSB通信(USB規格に沿ったデータ通信)を実現するための通信システムであるUSBシステム、および、USBシステムにおけるホスト,デバイスに備える通信コントローラ(ホスト側コントローラ,デバイス側コントローラ)に利用されるものである。
10 ホスト
11 ホスト側コントローラ
12 デバイス側コントローラ
13 デバイス
20 USB受信機
21 送信FIFO
22 変調回路
23 光送信機
24 光受信機
25 復調回路
26 受信FIFO
27 USB送信機
28 エラー検出回路
29 タイマー
30 スピードネゴシエーションステートマシン(SNSM;速度設定部)
31 SOF判別回路(ホスト側制御部)
32 ホスト側ステートマシン(ホストSM;ホスト側制御部)
42 デバイス側ステートマシン(デバイスSM;デバイス側制御部)Ta 所定時間
100 通信コントローラ
11 ホスト側コントローラ
12 デバイス側コントローラ
13 デバイス
20 USB受信機
21 送信FIFO
22 変調回路
23 光送信機
24 光受信機
25 復調回路
26 受信FIFO
27 USB送信機
28 エラー検出回路
29 タイマー
30 スピードネゴシエーションステートマシン(SNSM;速度設定部)
31 SOF判別回路(ホスト側制御部)
32 ホスト側ステートマシン(ホストSM;ホスト側制御部)
42 デバイス側ステートマシン(デバイスSM;デバイス側制御部)Ta 所定時間
100 通信コントローラ
Claims (26)
- USBシステムのデバイスに備えられ、
ホストとデバイスとの間の通信を中継するデバイス側コントローラにおいて、
ホストとデバイスとの接続が確立された後、SOFパケットをデバイスに送信するデバイス側制御部を備えていることを特徴とするデバイス側コントローラ。 - ホストと、デバイスと、請求項1に記載のデバイス側コントローラとを備えたUSBシステムのホストに備えられ、ホストとデバイスとの間の通信を中継するホスト側コントローラにおいて、
ホストからデバイスに向けて送信されるSOFパケットを受信した場合に、このパケットをデバイス側に送信することを回避するホスト側制御部を備えていることを特徴とするホスト側コントローラ。 - 請求項1に記載のデバイス側コントローラと、請求項2に記載のホスト側コントローラとを備えたUSBシステム。
- 上記デバイス側制御部は、SOFパケットを、所定周期でデバイスに送信するように設定されていることを特徴とする請求項3に記載のUSBシステム。
- 上記ホスト側コントローラのホスト側制御部は、
ホストから所定時間以上パケットを受信しなかった場合、リセット通知信号をデバイス側コントローラに送信し、
上記デバイス側コントローラのデバイス側制御部は、
リセット通知信号の受信に応じて、デバイスに対するSOFパケットの送信を停止するように設定されていることを特徴とする請求項4に記載のUSBシステム。 - 上記デバイス側コントローラのデバイス側制御部は、
デバイスに対してSOFパケット以外の他のパケットを送信する際、
この送信に応じて実行されるデバイスとの通信中に、SOFパケットの送信タイミングが訪れることを回避するように、
送信タイミングを調整することを特徴とする請求項4に記載のUSBシステム。 - 上記デバイス側制御部は、
ホスト側コントローラから受信したOUTパケットあるいはSETUPパケットとDATAパケットとをデバイスに送信する際、
DATAパケットのサイズに基づいて、上記の送信タイミングを調整することを特徴とする請求項6に記載のUSBシステム。 - 上記のホスト側制御部が、ホストからデバイスに向けて送信されるSOFパケットを受信した場合に、SOFパケットを受信したことを示すSOF受信通知信号をデバイス側に送信するとともに、
上記デバイス側制御部が、SOF受信通知信号の受信に応じて、SOFパケットをデバイスに送信するように設定されていることを特徴とする請求項3に記載のUSBシステム。 - 上記ホスト側コントローラおよびデバイス側コントローラは、
両コントローラ間の通信速度を設定する速度設定部を備えていることを特徴とする請求項3に記載のUSBシステム。 - 上記の速度設定部により、コントローラ間の通信速度が所定値以上に設定された場合、
上記ホスト側コントローラのホスト側制御部が、ホストから受信したSOFパケットをデバイス側に送信する一方、
上記デバイス側コントローラのデバイス側制御部が、ホスト側コントローラから受信したSOFパケットをデバイスに送信するように設定されていることを特徴とする請求項9に記載のUSBシステム。 - 上記ホスト側制御部およびデバイス側制御部の少なくとも一方が、
両コントローラ間でのパケットの送受信におけるエラーレートを算出し、
このエラーレートが所定値以上となった場合に、上記速度設定部が、コントローラ間の通信速度を低下させることを特徴とする請求項9に記載のUSBシステム。 - 上記両コントローラ間の通信経路における通信方式が、全二重通信であることを特徴とする請求項3に記載のUSBシステム。
- 上記両コントローラ間の通信経路が、光ケーブルによって形成されていることを特徴とする請求項3に記載のUSBシステム。
- 上記両コントローラ間の通信が、光無線通信によってなされることを特徴とする請求項3に記載のUSBシステム。
- 上記両コントローラ間の通信が、電波を用いた無線通信によってなされることを特徴とする請求項3に記載のUSBシステム。
- USBシステムにおけるホストとデバイスとの間でパケットを通信するパケット通信方法において、
ホストに備えられたホスト側コントローラのホスト側制御部によって、ホストから送信されたSOFパケットをデバイス側に転送することを回避する送信回避工程と、
デバイスに備えられたデバイス側コントローラのデバイス側制御部によって、SOFパケットをデバイスに送信する送信工程とを含むことを特徴とするパケット通信方法。 - USBシステムのホストに備えられたコンピューターに、請求項15に記載の送信回避工程を実行させるとともに、
USBシステムのデバイスに備えられたコンピューターに、請求項15に記載の送信工程を実行させるためのパケット通信プログラム。 - 請求項17に記載のパケット通信プログラムを記録した記録媒体。
- ホストと、
デバイスと、
ホストに備えられ、ホストとデバイスとの間の通信を中継するホスト側コントローラと、
デバイスに備えられ、ホストとデバイスとの間の通信を中継するデバイス側コントローラとを含むUSBシステムにおいて、
コントローラ間のデータ転送を光通信で行うように設定されており、
さらに、この光通信のデータ転送速度が、USB2.0におけるハイスピードモードでのデータ転送速度より遅くなっていることを特徴とするUSBシステム。 - ホストとデバイスとの間の通信を中継し、ホスト側コントローラとしての機能とデバイス側コントローラとしての機能とを備えている通信コントローラにおいて、
通信コントローラがデバイス側コントローラとして機能している時、ホストとデバイスとの接続が確立された後、SOFパケットをデバイスに送信する通信制御部を備えていることを特徴とする通信コントローラ。 - ホストとデバイスとの間の通信を中継し、ホスト側コントローラとしての機能とデバイス側コントローラとしての機能とを備えている通信コントローラにおいて、
通信コントローラがホスト側コントローラとして機能している時、ホストからデバイスに向けて送信されるSOFパケットを受信した場合に、このパケットをデバイス側に送信することを回避する通信制御部を備えていることを特徴とする通信コントローラ。 - 通信コントローラがホスト側コントローラとして機能している時、
上記通信制御部は、ホストからデバイスに向けて送信されるSOFパケットを受信した場合に、このパケットをデバイス側に送信することを回避することを特徴とする請求項20に記載の通信コントローラ。 - 通信コントローラがデバイス側コントローラとして機能している時、
上記通信制御部は、SOFパケットを、所定周期でデバイスに送信するように設定されていることを特徴とする請求項22に記載の通信コントローラ。 - 通信コントローラがデバイス側コントローラとして機能している時、
上記通信制御部は、デバイスに対してSOFパケット以外の他のパケットを送信する際、
この送信に応じて実行されるデバイスとの通信中に、SOFパケットの送信タイミングが訪れることを回避するように、送信タイミングを調整することを特徴とする請求項23に記載の通信コントローラ。 - 通信コントローラがデバイス側コントローラとして機能している時、
上記通信制御部は、ホスト側コントローラから受信したOUTパケットあるいはSETUPパケットとDATAパケットとをデバイスに送信する際、
DATAパケットのサイズに基づいて、上記の送信タイミングを調整することを特徴とする請求項24に記載の通信コントローラ。 - ホストと、デバイスと、請求項20に記載の通信コントローラと、請求項21に記載の通信コントローラとを備えたUSBシステム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004216495A JP2005129010A (ja) | 2003-09-29 | 2004-07-23 | デバイス側コントローラ,ホスト側コントローラ,通信コントローラ,usbシステム,パケット通信方法,パケット通信プログラムおよび記録媒体 |
TW93128312A TWI294083B (en) | 2003-09-29 | 2004-09-17 | Device-side controller, host-side controller, communication controller, usb system, and packet communications method |
CNA2004100758928A CN1655132A (zh) | 2003-09-29 | 2004-09-29 | 设备、主机端控制器、通用串行总线系统及分组通信方法 |
US10/951,678 US20050080935A1 (en) | 2003-09-29 | 2004-09-29 | Device-side controller, host-side controller, communication controller, USB system, and packet communications method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003337952 | 2003-09-29 | ||
JP2004216495A JP2005129010A (ja) | 2003-09-29 | 2004-07-23 | デバイス側コントローラ,ホスト側コントローラ,通信コントローラ,usbシステム,パケット通信方法,パケット通信プログラムおよび記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005129010A true JP2005129010A (ja) | 2005-05-19 |
Family
ID=34425312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004216495A Pending JP2005129010A (ja) | 2003-09-29 | 2004-07-23 | デバイス側コントローラ,ホスト側コントローラ,通信コントローラ,usbシステム,パケット通信方法,パケット通信プログラムおよび記録媒体 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20050080935A1 (ja) |
JP (1) | JP2005129010A (ja) |
CN (1) | CN1655132A (ja) |
TW (1) | TWI294083B (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007030295A (ja) * | 2005-07-26 | 2007-02-08 | Fuji Xerox Co Ltd | インタフェース装置及びこれを備える印刷装置 |
JP2008027386A (ja) * | 2006-07-25 | 2008-02-07 | Dainippon Printing Co Ltd | Icカード通信方法、icカード端末及びコンピュータプログラム |
JP2008059409A (ja) * | 2006-09-01 | 2008-03-13 | Nidec Sankyo Corp | Usb通信システム,usbデバイス,及びusb通信システムの異常検出方法 |
JP2008141525A (ja) * | 2006-12-01 | 2008-06-19 | Nec Electronics Corp | 双方向通信回路、双方向通信システム及び双方向通信回路の通信方法 |
JP2010088068A (ja) * | 2008-10-03 | 2010-04-15 | Seiko Epson Corp | データ転送制御装置、集積回路装置及び電子機器 |
US8352655B2 (en) | 2007-01-15 | 2013-01-08 | Nec Corporation | Packet communication device which selects an appropriate operation mode |
JP2013517694A (ja) * | 2010-01-12 | 2013-05-16 | シナーチップ ユーエスエイ コーポレイション | 映像および音声用デジタル相互インターフェース(DiiVA)上のマルチメディアUSBデータ転送 |
JP2014523556A (ja) * | 2011-05-25 | 2014-09-11 | ザ シラナ グループ プロプライエタリー リミテッド | Usb2.0高速モードを有するusbアイソレータ集積回路および自動速度検出 |
US9030976B2 (en) | 2008-03-27 | 2015-05-12 | Silicon Image, Inc. | Bi-directional digital interface for video and audio (DIVA) |
US9685785B2 (en) | 2008-12-11 | 2017-06-20 | Lattice Semiconductor Corporation | Power delivery over digital interaction interface for video and audio (DiiVA) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005250671A (ja) * | 2004-03-02 | 2005-09-15 | Sony Corp | 通信システム、通信装置、通信方法およびプログラム |
US20050273541A1 (en) * | 2004-06-04 | 2005-12-08 | Texas Instruments Incorporated | Circuit and method for adaptively recognizing a data packet in a universal serial bus network device |
WO2007032786A2 (en) * | 2005-05-11 | 2007-03-22 | Medical Technologies Unlimited, Inc. | Apparatus for converting electromyographic (emg) signals for transference to a personal computer |
US20070058538A1 (en) * | 2005-09-15 | 2007-03-15 | Wei Chiang | Method of setting up a wireless router |
KR100678905B1 (ko) * | 2005-09-27 | 2007-02-06 | 삼성전자주식회사 | 무선 usb 호스트, 무선 usb 디바이스, 이중 역할장치 호스트의 기능을 제공하는 방법 및 이중 역할 장치호스트의 기능을 수행하는 방법 |
CN1955949B (zh) * | 2005-10-24 | 2010-05-26 | 瑞昱半导体股份有限公司 | 通用串行总线装置 |
US7493422B2 (en) * | 2005-11-14 | 2009-02-17 | Ncr Corporation | Loss of universal serial bus communication |
KR100801649B1 (ko) * | 2006-10-12 | 2008-02-05 | 삼성전자주식회사 | 휴대 단말의 대기모드 절전 방법 |
US20080178011A1 (en) * | 2007-01-18 | 2008-07-24 | Nokia Corporation | Method and apparatus for usb/otg connection providing active hnp requests and saving host power |
JP2009207090A (ja) * | 2008-02-29 | 2009-09-10 | Seiko Epson Corp | Usb装置、印刷装置、usb装置の制御方法及びそのプログラム |
JP2009205637A (ja) * | 2008-02-29 | 2009-09-10 | Seiko Epson Corp | Usb装置、印刷装置、usb装置の制御方法及びそのプログラム |
CN102804668A (zh) * | 2009-06-19 | 2012-11-28 | 捷讯研究有限公司 | 用于类型2中继的上行链路传输 |
CN101833528A (zh) * | 2010-04-06 | 2010-09-15 | 四川和芯微电子股份有限公司 | 电子设备传输速度的调整方法 |
US20150103177A1 (en) * | 2010-08-27 | 2015-04-16 | Echo-Sense Inc. | System for remote communications between scout camera and scout device |
WO2012068280A1 (en) | 2010-11-16 | 2012-05-24 | Echo-Sense Inc. | Remote guidance system |
TWI512478B (zh) * | 2011-01-18 | 2015-12-11 | Asmedia Technology Inc | 匯流排主控器與相關方法 |
CN103260064A (zh) * | 2012-02-21 | 2013-08-21 | 侯璎卿 | 视频互动设备 |
JP5661702B2 (ja) * | 2012-08-23 | 2015-01-28 | キヤノン株式会社 | 電子システム及び通信制御方法 |
JP2014174792A (ja) * | 2013-03-11 | 2014-09-22 | Seiko Epson Corp | バス中継装置、集積回路装置、ケーブル、コネクター、電子機器、及びバス中継方法 |
CN112559431B (zh) * | 2020-12-28 | 2022-11-01 | 中国信息安全测评中心 | 一种sof包下发周期的处理方法及系统 |
US12130766B2 (en) * | 2022-04-06 | 2024-10-29 | SanDisk Technologies, Inc. | Protocol indicator for data transfer |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3045985B2 (ja) * | 1997-08-07 | 2000-05-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 接続確立方法、通信方法、状態変化伝達方法、状態変化実行方法、無線装置、無線デバイス、及びコンピュータ |
US6584519B1 (en) * | 1998-12-22 | 2003-06-24 | Canon Kabushiki Kaisha | Extender for universal serial bus |
US20020010821A1 (en) * | 2000-06-09 | 2002-01-24 | Gang Yu | USB extension system |
US6886062B2 (en) * | 2001-03-30 | 2005-04-26 | Intel Corporation | Method and apparatus for improving time constraints and extending limited length cables in a multiple-speed bus |
US6801959B1 (en) * | 2001-05-16 | 2004-10-05 | Lexmark International, Inc. | Relaxed-timing universal serial bus with a start of frame packet generator |
US7493431B2 (en) * | 2003-08-06 | 2009-02-17 | Icron Technologies Corporation | Method and apparatus for extending the range of the universal serial bus protocol |
-
2004
- 2004-07-23 JP JP2004216495A patent/JP2005129010A/ja active Pending
- 2004-09-17 TW TW93128312A patent/TWI294083B/zh active
- 2004-09-29 US US10/951,678 patent/US20050080935A1/en not_active Abandoned
- 2004-09-29 CN CNA2004100758928A patent/CN1655132A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007030295A (ja) * | 2005-07-26 | 2007-02-08 | Fuji Xerox Co Ltd | インタフェース装置及びこれを備える印刷装置 |
JP2008027386A (ja) * | 2006-07-25 | 2008-02-07 | Dainippon Printing Co Ltd | Icカード通信方法、icカード端末及びコンピュータプログラム |
JP2008059409A (ja) * | 2006-09-01 | 2008-03-13 | Nidec Sankyo Corp | Usb通信システム,usbデバイス,及びusb通信システムの異常検出方法 |
JP2008141525A (ja) * | 2006-12-01 | 2008-06-19 | Nec Electronics Corp | 双方向通信回路、双方向通信システム及び双方向通信回路の通信方法 |
US8352655B2 (en) | 2007-01-15 | 2013-01-08 | Nec Corporation | Packet communication device which selects an appropriate operation mode |
US9030976B2 (en) | 2008-03-27 | 2015-05-12 | Silicon Image, Inc. | Bi-directional digital interface for video and audio (DIVA) |
JP2010088068A (ja) * | 2008-10-03 | 2010-04-15 | Seiko Epson Corp | データ転送制御装置、集積回路装置及び電子機器 |
US9685785B2 (en) | 2008-12-11 | 2017-06-20 | Lattice Semiconductor Corporation | Power delivery over digital interaction interface for video and audio (DiiVA) |
JP2013517694A (ja) * | 2010-01-12 | 2013-05-16 | シナーチップ ユーエスエイ コーポレイション | 映像および音声用デジタル相互インターフェース(DiiVA)上のマルチメディアUSBデータ転送 |
US9398329B2 (en) | 2010-01-12 | 2016-07-19 | Lattice Semiconductor Corporation | Video management and control in home multimedia network |
JP2014523556A (ja) * | 2011-05-25 | 2014-09-11 | ザ シラナ グループ プロプライエタリー リミテッド | Usb2.0高速モードを有するusbアイソレータ集積回路および自動速度検出 |
Also Published As
Publication number | Publication date |
---|---|
CN1655132A (zh) | 2005-08-17 |
TWI294083B (en) | 2008-03-01 |
US20050080935A1 (en) | 2005-04-14 |
TW200517946A (en) | 2005-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005129010A (ja) | デバイス側コントローラ,ホスト側コントローラ,通信コントローラ,usbシステム,パケット通信方法,パケット通信プログラムおよび記録媒体 | |
US7461318B2 (en) | Communication system realizing USB communications between a host computer and its peripheral device and a communication controller transmitting a USB signal under the USB standard | |
JP4768017B2 (ja) | ポイントツーポイント・リンクのネゴシエーション方法および装置 | |
JP2005107683A (ja) | 通信コントローラ、通信システム、通信機器、および通信方法 | |
US20220004516A1 (en) | System, Apparatus And Method For Extended Communication Modes For A Multi-Drop Interconnect | |
US10180927B2 (en) | Device, system and method for communication with heterogeneous physical layers | |
JP2010011255A (ja) | 無線通信装置及びそのパケット転送方法 | |
JP4071117B2 (ja) | 送受信回路及び送受信方法並びに送受信装置 | |
CN102419628A (zh) | 通信装置及通信系统 | |
KR101351929B1 (ko) | 사용중인 매체 신호를 또다른 디바이스에 송신하기 위한방법 및 디바이스 | |
US11960367B2 (en) | Peripheral component interconnect express device and operating method thereof | |
EP0886410A2 (en) | Data communication method, data communication apparatus, and data communication program recording medium | |
JP2005129008A (ja) | ホスト側コントローラ,usbシステム,通信コントローラ,パケット通信方法,パケット通信プログラムおよび記録媒体 | |
JP2006020224A (ja) | 通信制御装置、電子機器および通信制御方法 | |
JP2005107677A (ja) | 通信コントローラ、通信システム、通信機器、および通信方法 | |
US8000278B2 (en) | De-activation, at least in part, of receiver, in response, at least in part, to determination that an idle condition exists | |
JPH11345193A (ja) | シリアルバスインタフェースデバイスおよびバスの構成方法、記録媒体、シリアルバスインタフェ−スシステム | |
CN116893997A (zh) | 接口设备和包括该接口设备的计算系统 | |
US9477615B1 (en) | Bi-directional low latency bus mode | |
KR100645510B1 (ko) | 이더넷 시스템에서의 정보 획득장치 및 방법 | |
JP4157064B2 (ja) | 同期開始信号検出装置、その検出方法、及びそのプログラム | |
JP4069125B2 (ja) | 伝送方法、送信装置、および送受信システム | |
JP2003037596A (ja) | 通信装置及び通信方法 | |
US20040228341A1 (en) | De-activation, at least in part, of receiver, in response, at least in part, to determination that an idle condition exists | |
JP2015119297A (ja) | 電子機器、制御装置および通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060912 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080909 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081014 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090512 |