上記の質問に対するグーグルの回答とウィキペディアの回答を知っています。しかし、私は手元にもっと具体的な質問があります。 USBハブには多くの着信ポートとポートがあり、発信ポートは1つだけです。このため、たとえばn個のデバイスを一緒に使用できます。しかし、 1つのUSBポートでn個のUSBポートを使用してデータ転送を行うにはどうすればよいですか?
異なるデータをすべてのUSBポートに同時に送信するにはどうすればよいですか?

*

スキーマ

この回路をシミュレート CircuitLab

*を使用して作成されたスキーマ。

コメント

  • ネットワークルーターが1つのLANポート(インターネット)を複数のデバイスに接続できるのとほぼ同じ方法です。各エンドポイント(USBデバイス)にはアドレスが割り当てられ、ハブは、どのアドレスがどのポートにあるかを追跡することにより、ホストから正しいデバイスに要求をルーティングするだけです。 'すべてのトランザクションを開始するマスター(ホストポート)が1つしかないという意味で、USBの方がはるかに簡単です。
  • @TomCarpenter Then How USBポートは異なるデータ'を一緒に送信しますか?
  • ホストポートは特定のエンドポイントに通信を要求します。エンドポイントは、ホストから要求された場合にのみ応答します。
  • @TomCarpenterただし、エンドポイントはすべて同時に使用されており、1つずつではなく、すべて一緒に使用されています。
  • USBバスは次のことができます。 USB2.0で最大480Mbpsで動作します。ホストは一度に1つのエンドポイントとのみ通信しますが、すべてのエンドポイントと順番に通信し、'がわからないほど高速に切り替えます。ネットワークが行うのと同じこと。 "ポート1にマウスを置くと、'移動したかどうかを教えてください。さて、ポート2のキーボードで、報告するキーを押しましたか?これで、ポート3、フラッシュドライブに、このデータを保存してください。他に話をする必要がある人はいますか?いいえ、わかりました。ポート1にマウスを置き、'移動したかどうかを教えてください… "

回答

それはすべて調停に関係しています。複数のデバイスを接続する必要があるシステムには、誰が話すかを決定する何らかの方法が必要です。いつ。アプリケーションに応じて予想されるさまざまなスキームがあります。

一般的な例-ネットワークでは、多くのノードがすべて相互に通信しています。これは、アドレス(IPなど)を持つ各ノードによって行われます。アドレス)、ノードが別のノードと通信する場合、そのアドレスにパケットを送信します。次に、複数のポートに着信するパケットを受け取り、正しいポートに転送するルーターなどのデバイスがあります。宛先ポートが空くまでパケットを保存するためにメモリを使用して行われます。


USBに移ります。これは、すべてのノードが等しくなるわけではないため、実際にはネットワークよりもはるかに簡単です。2つの種類があります。ホスト、およびエンドポイント。ホストは1つだけですが、多くのエンドポイントになる可能性があります。この場合、ホストポートのみが自由に通信できるため、アービトレーションははるかに簡単です。 エンドポイントはホストから要求された場合にのみ通信できます、ホストは一度に1つのエンドポイントとのみ通信します。

ホスト->エンドポイントパケットの場合、USBハブはホストからの要求をすべてのエンドポイントに渡すだけです。すべてのエンドポイントにはアドレスがあるため、リクエストの宛先となったエンドポイントのみがアドレスを処理し(応答など)、他のすべてのエンドポイントはパケットを無視します。

エンドポイントの場合->ホストパケット。ホストは最初にアドレスで特定のエンドポイントにパケットを送信し、"今すぐ話すことができます" 、そしてそのエンドポイントはすぐに応答を送信する必要があります。常に1つのエンドポイントのみが通信を許可されているため、USBハブは、ホストからの要求に応答するポートからパケットをルーティングするだけです。


ホストの動作に関して接続されているデバイスと、エンドポイントがそれらのアドレスを取得する方法を確認するには、これは列挙によって実現されます。

すべてのホストポートとハブポートには、D +およびD-ラインにプルダウン抵抗(15kOhm)があります。これらは、デバイスが接続されていないときにそのポートのデータラインを既知の状態にします。これは、ポートがD + / D-ラインを介してデータをまったく送信しない状態です。

デバイスが接続されている場合、1.5kオームの抵抗を使用してD +(フルスピード)またはD-(低速)データラインをVCCに接続することでそれ自体を認識します。これにより、列挙イベントがトリガーされます。次に、ポートはデバイスの構成とアドレスの割り当てのプロセスを開始します。2つのデバイスを同時に接続する場合、それらは一度に1つずつ列挙されます

