新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > USB學(xué)習(xí)系列之二——USB設(shè)備的插入檢測機(jī)制

USB學(xué)習(xí)系列之二——USB設(shè)備的插入檢測機(jī)制

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

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

本文引用地址:http://m.butianyuan.cn/article/201612/330046.htm

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

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

3.一個(gè)具體的USB實(shí)現(xiàn)什么功能,USB主機(jī)并不知道。USB主機(jī)通過讀取USB的設(shè)備描述符來獲取設(shè)備的類型、廠商的ID和產(chǎn)品的ID(通常依靠它們來加載對(duì)應(yīng)的驅(qū)動(dòng)程序)、端點(diǎn)情況、版本號(hào)等眾多信息。

4.USB1.1協(xié)議定義的標(biāo)準(zhǔn)描述符有設(shè)備描述符(DeviceDescriptor)、配置描述符(ConfigurationDescriptor)、接口描述符(InterfaceDescriptor)、端點(diǎn)描述符(EndpointDescriptor)和字符串描述符(StringDescriptor)。

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

5.一個(gè)USB設(shè)備只有一個(gè)設(shè)備描述符。

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

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

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

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

注意:USB主機(jī)獲取描述符時(shí),從上到下逐層獲取。對(duì)于字符串描述符,USB主機(jī)是單獨(dú)獲取的,主機(jī)通過發(fā)送獲取字符串中描述符的請(qǐng)求以及描述符的索引號(hào)、語言ID來獲取對(duì)應(yīng)的字符串描述符。

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

配置描述符:記錄配置所包含的接口數(shù)、配置的編號(hào)、供電方式、是否支持遠(yuǎn)程喚醒、電流需求量等。

接口描述符:記錄接口的編號(hào)、接口的端點(diǎn)數(shù)、接口所使用的類、子類、協(xié)議等。

端點(diǎn)描述符:端點(diǎn)號(hào)及方向、端點(diǎn)的傳輸類型、最大包長度、查詢時(shí)間間隔等。

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

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

8.具有多個(gè)接口,并由接口來實(shí)現(xiàn)功能的設(shè)備叫做USB復(fù)合設(shè)備。例如一個(gè)USB音頻設(shè)備,它具有一個(gè)音頻控制接口,另外還有一個(gè)到多個(gè)音頻流或者M(jìn)IDI流接口。在主機(jī)端會(huì)把USB復(fù)合設(shè)備的每個(gè)接口當(dāng)做一個(gè)功能設(shè)備來看待,常見的USB鼠標(biāo),U盤等通常是單一的設(shè)備,即一個(gè)設(shè)備下只有一個(gè)配置描述符、一個(gè)接口描述符。



評(píng)論


技術(shù)專區(qū)

關(guān)閉