USB デバイスのレイアウト

ユニバーサル シリアル バス (USB) デバイスは、構成、インターフェイス、代替設定、エンドポイントを通じて、その機能と機能を定義します。 この記事では、これらの概念の概要について説明します。

USB 構成では、デバイスの機能と機能、主に電源機能とインターフェイスを定義します。 デバイスは複数の構成を持つことができますが、一度にアクティブになっているのは 1 つだけです。 アクティブな構成は USB ドライバー スタックによって選択されませんが、アプリケーション、ドライバー、デバイス ドライバーによって開始される可能性があります。 デバイス ドライバーは、アクティブな構成を選択します。

構成には、デバイスの機能を定義する 1 つ以上の USB インターフェイスを含めることができます。 通常、関数とインターフェイスの間には 1 対 1 の相関関係があります。 ただし、特定のデバイスでは、1 つの関数に関連する複数のインターフェイスが公開されます。 その場合、デバイスはインターフェイス アソシエーション ディスクリプタ (IAD) を持つことができます。 IAD は、特定の関数に属するインターフェイスをグループ化します。

各インターフェイスには、デバイスとの間でデータを転送するために使用される 1 つ以上のエンドポイントが含まれています。 さらに、インターフェイスには、インターフェイスに関連付けられている関数の帯域幅要件を定義する代替設定が含まれています。 要約すると、エンドポイントのグループがインターフェイスを形成し、インターフェイスのセットがデバイスの構成を構成します。

では、アクティブな構成を選択するとはどういう意味でしょうか。 デバイスの初期化中に、USB デバイスのデバイス ドライバーは、構成、その構成内の 1 つ以上のインターフェイス、および各インターフェイスの代替設定を選択する必要があります。 ほとんどの USB デバイスでは、複数のインターフェイスや複数の代替設定は提供されません。 たとえば、OSR USB FX2 学習キットデバイスには、1 つの代替設定を備えた 1 つのインターフェイスと 3 つのエンドポイントがあります。 学習キットの詳細については、OSR Online を参照してください。

単一インターフェイス デバイス

次の図は、1 つのインターフェイスを持つデバイスの構成を示しています。

Diagram of a USB device layout for a single interface device.

この例では、既定のエンドポイントと呼ばれるエンドポイント 0 を示しています。 すべての USB デバイスには、コントロール転送に使用される既定のエンドポイントが必要です (USB 制御転送を参照)。 構成 0 には、インターフェイス 0 と代替設定が 1 つという 1 つのインターフェイスがあります。 代替設定 0 では、インターフェイス内の 3 つのエンドポイントがすべて使用されます。

複数インターフェイス USB デバイス

多機能デバイスの場合、デバイスには複数のインターフェイスがあります。 特定の関数またはインターフェイスを使用するには、クライアント ドライバーは、インターフェイスと関連付けられている代替設定を選択します。 Web カメラなどの多機能 USB デバイスについて考えてみましょう。 このデバイスには、ビデオ キャプチャ (カメラ) とオーディオ入力 (マイク) の 2 つの機能があります。 デバイスは、ビデオをストリーミングするビデオ インターフェイス内のエンドポイントを定義します。 デバイスには、マイクを介してオーディオ入力を受け取る別のインターフェイスに別のエンドポイントがあります。 デバイスの構成には、これらのインターフェイスの両方が含まれています。

次の図は、Web カメラ デバイスの構成を示しています。

Diagram of a device layout for a multiple interface device.

この例では、図は既定のエンドポイントを示しています。 構成 0 には、インターフェイス 0 とインターフェイス 1 の 2 つのインターフェイスがあります。 インターフェイス 0 には、3 つの代替設定があります。 任意の時点でアクティブな代替設定は 1 つだけです。 代替設定 0 はエンドポイントを使用しないのに対し、代替設定 1 と 2 はエンドポイント 1 を使用することに注意してください。 通常、ビデオ カメラはストリーミングに等時性エンドポイントを使用します。 その種類のエンドポイントの場合、エンドポイントが使用されているとき、帯域幅はバス上に予約されます。 カメラがビデオをストリーミングしていない場合、クライアント ドライバーは帯域幅を節約するために代替設定 0 を選択できます。 Web カメラがビデオをストリーミングしている場合、クライアント ドライバーは代替設定 1 または代替設定 2 に切り替えることができます。これにより、品質レベルが向上し、消費されるバス帯域幅が増加します。 インターフェイス 1 には、2 つの代替設定があります。 インターフェイス 0 と同様に、代替設定 0 ではエンドポイントは使用されません。 代替設定 1 は、エンドポイント 1 を使用するように定義されています。

エンドポイントは、構成内の 2 つのインターフェイス間で共有することはできません。 デバイスはエンドポイント アドレスを使用して、データ転送またはパイプ リセットなどのエンドポイント操作のターゲット エンドポイントを決定します。 これらの操作はすべてホストによって開始されます。

デバイスの使用を開始する前に、デバイス レイアウトに関する情報を取得します。 USBView は、すべての USB コントローラとそれに接続されている USB デバイスを参照できるアプリケーションです。 接続されているデバイスごとに、デバイス、構成、インターフェイス、およびエンドポイント記述子を表示して、デバイスの機能について把握できます。

次に、標準の USB 記述子を参照してください。