USB30協(xié)議規(guī)范中文解讀_第1頁
USB30協(xié)議規(guī)范中文解讀_第2頁
USB30協(xié)議規(guī)范中文解讀_第3頁
USB30協(xié)議規(guī)范中文解讀_第4頁
USB30協(xié)議規(guī)范中文解讀_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、USB3.0 與USB2.0的特性比較3.2  超速結(jié)構(gòu)     超速總線是一個(gè)分層的通訊結(jié)構(gòu),如下圖所示:協(xié)議層:協(xié)議層在主機(jī)和設(shè)備間定義了end-to-end通訊規(guī)則。超速協(xié)議在主機(jī)和設(shè)備端點(diǎn)(endpoint)之間提供應(yīng)用數(shù)據(jù)信息交換。這個(gè)通訊關(guān)系叫做管道(pipe)。它是主機(jī)導(dǎo)向的協(xié)議,意味著主機(jī)決定什么時(shí)候在主機(jī)和設(shè)備間進(jìn)行應(yīng)用數(shù)據(jù)傳輸。設(shè)備可以通過一個(gè)特定端點(diǎn)向主機(jī)發(fā)起異步請求服務(wù),所以它不是一個(gè)輪詢協(xié)議(USB2.0為輪詢協(xié)議)。 數(shù)據(jù)可以連續(xù)突發(fā)傳輸,提高總線效率。 對某些傳輸類型(塊傳輸),協(xié)議提供流控支持

2、。 SS設(shè)備可以異步發(fā)送,通知主機(jī),設(shè)備的功能狀態(tài)發(fā)生改變。而不是輪詢的方式。設(shè)備端點(diǎn)可以通過設(shè)備異步發(fā)送的“ready”包(ERDY TP)通知主機(jī)進(jìn)行數(shù)據(jù)發(fā)送與接收,主機(jī)對于“ready”通知,如果有有效的數(shù)據(jù)發(fā)送或者緩存接收數(shù)據(jù),會(huì)添加管道。 主機(jī)發(fā)送包含主機(jī)時(shí)間戳的特殊包頭(ITP)到總線上,該值可以用于保持設(shè)備和主機(jī)同步(如果需要的話)。超速USB電源管理:鏈路電源管理的關(guān)鍵點(diǎn)是:·設(shè)備向主機(jī)發(fā)送異步“ready”通知· 包是有路由路徑的,這樣就允許不參與數(shù)據(jù)通訊的鏈路進(jìn)入或仍舊停留在低電源狀態(tài)。· 如果包送到一個(gè)處于低電源狀態(tài)的端口,這個(gè)端口

3、會(huì)切換到退出低電源狀態(tài)并指示這是個(gè)切換事件。設(shè)備: ·超速需要支持USB2.0對默認(rèn)的控制管道的規(guī)定。HUB設(shè)備:因?yàn)閁SB3.0向下兼容USB2.0,為支持USB3.0雙總線結(jié)構(gòu),USB3.0 HUB在邏輯上是兩個(gè)HUB的組合:一個(gè)USB2.0 HUB和一個(gè)USB3.0 HUB。連接到上游端口的電源和地線是共享的。集線器參與到一個(gè)端到端的協(xié)議中,所承當(dāng)?shù)墓ぷ鳎?#183;路由選擇輸出的包到下游端口。·輸入包混合傳遞到上游端口·當(dāng)不在低功耗狀態(tài)下時(shí),向所有下游端口廣播時(shí)間戳包(ITP)·當(dāng)在一個(gè)低功耗狀態(tài)的端口檢測

4、到包時(shí),集線器將目標(biāo)端口轉(zhuǎn)變成退出低功耗狀態(tài),通知主機(jī)和設(shè)備(帶內(nèi))包遭遇到了一個(gè)在低功耗狀態(tài)的端口。主機(jī)(Hosts): 一個(gè)USB3.0主機(jī)通過主控器和USB設(shè)備互連。為了支持USB3.0雙總線結(jié)構(gòu),USB3.0主控器必須包括超速(USB3.0)和USB2.0部分,這樣可以同時(shí)管理每一個(gè)總線上主機(jī)和設(shè)備間的控制、狀態(tài)和信息交換。主機(jī)含有幾個(gè)根下行端口實(shí)現(xiàn)超速USB和USB2.0,主機(jī)通過這些端口:·檢測USB設(shè)備的連接和移除;·管理主機(jī)和設(shè)備間的控制流;·管理主機(jī)和設(shè)備間的數(shù)據(jù)流;·收集狀態(tài)和活動(dòng)統(tǒng)計(jì);·對連接的設(shè)備供電;USB系

5、統(tǒng)軟件繼承了USB2.0的結(jié)構(gòu),包括:·設(shè)備枚舉和配置;·規(guī)劃周期性和異步數(shù)據(jù)傳輸;·設(shè)備和功能電源管理;·設(shè)備和總線管理信息。數(shù)據(jù)流模型:超速USB集成了USB2.0的數(shù)據(jù)流模型,包括: ·主機(jī)和設(shè)備間的數(shù)據(jù)和控制交換通過管道(pipe)進(jìn)行 ,數(shù)據(jù)傳輸在主機(jī)軟件和指定的設(shè)備端點(diǎn)間進(jìn)行。·設(shè)備可以有不止一個(gè)的活動(dòng)管道,有兩種類型的管道:流式管道(數(shù)據(jù))和消息管道(控制),流式管道沒有USB2.0定義的結(jié)構(gòu),消息管道有指定的結(jié)構(gòu)(請求的結(jié)構(gòu))。管道相關(guān)聯(lián)的是數(shù)據(jù)帶寬,傳輸類型(見下面描述),端點(diǎn)屬性,如傳輸方向與緩

