このビデオは、USBデバイス検出がどのように機能するかを示しています。 USBデバイスとターゲットデバイス間の通信は、2つの間に多数の変数と通信があり、システムが接続されたUSBの速度と、2つの間に存在するさまざまなネゴシエーションの両方を検出することを示しています。 ベン・イーターの興味深いビデオで、USBデバイスをPCに接続するとどうなるかがわかります。
USBデバイス検出はどのように機能しますか?
デバイスを接続すると、最初に事前のネゴシエーションまたは通信がトリガーされます。 これらの通信の最初のものは、デバイスが高速デバイスか低速デバイスかを通知するデバイスからの信号です。
デバイスがUSBシステムに接続されると、「アドレス」と呼ばれる番号が割り当てられます。 アドレスは、接続されている間、そのデバイスによって排他的に使用されます。 このアドレスは、デバイスが接続されるたびに変更される可能性があります。
さらに、このアドレスに加えて、このデバイスにはいくつかのエンドポイント、ホストとデバイス間のさまざまな通信間の送信元と宛先のコレクションもあります。

すべての標準要求は、制御転送を介してエンドポイント0に送信されます。制御転送は、8バイトを伝送する確立トランザクションから始まります。 これらの8バイトは、ホスト要求を定義します。
USB通信では、データはパケットとして送信されます。 最初に、すべてのパケットはホストからルートハブを介して送信されます。 これらのパケットの一部により、デバイスはそれに応じて一部のパケットを送信します。
USB内の通信は、一連のデータパイプ、データストリーム内の論理チャネルに基づいています。 これらは、ホストコントローラーから、エンドポイントとして機能するデバイス内の論理エンティティへの接続であると言えます。







