新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > USB學習系列之二——USB設備的插入檢測機制

        USB學習系列之二——USB設備的插入檢測機制

        作者: 時間:2016-12-14 來源:網絡 收藏
        1.USB的插入檢測機制:USB端口的D+和D-均用一個15k的電阻接地,當無設備接入時,均處于低電平;在設備端在D+(表示高速設備或者全速設備)或者D-(表示低速設備)接了一個1.5k的上拉電阻到+3.3v,一旦將設備接入,USB端口的D+或者D-其中一個被拉高為3v,系統識別到外部設備接入。

        注意:高速設備首先會被識別為全速設備,然后再通過集線器和設備二者的確認最后切換到高速模式下。

        本文引用地址:http://www.104case.com/article/201612/330046.htm

        在高速模式下,采用的是電流傳輸模式,這個時候上拉電阻需要從D+上斷開。

        2.當設備沒有枚舉成功時(可以通過一個10K的電阻將USB的電源端和D+或者D-連接起來,電腦會發現一個無法識別的設備,這個設備的PID和VID都是0,根據每個特性可以簡單的判定設備的枚舉是否成功。

        3.一個具體的USB實現什么功能,USB主機并不知道。USB主機通過讀取USB的設備描述符來獲取設備的類型、廠商的ID和產品的ID(通常依靠它們來加載對應的驅動程序)、端點情況、版本號等眾多信息。

        4.USB1.1協議定義的標準描述符有設備描述符(DeviceDescriptor)、配置描述符(ConfigurationDescriptor)、接口描述符(InterfaceDescriptor)、端點描述符(EndpointDescriptor)和字符串描述符(StringDescriptor)。

        USB2.0相比于USB1.1新增加的兩個描述符:限定符描述符(QualifierDescriptor)和其他速度配置描述符(OtherSpeedConfigurationDescriptor)。

        5.一個USB設備只有一個設備描述符。

        設備描述符里面決定了該設備有多少種配置,每種配置都有一個配置描述符;

        而在每個配置描述符中又定義了該配置有多少個接口,每個接口都有一個接口描述符;

        在接口描述符里面又定義了該接口有多少個端點,每個端點都有一個端點描述符,端點描述符定了端點的大小、類型等。

        如果有類特殊描述符,它跟在相應的接口描述符之后。

        注意:USB主機獲取描述符時,從上到下逐層獲取。對于字符串描述符,USB主機是單獨獲取的,主機通過發送獲取字符串中描述符的請求以及描述符的索引號、語言ID來獲取對應的字符串描述符。

        6.設備描述符:設備所使用的USB協議版本號、設備類型、端點0的最大包大小、廠商ID(VID)和產品ID(PID)、設備版本號、廠商字符串索引、產品字符串索引、設備序列號索引、可能的配置數等。

        配置描述符:記錄配置所包含的接口數、配置的編號、供電方式、是否支持遠程喚醒、電流需求量等。

        接口描述符:記錄接口的編號、接口的端點數、接口所使用的類、子類、協議等。

        端點描述符:端點號及方向、端點的傳輸類型、最大包長度、查詢時間間隔等。

        字符串描述符:提供一些方便人們閱讀的信息,它不是必需的。

        7.與USB設備進行通信時需要的地址:設備的地址和端點的地址。配置和接口是為了更加方便的管理端點抽象出來的概念。一個設備可以有多個配置,但是一個時刻只能有一個配置有效;每個配置下又可以有多個接口,一個接口下面可以有多個端點。

        8.具有多個接口,并由接口來實現功能的設備叫做USB復合設備。例如一個USB音頻設備,它具有一個音頻控制接口,另外還有一個到多個音頻流或者MIDI流接口。在主機端會把USB復合設備的每個接口當做一個功能設備來看待,常見的USB鼠標,U盤等通常是單一的設備,即一個設備下只有一個配置描述符、一個接口描述符。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 安顺市| 辛集市| 咸阳市| 兰考县| 凤山市| 休宁县| 登封市| 孟津县| 鹤山市| 鱼台县| 淳安县| 清徐县| 白水县| 嵊州市| 托克逊县| 襄城县| 法库县| 郧西县| 广西| 寿阳县| 庆安县| 舒兰市| 贺兰县| 抚松县| 遵义县| 莎车县| 青龙| 沂源县| 恩施市| 武山县| 肃北| 津南区| 疏勒县| 晋州市| 崇明县| 北宁市| 合作市| 旬阳县| 甘德县| 芦山县| 南通市|