usb中的endpoint 端點 和傳輸模式

2022-05-15 08:04:26 字數 2213 閱讀 7977

端點

端點位於usb 外設內部,所有通訊資料的**或目的都基於這些端點,是乙個可定址的fifo。

每個usb 外設有乙個唯一的位址,可能包含最多十六個端點。主機通過發出器件位址和每次資料傳輸的端點號,向乙個具體端點(fifo)傳送資料。

每個端點的位址為0 到15,乙個端點位址對應乙個方向。所以,端點2-in 與端點2-out 完全不同。 每個器件有乙個預設的雙向控制端點0,因此不存在端點0-in 和端點0-out。

usb四種傳輸模式

控制傳輸、批量傳輸、中斷傳輸、同步傳輸

usb 有上述四種傳輸型別。列舉期間外設告訴主機每個端點支援哪種傳輸型別。

usb裝置驅動向usb控制器驅動請求的每次傳輸被稱為乙個事務(transaction),

事務有四種型別:bulk transaction、control transaction、interrupt transaction和isochronous transaction。

資料報包含部分

每次事務都會分解成若干個資料報在usb匯流排上傳輸。每次傳輸必須歷經兩個或三個部分,第一部分——usb控制器向usb裝置發出命令,

第二部分——usb控制器和usb裝置之間傳遞讀寫請求,其方向主要看第一部分的命令是讀還是寫,第二部分有時候可以沒有。

第三部分——握手訊號。

批量(bulk)傳輸事務

作用:主要應用在資料大量資料傳輸和接受資料上同時又沒有頻寬和間隔時間要求的情況下;

特點:要求保證傳輸。印表機和掃瞄器屬於這種型別這種型別的裝置

適合於傳輸非常慢和大量被延遲的傳輸,可以等到所有其它型別的資料的傳輸完成之後再傳輸和接收資料。

批量資料傳輸分三個階段:

第一部分——令牌階段。

host端發出乙個bulk的令牌請求。

如果令牌是in請求 ,則是從device到host的請求;

如果令牌是out請求,則是從host到device端的請求。

第二部分——傳送資料的階段。

根據先前請求的令牌的型別,資料傳輸有可能是in方向,也有可能是out方向。傳輸資料的時候用data0和data1令牌攜帶著資料交替傳送。

資料傳輸格式data1和data0,這兩個是重複資料,確保在1資料丟失時0可以補上,不至於資料丟失。

第三部分——握手階段。

如果資料是in 方向,握手訊號應該是host端發出;

如果資料是out方向,握手訊號應該是device端發出。

握手訊號可以為ack, 表示正常響應,

nak, 表示沒有正確傳送。

stall,表示出現主機不可預知的錯誤。

如圖所示。

圖bulk傳輸

圖 bulk傳輸時的令牌

控制(control)傳輸

作用:usb系統軟體用來主要進行查詢配置和給usb裝置傳送通用的命令;

特點:控制傳輸是雙向傳輸,資料量通常較小;資料傳送是無損性的。

資料寬度:控制傳輸方式可以包括8、16、32和64位元組的資料,這依賴於裝置和傳輸速度。

控制傳輸典型地用在主計算機和usb外設之間的端點0(ep0)之間的傳輸

控制傳輸也分為三個階段,即令牌階段、資料傳送階段、握手階段,如下圖所示。

圖 控制傳輸事務

中斷(interrupt)傳輸事務

作用:主要用於定時查詢裝置是否有中斷資料要傳輸;

特點:裝置的端點模式器的結構決定了它的查詢頻率從1到255ms之間。

典型的應用在少量的分散的不可**資料的傳輸鍵盤操縱桿和滑鼠就屬於這一型別

(資料量很小)

中斷方式傳輸是單向的並且對於host 來說只有輸入(in)的方式

在中斷事務中,也分為三個階段,即令牌階段、資料傳輸階段、握手階段,如下圖所示。

中斷傳輸事務

同步(isochronous)傳輸事務

作用:用於時間嚴格並具有較強容錯性的流資料傳輸,或者用於要求恆定的資料傳輸率的即時應用中。例如執行即時通話的網路**。

特點:保證傳輸的同步性。保證每秒有固定的傳輸量。

同步傳輸事務有只有兩個階段,即令牌階段、資料階段,因為不關心資料的正確性,故沒有握手階段,

如下圖所示:

圖 同步傳輸事務

usb中的endpoint 端點 和傳輸模式

端點 端點位於usb 外設內部,所有通訊資料的 或目的都基於這些端點,是乙個可定址的fifo。每個usb 外設有乙個唯一的位址,可能包含最多十六個端點。主機通過發出器件位址和每次資料傳輸的端點號,向乙個具體端點 fifo 傳送資料。每個端點的位址為0 到15,乙個端點位址對應乙個方向。所以,端點2 ...

usb中的endpoint 端點 和傳輸模式

端點 端點位於usb 外設內部,所有通訊資料的 或目的都基於這些端點,是乙個可定址的fifo。每個usb 外設有乙個唯一的位址,可能包含最多十六個端點。主機通過發出器件位址和每次資料傳輸的端點號,向乙個具體端點 fifo 傳送資料。每個端點的位址為0 到15,乙個端點位址對應乙個方向。所以,端點2 ...

USB端點和管道

usb外設本身應包含一定數量的獨立的暫存器埠,並能由usb裝置驅動程式直接操作。這些暫存器也就是usb裝置的端點。乙個裝置可以有多個端點,但所有的usb裝置都必須有乙個零端點以用於設定,完成control型別傳送。每乙個裝置都有乙個由主機分配的唯一的位址,而各個裝置上的端點都有裝置確定的端點號和通訊...