説明

バス接続装置

ハードウェアドングルの形態のバス接続装置は、USB周辺装置の形態の第1の電子装置に接続することができ、かつ、第2の電子装置を、バス接続装置に接続することができる。ドングルは、接続された第2の装置がUSBホスト装置であるか、それともUSB周辺装置であるかを決定することができ、第2の電子装置がUSBホスト装置である場合、第2の電子装置は、第1の電子装置に直接接続される。第2の電子装置がUSB周辺装置である場合、バス接続装置は、第1の電子装置がホスト装置として動作することを可能とするように動作する。バス接続装置が、第1の電子装置がUSBホスト装置として機能することを可能とするように動作している場合、バス接続装置は、第1の電子装置および第2の電子装置に、定期的にトークンを送り、第1の電子装置は、トークンに対して、第2の電子装置向けのデータを送信することによって応答することができ、第2の電子装置は、トークンに対して、第1の電子装置向けのデータを転送することによって応答することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バス接続装置に関し、特に、バス通信システムにおいて電子装置と共に使用することができ、この装置がシステム内でホストとして機能することを可能にする装置に関する。
【背景技術】
【0002】
ユニバーサルシリアルバス(USB:Universal Serial Bus)通信システムは、広く普及している。USBシステムでは、パーソナルコンピュータ、スキャナ、携帯電話、プリンタ等の多くの電子装置のアイテムを、相互接続することが可能である。どのようなシステムでも、常に、1つの装置のアイテムが、USBホストとして指定され、USBホストは、USB装置または周辺装置として指定されている他の全てのアイテムとの接続を制御する。パーソナルコンピュータには、典型的には、USBホストとして機能することを可能にするために必要なハードウェアおよびソフトウェアが備えられているが、他のアイテムは、典型的には、必要なハードウェアおよびソフトウェアが備えられておらず、USB装置としてしか機能することができない。
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、装置のアイテムが、USBホストとして装置の大きな修正を必要とせずに機能できることが便利であるような状況がある。国際特許出願第2004/029817号は、ハードウェアドングルの形態の装置を述べており、ドングルは、装置のUSBポートに接続することができ、装置がUSBシステムのホストとして機能することを可能にする。USB装置内の適切なソフトウェアと共同して、ハードウェアドングルは、データを取り出して記憶し、このデータは、例えば、ドングルが接続されてシステム内でホストとして機能する装置から、さらなる装置へと渡される。
【0004】
これは、ハードウェアドングルが、比較的に多量のデータ、例えば1ミリ秒に転送される量のデータなどを記憶できなければならず、結果としてドングルが、比較的多数の構成要素を含まなければならない、ということを意味する。
【課題を解決するための手段】
【0005】
本発明の第1の態様によると、第1および第2の接続ポートを有し、第1および第2のポートの両方に接続された各装置にトークンを送るように制御されることが可能であり、かつ、前記装置の一方から送信されたデータを受信すると、前記装置の他方に前記データを渡すように構成されているバス接続装置が提供される。
【0006】
この装置は、デバイスが大きなバッファメモリを必要としないという利点を有する。
【発明を実施するための形態】
【0007】
本発明のより良い理解のために、かつ、本発明をどのように実施できるかを示すために、例として、これより添付の図面を参照する。
【0008】
図1は、本発明の第1の態様に係る装置を含むシステムを示している。装置10は、ハードウェアドングルの形態をとり、ハードウェアドングルは、USB装置14のUSBポート12に接続することができる。
【0009】
USBバス接続によって接続されるシステムにおいて、一つの装置がホストとして指定され、他の個々の装置が周辺装置として指定される。個々の装置のうち1つは、他の装置との通信を制御するために、ホストとして機能するようイネーブルされなければならない。1つの装置の、USBホストまたはUSB周辺装置として機能する能力は、適切な機能性を有する当該の装置に依存する。
【0010】
この場合、装置14は、USB装置であり、すなわち、装置14は、自身がUSBホストとして機能する機能性を持たない。しかしながら、ハードウェアドングル10の目的は、装置14がホストとして機能することを可能にすることであり、よって、装置14は、ここでは、擬似ホストとしても説明される。
【0011】
装置10は、ここではホストブリッジとしても呼ばれ、ポート16によって、従来のUSB D+/D−ライン18を用いて擬似ホスト14のUSBポート12に接続される。
【0012】
ホストブリッジ装置10は、コントローラ20と、メモリ22とを含み、その機能は、以下により詳細に説明される。ホストブリッジ装置10は、また、従来のミニABソケットの形態のUSBポート24も有し、従来のUSBプラグを受け入れることができる。
【0013】
ホストブリッジ装置10は、ソケット24に差し込まれたプラグの種類から、ホストブリッジ装置10に接続された装置の種類を決定することができる。
【0014】
すなわち、ミニBプラグが、ソケット24に差し込まれていれば、ホストブリッジ装置10は、差し込まれた装置が、USBホストとして動作するようイネーブルされている装置であることを決定することができる。例えば、この装置は、パーソナルコンピュータ(PC)または他の類似のものとすることができる。
【0015】
一方、この図示された本発明の実施形態では、ソケット24に差し込まれているプラグ26は、ミニAプラグであり、このことは、ホストブリッジ装置10に対し、装置28がUSB周辺装置であること、すなわち、USBホストとして機能するようイネーブルされていないことを示す。上述のように、プラグ26とUSB周辺装置28の間の接続は、従来のUSB D+/D−ライン30を用いており、これは、当業者には周知であるので、ここでこれ以上は説明しない。
【0016】
ソケット24に差し込まれた装置が、USBホストである場合、ホストブリッジ10は、透明ハブとして機能する。すなわち、データが、ソケット24からポート16に直接通され、USBホストと装置14が互いに直接接続されている場合と全く同様に、周辺装置14が機能することを可能にする。
【0017】
このことは、他の既知のホストブリッジ装置と対照的である。既知のホストブリッジ装置では、装置エンジンが備えられており、このことは、接続されたUSBホストが、USB装置のデバイスコントローラと直接やり取りすることができず、ホストブリッジ装置のデバイスコントローラのみとやり取りできる、ということを意味する。
【0018】
ソケット24に差し込まれた装置28が、USB周辺装置である場合、ホストブリッジ10は、擬似ホスト装置14が従来のUSBホスト装置であるかのように機能することを可能とするように、機能する。この動作を、これより、残りの図面を参照してより詳細に説明する。
【0019】
この動作のモードでは、ホストブリッジ10は、ホストブリッジ10のコントローラ20の制御下で機能するが、擬似ホスト装置14からの制御情報も、D+/D−ライン18を介して受信する。具体的には、スケジューリング方法が規定される。このスケジュールの一部として、D+/D−ライン18における定期的な時間スロットが、擬似ホスト14がホストブリッジ10のコントローラ20に制御情報を送るために予約される。加えて、ラウンドロビン(round-robin)スケジューリングの形態が、異なる接続された装置の間で規定される。すなわち、図1は、ホストブリッジ10に接続されている単一のUSB周辺装置28のみを示しているが、従来のUSBバスシステムのように、複数の周辺装置をホストに接続できることを理解すべきである。
【0020】
従来のUSBバスシステムにおいては、データはトークンに応じて転送され、トークンは、従来、ホストから接続された装置に送られる。
【0021】
この本発明の実施形態においては、ホストブリッジ10は、トークンを、擬似ホスト14と周辺装置28の両方に送る。よって、本発明に係るシステムの動作を、これよりさらに詳しく述べる。
【0022】
周知のように、USBトランザクションは、4つの形態をとる。バルク(Bulk)トランザクションおよびインタラプト(interrupt)トランザクションは、全てのデータを転送することが重要である場合でのデータの転送に用いられ、よって、転送されるデータパケットのそれぞれが、受信側の装置によってアクノリッジ(acknowledge)される。
【0023】
アイソクロナス(isochronous)トランザクションは、データが迅速に転送されることがより重要である場合に用いられ、この場合、肯定応答(acknowledgement)は送られない。
【0024】
コントロールトランザクションは、システムに所望の設定を行なうために用いられる。
【0025】
図2は、データを、擬似ホスト14から接続された周辺装置28に、ホストブリッジ10を介して転送するための、バルクトランザクションが実行される場合に行なわれるプロセスを示している。
【0026】
上述したように、スケジュールが規定され、これは、ホストブリッジ10が、一定間隔で擬似ホスト14にINトークンを送ることを意味する。
【0027】
このようなトークン201の1つに応じて、擬似ホスト14は、第1のデータパケット202を返す。この第1のデータパケットは、ホストブリッジ10のメモリ22の一部を構成する先入れ先出しメモリ(FIFO)32に記憶される。
【0028】
ホストブリッジ10は、次いで、肯定応答(ACK)203を、擬似ホスト14に送り、同時に、OUTトークン204を、接続された周辺装置28に送り、データが続いて送られることを示す。バッファされた第1のデータパケットは、次いで、FIFO32から取り出され、205において、接続された周辺装置28に送られる。
【0029】
この図示された状況では、接続された周辺装置28は、転送データ205を受信する準備ができておらず、よって、否定応答(NAK)206をホストブリッジ10に返す。
【0030】
ホストブリッジ10は、さらなるOUTトークン207を送ることにより、NAK206に応答し、第1のデータパケットを、208において再送信する。
【0031】
この図示されたケースでは、第1のデータパケット208は、接続された周辺装置によって正しく受信され、周辺装置は、よって、ACK209を送る。
【0032】
ホストブリッジ10が、接続された周辺装置28によって第1のデータパケットが正しく受信されたという肯定応答を受信すると、ホストブリッジ10は、さらなるINトークン210を、擬似ホスト14に送る。この図示された状況では、擬似ホスト14は、データを送る準備ができておらず、よって、返事としてNAKメッセージ211を送る。これに、ホストブリッジ10は、INトークン212を再送することによって応答する。
【0033】
この図示されたケースでは、擬似ホスト14は、次いで、データを送る準備ができ、よって、第2のデータパケット213を送ることで応答する。
【0034】
上述のように、この第2のデータパケット213は、FIFO32に記憶され、ホストブリッジ10は、ACKメッセージ214を擬似ホスト14に送る。同時に、OUTトークン215を、接続された周辺装置28に送り、さらなるデータパケットが後に続くことを示す。データパケット216が、次いで、接続された周辺装置28に送られ、周辺装置28は、この場合、データパケットを正しく受信することができ、ACKメッセージ217を送る。
【0035】
上述のように再び、ホストブリッジが、このメッセージに、さらなるINトークン218を擬似ホスト14に送ることによって応答し、さらなるデータを送るように要請する。擬似ホスト14は、第3のデータパケット219を送ることによって応答する。従って、上述のように、第3のデータパケット219は、FIFO32に記憶され、一方で、ACKメッセージ220が、擬似ホスト14に送られ、同時に、OUTトークン221が、接続された周辺装置28に送られる。これに続いて、第3のデータパケット222が、接続された周辺装置に送られる。
【0036】
この図示されたケースでは、ストール(stall)応答223が、接続された周辺装置28からホストブリッジ10に送られるが、STALL応答は、擬似ホスト14から送ることもできる。どちらの場合でも、転送が再イネーブルされるまで、この転送のさらなるスケジューリングが停止する。
【0037】
よって、本明細書から理解できるように、二重バッファリングまたはリングFIFOを代わりに使用することもできるが、FIFO32は、一度にただ1つのデータパケットをバッファする必要があり、このことは、いくつかの観点から、システム性能を改善し得る。しかしながら、いずれの場合でも、ホストブリッジ10がデータを記憶する必要条件は、大きく減少する。
【0038】
図3は、バルクトランザクションの場合に行なわれるプロセスを示しており、このトランザクションでは、データは、接続された周辺装置28からホストブリッジ10を通して擬似ホスト14に送られる。
【0039】
このプロセスは、ホストブリッジ10から周辺装置28に送られる定期的にスケジュールされたINトークンの1つ301で開始する。周辺装置28は、送るべきデータを持っているので、FIFO34に記憶されている第1のデータパケット302を送り、FIFO34は、再び、ホストブリッジ10のメモリ22の一部を形成する。FIFO34、およびここで述べた他のFIFOは、図2に示されるFIFO32と同じ物理装置の一部でもよく、または別のものでもよい。
【0040】
ホストブリッジ10は、次いで、肯定応答ACK303を、接続された周辺装置28に送り、同時に、OUTトークン304を、擬似ホスト14に送り、ホストブリッジ10が送るべきデータを持っていることを示す。
【0041】
ホストブリッジ10は、次いで、第1のデータパケット305を、擬似ホスト14に送る。この図示されたケースでは、擬似ホスト14は、第1のデータパケット305を受信する準備ができておらず、よって、否定応答(NAK)306を、ホストブリッジ10に送る。ホストブリッジ10は、OUTトークン307を再送することによって応答し、その後、第1のデータパケット308を再送する。
【0042】
この場合、第1のデータパケット308は、正しく受信され、よって、擬似ホスト14は、ホストブリッジ10にACK309を送る。ホストブリッジ10は、次いで、さらなるINトークン310を、接続された周辺装置28に送り、さらなるデータを送るように要請する。この場合、接続された周辺装置28は、データを受信する準備ができておらず、よって、NAK311を送る。ホストブリッジ10は、INトークン312を再送することによって応答し、この場合、接続された周辺装置28は、データを受信する準備ができており、よって、第2のデータパケット313で応答する。
【0043】
再び、データパケットは、FIFO34に記憶され、ホストブリッジ10は、ACK314を、接続された周辺装置28に送り、同時に、OUTトークン315を、擬似ホスト14に送る。このトークンに、FIFO34から取り出された第2のデータパケット316が続く。第2のデータパケット316は、擬似ホスト14によって正しく受信され、擬似ホスト14は、ACK317をホストブリッジ10に送る。
【0044】
ホストブリッジ10は、次いで、さらなるINトークン318を、接続された周辺装置28に送る。
【0045】
この場合、接続された周辺装置28は、STALL応答319を送り、STALL応答319は、図2を参照して上述したように機能し、さらなるデータ転送は行なわれない。
【0046】
従って、再び、ホストブリッジ10が転送データをバッファする必要条件が、大きく減少される。
【0047】
図2および図3は、バルクトランザクションに用いられるプロセスを示している。この図示された本発明の実施形態では、インタラプトトランザクションは、同じプロトコルに従うが、ホストブリッジ10によって擬似ホスト14および接続された周辺装置28に送られるINトークンが、別々にスケジュールされるという相違点を有している。
【0048】
図4は、アイソクロナストランザクションを行なうためのプロセスを示している。図示された第1のアイソクロナストランザクションにおいて、データは、接続された周辺装置28から擬似ホスト14に転送される。
【0049】
接続された周辺装置28の各エンドポイントは、USBシステムにおいて、‘タイプ’によって部分的に定義され、タイプは、バルクまたはアイソクロナストランザクションに用いられるかどうかを示す。よって、いくつかのタイプの装置は、全てのデータが転送されることが重要なデータ転送に、より適しており、他のタイプの装置は、データが迅速に転送される転送に、より適している。
【0050】
よって、図4に示されたプロセスは、ホストブリッジ10が、接続された周辺装置28に、INトークン401を送る際に開始する。接続された周辺装置28は、アイソクロナストランザクションを用いるタイプであることが知られているため、ホストブリッジ10も、同時に、OUTトークン402を擬似ホスト14に送り、擬似ホスト14が、これからデータを受信するかもしれないことを示す。
【0051】
この図示された状況では、接続された周辺装置28は、送るべきデータを有しており、よって、第1のデータパケット403をホストブリッジ10に返す。この場合、受信されたデータパケット403は、どのようなFIFOバッファリングもなしに、ストレートなルートでホストブリッジ10を通され、データパケット404として、擬似ホスト14に直接渡される。結果として、遅延が最小となり、遅延は、例えば、ホストブリッジ10を通した転送におけるほんの数ナノ秒のゲート遅延となり得る。これはアイソクロナストランザクションであるため、肯定応答メッセージはなく、プロセスは継続し、ホストブリッジ10は、さらなるINトークン405を接続された周辺装置28に送り、さらなるOUTトークン406を擬似ホスト14に送る。接続された周辺装置28は、より多くの送るべきデータを有しているため、第2のデータパケット407を、ホストブリッジ10に返し、ホストブリッジ10は、再び、これを直接、バッファリングなしに、データパケット408として擬似ホスト14に渡す。
【0052】
図4の下側の部分は、逆のプロセスを示しており、このプロセスでは、データが、擬似ホスト14から接続された周辺装置28に、アイソクロナストランザクションで転送される。
【0053】
再び、プロセスは、ホストブリッジ10から擬似ホスト14に送られる、定期にスケジュールされたINトークン409、および同時に、アイソクロナストランザクションの一部をなすタイプとして知られている、接続された周辺装置28に送られるOUTトークン410により開始される。擬似ホスト14は、この特定の接続された周辺装置に送るべきデータを有するため、第1のデータパケット411を返し、第1のデータパケット411は、ホストブリッジ10を通して、接続された周辺装置28にデータパケット412として直接渡される。上述のように、データパケットは、FIFOバッファリングなしに、ホストブリッジ10を通して直接、よって最小限の遅延で、渡される。
【0054】
再び、肯定応答はなく、プロセスは継続し、ホストブリッジ10から擬似ホスト14にさらなるINトークン413が送られ、ホストブリッジ10から接続された周辺装置28にさらなるOUTトークン414が送られる。
【0055】
擬似ホスト14は、送るべきさらなるデータを有しており、よって、第2のデータパケット415を返し、第2のデータパケット415は、FIFOバッファリングなしに、ホストブリッジ10を直接通され、接続された周辺装置28にデータパケット416として渡される。
【0056】
上述のように、このプロセスは、擬似ホスト14が接続された周辺装置28に送るべきデータを有している限り継続することができる。
【0057】
図5は、擬似ホスト14から接続された周辺装置28への‘ノーデータコントロール(No-Data Control)’転送を行なうためのプロセスを示している。これは、データステージをもたないコントロールライト(Control Write)と同等である。
【0058】
プロセスは、ホストブリッジ10から擬似ホスト14に送られるSETUPメッセージ501で開始し、このメッセージに、コントロールライトのためのベンダ特定コマンド(VSC−CW:Vendor Specific Command for Control Write)502が続く。
【0059】
擬似ホスト14は、ACK503を送って、VSC−CW502を正しく受信したことを示し、ホストブリッジ10は、INトークン504で応答する。
【0060】
この図示されたケースでは、擬似ホスト14は、STALL応答を送って、制御転送の実行を望まないことを示す。STALL応答は、プロセスを一旦終了する。この時点でのNAK応答は、擬似ホスト14が、コントロールライト転送の実行を望んではいるが、この時点で準備ができていない(すなわちビジーである)ことを示す。
【0061】
所定のスケジュールに従って、制御転送のさらなる機会が生じ、SETUP、VSC−CWおよびACKメッセージが、上述のように、転送506で互いに示される。再び、このステージに、ホストブリッジ10から擬似ホスト14に送られたINトークン507が続き、この場合、擬似ホスト14は、制御転送を実行することを望み、セットアップデータ508を返す。ホストブリッジ10に受信されると、セットアップデータパケットは、FIFO36に記憶される。ホストブリッジ10は、ACKメッセージ509を、擬似ホスト14に送り、同時に、SETUPメッセージ510を、接続された周辺装置28に送る。これに続いて、ホストブリッジ10は、FIFO36から取り出されたセットアップデータパケット511を送る。
【0062】
セットアップデータ508をアクノリッジすると、ホストブリッジ10は、さらなるINトークン512を擬似ホスト14に送り、さらなるデータの転送を要請する。
【0063】
セットアップデータ511を受信すると、接続された周辺装置28は、ACKメッセージ513をホストブリッジ10に返し、ホストブリッジ10は、これに対して、接続された周辺装置28にINトークン514を送ることによって応答する。
【0064】
この場合、擬似ホスト14は、送るべきさらなるデータを持っておらず、よって、ゼロデータメッセージ515を、ホストブリッジ10に送り、ホストブリッジ10は、返事としてACKメッセージ516を送る。加えて、この実施形態では、接続された周辺装置は、転送すべきデータを持っておらず、よって、Zeroデータメッセージ517を送る。ホストブリッジ10は、このメッセージを、ACKメッセージ518によってアクノリッジし、また、OUTトークン519を擬似ホスト14に送り、擬似ホスト14向けのメッセージを持っていることを示す。この場合、ホストブリッジ10は、単に、接続された周辺装置28から受信されたゼロデータメッセージ520を渡す。擬似ホストは、ACKメッセージ521を送ることによって応答する。
【0065】
従って、ゼロデータ応答515は、制御転送の終わりを示し、ホストブリッジ10は、制御転送を、両側において完了することが理解される。
【0066】
図6は、擬似ホスト14から接続された周辺装置28に対して行なわれるコントロールライトのためのプロセスを示している。
【0067】
図5を参照して述べたように、プロセスは、ホストブリッジ10から擬似ホスト14に送られるSET−UP VSC−CWメッセージ、および擬似ホスト14からホストブリッジ10に送られるACKによって開始される。これらは、図6において、共に単一のブロック601として示される。上述のように、これらの後に、ホストブリッジ10から擬似ホスト14に送られるINトークン602が続く。擬似ホストが、制御転送の実行を望むため、セットアップデータ603を送る。上述のように、ホストブリッジ10によって受信されると、セットアップデータは、セットアップデータFIFO36に記憶され、ホストブリッジ10は、ACKメッセージ604を、擬似ホスト14に送り、同時に、SETUPメッセージ605を、接続されている周辺装置28に送る。これに続いて、ホストブリッジ10は、FIFO36から取り出されたセットアップデータ606を送る。接続された周辺装置28は、セットアップデータ606に、ACK607で応答する。
【0068】
セットアップデータ603をアクノリッジすると、ホストブリッジ10は、さらなるINトークン608を、擬似ホスト14に送り、さらなるデータの転送を要請する。
【0069】
この場合、図5に示される状況とは違い、擬似ホスト14は、ゼロデータメッセージでは応答せず、しかし代わりに、データステージを有するコントロールライト転送の実行を望むことを示すことで応答する。具体的に、擬似ホスト14は、第1のCWデータパケット609で応答する。これは、ホストブリッジ10により、ACKメッセージ610でアクノリッジされ、データパケットは、セットアップデータFIFO36とは別のデータFIFO38に記憶される。
【0070】
ホストブリッジ10は、また、接続された周辺装置28にOUTメッセージ611を送り、これからデータを送るところであることを示し、次いで、FIFO38からの第1のCWデータパケット612を送る。接続された周辺装置28は、このデータパケットの受信を、ACKメッセージ613によってアクノリッジする。
【0071】
ホストブリッジ10は、さらなるINトークンを擬似ホスト14に送って、擬似ホスト14がさらなるデータを送ることを可能にする。このようなINトークンの1つ614が、図6に示されており、このトークンに対して、擬似ホスト14が、最後のCWデータパケット615を送ることによって応答する。上述したように、ホストブリッジ10は、ACKメッセージ616を送ってこのデータをアクノリッジし、このデータも、FIFO38に記憶する。ホストブリッジ10は、また、OUTトークン617を、接続されている周辺装置28に送り、次いで、最後のCWデータパケット618を、接続された周辺装置28に送る。接続された周辺装置28は、これに対して、ACKメッセージ619によって応答する。
【0072】
ホストブリッジ10は、次いで、さらなるINトークン620を、擬似ホスト14に送り、擬似ホスト14は、ゼロデータメッセージ621で応答し、ホストブリッジ10は、このメッセージを、ACKメッセージ622によってアクノリッジする。ホストブリッジ10は、また、INトークン623を、接続された周辺装置28に送り、データを送る機会を与えるが、接続された周辺装置は、送るべきデータを持っておらず、よって、ゼロデータメッセージ624を送る。ホストブリッジ10は、このメッセージを、ACKメッセージ625でアクノリッジし、また、OUTトークン626を擬似ホスト14に送り、擬似ホスト14向けのメッセージを有することを示す。この場合、ホストブリッジ10は、単に、接続された周辺装置28から受信したゼロデータメッセージ627を渡す。擬似ホスト14は、ACKメッセージ628を送ることによって応答する。
【0073】
図7は、接続された周辺装置28から擬似ホスト14への‘コントロールリード(Control Read)’を行なうためのプロセスを示している。まず、セットアップ手順が、送られたメッセージがコントロールリードのためのベンダ特定コマンド(VSC−CR:Vendor Specific Command for Control Read)であることを除いて、上述のように、ブロック701で示されるように行なわれる。VSC−CRメッセージには、2つの形態、すなわち、セットアップステージの間に使用されるVSC−CR1メッセージと、データステージの間に送られるVSC−CR2メッセージとがある。
【0074】
次に、ホストブリッジ10は、INトークン702を、擬似ホスト14に送り、擬似ホスト14は、セットアップデータ703で応答する。上述のように、これは、ACKメッセージ704でアクノリッジされ、セットアップデータは、FIFO36に記憶され、ホストブリッジ10は、SETUPメッセージ705を、接続されている周辺装置28に送り、このメッセージに、セットアップデータ706が続く。接続された周辺装置28は、このデータを、ACKメッセージ707によってアクノリッジする。
【0075】
ホストブリッジ10は、次いで、OUT/0データメッセージ708を、擬似ホスト14に送り、データセットアップステージ709が行なわれる。ホストブリッジ10は、次いで、INトークン710を、接続された周辺装置28に送り、接続された周辺装置28は、第1のコントロールデータパケット711で応答する。このパケットは、ACKメッセージ712によってアクノリッジされ、データは、ホストブリッジ10内の適当なFIFO40に記憶される。
【0076】
ホストブリッジ10は、次いで、OUTトークン713を擬似ホスト14に送り、これに続いて、取り出された第1のコントロールデータパケット714を送る。擬似ホスト14は、このパケットを、ACKメッセージ715によりアクノリッジし、ホストブリッジ10は、さらなるINトークン716を、接続された周辺装置28に送る。この場合、接続された周辺装置28は、INトークン716に、最後のコントロールデータパケット717によって応答する。このパケットは、ホストブリッジ10によって、ACKメッセージ718でアクノリッジされ、データは、FIFO40に記憶される。ホストブリッジ10は、また、OUTトークン719を擬似ホスト14に送り、次いで、最後のコントロールデータパケット720を送る。擬似ホスト14は、このパケットを、ACKメッセージ721によってアクノリッジし、ホストブリッジ10は、さらなるINトークン722を、接続された周辺装置28に送る。すなわち、ホストブリッジ10は、受信するコントロールデータパケットの数、または発行すべきINトークンの数を知る必要がない。むしろ、ホストブリッジ10は、ここでのように、接続された周辺装置28が、STALLメッセージ723で応答するまでINトークンを発行し続ける。プロセスは、接続された周辺装置28からのゼロデータ応答によって、同様に終了することができる。
【0077】
STALLメッセージ723に応じて、ホストブリッジ10および擬似ホスト14は、ステータスステージ724を行なう。図7は、ホストブリッジ10および接続された周辺装置28の間で行なわれるステータスステージ725も示しているが、これは、前のトランザクションがIN/0データであった場合にのみ必要とされる。
【0078】
よって、上述のように、擬似ホスト14は、接続された周辺装置28と共に、コントロールトランザクションを行なうことができる。加えて、擬似ホスト14は、ここでより詳細に述べるように、ホストブリッジ10によりコントロールトランザクションを行なうことができる。
【0079】
よって、図8は、ホストブリッジに対してコントロールレジスタライト(Control-Register Write)プロセスを行なう手順を示している。ブロック801は、レジスタライトのためのベンダ特定コマンド(VSC−RegW:Vendor Specific Command for Register Write)を含むセットアップ手順を示しており、この手順は、図5を参照して述べたものと同じプロトコルを使用する。この場合、ホストブリッジ10は、次いで、INトークン802を擬似ホスト14に送り、この場合、擬似ホスト14は、レジスタライトコントロール(Register Write Control)転送の実行を望まず、よって、STALL応答803で応答する。この時点でのNAK応答は、擬似ホスト14が、レジスタライトコントロール転送の実行を望んではいるが、この時点では準備ができていない(すなわちビジーである)ことを示している。
【0080】
従って、その後に、セットアップ手順804が繰り返され、ホストブリッジ10は、さらなるINトークン805を送る。このとき、擬似ホストは、転送の実行を望み、第1のデータパケット806で応答する。このパケットは、ホストブリッジ10によって、ACKメッセージ807でアクノリッジされ、ホストブリッジ10は、さらなるINトークン808を送り、このトークンに対して、擬似ホスト14は、第2のデータパケット809で応答する。再び、このパケットは、ACKメッセージ810でアクノリッジされ、プロセスは、転送すべきさらなるデータがない場合に行なわれるステージ811,812まで進む。
【0081】
図9は、擬似ホスト14からホストブリッジ10に対してコントロールレジスタリード(Control-Register Read)を行なうための手順を示している。再び、ベンダ特定コマンドレジスタリード(VSC−RegR:Vendor Specific Command Register Read)が組み込まれた同様のセットアップ手順901が用いられる。この場合、ホストブリッジ10は、OUTトークン902を擬似ホスト14に送り、これに続いて、第1のデータパケット903を送る。擬似ホスト14は、このパケットを、ACKメッセージ904でアクノリッジする。さらなるOUTトークン905および第2のデータパケット906が、次いで、ホストブリッジ10から擬似ホスト14に送られ、擬似ホスト14は、これらのトークンおよびパケットを、ACKメッセージ907でアクノリッジする。再び、このプロセスは、転送すべきさらなるデータがないことが示されるステージ908まで継続する。
【0082】
このように、USB装置に接続可能な装置が開示され、この装置は、USB装置が、この装置にさらなるUSB周辺装置が接続された場合に、USBホストとして動作することを可能にする。
【図面の簡単な説明】
【0083】
【図1】図1は、本発明の第1の態様に係る装置を使用するバス通信システムを示すブロック概略図である。
【図2】図2は、図1のバス通信システムの構成要素間で渡される信号の時間履歴を示している。
【図3】図3は、図1のバス通信システムの構成要素間で渡される信号の時間履歴を示している。
【図4】図4は、図1のバス通信システムの構成要素間で渡される信号の時間履歴を示している。
【図5】図5は、図1のバス通信システムの構成要素間で渡される信号の時間履歴を示している。
【図6】図6は、図1のバス通信システムの構成要素間で渡される信号の時間履歴を示している。
【図7】図7は、図1のバス通信システムの構成要素間で渡される信号の時間履歴を示している。
【図8】図8は、図1のバス通信システムの構成要素間で渡される信号の時間履歴を示している。
【図9】図9は、図1のバス通信システムの構成要素間で渡される信号の時間履歴を示している。