6、沖大小。 ·大多數(shù)管道在系統(tǒng)軟件對設(shè)備進(jìn)行配置后才存在,但是當(dāng)設(shè)備上電在默認(rèn)的狀態(tài)后,一個(gè)消息管道即默認(rèn)的控制管道總是存在的。提供權(quán)限訪問設(shè)備的配置,狀態(tài)和控制信息。·一個(gè)管道支持USB2.0定義的四種傳輸類型的一種(管道和端點(diǎn)屬性一致)。·海量傳輸類型(bulk)在超速中進(jìn)行了擴(kuò)展,叫做流(stream)。流式提供在協(xié)議級(jí)支持在標(biāo)準(zhǔn)塊傳輸管道中多路傳輸多個(gè)獨(dú)立的邏輯數(shù)據(jù)流。第四章    超速數(shù)據(jù)流模型4.2超速通信流SS保持相似的觀念和機(jī)理,支持端點(diǎn),管道和傳輸類型。參考USB2.0協(xié)議。端點(diǎn)的屬性(最大包尺寸(端點(diǎn)緩存大

7、?。?,突發(fā)大小等)被記錄在描述符中和SS Endpoint Companion Descriptor。正如在USB2.0中,端點(diǎn)是使用三個(gè)參數(shù)組成的地址來驗(yàn)證(設(shè)備地址,端點(diǎn)號(hào)和方向)。所有的SS設(shè)備必須起碼在默認(rèn)控制管道(端點(diǎn)0)開始執(zhí)行。4.2.1 管道一個(gè)超速管道是一個(gè)設(shè)備上的端點(diǎn)和主機(jī)軟件的連接。管道代表擁有緩存空間的主機(jī)軟件和設(shè)備端點(diǎn)之間傳輸數(shù)據(jù)的能力,和USB2.0有相同的過程。主要的區(qū)別在于當(dāng)超速的非同步端點(diǎn)忙時(shí),會(huì)返回一個(gè)沒有準(zhǔn)備好(NRDY)應(yīng)答,當(dāng)它想又要服務(wù)時(shí)必須發(fā)送準(zhǔn)備好(ERDY)通知。主機(jī)在下一個(gè)傳輸類型限制下的有效時(shí)機(jī)中重新安排事務(wù)。4.3超速協(xié)議綜述:正如在US

8、B3.0結(jié)構(gòu)總覽那章中提到的,超速協(xié)議是利用雙差分?jǐn)?shù)據(jù)線的物理層。所有的USB2.0的類型都可以被高速協(xié)議支持。協(xié)議之間的區(qū)別在于下面要首先討論的超速中使用的包的描述。4.3.1與USB2.0的區(qū)別:在框架上,超速是向后兼容USB2.0的,但是二者在協(xié)議上還是有一些重大的不同:·USB2.0的transaction有三部分(令牌(token)、數(shù)據(jù)(data)和握手(handshake),超速也是這三部分但是用法不同(令牌包集成在頭包和DPH中,各種類型的握手包都是TP包形式);對于OUT事務(wù),令牌被合并在數(shù)據(jù)包中;對于IN事務(wù),令牌被握手包代替。·USB2.0不支持突發(fā)(

9、bursting),超速支持持續(xù)突發(fā);·USB2.0是半雙工(half-duplex)的廣播總線,超速是dual-simplex(全雙工)的非廣播總線,支持同時(shí)進(jìn)行IN、OUT transaction;·USB2.0使用輪詢模式,超速使用異步通知方式;·USB2.0不支持流能力,超速支持海量(bulk)端點(diǎn)的Stream方式;·USB2.0在同步傳輸(isochronous)間隔中沒有進(jìn)入低耗電狀態(tài)的機(jī)制,超速則允許同步傳輸服務(wù)間隔中自動(dòng)進(jìn)入低耗電狀態(tài)(不服務(wù)的時(shí)間段進(jìn)入低功耗);SS主機(jī)在服務(wù)間隔前發(fā)送一個(gè)PING包到目標(biāo)同步設(shè)備允許開始同步

10、傳輸之前轉(zhuǎn)變成電源活動(dòng)狀態(tài)。·USB2.0設(shè)備無法通知主機(jī)自己在進(jìn)入低耗電狀態(tài)前可容忍的延遲時(shí)間(設(shè)備通知主機(jī)自己進(jìn)入低功耗狀態(tài)的最長延遲時(shí)間),超速則提供Latency Tolerance消息;·USB2.0以固定的1ms/125us間隔發(fā)送幀包/小幀包(USB 2.0全速和高速模式)。超速下,設(shè)備可以發(fā)送Interval Adjustment消息給主機(jī)調(diào)整間隔125us一直到+/-13.333us;·USB2.0電源管理總是主機(jī)導(dǎo)向(主機(jī)初始化)的,超速鏈路兩端都支持電源管理;因此不管何時(shí)需要空閑,需要退出,需要通信,每個(gè)鏈路能獨(dú)立的進(jìn)入低

11、電源狀態(tài)。·USB2.0 僅在每個(gè)transaction進(jìn)行end-to-end級(jí)別的錯(cuò)誤檢測、恢復(fù)、流控,超速在end-to-end(數(shù)據(jù)包重試)和鏈路級(jí)別(頭包重試)分割這些功能。4.3.2比較USB2.0和超速的事務(wù)處理(Transaction)超速全雙工總線物理層允許同時(shí)進(jìn)行雙向的通信。超速協(xié)議允許收到握手包之前發(fā)送多個(gè)數(shù)據(jù)包(突發(fā))。對于OUT傳輸,包含在USB2.0令牌包中的信息(設(shè)備地址和端點(diǎn)信息)被合并在數(shù)據(jù)包頭里面,因此不需要額外令牌包。對于輸入傳輸IN,超速主機(jī)發(fā)送一個(gè)握手包(ACK)給設(shè)備以請求數(shù)據(jù)(和指示數(shù)據(jù)是否正確)。設(shè)備可以通過返回?cái)?shù)據(jù)或者返回S

12、TALL握手包來應(yīng)答,或者返回一個(gè)沒準(zhǔn)備好(NRDY)握手包延遲傳輸直到設(shè)備準(zhǔn)備好了。USB2.0的包是廣播方式,每個(gè)連接的設(shè)備解析每個(gè)包的地址、端點(diǎn)、方向信息來決定自己是否應(yīng)該響應(yīng)。超速包有路由信息,HUB決定每個(gè)包要送達(dá)哪個(gè)設(shè)備,只有一個(gè)例外,等時(shí)時(shí)間戳包(Isochronous Timestamp Packet, ITP)廣播到每一個(gè)設(shè)備。USB2.0的查詢方式已經(jīng)被異步通知代替。超速傳輸通過主機(jī)發(fā)出一個(gè)請求來開始傳輸,后面跟隨著設(shè)備的應(yīng)答。如果設(shè)備能接受請求,它就接收數(shù)據(jù)或者發(fā)送數(shù)據(jù);如果端點(diǎn)停止了,設(shè)備應(yīng)該以STALL握手包響應(yīng);如果設(shè)備由于缺少緩存空間

13、或者沒有數(shù)據(jù)而不能接受請求,應(yīng)該以NRDY應(yīng)答告訴主機(jī)現(xiàn)在還不能處理請求。當(dāng)?shù)鹊皆O(shè)備能接受請求時(shí),設(shè)備會(huì)主動(dòng)發(fā)送一個(gè)端點(diǎn)準(zhǔn)備好(ERDY)異步通知給主機(jī)然后主機(jī)會(huì)重新安排傳輸事務(wù)。單路傳送和有限制的多點(diǎn)廣播的包以及異步通知,都允許沒有活躍傳輸包的鏈路進(jìn)入一個(gè)降低功耗狀態(tài),上游和下游端口共同決定它們的鏈路進(jìn)入一個(gè)低功耗狀態(tài),集線器會(huì)傳遞到上游端口。通過允許鏈路伙伴獨(dú)立控制它們的鏈路電源狀態(tài),集線器將任意下游端口可見的最高鏈路電源狀態(tài)傳遞到上游端口,使總線快速進(jìn)入最低允許電源狀態(tài)。4.3.1.2超速包介紹:超速包以16字節(jié)的頭部開始。一些包只包含有頭部(TP,LMP,ITP)。所有的頭部以用于決定

14、包處理方式的包類型信息開始。頭部有16位CRC保護(hù),以2個(gè)字節(jié)鏈路控制字(link control word)結(jié)束。依賴于類型,大多數(shù)包包含有路由信息(路由字符)和一個(gè)三參數(shù)的設(shè)備地址(設(shè)備地址,端點(diǎn)號(hào)和方向)。路由字符給主機(jī)用來指導(dǎo)包被發(fā)送到被指向的拓?fù)渎窂?。設(shè)備發(fā)送的包被集線器默認(rèn)路由選擇,集線器總是把數(shù)據(jù)從任何可見的下游端口傳到上游端口(這一過程不需要路由信息)。有四種基本類型的包:(協(xié)議層)·Link Management Packet(LMP),只穿過一對直接連接的端口(鏈路兩端),主要用來管理鏈路。·Transaction Pack

15、et(TP,事務(wù)包),穿過所有直接連接主機(jī)與設(shè)備的鏈路,用來控制流式數(shù)據(jù)包,配置設(shè)備和集線器等(任何傳輸類型的事務(wù)處理都用到)。注意一個(gè)Transaction Packet是沒有數(shù)據(jù)的。(控制命令包,TP包就是一個(gè)包頭(DPH)·Data Packet(DP),穿過所有直接連接主機(jī)與設(shè)備的鏈路,數(shù)據(jù)包有兩部分組成,一個(gè)和TP包相似的數(shù)據(jù)包頭(DPH)和帶有數(shù)據(jù)塊加上用來確保數(shù)據(jù)完整性的32位CRC的數(shù)據(jù)包(DDP)·Isochronous Timestamp Packet(ITP)。它被主機(jī)用來多點(diǎn)廣播到所有的活動(dòng)的鏈路上。4.4 對

16、傳輸(transfer)的一般性描述:每一個(gè)發(fā)送給接收器的非同步數(shù)據(jù)包通過一個(gè)握手包(ACK TP)被應(yīng)答(同步端點(diǎn)不應(yīng)答,非同步端點(diǎn)要為每個(gè)收到的數(shù)據(jù)包進(jìn)行應(yīng)答,以報(bào)告是否正確傳輸和是否要重傳),但是由于超速有獨(dú)立的發(fā)送與接收路徑,所以發(fā)送器不必在發(fā)送下一個(gè)包之前為每次傳輸?shù)臄?shù)據(jù)包等待一個(gè)握手(超速USB的一個(gè)特色:同時(shí)進(jìn)行發(fā)送數(shù)據(jù)與接收應(yīng)答,當(dāng)設(shè)備檢測到數(shù)據(jù)包錯(cuò)誤時(shí)或者端點(diǎn)錯(cuò)誤,沒準(zhǔn)備好等,都會(huì)通過在應(yīng)答TP包中反應(yīng)給主機(jī),主機(jī)收到的應(yīng)答TP包中記錄出錯(cuò)的包順序號(hào),于是主機(jī)從錯(cuò)誤的那個(gè)順序號(hào)開始重新發(fā)送包)。超速保護(hù)所有的基本數(shù)據(jù)流和USB2.0定義的傳輸觀點(diǎn),包括傳輸類型,管道和基本數(shù)據(jù)

