通用序列匯流排(USB)設計目的是為了標準化電腦周邊的裝置連結,提供通訊管道與電力輸送,包括鍵盤、滑鼠、印表機、隨身碟、硬碟機、以及可攜式媒體播放器等裝置。USB是現今個人電腦與消費性裝置最常用的連結解決方案。其隨插即用、使用簡單、易於建置等特色,使USB的使用不斷擴展到各種新用途與市場。
1996年所發表第一版USB 1.0的規格,定義了兩種傳輸速度,以支援當時各類型裝置。其中,1.5Mbps(低速)是用來支援如鍵盤與搖桿等低速裝置;12Mbps(全速)則是用來支援如硬碟等裝置。2000年發表了USB 2.0規格,最大傳輸速率達480Mbps(高速),是USB 1.0的40倍。
雖說480Mbps已經能滿足現今市場上大多數裝置的速度需求,但2008年再度推出新版USB 3.0規格,此新版規格的最大傳輸速率為5Gbps(超高速),是USB 2.0的10倍。
究竟哪些應用需要使用到超高速等級的訊號率?若以影像資料與儲存的演進來看,就會發現高速資料傳輸仍無法滿足現今市場的需求。傳送未壓縮的高畫質影片(每秒30格的1080p),需要大約118MBps的速度。另外,根據SD記憶卡(SDXC)的最新3.0版規格,SD卡的容量最高可達2TB,時脈頻率達208MHz,資料最大傳輸率可達104MBps,USB 3.0的速度無疑能滿足這樣的市場需求。
此外,USB 3.0規格的特色還包括電源管理,以降低電力消耗並提高輸出電力,還能維持與USB 2.0的回溯相容性,USB至今一直維持與舊規格之間的回溯相容性原則。
本文後續將探討USB 3.0之規格架構,並詳述USB 3.0架構的各個分層。後面章節將列出每個分層(實體、鏈結、通訊協定等)與USB 2.0規格之間顯著的差異,以及USB 3.0所提供的新電源管理功能。
USB3.0架構
USB 3.0架構包含實體層(Physical Layer)、鏈結層(Link Layer)、及通訊協定層(Protocol Layer)三個層級。
實體層
實體層是連結埠中的物理部分以及連結上行端(Upstream)與下行端(Downstream)的纜線。USB 3.0纜線內有兩對遮蔽雙絞線,用來傳送與接收資料,這些線路能和USB 2.0訊號並存運作。因此,USB 3.0纜線含有9個針腳,其中4個針腳是USB 2.0纜線的一部分。由於USB 3.0纜線支援較高的訊號率,其長度上限為3公尺。
USB 3.0的接頭分A、B型接頭,A型接頭是用來連接主控(Host)的上行端,而B型接頭則是用來連接裝置的下行端。USB 3.0標準A型接頭和USB 2.0接頭外型一樣,只是多了數個針腳用來支援超高速功能。標準B型接頭是針對硬碟與印表機這類較大型固定裝置所規範,而微型A與B接頭則是針對掌上型裝置規範。所有USB 3.0插座都與USB 2.0插頭維持回溯相容性。
USB 3.0主控端的電力輸送,單位負載為150 mA。USB 3.0主控端提供未配置裝置1個單位的電流,已配置的裝置則提供6個單位的電流。
USB 3.0主控端會根據接收器的終端電阻來偵測裝置,而傳送器就是負責執行的元件。USB 3.0採用展頻時脈傳送訊號,能將訊號源擴大到更大的頻譜範圍,而非集中在較小的頻譜範圍內,這種作法有助於降低電磁干擾。USB 3.0實體層支援低頻週期訊號(Low Frequency Periodic Signaling;LFPS),能用來管理訊號啟動,並能在匯流排上進行低功耗管理,在閒置的鏈路上減少電力消耗。
USB 3.0與USB 2.0實體層的差異
功能特色 |
USB 3.0 |
USB 2.0 |
傳輸速率 |
5Gbps |
480MBps |
資料介面 |
雙重單工(Dual Simplex) |
單向雙工(Half Duplex) |
USB纜線的針腳數量 |
9個(VBUS、Ground、D+、 D-、SSRX+、SSRX-、SSTX+、SSTX-、Ground_Drain) |
4個(VBUS、Ground、D+、D-) |
線材長度 |
3公尺 |
5公尺 |
傳輸線中的數據線 |
有屏蔽差動線組
(SDP、雙絞線或雙同軸 twinax) |
無屏蔽雙絞線(UTP) |
匯流排供電量 |
未配置裝置為150mA
已配置裝置為900mA |
未配置裝置為100mA
已配置裝置為500mA |
主控端偵測裝置 |
接收器終端電阻 |
D+或D-線路上的上拉電阻 |
鏈結層
鏈結層負責維持主控端與裝置之間通訊頻道的可靠性與堅固性。鏈路訓練與狀態機器(Link Training and Status State Machine;LTSSM)位於USB 3.0鏈結層的核心,用以定義鏈路的連結和鏈路電源管理的狀態與轉換。LTSSM包含12種狀態:
鏈結層提供以下4種不同鏈路電力以強化電源管理:
- ‧U0 – 正常運作狀態
- ‧U1 – 待機與快速恢復(PLL維持啟動)
- ‧U2 – 待機與緩慢恢復(PLL可能關閉)
- ‧U3 – 休眠模式(Suspend)
U1、U2、U3的喚醒時間比U0長,因此允許傳送器進入更深層的休眠模式。
4 種鏈路初始化與訓練狀態(偵測、輪詢、回復、熱重置)
2 種鏈路測試狀態(迴路與相容性模式)
SS.閒置狀態(當USB 3.0無法運作,鏈路處於故障狀態)
SS.關閉(當超高速匯流排被關閉,僅在USB 2.0模式下運作)
鏈路指令
用來維持鏈路流的控制,以及改變鏈路電力狀態。
通訊協定層
協定層定義了主控端與裝置之間的通訊規則。USB 2.0的交易包含3種封包:記號(token)、資料(data)、以及交握(handshake),並透過主控端送出的憑證封包來啟動。資料封包提供承載資料,透過主控端或裝置傳送出資料封包。交握封包由接收資料的一方送出,以通知資料收悉無誤。
在超高速模式中,為了節省頻寬,憑證封包會嵌入到資料封包內,一併進行OUT交易。在IN交易中,憑證封包被交握封包取代,舉例來說,一個ACK封包向傳送端告知前一個資料封包已送出,並要求傳送下一個資料封包。
透過封包表頭內的路由字串,系統將USB 3.0封包傳送到特定裝置。USB 3.0不會透過輪詢(polling)方式來查詢裝置的備便狀態。若裝置向主控端傳出的IN 交易封包(TP)答覆「NRDY (未準備好)」,主控端就會停止與該裝置通訊,直到裝置送出「ERDY (準備好)」封包,告知已準備好傳送資料。
USB 3.0支援以爆發模式(多個資料封包)傳送資料,無須等候收到收悉訊息,這種協定可有效率地運用匯流排資源,透過匯流排同時傳送與接收封包。傳送器(主控端或裝置)可透過爆發模式接連傳送多個封包,而接收器可在不干擾到資料封包傳輸下,傳送收悉訊息。此外,主控端還能在IN爆發傳送作業的同時,排定多個OUT爆發傳送程序。
為加強USB 2.0的大容量傳輸(bulk transfer)功能,USB 3.0加入「串流」的概念,因此能從一條管線(pipe)中同時接受主控端多項指令,並利用串流ID以亂序模式執行這些指令。
USB 3.0與USB 2.0協定層的差異
功能特色 |
USB 3.0 |
USB 2.0 |
匯流排交易協定 |
主控端藉由路由字串直接將封包傳送到目標裝置。但同步時戳封包(Isochronous time stamp packets)則例外。 |
主控端以廣播方式傳送封包至所有裝置。
無路由字串。 |
非同步傳輸資料流 |
輪詢資料流 |
IN/OUT同時雙向傳輸 |
IN或OUT單向傳輸 |
資料傳輸類型 |
USB 2.0類型配合SuperSpeed 限制條件。大容量(Bulk)傳輸模式支援串流傳輸 |
4種類型:控制、中斷、大量、同步 |
最大封包容量 |
控制 |
512 |
64 |
中斷 |
1024 |
1024 |
大量 |
1024 |
512 |
支援串流功能 |
不支援 |
同步 |
1024 |
1024 |
電源管理
所有分層皆建置電源管理功能
- ‧實體層支援遠端喚醒訊號傳送。
- ‧鏈路層支援進入與離開低功耗鏈路狀態,過程中透過LTSSM以及鏈路指令提供協助。
- ‧協定層支援端點忙碌/備便通知。
- ‧裝置支援功能暫停機制。若某個裝置具備多種功能,可單獨要求個別功能進入休眠狀態。另外亦可要求整部裝置進入休眠狀態。
- ‧集線器(Hub)會將下游鏈路的耗電狀態轉送到主控端。
- ‧主控端支援ping/ping回應訊息傳送機制。
系統層級的電力效率:
- ‧非同步端點忙碌/備便通知。當主控端發現某個裝置忙碌時,主控端就不會傳送任何資料,一直等到裝置明確通知已準備好通訊為止。當裝置有空時,就會傳送「ERDY」訊息來通知主控端。這種方式可節省耗電,因為主控端無須不停地詢問裝置是否有空。
- ‧根據路由字串來傳送封包,省去USB 2.0中的廣播程序。
- ‧裝置在閒置時,亦可啟動低功耗鏈路狀態。
圖二 : EZ-USB FX3高速USB 3.0周邊控制器 |
|
EZ-USB FX3是新一代超高速USB 3.0周邊控制器,能讓開發者輕易地將USB 3.0裝置功能加到任何系統中。EZ-USB FX3內含標準USB 3.0與USB 2.0實體層(PHY)元件,及一個32位元ARM926EJ-S微處理器,以提供資料處理功能,用來建構各種客製化應用。
EZ-USB FX3擁有一個可設定的通用可編程介面(GPIF II),能連結任何處理器、ASIC、或FPGA等元件。GPIF II支援8、16、以及32位元的平行資料匯流排,最高支援達100MHz的介面時脈頻率。
EZ-USB FX3內含512 KB的晶片內建SRAM記憶體,可用來儲存程式碼與資料。此外,還提供多種介面,可連結包括UART、SPI、I2C、以及I2S等序列週邊。上圖為EZ-USB FX3的內部模塊圖。
運用FX3打造UVC HD網路攝影機
在這部UVC HD攝影機的設計中,影像感測器連結到FX3的GPIF II。GPIF II讀取從影像感測器傳來的未壓縮HD串流資料,再透過USB把資料傳遞到PC。FX3晶片中的I2C硬體模塊用來初始化/設定這個UVC攝影機內的影像感測器。FX3裝置會被設置成PC的一部UVC裝置。我們不需要驅動程式就能使用這款裝置,因為UVC屬於標準類別。
與影像感測器介面有關的訊號包括:
- ‧訊框有效(Frame Valid,FV)– 表示訊框的起始與終止。
- ‧線路有效(Line Valid,LV) – 表示線路的起始與終止。
- ‧像素時脈(Pixel clock,PCLK)– 同步介面使用的時脈。
- ‧資料 – 以8至32位元數據線路傳送影像資料。
下圖為FX3與GPIF II設計者工具內部影像感測器之間的介面。透過極具彈性的GPIF II設計者工具,使用者可設定FX3暫存器和任何類型的影像感測器建立連結介面。
圖四 : FX3與GPIF II設計者工具內部影像感測器介面 |
|
在這部UVC HD攝影機的設計中,若需串流傳送一部未壓縮的半HD(每秒30格,720p,8位元色彩深度)影片,USB匯流排需要約56MBps的資料傳輸率。若要串流傳送一部未壓縮HD格式(每秒30格,1080p解析度,8位元色彩深度)的影片,USB匯流排必須達到約118 MBps的資料傳輸率。由於USB 2.0裝置控制器無法支援如此高的資料傳輸率,因此需要藉由USB 3.0控制器(FX3)才能滿足這些資料傳輸率的需求。
(本文作者任職於Cypress賽普拉斯半導體)