從一個電路說起:

Eg:DP+被拉高具體是什么用途,由USB Controler決定,本電路圖中DP+被拉高禁用USB設(shè)備.
1.USB
USB:UniversalSerial Bus,中文譯為“通用串行總線”,USB設(shè)備最顯著的優(yōu)點是具有熱插拔功能、傳輸速率快。USB是主從結(jié)構(gòu)的系統(tǒng),具有主機和設(shè)備這兩個角色,即Host和Device。此外,還有兩類特殊的USB設(shè)備,分別是USB集線器設(shè)備(USB Hub)和USB OTG設(shè)備。
USB協(xié)議版本有:USB1.0、USB1.、USB2.0、USB3.0。
USB1.0和USB1.1只有低速模式(Low-SpeedMode)和全速模式(Full-Speed Mode),理論上最大傳輸速率分別為1.5Mbps和12Mbps。
USB2.0引入了傳輸速度更快的高速模式(High-Speed Mode),理論上最大傳輸速率為480Mbps。
USB3.0在速度的提升上,實現(xiàn)了重大飛躍,最大傳輸速率理論值高達5Gbps。需要注意的是,這些都是理論值,實際開發(fā)過程中,不可能達到這些理論值。
在實際開發(fā)過程中,不同的傳輸類型有不同的傳輸速率,每一次的數(shù)據(jù)交互,都是一個相當復(fù)雜的過程,有令牌包的解析、數(shù)據(jù)包的傳輸、握手包的發(fā)送等等,這些都是額外的消耗,因此,傳輸速度是不可能達到理論值。USB有四種傳輸類型,分別是控制傳輸、中斷傳輸、塊傳輸、等時傳輸。
2.USB的電氣特性
USB使用差分傳輸模式,有兩條數(shù)據(jù)線,分別是:
1)USB數(shù)據(jù)正信號線,USB Data Positive,即USBDP線,簡寫為D+ 2)USB數(shù)據(jù)負信號線,USB Data Minus,即USBDM線,簡寫為D-
剩下的就是電源線(5V-Vbus)和地線(GND)。對于USB OTG設(shè)備,會多出一根ID線。
3.USB主機端硬件控制器類型
分別有:OHCI UHCI EHCI XHCI。USB協(xié)議版本:1.0/ 1.1/ 2.0/ 3.0與協(xié)議規(guī)定標準接口的對應(yīng)OHCI、UHCI都是USB1.1的接口標準;而EHCI是對應(yīng)USB2.0的接口標準;最新的xHCI是USB3.0的接口標準。
3.1 OHCI
OHCI:Open Host Controller Interface,是USB1.1的標準,不僅僅是針對USB,還支持其他的接口,比如支持Apple的火線(Firewire,IEEE 1394)接口。與UHCI相比,OHCI的硬件復(fù)雜,硬件做的事情更多,所以實現(xiàn)對應(yīng)的軟件驅(qū)動的任務(wù),就相對較簡單。主要用于非x86的USB,如擴展卡、嵌入式開發(fā)板的USB主控。
3.2 UHCI
UHCI:Universal Host ControllerInterface,是Intel主導的對USB1.0、1.1的接口標準,與OHCI不兼容。UHCI的軟件驅(qū)動的任務(wù)重,需要做得比較復(fù)雜,但可以使用較便宜、較簡單的硬件的USB控制器。Intel和VIA使用UHCI,而其余的硬件提供商使用OHCI。
3.3 EHCI
EHCI:Enhanced Host Controller Interface,是Intel主導的USB2.0的接口標準。EHCI僅提供USB2.0的高速功能,而依靠UHCI或OHCI來提供對全速(full-speed)或低速(low-speed)設(shè)備的支持。
3.4 xHCI
xHCI:eXtensible Host ControllerInterface,是最新USB3.0的接口標準,它在速度、節(jié)能、虛擬化等方面都比前面3中有了較大的提高。xHCI支持所有種類速度的USB設(shè)備(USB 3.0的 SuperSpeed; USB 2.0 Low-、Full-、andHigh-speed; USB 1.1 Low- and Full-speed)。xHCI的目的是為了替換前面3種類型(UHCI/OHCI/EHCI)。
4.識別設(shè)備的速度模式
對于設(shè)備(Device)而言,按照速度來劃分,工作在低速模式下的設(shè)備稱之為低速設(shè)備;工作在全速模式下的設(shè)備稱之為全速設(shè)備;同理,工作在高速模式下的設(shè)備稱之為高速設(shè)備。對于主機(Host)而言,只有全速主機和高速主機兩種。
4.1識別低速和全速設(shè)備
主機的D+和D-都接有15K下拉電阻;全速USB設(shè)備的數(shù)據(jù)線D+接有1.5K的上拉電阻,一旦接入主機,主機的D+被拉高;低速USB設(shè)備的數(shù)據(jù)線D-接有1.5K的上拉電阻,一旦接入主機,主機的D-會被拉高。因此,主機就可以根據(jù)檢測到自己的D+為高還是D-為高,從而判斷接入的設(shè)備是一個全速還是低速設(shè)備。硬件結(jié)構(gòu)圖如下:

圖:有USB低速設(shè)備接入

圖:有USB全速設(shè)備接入
4.2識別高速設(shè)備
剛開始時,高速設(shè)備以全速模式連接到主機,D+有上拉電阻。
主機檢測到全速設(shè)備連接上之后,對設(shè)備進行復(fù)位,USB設(shè)備收到復(fù)位信號,主動發(fā)起高速模式的握手協(xié)議進行速度識別。接下來,就取決于主機端了,如果主機的USB控制器支持高速模式傳輸,則主機會與該高速設(shè)備交互完成高速模式握手協(xié)議,之后,兩者都工作在高速模式下;如果主機不支持高速模式傳輸(如果主機上沒有EHCI類型的控制器,像比較老舊的電腦,并且是XP系統(tǒng)的),那么握手協(xié)議就會失敗,設(shè)備端也不會切換到高速模式,之后兩者都工作在全速模式下。
如果是一個全速設(shè)備接到高速主機,設(shè)備端沒法發(fā)起高速握手協(xié)議,所以,最終設(shè)備和主機都會工作在全速模式下。主機具有多種控制器類型,能工作在全速/高速模式下。
全速和高速控制器,都是DP上拉,低速才是DM上拉(配置寄存器的時候,需要注意的地方)。
聲明:本文轉(zhuǎn)載自網(wǎng)絡(luò),如涉及作品內(nèi)容、版權(quán)和其它問題,請于聯(lián)系工作人員,我們將在第一時間和您對接刪除處理






