USB學習(一)
USB規範從1996年開始,正式發佈USB1.0,從USB1.0的低速模式(Low Speed Mode),到USB 1.1的全速模式(Full Speed),再到USB 2.0的高速模式(High Speed),至今還有USB 3.0\3.1\3.2等超告訴模式。
學嵌入式爲什麼要學習USB?在嵌入式的領域中,正在往物聯網的方向走去,從智能電氣、家用電子、汽車電子等產品中,無一沒有USB的身影,USB憑藉高速的傳輸速度,爲數據傳輸帶來了超高的實時性。由於應用場景和成本的關係,對於USB3.0\3.1\3.2等接口基本不會被使用到,但也不能保證往後的發展可以讓成本變得更低,或超大的數據量的原因而被利用起來,學習起來當以USB2.0的規範進行即可。
USB的電氣特性
USB接口介紹
典型的USB Mini接口:
引腳編號 | 引腳名稱 | 功能描述 |
---|---|---|
1 | Vbus | +5V |
2 | D+ | Data+ |
3 | D- | Data- |
4 | ID | OTG/HOST/Slave… |
5 | GND | GND/0V |
很神奇,在USB連接器中,其實經典的是沒有ID這一項的。雖然說,這是USB Mini,還有USB micor,USB linght,USB type-c等等,多種多樣,但是USB協議秉持着向下兼容,所以,以上的這些,都一定會有的,而且一定是公共部分。
實際在電腦上的接線,應該是:
Vbus------------------------Vbus
D+ -------------------------D+
D- --------------------------D-
GND-------------------------GND
USB的信號走線以及可靠性
繪製過PCB的朋友,如果在繪製USB的走線的時候,肯定都知道USB的走線是需要走差分線的,只因爲看到USB的標識上有D+\D-,所以就是差分線。我個人覺得這個理解還太表面,到底爲啥D+/D-要走差分線呢?USB之所以好用,有一個原因就是因爲USB的數據很可靠,那支撐USB數據可靠的背後,是什麼呢?
-
差分線就是其中之一,USB採用的是差分信號進行傳輸,差分信號可以有效地抑制在低電平時的干擾。當信號在較低電平傳輸時,其實是很容易受到干擾的,而差分線採用大小相等、極性相反的信號,所以能使信號的電平加倍,減少干擾信號對USB信號的影響。更重要的是,如果兩根信號線都存在噪聲干擾,差分信號的相減可以抵消噪聲,因此差分信號對信號干擾有着天然的免疫力。
-
第二個原因,細心的朋友應該會發現,USB接口的Vbus和GND,會比別的引腳更長,這是因爲在USB接入的時候,首先接入的是電源,這樣可以避免在動態插入時電流對數據線的影響。
-
第三,驅動器的輸出支持三態,而信號線在連接時默認爲高阻態。
USB的電流和電壓
USB上,Vbus提供的電源是USB充電的基礎,在USB2.0規範裏,Vbus的電壓在4.4V-5.25V,最大承受的電流是500mA。從供電的角度來看,USB設備可以被分爲自供電和總線供電兩種類型。
-
自供電設備:不需要使用USB上的Vbus進行供電,自身有電源進行供電。
-
總線供電:設備的電源來自主機的USB Vbus進行供電。
每個設備,需要在自己的配置描述符中聲明對其Vbus上電流的要求,由USB主機來進行統一管理。雖然是這樣,但是其實每個主機的USB上,都有一個額定的電流,當主機的設備過多的時候,無法爲設備提供足夠的電流時,設備將無法正常運行。因此在實際中,會有一項USB認證,這個認證就是來看USB主機是否給出了明確的信息,關於USB認證可以後面描述。
電壓下降預算
因爲USB的設備供電類型和總線拓撲結構比較複雜,但要保證USB正常工作,則有了一寫協議定義:
- USB定義的連接線阻抗爲30mΩ,經過它們的壓降爲100mV。
- 由主機或者自供電集線器端口供電的電壓範圍爲:4.75-5.25V。可以支持如USB打印機等高功耗設備供電。
- 由總線供電集線器端口供電的電壓範圍爲4.4V-5.25V
- 總線供電集線器最大允許350mV的電壓降。
- Vbus上的A型插頭和B型插頭之間的最大壓降爲125mV。
- 所有電纜GND上的上行和下行之間的最大電壓降爲125mV。
- 在上行電纜末端的連接器上的電壓低至4.40V時,所有集線器和設備必須能提供配置信息,而低功耗設備在這個電壓時,必須能正常工作。
- USB設備如果汲取超過一個單位負載的電流,則它的最低工作電壓必須爲4.75V。
浪涌電流限制
原則:一個集線器或者設備的插入和拔出行爲,不能影響到總線上其他設備的正常工作。
驅動特性
USB各模式的性能比較:
模式 | 速度 | 驅動方式 | 1.5K上拉 |
---|---|---|---|
低俗 | 1.5Mb/s | 電壓 | D- |
全速 | 12Mb/s | 電壓 | D+ |
高速 | 480Mb/s | 電流 | D+ |
USB信號特性
USB是使用差分信號傳輸的,在傳輸過程中,呈現的狀態:
- 靜止態
- 差分態(0/1)
- 單端態(0/1)
- Chirp J (高速模式下)
- Chirp K(高速模式下)
典型符合信號
描述:複合信號就是由一個或者多個簡單信號加上一個特定得到時序來構成的。
不同模式下產生起始和停止的方式:
模式 | 包開始(SOP) | 包結束(EOP) |
---|---|---|
低速 | D-從高電平變低電平,D+從低電平變高電平 | 持續2bit時間的SE0信號 |
全速 | D-從低電平變低電平,D+從高電平變高電平 | 持續2bit時間的SE0信號 |
高速 | 從SE狀態切換到K/J狀態的過程 | 產生錯誤填充位 |