USB2 0中文協議(簡版) USB2 0體系簡介

2021-05-01 20:37:59 字數 3263 閱讀 9766

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 採用「令牌包」-「資料報」-「握手包」的傳輸機制,在令牌包中指定資料報去向或者**的裝置位址和端點(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 體系定義了四種型別的傳輸,它們是:

控制傳輸:主要用於在裝置連線時對裝置進行列舉以及其他因裝置而已的特定操作。

中斷傳輸:用於對延遲要求嚴格、小量資料的可靠傳輸,如鍵盤、遊戲手柄等。

批量傳輸:用於對延遲要求寬鬆,大量資料的可靠傳輸,如u盤等。

同步傳輸:用於對可靠性要求不高的實時資料傳輸,如攝像頭、usb 音響等。

注意:中斷傳輸並不意味這傳輸過程中,裝置會先中斷 host,繼而通知 host 啟動傳輸。中斷傳輸也是 host 發起的傳輸,採用輪詢的方式詢問裝置是否有資料傳送,若有則傳輸資料,否則 nak 主機。

不同的傳輸型別在物理上並沒有太大的區別,只是在傳輸機制、主機安排傳輸任務、可占用usb 頻寬的限制以及最大包長度有一定的差異。 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 和裝置之間控制流和資料流的管理、傳輸狀態的收集、匯流排電源的供給。

USB2 0速度識別

我們知道usb2.0向下相容usb1.x,即高速2.0的hub能支援所有的速度型別的裝置,而 usb1.x的hub不能支援高速裝置 high speed device 因此,如果高速裝置掛到 usb1.x的hub 上,那該裝置只能工作在全速模式下。不管是hub還是裝置 device 對於速度的區分是...

USB2 0協議入門學習(1)

usb 是一種支援熱插拔的高速序列傳輸匯流排,它使用差分訊號來傳輸資料,最高速度可達 480mb s。usb 支援 匯流排供電 和 自供電 兩種供電模式。在匯流排供電模式下,裝置最多可以獲得 500ma 的電流。usb2.0 被設計成為向下相容的模式,當有全速 usb 1.1 或者低速 usb 1....

usb2 0驅動學習筆記

乙個usb裝置可以分為3層 l 最底層是傳送和接收包的匯流排介面。l 中間層是處理匯流排介面與裝置不同端點之間的資料路由。端點是資料的終端使用者和資料提供者。它可被認為是資料的信源和信宿。l 最頂層是序列匯流排裝置提供的功能,例如滑鼠或者isdn介面。當usb裝置連線到usb匯流排或者從usb匯流排...