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裝置驅動之裝置初始化 裝置列舉
usb裝置從接入hub到正常工作之前,都屬於裝置列舉階段。所謂裝置列舉,就是讓host控制器認識usb裝置,並為其準備資源,建立好主機與裝置間的資料傳遞機制。該階段的工作,是usb通訊協議規定的,所以屬於iso標準流程。裝置列舉階段也對應了usb裝置的五種狀態。裝置列舉階段分為如下8個步驟 獲取裝置...
USB裝置驅動之裝置初始化 裝置列舉
usb裝置從接入hub到正常工作之前,都屬於裝置列舉階段。所謂裝置列舉,就是讓host控制器認識usb裝置,並為其準備資源,建立好主機與裝置間的資料傳遞機制。該階段的工作,是usb通訊協議規定的,所以屬於iso標準流程。裝置列舉階段也對應了usb裝置的五種狀態。裝置列舉階段分為如下8個步驟 獲取裝置...
USB裝置驅動
1.linux usb架構 usb通訊都是由host端發起的。usb裝置驅動程式分配並初始化乙個urb發給usb core,usb core改一改,發給usb主機控制器驅動,usb主機控制器驅動把它解析成包,在匯流排上進行傳送。usb core是由核心實現的,其實也就是把host control d...