USB學(xué)習系列之二——USB設備的插入檢測機制
注意:高速設備首先會(huì )被識別為全速設備,然后再通過(guò)集線(xiàn)器和設備二者的確認最后切換到高速模式下。
本文引用地址:http://dyxdggzs.com/article/201612/330046.htm在高速模式下,采用的是電流傳輸模式,這個(gè)時(shí)候上拉電阻需要從D+上斷開(kāi)。
2.當設備沒(méi)有枚舉成功時(shí)(可以通過(guò)一個(gè)10K的電阻將USB的電源端和D+或者D-連接起來(lái),電腦會(huì )發(fā)現一個(gè)無(wú)法識別的設備,這個(gè)設備的PID和VID都是0,根據每個(gè)特性可以簡(jiǎn)單的判定設備的枚舉是否成功。
3.一個(gè)具體的USB實(shí)現什么功能,USB主機并不知道。USB主機通過(guò)讀取USB的設備描述符來(lái)獲取設備的類(lèi)型、廠(chǎng)商的ID和產(chǎn)品的ID(通常依靠它們來(lái)加載對應的驅動(dòng)程序)、端點(diǎn)情況、版本號等眾多信息。
4.USB1.1協(xié)議定義的標準描述符有設備描述符(Device
USB2.0相比于USB1.1新增加的兩個(gè)描述符:限定符描述符(Qualifier
5.一個(gè)USB設備只有一個(gè)設備描述符。
設備描述符里面決定了該設備有多少種配置,每種配置都有一個(gè)配置描述符;
而在每個(gè)配置描述符中又定義了該配置有多少個(gè)接口,每個(gè)接口都有一個(gè)接口描述符;
在接口描述符里面又定義了該接口有多少個(gè)端點(diǎn),每個(gè)端點(diǎn)都有一個(gè)端點(diǎn)描述符,端點(diǎn)描述符定了端點(diǎn)的大小、類(lèi)型等。
如果有類(lèi)特殊描述符,它跟在相應的接口描述符之后。
注意:USB主機獲取描述符時(shí),從上到下逐層獲取。對于字符串描述符,USB主機是單獨獲取的,主機通過(guò)發(fā)送獲取字符串中描述符的請求以及描述符的索引號、語(yǔ)言ID來(lái)獲取對應的字符串描述符。
6.設備描述符:設備所使用的USB協(xié)議版本號、設備類(lèi)型、端點(diǎn)0的最大包大小、廠(chǎng)商ID(VID)和產(chǎn)品ID(PID)、設備版本號、廠(chǎng)商字符串索引、產(chǎn)品字符串索引、設備序列號索引、可能的配置數等。
配置描述符:記錄配置所包含的接口數、配置的編號、供電方式、是否支持遠程喚醒、電流需求量等。
接口描述符:記錄接口的編號、接口的端點(diǎn)數、接口所使用的類(lèi)、子類(lèi)、協(xié)議等。
端點(diǎn)描述符:端點(diǎn)號及方向、端點(diǎn)的傳輸類(lèi)型、最大包長(cháng)度、查詢(xún)時(shí)間間隔等。
字符串描述符:提供一些方便人們閱讀的信息,它不是必需的。
7.與USB設備進(jìn)行通信時(shí)需要的地址:設備的地址和端點(diǎn)的地址。配置和接口是為了更加方便的管理端點(diǎn)抽象出來(lái)的概念。一個(gè)設備可以有多個(gè)配置,但是一個(gè)時(shí)刻只能有一個(gè)配置有效;每個(gè)配置下又可以有多個(gè)接口,一個(gè)接口下面可以有多個(gè)端點(diǎn)。
8.具有多個(gè)接口,并由接口來(lái)實(shí)現功能的設備叫做USB復合設備。例如一個(gè)USB音頻設備,它具有一個(gè)音頻控制接口,另外還有一個(gè)到多個(gè)音頻流或者M(jìn)IDI流接口。在主機端會(huì )把USB復合設備的每個(gè)接口當做一個(gè)功能設備來(lái)看待,常見(jiàn)的USB鼠標,U盤(pán)等通常是單一的設備,即一個(gè)設備下只有一個(gè)配置描述符、一個(gè)接口描述符。
評論