控制通道特性
裝置的控制通道是其USB控制端點。 從主機到裝置的控制訊息會以 SEND_ENCAPSULATED_COMMAND 傳輸形式傳送。 下表定義此傳輸。
BmRequestType | bRequest | wValue | wIndex | wLength | 數據 |
---|---|---|---|---|---|
0x21 |
0x00 |
0x0000 |
bInterfaceNumber 通訊類別介面描述元的欄位 |
控制訊息區塊的位元組長度 |
控制信息塊 |
主機不會持續輪詢 USB 控制端點以取得輸入控制訊息。 在控件端點上放置控制訊息時,裝置必須傳回通訊類別介面中斷 IN 端點上的通知,每當裝置可以傳回控制訊息時,主機就會輪詢該端點。 從裝置中斷 IN 端點到主機的傳輸是標準 USB 插斷 IN 傳輸。 唯一定義的裝置通知是下表中定義的RESPONSE_AVAILABLE通知。
位移(位元組) | 長度(位元組) | 田 | 數據 |
---|---|---|---|
0 |
4 |
通知 |
RESPONSE_AVAILABLE (0x00000001) |
4 |
4 |
保留 |
0 |
收到RESPONSE_AVAILABLE通知后,主機會使用下表中定義的GET_ENCAPSULATED_RESPONSE傳輸,從控制端點讀取控制訊息。
bmRequestType | bRequest | wValue | wIndex | wLength | 數據 |
---|---|---|---|---|---|
0xA1 |
0x01 |
0x0000 |
bInterfaceNumber 通訊類別介面描述元的欄位 |
0x0400 (這是主機所張貼緩衝區的最小位元組長度) |
控制消息塊 |
如果裝置因為某些原因收到GET_ENCAPSULATED_RESPONSE且無法在控制端點上回應有效資料,則它應該傳回設定為 0x00 的一個位元組封包,而不是停止控制端點。