17、流模式。和USB2.0的區(qū)別在這章被討論,開始是協(xié)議層,然后是傳輸類型。USB2.0規(guī)范利用一系列事務(wù)處理的模式。這從本質(zhì)上意味這主機(jī)是在開始下一次事務(wù)前完成這一次總線處理(令牌,數(shù)據(jù)和握手)。分離事務(wù)處理也堅(jiān)持這相同模式,因?yàn)樗麄冇赏暾母咚偈聞?wù)組成,類似所有其他事務(wù)在相同的模式下完成。超速通過實(shí)施發(fā)送與接受同步改善了USB2.0事務(wù)的協(xié)議。因此超速USB事務(wù)處理協(xié)議本質(zhì)上是一個(gè)分離的事務(wù)處理協(xié)議,它允許在同一時(shí)間不止一個(gè)OUT總線事務(wù)處理(設(shè)備可以多個(gè))和至多一個(gè)IN總線事務(wù)處理(主機(jī)只有一個(gè))在總線上活動(dòng)。設(shè)備對事務(wù)處理的應(yīng)答的命令是確定在每個(gè)端點(diǎn)基礎(chǔ)上(例如,如果一個(gè)端點(diǎn)接收三個(gè)DP包

18、,端點(diǎn)必須為每一個(gè)DP包返回ACK TP告知收到DP包)。USB2.0協(xié)議要在繼續(xù)下一個(gè)總線事務(wù)處理之前完成整個(gè)IN或OUT事務(wù)(令牌,數(shù)據(jù)和握手包連續(xù)傳輸),所有的來自主機(jī)的傳輸本質(zhì)上是廣播到USB2.0總線上的每一個(gè)活動(dòng)設(shè)備,與之比較起來,超速協(xié)議不進(jìn)行廣播任何包(ITP除外),包只穿過需要達(dá)到目標(biāo)接收方的鏈路,主機(jī)通過發(fā)送握手請求(ACK TP)或者發(fā)送數(shù)據(jù)(OUT)開始所有的事務(wù),設(shè)備以數(shù)據(jù)或者握手來應(yīng)答。假如設(shè)備沒有有效的數(shù)據(jù)(IN)或者不能接受數(shù)據(jù)(OUT),它會(huì)以一種包(NRDY)來應(yīng)答以指示不能進(jìn)行此操作。之后,當(dāng)設(shè)備準(zhǔn)備好發(fā)送或者接收數(shù)據(jù)時(shí),它會(huì)發(fā)送一個(gè)包給主機(jī)指示它已經(jīng)準(zhǔn)備

19、好重新進(jìn)行事務(wù)處理。除此之外,超速提供將鏈路轉(zhuǎn)變成指定的低電源狀態(tài)或者退出低電源狀態(tài)的能力。低電源鏈路狀態(tài)可以在軟件使能以后由軟件控制或者自發(fā)的硬件控制來進(jìn)入。還提供一個(gè)自動(dòng)將主機(jī)與設(shè)備之間的所有鏈路由非活動(dòng)電源狀態(tài)轉(zhuǎn)變成活動(dòng)電源狀態(tài)的機(jī)制。設(shè)備在每個(gè)端點(diǎn)的描述符中記錄每個(gè)端點(diǎn)的最大包尺寸。這個(gè)尺寸只指示負(fù)載數(shù)據(jù)塊長度,不包括鏈路層和協(xié)議層的包頭(DPH)。超速的帶寬分配相似于USB2.0。4.4.1 Data Bursting(突發(fā)數(shù)據(jù))突發(fā)數(shù)據(jù)通過消除在每個(gè)基于數(shù)據(jù)包應(yīng)答的等待時(shí)間提高效率(即無需等待應(yīng)答就能處理數(shù)據(jù))。每個(gè)超速設(shè)備上的端點(diǎn)指示了它在必須等待一個(gè)明顯握手之前能夠發(fā)送/接受的

20、包數(shù)量(稱之為最大數(shù)據(jù)突發(fā)大?。W畲髷?shù)據(jù)突發(fā)大小是一個(gè)每個(gè)端點(diǎn)各自的能力,一個(gè)主機(jī)從與端點(diǎn)相關(guān)的SuperSpeed Endpoint Companion descriptor描述符決定一個(gè)端點(diǎn)的最大數(shù)據(jù)突發(fā)大小。主機(jī)在每個(gè)事務(wù)處理的基礎(chǔ)之上能動(dòng)態(tài)改變突發(fā)大小,直到最大突發(fā)大小被配置了。主機(jī)能使用不同突發(fā)大小的一個(gè)例子,不受限于,但是包括一個(gè)主機(jī)上的公平?jīng)Q策和中斷流的重試。 當(dāng)端點(diǎn)是OUT類型,主機(jī)能容易控制突發(fā)大?。ń邮掌鞅仨毧偸悄芄芾硗话l(fā)大小事務(wù)處理),當(dāng)端點(diǎn)為IN類型,主機(jī)能基于每次事務(wù)處理限制端點(diǎn)突發(fā)大小,是通過在發(fā)送給設(shè)備的應(yīng)答包中的一個(gè)域來限制。4.4.2 IN tra

21、nsfer(輸入傳輸):主機(jī)和設(shè)備應(yīng)該延續(xù)傳輸類型和端點(diǎn)屬性的約束。一個(gè)主機(jī)通過發(fā)送一個(gè)ACK確認(rèn)請求包給設(shè)備(IN)開始請求一次傳輸。這個(gè)確認(rèn)(握手包)包包含了數(shù)據(jù)包路由選擇到想要的端點(diǎn)所需要的地址信息。主機(jī)告知設(shè)備它可以發(fā)送的數(shù)據(jù)包數(shù)量和期望來自于設(shè)備第一個(gè)包的序號(hào)(0)。在應(yīng)答中,端點(diǎn)會(huì)發(fā)送正確的序列號(hào)的數(shù)據(jù)包給主機(jī),主機(jī)發(fā)的確認(rèn)包也暗中應(yīng)答了之前成功收到的數(shù)據(jù)包(以及請求下一個(gè)順序號(hào)的數(shù)據(jù)包)。注意:即使主機(jī)需要為每一個(gè)收到的數(shù)據(jù)包發(fā)送一個(gè)確認(rèn)包,但是設(shè)備可以不需等待任何確認(rèn)包就發(fā)送所需要的數(shù)據(jù)包數(shù)量。超速總線的一次IN傳輸由一個(gè)或多個(gè)IN事務(wù)處理組成,一個(gè)IN事務(wù)處理由一個(gè)或多個(gè)包組

22、成(比如主機(jī)發(fā)送ACK TP,設(shè)備發(fā)送DP或NRDY TP或STALL)。當(dāng)下面的任何條件發(fā)生,都能結(jié)束IN傳輸:·所有數(shù)據(jù)已經(jīng)成功傳送;·設(shè)備端點(diǎn)發(fā)送一個(gè)短包(比最大包尺寸小的包)作為應(yīng)答;·端點(diǎn)響應(yīng)錯(cuò)誤。(Host發(fā)送IN packet之后,設(shè)備可以持續(xù)發(fā)送多個(gè)數(shù)據(jù)包,不需要等待每個(gè)包都得到host的確認(rèn)包(ACK TP),因?yàn)槌偈莇ual-simplex(全雙工)的,但是設(shè)備收到的總的認(rèn)可包數(shù)量應(yīng)該和設(shè)備發(fā)送的數(shù)據(jù)包數(shù)量一樣。)4.4.3 OUT transfer:主機(jī)通過發(fā)送一個(gè)突發(fā)數(shù)據(jù)包給設(shè)備開始一次OUT傳輸,每一個(gè)數(shù)據(jù)包(的DP

23、H)包含需要路由選擇目標(biāo)端點(diǎn)的地址信息,也包含數(shù)據(jù)包的順序號(hào)(作為區(qū)分不同發(fā)送順序的數(shù)據(jù)包標(biāo)號(hào))。對于一個(gè)非同步事務(wù),設(shè)備返回一個(gè)確認(rèn)包,其中包含下個(gè)要接收的數(shù)據(jù)包順序號(hào)和隱含地應(yīng)答當(dāng)前數(shù)據(jù)包。注意雖然設(shè)備需要為每個(gè)收到的數(shù)據(jù)包發(fā)一個(gè)確認(rèn)包,但是主機(jī)不需等待一個(gè)應(yīng)答就能發(fā)送最大的突發(fā)數(shù)據(jù)包數(shù)量給設(shè)備。OUT transfer在下列情況下時(shí)會(huì)結(jié)束:·所有數(shù)據(jù)已經(jīng)成功傳送;·Host發(fā)送了一個(gè)短包;·端點(diǎn)響應(yīng)錯(cuò)誤。四種transfer類型:control、bulk、interrupt、isochronous transfer。用意同USB2.0,但

