大家好,我是廣元兄。很高興和大家分享信號完整性的相關(guān)知識。希望大家點贊,分享。有什么問題加微交流學(xué)習(xí),微信號【SI_Basic】。
Slogan:一起學(xué)習(xí),共同進步!
這是一篇關(guān)于USB通用串行總線的規(guī)范解答。這份技術(shù)文檔在2000年就已經(jīng)發(fā)布。本文檔:1~5章是一些信息概述;6~11章詳細定義USB的技術(shù)信息。
簡單總結(jié)為下面五個部分:
- USB 背景
- USB 架構(gòu)
- USB 通訊協(xié)議
- USB 電性能
- USB 測試
USB背景
1995年,由英特爾與微軟聯(lián)合其他幾家公司組成USB-IF(USB Implement Forum),共同提出,USB(Universal Serial Bus)通用串行總線協(xié)議概念,并推出USB1.1;
2004年,正式推出USB 2.0協(xié)議;
2007年,正式推出USB 3.0協(xié)議。
第三章里面有個USB應(yīng)用分類:
USB架構(gòu)
USB系統(tǒng)有三個方面:
①USB主機
主機是可以提供USB接口及接口管理能力的硬件、軟件及固件的復(fù)合體。USB系統(tǒng)中僅有一個USB主機。
USB 主機在USB體系中負責(zé)設(shè)備連接/移除的檢測、HOST 和設(shè)備之間控制流和數(shù)據(jù)流的管理、傳輸狀態(tài)的收集、總線電源的供給。
②USB設(shè)備
設(shè)備是包含USB功能設(shè)備和USB Hub,最多支持 127個設(shè)備。要說這127的由來,還得從一張我們常見拓撲結(jié)構(gòu)圖:
HOST Root Hub為起點,最多支持7層(Tier)。需要說明的是,Root Hub 是一個特殊的 USB Hub,它集成在主機控制器里,不占用地址。
復(fù)合設(shè)備(Compound Device)可以占用多個地址。所謂復(fù)合設(shè)備其實就是把多個功能設(shè)備通過內(nèi)置的 USB Hub 組合而成的設(shè)備,比如帶錄音話筒的 USB 攝像頭等。
任何一個USB 系統(tǒng)中最多可以允許5個USB Hub級聯(lián),一個復(fù)合設(shè)備(Compound Device)將同時占據(jù)兩層或更多的層。
一個 USB HOST 最多可以同時支持 128 個地址,地址 0 作為默認地址,只在設(shè)備枚舉期間臨時使用,而不能被分配給任何一個設(shè)備,因此一個 USB HOST 最多可以同時支持 127 個地址,如果一個設(shè)備只占用一個地址,那么可最多支持 127個 USB 設(shè)備(含USB Hub)。
③USB互連
物理上的互連可以理解為USB的傳輸線,在USB 2.0系統(tǒng)中,即為使用屏蔽的雙絞線。
USB主機與設(shè)備的通信方式,包含四個方面:總線拓撲;層間關(guān)系;數(shù)據(jù)流模型;USB 進程。
講物理互連,常見就是A,B接口類型:
還有就是線纜(Cable):
高速/全速線纜
電源線:紅為VBUS、黑為GND,28~20AWG,不要求絞線;
信號線:白為D-、綠為D+,28AWG,雙絞線(每圈間隔60mm-80mm);
排擾線( drain wire ):28AWG鍍錫銅線;
鍍錫銅編織層:有效區(qū)>65%;
屏蔽層必須端接到連接器插頭以完成組裝。屏蔽層和底盤粘合在一起。用戶為 USB 設(shè)備選擇的接地方案,電纜必須符合公認的行業(yè)慣例和監(jiān)管機構(gòu)的安全和 EMI/ESD/RFI 標準。
線纜除了上面的一些要求,還有一些指標:
- 差分線間skew<100ps;
- 滿足高速/全速的阻抗特性要求(差分90 ? ±15%,共模30 ? ±30%);
- 電壓跌落<125mV
- 衰減部分的要求見下表:
針對全速信號線纜,有<26ns的指標,也可以理解為5.2ns/m,這也就是5M線纜長度的經(jīng)驗值。
USB通訊協(xié)議
USB傳輸是向下兼容模式,當有全速 (USB 1.1)或者低速(USB 1.0)設(shè)備連接到高速(USB 2.0)主機時,主機可以通過分離傳輸來支持它們。
USB總線上傳輸數(shù)據(jù)是以包(packet)為基本單位的,必須把不同的包組織成事務(wù)(transaction)才能傳輸數(shù)據(jù)。
所有的傳輸都由主機發(fā)起,任何時刻整個USB體系內(nèi)僅允許一個數(shù)據(jù)包的傳輸。
包(Packet)是USB系統(tǒng)中信息傳輸?shù)幕締卧?,可以理解為USB 總線上數(shù)據(jù)傳輸?shù)淖钚挝?,組成部分為:
不同的包有不同的數(shù)據(jù)格式,但都以 8 位的 PID 開始。PID 指定了數(shù)據(jù)包的類型(共 16種)。
令牌包:指定數(shù)據(jù)包去向或者來源的設(shè)備地址和端點(Endpoint),從而保證了只有一個設(shè)備作出響應(yīng)。令牌包即指 PID 為 IN/OUT/SETUP的包。
握手包:表示傳輸?shù)某晒εc否。
USB 采用“數(shù)據(jù)包-令牌包-握手包”的傳輸機制。
端點(Endpoint):USB 設(shè)備中的可以進行數(shù)據(jù)收發(fā)的最小單元,支持單向或者雙向的數(shù)據(jù)傳輸。設(shè)備支持端點的數(shù)量是有限制的,除默認端點外低速設(shè)備最多支持 2 組端點(2 個輸入,2 個輸出),高速和全速設(shè)備最多支持 15 組端點。
管道(Pipe):主機和設(shè)備端點之間數(shù)據(jù)傳輸?shù)哪P?,USB 設(shè)備通過管道和HOST 通信,共有兩種類型的管道:流和信息管道。
任何USB設(shè)備一旦上電就存在一個信息管道,即默認的控制管道,USB 主機通過該管道來獲取設(shè)備的描述、配置、狀態(tài),并對設(shè)備進行配置。這是一個枚舉的過程,USB 設(shè)備的即插即用特性即依賴于此。
設(shè)備連接->設(shè)備上電->主機檢測到設(shè)備,發(fā)出復(fù)位(主機通過檢測設(shè)備在總線的上拉電阻檢測到有新的設(shè)備連接)->設(shè)備默認狀態(tài)(設(shè)備接收到復(fù)位信號后,就暫時使用默認地址(00H)來響應(yīng)主機的命令)->地址分配(分配一個空閑的地址,以后設(shè)備就只對該地址進行響應(yīng))->讀取USB設(shè)備描述符(確認USB設(shè)備的屬性)->設(shè)備配置。
這里需要注意的是,如果使用總線供電,設(shè)備掛起(空閑>3ms)時,USB設(shè)備保留了包括其地址和配置信息在內(nèi)的所有內(nèi)部狀態(tài),設(shè)備的消耗電流不超過500uA。
在默認控制管道上接受并處理以下三種類型的請求:
- 標準請求:11 個。設(shè)備描述、設(shè)置地址、配置描述等。所有USB 設(shè)備均應(yīng)支持這些請求。HOST 通過標準請求來識別和配置設(shè)備。
- 類(class)請求:若干個子類,如Hub 類、大容量存儲器類等。不同的類又定義了若干類請求,該類設(shè)備應(yīng)該支持這些類請求。設(shè)備所屬類在設(shè)備描述符中可以得到。
- 廠商請求:這部分并不是 USB 規(guī)范定義的,而是設(shè)備生產(chǎn)商為了實現(xiàn)一定的功能而自己定義的請求。
前面講了管道和端點,還有接口,這些相互之間是有關(guān)系的,見下圖:
- 一個 USB 設(shè)備可以包括若干個端點,不同的端點以端點編號和方向區(qū)分。不同端點可以支持不同的傳輸類型、訪問間隔以及最大數(shù)據(jù)包大小。
- 用在一起來對設(shè)備進行控制的若干管道稱為設(shè)備的接口。
- 應(yīng)用軟件通過和設(shè)備之間的數(shù)據(jù)交換來完成設(shè)備的控制和數(shù)據(jù)傳輸。通常需要多個管道來完成數(shù)據(jù)交換,因為同一管道只支持一種類型的數(shù)據(jù)傳輸。
和其他總線通過內(nèi)存或I/O訪問操作其功能不同,USB 功能的客戶端軟件可以使用 USB 軟件編程接口來操作其功能,
USB還有個數(shù)據(jù)流模式,在 HSOT端,應(yīng)用軟件(Client SW)不能直接訪問 USB 總線,而必須通過USB系統(tǒng)軟件和USB主機控制器來訪問 USB 總線,在 USB總線上和USB 設(shè)備進行通訊。
從邏輯上可以分為功能層、設(shè)備層和USB總線接口層三個層次:
-
功能層完成功能級的描述、定義和行為;
-
設(shè)備級則完成從功能級到傳輸級的轉(zhuǎn)換,把一次功能級的行為轉(zhuǎn)換為一次一次的基本傳輸;
-
USB 總線接口層則處理總線上的Bit流,完成數(shù)據(jù)傳輸?shù)奈锢韺訉崿F(xiàn)和總線管理。
下圖黑色箭頭代表真實的數(shù)據(jù)流,灰色箭頭代表邏輯上的通訊。
除了上面的一些,還有傳輸類型的分類:
控制傳輸
主要用于在設(shè)備連接時對設(shè)備進行枚舉以及其他因設(shè)備而異的特定操作。
控制傳輸通過控制管道在應(yīng)用軟件和 Device 的控制端點之間進行,控制傳輸過程中傳輸?shù)臄?shù)據(jù)是有格式定義的,USB 設(shè)備或主機可根據(jù)格式定義解析獲得的數(shù)據(jù)含義,其他傳輸類型都沒有格式定義。
中斷傳輸
用于對延遲要求嚴格、小量數(shù)據(jù)的可靠傳輸,如鍵盤、游戲手柄等。
中斷傳輸是一種輪詢的傳輸方式,是一種單向的傳輸。
中斷傳輸?shù)难舆t有保證,但并非實時傳輸,它是一種延遲有限的可靠傳輸,支持錯誤重傳。
批量傳輸
用于對延遲要求寬松,游戲手柄等大量數(shù)據(jù)的可靠傳輸,如U盤等。
批量傳輸是一種可靠的單向傳輸,但延遲沒有保證,它盡量利用可以利用的帶寬來完成傳輸,適合數(shù)據(jù)量比較大的傳輸。
同步傳輸
用于對可靠性要求不高的實時數(shù)據(jù)傳輸,如攝像頭、USB 音響等。
同步傳輸是一種實時的、不可靠的傳輸,不支持錯誤重發(fā)機制。只有高速和全速端點支持同步傳輸。
分離傳輸
在主機控制器和 USB Hub 之間還有另外一種傳輸——分離傳輸(Split Transaction),它僅在主機控制器和 Hub之間執(zhí)行,通過分離傳輸,可以允許全速/低速設(shè)備連接到高速主機。分離傳輸對于USB 設(shè)備來說是透明的、不可見的。
說到USB Hub,它提供了一種低成本、低復(fù)雜度的USB 接口擴展方法。Hub的上行PORT 面向 HOST,下行 PORT 面向設(shè)備(Hub 或功能設(shè)備)。在下行 PORT 上,Hub 提供了設(shè)備連接檢測和設(shè)備移除檢測的能力,并給各下行PORT供電。
Hub可以單獨使能各下行PORT,不同PORT 可以工作不同的速度等級(高速/全速/低速)。
USB Hub由Hub重發(fā)器(Hub Repeater)、轉(zhuǎn)發(fā)器(Transaction Translator)以及Hub 控制器(Hub Controller)三部分組成。
-
Hub重發(fā)器是上行PORT 和下行PORT之間的一個協(xié)議控制的開關(guān),它負責(zé)高速數(shù)據(jù)包的重生與分發(fā);
-
Hub控制器和 HOST的通信,HOST通過 Hub 類請求和 Hub 控制器通訊,獲得關(guān)于 Hub 本身和下行 PORT 的 Hub 描述符,進行Hub和下行PORT 的監(jiān)控和管理。
-
轉(zhuǎn)發(fā)器提供了從高速和全速/低速通訊的轉(zhuǎn)換能力,通過 Hub 可以在高速 HOST 和全速/低速設(shè)備之間進行匹配。
USB 電性能
速率分類:低速(low-speed)1.5Mb/s,全速(full-speed)12Mb/s,高速(high-speed) 480Mb/s。
VBUS支持的+5V電源,為了提供有保證的輸入電壓電平和適當?shù)慕K端阻抗,偏置終端用于電纜的每一端。端接也允許檢測每個端口的連接和分離并區(qū)分高速/全速和低速設(shè)備。
識別過程:
全速/低速設(shè)備識別很簡單,USB采用在D+或D-線上增加上拉電阻的方法來識別低速和全速設(shè)備。當USB主機探測到D+/D-線的電壓已經(jīng)接近高電平,而其它的線保持接地時,它就知道全速/低速設(shè)備已經(jīng)連了。
高速設(shè)備識別比較復(fù)雜,USB一開始將其當作全速設(shè)備,設(shè)備復(fù)位,內(nèi)部電流源向 D-持續(xù)灌 17.78mA 大小的電流,這時D+端的 1.5K上拉電阻還沒撤銷,兩電阻并聯(lián)約形成45Ω的阻抗,Hub端會有17.78*45≈800mV電壓,這便是Chirp K信號。
設(shè)備檢測到大約6個Chirp K信號,會做出一系列三個動作:①斷開 1.5K 的上拉電阻;②連接 D+/D-上的高速終端電阻(high-speed termination),其實就是全速/ 低速差分驅(qū)動器;③進入高速狀態(tài)。
其實在斷開1.5K上拉電阻的時候,Chirp 信號幅度降到原來的一半400mv,因為設(shè)備端掛載新的終端電阻后,并聯(lián)原來的終端電阻,結(jié)果為 22.5 歐姆,17.78*22.5 ≈ 400mV。
這里需要注意的是,高速設(shè)備操作的信號幅值就是 400mv,而不是全速/低速的 3.3V。
一般來說,F(xiàn)S &LS輸出的低電平電壓0~0.3V;輸出高電平電壓2.8V~3.6V;HS輸出的差分低電平電壓-10~+10mV;輸出差分高電平電壓400mV±10%。
USB數(shù)據(jù)傳輸是用高速電流驅(qū)動器,一種來自正電源的電流源切換到 D+ 或 D 線以分別發(fā)出 J或K信號。有資料會給出,J的標稱差分高速電壓 (D+/D-) 為 400 mV,K為-400 mV。
低速下:D+為“0”,D-為“1”是為“J”狀態(tài),“K”狀態(tài)相反;全速下:D+為“1”,D-為“0”是為“J”狀態(tài),“K”狀態(tài)相反;高速同全速。當然還有SE0狀態(tài)和IDLE狀態(tài),這里不過多展開。
一般來說,Hub下行端口,必須支持高速、全速和低速;Hub上行端口,必須支持高速、全速,不支持低速;所以上行端口的D-線不允許上拉1.5K。
當然,高速/全速/低速驅(qū)動器的特性也是不同的。
低速驅(qū)動器:無阻抗要求,連線與device組合電容(200pF<D+/D-<450pF),Cable傳播延遲小于18nS。
全速驅(qū)動器:
屏蔽的雙絞線,差分阻抗90ohm±15%,共模阻抗30±30%,單線最大延遲26ns;
不支持High-speed的,每條線驅(qū)動器的阻抗要求28~44ohm;
支持High-speed的,每條線驅(qū)動器的阻抗要求40.5~49.5ohm;
高速驅(qū)動器和全速驅(qū)動器大體相同:
輸出驅(qū)動器單端阻抗45?±10%,差分阻抗90?±10%;
下行端口D+或D-下拉15KΩ ±5%電阻到GND;
PCB板內(nèi)走線控制差分阻抗90ohm,延遲可達4ns(長度約20inch以上)。
這個值和實際的設(shè)計要求還是有很大差別的。設(shè)計規(guī)則部分,USB2.0走線長度,直接接終端設(shè)備的拓撲情況,最大長度為304.8mm,也就是12inches經(jīng)驗值,這個標準在Type-C也是一樣的。
后期在USB4的規(guī)范中,會給出相關(guān)的損耗標準,以此來管控相關(guān)風(fēng)險。
這里面需要注意的是,USB的時鐘與差分數(shù)據(jù)一起傳輸、編碼。時鐘編碼方案是帶有位填充的 NRZ-I,以確保足夠的轉(zhuǎn)換。每個數(shù)據(jù)包之前都有一個 SYNC 字段,以允許接收器同步它們的恢復(fù)時鐘。
時鐘部分,USB時鐘為異步,規(guī)范沒有給出具體的時鐘頻率值,只是給出500 ppm指標,這個指標和很多串行信號一樣。還有一個DLL技術(shù),這個和PLL差不多。網(wǎng)上資料給出的是48MHz。
編碼部分:
NRZ-I(No Return Zero-Inverse) 非歸零反相編碼
在傳輸中,同步頭SYNC為00 01H,15個翻轉(zhuǎn)信號。但是當傳輸連續(xù)的邏輯1位時,NRZ-I編碼后,將保持上一次翻轉(zhuǎn)后的狀態(tài)。這使得接收端無法從中得到同步信號。為此,USB協(xié)議規(guī)定:如果要發(fā)送的數(shù)據(jù)中出現(xiàn)有連續(xù)的6個1,則在進行NRZI編碼前,在這6個連續(xù)的1后面會插入1個0,然后再進行NRZI編碼。接收端收到連續(xù)6個1,將自動去掉后面的1個0。從而恢復(fù)原數(shù)據(jù)。包數(shù)據(jù)傳送多個1的處理。這樣就使得USB通信的接收同步更加可靠。
USB測試
高速模式下,信號要滿足相關(guān)的時序和幅值要求。
下圖為4個測試點。TP1 和 TP4 是其中的點,收發(fā)器 IC 引腳分別焊接到集線器和設(shè)備電路板上。TP2在配對引腳A連接器的TP3位于B連接器的配對引腳上(或者,在有電纜的情況下,其中電纜連接到電路板)。
眼圖模式有6種模板,對應(yīng)不同的標準:
圖片來源于網(wǎng)絡(luò),侵刪
IR Drop電壓跌落測試
電壓降標準:
• 大功率集線器端口提供的電壓為 4.75 V 至 5.25 V。
• 低功率集線器端口提供的電壓為 4.4 V 至 5.25 V。
• 上游和下游之間所有電纜在GND上的最大電壓降為 125 mV 。
• 所有集線器和功能必須能夠以低至 4.40 V 的電壓提供配置信息。
• 需要一個以上單位負載的功能必須在最低輸入電壓為 4.75 V 的情況下運行。
記得之前設(shè)計的難點,就是在子卡上實現(xiàn)USB3.0功能,而連接就是FPC線纜,這個壓降要求的實現(xiàn)比較難。
但這里給出一個新的思考點:就是上下游電纜GND上的最大電壓降為 125 mV。對這點管控,還是蠻感興趣的。
在做Drop 測試,還有一個知識點需要注意:
USB 支持“總線供電”和“自供電”兩種供電模式。在總線供電模式下,USB2.0設(shè)備最多可以獲得500mA的電流;后期USB3.0給出的是1A電流。
還有一個是Droop測試,測試下行接口插拔瞬間的供電能力,通常外設(shè)插拔瞬間可能會有很大的沖擊電流,可能理解為交流的測試。Drop測試可以理解為直流測試。