USB基礎知識

2021-08-07 18:20:03 字數 2304 閱讀 9617

1. usb是什麼?

usb是universal serial bus的縮寫,中文譯為通用序列匯流排。

2. 一些重要概念

主機(host)和裝置(device)

介面(inte***ce)

管道(pipe)是主機與裝置端點資料傳輸的連線通道,代表了主機的資料緩衝區與裝置端點間互動資料的能力。管道包括資料流管道和訊息管道。

端點(endpoint),實際上是裝置硬體上具有一定大小的資料緩衝區。usb系統中,每乙個端點都有唯一的位址,是由裝置位址和端點號給出的。預設設定端點0用作控制傳輸端點,其他端點必須在裝置被主機配置後才能使用。

上行、下行:upstream、downstream,裝置到主機為上行,主機到裝置為下行。

3. usb的資料格式

usb資料是由二進位制數字串構成的,首先數字串構成域,域再構成包,包再構成事務(in、out、setup),事務最後構成傳輸(中斷傳輸、並行傳輸、批量傳輸和控制傳輸)。

域:是usb資料最小的單位,可分為七個型別:同步域(sync)、標識域(pid)、位址域(addr)、端點域(endp)、幀號域(fram)、資料域(data)、校驗域(crc);

包:由域構成。可分為四種型別:令牌包、資料報、握手包和特殊包。

事務:一般由令牌包、資料報(可選)、握手包組成。

①令牌包:用來啟動乙個事務,總是由主機傳送。

②資料報:可以從主機到裝置,也可以由裝置到主機,方向由令牌包決定。

③握手包:通常情況,資料的接收者傳送握手包(ack或者nak)。

總結:usb的最小單元是「域」,由「域」構成了「包」,再由「包」構成了「事務」,最後由「事務」構成了「傳輸」,在應用層面,我們看到的只是傳輸,所以usb協議棧就需要完成傳輸以下的所有事情。

4. usb的四種傳輸型別

usb協議規定了四種傳輸型別:控制傳輸、批量傳輸、同步傳輸、中斷傳輸。

控制傳輸,分三個過程,建立過程、資料過程(可選)、狀態過程。

主要應用於裝置的列舉過程和對資料準確性要求較高的場合。

同步傳輸,是一種實時的、不可靠的傳輸,不支援錯誤重發機制,

主要用在資料量大,對實時性要求較高的場合。

批量傳輸,使用批量傳輸事務,一次批量傳輸事務分為三個階段:令牌包階段、資料報階段、握手包階段。

批量傳輸是一種可靠的單向傳輸,但延遲沒***,它盡量利用可以利用的頻寬來完成傳輸,適合資料量比較大的傳輸。

中斷傳輸,是一種輪詢的傳輸方式。

主要用在資料量小,但對時間要求嚴格的場合。如人機介面裝置(hid)中的滑鼠、鍵盤等。

ps.

乙個具體的端點只能工作在一種傳輸模式下。通常我們把工作在什麼模式下的端點,叫做什麼端點。如控制端點、批量端點、同步端點、中斷端點。

端點0是裝置的預設控制端點,在裝置上電後就存在並可以使用,在set config之前所有的傳輸都是通過端點0傳輸的。

端點描述符中規定了端點所能支援的最大包長。

5. usb相關的硬體

usb裝置,從物理上的邏輯結構來說,包含了主機host端和裝置device端。其中,主機host,有對應的硬體的usb主機控制器host controller,而裝置端,連線的是對應的usb裝置。

由於歷史原因,導致usb的主機控制器,出現了多種不同的型別,即ohci和uhci,ehci,xhci.

6. usb相關軟體

如果某個usb裝置正常工作,除了對應的硬體之外,還需要對應的軟體支援。

usb裝置端的韌體:對於usb裝置端來說,內部是需要有對應的裝置端的驅動,它實現了對應的裝置端的usb所要做的事情,主要是相應的一些標準的請求,完成對應的資料讀取和寫入等。

主機host端,也需要對應的驅動,此部分驅動,無論是linux下,還是windows下,都已經實現了常見的驅動,所以一般來說,很少需要驅動開發者再去寫相關的驅動程式。

後續,會更新usb請求及描述符…

USB基礎知識

開始對usb感興趣了,學習一下usb驅動,趁著現在剛好在做usb裝置驅動。先了解一下usb的大概知識 1.先看一下維基百科的介紹 usb分組格式 usb的分組格式和早期的網際網路分組格式非常相似,要了解usb連線原理就一定要先了解分組格式。2.了解一下vid和pid 摘自 什麼是 usb 廠商 id...

USB基礎知識

url size medium usb 介紹 usb 協議有嚴格的層次結構。在所有 usb 系統中,只有乙個主裝置,到主計算機的的 usb 介面稱為 主控器 host controller 主控器有兩個標準 開放主控器介面 compaq 的 open host controller inte ce,...

USB基礎知識

q usb是什麼?a usb是通用序列匯流排 universal serial bus 的縮寫。q usb的優點有哪些?a 支援熱插拔 hot plugging或hot swap 即帶電插拔。即插即用 pnp,即plug and play 也是usb設計的初衷之一。傳輸速度快。標準統一。攜帶方便。支...