從一個電路說起:
Eg:DP+被拉高具體是什么用途,由USB Controler決定,本電路圖中DP+被拉高禁用USB設備.
1.USB
USB:UniversalSerial Bus,中文譯為“通用串行總線”,USB設備最顯著的優點是具有熱插拔功能、傳輸速率快。USB是主從結構的系統,具有主機和設備這兩個角色,即Host和Device。此外,還有兩類特殊的USB設備,分別是USB集線器設備(USB Hub)和USB OTG設備。
USB協議版本有: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在速度的提升上,實現了重大飛躍,最大傳輸速率理論值高達5Gbps。需要注意的是,這些都是理論值,實際開發過程中,不可能達到這些理論值。
在實際開發過程中,不同的傳輸類型有不同的傳輸速率,每一次的數據交互,都是一個相當復雜的過程,有令牌包的解析、數據包的傳輸、握手包的發送等等,這些都是額外的消耗,因此,傳輸速度是不可能達到理論值。USB有四種傳輸類型,分別是控制傳輸、中斷傳輸、塊傳輸、等時傳輸。
2.USB的電氣特性
USB使用差分傳輸模式,有兩條數據線,分別是:
1)USB數據正信號線,USB Data Positive,即USBDP線,簡寫為D+ 2)USB數據負信號線,USB Data Minus,即USBDM線,簡寫為D-
剩下的就是電源線(5V-Vbus)和地線(GND)。對于USB OTG設備,會多出一根ID線。
3.USB主機端硬件控制器類型
分別有:OHCI UHCI EHCI XHCI。USB協議版本:1.0/ 1.1/ 2.0/ 3.0與協議規定標準接口的對應OHCI、UHCI都是USB1.1的接口標準;而EHCI是對應USB2.0的接口標準;最新的xHCI是USB3.0的接口標準。
3.1 OHCI
OHCI:Open Host Controller Interface,是USB1.1的標準,不僅僅是針對USB,還支持其他的接口,比如支持Apple的火線(Firewire,IEEE 1394)接口。與UHCI相比,OHCI的硬件復雜,硬件做的事情更多,所以實現對應的軟件驅動的任務,就相對較簡單。主要用于非x86的USB,如擴展卡、嵌入式開發板的USB主控。
3.2 UHCI
UHCI:Universal Host ControllerInterface,是Intel主導的對USB1.0、1.1的接口標準,與OHCI不兼容。UHCI的軟件驅動的任務重,需要做得比較復雜,但可以使用較便宜、較簡單的硬件的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)設備的支持。
3.4 xHCI
xHCI:eXtensible Host ControllerInterface,是最新USB3.0的接口標準,它在速度、節能、虛擬化等方面都比前面3中有了較大的提高。xHCI支持所有種類速度的USB設備(USB 3.0的 SuperSpeed; USB 2.0 Low-、Full-、andHigh-speed; USB 1.1 Low- and Full-speed)。xHCI的目的是為了替換前面3種類型(UHCI/OHCI/EHCI)。
4.識別設備的速度模式
對于設備(Device)而言,按照速度來劃分,工作在低速模式下的設備稱之為低速設備;工作在全速模式下的設備稱之為全速設備;同理,工作在高速模式下的設備稱之為高速設備。對于主機(Host)而言,只有全速主機和高速主機兩種。
4.1識別低速和全速設備
主機的D+和D-都接有15K下拉電阻;全速USB設備的數據線D+接有1.5K的上拉電阻,一旦接入主機,主機的D+被拉高;低速USB設備的數據線D-接有1.5K的上拉電阻,一旦接入主機,主機的D-會被拉高。因此,主機就可以根據檢測到自己的D+為高還是D-為高,從而判斷接入的設備是一個全速還是低速設備。硬件結構圖如下:
圖:有USB低速設備接入
圖:有USB全速設備接入
4.2識別高速設備
剛開始時,高速設備以全速模式連接到主機,D+有上拉電阻。
主機檢測到全速設備連接上之后,對設備進行復位,USB設備收到復位信號,主動發起高速模式的握手協議進行速度識別。接下來,就取決于主機端了,如果主機的USB控制器支持高速模式傳輸,則主機會與該高速設備交互完成高速模式握手協議,之后,兩者都工作在高速模式下;如果主機不支持高速模式傳輸(如果主機上沒有EHCI類型的控制器,像比較老舊的電腦,并且是XP系統的),那么握手協議就會失敗,設備端也不會切換到高速模式,之后兩者都工作在全速模式下。
如果是一個全速設備接到高速主機,設備端沒法發起高速握手協議,所以,最終設備和主機都會工作在全速模式下。主機具有多種控制器類型,能工作在全速/高速模式下。
全速和高速控制器,都是DP上拉,低速才是DM上拉(配置寄存器的時候,需要注意的地方)。
聲明:本文轉載自網絡,如涉及作品內容、版權和其它問題,請于聯系工作人員,我們將在第一時間和您對接刪除處理