




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第四章 USB 數據流模型本章介紹了數據如何在 USB 中傳送,將涉及到系統中關于信號的和協議定義的一層。對于 USB 系統中這一層中各個定義的詳細情況可參見第六第七章。本介紹的數據傳送格式,將在第八章到第十一逐步擴充。所有的實現者必須閱讀此章,以便了解 USB中一些非常的概念。4.1 實現者的視圖USB 提供了在一臺主機和若干臺附屬的 USB 設備之間的通信功能,從終端用戶的角度看到的 USB 系統,可簡單地用圖 4.1 表示:圖 41 USB 主機/設備的簡單模型但在實際的實現上,具體的系統要比這復雜,不同層次的實現者對 USB 的有不同要求,這使得我們必須從不同的層次觀察 USB 系統。
2、USB 系統提出了一些重要的概念和情況來支持現代個人計算機所提出的可靠性要求,所以 USB 的分層理解是必須的。它能使不同層次的實現者只關心 USB 相關層次的特性功能細節,而不必掌握從硬件結構到軟件系統的所有細節。USB 的這種層次結構如圖 4-2 所示,主機物理設備實際通信流邏輯通信流需實現的區域圖 42 USB 需實現的區域USB主機器USB系統軟件客戶軟件USB總線接口USB邏輯設備應用USB 主機USB 設備各層次的具體在以后逐步介紹。特別地,有四個層次的實現是較為集中的。·USB 物理設備(USB Physical Device):USB 上的一種硬件,可運行一些用戶程序
3、。·客戶軟件(client software):為一個特定的 USB 設備而在主機上運行的軟件。這種軟件由 USB 設備的提供者提供,或由操提供。·USB 系統軟件(USB system software):此軟件用于在特定的操中支持 USB,它由操提供。與具體的 USB 設備無關,也于客戶軟件。·USB 主機器(USB Host Controller):總線在主機方面的接口,是軟件和硬件的總和。用于支持 USB 設備通過 USB 連到主機上。這四個 USB 系統的組成部分在功能上存在相互重疊的部分。為了支持主機與客戶之間的堅固可靠的通信,還需要在后面對這些部分進
4、行細節性描述。如圖 4-2 所示,一臺主機與一個 USB 設備間的連接是由許多層上的連接組成。USB 總線接口層提供了在主機和設備之間的物理連接、連接、數據包連接。USB 設備層對 USB 系統軟件是可見的,系統軟件基于它所見的設備層來完成對設備的一般的 USB 操作。應用層可以通過與之相配合的客戶軟件向主機提供一些額外的功能。USB 設備層和應用層的通信是邏輯上的,對應于這些邏輯通信的實際物理通信由 USB 總線接口層來完成。關于 USB 的物理通信在第 5、6描述,而相邏輯通信在第 8、9介紹。本章閱讀更加詳細的描述一些部分。概念,USB 系統的實現者必須先掌握它們,然后在往后幾為了描述和
5、管理 USB 通信,以下概念是很重要的:·總線拓樸(Bus Topology):USB 的基本物理組成、基本邏輯組成,以及各組成部分之間的相互關系。這將在 4.2 節中描述。·通信流模型(communication Flow Ms):描述主機與設備如何通過 USB 通信,以及通信所用的四種通信類型。這將在 4.3 到 4.8 的各節中介紹。·總線管理(BUS Access):主機面對大量的 USB 設備的各種通信要求,如何、協調總線的。·關于同步傳送的考慮:4.10 節中將介紹。對要求同步傳送的設備提供一些特性。非同步傳送設備的實現者不必閱讀此節。4.2
6、 總線拓樸總線拓樸結構包括四個重要的組成部分。·主機和設備:USB 系統的基礎組成部分。·物理拓樸結構:描述 USB 系統中的各組成部分是如何連接起來的。·邏輯拓樸結構:描述 USB 系統中各種組成部分的地位和作用,以及描述從主機和設備的角度觀察到的 USB 系統。·客戶軟件層與應用層的關系:描述從客戶軟件層看到的應用層的情況,以及從應用層看到的客戶軟件層的情況。4.2.1 USB 主機主機的邏輯結構如圖 4-3,包括·USB 主機器(USB Host Controller)·USB 系統軟件集合:USB 驅動程序,主機·客
7、戶軟件器的驅動程序,主機軟件主機實際通信流邏輯通信流主機的組成圖 43USB 主機在 USB 系統中是一個起協調作用的實體,它不僅占有特殊的物理位置,而且對于USB 以及連到 USB 上的設備來說,還負有特殊責任。主機所有的對 USB 的。一個USB 設備想要總線必須由主機給予它使用權。主機還負責監督 USB 的拓樸結構。關于主機和它的任務的更詳細、更徹底的描述,請見第 9 章。4.2.2 USB 設備一個 USB 設備的邏輯結構如圖 4.4 所示,包括·USB 總線接口·USB 邏輯設備·應用層物理設備USB邏輯設備應用USB主機器USB系統軟件客戶軟件實際通信
8、流邏輯通信流圖 4-4 物理設備組成USB 設備用于向主機提供一些額外的功能。USB 設備提供的功能是多種多樣的,但面向主機的接口卻是一致的。所以,對于所有這些設備,主機可以用同樣的方式來管理它們與 USB有部分。為了幫助主機辨認及確定 USB 設備,這些設備本身需要提供用于確認的信息。在某一些方面的信息,所有設備都是一樣的;而另一些方面的信息,由這些設備具體的功能決定。信息的具體格式是不定的,由設備所處的設備級決定。對 USB 設備更完備的描述,見第 8 章。423 總線的物理拓樸結構USB 系統中的設備與主機的連接方式采用的是星形連接,如圖 4-5。根 HUB設備設備HUB圖 45 USB
9、 物理總線的拓撲圖中的 Hub 是一類特殊的 USB 設備,它是一組 USB 的連接點,主機中有一個被嵌入的 Hub 叫根 Hub(root Hub)。主機通過根 Hub 提供若干個連接點。為了防止環狀連接,采用星形連接來體現層次性,如圖 4-5。這種連接的形狀很像一棵樹。用于提供具體功能的設備叫應用設備。許多不同功能的設備放在一起被看作一個整體, 叫包。例如,鍵盤和軌跡球可以被視作一個整體,在它的內部,提供具體功能的設備被永久地接到 Hub 上,而這個 Hub 被接到 USB 上。所有這些設備及這個 Hub 被看作一個復合設備, 而這個 Hub 又被看作這個復合設備的內部 Hub。在主機看來
10、,這個復合設備和一個帶著若干設備的單獨 Hub 是一樣的。圖中也標出了一個復合設備。4.2.4 總線邏輯拓樸結構在物理結構上,設備通過 Hub 連到主機上。但在邏輯上,主機是直接與各個邏輯設備通信的,就好像它們是直接被連到主機上一樣。這個邏輯關系如圖 4-6 所示。與之對應的物設備設備復合設備HUB設備設備主機USB總線接口理結構就是圖 4-5 中的結構。Hub 也是邏輯設備,但在圖 4-6 中,為了簡化起見,未被畫出,雖然 USB 系統中的工作都是從邏輯角度來的,但主機必須對物理結構有個了解。例如,在處理 Hub 被移去的情況時,當一個 Hub 被移出,通過它與主機相連的設備也應一起被移去,
11、這是由其物理結構決定的。關于 Hub 的更詳細的討論在第 10 章。邏輯設備主機邏輯設備邏輯設備邏輯設備邏輯設備圖 46 USB 邏輯總線的拓撲4.2.5 客戶軟件層與應用層的關系USB 系統的物理上、邏輯上的拓樸結構反映了總線的共享性。USB 應用設備的客戶軟件只關心設備上與它相接口,客戶軟件必須通過 USB 軟件編程接口來應用設備。這與另一些總線如 PCL,ELSA,PCMUA 等不同,這些總線是直接內存或 I/O 的。在運行中,客戶軟件必須于 USB 上的其它設備。這樣,設備和客戶軟件的設計者就可以只關心該設備與主機硬件的相互作用和主機軟件的相互作用的細節問題。圖 4-7 說明了在圖 4
12、-6的邏輯結構下,一個設備設計者看到的客戶軟件與相應應用的關系的視圖。客戶軟件客戶軟件客戶軟件應用應用應用圖 4-7 客戶軟件和應用間的關系4.3 USB 通信流USB 是為主機軟件和它的 USB 應用設備間的通信服務的,對客戶與應用間不同的交互,USB設備對數據流有不同的要求。USB 為此提供了更好的 overall 總線使用,它各種不同的數據流相互地進入一個 USB 設備。每種通信流都采取了某種總線方法來完成主機上的軟件與設備之間的通信。每個通信都在設備上的某個端點結束。不同設備的不同端點用于區分不同的通信流。圖 4-8 是圖 4-2 的擴充,它更詳盡地描述了 USB 系統,支持了邏輯設備
13、層和應用層間的通信。實際的通信流要經過好幾個接口邊界,從第 5 章到第 7 章,刻畫了機械上、電氣上以及協議上的 USB 接口的定義。第 8 章刻劃了 USB 設備的編程接口。通過此接口,可從主機側對 USB 設備進行,第 9 章介紹了兩個主機側的通口:·主機器的驅動程序(HCD):它位于 USB 主機器與 USB 系統軟件之間。主機器可以有一系列不同的實現,而系統軟件持不同的器,而不必特別了解這個具體的于任何一個具體實現。一個驅動程序可以支器。一個 USB器的實現者必須提供一個支持它的器的主機器驅動器(HCD)實現。·USB 驅動程序(USBD):USB 系統軟件與客戶軟
14、件之間的接口,提供給客戶軟件一些方便的使用 USB 設備的功能。一個 USB 邏輯設備對 USB 系統來說就是一個端點集合。端點可以根據它們實現的接口來分類。USB 系統軟件通過一個缺省的通道來管理設備。而客戶軟件用通道束管理接口。通道束的一端為端點,一端為緩沖區??蛻糗浖笸ㄐ艛祿谥鳈C上的一個緩沖和 USB設備上的一個端點之間進行。主機器或 USB 設備(取決于數據傳送方向)將數據打包后在 USB上傳。由主機器(HC)協調何時用總線在 USB 上傳遞數據。主機連接物理設備到一個接口的通道束點的USB設備(第 9 章)USB主機(第 10 章機械的, 電氣的, 協議(第 6,7,8 章)通
15、道:兩個水平實體之間連接的抽象。數據傳遞機制被傳遞的數據的與USB 相形式圖 4-8 USB 主機/設備的細節圖與接口無有關USB 格式每個端USB 幀點的數結構的據數據USB 總線接口SIEUSB端點 邏輯設備0端點的集合應用接口 X接口的集合Client SW管理一個接口緩沖沒有USB格式事務USB 幀格式到 0 號端缺省通道的數據)USB 線路USBUSB 幀格式接口的數據事務SIE主機 器USB System SW管理設備圖 4-9 說明了數據如何在主機側中的內存緩沖和設備中的端點中傳送。在后面,將逐步介紹端點、通道和通信流。主機上的軟件通過一系列的通信流與邏輯設備進行通信。這一系列的
16、通信流是由 USB 設備的軟件和硬件設計者選擇的,使設備能傳送由 USB 提供的字符??蛻糗浖缑鎴D 4-9 USB 通信流4.3.1 設備端點一個端點是一個可唯一識別的 USB 設備的 Portion,它是主機與設備間通信流的一個結束點。一系列相互的端點在一起了 USB 邏輯設備。每個邏輯設備有一個唯一的地址,這個地址是在設備連上主機時,由主機分配的,而設備中的每個端點在設備內部有唯一的端點號。這個端點號是在設備設計時被給定的。每個端點都是一個簡單的連接點,或者支持數據流進設備,或者支持其流出設備,兩者不可得兼。一個端點的特性決定了它與客戶軟件進行的傳送的類型。一個端點有以下特性:·
17、;端點的總線頻率要求·端點的總線延遲要求·端點的帶寬要求·端點的端點號·對錯誤處理的要求·端點能接收或的包的最大長度·端點的傳送類型(詳見 4.4 節)·端點與主機的數據傳送方向端點號不為 0 的端點在被設置前處于未知狀態,是不能被主機的。USB 邏輯設備端點通信流通道緩沖區主機4.3.1 對 0 號端點的要求所有 USB 設備都需要實現一個缺省的方法。這種方法將端點 0 作為輸入端點,同時也將端點 0 作為輸出端點。USB 系統用這個缺省方法初始化及一般地使用邏輯設備(即設置此設備)。缺省通道(見 4.3.2 節)支持了對
18、的傳送(傳送將在 4.5 中定義),一旦設備接上,并加電,且又收到一個總線復位命令,端點 0 就是可4.3.1.2 對非 0 號端點的要求的了。設備可以有除 0 以外的其它端點,這取決于這些設備的實現。低速設備在 0 號輸入及輸出端點外,只能有 2 個額外的可選端點。而高速設備可具有的額外端點數僅受限于協議的定義(協議中規定,最多 15 個額外的輸入端點和最多 15 個額外的輸出端點)。除缺省通道的缺省端點外,其它端點只有在設備被設置后使用,對設備的設置是設備設置過程(見第 8 章)的一部分。4.3.2 通道一個 USB 通道是設備上的一個端點和主機上軟件之間的。體現了主機上緩存和端點間傳送數
19、據的能力。有兩不同的且互斥的通道通信格式。·流(Stream):指不具有 USB 定義的格式的數據流。·消息(Message):指具有某種 USB 定義的格式的數據流。USB 不解釋在通道中傳送的數據的內容。消息通道要求數據組織成 USB 定義的格式,但它的內容,USB 是不管的。特別地,有下列概念與通道相關:·對 USB 總線·傳送類型的申請(claim),帶寬的使用情況·與通道相連的端點的特性,例如:端點的數據傳送方向,最大數據凈負荷區的長度。數據凈負荷是指在總線處理事務(transaction)中,數據數據區的數據(總線處理事務見第 7
20、章)。由兩個 0 號端點組成的通道叫缺省通道。一旦設備加電并復位后,此通道即可使用。其它通道只在設備被設置后才存在。USB 系統軟件在決定設備、設置要求和設置設備時使用缺省USB 系統軟件保留缺省通道。當設備被設置后,這個設備的特定軟件還可使用該通道。通道的擁,協調其它客戶軟件對通道的使用。一個客戶軟件一般都通過 I/O 請求包(IRP)來要求數據傳送。然后,或者等待,或者當傳送完成后被通知。IRP 的細節是由操來指定的??蛻糗浖岢雠c設備上的端點建立某個方向的數據傳送的請求,IRP 就可簡單地理解為這個請求。一個客戶軟件可以要求一個通道回送所有的 IRP。當關于 IRP 的總線傳送結束時,無
21、論它是客戶軟件都將獲得通知說 IRP 完成了。地完成,還是出現錯誤,如果通道上沒有正在傳送的數據,也沒有數據想使用此通道,這個通道就處于閑置狀態。主機器對它不采取任何動作,也就是說,這個通道的端點會發現沒有任何的總線動作是沖它而來的。只有當有數據在通道上時,該通道才能發現總線對它的動作。如果一個非同步通道遇到一個迫使它給主機發 STALL 的情況(參見第 7 章),或者在任一個 IRP 中發現 3 個總線錯誤。這個 IRP 將被中止。其它所有突出的 IRP 也一同被中止。通道不再接收任何 IRP,直到客戶軟件從這個情況中恢復過來(恢復的方式取決于軟件的實現),而且承認這個中止或出現的錯誤,并發
22、一個 USBD Call 來表明它已承認。一個合適的狀態信息將通知客戶軟件 IRP 的結果出錯或中止。同步通道的在 4.6 中介紹。一個 IRP 可能會需要多個數據傳遞數據。這些數據區除最后一個外,都具有數據區的最大長度,最后一個數據區包含了這個 IRP 中剩下的數據。(可參見關于傳送類型的介紹,以獲得更詳細的了解)。對這樣的一個 IRP,短就是說未達到最大長度的數據區)在數據輸入時無法填完 IRP 數據緩沖區。這可能會有二種不同解釋,它依賴于客戶軟件的情況:·如果該客戶軟件可以接受變長的 IRP,那么,IRP 數據緩沖區未被填滿,可以看作一個分限,說明一個 IRP 已結束,主機器可
23、以準備接收下一個 IRP 了。·如果該客戶軟件只收定長的 IRP。那么,我們認為發生了一個錯誤,這 IRP 將被中止,通道也會被阻塞,通道上的數據都中止。因為對這兩種情況,主機器會有不同的反應,而且采取何種措施不由器決定,所以對每個 IRP 都必須說明客戶軟件的具體要求。通道的端點可以用 NAK 信號來通知主機正忙,NAK 不能作為向主機反還 IRP 的中止條件。在一個給定的 IRP 處理過程中,可以遇到任意多個 NAK,NAK 不4.3.2.1 流通道錯誤。流通道中的數據是流的形式,也就是該數據的內容不具有 USB 要求的結構。數據從流通道一端流進的順序與它們從流通道另一端流出時的
24、順序是一樣的,流通道中的通信流總是單方向的。對于在流通道中傳送的數據,USB 認為它來自同一個客戶。USB 系統軟件不能夠提供使用同一流通道的多個客戶的同步。在流通道中傳送的數據遵循先進先出原則。流管流只能連到一個固定號碼的端點上,或者流進,或者流出。(這個號碼是由協議層決定的)。而具有這個號碼的另一個方向的端點可以被分配給其它流通道。流通道支持同步傳送,中斷傳送和批傳送,這些在稍后的章節會進一步解釋。4.3.2.2 消息通道消息端點的關系同流端點的關系是不同的。首先,主機向 USB 設備發出一個請求;接著,就是數據的傳送;最后,是一個狀態階段。為了能夠容納請求/數據/狀態的變化,消息通道要求
25、數據有一個格式,此格式保證了命令能夠被可靠地傳送和確認。消息通道也雙方向的信息流,雖然大多數的通信流是單方向的。特別地,缺省通道是一個消息通道。USB 系統軟件讓多個請求同時要求同一個消息通道。一個設備的每個消息通道在一個時間段內,只能為一個消息請求服務,多個客戶軟件可以通過缺省通道發出它們的請求,但這些請求到達設備的次序是按先進先出的原則的。設備可以在數據傳送階段和狀態階段信息流,這取決于這些設備與主機交互的能力(參見第 7 章)。正常情況下,在上一個消息未被處理完之前,是不能向消息通道發下一個消息的。但在有錯誤發生的情況下, 主機會取消這次消息傳送,并且不等設備將已收的數據處理完,就開始下
26、一次的消息傳送。在操作通道的軟件看來,一個 IRP 中的錯誤,使這個 IRP 被取消,并且所有正排隊等待的IRP 一同也被取消。申請這個 IRP 的客戶被通知 IRP 結束,且有出錯提示。消息通道后有兩個相同號碼的端點,一個用于輸入,一個用于輸出。兩個號碼必須相同。消息通道支持4.4 傳送類型傳送,這將在 4.5 中進行介紹。USB 通過通道在主機緩沖區與設備端點間傳送數據。在消息通道中傳遞的數據具有 USB定義的格式,它的數據包含的數據具有設備指定的格式。USB 要求任何在通道上傳送的數據均被打包,數據的解釋工作由客戶軟件和應用層軟件負責。USB 提供了多種數據格式,使之盡可能滿足客戶軟件和
27、應用軟件的要求。一個 IRP 需要一個或多個總線處理事務來完成。每個傳送類型在以下的幾個傳送特征上會有不同:·USB 規定的數據格式·信息流的方向·數據·總線區的長度限制的限制·的限制·出錯處理USB 設備的設計者可以決定設備上每個端點的能力。一旦為這個端點建立了一個通道,這個通道的絕大多數傳送特征也就固定下來了,一直到這個通道被取消為止。也有部分傳送特征可以改變,對這樣的特征,將會在介紹每個傳送類型時作出說明。USB 定義了 4 種傳送類型:·傳送:可靠的、非周期性的、由主機軟件發起的請求或者回應的傳送,通常用于命令事務和
28、狀態事務。·同步傳送:在主機與設備之間的周期性的、連續的通信,一般用于傳送與時間相信息。這種類型保留了將時間概念包含于數據中的能力。但這并不意味著,傳送這樣數據的時間總是很重要的,即傳送并不一定很緊急。·中斷傳送:小規模數據的、低速的、固定延遲的傳送。·批傳送:非周期性的,大包的可靠的傳送。典型地用于傳送那些可以利用任何帶寬的數據,而且這些數據當沒有可用帶寬時,可以等待。這些傳送類型將在后面的四個大節中進行討論。IRP 的數據均放在數據的數據區被傳送,這將在 7.4.3 中介紹。關于與具體傳送類型有一些協議細節在第 7介紹。4.5傳送傳送一個設備的不同部分。傳送用
29、于支持在客戶軟件和它的應用之間傳送由以下幾個事務組成:(1)建立聯的關于設置信息、命令信息、狀態信息的傳送。系,把請求信息從主機傳到它的應用設備;(2)零個或多個數據傳送事務,按照(1)事務中指明的方向傳送數據;(3)狀態信息回傳。將狀態信息從應用設備傳到主機。當端點地完成了被要求的操作時,回傳的狀態信息為“success”。7.2 中將介紹傳送的細節,例如,什么樣的包,什么樣的總線事務和總線事務的順序。而第 8字。介紹 USB 定義的 USB 命令USB 設備必須實現缺省通道,并將它實現成一個消息通道。這個通道由 USB 系統軟件使用。USB 設備的確認信息、狀態信息以及信息由該通道傳送。如
30、果需要的話,一個應用設備可以為端點實現額外的通道。USB 設備框架(見第 8 章)定義了標準的,設備級的或由銷售商提供的請求,這些請求可操作設備的狀態。USB 設備框架又定義了一些描述器(descriptor),用于存放 USB 設備的各種信息。機制提供設備描述器和請求操作設備的機制。傳送只能通過消息通道進行。所以,使用格式(見 4.5.1 節)。傳送的數據必須具有 USB 定義的數據應用層和相應的客戶軟件不能為傳送指定總線頻率和帶寬。這由 USB 系統軟件從全局優化角度加以決定。USB 系統軟件會限制設備要求的4.5.3 和 4.5.4 中介紹。頻率和帶寬,這些限制在4.5.1傳送類型的數據
31、格式Setup 包的數據格式屬于一個命令集,這個集合能保證主機和設備之間正常通信。這個格式也一些銷售商對設備命令的擴展。Setup 包后的數據傳送也具有 USB 定義的格式,除非這個數據是銷售商提供的信息?;貍鞯臓顟B信息仍然具有 USB 定義的格式。7.5.8 節和第84.5.2介紹傳送的 Setup傳送的方向數據定義。傳送使用的是消息通道上的雙向信息流。所以,一旦一個個通道就使用了具有某個端點號的兩個端點,一個輸入,一個輸出。通道被確認之后,這4.5.3傳送包的大小的限制傳送的端點決定了它所能接收或的最大數據凈負荷區長度。USB 為高速設備定義的最大數據凈負荷區長度為 8、16、32 或 6
32、4 字節,低速設備的數據凈負荷區的長度只能是8 字節。Setup 后的所有數據要遵守這個規定,這個規定是這些數據的數據凈通道(包負荷區的,不包括的協議要求的額外信息,Setup 包實際上也是 8 字節。括缺省通道)總是使用 w Max Packet Size 的值。端點在的設置信息中報告的最大凈負荷區長度。USB 不要求數據凈負荷區必須達到最大長度,當長度不夠時,不必填充到最大長度。主機器對高速設備的通道端點支持 8、16、32、64 字節的最大長度,對低速設備支持 8 字節的長度。它不能支持更大的或更小的其它長度。對于缺省通道的最大數據區長度,USB 系統軟件要從設備描述器的頭 8 個字節中
33、讀出, 設備將這 8 個字節放在一個發出, 其中的七個字包含了缺省通道的wMaxPacketSize。對其它的端點來說,USB 系統軟件在它們被設置后,獲得此長度,然后 USB 系統軟件就會保證數據凈負荷區大長度至少為 8。超長。另外,主機總是認為數據凈負荷區的最端點所傳的數據凈負荷區長度必須小于或等于其 wMaxPacketSize(參見第 8 章),當一個數據區不能容納所傳數據時,就分幾個度。最后一區包含最后剩下的數據。傳。除最后一個區外,其它應達到最大長當端點做了以下兩件事時,傳送的數據階段可被認為結束:·已傳了由 Setup 階段指定的數據量。·傳了一個數據包,它的
34、長度為 0 或它的數據區長度小于最大長度。數據階段結束后,主機器進入狀態階段,而不是開始另一個數據傳誦。如果它不這樣做,端點會認為通道脫線而中止通道(通道脫線見 4.3.2)。如果主機在狀態階段時,主機收到一個大于最大長度的數據區,那么請求這次傳送的 IRP 將被中止。當數據全部傳完,主機與端點之間的傳送的數據階段結束。如果其間,端點收到了超過最大長度的數據區,它將中止通道。4.5.4傳送的總線的限制無論低速設備還是高速設備都可以使用通道。端點沒法指明通道對總線頻率的要求。USB 權衡所有通道的總線頻率和正等待的 IRP,從全局優化,提供一個“最佳”傳送方案。USB 要求數據幀中的一部分被留給
35、傳送使用。實現決定)只用了數據幀的不到 10%的時間,則剩余·如果被的傳送(的時間留給批傳送(參見 4.8 節)。·如果一個也就是說,·如果留給傳送被又被中止,則它的中止可在本次的幀內,也可在以后的幀內。和中止不必在同一個幀內。傳送的時間不夠用,但恰好有一些同步和中斷傳送的幀時間未用,則主機器利用這些時間進行額外的傳送。傳送在等待,那么就對它們進行排序然后傳送。·如果對可用的幀時間有太多的·如果各個問順序。公平傳送申請的是不同的端點,主機器根據公平原則決定它們的訪原則的具體內容決定于主機器的實現。·如果一個這些要求使得對某個端點的傳送
36、事務頻繁地被中止,不能認為給它的總線時間是的。傳送一般可以在總線上進行規則地、最優化地傳送。傳送的速率是可以變化的,USB 系統軟件這些離散的變化。端點和其客戶軟件不能想當然的認為其有一個固定的傳送速率,端點可能發現在一幀內有零個或若干個傳送。一個端點和它相應的客戶軟件可占用的總線時間會因為其它設備進入或系統或者本設備上的其它端點進入或系統而改變??偩€頻率和幀定時決定于一個幀內可傳送的傳送的最大個數。在任一個 USB 系統內,一個幀內的 8 字節高速數據少于 29 個,8 字節低速數據少于 4 個。表 4-1 是關于不同規格的高速的傳送的情況,以及在一幀內可能的最大的傳送數目。這張表有兩個默認
37、的前提,即傳送有一個數據傳送階段而且這個數據傳送階段有一個長度為 0 狀態階段,表 4-1 還指出了出現兩個數據一些額外的位。表 4-1 高速不到最大長度的情況,表中不包括用于管理的傳送限制因為一個幀內只留 10%的時間給非周期性傳送,所以當一個系統的總線時間被排滿的時候,這個系統內的所有傳送只能去競爭每個幀內的三個傳送名額。因為除了客戶軟件會要求傳送外,USB 系統要用傳送來傳送設置信息,所以對某個客戶和它的應用就不能指望它們的傳送像它們想的一樣進行。主機器可以自由地決定如何將某個具體的一個傳送在總線上進行,可以在一個幀內,也可以跨幾個幀。一個端點可能發現傳送的各個總線處理事務在同一幀內或分
38、在幾個不連續的幀內。由于具體實現的不同,主機低速器可能不能提供理論上的每幀的最大傳送數目。傳送與高速傳送都是競爭同樣多的可用幀時間。低速傳送只是要用更多的時間來傳送罷了。表 4-2 列出了不同規格的低速包的情況,以及一幀內的最大包數。這張表同樣沒包括進管理用的開銷。無論低速與高速,由于一個組成,所以都可能要用幾個幀才能完成傳送。傳送都由幾個包表 4-2 低速傳送限制協議開銷(46 字節)數據區最大帶寬字節/FrameFrame 帶寬/傳送最大傳送數剩余字節有用數據字節/Frame1300025%34632600026%3436協議開銷(46 字節)(9 SYNC bytes, 9 PID by
39、tes, 6 Endpoint+CRC bytes, 6 CRC bytes, 8 Setup data bytes, and a7_byte interpacker delay(EOP, etc.)數據區最大帶寬(字節/秒)Frame 帶寬/傳送最大傳送數剩余字節有用數據字節/Frame1320003%3223322620003%31436241200003%303012082240004%2816224163840004%2436384326080005%1937608648320007%1383832Max4.5.5要進行傳送的數據順序傳送,先要由主機向設備發一個總線建立(Setup)信
40、息。它描述了的類型,設備將執行此。這個階段之后,是零個或多個數據信息的傳送,這是進行的具體信息。最后,由狀態信息的傳送來結束這次傳送,端點將這次控傳的狀態回送給客戶軟件。這次控傳完成之后,可以進行對這個端點的下一個控傳,如4.5.4 節所述,每次控傳何時在總線上進行由主機器的具體實現決定。在數據傳送階段和狀態信息回傳階段,可能由于設備自身的,設備處于“忙”狀態。此時端點可設法表明正忙(見第 7、8 章),主機將試著在稍后時間重傳一次。如果在上一個控傳結束之前,端點又收到一個總線建立信息,設備將結束現未完成的傳送,轉而處理新的控傳。正常情況下,是早發總線建立信息的,不過當上一個控傳因錯誤而被中止
41、后,主機可發下一個控傳的總線建立信息。在端點看來,這是在上一個控傳結束前過早發出的。一旦主機遇到一個引起中止的條件或檢測到一個錯誤,端點可以通過接收下一個 Setup包的 PID 來恢復,也就是說,不一定必須從別的通道進行恢復。對于缺省通道,如果端點收不到 Setup 的 PID 時,最終會要求設備復位來清除中止條件或錯誤條件。在控傳中,USB 提供了強大的錯誤檢測功能和錯誤恢復和重能。傳送器和可以保持階段的同步,既關于他們在控傳的哪個階段這個問題上保持同步。并且以最小的代價恢復。一個可以識別一個數據重傳狀態信息重傳包,因為帶有數據重傳的指示。狀態信息包已被來,Setup 包可以因器可以通過對
42、方給它發的握手信息確知它發的數據重送接收,除了 Setup 包以外,協議可以將一個重送的包與原來的包區為出錯而重傳,但無法說明此4.6 同步傳送重傳的,還是原來的。在非 USB 的環境下,同步傳送意味著恒定速率、錯誤USB 環境下,要求同步傳送能提供以下幾點:(error-tolerant)的傳送。在·固定的延遲下,確保對 USB 帶寬的。·只要數據能提供得上,就能保證通道上的恒定數據傳送速度。·如果由于錯誤而造成傳送失敗,并不重傳數據。當 USB 同步傳送類型被用來支持同步的源和目的時,使用這個傳送類型的軟件并不要求是同步的,4.10 中將詳細介紹 USB 上的
43、同步數據的處理。4.6.1 同步傳送的數據格式對于同步傳送的通道(同步通道),USB 并不對數據格式做要求。4.6.2 同步傳送的方向同步通道是一種流通道,所以是單方向的。在對端點的描述中指明了與它相連的通道的數據流方向。如果設備要同步的雙向流的話,只好用兩個同步通道,一個流進,一個流出。4.6.3 同步傳送中包的大小的限制同步通道的端點確定了數據區的最大長度,USB 在設置端點期間,使用這一個信息,看是否可在每幀內為最大長度的數據區留下足夠的時間。如果可以,設置端點。;否則,不USB 系統軟件可為一個傳送的通道調整最大數據區長度,但無法為同步通道進行如此41200027%3371282400
44、029%32524Max187500187調整。在確定的 USB 設置下,同步通道要么被支持,要么不被支持。USB 限制了同步通道的最大數據區長度為 1023 字節,表 4-3 列出了不同規格的同步傳送, 以及一幀內可能的最大傳送數。表中未包括管理開銷的字節。表 4-3 同步傳送限制并不是每一次的數據要達到最大長度。數據區的長度由者(客戶軟件或應用軟件)決定,每次可以不同。USB 可保證主機器看到的包有多長,在總線上傳的有多長。數據的實際長度由者決定,可以小于早先協商好的最大長度。總線錯誤可以使接收者看到的長度比實際長度有了變化。但這些錯誤可被檢測到。具體地講,或者通過數據上的CRC 碼,或者
45、讓接收者預先知道實際應該的長度,以此進行檢測。4.6.4 同步傳送的總線方向限制只有高速設備可以使用同步方式。USB 設備要求一個幀內不能有超過 90%的時間用于周期性傳送(同步傳送或中斷傳送)。同步通道的端點描述的總線頻率。所有的同步通道一般在一幀內傳一個就是說,1ms 一個包)。但總線上的錯誤或者操對客戶軟件調度上的延遲會造成一個幀內一個沒有的情況。此時,設備將一個錯誤指示信息作為狀態信息返回給客戶軟件。設備可以通過跟蹤 SOF(幀開始)信號來測到此類錯誤。如果兩個 SOF 信號間無數據包,則出錯??偩€頻率和幀定時限制了一個幀內的同步傳送的上限,在任何 USB 系統內,最多有 150個單字
46、節的數據區。但由于實現上的數。4.6.5 同步傳送的數據順序,主機器可能無法支持到理論上的最大傳送同步傳送不支持因總線錯誤而進行的重傳??梢允欠癜l生了一個錯誤,低級的 USB 協議不有握手信號給同步通道的者。一般情況下,是可以有握手信號來通知者否被地接收。對于同步傳送來說,定時比正確性和重傳更重要??紤]到總線的錯誤率較低,協議就認為傳送一般均能。同步接收者可以是否在一個幀內錯過了一些數據,而且能知道丟失了多少數據。4.10 節將有關于此的具體介紹。因為沒有用來指示引起中止的條件的握手信號,所以同步傳送的端點從不途停止。雖然,錯誤信息可作為 IRP 的狀態來報告,但同步通道因此停下。錯誤即使被查
47、到,主機仍繼續處理下一幀的數據。因為同步傳送的協議不支持每次事務都進行握手,所以錯誤檢測協議開銷(9 字節)(2 SYNC bytes, 2 PID bytes, 2 Endpoint+CRC bytes,2 CRC bytes, and a 1_byte interpacket delay)數據區最大帶寬字節/秒Frame 帶寬/傳送最大傳送數剩余字節有用字節字節/Frame11500001%1500%136427244600001%115546087040001%884704169600002%6009603211520003%362411526412800005%204012801281
48、2800009%101301280256128000018%51751280512102400035%245810241023102300069%14681023Max的功能可以相對弱一些。4.7 中斷傳送中斷傳送是為這樣一類設備設計的,它們只傳或收少量數據,而且并不經常進行傳送, 但它們有一個確定的服務周期,對中斷傳送有以下要求:·通道的最大服務期得到保證。·由于錯誤而引起的重發在下一服務期進行。4.7.1 中斷傳送的數據格式USB 對中斷通道上的數據流格式無要求。4.7.2 中斷傳送的方向中斷通道是一種流通道,所以是單向的。端點描述信息指明了通道的數據流方向。4.7.3
49、 中斷傳送對包的長度的限制中斷通道的端點決定能接收和的最大數據區長度,高速設備最大不超過 64字節(或更少)的數據區,而低速設備只不超過 8 個(或更少)字的數據區,這個數字不包括協議要求的附加信息。USB 并不需求所有的節填充。到最大長度。如果不到的話,不用加字所有的主機器都要示支持高速設備的 64 字節數據區和低速設備的 8 字節(或更少)的最大數據區,對超過最大值的數據不要求支持。USB 系統軟件設置中斷通道的最大數據區長度。在設備設置期間,這一信息將被使用,只有此設置有效,這個數值是改變的。在設置有效期間,USB 系統軟件根據此數值來看分給這個通道的總線時間是否充分。如果充分,則通道建
50、立,否則不建立。與通道不同,USB 系統不為中斷通道調整總線時間。所以對給定的 USB 系統,要么支持此通道,要么不支持。實際傳送的數據區長度由器決定,可以小于最大長度。端點所發的數據的數據長度不能超過端點的 w Max Packet Size 的值。而設備可以通過中斷傳送來傳比此值多的數據??蛻糗浖梢酝ㄟ^中斷傳送的 IRP 來接收這批數據,這個中斷傳送要求多個總線處理事務來完成,且要求每個事務后IRP 完成的信號??梢栽O置一個緩沖區,它的長度為 w Max Packet Size 的整數倍,再加上一個零頭。對需要的多個總線事務來說,除最后一個外,前面的事務都傳遞 w Max Packet
51、Size 長度的包,后一個傳剩下的零頭。這些總線處理事務都在為通道建立的服務周期內進行。如果一個中斷傳送要傳的數據不能放在一個數據,就分幾個區,前幾個是最大長度,最后一個包含剩下的長度。當出現以下情況時,認為中斷傳送結束:·已傳的數據量恰好與期望的數據量同。·傳了一個有一個數據區的包,此包的長度小于 w Max Packet Size 或傳了一個長度為零的包。如果一個中斷傳送完成,那么主機器結束當前的 IRP,并開始下一個 IRP。如果數據區的長度比預料的長,當前 IRP 中止,并且只有等到出錯條件被確認且清除后,才能開始后面的 IRP。4.7.4 中斷傳送對總線的限制高速
52、設備和低速設備均可使用中斷傳送。USB 要求不能有多于 90%的順時間用于階段傳送(同步傳送或中斷傳送)??偩€頻率和幀的定時限制了一幀內能傳的最大中斷傳送數。對任一 USB 系統來說,高速單字數據區少于 108 個,低速單字節數據區少于 14 個。由于實現上的一定能夠支持此理論上的上限。,主機器不表 4-4 列出了不同規格的高速中斷傳送的情況,以及一幀內可能的最大傳送數。表 4-5列的是對低速設備的相關情況。它們均不包括管理開銷的字節。表 4-4 高速中斷傳送限制中斷通道的端點可以指明它要求的總線周期。高速設備要求的時間周期可以 1ms 到255ms,而低速設備從 10ms 到 255ms。在設置期間,USB 系統軟件根據它們的要求來決定一個服務周期長度。USB 提供的服務周期長度可能比設備要求的要短些,但少于最短的1ms??蛻糗浖驮O備只能夠確定兩次傳送之間的時間長度比要求的周期時間長。但如果傳送中出現錯誤,那么周期時間必然要越界。當客戶軟件有一個中斷傳送的 IRP 時,端點只是被選中。如果總線輪到此中斷傳送使用時,沒有 IRP 處于待發狀態,則端點沒有機會在此時間傳數據,一旦一個 IRP 出現了,它的數據在下一個輪到它的時間時被發出。表 4-5 低速中斷傳送限制
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 立體幾何知識點總結典型方法總結模版
- 銀行面試題目及答案柜員
- 疫區公務員面試考試題及答案
- 一消防試題知識及答案
- 央企國企面試題型及答案
- 煙草法律法規試題及答案
- 學生消防競賽試題及答案
- 網紅咖啡品牌區域代理權及專業技術指導培訓合同
- 牧場畜牧養殖委托管理及農業人才培養合作協議
- 亮化征費窗口樹立文明形象收費站女子中隊上半年工作總結模版
- 上海市單位退工證明退工單
- 《企業財務現狀的杜邦分析-以大疆科技為例》開題報告(含提綱)2400字
- 2023屆高考模擬作文“人生有兩段路要走”漫畫作文導寫及范文
- YS/T 778-2011真空脫脂燒結爐
- GB/T 30776-2014膠粘帶拉伸強度與斷裂伸長率的試驗方法
- GB/T 18574-2001地鐵客運服務標志
- GB/T 10294-2008絕熱材料穩態熱阻及有關特性的測定防護熱板法
- 五年制高職語文課程標準
- 超星爾雅學習通《法律基礎》章節測試含答案
- 老年患者圍手術期管理課件
- 英格索蘭空壓機基礎知識課件
評論
0/150
提交評論