USB デバイスのレイアウト

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

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

構成には、デバイスの機能を定義する1つまたは複数の USB インターフェイス を含めることができます。 通常、関数とインターフェイスの間には一対一の相関関係があります。 ただし、特定のデバイスは、1つの関数に関連する複数のインターフェイスを公開します。 その場合、デバイスはインターフェイス関連付け記述子 (IAD) を持つことができます。 IAD は、特定の関数に属する複数のインターフェイスをグループ化します。

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

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

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

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

単一インターフェイスデバイスの usb デバイスレイアウト。

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

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

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

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

複数のインターフェイスデバイスのデバイスレイアウト。

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

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

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

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

すべての USB 開発者のための概念