USB2 0協議入門學習(1)

2021-10-10 17:32:04 字數 1570 閱讀 1737

​ 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 採用輪詢的廣播機制傳輸資料,所有的傳輸都由主機發起,任何時刻整個 usb 體系內僅允許乙個資料報的傳輸,即不同物理傳輸線上看到的資料報都是同一被廣播的資料報。

​ usb 採用「令牌包」-「資料報」-「握手包」的傳輸機制,在令牌包中指定資料報去向或者**的裝置位址和端點(endpoint),從而保證了只有乙個裝置對被廣播的資料報/令牌包作出響應。握手包表示了傳輸的成功與否。

​ 資料報:usb 匯流排上資料傳輸的最小單位,包括 sync、資料及 eop 三個部分。其中資料的格式針對不同的包有不同的格式。但都以 8 位的 pid 開始。pid 指定了資料報的型別(共 16 種)。令牌包即指 pid 為 in/out/setup 的包。

​ 端點(endpoint):是 usb 裝置中的可以進行資料收發的最小單元,支援單向或者雙向的資料傳輸。裝置支援端點的數量是有限制的,除預設端點外低速裝置最多支援 2 組端點(2 個輸入,2 個輸出),高速和全速裝置最多支援 15 組端點。

​ usb 裝置連線到 host 時,host 必須通過預設的控制管道對其進行列舉,完成獲得其裝置描述、進行位址分配、獲得其配置描述、進行配置等操作方可正常使用。usb 裝置的即插即用特性即依賴於此。

usb 體系定義了四種型別的傳輸,它們是:

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

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

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

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

注意:不同的傳輸型別在物理上並沒有太大的區別,只是在傳輸機制、主機安排傳輸任務、可占用 usb 頻寬的限制以及最大包長度有一定的差異。

控制傳輸:

​ 控制傳輸是一種可靠的雙向傳輸,一次控制傳輸可分為三個階段。第一階段為從 host 到device 的 setup 事務傳輸,這個階段指定了此次控制傳輸的請求型別;第二階段為資料階段,也有些請求沒有資料階段;第三階段為狀態階段,通過一次in/out 傳輸表明請求是否成功完成。

​ 控制傳輸對於最大包長度有固定的要求。對於高速裝置該值為 64byte;對於低速裝置該值為 8;全速裝置可以是 8 或 16 或 32 或 64。

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

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

usb2 0驅動學習筆記

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

USB2 0速度識別

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