USB設備從接入HUB到正常工作之前。都屬於設備枚舉階段。所謂設備枚舉。就是讓host控制器認識USB設備,並為其准備資源。建立好主機與設備間的數據傳遞機制。
該階段的工作,是USB通信協議規定的,所以屬於ISO標准流程。設備枚舉階段也相應了USB設備的五種狀態。
設備枚舉階段分為例如以下8個步驟:
- 獲取設備描寫敘述符
- 復位
- 設置地址
- 再次獲取設備描寫敘述符
- 獲取配置描寫敘述符
- 獲取接口。端點描寫敘述符
- 獲取字符串描寫敘述符
- 選擇設置配置
當中,步驟1與4都是獲取設備描寫敘述符,兩者有什么差別?
步驟1中僅僅取得設備描寫敘述符的固定長度字段,而步驟4是獲取設備描寫敘述符的所有字段。
通過上述的8個步驟。能夠看出:在設備枚舉階段,主機控制器獲取了USB設備的全部具體信息(5大描寫敘述符),然后為其分配了資源(設置地址)。在設備枚舉階段完畢之后。USB設備就能與USB主機之間進行數據交換了。
同一時候,我們知道USB設備接入USB主機之后有5種狀態:
- Attached
- Powered
- Default
- Addressed
- Configured
這5中狀態與USB設備枚舉的相應關系是:
- USB設備插入接口之后,處於Attached狀態;
- USB主控制器會給USB設備供電,此時處於Powered狀態;
- 設備枚舉階段的步驟2。復位操作之后,設備處於Default狀態;
- 設備枚舉階段的步驟3。設置地址操作之后,設備處於Addressed狀態。
- 設備枚舉結束之后,設備處於Configured狀態。