USB裝置驅動之裝置初始化 裝置列舉

2021-09-29 19:41:02 字數 631 閱讀 4699

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...