24、是bulk 最大包大小增加為1024B,control端點(diǎn)最大包大小增加為512B。control 端點(diǎn)不支持burst,bulk可以burst 116,bulk還增加了Stream能力;interrupt、isochronous可以bust 116(當(dāng)最大突發(fā)大小為1時(shí),對于同步傳輸,其最大包大小能為0-1024之間任意大小,對于中斷端點(diǎn),最大包大小可以在1-1024之間任意大小;如果最大突發(fā)大小為>1時(shí),最大包大小只能為1024)。4.4.5 控制傳輸控制傳輸?shù)哪康呐c特點(diǎn)與USB2.0協(xié)議完全相同。這個(gè)規(guī)格的協(xié)議層章節(jié)詳細(xì)描述了用于完成控制傳輸

25、的包,總線事務(wù)處理和事務(wù)處理流程。設(shè)備架構(gòu)那章定義了完整系列的設(shè)備使用的標(biāo)準(zhǔn)命令編碼。每個(gè)設(shè)備需要啟動(dòng)默認(rèn)控制管道作為一個(gè)消息管道。這個(gè)管道用來進(jìn)行設(shè)備初始化和管理,用來訪問設(shè)備描述符和向設(shè)備請求對其進(jìn)行操作(在設(shè)備級(jí))??刂苽鬏敱仨毦S持相同的在USB2.0中定義的請求(獲取描述符等命令)。超速系統(tǒng)會(huì)制造一個(gè)最好的條件情況支持主機(jī)與設(shè)備間的控制傳輸。正如USB2.0,功能和客戶軟件不能為控制傳輸主動(dòng)要求指定帶寬(不是能分配10%的帶寬嗎?)。4.4.5.1 控制傳輸包大小控制端點(diǎn)有一個(gè)固定的最大控制傳輸數(shù)據(jù)包大小為512字節(jié)(同時(shí)反應(yīng)了端點(diǎn)緩存大?。_€有一個(gè)最大突發(fā)大小為1(控制傳輸不支持突

26、發(fā)數(shù)據(jù)?)。這些最大值適用于在控制傳輸數(shù)據(jù)階段的所有的數(shù)據(jù)事務(wù)處理。參考8.12.2章,詳細(xì)描述了超速控制傳輸?shù)慕ⅲ╯etup)與數(shù)據(jù)階段(data)。超速設(shè)備在設(shè)備描述符的bMaxPacketSize域中必須記錄一個(gè)09H的值。默認(rèn)控制管道的默認(rèn)最大包大小的解碼規(guī)則在9.6.1章被給出(2的9次方=512B)。默認(rèn)控制管道必須支持最大順序值為32(在0-31范圍的順序值被使用)。USB2.0與超速之間,設(shè)備到主機(jī)和主機(jī)到設(shè)備的數(shù)據(jù)階段數(shù)據(jù)傳輸和完成一般沒有什么改變。4.4.5.2 控制傳輸帶寬需求設(shè)備沒有方法為控制管道指示想要的帶寬。主機(jī)通過權(quán)衡所有控制管道總線訪問需求與在那些管道上掛起事

27、務(wù)處理來提供一個(gè)最好的情況給客戶軟件和功能設(shè)備之間的傳輸。這個(gè)規(guī)則跟USB2.0相似。超速需要保留有效的總線帶寬給控制管道作為以下使用:·控制傳輸事務(wù)處理可能與其他被定義功能端點(diǎn)的事務(wù)處理一同被安排·控制傳輸?shù)闹卦嚥荒軆?yōu)先于其他最好情況的事務(wù)處理·如果有控制傳輸和塊傳輸為多個(gè)端點(diǎn)掛起,根據(jù)一個(gè)主機(jī)控制器相關(guān)的公平規(guī)則,不同端點(diǎn)的控制傳輸被選擇服務(wù)。 ·當(dāng)一個(gè)控制端點(diǎn)傳輸一個(gè)流控制事件,主機(jī)會(huì)移除來自于被安排的活動(dòng)端點(diǎn)。一旦收到一個(gè)來自于設(shè)備準(zhǔn)備好的通知,主機(jī)會(huì)對這個(gè)端點(diǎn)恢復(fù)傳輸。這些要求允許主機(jī)與設(shè)備間的控制傳輸周期性的通過有最好條件的超速總線移動(dòng)數(shù)據(jù)。

28、系統(tǒng)軟件的任意操作行為在USB2.0 5.5.4定義。超速控制傳輸同樣適用。4.4.5.3 控制傳輸數(shù)據(jù)流程超速保護(hù)消息格式和在USB2.0定義的控制傳輸?shù)囊话汶A段流程。超速協(xié)議定義了對控制傳輸建立和狀態(tài)階段的相同改變。4.4.6 塊傳輸此規(guī)格的8.12.1章詳細(xì)描述了用來完成塊傳輸?shù)陌?,總線事務(wù)處理和事務(wù)處理流程。塊傳輸類型是用來支持想要跟相當(dāng)大的海量數(shù)據(jù)通信設(shè)備,傳輸能使用任何可用的超速帶寬。超速塊傳輸功能端點(diǎn)提供以下:·對基于有限帶寬的超速總線訪問·保證數(shù)據(jù)的發(fā)送,但是不保證帶寬和發(fā)送時(shí)間超速維持下面的塊傳輸管道特征:·對塊傳輸管道通信流沒有強(qiáng)制固定的數(shù)據(jù)結(jié)

29、構(gòu)·塊傳輸管道是一個(gè)流式管道,因此總是有通信流進(jìn)出主機(jī)。如果應(yīng)用需要一個(gè)雙向塊傳輸通信流,必須使用兩個(gè)塊傳輸管道(一個(gè)OUT,一個(gè)IN)。標(biāo)準(zhǔn)USB塊傳輸管道提供移動(dòng)數(shù)據(jù)流的能力。超速增加了協(xié)議級(jí)支持多倍流模式的流式概念。4.4.6.1 塊傳輸數(shù)據(jù)包大小塊傳輸端點(diǎn)應(yīng)該在端點(diǎn)描述符中設(shè)置最大數(shù)據(jù)包大小為1024字節(jié)。也要指定端點(diǎn)在超速總線上能夠接受或發(fā)送的突發(fā)大小。可允許的塊傳輸端點(diǎn)突發(fā)大小在1到16的范圍。所有的超速塊傳輸端點(diǎn)要支持0-31的順序值。主機(jī)需要支持任何超速bulk傳輸端點(diǎn)和所有的bulk傳輸突發(fā)大小。主機(jī)要確保發(fā)送給端點(diǎn)的數(shù)據(jù)包的數(shù)量不能超過描述符中定義的最大包大小。此

30、外,發(fā)送的突發(fā)數(shù)據(jù)包不能超過記錄的最大突發(fā)大小。塊傳輸功能端點(diǎn)發(fā)送的數(shù)據(jù)包,其數(shù)據(jù)域必須總是小于等于1024字節(jié)。如果塊傳輸數(shù)據(jù)量超過1024,則突發(fā)事務(wù)中所有數(shù)據(jù)包除了最后一次,都必須是1024字節(jié)大小。最后一次是剩下的不足1024字節(jié)的數(shù)據(jù)。塊傳輸可以持續(xù)多個(gè)總線事務(wù)處理。塊傳輸在端點(diǎn)有以下情況時(shí)完成:·已經(jīng)準(zhǔn)確傳輸完了所期待的數(shù)據(jù)·傳輸了一個(gè)比1024字節(jié)少的數(shù)據(jù)包(短包)·應(yīng)答STALL握手包4.4.6.2 塊傳輸帶寬需求正如USB2.0,塊傳輸功能端點(diǎn)沒有方法為塊管道指定想要的帶寬。塊事務(wù)處理只發(fā)生在超速總線上有可用帶寬的基礎(chǔ)上。超速提供一個(gè)最好的條件在