【特許請求の範囲】
【請求項1】
第1の電子装置に接続するためのバス接続装置であって、第2の電子装置を前記バス接続装置に接続することができる手段を有する、バス接続装置において、
前記バス接続装置は、接続された前記第2の装置がホスト装置であるか、それとも周辺装置であるかを決定するように構成されており、
前記第2の電子装置がホスト装置である場合、前記第2の電子装置は、前記第1の電子装置に直接接続され、一方で、前記第2の電子装置が周辺装置である場合、前記バス接続装置は、前記第1の電子装置がホスト装置として動作することを可能とするように動作し、
前記バス接続装置が、前記第1の電子装置がホスト装置として機能することを可能とするように動作している場合、前記バス接続装置は、前記第1の電子装置および前記第2の電子装置に、定期的にトークンを送り、
前記第1の電子装置は、前記トークンに対して、前記第2の電子装置向けのデータを送信することによって応答することができ、前記第2の電子装置は、前記トークンに対して、前記第1の電子装置向けのデータを送信することによって応答することができる、
ことを特徴とするバス接続装置。
【請求項2】
前記バス接続装置は、接続された前記第2の装置がUSBホスト装置であるか、それともUSB周辺装置であるかを決定するように構成されており、
前記第2の電子装置がUSBホスト装置である場合、前記第2の電子装置は、前記第1の電子装置に直接接続され、一方で、前記第2の電子装置がUSB周辺装置である場合、前記バス接続装置は、前記第1の電子装置がUSBホスト装置として動作することを可能とするように動作する、ことを特徴とする請求項1に記載のバス接続装置。
【請求項3】
前記第2の電子装置を前記バス接続装置に接続することができる前記手段は、USBミニABソケットを備えており、
前記バス接続装置は、接続された前記第2の装置が、USBホスト装置であるか、それともUSB周辺装置であるかを、前記ミニABソケットに差し込まれたプラグの種類に基づいて決定するように構成されている、ことを特徴とする請求項2に記載のバス接続装置。
【請求項4】
前記第2の電子装置が、USB周辺装置である場合、前記バス接続装置は、前記第2の電子装置内のエンドポイント(endpoint)が、バルク(Bulk)トランザクションまたはアイソクロナス(Isochronous)トランザクション向けに使用されているかどうかを決定するように構成されている、ことを特徴とする請求項2に記載のバス接続装置。
【請求項5】
前記第2の電子装置が、USB周辺装置であり、前記第2の電子装置内の前記エンドポイントが、アイソクロナストランザクション向けに使用される場合、前記バス接続装置が、前記第1の電子装置または前記第2の電子装置に、前記第1の電子装置または前記第2の電子装置がデータを送信することによって応答することができるトークンを送る際に、前記バス接続装置は、前記第2の電子装置または前記第1の電子装置にもトークンを送り、前記第2の電子装置または前記第1の電子装置が、送信されたデータを受信するかもしれないことを、前記第2の電子装置または前記第1の電子装置に対して示す、ことを特徴とする請求項4に記載のバス接続装置。
【請求項6】
前記バス接続装置は、前記第2の電子装置が、USB周辺装置であることが決定され、前記第2の電子装置内のエンドポイントが、アイソクロナストランザクション向けに使用されている場合、前記第1の電子装置から受信したあらゆるデータを、前記第2の電子装置に、バッファリングすることなく直接渡し、前記第2の電子装置から受信したあらゆるデータを、前記第1の電子装置に、バッファリングすることなく直接渡すように構成されている、ことを特徴とする請求項4に記載のバス接続装置。
【請求項7】
前記バス接続装置は、前記第2の電子装置が、USB周辺装置であることが決定され、前記第2の電子装置内のエンドポイントが、バルクトランザクション向けに使用されている場合、前記第1の電子装置から受信されたデータの各パケットを、FIFOに記憶し、データの前記パケットを、データのさらなるパケットを受信する前に、前記第2の電子装置に渡し、前記第2の電子装置から受信されたデータの各パケットを、FIFOに記憶し、データの前記パケットを、データのさらなるパケットを受信する前に、前記第1の電子装置に渡すように構成されている、ことを特徴とする請求項4に記載のバス接続装置。
【請求項8】
前記バス接続装置が、前記第1の電子装置がホスト装置として動作することを可能とするように動作している場合、前記バス接続装置は、所定のスケジュールに従って、前記第1の電子装置にトークンを送り、前記第1の電子装置は、前記トークンに対して、前記第2の電子装置向けのデータを送信することによって応答することができ、かつ、前記第2の電子装置にトークンを送り、前記第2の電子装置は、前記トークンに対して、前記第1の電子装置向けのデータを送信することによって応答することができる、ことを特徴とする請求項1乃至請求項7のいずれかに記載のバス接続装置。
【請求項9】
前記バス接続装置は、第1の電子装置に対してUSB D+/D−ラインによって接続されるように構成されており、
前記バス接続装置は、データおよび制御情報を、前記USB D+/D−ラインを介して受信するように構成されている、ことを特徴とする請求項1乃至請求項8のいずれかに記載のバス接続装置。
【請求項10】
前記バス接続装置は、所定のスケジュールに従って、前記第1の電子装置および前記第2の電子装置にトークンを送り、かつ、前記第1の電子装置から制御情報を受信するように構成されている、ことを特徴とする請求項9に記載のバス接続装置。
【請求項11】
前記第1の電子装置または前記第2の電子装置が、前記トークンのいずれか1つに、データを送信することによって応答した場合、前記バス接続装置は、前記データを、前記第2の電子装置または前記第1の電子装置に、パケットごとに渡すように構成されている、ことを特徴とする請求項1に記載のバス接続装置。
【請求項12】
前記バス接続装置は、前記バス接続装置自体向けの第1の制御情報を、前記第1の電子装置から受信するように構成されており、かつ、前記第2の電子装置向けの第2の制御情報を、前記第1の電子装置から受信するようにさらに構成されており、かつ、前記第2の制御情報を、前記第2の電子装置に渡すように構成されている、ことを特徴とする請求項1に記載のバス接続装置。
【請求項13】
前記バス接続装置は、前記第2の電子装置に関するベンダ特定コマンド(vendor specific command)を、前記第1の電子装置に送るように構成されており、かつ、前記ベンダ特定コマンドに基づいて、前記第2の電子装置向けの前記第2の制御情報を、前記第1の電子装置から受信するように構成されている、ことを特徴とする請求項12に記載のバス接続装置。
【請求項14】
バス接続装置の動作方法であって、前記バス接続装置は、第1の電子装置に接続されており、かつ、前記バス接続装置に接続された第2の電子装置を有している、方法において、
前記バス接続装置は、前記第2の電子装置がホスト装置であるか、それとも周辺装置であるかを決定し、
前記第2の電子装置がホスト装置である場合、前記第2の電子装置は、前記第1の電子装置に直接接続され、一方で、前記第2の電子装置が周辺装置である場合、前記バス接続装置は、前記第1の電子装置がホスト装置として動作することを可能とするように動作し、
前記バス接続装置が、前記第1の電子装置がホスト装置として機能することを可能とするように動作している場合、前記バス接続装置は、前記第1の電子装置および前記第2の電子装置に、定期的にトークンを送り、
前記第1の電子装置は、前記トークンに対して、前記第2の電子装置向けのデータを送信することによって応答することができ、前記第2の電子装置は、前記トークンに対して、前記第1の電子装置向けのデータを送信することによって応答することができる、
ことを特徴とする方法。
【請求項15】
前記バス接続装置は、接続された前記第2の装置がUSBホスト装置であるか、それともUSB周辺装置であるかを決定し、
前記第2の電子装置がUSBホスト装置である場合、前記第2の電子装置は、前記第1の電子装置に直接接続され、一方で、前記第2の電子装置がUSB周辺装置である場合、前記バス接続装置は、前記第1の電子装置がUSBホスト装置として動作することを可能とするように動作する、ことを特徴とする請求項14に記載の方法。
【請求項16】
前記バス接続装置は、USBミニABソケットを備えており、
前記バス接続装置は、接続された前記第2の装置が、USBホスト装置であるか、それともUSB周辺装置であるかを、前記ミニABソケットに差し込まれたプラグの種類に基づいて決定する、ことを特徴とする請求項15に記載の方法。
【請求項17】
前記第2の電子装置が、USB周辺装置である場合、前記バス接続装置は、前記第2の電子装置内のエンドポイントが、バルクトランザクションまたはアイソクロナストランザクション向けに使用されているかどうかを決定する、ことを特徴とする請求項15に記載の方法。
【請求項18】
前記第2の電子装置が、USB周辺装置であり、前記第2の電子装置内の前記エンドポイントが、アイソクロナストランザクション向けに使用される場合、前記バス接続装置が、前記第1の電子装置または前記第2の電子装置に、前記第1の電子装置または前記第2の電子装置がデータを送信することによって応答することができるトークンを送る際に、前記バス接続装置は、前記第2の電子装置または前記第1の電子装置にもトークンを送り、前記第2の電子装置または前記第1の電子装置が、送信されたデータを受信するかもしれないことを、前記第2の電子装置または前記第1の電子装置に対して示す、ことを特徴とする請求項17に記載の方法。
【請求項19】
前記第2の電子装置が、USB周辺装置であることが決定され、前記第2の電子装置内のエンドポイントが、アイソクロナストランザクション向けに使用されている場合、前記バス接続装置は、前記第1の電子装置から受信したあらゆるデータを、前記第2の電子装置に、バッファリングすることなく直接渡し、前記第2の電子装置から受信したあらゆるデータを、前記第1の電子装置に、バッファリングすることなく直接渡す、ことを特徴とする請求項17に記載の方法。
【請求項20】
前記第2の電子装置が、USB周辺装置であることが決定され、前記第2の電子装置内のエンドポイントが、バルクトランザクション向けに使用されている場合、前記バス接続装置は、前記第1の電子装置から受信されたデータの各パケットを、FIFOに記憶し、データの前記パケットを、データのさらなるパケットを受信する前に、前記第2の電子装置に渡し、前記第2の電子装置から受信されたデータの各パケットを、FIFOに記憶し、データの前記パケットを、データのさらなるパケットを受信する前に、前記第1の電子装置に渡す、ことを特徴とする請求項17に記載の方法。
【請求項21】
前記バス接続装置が、前記第1の電子装置がホスト装置として動作することを可能とするように動作している場合、前記バス接続装置は、所定のスケジュールに従って、前記第1の電子装置にトークンを送り、前記第1の電子装置は、前記トークンに対して、前記第2の電子装置向けのデータを送信することによって応答することができ、かつ、前記第2の電子装置にトークンを送り、前記第2の電子装置は、前記トークンに対して、前記第1の電子装置向けのデータを送信することによって応答することができる、ことを特徴とする請求項14乃至請求項20のいずれかに記載の方法。
【請求項22】
前記バス接続装置は、第1の電子装置に対してUSB D+/D−ラインによって接続されるように構成されており、
前記バス接続装置は、データおよび制御情報を、前記USB D+/D−ラインを介して受信する、ことを特徴とする請求項14乃至請求項21のいずれかに記載の方法。
【請求項23】
前記バス接続装置は、所定のスケジュールに従って、前記第1の電子装置および前記第2の電子装置にトークンを送り、かつ、前記第1の電子装置から制御情報を受信する、ことを特徴とする請求項22に記載の方法。
【請求項24】
前記第1の電子装置または前記第2の電子装置が、前記トークンのいずれか1つに、データを送信することによって応答した場合、前記バス接続装置は、前記データを、前記第2の電子装置または前記第1の電子装置に、パケットごとに渡す、ことを特徴とする請求項14に記載の方法。
【請求項25】
前記バス接続装置は、前記バス接続装置自体向けの第1の制御情報を、前記第1の電子装置から受信し、かつ、前記第2の電子装置向けの第2の制御情報を、前記第1の電子装置から受信し、かつ、前記第2の制御情報を、前記第2の電子装置に渡す、ことを特徴とする請求項14に記載の方法。
【請求項26】
前記バス接続装置は、前記第2の電子装置に関するベンダ特定コマンド(vendor specific command)を、前記第1の電子装置に送り、かつ、前記ベンダ特定コマンドに基づいて、前記第2の電子装置向けの前記第2の制御情報を、前記第1の電子装置から受信する、ことを特徴とする請求項25に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公表番号】特表2008−501178(P2008−501178A)
【公表日】平成20年1月17日(2008.1.17)
【国際特許分類】
【出願番号】特願2007−514273(P2007−514273)
【出願日】平成17年5月24日(2005.5.24)
【国際出願番号】PCT/IB2005/051689
【国際公開番号】WO2005/116848
【国際公開日】平成17年12月8日(2005.12.8)
【出願人】(590000248)コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ (12,071)
【Fターム(参考)】