リクエスト・ディスクリプタ
リクエスト
ホストとデバイスは、リクエストとその返信で通信方法を確定させます。ここでは、USB3.0/2.0のリクエストを列挙・比較します。○は必須またはデバイスによっては必要、×は不要または設定不可を示します。
リクエスト名 | 値 | 3.0 | 2.0 | 概要 |
GET_STATUS | 0x00 | ○ | ○ | ステータスの取得 |
CLEAR_FEATURE | 0x01 | ○ | ○ | フィーチャのクリア、フィーチャの種類は以下 ・USB3.0 ENDPOINT_HALT, FUNCTION_SUSPEND, U1_ENABLE, U2_ENABLE, LTM_ENABLE ・USB2.0 ENDPOINT_HALT, DEVICE_REMOTE_WAKEUP, TEST_MODE |
SET_FEATURE | 0x03 | ○ | ○ | フィーチャの設定、フィーチャの種類は同上 |
SET_ADDRESS | 0x05 | ○ | ○ | デバイスアドレスの設定 |
GET_DESCRIPTOR | 0x06 | ○ | ○ | ディスクリプタの取得 |
SET_DESCRIPTOR | 0x07 | ○ | ○ | ディスクリプタの設定 |
GET_CONFIGURATION | 0x08 | ○ | ○ | 現在のコンフィグレーション インデックスの取得 |
SET_CONFIGURATION | 0x09 | ○ | ○ | 新しいカレント コンフィグレーションの設定 |
GET_INTERFACE | 0x0A | ○ | ○ | 現在の代替設定インデックスの取得 |
SET_INTERFACE | 0x0B | ○ | ○ | 代替設定の有効化 |
SYNCH_FRAME | 0x0C | ○ | ○ | 同期フレーム番号の報告 |
SET_SEL | 0x30 | ○ | × | SEL(System Exit Latency)、電源状態U1,U2からの復帰時間の設定 |
SET_ISOCH_DELAY | 0x31 | ○ | × | ホストがパケット送出してからデバイスが受信するまでの遅延時間の設定 |
ディスクリプタ
大きな情報はディスクリプタと呼ばれる構造体で通信します。リクエストGET_DESCRIPTOR, SET_DESCRIPTORで使用します。ここでは、USB3.0/2.0のディスクリプタを列挙・比較します。DEVICE, CONFIGURATION, INTERFACE, ENDPOINTは、4つのレイヤの詳細を記述します。
ディスクリプタ名 | 値 | 3.0 | 2.0 | 概要 |
DEVICE | 0x01 | ○ | ○ | USBバージョン、デバイスクラス、ベンダID、製品ID 等デバイス基本情報 |
CONFIGURATION | 0x02 | ○ | ○ | 電源供給方法、消費電力、STRINGディスクリプタの有無 |
STRING | 0x03 | ○ | ○ | デバイス情報文字列 |
INTERFACE | 0x04 | ○ | ○ | エンドポイント数、インターフェースが提供するデバイスクラス |
ENDPOINT | 0x05 | ○ | ○ | 0以外の各エンドポイントの方向、タイプ(Bulk等)、最大パケット長、インターバル |
DEVICE_QUALIFIER | 0x06 | × | ○ | 動作中のスピード以外のDEVICEディスクリプタ設定 |
OTHER_SPEED_ CONFIGURATION | 0x07 | × | ○ | 動作中のスピード以外のCONFIGURATIONディスクリプタ設定 |
INTERFACE_POWER | 0x08 | × | × | 運用されていない |
INTERFACE_ASSOCIATION | 0x0B | ○ | ○ | 複合デバイス設定 |
BOS (Binary Device Object Store) | 0x0F | ○ | × | DEVICE_CAPABILITYディスクリプタ指定 |
DEVICE_CAPABILITY | 0x10 | ○ | × | Super Speed/High Speed時のLink Message対応通知 |
SUPERSPEED_USB_ENDPOINT_COMPANION | 0x30 | ○ | × | Burst転送最大長 |
リクエスト・ディスクリプタ USB2.0からUSB3.0への移管
リクエストやディスクリプタの制御は複雑で実装量も多いです。システム構成や設計資産の内容により一概には言えませんが、一般的には、USB2.0のリクエストやディスクリプタの制御に関する設計資産はUSB3.0に流用しやすいと言えます。