最終更新:2023-04-25 (火) 10:12:58 (694d)
コンフィグレーションディスクリプタ
Top / コンフィグレーションディスクリプタ
デバイスの構成情報を記述
Field | Offset | Size | 詳細 |
bLength? | 0 | 1 | Descriptor の全体長。CONFIGURATION は 9(0x9)Byte 固定。 |
bDescriptorType | 1 | 1 | Descriptor Types。CONFIGURATION は 2。 |
wTotalLength | 2 | 2 | 当該、および従属ディスクリプタの全長 |
bNumInterface? | 4 | 1 | インターフェイスディスクリプタの個数。 |
bConfigurationValue | 5 | 1 | Configuration 番号。SET_CONFIGURATION時のID。 |
iConfiguration | 6 | 1 | Configuration のストリングディスクリプタ の Index 番号。0の場合、指定無し |
bmAttributes | 7 | 1 | bit 7:予約(1) bit 6:Self Power(0/1) bit 5:Remote Wakeup機能(0/1) bit 4-0:予約(0) |
bMaxPower | 8 | 1 | 必要とするバスからの電流の1/2(mA)。最大 500(=0xFA*2)mA。値の1/2を設定するのは 1 byte に収めたかったため。 USB 3.0では消費電流量bMaxPowerの単位が2mAから8mAへ変更されている |
おまけでついてくるディスクリプタ
- 一般的には始めにコンフィグレーションディスクリプタの固定 9 byte 分を読み込み wTotalLength を取得し、再度、wTotalLength 分のコンフィグレーションディスクリプタを取得
インターフェイスアソシエーションディスクリプタ (USB 2.0)
- IAD,Interface Association Descriptor
- 複数のインターフェースを持ったクラスを含んだ複合デバイスを構成する場合のディスクリプタ仕様