ハブがない場合、ホストは新しいデバイスと通信してセットアップするだけです。システムにハブがある場合、新しいデバイスが接続されたことを報告するハブです。ハブが新しいデバイスが接続されていることを報告すると、ホストはハブに新しいデバイスをリセットして通信を開始するように指示します。リセット中、エンドポイントにはデフォルトのアドレス0(*)が与えられます。その後、ホストはデフォルトアドレスを使用してエンドポイントと通信し、ゼロ以外の一意のアドレスでエンドポイントを構成して、いつ通信されているかを認識できるようにします。

(*)デバイスが1つしかないため一度に列挙される場合、アドレス0は常に新しく接続されたデバイスに固有になります。


次に、"と尋ねる場合があります。その後、複数のデバイスをすべて同時に通信させることはできますか?"。マウス、キーボード、フラッシュドライブがすべて同じUSBハブに接続されているとします。フラッシュドライブとの間でファイルをコピーしながら、マウスとキーボードを同時に使用できることは誰もが知っていますが、一度に1つのデバイスしか通信できない場合、どうすればそれが可能になりますか?

、それはすべて、あなたの脳があなたがキーを押したことに気づき、画面が更新されることを期待するのに数百ミリ秒かかるという事実に帰着します。それはコンピュータにとって永遠です。 USB 2.0インターフェイスは最大480Mbpsで実行できます(USB 3.1は最大10Gbpsで実行できます!)。つまり、ホストは常に1つのエンドポイントとしか通信していませんが、それらの間を非常に高速に循環します。 「教えてください」それをやっています。

USBホスト: "ねえ、ポート1にマウスを置いて、移動したかどうか教えてください。ポート2のキーボードで、報告するキーを押しましたか?ポート3、フラッシュドライブに、このデータを保存してください。他に話しかける必要がある人はいますか?いいえ、それでは、ポート1にマウスを置いて、移動したかどうかを教えてください… "

人間: " 、コンピュータは、マウスを動かし、キーボードのキーを押し、フラッシュドライブに画像をコピーしたことに気づきました。"

ホストデバイスはどのeを追跡しますndpointアドレスが使用され、パケットを各アドレスに順次または必要に応じて送信します(つまり、 OSが特定のデバイスへのアクセスを要求したとき)。したがって、すべてが同時に行われるわけではありませんが、調停は非常に高速であるため、人間のペットのコンピュータは違いを区別できません。

コメント

  • To追加:USBデバイス(正確には「割り込み」エンドポイントのみ)は、1ミリ秒までの特定の間隔でポーリングを要求できます。数百の入力デバイスがない限り、遅延に気付くことはありません。
  • ホストはどのエンドポイントが接続されているかをどのように認識しますか?また、これは実際にはハブに関する元の質問に答えていないようです。このプロセスでハブはどのように相互作用しますか?列挙でどのように相互作用しますか?
  • @YonaAppletree列挙。ホストとハブは、デバイス接続についてすべてのポートをスキャンします-D +(フルスピード)またはD-のいずれかで1.5kOhmのプルアップ抵抗を検出します(低速)。'エンドポイントにアドレスが割り当てられる方法に関する情報を追加します。
  • @YonaAppletreeの運用中のハブに関して、答えは話しますすでにそれについて。ホストからエンドポイントへ:" USBハブは、ホストからすべてのエンドポイント"にリクエストを渡すだけです。エンドポイントからホストへ:"常に1つのエンドポイントのみが通信を許可されているため、USBハブは応答するポートからパケットをルーティングするだけです"

回答

短い回答:ホストは特定のデバイスにアドレス指定されたデータを送信します(これは予備的な「列挙」でした)、一度に1つのトランザクションを順番に実行します。ハブはすべてのパケットをすべてのデバイスにブロードキャストします。デバイスは、それにアドレス指定されたトランザクションにのみ応答します。これがすべて、HSデバイスに当てはまります。

FSおよびLSデバイスの場合、プロセスは少し複雑です。すべてのポートのすべてのハブに組み込まれている「トランザクショントランスレータ」を使用します。 -LSまたはFSトラフィックへの「スプリットトランザクション」と呼ばれます。

コメント

  • USB 3についてはどうですか?
  • USB3ハブはスーパースピードリンクの方がインテリジェントで、デバイス/エンドポイントへの明示的なルーティングを使用します。USB2セクションは同じままです。セクション3.1 "アーキテクチャの概要"、 usb.org/developers/docs/usb_31_052016。zip

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です