USB裝置列舉過程

2021-09-30 15:02:39 字數 621 閱讀 6096

當裝置連線到主機時,按照以下順序進行列舉:

1. 連線了裝置的hub 在host 查詢其狀態改變端點時返回對應的bitmap,告知host 某個port 狀態發生了改變。

2. 主機向hub 查詢該port 的狀態,得知有裝置連線,並知道了該裝置的基本特性。

3. 主機等待(至少100ms)裝置上電穩定,然後向hub 傳送請求,復位並使能該port。

4. hub 執行port 復位操作,復位完成後該port 就使能了。現在裝置進入到de****t狀態,可以從vbus 獲取不超過100ma 的電流。主機可以通過0 位址與其通訊。

5. 主機通過0 位址向該裝置傳送get_device_descriptor 標準請求,獲取裝置的描述符。6. 主機再次向hub 傳送請求,復位該port。

7. 主機通過標準請求set_address 給裝置分配位址。

8. 主機通過新位址向裝置傳送get_device_descriptor 標準請求,獲取裝置的描述符。

9. 主機通過新位址向裝置傳送其他get_configuration 請求,獲取裝置的配置描述符。

10. 根據配置資訊,主機選擇合適配置,通過set_configuration 請求對裝置而進行配置。

這時裝置方可正常使用。

USB列舉過程詳述

本系統中所謂usb裝置與主機是通過檢測vcc上拉電阻的變化來確定是否有裝置連線的。在d12內部整合了1.5k 的上拉電阻,預設狀態下不與vcc相連,程式執行時可以向d12傳送連線命令使1.5k 電阻連線到vcc,這樣主機便檢測到有裝置連線。它的列舉過程分析如下。裝置連線到匯流排後,裝置從匯流排獲得5...

USB列舉過程(1)

總的過程 host檢測到device,reset 獲取裝置描述符 host發獲取裝置描述符請求 setup data0 divice返回裝置描述符 in ack host說明已獲取裝置描述符 out data0空資料 lsb先發 對裝置reset,開始設定新位址 新位址 out data0 new ...

USB滑鼠列舉過程深入解析(下)

transfer5 transfer6 transfer7 是獲得字串描述符的傳輸過程。transfer5 是為了獲得0 號字串描述符,transfer6 是為了獲得2 號字串描述符,transfer7 是為了獲得1 號字串描述符。transfer5 現在來分析transfer5 的setup tr...