1、寫(xiě)在前面
USB:Universal Serial Bus,通用串行總線。
USB最初由英特爾與微軟倡導(dǎo)發(fā)起,最大的特點(diǎn)是盡可能的實(shí)現(xiàn)熱插拔和即插即用。
USB總線是差分信號(hào)嗎?什么是USB 2.0、USB 3.0?什么是低速、全速、高速?什么是Type-A、Type-B、Type-C?
針對(duì)這些疑問(wèn),本文講述USB相關(guān)的一些基礎(chǔ)知識(shí)。
2、USB發(fā)展歷程
較早版本
USB 0.7:1994年11月發(fā)布。
USB 0.8:1994年12月發(fā)布。
USB 0.9:1995年4月發(fā)布。
USB 0.99:1995年8月發(fā)布。
USB 1.0 RC:1995年11月發(fā)布。
USB 1.0:1996年1月發(fā)布
數(shù)據(jù)傳輸速率為1.5Mbit/s(Low-Speed)。無(wú)預(yù)測(cè)及通過(guò)檢測(cè)功能。僅極少數(shù)出現(xiàn)在市場(chǎng)上。
USB 1.1:1998年9月發(fā)布
修正1.0版已發(fā)現(xiàn)的問(wèn)題,大部分是關(guān)于USB Hubs。最早被采用的修訂版。數(shù)據(jù)傳輸速率為12Mbit/s(Full-Speed)。
USB 2.0:2000年4月發(fā)布
增加更高的數(shù)據(jù)傳輸速率480Mbit/s(現(xiàn)在稱作Hi-Speed),但受限于BOT傳輸協(xié)議和NRZI編碼方式,實(shí)際最高傳輸速度只有35MByte/s左右。
USB OTG(On-The-Go)是USB2.0規(guī)格的補(bǔ)充標(biāo)準(zhǔn)。
USB 3.0:2008年11月發(fā)布
速度由480Mbps大幅提升到5Gbps,USB 3.0插座通常是藍(lán)色的,并向下兼容USB 2.0。
USB 3.1:2013年7月31日發(fā)布
傳輸速度提升為10Gb/s,比USB3.0的5Gb/s快上一倍,并向下兼容USB 2.0/1.0,電力供應(yīng)可高達(dá)100W。
USB 3.2
在現(xiàn)有的USB Type-C數(shù)據(jù)在線實(shí)現(xiàn)雙通道,使用USB 3.2主機(jī)連接USB 3.2存儲(chǔ)設(shè)備,可以實(shí)現(xiàn)兩條通道10Gb/s的傳輸速度,理論上也就是相當(dāng)接近于20Gb/s。
USB 4:2019年9月3日發(fā)布
采用Thunderbolt 3協(xié)議規(guī)格,使Thunderbolt 3設(shè)備將能兼容于USB 4,現(xiàn)有3.2及2.0也向下兼容。速度方面加倍來(lái)到兩條通道總共40Gb/s的傳輸速度。
3、USB版本
USB-IF當(dāng)前正式的主版本號(hào)只有USB 2.0和USB 3.2兩個(gè)。(USB-IF:USB Implementers Forum,USB標(biāo)準(zhǔn)化組織)
USB標(biāo)準(zhǔn)化組織主版本只有兩個(gè),但現(xiàn)在USB標(biāo)準(zhǔn)中,按照速度等級(jí)和連接方式分為以下幾種版本:USB 1.0、 1.1、 2.0、 3.0、 3.1、 3.2。
下面給一張圖:
準(zhǔn)確的說(shuō),主版本號(hào)除了USB 2.0和USB 3.2,還應(yīng)該有一個(gè)USB4。
上面那張圖信息量有點(diǎn)大,你會(huì)發(fā)現(xiàn)我們學(xué)習(xí)、開(kāi)發(fā)板上使用的基本都是USB 2.0版本(低速、全速、高速),也是眾多嵌入式產(chǎn)品中常用的一種。
4、USB接口
現(xiàn)在流行于手機(jī)中的一種接口【Type-C】,相信絕大部分人都知道。
Type-C屬于USB中一種較新的接口,在這之前其實(shí)還有Type-A和Type-B(可能很多人不知道)。
下面給一張圖:
你會(huì)發(fā)現(xiàn)接口的觸點(diǎn)有4個(gè)的,也有5個(gè)的。其中多的那個(gè)引腳為USB_ID,主要用于OTG(On-The-Go)主設(shè)備和從設(shè)備。
OTG設(shè)備使用插頭中的ID引腳來(lái)區(qū)分A/B Device,ID接地被稱作為A-Device,充當(dāng)USB Host,A-Device始終為總線并提供電力。
ID懸空被稱作為B-Device,充當(dāng)USB Device。設(shè)備的USB Host/USB Device角色可以通過(guò)HNP(主機(jī)交換協(xié)議)切換。
5、USB設(shè)備識(shí)別
USB信號(hào)使用分別標(biāo)記為D+和D- 的雙絞線傳輸,它們各自使用半雙工的差分信號(hào)并協(xié)同工作,以抵消長(zhǎng)導(dǎo)線的電磁干擾。
因?yàn)閁SB設(shè)備類型有很多,同時(shí)又做了兼容,因此就需要對(duì)不同設(shè)備進(jìn)行識(shí)別。
這里講述一下低速、全速和高速設(shè)備的識(shí)別原理(官方有手冊(cè))。
1.低速和全速設(shè)備識(shí)別
低速(Low Speed)和全速(Full Speed)設(shè)備區(qū)分方法比較簡(jiǎn)單:在設(shè)備端有一個(gè)1.5k的上拉電阻,當(dāng)設(shè)備插入hub或上電(固定線纜的USB設(shè)備)時(shí),有上拉電阻的那根數(shù)據(jù)線就會(huì)被拉高,hub根據(jù)D+/D-上的電平判斷所掛載的是全速設(shè)備還是低速設(shè)備。
低速設(shè)備1.5K上拉電阻位于D-
全速設(shè)備1.5K上拉電阻位于D+
如下圖:
2.高速設(shè)備識(shí)別
(上面)USB低速和全速的識(shí)別比較簡(jiǎn)單,但只有一對(duì)D+和D-數(shù)據(jù)線,高速設(shè)備就不能再像上面那樣僅依靠數(shù)據(jù)線上拉電阻來(lái)識(shí)別。
高速設(shè)備初始是以一個(gè)全速設(shè)備的身份出現(xiàn),和全速設(shè)備一樣,D+線上有一個(gè)1.5k的上拉電阻。USB2.0的hub把它當(dāng)作一個(gè)全速設(shè)備,之后,hub和設(shè)備通過(guò)一系列握手信號(hào)確認(rèn)雙方的身份。
如上圖,hub檢測(cè)到有設(shè)備插入/上電時(shí),向主機(jī)通報(bào),主機(jī)發(fā)送Set_Port_Feature請(qǐng)求讓hub復(fù)位新插入的設(shè)備。設(shè)備復(fù)位操作是hub通過(guò)驅(qū)動(dòng)數(shù)據(jù)線到復(fù)位狀態(tài)SE0(Single-ended 0,即D+和D-全為低電平),并持續(xù)至少10ms。
具體識(shí)別過(guò)程相對(duì)復(fù)雜,具體可見(jiàn)下面描述:
6、USB更多
更多關(guān)于USB協(xié)議和標(biāo)準(zhǔn),可進(jìn)入官方網(wǎng)站了解。文檔:https://www.usb.org/documents