(57)【要約】  ハードウェアドングルの形態のバス接続装置は、ＵＳＢ周辺装置の形態の第１の電子装置に接続することができ、かつ、第２の電子装置を、バス接続装置に接続することができる。ドングルは、接続された第２の装置がＵＳＢホスト装置であるか、それともＵＳＢ周辺装置であるかを決定することができ、第２の電子装置がＵＳＢホスト装置である場合、第２の電子装置は、第１の電子装置に直接接続される。第２の電子装置がＵＳＢ周辺装置である場合、バス接続装置は、第１の電子装置がホスト装置として動作することを可能とするように動作する。バス接続装置が、第１の電子装置がＵＳＢホスト装置として機能することを可能とするように動作している場合、バス接続装置は、第１の電子装置および第２の電子装置に、定期的にトークンを送り、第１の電子装置は、トークンに対して、第２の電子装置向けのデータを送信することによって応答することができ、第２の電子装置は、トークンに対して、第１の電子装置向けのデータを転送することによって応答することができる。
2008501178.tif 000002
【特許請求の範囲】
【請求項１】
第１の電子装置に接続するためのバス接続装置であって、第２の電子装置を前記バス接続装置に接続することができる手段を有する、バス接続装置において、
前記バス接続装置は、接続された前記第２の装置がホスト装置であるか、それとも周辺装置であるかを決定するように構成されており、
前記第２の電子装置がホスト装置である場合、前記第２の電子装置は、前記第１の電子装置に直接接続され、一方で、前記第２の電子装置が周辺装置である場合、前記バス接続装置は、前記第１の電子装置がホスト装置として動作することを可能とするように動作し、
前記バス接続装置が、前記第１の電子装置がホスト装置として機能することを可能とするように動作している場合、前記バス接続装置は、前記第１の電子装置および前記第２の電子装置に、定期的にトークンを送り、
前記第１の電子装置は、前記トークンに対して、前記第２の電子装置向けのデータを送信することによって応答することができ、前記第２の電子装置は、前記トークンに対して、前記第１の電子装置向けのデータを送信することによって応答することができる、
ことを特徴とするバス接続装置。
【請求項２】
前記バス接続装置は、接続された前記第２の装置がＵＳＢホスト装置であるか、それともＵＳＢ周辺装置であるかを決定するように構成されており、
前記第２の電子装置がＵＳＢホスト装置である場合、前記第２の電子装置は、前記第１の電子装置に直接接続され、一方で、前記第２の電子装置がＵＳＢ周辺装置である場合、前記バス接続装置は、前記第１の電子装置がＵＳＢホスト装置として動作することを可能とするように動作する、ことを特徴とする請求項１に記載のバス接続装置。
【請求項３】
前記第２の電子装置を前記バス接続装置に接続することができる前記手段は、ＵＳＢミニＡＢソケットを備えており、
前記バス接続装置は、接続された前記第２の装置が、ＵＳＢホスト装置であるか、それともＵＳＢ周辺装置であるかを、前記ミニＡＢソケットに差し込まれたプラグの種類に基づいて決定するように構成されている、ことを特徴とする請求項２に記載のバス接続装置。
【請求項４】
前記第２の電子装置が、ＵＳＢ周辺装置である場合、前記バス接続装置は、前記第２の電子装置内のエンドポイント（endpoint）が、バルク（Bulk）トランザクションまたはアイソクロナス（Isochronous）トランザクション向けに使用されているかどうかを決定するように構成されている、ことを特徴とする請求項２に記載のバス接続装置。
【請求項５】
前記第２の電子装置が、ＵＳＢ周辺装置であり、前記第２の電子装置内の前記エンドポイントが、アイソクロナストランザクション向けに使用される場合、前記バス接続装置が、前記第１の電子装置または前記第２の電子装置に、前記第１の電子装置または前記第２の電子装置がデータを送信することによって応答することができるトークンを送る際に、前記バス接続装置は、前記第２の電子装置または前記第１の電子装置にもトークンを送り、前記第２の電子装置または前記第１の電子装置が、送信されたデータを受信するかもしれないことを、前記第２の電子装置または前記第１の電子装置に対して示す、ことを特徴とする請求項４に記載のバス接続装置。
【請求項６】
前記バス接続装置は、前記第２の電子装置が、ＵＳＢ周辺装置であることが決定され、前記第２の電子装置内のエンドポイントが、アイソクロナストランザクション向けに使用されている場合、前記第１の電子装置から受信したあらゆるデータを、前記第２の電子装置に、バッファリングすることなく直接渡し、前記第２の電子装置から受信したあらゆるデータを、前記第１の電子装置に、バッファリングすることなく直接渡すように構成されている、ことを特徴とする請求項４に記載のバス接続装置。
【請求項７】
前記バス接続装置は、前記第２の電子装置が、ＵＳＢ周辺装置であることが決定され、前記第２の電子装置内のエンドポイントが、バルクトランザクション向けに使用されている場合、前記第１の電子装置から受信されたデータの各パケットを、ＦＩＦＯに記憶し、データの前記パケットを、データのさらなるパケットを受信する前に、前記第２の電子装置に渡し、前記第２の電子装置から受信されたデータの各パケットを、ＦＩＦＯに記憶し、データの前記パケットを、データのさらなるパケットを受信する前に、前記第１の電子装置に渡すように構成されている、ことを特徴とする請求項４に記載のバス接続装置。
【請求項８】
前記バス接続装置が、前記第１の電子装置がホスト装置として動作することを可能とするように動作している場合、前記バス接続装置は、所定のスケジュールに従って、前記第１の電子装置にトークンを送り、前記第１の電子装置は、前記トークンに対して、前記第２の電子装置向けのデータを送信することによって応答することができ、かつ、前記第２の電子装置にトークンを送り、前記第２の電子装置は、前記トークンに対して、前記第１の電子装置向けのデータを送信することによって応答することができる、ことを特徴とする請求項１乃至請求項７のいずれかに記載のバス接続装置。
【請求項９】
前記バス接続装置は、第１の電子装置に対してＵＳＢ  Ｄ＋／Ｄ−ラインによって接続されるように構成されており、
前記バス接続装置は、データおよび制御情報を、前記ＵＳＢ  Ｄ＋／Ｄ−ラインを介して受信するように構成されている、ことを特徴とする請求項１乃至請求項８のいずれかに記載のバス接続装置。
【請求項１０】
前記バス接続装置は、所定のスケジュールに従って、前記第１の電子装置および前記第２の電子装置にトークンを送り、かつ、前記第１の電子装置から制御情報を受信するように構成されている、ことを特徴とする請求項９に記載のバス接続装置。
【請求項１１】
前記第１の電子装置または前記第２の電子装置が、前記トークンのいずれか１つに、データを送信することによって応答した場合、前記バス接続装置は、前記データを、前記第２の電子装置または前記第１の電子装置に、パケットごとに渡すように構成されている、ことを特徴とする請求項１に記載のバス接続装置。
【請求項１２】
前記バス接続装置は、前記バス接続装置自体向けの第１の制御情報を、前記第１の電子装置から受信するように構成されており、かつ、前記第２の電子装置向けの第２の制御情報を、前記第１の電子装置から受信するようにさらに構成されており、かつ、前記第２の制御情報を、前記第２の電子装置に渡すように構成されている、ことを特徴とする請求項１に記載のバス接続装置。
【請求項１３】
前記バス接続装置は、前記第２の電子装置に関するベンダ特定コマンド（vendor specific command）を、前記第１の電子装置に送るように構成されており、かつ、前記ベンダ特定コマンドに基づいて、前記第２の電子装置向けの前記第２の制御情報を、前記第１の電子装置から受信するように構成されている、ことを特徴とする請求項１２に記載のバス接続装置。
【請求項１４】
バス接続装置の動作方法であって、前記バス接続装置は、第１の電子装置に接続されており、かつ、前記バス接続装置に接続された第２の電子装置を有している、方法において、
前記バス接続装置は、前記第２の電子装置がホスト装置であるか、それとも周辺装置であるかを決定し、
前記第２の電子装置がホスト装置である場合、前記第２の電子装置は、前記第１の電子装置に直接接続され、一方で、前記第２の電子装置が周辺装置である場合、前記バス接続装置は、前記第１の電子装置がホスト装置として動作することを可能とするように動作し、
前記バス接続装置が、前記第１の電子装置がホスト装置として機能することを可能とするように動作している場合、前記バス接続装置は、前記第１の電子装置および前記第２の電子装置に、定期的にトークンを送り、
前記第１の電子装置は、前記トークンに対して、前記第２の電子装置向けのデータを送信することによって応答することができ、前記第２の電子装置は、前記トークンに対して、前記第１の電子装置向けのデータを送信することによって応答することができる、
ことを特徴とする方法。
【請求項１５】
前記バス接続装置は、接続された前記第２の装置がＵＳＢホスト装置であるか、それともＵＳＢ周辺装置であるかを決定し、
前記第２の電子装置がＵＳＢホスト装置である場合、前記第２の電子装置は、前記第１の電子装置に直接接続され、一方で、前記第２の電子装置がＵＳＢ周辺装置である場合、前記バス接続装置は、前記第１の電子装置がＵＳＢホスト装置として動作することを可能とするように動作する、ことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記バス接続装置は、ＵＳＢミニＡＢソケットを備えており、
前記バス接続装置は、接続された前記第２の装置が、ＵＳＢホスト装置であるか、それともＵＳＢ周辺装置であるかを、前記ミニＡＢソケットに差し込まれたプラグの種類に基づいて決定する、ことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記第２の電子装置が、ＵＳＢ周辺装置である場合、前記バス接続装置は、前記第２の電子装置内のエンドポイントが、バルクトランザクションまたはアイソクロナストランザクション向けに使用されているかどうかを決定する、ことを特徴とする請求項１５に記載の方法。
【請求項１８】
前記第２の電子装置が、ＵＳＢ周辺装置であり、前記第２の電子装置内の前記エンドポイントが、アイソクロナストランザクション向けに使用される場合、前記バス接続装置が、前記第１の電子装置または前記第２の電子装置に、前記第１の電子装置または前記第２の電子装置がデータを送信することによって応答することができるトークンを送る際に、前記バス接続装置は、前記第２の電子装置または前記第１の電子装置にもトークンを送り、前記第２の電子装置または前記第１の電子装置が、送信されたデータを受信するかもしれないことを、前記第２の電子装置または前記第１の電子装置に対して示す、ことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記第２の電子装置が、ＵＳＢ周辺装置であることが決定され、前記第２の電子装置内のエンドポイントが、アイソクロナストランザクション向けに使用されている場合、前記バス接続装置は、前記第１の電子装置から受信したあらゆるデータを、前記第２の電子装置に、バッファリングすることなく直接渡し、前記第２の電子装置から受信したあらゆるデータを、前記第１の電子装置に、バッファリングすることなく直接渡す、ことを特徴とする請求項１７に記載の方法。
【請求項２０】
前記第２の電子装置が、ＵＳＢ周辺装置であることが決定され、前記第２の電子装置内のエンドポイントが、バルクトランザクション向けに使用されている場合、前記バス接続装置は、前記第１の電子装置から受信されたデータの各パケットを、ＦＩＦＯに記憶し、データの前記パケットを、データのさらなるパケットを受信する前に、前記第２の電子装置に渡し、前記第２の電子装置から受信されたデータの各パケットを、ＦＩＦＯに記憶し、データの前記パケットを、データのさらなるパケットを受信する前に、前記第１の電子装置に渡す、ことを特徴とする請求項１７に記載の方法。
【請求項２１】
前記バス接続装置が、前記第１の電子装置がホスト装置として動作することを可能とするように動作している場合、前記バス接続装置は、所定のスケジュールに従って、前記第１の電子装置にトークンを送り、前記第１の電子装置は、前記トークンに対して、前記第２の電子装置向けのデータを送信することによって応答することができ、かつ、前記第２の電子装置にトークンを送り、前記第２の電子装置は、前記トークンに対して、前記第１の電子装置向けのデータを送信することによって応答することができる、ことを特徴とする請求項１４乃至請求項２０のいずれかに記載の方法。
【請求項２２】
前記バス接続装置は、第１の電子装置に対してＵＳＢ  Ｄ＋／Ｄ−ラインによって接続されるように構成されており、
前記バス接続装置は、データおよび制御情報を、前記ＵＳＢ  Ｄ＋／Ｄ−ラインを介して受信する、ことを特徴とする請求項１４乃至請求項２１のいずれかに記載の方法。
【請求項２３】
前記バス接続装置は、所定のスケジュールに従って、前記第１の電子装置および前記第２の電子装置にトークンを送り、かつ、前記第１の電子装置から制御情報を受信する、ことを特徴とする請求項２２に記載の方法。
【請求項２４】
前記第１の電子装置または前記第２の電子装置が、前記トークンのいずれか１つに、データを送信することによって応答した場合、前記バス接続装置は、前記データを、前記第２の電子装置または前記第１の電子装置に、パケットごとに渡す、ことを特徴とする請求項１４に記載の方法。
【請求項２５】
前記バス接続装置は、前記バス接続装置自体向けの第１の制御情報を、前記第１の電子装置から受信し、かつ、前記第２の電子装置向けの第２の制御情報を、前記第１の電子装置から受信し、かつ、前記第２の制御情報を、前記第２の電子装置に渡す、ことを特徴とする請求項１４に記載の方法。
【請求項２６】
前記バス接続装置は、前記第２の電子装置に関するベンダ特定コマンド（vendor specific command）を、前記第１の電子装置に送り、かつ、前記ベンダ特定コマンドに基づいて、前記第２の電子装置向けの前記第２の制御情報を、前記第１の電子装置から受信する、ことを特徴とする請求項２５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス接続装置に関し、特に、バス通信システムにおいて電子装置と共に使用することができ、この装置がシステム内でホストとして機能することを可能にする装置に関する。
【背景技術】
【０００２】
ユニバーサルシリアルバス（ＵＳＢ：Universal Serial Bus）通信システムは、広く普及している。ＵＳＢシステムでは、パーソナルコンピュータ、スキャナ、携帯電話、プリンタ等の多くの電子装置のアイテムを、相互接続することが可能である。どのようなシステムでも、常に、１つの装置のアイテムが、ＵＳＢホストとして指定され、ＵＳＢホストは、ＵＳＢ装置または周辺装置として指定されている他の全てのアイテムとの接続を制御する。パーソナルコンピュータには、典型的には、ＵＳＢホストとして機能することを可能にするために必要なハードウェアおよびソフトウェアが備えられているが、他のアイテムは、典型的には、必要なハードウェアおよびソフトウェアが備えられておらず、ＵＳＢ装置としてしか機能することができない。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、装置のアイテムが、ＵＳＢホストとして装置の大きな修正を必要とせずに機能できることが便利であるような状況がある。国際特許出願第２００４／０２９８１７号は、ハードウェアドングルの形態の装置を述べており、ドングルは、装置のＵＳＢポートに接続することができ、装置がＵＳＢシステムのホストとして機能することを可能にする。ＵＳＢ装置内の適切なソフトウェアと共同して、ハードウェアドングルは、データを取り出して記憶し、このデータは、例えば、ドングルが接続されてシステム内でホストとして機能する装置から、さらなる装置へと渡される。
【０００４】
これは、ハードウェアドングルが、比較的に多量のデータ、例えば１ミリ秒に転送される量のデータなどを記憶できなければならず、結果としてドングルが、比較的多数の構成要素を含まなければならない、ということを意味する。  
【課題を解決するための手段】
【０００５】
本発明の第１の態様によると、第１および第２の接続ポートを有し、第１および第２のポートの両方に接続された各装置にトークンを送るように制御されることが可能であり、かつ、前記装置の一方から送信されたデータを受信すると、前記装置の他方に前記データを渡すように構成されているバス接続装置が提供される。
【０００６】
この装置は、デバイスが大きなバッファメモリを必要としないという利点を有する。
【発明を実施するための形態】
【０００７】
本発明のより良い理解のために、かつ、本発明をどのように実施できるかを示すために、例として、これより添付の図面を参照する。
【０００８】
図１は、本発明の第１の態様に係る装置を含むシステムを示している。装置１０は、ハードウェアドングルの形態をとり、ハードウェアドングルは、ＵＳＢ装置１４のＵＳＢポート１２に接続することができる。
【０００９】
ＵＳＢバス接続によって接続されるシステムにおいて、一つの装置がホストとして指定され、他の個々の装置が周辺装置として指定される。個々の装置のうち１つは、他の装置との通信を制御するために、ホストとして機能するようイネーブルされなければならない。１つの装置の、ＵＳＢホストまたはＵＳＢ周辺装置として機能する能力は、適切な機能性を有する当該の装置に依存する。
【００１０】
この場合、装置１４は、ＵＳＢ装置であり、すなわち、装置１４は、自身がＵＳＢホストとして機能する機能性を持たない。しかしながら、ハードウェアドングル１０の目的は、装置１４がホストとして機能することを可能にすることであり、よって、装置１４は、ここでは、擬似ホストとしても説明される。
【００１１】
装置１０は、ここではホストブリッジとしても呼ばれ、ポート１６によって、従来のＵＳＢ  Ｄ＋／Ｄ−ライン１８を用いて擬似ホスト１４のＵＳＢポート１２に接続される。
【００１２】
ホストブリッジ装置１０は、コントローラ２０と、メモリ２２とを含み、その機能は、以下により詳細に説明される。ホストブリッジ装置１０は、また、従来のミニＡＢソケットの形態のＵＳＢポート２４も有し、従来のＵＳＢプラグを受け入れることができる。
【００１３】
ホストブリッジ装置１０は、ソケット２４に差し込まれたプラグの種類から、ホストブリッジ装置１０に接続された装置の種類を決定することができる。
【００１４】
すなわち、ミニＢプラグが、ソケット２４に差し込まれていれば、ホストブリッジ装置１０は、差し込まれた装置が、ＵＳＢホストとして動作するようイネーブルされている装置であることを決定することができる。例えば、この装置は、パーソナルコンピュータ（ＰＣ）または他の類似のものとすることができる。
【００１５】
一方、この図示された本発明の実施形態では、ソケット２４に差し込まれているプラグ２６は、ミニＡプラグであり、このことは、ホストブリッジ装置１０に対し、装置２８がＵＳＢ周辺装置であること、すなわち、ＵＳＢホストとして機能するようイネーブルされていないことを示す。上述のように、プラグ２６とＵＳＢ周辺装置２８の間の接続は、従来のＵＳＢ  Ｄ＋／Ｄ−ライン３０を用いており、これは、当業者には周知であるので、ここでこれ以上は説明しない。
【００１６】
ソケット２４に差し込まれた装置が、ＵＳＢホストである場合、ホストブリッジ１０は、透明ハブとして機能する。すなわち、データが、ソケット２４からポート１６に直接通され、ＵＳＢホストと装置１４が互いに直接接続されている場合と全く同様に、周辺装置１４が機能することを可能にする。
【００１７】
このことは、他の既知のホストブリッジ装置と対照的である。既知のホストブリッジ装置では、装置エンジンが備えられており、このことは、接続されたＵＳＢホストが、ＵＳＢ装置のデバイスコントローラと直接やり取りすることができず、ホストブリッジ装置のデバイスコントローラのみとやり取りできる、ということを意味する。
【００１８】
ソケット２４に差し込まれた装置２８が、ＵＳＢ周辺装置である場合、ホストブリッジ１０は、擬似ホスト装置１４が従来のＵＳＢホスト装置であるかのように機能することを可能とするように、機能する。この動作を、これより、残りの図面を参照してより詳細に説明する。
【００１９】
この動作のモードでは、ホストブリッジ１０は、ホストブリッジ１０のコントローラ２０の制御下で機能するが、擬似ホスト装置１４からの制御情報も、Ｄ＋／Ｄ−ライン１８を介して受信する。具体的には、スケジューリング方法が規定される。このスケジュールの一部として、Ｄ＋／Ｄ−ライン１８における定期的な時間スロットが、擬似ホスト１４がホストブリッジ１０のコントローラ２０に制御情報を送るために予約される。加えて、ラウンドロビン（round-robin）スケジューリングの形態が、異なる接続された装置の間で規定される。すなわち、図１は、ホストブリッジ１０に接続されている単一のＵＳＢ周辺装置２８のみを示しているが、従来のＵＳＢバスシステムのように、複数の周辺装置をホストに接続できることを理解すべきである。
【００２０】
従来のＵＳＢバスシステムにおいては、データはトークンに応じて転送され、トークンは、従来、ホストから接続された装置に送られる。
【００２１】
この本発明の実施形態においては、ホストブリッジ１０は、トークンを、擬似ホスト１４と周辺装置２８の両方に送る。よって、本発明に係るシステムの動作を、これよりさらに詳しく述べる。
【００２２】
周知のように、ＵＳＢトランザクションは、４つの形態をとる。バルク（Bulk）トランザクションおよびインタラプト（interrupt）トランザクションは、全てのデータを転送することが重要である場合でのデータの転送に用いられ、よって、転送されるデータパケットのそれぞれが、受信側の装置によってアクノリッジ（acknowledge）される。
【００２３】
アイソクロナス（isochronous）トランザクションは、データが迅速に転送されることがより重要である場合に用いられ、この場合、肯定応答（acknowledgement）は送られない。
【００２４】
コントロールトランザクションは、システムに所望の設定を行なうために用いられる。
【００２５】
図２は、データを、擬似ホスト１４から接続された周辺装置２８に、ホストブリッジ１０を介して転送するための、バルクトランザクションが実行される場合に行なわれるプロセスを示している。
【００２６】
上述したように、スケジュールが規定され、これは、ホストブリッジ１０が、一定間隔で擬似ホスト１４にＩＮトークンを送ることを意味する。
【００２７】
このようなトークン２０１の１つに応じて、擬似ホスト１４は、第１のデータパケット２０２を返す。この第１のデータパケットは、ホストブリッジ１０のメモリ２２の一部を構成する先入れ先出しメモリ（ＦＩＦＯ）３２に記憶される。
【００２８】
ホストブリッジ１０は、次いで、肯定応答（ＡＣＫ）２０３を、擬似ホスト１４に送り、同時に、ＯＵＴトークン２０４を、接続された周辺装置２８に送り、データが続いて送られることを示す。バッファされた第１のデータパケットは、次いで、ＦＩＦＯ３２から取り出され、２０５において、接続された周辺装置２８に送られる。
【００２９】
この図示された状況では、接続された周辺装置２８は、転送データ２０５を受信する準備ができておらず、よって、否定応答（ＮＡＫ）２０６をホストブリッジ１０に返す。
【００３０】
ホストブリッジ１０は、さらなるＯＵＴトークン２０７を送ることにより、ＮＡＫ２０６に応答し、第１のデータパケットを、２０８において再送信する。
【００３１】
この図示されたケースでは、第１のデータパケット２０８は、接続された周辺装置によって正しく受信され、周辺装置は、よって、ＡＣＫ２０９を送る。
【００３２】
ホストブリッジ１０が、接続された周辺装置２８によって第１のデータパケットが正しく受信されたという肯定応答を受信すると、ホストブリッジ１０は、さらなるＩＮトークン２１０を、擬似ホスト１４に送る。この図示された状況では、擬似ホスト１４は、データを送る準備ができておらず、よって、返事としてＮＡＫメッセージ２１１を送る。これに、ホストブリッジ１０は、ＩＮトークン２１２を再送することによって応答する。
【００３３】
この図示されたケースでは、擬似ホスト１４は、次いで、データを送る準備ができ、よって、第２のデータパケット２１３を送ることで応答する。
【００３４】
上述のように、この第２のデータパケット２１３は、ＦＩＦＯ３２に記憶され、ホストブリッジ１０は、ＡＣＫメッセージ２１４を擬似ホスト１４に送る。同時に、ＯＵＴトークン２１５を、接続された周辺装置２８に送り、さらなるデータパケットが後に続くことを示す。データパケット２１６が、次いで、接続された周辺装置２８に送られ、周辺装置２８は、この場合、データパケットを正しく受信することができ、ＡＣＫメッセージ２１７を送る。
【００３５】
上述のように再び、ホストブリッジが、このメッセージに、さらなるＩＮトークン２１８を擬似ホスト１４に送ることによって応答し、さらなるデータを送るように要請する。擬似ホスト１４は、第３のデータパケット２１９を送ることによって応答する。従って、上述のように、第３のデータパケット２１９は、ＦＩＦＯ３２に記憶され、一方で、ＡＣＫメッセージ２２０が、擬似ホスト１４に送られ、同時に、ＯＵＴトークン２２１が、接続された周辺装置２８に送られる。これに続いて、第３のデータパケット２２２が、接続された周辺装置に送られる。
【００３６】
この図示されたケースでは、ストール（stall）応答２２３が、接続された周辺装置２８からホストブリッジ１０に送られるが、ＳＴＡＬＬ応答は、擬似ホスト１４から送ることもできる。どちらの場合でも、転送が再イネーブルされるまで、この転送のさらなるスケジューリングが停止する。
【００３７】
よって、本明細書から理解できるように、二重バッファリングまたはリングＦＩＦＯを代わりに使用することもできるが、ＦＩＦＯ３２は、一度にただ１つのデータパケットをバッファする必要があり、このことは、いくつかの観点から、システム性能を改善し得る。しかしながら、いずれの場合でも、ホストブリッジ１０がデータを記憶する必要条件は、大きく減少する。
【００３８】
図３は、バルクトランザクションの場合に行なわれるプロセスを示しており、このトランザクションでは、データは、接続された周辺装置２８からホストブリッジ１０を通して擬似ホスト１４に送られる。
【００３９】
このプロセスは、ホストブリッジ１０から周辺装置２８に送られる定期的にスケジュールされたＩＮトークンの１つ３０１で開始する。周辺装置２８は、送るべきデータを持っているので、ＦＩＦＯ３４に記憶されている第１のデータパケット３０２を送り、ＦＩＦＯ３４は、再び、ホストブリッジ１０のメモリ２２の一部を形成する。ＦＩＦＯ３４、およびここで述べた他のＦＩＦＯは、図２に示されるＦＩＦＯ３２と同じ物理装置の一部でもよく、または別のものでもよい。
【００４０】
ホストブリッジ１０は、次いで、肯定応答ＡＣＫ３０３を、接続された周辺装置２８に送り、同時に、ＯＵＴトークン３０４を、擬似ホスト１４に送り、ホストブリッジ１０が送るべきデータを持っていることを示す。
【００４１】
ホストブリッジ１０は、次いで、第１のデータパケット３０５を、擬似ホスト１４に送る。この図示されたケースでは、擬似ホスト１４は、第１のデータパケット３０５を受信する準備ができておらず、よって、否定応答（ＮＡＫ）３０６を、ホストブリッジ１０に送る。ホストブリッジ１０は、ＯＵＴトークン３０７を再送することによって応答し、その後、第１のデータパケット３０８を再送する。
【００４２】
この場合、第１のデータパケット３０８は、正しく受信され、よって、擬似ホスト１４は、ホストブリッジ１０にＡＣＫ３０９を送る。ホストブリッジ１０は、次いで、さらなるＩＮトークン３１０を、接続された周辺装置２８に送り、さらなるデータを送るように要請する。この場合、接続された周辺装置２８は、データを受信する準備ができておらず、よって、ＮＡＫ３１１を送る。ホストブリッジ１０は、ＩＮトークン３１２を再送することによって応答し、この場合、接続された周辺装置２８は、データを受信する準備ができており、よって、第２のデータパケット３１３で応答する。
【００４３】
再び、データパケットは、ＦＩＦＯ３４に記憶され、ホストブリッジ１０は、ＡＣＫ３１４を、接続された周辺装置２８に送り、同時に、ＯＵＴトークン３１５を、擬似ホスト１４に送る。このトークンに、ＦＩＦＯ３４から取り出された第２のデータパケット３１６が続く。第２のデータパケット３１６は、擬似ホスト１４によって正しく受信され、擬似ホスト１４は、ＡＣＫ３１７をホストブリッジ１０に送る。
【００４４】
ホストブリッジ１０は、次いで、さらなるＩＮトークン３１８を、接続された周辺装置２８に送る。
【００４５】
この場合、接続された周辺装置２８は、ＳＴＡＬＬ応答３１９を送り、ＳＴＡＬＬ応答３１９は、図２を参照して上述したように機能し、さらなるデータ転送は行なわれない。
【００４６】
従って、再び、ホストブリッジ１０が転送データをバッファする必要条件が、大きく減少される。
【００４７】
図２および図３は、バルクトランザクションに用いられるプロセスを示している。この図示された本発明の実施形態では、インタラプトトランザクションは、同じプロトコルに従うが、ホストブリッジ１０によって擬似ホスト１４および接続された周辺装置２８に送られるＩＮトークンが、別々にスケジュールされるという相違点を有している。
【００４８】
図４は、アイソクロナストランザクションを行なうためのプロセスを示している。図示された第１のアイソクロナストランザクションにおいて、データは、接続された周辺装置２８から擬似ホスト１４に転送される。
【００４９】
接続された周辺装置２８の各エンドポイントは、ＵＳＢシステムにおいて、‘タイプ’によって部分的に定義され、タイプは、バルクまたはアイソクロナストランザクションに用いられるかどうかを示す。よって、いくつかのタイプの装置は、全てのデータが転送されることが重要なデータ転送に、より適しており、他のタイプの装置は、データが迅速に転送される転送に、より適している。
【００５０】
よって、図４に示されたプロセスは、ホストブリッジ１０が、接続された周辺装置２８に、ＩＮトークン４０１を送る際に開始する。接続された周辺装置２８は、アイソクロナストランザクションを用いるタイプであることが知られているため、ホストブリッジ１０も、同時に、ＯＵＴトークン４０２を擬似ホスト１４に送り、擬似ホスト１４が、これからデータを受信するかもしれないことを示す。
【００５１】
この図示された状況では、接続された周辺装置２８は、送るべきデータを有しており、よって、第１のデータパケット４０３をホストブリッジ１０に返す。この場合、受信されたデータパケット４０３は、どのようなＦＩＦＯバッファリングもなしに、ストレートなルートでホストブリッジ１０を通され、データパケット４０４として、擬似ホスト１４に直接渡される。結果として、遅延が最小となり、遅延は、例えば、ホストブリッジ１０を通した転送におけるほんの数ナノ秒のゲート遅延となり得る。これはアイソクロナストランザクションであるため、肯定応答メッセージはなく、プロセスは継続し、ホストブリッジ１０は、さらなるＩＮトークン４０５を接続された周辺装置２８に送り、さらなるＯＵＴトークン４０６を擬似ホスト１４に送る。接続された周辺装置２８は、より多くの送るべきデータを有しているため、第２のデータパケット４０７を、ホストブリッジ１０に返し、ホストブリッジ１０は、再び、これを直接、バッファリングなしに、データパケット４０８として擬似ホスト１４に渡す。
【００５２】
図４の下側の部分は、逆のプロセスを示しており、このプロセスでは、データが、擬似ホスト１４から接続された周辺装置２８に、アイソクロナストランザクションで転送される。
【００５３】
再び、プロセスは、ホストブリッジ１０から擬似ホスト１４に送られる、定期にスケジュールされたＩＮトークン４０９、および同時に、アイソクロナストランザクションの一部をなすタイプとして知られている、接続された周辺装置２８に送られるＯＵＴトークン４１０により開始される。擬似ホスト１４は、この特定の接続された周辺装置に送るべきデータを有するため、第１のデータパケット４１１を返し、第１のデータパケット４１１は、ホストブリッジ１０を通して、接続された周辺装置２８にデータパケット４１２として直接渡される。上述のように、データパケットは、ＦＩＦＯバッファリングなしに、ホストブリッジ１０を通して直接、よって最小限の遅延で、渡される。
【００５４】
再び、肯定応答はなく、プロセスは継続し、ホストブリッジ１０から擬似ホスト１４にさらなるＩＮトークン４１３が送られ、ホストブリッジ１０から接続された周辺装置２８にさらなるＯＵＴトークン４１４が送られる。
【００５５】
擬似ホスト１４は、送るべきさらなるデータを有しており、よって、第２のデータパケット４１５を返し、第２のデータパケット４１５は、ＦＩＦＯバッファリングなしに、ホストブリッジ１０を直接通され、接続された周辺装置２８にデータパケット４１６として渡される。
【００５６】
上述のように、このプロセスは、擬似ホスト１４が接続された周辺装置２８に送るべきデータを有している限り継続することができる。
【００５７】
図５は、擬似ホスト１４から接続された周辺装置２８への‘ノーデータコントロール（No-Data Control）’転送を行なうためのプロセスを示している。これは、データステージをもたないコントロールライト（Control Write）と同等である。
【００５８】
プロセスは、ホストブリッジ１０から擬似ホスト１４に送られるＳＥＴＵＰメッセージ５０１で開始し、このメッセージに、コントロールライトのためのベンダ特定コマンド（ＶＳＣ−ＣＷ：Vendor Specific Command for Control Write）５０２が続く。
【００５９】
擬似ホスト１４は、ＡＣＫ５０３を送って、ＶＳＣ−ＣＷ５０２を正しく受信したことを示し、ホストブリッジ１０は、ＩＮトークン５０４で応答する。
【００６０】
この図示されたケースでは、擬似ホスト１４は、ＳＴＡＬＬ応答を送って、制御転送の実行を望まないことを示す。ＳＴＡＬＬ応答は、プロセスを一旦終了する。この時点でのＮＡＫ応答は、擬似ホスト１４が、コントロールライト転送の実行を望んではいるが、この時点で準備ができていない（すなわちビジーである）ことを示す。
【００６１】
所定のスケジュールに従って、制御転送のさらなる機会が生じ、ＳＥＴＵＰ、ＶＳＣ−ＣＷおよびＡＣＫメッセージが、上述のように、転送５０６で互いに示される。再び、このステージに、ホストブリッジ１０から擬似ホスト１４に送られたＩＮトークン５０７が続き、この場合、擬似ホスト１４は、制御転送を実行することを望み、セットアップデータ５０８を返す。ホストブリッジ１０に受信されると、セットアップデータパケットは、ＦＩＦＯ３６に記憶される。ホストブリッジ１０は、ＡＣＫメッセージ５０９を、擬似ホスト１４に送り、同時に、ＳＥＴＵＰメッセージ５１０を、接続された周辺装置２８に送る。これに続いて、ホストブリッジ１０は、ＦＩＦＯ３６から取り出されたセットアップデータパケット５１１を送る。
【００６２】
セットアップデータ５０８をアクノリッジすると、ホストブリッジ１０は、さらなるＩＮトークン５１２を擬似ホスト１４に送り、さらなるデータの転送を要請する。
【００６３】
セットアップデータ５１１を受信すると、接続された周辺装置２８は、ＡＣＫメッセージ５１３をホストブリッジ１０に返し、ホストブリッジ１０は、これに対して、接続された周辺装置２８にＩＮトークン５１４を送ることによって応答する。
【００６４】
この場合、擬似ホスト１４は、送るべきさらなるデータを持っておらず、よって、ゼロデータメッセージ５１５を、ホストブリッジ１０に送り、ホストブリッジ１０は、返事としてＡＣＫメッセージ５１６を送る。加えて、この実施形態では、接続された周辺装置は、転送すべきデータを持っておらず、よって、Ｚｅｒｏデータメッセージ５１７を送る。ホストブリッジ１０は、このメッセージを、ＡＣＫメッセージ５１８によってアクノリッジし、また、ＯＵＴトークン５１９を擬似ホスト１４に送り、擬似ホスト１４向けのメッセージを持っていることを示す。この場合、ホストブリッジ１０は、単に、接続された周辺装置２８から受信されたゼロデータメッセージ５２０を渡す。擬似ホストは、ＡＣＫメッセージ５２１を送ることによって応答する。
【００６５】
従って、ゼロデータ応答５１５は、制御転送の終わりを示し、ホストブリッジ１０は、制御転送を、両側において完了することが理解される。
【００６６】
図６は、擬似ホスト１４から接続された周辺装置２８に対して行なわれるコントロールライトのためのプロセスを示している。
【００６７】
図５を参照して述べたように、プロセスは、ホストブリッジ１０から擬似ホスト１４に送られるＳＥＴ−ＵＰ  ＶＳＣ−ＣＷメッセージ、および擬似ホスト１４からホストブリッジ１０に送られるＡＣＫによって開始される。これらは、図６において、共に単一のブロック６０１として示される。上述のように、これらの後に、ホストブリッジ１０から擬似ホスト１４に送られるＩＮトークン６０２が続く。擬似ホストが、制御転送の実行を望むため、セットアップデータ６０３を送る。上述のように、ホストブリッジ１０によって受信されると、セットアップデータは、セットアップデータＦＩＦＯ３６に記憶され、ホストブリッジ１０は、ＡＣＫメッセージ６０４を、擬似ホスト１４に送り、同時に、ＳＥＴＵＰメッセージ６０５を、接続されている周辺装置２８に送る。これに続いて、ホストブリッジ１０は、ＦＩＦＯ３６から取り出されたセットアップデータ６０６を送る。接続された周辺装置２８は、セットアップデータ６０６に、ＡＣＫ６０７で応答する。
【００６８】
セットアップデータ６０３をアクノリッジすると、ホストブリッジ１０は、さらなるＩＮトークン６０８を、擬似ホスト１４に送り、さらなるデータの転送を要請する。
【００６９】
この場合、図５に示される状況とは違い、擬似ホスト１４は、ゼロデータメッセージでは応答せず、しかし代わりに、データステージを有するコントロールライト転送の実行を望むことを示すことで応答する。具体的に、擬似ホスト１４は、第１のＣＷデータパケット６０９で応答する。これは、ホストブリッジ１０により、ＡＣＫメッセージ６１０でアクノリッジされ、データパケットは、セットアップデータＦＩＦＯ３６とは別のデータＦＩＦＯ３８に記憶される。
【００７０】
ホストブリッジ１０は、また、接続された周辺装置２８にＯＵＴメッセージ６１１を送り、これからデータを送るところであることを示し、次いで、ＦＩＦＯ３８からの第１のＣＷデータパケット６１２を送る。接続された周辺装置２８は、このデータパケットの受信を、ＡＣＫメッセージ６１３によってアクノリッジする。
【００７１】
ホストブリッジ１０は、さらなるＩＮトークンを擬似ホスト１４に送って、擬似ホスト１４がさらなるデータを送ることを可能にする。このようなＩＮトークンの１つ６１４が、図６に示されており、このトークンに対して、擬似ホスト１４が、最後のＣＷデータパケット６１５を送ることによって応答する。上述したように、ホストブリッジ１０は、ＡＣＫメッセージ６１６を送ってこのデータをアクノリッジし、このデータも、ＦＩＦＯ３８に記憶する。ホストブリッジ１０は、また、ＯＵＴトークン６１７を、接続されている周辺装置２８に送り、次いで、最後のＣＷデータパケット６１８を、接続された周辺装置２８に送る。接続された周辺装置２８は、これに対して、ＡＣＫメッセージ６１９によって応答する。
【００７２】
ホストブリッジ１０は、次いで、さらなるＩＮトークン６２０を、擬似ホスト１４に送り、擬似ホスト１４は、ゼロデータメッセージ６２１で応答し、ホストブリッジ１０は、このメッセージを、ＡＣＫメッセージ６２２によってアクノリッジする。ホストブリッジ１０は、また、ＩＮトークン６２３を、接続された周辺装置２８に送り、データを送る機会を与えるが、接続された周辺装置は、送るべきデータを持っておらず、よって、ゼロデータメッセージ６２４を送る。ホストブリッジ１０は、このメッセージを、ＡＣＫメッセージ６２５でアクノリッジし、また、ＯＵＴトークン６２６を擬似ホスト１４に送り、擬似ホスト１４向けのメッセージを有することを示す。この場合、ホストブリッジ１０は、単に、接続された周辺装置２８から受信したゼロデータメッセージ６２７を渡す。擬似ホスト１４は、ＡＣＫメッセージ６２８を送ることによって応答する。
【００７３】
図７は、接続された周辺装置２８から擬似ホスト１４への‘コントロールリード（Control Read）’を行なうためのプロセスを示している。まず、セットアップ手順が、送られたメッセージがコントロールリードのためのベンダ特定コマンド（ＶＳＣ−ＣＲ：Vendor Specific Command for Control Read）であることを除いて、上述のように、ブロック７０１で示されるように行なわれる。ＶＳＣ−ＣＲメッセージには、２つの形態、すなわち、セットアップステージの間に使用されるＶＳＣ−ＣＲ１メッセージと、データステージの間に送られるＶＳＣ−ＣＲ２メッセージとがある。
【００７４】
次に、ホストブリッジ１０は、ＩＮトークン７０２を、擬似ホスト１４に送り、擬似ホスト１４は、セットアップデータ７０３で応答する。上述のように、これは、ＡＣＫメッセージ７０４でアクノリッジされ、セットアップデータは、ＦＩＦＯ３６に記憶され、ホストブリッジ１０は、ＳＥＴＵＰメッセージ７０５を、接続されている周辺装置２８に送り、このメッセージに、セットアップデータ７０６が続く。接続された周辺装置２８は、このデータを、ＡＣＫメッセージ７０７によってアクノリッジする。
【００７５】
ホストブリッジ１０は、次いで、ＯＵＴ／０データメッセージ７０８を、擬似ホスト１４に送り、データセットアップステージ７０９が行なわれる。ホストブリッジ１０は、次いで、ＩＮトークン７１０を、接続された周辺装置２８に送り、接続された周辺装置２８は、第１のコントロールデータパケット７１１で応答する。このパケットは、ＡＣＫメッセージ７１２によってアクノリッジされ、データは、ホストブリッジ１０内の適当なＦＩＦＯ４０に記憶される。
【００７６】
ホストブリッジ１０は、次いで、ＯＵＴトークン７１３を擬似ホスト１４に送り、これに続いて、取り出された第１のコントロールデータパケット７１４を送る。擬似ホスト１４は、このパケットを、ＡＣＫメッセージ７１５によりアクノリッジし、ホストブリッジ１０は、さらなるＩＮトークン７１６を、接続された周辺装置２８に送る。この場合、接続された周辺装置２８は、ＩＮトークン７１６に、最後のコントロールデータパケット７１７によって応答する。このパケットは、ホストブリッジ１０によって、ＡＣＫメッセージ７１８でアクノリッジされ、データは、ＦＩＦＯ４０に記憶される。ホストブリッジ１０は、また、ＯＵＴトークン７１９を擬似ホスト１４に送り、次いで、最後のコントロールデータパケット７２０を送る。擬似ホスト１４は、このパケットを、ＡＣＫメッセージ７２１によってアクノリッジし、ホストブリッジ１０は、さらなるＩＮトークン７２２を、接続された周辺装置２８に送る。すなわち、ホストブリッジ１０は、受信するコントロールデータパケットの数、または発行すべきＩＮトークンの数を知る必要がない。むしろ、ホストブリッジ１０は、ここでのように、接続された周辺装置２８が、ＳＴＡＬＬメッセージ７２３で応答するまでＩＮトークンを発行し続ける。プロセスは、接続された周辺装置２８からのゼロデータ応答によって、同様に終了することができる。
【００７７】
ＳＴＡＬＬメッセージ７２３に応じて、ホストブリッジ１０および擬似ホスト１４は、ステータスステージ７２４を行なう。図７は、ホストブリッジ１０および接続された周辺装置２８の間で行なわれるステータスステージ７２５も示しているが、これは、前のトランザクションがＩＮ／０データであった場合にのみ必要とされる。
【００７８】
よって、上述のように、擬似ホスト１４は、接続された周辺装置２８と共に、コントロールトランザクションを行なうことができる。加えて、擬似ホスト１４は、ここでより詳細に述べるように、ホストブリッジ１０によりコントロールトランザクションを行なうことができる。
【００７９】
よって、図８は、ホストブリッジに対してコントロールレジスタライト（Control-Register Write）プロセスを行なう手順を示している。ブロック８０１は、レジスタライトのためのベンダ特定コマンド（ＶＳＣ−ＲｅｇＷ：Vendor Specific Command for Register Write）を含むセットアップ手順を示しており、この手順は、図５を参照して述べたものと同じプロトコルを使用する。この場合、ホストブリッジ１０は、次いで、ＩＮトークン８０２を擬似ホスト１４に送り、この場合、擬似ホスト１４は、レジスタライトコントロール（Register Write Control）転送の実行を望まず、よって、ＳＴＡＬＬ応答８０３で応答する。この時点でのＮＡＫ応答は、擬似ホスト１４が、レジスタライトコントロール転送の実行を望んではいるが、この時点では準備ができていない（すなわちビジーである）ことを示している。
【００８０】
従って、その後に、セットアップ手順８０４が繰り返され、ホストブリッジ１０は、さらなるＩＮトークン８０５を送る。このとき、擬似ホストは、転送の実行を望み、第１のデータパケット８０６で応答する。このパケットは、ホストブリッジ１０によって、ＡＣＫメッセージ８０７でアクノリッジされ、ホストブリッジ１０は、さらなるＩＮトークン８０８を送り、このトークンに対して、擬似ホスト１４は、第２のデータパケット８０９で応答する。再び、このパケットは、ＡＣＫメッセージ８１０でアクノリッジされ、プロセスは、転送すべきさらなるデータがない場合に行なわれるステージ８１１，８１２まで進む。
【００８１】
図９は、擬似ホスト１４からホストブリッジ１０に対してコントロールレジスタリード（Control-Register Read）を行なうための手順を示している。再び、ベンダ特定コマンドレジスタリード（ＶＳＣ−ＲｅｇＲ：Vendor Specific Command Register Read）が組み込まれた同様のセットアップ手順９０１が用いられる。この場合、ホストブリッジ１０は、ＯＵＴトークン９０２を擬似ホスト１４に送り、これに続いて、第１のデータパケット９０３を送る。擬似ホスト１４は、このパケットを、ＡＣＫメッセージ９０４でアクノリッジする。さらなるＯＵＴトークン９０５および第２のデータパケット９０６が、次いで、ホストブリッジ１０から擬似ホスト１４に送られ、擬似ホスト１４は、これらのトークンおよびパケットを、ＡＣＫメッセージ９０７でアクノリッジする。再び、このプロセスは、転送すべきさらなるデータがないことが示されるステージ９０８まで継続する。
【００８２】
このように、ＵＳＢ装置に接続可能な装置が開示され、この装置は、ＵＳＢ装置が、この装置にさらなるＵＳＢ周辺装置が接続された場合に、ＵＳＢホストとして動作することを可能にする。
【図面の簡単な説明】
【００８３】
【図１】図１は、本発明の第１の態様に係る装置を使用するバス通信システムを示すブロック概略図である。
【図２】図２は、図１のバス通信システムの構成要素間で渡される信号の時間履歴を示している。
【図３】図３は、図１のバス通信システムの構成要素間で渡される信号の時間履歴を示している。
【図４】図４は、図１のバス通信システムの構成要素間で渡される信号の時間履歴を示している。
【図５】図５は、図１のバス通信システムの構成要素間で渡される信号の時間履歴を示している。
【図６】図６は、図１のバス通信システムの構成要素間で渡される信号の時間履歴を示している。
【図７】図７は、図１のバス通信システムの構成要素間で渡される信号の時間履歴を示している。
【図８】図８は、図１のバス通信システムの構成要素間で渡される信号の時間履歴を示している。
【図９】図９は、図１のバス通信システムの構成要素間で渡される信号の時間履歴を示している。
【図１】
2008501178.tif 000003
【図２】
2008501178.tif 000004
【図３】
2008501178.tif 000005
【図４】
2008501178.tif 000006
【図５】
2008501178.tif 000007
【図６】
2008501178.tif 000008
【図７】
2008501178.tif 000009
【図８】
2008501178.tif 000010
【図９】
2008501178.tif 000011
【国際調査報告】
2008501178.tif 000012
2008501178.tif 000013
2008501178.tif 000014