31、客戶軟件和功能設(shè)備間傳輸塊數(shù)據(jù)??刂苽鬏攲偩€操作比塊傳輸更有優(yōu)先權(quán)(對總線操作的優(yōu)先級(jí),控制傳輸比較高)。當(dāng)有多個(gè)端點(diǎn)的bulk傳輸掛起時(shí),主機(jī)會(huì)根據(jù)一個(gè)公平訪問原則提供事務(wù)處理的機(jī)會(huì)給每個(gè)端點(diǎn),這就是主機(jī)依賴性操作。所有在系統(tǒng)中掛起的塊傳輸競爭相同的有效總線時(shí)間。端點(diǎn)和客戶軟件不能為塊傳輸假定配置一個(gè)指定的服務(wù)率(總線帶寬不能為塊傳輸主動(dòng)分配)??偩€時(shí)間被提供給客戶軟件,由于其他設(shè)備被插入到系統(tǒng)或者從系統(tǒng)中移除或者因?yàn)閴K傳輸被其他功能端點(diǎn)需要,端點(diǎn)能被改變??蛻糗浖荒芗俣ㄔ趬K傳輸和控制傳輸之間的順序,即在一些情形中,塊傳輸能在控制傳輸?shù)那懊孢M(jìn)行。主機(jī)在帶有塊傳輸端點(diǎn)的事務(wù)處理中能使用任何

32、在1和記錄的最大的突發(fā)大小,更高效的利用有效總線帶寬。例如,可能有比有效總線帶寬更多的塊傳輸,所以主機(jī)可以每次使用事務(wù)中更小的數(shù)據(jù)突發(fā),以提供公平服務(wù)給所有掛起的塊數(shù)據(jù)流(因?yàn)閴K傳輸多,有效帶寬少,所以為了能公平給所有等待的塊傳輸機(jī)會(huì),主機(jī)會(huì)使用事務(wù)處理中比較小的數(shù)據(jù)突發(fā)大小,從而將有效帶寬充分平均分配給所有塊傳輸)。當(dāng)一個(gè)塊傳輸端點(diǎn)傳輸一次流控制事件(在8.10.1章定義)時(shí),主機(jī)會(huì)從安排的活動(dòng)端點(diǎn)中移除它,主機(jī)會(huì)基于接收到來自于設(shè)備的準(zhǔn)備好通知恢復(fù)端點(diǎn)的傳輸。4.4.6.3 塊傳輸數(shù)據(jù)流程塊事務(wù)處理為數(shù)據(jù)可靠傳輸使用標(biāo)準(zhǔn)的突發(fā)序列,在8.10.2章定義。塊端點(diǎn)通過一次合適的控制傳輸(Set

33、Configuration, SetInterface, ClearEndpointFeature)被初始化成最初的發(fā)送/接受順序號(hào)和突發(fā)大小值(8.12.1.2 和8.12.1.3)。同樣,主機(jī)在已經(jīng)成功完成了上面提到的合適的控制傳輸后,配置塊傳輸管道初始的發(fā)送/接收序列號(hào)和突發(fā)大小值。超速塊管道的停止條件跟USB2.0定義的塊端點(diǎn)一樣同樣有副作用。從停止條件中恢復(fù)也跟USB2.0相同。塊管道停止條件包括STALL握手包作為一次事務(wù)處理的應(yīng)答或者由于發(fā)送錯(cuò)誤主機(jī)事務(wù)處理的重試次數(shù)消耗完的應(yīng)答。4.4.7 中斷傳輸中斷傳輸類型用來支持帶有輪詢服務(wù)間隔需要高可靠性傳輸小數(shù)量數(shù)據(jù)的設(shè)備。這個(gè)規(guī)格的

34、協(xié)議層章詳細(xì)描述了與中斷傳輸相關(guān)的包,總線事務(wù)和事務(wù)處理流程。超速中斷傳輸類型一般提供以下方面:·能保證最大的服務(wù)間隔·能保證在下一次服務(wù)間隔中嘗試重新傳輸在每個(gè)服務(wù)周期中為中斷端點(diǎn)嘗試中斷傳輸,保留一定帶寬保證在每個(gè)服務(wù)間隔嘗試傳輸。一旦傳輸成功,就不嘗試另外一次傳輸(在此周期內(nèi)),直到下一個(gè)輪詢服務(wù)周期到來(保證每個(gè)服務(wù)周期中嘗試一次中斷傳輸)。如果端點(diǎn)以沒有準(zhǔn)備好的通知或者一個(gè)指示不能接收任何包的ACK應(yīng)答,則主機(jī)不會(huì)在此次服務(wù)中嘗試另外一次到端點(diǎn)的傳輸,除非接收到準(zhǔn)備好的通知。然后主機(jī)必須在收到(準(zhǔn)備好)通知后的2個(gè)服務(wù)周期內(nèi)服務(wù)端點(diǎn)。端點(diǎn)服務(wù)周期的請求在它的端點(diǎn)描

35、述符中描述。超速維持中斷管道下面的特性:·沒有數(shù)據(jù)內(nèi)容結(jié)構(gòu)用于中斷管道通信流·中斷管道是一條流式管道,因此總是單向的。4.4.7.1 中斷傳輸包大小中斷傳輸端點(diǎn)指定了超速總線上可以接受的/發(fā)送的最大數(shù)據(jù)包大小,對于支持突發(fā)次數(shù)(burst size)大于1的中斷端點(diǎn),僅僅允許的最大數(shù)據(jù)包大小為1024字節(jié);對于突發(fā)次數(shù)等于1的中斷端點(diǎn),最大數(shù)據(jù)包大小能為1到1024的任何值。中斷端點(diǎn)允許的最大的突發(fā)次數(shù)是3. 所有的超速中斷端點(diǎn)應(yīng)該支持在范圍0-31的順序值。超速中斷端點(diǎn)只用來移動(dòng)帶有界限服務(wù)間隔的小數(shù)量數(shù)據(jù)。超速協(xié)議不要求中斷事務(wù)處理的包為最大化大?。床灰竺總€(gè)數(shù)據(jù)包都

36、為1024字節(jié)大)。主機(jī)被要求支持超速中斷端點(diǎn),主機(jī)應(yīng)該支持所有允許的中斷包大小和突發(fā)大小的組合。主機(jī)要確保在一次突發(fā)事務(wù)處理中發(fā)送到端點(diǎn)的數(shù)據(jù)包大小不能超過端點(diǎn)的最大數(shù)據(jù)包大小。在突發(fā)事務(wù)處理中主機(jī)也不能發(fā)送超過端點(diǎn)最大突發(fā)大小的數(shù)據(jù)包數(shù)量。中斷端點(diǎn)應(yīng)該總是發(fā)送帶有數(shù)據(jù)域小于等于端點(diǎn)最大數(shù)據(jù)包大小的包,如果中斷傳輸有比適應(yīng)端點(diǎn)最大數(shù)據(jù)包大小更多的信息,所有的突發(fā)事務(wù)處理的數(shù)據(jù)都要求為最大包大小,除了突發(fā)事務(wù)處理的最后一個(gè)數(shù)據(jù)包,就是包含剩下的數(shù)據(jù)。中斷傳輸可以包含多個(gè)突發(fā)事務(wù)。中斷傳輸是在端點(diǎn)做以下幾個(gè)完成的:·已經(jīng)傳輸了所需精確的數(shù)據(jù)量·傳輸了比最大包尺寸小的數(shù)據(jù)包(短

37、包)·應(yīng)答STALL握手包4.4.7.2 中斷傳輸帶寬需求周期性端點(diǎn)(中斷和同步)可以被分配到超速總線可利用帶寬的80%。中斷管道的端點(diǎn)通過端點(diǎn)描述符指定它想要的服務(wù)間隔,中斷端點(diǎn)能指定一個(gè)想要的周期2(bInterval-1) x 125 s,bInterval值是在范圍1到(包含16)16。USB系統(tǒng)軟件會(huì)在配置期間使用這個(gè)信息,決定能被采用的連續(xù)周期。被系統(tǒng)提供的周期可以縮到比設(shè)備想要的還短,最短到超速定義的周期大?。ㄒ彩菂⒖嫉目偩€輪詢周期125s)。注意總線上的錯(cuò)誤能阻止中斷事務(wù)處理在總線上的成功傳輸,因此超過了想要的周期。超速中斷端點(diǎn)在每個(gè)服務(wù)周期能提升到三個(gè)最大數(shù)據(jù)包的大

