最終更新:2018-05-15 (火) 14:31:45 (2400d)
USB/標準リクエスト
標準デバイスリクエスト
概要
- エンドポイント0のコントロール転送を使って行うリクエスト
- デバイスリクエストのbmRequestTypeの5,6ビット目が0x00のリクエスト。
コマンド一覧
- GET_STATUS - デバイスの状態の取得(給電状態、リモートウェイクアップ)
- CLEAR_FEATURE - 特定の機能をなくしたり無効化
- SET_FEATURE - 特定の機能を有効化
- SET_ADDRESS - USBアドレスの設定
- GET_DESCRIPTOR - 指定されたデスクリプタを(存在すれば)返す。
- SET_DESCRIPTOR? - (オプション)既存のディスクリプタの更新
- GET_CONFIGURATION - リクエストはデバイスの現在のコンフィグレーション値を返す。
- SET_CONFIGURATION - デバイスのコンフィグレーションを設定
- GET_INTERFACE? - returns the selected alternate setting for the specified interface.
- SET_INTERFACE - allows the host to select an alternate setting for the specified interface.
- SYNCH_FRAME? - used to set and then report an endpoint’s synchronization frame
デバイスリクエストの構造
オフセット フィールド サイズ 値 説明 0 bmRequestType 1 ビットマップ リクエストの性質を表す 1 bRequest 1 Value リクエスト(GET_DESCRIPTORとか) 2 wValue 2 Value リクエストによる。 4 wIndex 2 Index or Offset リクエストによる。大抵はインデックスやオフセットを渡すのに使用。 6 wLength 2 Count データステージがある場合は転送するバイト数。
bmRequestType
- リクエストの性質を表す
ビット 意味 値 7 データ転送方向 0: ホストからデバイス
1: デバイスからホスト6 リクエストタイプ 0: 標準リクエスト
1: USB/クラスリクエスト
2: USB/ベンダリクエスト
3: Reserved5 4 リクエストの対象 0: デバイス
1: インターフェイス
2: エンドポイント
3: Other
4~31: Reserved3 2 1 0
bRequest
bRequestの値 bRequest 機能 wValue wIndex wLength Data 0x00 GET_STATUS エンドポイント等のステータス取得 0 デバイスの時は0、
インターフェイス番号、
エンドポイント番号2 デバイス、インターフェイス、またはエンドポイントのステータス 0x01 CLEAR_FEATURE 特定の機能をクリア。ストール解除など 標準Featureセレクタ デバイスの時は0、
インターフェイス番号
エンドポイント番号0 0x02 Reserved 0x03 SET_FEATURE リモートウェィクアップなどの機能を設定 標準Featureセレクタ デバイスの時は0、
インターフェイス番号、
エンドポイント番号0 0x04 Reserved 0x05 SET_ADDRESS デバイスのアドレスを設定 デバイスアドレス 0 0 0x06 GET_DESCRIPTOR ディスクリプタを取得 ディスクリプタ種別、ディスクリプタ番号 0、言語番号 ディスクリプタの長さ ディスクリプタ 0x07 SET_DESCRIPTOR? ディスクリプタを変更 ディスクリプタ種別、ディスクリプタ番号 0、言語番号 ディスクリプタの長さ ディスクリプタ 0x08 GET_CONFIGURATION 現在のコンフィギュレーション番号取得 0 0 1 コンフィグレーションの番号 0x09 SET_CONFIGURATION コンフィギュレーション番号設定 構成値 0 0 0x0A GET_INTERFACE? 現在の代替インタフェース番号を取得 0 インターフェイス 1 代替インターフェイスの番号 0x0B SET_INTERFACE インタフェースを設定 代替設定値 インターフェイス 0 0x0C SYNCH_FRAME? パターン同期のアイソクロナス転送で使用される、パターン開始番号取得要求 0 エンドポイント 2 フレーム番号
USB 3.0で追加
0x30 SET_SEL SEL(System Exit Latency)、電源状態U1,U2からの復帰時間の設定 0x31 SET_ISOCH_DELAY ホストがパケット送出してからデバイスが受信するまでの遅延時間の設定
その他
標準Featureセレクタ
- SET_FEATURE/CLEAR_FEATUREで使われる
- TEST_MODE時のwIndexのMSB
値 意味 0x00 Reserved 0x01 Test_J 0x02 Test_K 0x03 Test_SE0_NAK 0x04 Test_Packet 0x05 Test_Force_Enable 0x06-0x3F Reserved(標準テストセレクタ) 0x3F-0xBF Reserved 0xC0-0xFF Reserved(ベンダ依存テストモード)