linux endpoint,usb中的endpoint(端点)和传输模式
端點:
端點位于USB 外設(shè)內(nèi)部,所有通信數(shù)據(jù)的來源或目的都基于這些端點,是一個可尋址的FIFO。
每個USB 外設(shè)有一個唯一的地址,可能包含最多十六個端點。主機通過發(fā)出器件地址和每次數(shù)據(jù)傳輸?shù)亩它c號,向一個具體端點(FIFO)發(fā)送數(shù)據(jù)。
每個端點的地址為0 到15,一個端點地址對應(yīng)一個方向。所以,端點2-IN 與端點2-OUT 完全不同。 每個器件有一個默認(rèn)的雙向控制端點0,因此不存在端點0-IN 和端點0-OUT。
USB四種傳輸模式
控制傳輸、批量傳輸、中斷傳輸、同步傳輸
USB 有上述四種傳輸類型。枚舉期間外設(shè)告訴主機每個端點支持哪種傳輸類型。
USB設(shè)備驅(qū)動向USB控制器驅(qū)動請求的每次傳輸被稱為一個事務(wù)(Transaction),
事務(wù)有四種類型:Bulk Transaction、Control Transaction、Interrupt Transaction和Isochronous Transaction。
數(shù)據(jù)包包含部分:
每次事務(wù)都會分解成若干個數(shù)據(jù)包在USB總線上傳輸。每次傳輸必須歷經(jīng)兩個或三個部分,第一部分——USB控制器向USB設(shè)備發(fā)出命令,
第二部分——USB控制器和USB設(shè)備之間傳遞讀寫請求,其方向主要看第一部分的命令是讀還是寫,第二部分有時候可以沒有。
第三部分——握手信號。
批量(Bulk)傳輸事務(wù)
作用:主要應(yīng)用在數(shù)據(jù)大量數(shù)據(jù)傳輸和接受數(shù)據(jù)上同時又沒有帶寬和間隔時間要求的情況下;
特點:要求保證傳輸。打印機和掃描儀屬于這種類型這種類型的設(shè)備
適合于傳輸非常慢和大量被延遲的傳輸,可以等到所有其它類型的數(shù)據(jù)的傳輸完成之后再傳輸和接收數(shù)據(jù)。
批量數(shù)據(jù)傳輸分三個階段:
第一部分——令牌階段。
Host端發(fā)出一個Bulk的令牌請求。
如果令牌是IN請求 ,則是從Device到Host的請求;
如果令牌是OUT請求,則是從Host到Device端的請求。
第二部分——傳送數(shù)據(jù)的階段。
根據(jù)先前請求的令牌的類型,數(shù)據(jù)傳輸有可能是IN方向,也有可能是OUT方向。傳輸數(shù)據(jù)的時候用DATA0和DATA1令牌攜帶著數(shù)據(jù)交替?zhèn)魉汀?/p>
數(shù)據(jù)傳輸格式DATA1和DATA0,這兩個是重復(fù)數(shù)據(jù),確保在1數(shù)據(jù)丟失時0可以補上,不至于數(shù)據(jù)丟失。
第三部分——握手階段。
如果數(shù)據(jù)是IN 方向,握手信號應(yīng)該是Host端發(fā)出;
如果數(shù)據(jù)是OUT方向,握手信號應(yīng)該是Device端發(fā)出。
握手信號可以為ACK, 表示正常響應(yīng),
NAK, 表示沒有正確傳送。
STALL,表示出現(xiàn)主機不可預(yù)知的錯誤。
如圖所示。
圖Bulk傳輸
圖 Bulk傳輸時的令牌
控制(Control)傳輸
作用:USB系統(tǒng)軟件用來主要進行查詢配置和給USB設(shè)備發(fā)送通用的命令;
特點:控制傳輸是雙向傳輸,數(shù)據(jù)量通常較小;數(shù)據(jù)傳送是無損性的。
數(shù)據(jù)寬度:控制傳輸方式可以包括8、16、32和64字節(jié)的數(shù)據(jù),這依賴于設(shè)備和傳輸速度。
控制傳輸?shù)湫偷赜迷谥饔嬎銠C和USB外設(shè)之間的端點0(EP0)之間的傳輸
控制傳輸也分為三個階段,即令牌階段、數(shù)據(jù)傳送階段、握手階段,如下圖所示。
圖 控制傳輸事務(wù)
中斷(Interrupt)傳輸事務(wù)
作用:主要用于定時查詢設(shè)備是否有中斷數(shù)據(jù)要傳輸;
特點:設(shè)備的端點模式器的結(jié)構(gòu)決定了它的查詢頻率從1到255ms之間。
典型的應(yīng)用在少量的分散的不可預(yù)測數(shù)據(jù)的傳輸鍵盤操縱桿和鼠標(biāo)就屬于這一類型
(數(shù)據(jù)量很小)
中斷方式傳輸是單向的并且對于host 來說只有輸入(IN)的方式
在中斷事務(wù)中,也分為三個階段,即令牌階段、數(shù)據(jù)傳輸階段、握手階段,如下圖所示。
中斷傳輸事務(wù)
同步(Isochronous)傳輸事務(wù)
作用:用于時間嚴(yán)格并具有較強容錯性的流數(shù)據(jù)傳輸,或者用于要求恒定的數(shù)據(jù)傳輸率的即時應(yīng)用中。例如執(zhí)行即時通話的網(wǎng)絡(luò)電話。
特點:保證傳輸?shù)耐叫浴1WC每秒有固定的傳輸量。
(與Bulk傳輸不同)同步傳輸允許有一定的誤碼率。(這樣符合視頻會議等傳輸?shù)男枨?#xff0c;因為視頻會議首先要保證實時性,在一定條件下,允許有一定的誤碼率。)
同步傳輸事務(wù)有只有兩個階段,即令牌階段、數(shù)據(jù)階段,因為不關(guān)心數(shù)據(jù)的正確性,故沒有握手階段,
如下圖所示:
圖 同步傳輸事務(wù)
總結(jié)
以上是生活随笔為你收集整理的linux endpoint,usb中的endpoint(端点)和传输模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 保护卡下机房维护(装缷软件,改变设置)
- 下一篇: UG/NX 二次开发(C#) 程序自动切