38、?。?x1024bytes)。對于中斷傳輸,主機(jī)沒有方法決定端點(diǎn)是否在沒有訪問端點(diǎn)和請求一個(gè)中斷傳輸下進(jìn)行源/同步數(shù)據(jù)。如果一次IN中斷端點(diǎn)沒有中斷數(shù)據(jù)要傳輸或者OUT中斷端點(diǎn)沒有充足buffer接受數(shù)據(jù),當(dāng)被主機(jī)訪問的話,會(huì)以一個(gè)流控制進(jìn)行應(yīng)答。當(dāng)有中斷數(shù)據(jù)掛起避免客戶軟件錯(cuò)誤通知傳輸完成的時(shí)候,端點(diǎn)應(yīng)該只提供中斷數(shù)據(jù)。一個(gè)數(shù)據(jù)負(fù)載為零長度的數(shù)據(jù)包是一次有效傳輸,可以用來進(jìn)行某些操作。主機(jī)可以在輪詢服務(wù)周期中任何時(shí)刻訪問一個(gè)端點(diǎn)。 中斷端點(diǎn)不應(yīng)該在嘗試事務(wù)處理之間分配固定的空間。中斷端點(diǎn)只能假定它在輪詢服務(wù)周期會(huì)收到一次事務(wù)處理嘗試。錯(cuò)誤能阻止輪詢服務(wù)周期中的數(shù)據(jù)成功傳輸,主機(jī)不被要求在同一

39、個(gè)輪詢服務(wù)周期中重新嘗試事務(wù)處理,只在下一個(gè)輪詢服務(wù)周期中重試事務(wù)處理。4.4.7.3中斷傳輸數(shù)據(jù)流程中斷事務(wù)處理使用標(biāo)準(zhǔn)的突發(fā)流程進(jìn)行可靠的數(shù)據(jù)傳輸(在8.10.2)。中斷端點(diǎn)通過適當(dāng)?shù)目刂苽鬏敚⊿etConfiguration, SetInterface, ClearEndpointFeature)被初始化成初始的發(fā)送或者接收順序號(hào)值和突發(fā)大小(參考8.12.4.1和8.12.4.2)。主機(jī)在完成了合適的控制傳輸后成功為中斷管道設(shè)置初始的發(fā)送/接收序列好和突發(fā)大小。超速中斷管道停止條件和USB2.0定義的中斷端點(diǎn)一樣有相同的副作用。從停止條件中恢復(fù)也跟USB2.0相同(Section 5.

40、7.5 in the Universal Serial Bus Specification, Revision 2.0.)。中斷管道停止條件包含STALL握手包對事務(wù)處理應(yīng)答或者對由于發(fā)送錯(cuò)誤導(dǎo)致主機(jī)事務(wù)處理嘗試次數(shù)的消耗的應(yīng)答。4.4.8 同步傳輸正如USB2.0一樣,超速同步傳輸類型是用來支持想要能容忍錯(cuò)誤,周期性的輪詢服務(wù)的傳輸流。超速跟USB2.0一樣不發(fā)送起始幀,但是時(shí)序信息要通過同步時(shí)間戳包(ITP)被發(fā)送給設(shè)備。這個(gè)規(guī)格的協(xié)議層章詳細(xì)描述了用來完成同步傳輸?shù)陌偩€事務(wù)和事務(wù)處理流程。也描述了怎么樣傳送時(shí)序信息給設(shè)備。超速同步傳輸類型提供下面的:·保證在超速總線上一定范

41、圍延遲嘗試事務(wù)處理的帶寬·只要數(shù)據(jù)被提供給管道,保證通過管道的數(shù)據(jù)率同步事務(wù)處理在每個(gè)服務(wù)周期在同步端點(diǎn)上被嘗試。超速總線上承認(rèn)的同步端點(diǎn)被保證它們需要的總線帶寬。主機(jī)在對設(shè)備的特殊端點(diǎn)進(jìn)行輪詢服務(wù)間隔的任何時(shí)候都能請求來自設(shè)備的數(shù)據(jù)或者發(fā)給設(shè)備數(shù)據(jù)。被要求的端點(diǎn)輪詢服務(wù)周期在端點(diǎn)描述符中被定義。超速同步傳輸是用來支持一個(gè)以相同平均速率產(chǎn)生和消耗數(shù)據(jù)的發(fā)送器/接受器。超速同步管道是一種流管道,總是單向的管道。端點(diǎn)描述符確定被給定的同步管道通信流是流向主機(jī)還是流出主機(jī)。如果設(shè)備需要雙向的同步通信流,則要使用兩個(gè)同步管道,一個(gè)輸入,一個(gè)輸出。無論任何時(shí)候當(dāng)同步傳輸需要穿過非活動(dòng)鏈接, 超

42、速電源管理都會(huì)妨礙到同步傳輸。結(jié)果延遲會(huì)導(dǎo)致數(shù)據(jù)在服務(wù)周期內(nèi)沒有到達(dá)。為防止這種情況,超速定義了PING和PING_RESPONSE機(jī)理(參考8.5.7),開始一次同步傳輸之前,主機(jī)可以發(fā)送一個(gè)PING包給設(shè)備,設(shè)備以PING_RESPONSE包應(yīng)答通知主機(jī)所有連到設(shè)備的鏈路在活動(dòng)狀態(tài)。4.4.8.1 同步傳輸包大小同步傳輸端點(diǎn)指定了端點(diǎn)在總線上能夠接收/發(fā)送的最大數(shù)據(jù)包大小。對于支持突發(fā)尺寸大于1的同步端點(diǎn),允許的最大數(shù)據(jù)包大小只能為1024字節(jié);對于支持突發(fā)尺寸等于1的同步端點(diǎn),最大數(shù)據(jù)包大小可為0到1024之間的任何值。同步端點(diǎn)允許的最大突發(fā)尺寸為16.但是同步端點(diǎn)能在同一個(gè)服務(wù)周期中請

43、求3次突發(fā)事務(wù)處理。超速協(xié)議不要求同步數(shù)據(jù)包一定要為最大數(shù)據(jù)包大小,但是如果傳輸?shù)臄?shù)據(jù)量比最大數(shù)據(jù)包尺寸小的話,數(shù)據(jù)包不被填滿。主機(jī)應(yīng)該支持超速同步端點(diǎn)所有的同步數(shù)據(jù)包大小和突發(fā)大小。主機(jī)應(yīng)該確保發(fā)送到端點(diǎn)的數(shù)據(jù)包量小于端點(diǎn)描述符中定義的最大數(shù)據(jù)包大小;還要確保突發(fā)事務(wù)處理中的數(shù)據(jù)包量不能超過端點(diǎn)的最大突發(fā)大小。同步端點(diǎn)應(yīng)該總是發(fā)送數(shù)據(jù)域小于等于端點(diǎn)的最大數(shù)據(jù)包大小的數(shù)據(jù)包。如果同步傳輸對端點(diǎn)最大包大小有充足的信息,突發(fā)事務(wù)處理中的所有數(shù)據(jù)都要求為最大數(shù)據(jù)包大小,除非突發(fā)事務(wù)中最后一次數(shù)據(jù)包,即包含了剩下的數(shù)據(jù)。同步傳輸能進(jìn)行幾次突發(fā)事務(wù)處理。4.4.8.2 同步傳輸帶寬需求周期性端點(diǎn)(中斷和

44、同步傳輸)能分配到80%的有效超速總線帶寬。同步管道的端點(diǎn)通過端點(diǎn)描述符指定它想要的輪詢間隔。同步端點(diǎn)能指定想要的周期2(bInterval-1) x 125 s。bInterval的范圍是1-16. 系統(tǒng)軟件將在配置時(shí)候使用這個(gè)信息決定端點(diǎn)是否能被主機(jī)安排。注意總線錯(cuò)誤能阻止同步事務(wù)在總線上的的成功進(jìn)行。超速同步端點(diǎn)在每個(gè)服務(wù)周期能進(jìn)行3次最大突發(fā)大小為16的事務(wù)處理的數(shù)據(jù)包傳輸(3x16x1024bytes)。主機(jī)會(huì)在每個(gè)服務(wù)周期發(fā)送數(shù)據(jù)到端點(diǎn)或者從端點(diǎn)請求數(shù)據(jù)。注意,如果端點(diǎn)沒有同步數(shù)據(jù)發(fā)送而被主機(jī)訪問請求數(shù)據(jù),則會(huì)發(fā)送一個(gè)0長度包作為數(shù)據(jù)請求的應(yīng)答。主機(jī)可以在合適的服務(wù)間隔的任何時(shí)刻訪

