每次當插上鼠標或者U盤的時候,電腦是怎么知道是什么設備的呢?這里用到的就是枚舉了。枚舉,其實就是讓HOST認識這個USB涉筆,并且為該設備準備資源,建立好主機和設備之間的數據傳遞機制。USB設備枚舉過程可以分為8個部分:1、 獲取設備描述符2、 復位3、 設置地址4、 再次獲取設備描述符5、 獲取配置描述符6、 獲取接口、端點描述符7、 獲取字符串描述符8、 選擇設備配置
先看一下上篇文章看的USB鼠標枚舉的包吧。那樣更加明顯易懂。
1、 獲取設備描述符
這次傳輸方式是控制傳輸,她由5個事務組成,分別是SETUP、IN、IN、IN、OUT。
首先看第一個事務即SETUP事務的data數據,根據其數據再根據usb協議中的setup協議可以知道其含義了。下面按照自己來看協議
2、 復位
3、 設置地址
4、? 再次獲取設備描述符這個是第2部分是一樣的,就不再分析了。??
5、 獲取配置描述符
看第一行就知道了這個是GET_DESCRIPTOR,CONFIGURATION descriptor。下面還是看下具體的事務吧。
首先還是SETUP事務了,看數據80 06就可以知道了是設備要發描述符給主機,而02就表示configuration,就是配置描述符了,
接著就是IN事務,設備給主機發送數據了。具體的數據含義看下圖。
最后就是OUT事務。
6、 獲取接口、端點描述符
還是老方法,看SETUP事務,和上一個一樣,是獲取配置描述符,這里的配置描述符。
具體含義,看下面的圖就明白了。
7、 獲取字符串描述符
這里就不多做分析了。8、 選擇設備配置
這里,SETUP事務,主要是DEVICE的SET_CONFIGURATION。好了,差不多USB的枚舉就是這么回事了。
-
usb
+關注
關注
60文章
7960瀏覽量
265089 -
電腦
+關注
關注
15文章
1714瀏覽量
68949 -
Host
+關注
關注
0文章
32瀏覽量
34641
原文標題:科普!插上USB設備后電腦是怎么識別的呢?
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論