USB 體系簡介
USB 是一種支援熱插拔的高速串列傳輸匯流排,它使用差分訊號來傳輸資料,最高速度可達 480Mb/S。USB
支援“匯流排供電”和“自供電”兩種供電模式。在匯流排供電模式下,裝置最多可以獲得500mA的電流。 USB2.0
被設計成為向下相容的模式,當有全速 (USB 1.1)或者低速(USB 1.0)裝置串連到高速(USB
2.0)主機時,主機可以通過分離傳輸來支援它們。一條 USB
匯流排上,可達到的最高傳輸速度等級由該匯流排上最慢的“裝置”決定,該裝置包括主機、HUB以及USB功能裝置。
USB
體系包括“主機”、“裝置”以及“物理串連”三個部分。其中主機是一個提供USB介面及介面管理能力的硬體、軟體及韌體的複合體,可以是PC,也可以是
OTG裝置。一個USB 系統中僅有一個USB主機;裝置包括 USB功能裝置和 USB HUB,最多支援 127個裝置;物理串連即指的是USB
的傳輸線。在USB 2.0系統中,要求使用屏蔽的雙絞線。
一個 USB HOST 最多可以同時支援 128 個地址,地址 0
作為預設地址,只在裝置枚舉期間臨時使用,而不能被分配給任何一個裝置,因此一個 USB HOST 最多可以同時支援 127
個地址,如果一個裝置只佔用一個地址,那麼可最多支援 127個 USB 裝置。在實際的 USB 體系中,如果要串連 127 個
USB裝置,必須要使用 USB HUB,而 USB HUB 也是需要佔用地址的,所以實際可支援的 USB 功能裝置的數量將小於 127。
USB 體系採用分層的星型拓撲來串連所有 USB裝置,如所示:
以 HOST-ROOT HUB為起點,最多支援 7 層(Tier),也就是說任何一個USB 系統中最多可以允許 5個 USB HUB 級聯。一個複合裝置(Compound Device)將同時佔據兩層或更多的層。
ROOT HUB 是一個特殊的 USB HUB,它整合在主機控制器裡,不佔用地址。ROOT HUB 不但實現了普通 USB HUB 的功能,還包括其他一些功能,具體在增強型主機控制器的規範中有詳細的介紹。
“複合裝置(Compound Device)”可以佔用多個地址。所謂複合裝置其實就是把多個功能裝置通過內建的 USB HUB 組合而成的裝置,比如帶錄音話筒的 USB 網路攝影機等。
USB 採用輪詢的廣播
機制傳輸資料,所有的傳輸都由主機發起,任何時刻整個 USB 體系內僅允許一個資料包的傳輸,即不同物理傳輸線上看到的資料包都是同一被廣播的資料包。本文來源於www.eenote.com
,著作權,轉載請註明。
USB 採用“令牌包”-“資料包”-“握手包”的傳輸機制,在令牌包中指定資料包去向或者來源的裝置地址和端點(Endpoint),從而保證了只有一個裝置對被廣播的資料包/令牌包作出響應。握手包表示了傳輸的成功與否。
資料包:USB 匯流排上資料轉送的最小單位,包括 SYNC、資料及 EOP 三個部分。其中資料的格式針對不同的包有不同的格式。但都以 8 位的
PID 開始。PID 指定了資料包的類型(共 16種)。令牌包即指 PID 為 IN/OUT/SETUP的包。
端點(Endpoint):是 USB
裝置中的可以進行資料收發的最小單元,支援單向或者雙向的資料轉送。裝置支援端點的數量是有限制的,除預設端點外低速裝置最多支援 2 組端點(2
個輸入,2 個輸出),高速和全速裝置最多支援 15 組端點。
管道(Pipe)是主機和裝置端點之間資料轉送的模型,共有兩種類型的管道:無格式的流管道(Stream
Pipe)和有格式的資訊管道(Message Pipe)。任何USB裝置一旦上電就存在一個資訊管道,即預設的控制管道 預設的控制管道
預設的控制管道 預設的控制管道,USB 主機通過該管道來擷取裝置的描述、配置、狀態,並對裝置進行配置。
USB 裝置串連到 HOST 時,HOST 必須通過預設的控制管道對其進行枚舉 枚舉 枚舉 枚舉,完成獲得其裝置描述、進行地址分配、獲得其配置描述、進行配置等操作方可正常使用。USB 裝置的隨插即用特性即依賴於此。
枚舉:是 USB 體系中一個很重要的活動,由一系列標準請求組成(若裝置屬於某個子類,還包含該子類定義的特殊請求)。通過枚舉 HOST
可以獲得裝置的基本描述資訊,如支援的 USB
版本、PID、VID、裝置分類(Class)、供電方式、最大消耗電流、配置數量、各種類型端點的數量及傳輸能力(最大包長度)。HOST 根據
PID 和 VID 載入裝置驅動程式,並對裝置進行合適的配置。只有經過枚舉的裝置才能正常使用。對於匯流排供電裝置,在枚舉完成前最多可從匯流排擷取
100mA 的電流。
USB 體系定義了四種類型的傳輸,它們是:
控制傳輸:主要用於在裝置串連時對裝置進行枚舉以及其他因裝置而已的特定操作。
中斷傳輸:用於對延遲要求嚴格、小量資料的可靠傳輸,如鍵盤、遊戲手柄等。
批量傳輸:用於對延遲要求寬鬆,大量資料的可靠傳輸,如隨身碟等。
同步傳輸:用於對可靠性要求不高的即時資料傳輸,如網路攝影機、USB 音響等。
注意:中斷傳輸並不意味這傳輸過程中,裝置會先中斷 HOST,繼而通知 HOST 啟動傳輸。中斷傳輸也是 HOST 發起的傳輸,採用輪詢的方式詢問裝置是否有資料發送,若有則傳輸資料,否則 NAK 主機。
不同的傳輸類型在物理上並沒有太大的區別,只是在傳輸機制、主機安排傳輸任務、可佔用USB 頻寬的限制以及最大包長度有一定的差異。 USB 裝置通過管道和HOST 通訊,在預設控制管道上接受並處理以下三種類型的請求:
1. 標準請求 :一共有11 個標準請求,如得到裝置描述、設定地址、得到配置描述等。所有USB 裝置均應支援這些請求。HOST 通過標準請求來識別和配置裝置。
2. 類 (class)請求 :USB 還定義了若干個子類,如HUB 類、大量存放區類等。不同的類又定義了若干類請求,該類裝置應該支援這些類請求。裝置所屬類在裝置描述符中可以得到。
3. 廠商請求 :這部分請求並不是 USB 規範定義的,而是裝置生產商為了實現一定的功能而自己定義的請求。
USB HUB提供了一種低成本、低複雜度的USB 介面擴充方法。HUB的上行PORT 面向 HOST,下行 PORT
面向裝置(HUB 或功能裝置)。在下行 PORT 上,HUB 提供了裝置串連檢測和裝置移除檢測的能力,並給各下行PORT供電。
HUB可以單獨使能各下行PORT,不同PORT 可以工作在不同的速度等級(高速/全速/低速)。
HUB由HUB重發器(HUB Repeater)、轉寄站(Transaction Translator)以及HUB
控制器(HUB Controller)三部分組成。HUB Repeater是上行PORT
和下行PORT之間的一個協議控制的開關,它負責高速資料包的重生與分發 重生與分發 重生與分發 重生與分發。HUB 控制器負責和
HOST的通訊,HOST通過 HUB 類請求和 HUB 控制器通訊,獲得關於 HUB 本身和下行 PORT 的 HUB
描述符,進行HUB和下行PORT 的監控和管理。轉寄站提供了從高速和全速/低速通訊的轉換能力,通過 HUB 可以在高速 HOST
和全速/低速裝置之間進行匹配。HUB 在硬體上支援 Reset、Resume、Suspend。
重生與分發:指的是 HUB Repeater 需要識別從上行(下行)PORT 上接收到的資料,並分發到下行 (上行)PORT。所謂分發主要是指從上行PORT接收到的資料包需要向所有使能的高速下行PORT發送,即廣播。
USB HOST 在USB體系中負責裝置串連/移除的檢測、HOST 和裝置之間控制流程和資料流的管理、傳輸狀態的收集、匯流排電源的供給。