45、問端點(diǎn)。同步傳輸端點(diǎn)不應(yīng)該嘗試在事務(wù)處理之間假定一個(gè)固定空間(兩次事務(wù)處理間相隔的時(shí)間不固定?),同步端點(diǎn)只能假定它在服務(wù)周期會(huì)收到一次事務(wù)處理的嘗試。輪詢服務(wù)周期發(fā)生的錯(cuò)誤可以阻止數(shù)據(jù)的成功傳輸。但是由于同步事務(wù)處理中的包沒有應(yīng)答,主機(jī)沒有方法知道包沒有成功傳輸,因此不會(huì)重試包傳輸。4.4.8.3 同步傳輸數(shù)據(jù)流程同步端點(diǎn)總是在輪詢服務(wù)周期中從包順序號(hào)0開始發(fā)送數(shù)據(jù)包。每個(gè)在輪詢服務(wù)間隔中被依次連續(xù)發(fā)送的的數(shù)據(jù)包都帶有下一個(gè)遞增的順序號(hào)。順序號(hào)應(yīng)該從0到31循環(huán)。當(dāng)發(fā)送了32個(gè)包后,又從0開始發(fā)送。同步端點(diǎn)不支持重試,不能應(yīng)答流控制。4.4.9 設(shè)備告知(非管道模式)設(shè)備告知是一種為設(shè)備向主

46、機(jī)進(jìn)行設(shè)備級(jí)和總線級(jí)的事件通知的異步通信標(biāo)準(zhǔn)方式。這個(gè)特色沒有映射到為標(biāo)準(zhǔn)傳輸類型定義的管道模式。設(shè)備告知總是由設(shè)備開始。數(shù)據(jù)流通知總是從設(shè)備到主機(jī)。第七章    鏈路層7.1 字節(jié)順序包或者鏈路命令中的多字節(jié)域以小端順序通過總線傳輸。即先傳輸最低有效字節(jié)(LSB),最后傳輸最高有效字節(jié)(MSB)。Figure 7-2展示了字節(jié)順序的例子:7.2.1 包和包幀超速使用包來傳輸信息。鏈路電源管理包、事務(wù)包、同步時(shí)間戳包和數(shù)據(jù)包的詳細(xì)包格式在第8.2章定義。在協(xié)議層,頭包幀是不可見的。7.2.1.1 頭包結(jié)構(gòu)所有頭包有20符號(hào)長度,格式在在Figure 7-

47、3中. 包括有LMPs, TPs, ITPs, 和DPHs。頭包由三個(gè)部分組成,一個(gè)頭包幀,一個(gè)包頭,一個(gè)鏈路控制字。7.2.1.1.1 頭包幀頭包幀,HPSTART(header)順序集,是一個(gè)4個(gè)基于K標(biāo)志的有序集合頭包起始幀。被定義為3個(gè)連續(xù)的SHP標(biāo)志后面跟著一個(gè)K-symbol的 EPF。一個(gè)頭包應(yīng)該總是以HPSTART序列集開始。頭包幀的結(jié)構(gòu)是能容忍1個(gè)符號(hào)錯(cuò)誤的。7.2.1.1.2 包頭一個(gè)包頭由14個(gè)字節(jié)組成,格式如Figure 7-4所示。它包括12字節(jié)的頭信息和一個(gè)2字節(jié)的CRC-16。CRC-16用來保護(hù)12字節(jié)的頭信息的數(shù)據(jù)完整性。7.2.1.2 數(shù)據(jù)包結(jié)構(gòu)數(shù)據(jù)包是一種

48、由數(shù)據(jù)包頭(DPH)和一個(gè)數(shù)據(jù)負(fù)載包(DPP)組成的特別包。DPH定義在7.2.1.1.章。另外一方面,DPP由數(shù)據(jù)包幀和可變長度的數(shù)據(jù)構(gòu)成,可變長度數(shù)據(jù)后面跟著CRC-32。Figure 7-8描述了DPP格式。7.2.1.2.1 數(shù)據(jù)包幀DPP幀由8個(gè)K-symbols,一個(gè)作為DPP起始幀的four-symbol 有序集和作為DPP結(jié)束幀的four-symbol有序集構(gòu)成。正如Figure 7-8 所表示的,作為DPP起始幀的DPPSTART序列集,由三個(gè)連續(xù)的SDP的K-symbols和后面跟著的一個(gè)EPF的K-symbol組成。一個(gè)DPP結(jié)束幀序列集有兩種不同類型。第一種類型,DPP

49、END序列集,它是一個(gè)由三個(gè)連續(xù)的K-symbol of END和后面跟著的單個(gè)K-symbol of EPF 組成的結(jié)束幀有序集。第二種類型,DPPABORT序列集,是一個(gè)DPP(未完成)終止幀序列集,它由3個(gè)連續(xù)的K-symbol of EDB和后面跟著的單個(gè)K-symbol of EPF組成。DPPEND序列集是用來指示完成了的DPP的正常結(jié)束,而DPPABORT序列集用來指示一個(gè)DPP的半途終止結(jié)束。7.2.1.2.2 數(shù)據(jù)包DPP區(qū)域有0-1024字節(jié)的數(shù)據(jù),后面跟著4字節(jié)的CRC-32。任何一個(gè)DPP包提前結(jié)束應(yīng)該包含一個(gè)DPPABORT有序集。DPP應(yīng)該快速無縫的跟著它相對應(yīng)的D

50、PH。CRC-32略7.2.1.2.3 在數(shù)據(jù)包頭(DPH)域數(shù)據(jù)負(fù)載包(DPP)之間的空間間隙在數(shù)據(jù)包頭(DPH)域數(shù)據(jù)負(fù)載包(DPP)之間不應(yīng)該有空間間隙,如Figure 7-10.所示:頭包由共20個(gè)字節(jié),四個(gè)字節(jié)的HPSTART序列集,14個(gè)字節(jié)的包頭(Packet Header),2個(gè)字節(jié)的鏈路控制字構(gòu)成。HPSTART似乎是用于鏈路雙方數(shù)據(jù)時(shí)鐘恢復(fù)同步用途,類似于USB2.0時(shí)的SYNC(同步序列);Packet Header則包含12個(gè)字節(jié)的包信息和2個(gè)字節(jié)的16位CRC;Link Control Word為2個(gè)byte,包括3 

51、bit Header Sequence Number,3 bit reserved,3 bit Hub Depth Index,1 bit Delayed bit,1 bit Deferred bit,和5bit CRC。在第八章將會(huì)看到,LMP,TP,ITP,DPH其實(shí)都是頭包結(jié)構(gòu),只不過12byte的包信息定義了不同的格式意義。數(shù)據(jù)包構(gòu)造:數(shù)據(jù)包其實(shí)是由一個(gè)數(shù)據(jù)包頭(Data Packet Header,DPH)

52、后面無縫跟著一個(gè)數(shù)據(jù)負(fù)載包(Data Packet Payload,DPP)構(gòu)成的。DPH的結(jié)構(gòu)同上面的頭包結(jié)構(gòu),DPP的結(jié)構(gòu)如圖7-8所示:DPP由四個(gè)字節(jié)的DPPSTART(類似頭包中的HPSTART),01024字節(jié)的數(shù)據(jù),四個(gè)字節(jié)的32位CRC,以及四個(gè)字節(jié)的DPPEND(作用類似于USB2.0的EOP?在數(shù)據(jù)有異常的時(shí)候這個(gè)將是DPPABORT)構(gòu)成。第8章 、協(xié)議層協(xié)議層管理Host和Device間end-to-end數(shù)據(jù)流,是建立在鏈路層正確傳輸基礎(chǔ)上的。本章詳細(xì)描述:·包類型;(LMP,DP,TP,ITP)·包格式;·包期待的響

53、應(yīng);·四種transaction類型;8.1超速事務(wù)處理隨著向設(shè)備端點(diǎn)請求或者發(fā)送數(shù)據(jù),主機(jī)開始超速事務(wù)處理。隨著端點(diǎn)發(fā)送數(shù)據(jù)或者對接收數(shù)據(jù)應(yīng)答完成事務(wù)處理。在超速總線上的一次傳輸是一次從設(shè)備到主機(jī)的數(shù)據(jù)請求,然后將其分解為一次或者幾次突發(fā)事務(wù)處理。當(dāng)超速主機(jī)在等待當(dāng)前總線事務(wù)完成的時(shí)候, 它可能會(huì)開始一次或多次OUT總線事務(wù)輸出到一個(gè)或幾個(gè)端點(diǎn)。然而,超速主機(jī)不應(yīng)該開始另外一次對端點(diǎn)的IN總線事務(wù),直到主機(jī):(同時(shí)能進(jìn)行多個(gè)OUT事務(wù),只能進(jìn)行一個(gè)IN事務(wù))·收到一個(gè)DP包或者NRDY或STALL TP包或者因?yàn)楫?dāng)前被發(fā)送到非同步端點(diǎn)的ACK TP包的事務(wù)處理超時(shí)

54、3;收到了所有被請求的DP包或者主機(jī)收到一個(gè)短包,或者一個(gè)最后包標(biāo)志域置位的DP包,或者因?yàn)楫?dāng)前被發(fā)送到同步端點(diǎn)的ACK TP(注意同步端點(diǎn)沒有錯(cuò)誤應(yīng)答)事務(wù)處理超時(shí)對于非同步傳輸,端點(diǎn)可以通過下面應(yīng)答有效的事務(wù)處理:·返回一個(gè)NRDY TP包·在OUT事務(wù)中通過返回一個(gè)ACK TP(正確應(yīng)答)包接收數(shù)據(jù)·在IN事務(wù)中返回一個(gè)或更多數(shù)據(jù)包·如果發(fā)生了內(nèi)部端點(diǎn)錯(cuò)誤,則返回一個(gè)STALL TP包一個(gè)NRDY TP包應(yīng)答指示端點(diǎn)還沒有準(zhǔn)備好接受或發(fā)送數(shù)據(jù)。因此,設(shè)備端點(diǎn)和主機(jī)之間不應(yīng)該有更多進(jìn)一步操作,除非端點(diǎn)通知主機(jī)它準(zhǔn)備好了。允許在設(shè)備和主機(jī)之間實(shí)現(xiàn)一個(gè)鏈

55、路降低功耗狀態(tài),直到端點(diǎn)準(zhǔn)備好接受或發(fā)送數(shù)據(jù)。當(dāng)準(zhǔn)備好時(shí),端點(diǎn)異步發(fā)送一個(gè)通知(ERDY TP)給主機(jī),告知它現(xiàn)在準(zhǔn)備好移動(dòng)數(shù)據(jù),主機(jī)通過重新安排請求事務(wù)進(jìn)行應(yīng)答(返回ACK TP?)。注意當(dāng)它們被主機(jī)進(jìn)行周期性輪詢服務(wù)時(shí),同步傳輸不使用ERDY和NRDY TP包。此外,發(fā)送到或者接收自同步端點(diǎn)的數(shù)據(jù)包不被應(yīng)答(同步傳輸不檢測錯(cuò)誤,不應(yīng)答錯(cuò)誤)。也就是ACK TP包不被主機(jī)發(fā)送給同步端點(diǎn)來應(yīng)答對數(shù)據(jù)包的接收。(如果同步端點(diǎn)不能發(fā)送給主機(jī)要求的數(shù)據(jù)則發(fā)送一個(gè)長度為0的數(shù)據(jù)包)端點(diǎn)只對主機(jī)的要求做應(yīng)答。主機(jī)是負(fù)責(zé)在總線上安排事務(wù)處理,保證數(shù)據(jù)傳輸?shù)恼_與公平,這通過IN和OUT請求的命令和時(shí)序來實(shí)

56、現(xiàn)。事務(wù)處理不是廣播的(USB2.0是廣播),在主機(jī)和設(shè)備間的包傳輸是有一條直接路徑。任何沒有使用的鏈路都會(huì)進(jìn)入降低功耗狀態(tài),使得總線遵從強(qiáng)制的電源管理。8.2 包類型:LMP,TP,DP,ITP四種。所有的包有一個(gè)14字節(jié)的頭,結(jié)尾跟著一個(gè)2字節(jié)的鏈路控制字組成(16byte)。所有的包頭都有兩個(gè)需要被接收方使用的公共域(版本與類型),用來決定怎樣處理包,所有的包頭包含一個(gè)2字節(jié)CRC-16。包頭有一個(gè)不可改變的錯(cuò)誤率,它為1012個(gè)位中不能出現(xiàn)一個(gè)錯(cuò)誤。所有的設(shè)備(包括集線器)和主機(jī)使用他們收到的LMP包。集線器額外負(fù)責(zé)將DP,ITP,TP傳遞到連接設(shè)備的下游端口和連接主機(jī)的上游端口。注意

57、ITP只能被主機(jī)發(fā)送和被設(shè)備接收(廣播)。LMP所有的包都被集線器傳遞出去,除非包是路由選擇集線器它自己。傳遞ITP包額外的規(guī)則在8.7被描述。注意TP,ITP,或者DPH中的鏈路控制字(比如DF域)在被傳遞出去之前可以被集線器更改。鏈路控制字的域在8.3.1.2被描述。如果Type域的值是TP或者DPH,路由信息(字符)和設(shè)備地址域就跟在Type域后。路由信息是被集線器用來路由選擇上游端口的包傳遞到正確的下游端口。從設(shè)備到主機(jī)的包組成的流總是從集線器的下游端口通過路由選擇傳到上游端口。設(shè)備地址域被提供給主機(jī)用來驗(yàn)證一個(gè)包的源頭。所有的其他域在這章會(huì)被描述。數(shù)據(jù)包的頭部包含了用來描述數(shù)據(jù)塊的額

58、外信息。數(shù)據(jù)塊(DPP)總是被跟著一個(gè)4字節(jié)CRC-32用來判定數(shù)據(jù)的正確性。數(shù)據(jù)塊和CRC-32一同組成了數(shù)據(jù)負(fù)載包DPP.8.3 包格式這個(gè)區(qū)域定義了超速包。它定義了組成各種包類型和子類型的區(qū)域。這個(gè)區(qū)域的包類型和位定義以未編碼數(shù)據(jù)格式呈現(xiàn)。添加到串流上的符號(hào)有影響(即幀包,控制或修改鏈路),像位編碼,鏈路層幀,為了精簡講述,已經(jīng)被移除了(它們對協(xié)議層是不可見的)。詳細(xì)參考6,7章信息。在總線操作,效率或者時(shí)序討論到的地方,會(huì)描述那些底層操作對提供額外內(nèi)容的影響。8.3.1 所有頭的公共區(qū)域所有超速頭以類型域開始用來決定怎樣處理包。在頂層這個(gè)告訴包接收方怎樣處理包:是使用它(DP)或者是管

59、理鏈路(LMP)或移動(dòng)和控制設(shè)備和主機(jī)間的數(shù)據(jù)流(TP)。8.3.1.1 保留值和保留區(qū)域處理保留區(qū)域和保留值不應(yīng)該用在一個(gè)商家指定操作中。發(fā)送器應(yīng)該設(shè)置所有保留域?yàn)?,接收器應(yīng)該忽略任何保留值。發(fā)送器不應(yīng)該設(shè)置已定義域?yàn)楸A糁担邮掌鲬?yīng)該忽略任何在定義域上設(shè)置保留值的包。注意,接收器應(yīng)該應(yīng)答包,返回credit作為每一個(gè)在7.2.4.1章指定的要求。8.3.1.2 類型域類型域是一個(gè)5位區(qū)域,用來確認(rèn)包格式。類型用來決定怎樣使用包或被中間鏈路傳送。8.4 鏈路管理包(LMP)LMP是指類型域被設(shè)置為鏈路管理包的包。這些包用來管理單個(gè)鏈路,它們沒有帶有尋址信息和路由信息。可以是由集線器端口命令

60、產(chǎn)生。例如,集線器端口命令用來設(shè)置U2非活動(dòng)超時(shí)。除此之外,它們用來交換端口屬性信息和測試目的。格式如圖8-4所示:可以看到,結(jié)構(gòu)上就是第七章中的頭包結(jié)構(gòu)(從協(xié)議層角度看包格式,屏蔽了HPSTART序列以及8b/10b轉(zhuǎn)換碼等物理層的特性)。Type是5bit,所有類型的包都有的,其意義為:00000: LMP00100: TP01000:  DP01100:  ITP所以LMP類型包,Type總是00000。8.4.1 子類型域SubType為4bit,表示了是何種類型的LMP:0000:reserved0001:Set Link Function0010:  U2 Inactivity 

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論