USB總線傳輸協(xié)議概述_第1頁(yè)
USB總線傳輸協(xié)議概述_第2頁(yè)
USB總線傳輸協(xié)議概述_第3頁(yè)
USB總線傳輸協(xié)議概述_第4頁(yè)
USB總線傳輸協(xié)議概述_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、USB總線傳輸協(xié)議概述1 USB系統(tǒng)結(jié)構(gòu)11.1 USB的主機(jī)21.2 USB的設(shè)備32 USB數(shù)據(jù)傳輸類型42.1 控制傳輸52.2 批量傳輸52.3 同步傳輸52.4 中斷傳輸63 USB 通信原理63.1 通信的結(jié)構(gòu)63.2編碼方式73.3 事務(wù)處理74 USB總線列舉91 USB系統(tǒng)結(jié)構(gòu)USB是一種電纜總線,支持在主機(jī)和各式各樣的即插即用的外設(shè)之間進(jìn)行數(shù)據(jù)傳輸。由主機(jī)預(yù)定的標(biāo)準(zhǔn)的協(xié)議使各種設(shè)備分享USB帶寬,當(dāng)其它設(shè)備和主機(jī)在運(yùn)行時(shí),總線允許添加、設(shè)置、使用以及拆除外設(shè)。USB采用層次星型的總線拓?fù)浣Y(jié)構(gòu),這可以防止在USB系統(tǒng)中出現(xiàn)環(huán)形連接的情況。主控器(包括根集線器)是該拓?fù)浣Y(jié)構(gòu)的起

2、點(diǎn),USB集線器是其中心,每一層都是集線器和功能設(shè)備之間點(diǎn)到點(diǎn)的連接,其層次最多為7層(包括根層)。通過(guò)這種層次星型的總線拓?fù)浣Y(jié)構(gòu),USB系統(tǒng)最多可以支持127個(gè)USB設(shè)備。從用戶的角度來(lái)看,一個(gè)簡(jiǎn)單的 USB 系統(tǒng)是由計(jì)算機(jī)、USB設(shè)備和 USB 電纜組成。從總線接口協(xié)議角度來(lái)看,整個(gè) USB 系統(tǒng)可以分為 3 個(gè)層,功能層、USB 設(shè)備層和 USB 總線接口層,并且每一層都由主機(jī)和USB設(shè)備的不同功能模塊組成。這種分層結(jié)構(gòu)簡(jiǎn)化了USB通信機(jī)制,有利于理解主機(jī)的軟硬件和USB設(shè)備之間的通信關(guān)系。功能層主要負(fù)責(zé)數(shù)據(jù)傳輸操作,由 USB 設(shè)備特定的功能單元和與其對(duì)應(yīng)的 USB 主機(jī)程序?qū)崿F(xiàn)。設(shè)備

3、層主要用于管理 USB 設(shè)備、分配 USB 地址、讀取設(shè)備描述符,USB 主機(jī)在這一層獲得相應(yīng) USB 設(shè)備的能力,這一層功能的實(shí)現(xiàn)需要通過(guò) USB 主機(jī)的自動(dòng)程序和用戶編寫的相應(yīng)固件程序同時(shí)支持下完成??偩€接口層主要用于實(shí)現(xiàn) USB 主機(jī)和 USB設(shè)備之間的數(shù)據(jù)傳輸。在 USB 協(xié)議中,USB 系統(tǒng)硬件自動(dòng)完成數(shù)據(jù)解碼和編碼。USB系統(tǒng)分層結(jié)構(gòu)如圖1.1所示。1.1 USB的主機(jī)USB主機(jī)在主控制器的控制下和USB設(shè)備進(jìn)行通信,是USB系統(tǒng)的管理者。USB主機(jī)內(nèi)部由下而上包含USB總線接口、USB系統(tǒng)軟件和客戶軟件。其中,客戶軟件包括USB設(shè)備驅(qū)動(dòng)程序和界面應(yīng)用程序。USB設(shè)備驅(qū)動(dòng)程序主要任

4、務(wù)是與USB系統(tǒng)軟件進(jìn)行數(shù)交流,通過(guò)向USB總線驅(qū)動(dòng)程序發(fā)送請(qǐng)求包(IRP)來(lái)完成二者之間的數(shù)據(jù)通信;界面應(yīng)用程序主要是為用戶提供一個(gè)可視化界面操作界面,可以與USB設(shè)備驅(qū)動(dòng)程序進(jìn)行交互以達(dá)到和USB設(shè)備通信的目的。USB系統(tǒng)軟件包括USB總線驅(qū)動(dòng)程序、USB主機(jī)控制器驅(qū)動(dòng)程序和主機(jī)軟件三部分,這些軟件由操作系統(tǒng)提供,主要功能是進(jìn)行配和管理客戶軟件的數(shù)據(jù)??偩€接口主要實(shí)現(xiàn)了比特流和邏輯數(shù)據(jù)之間的轉(zhuǎn)換,在主控制的控制下,或把比特流組裝成帶有滿足USB協(xié)議格式的數(shù)據(jù),或把帶有 USB格式的數(shù)據(jù)轉(zhuǎn)換為純粹的比特流。值得注意的是:在USB系統(tǒng)中,USB主機(jī)處于絕對(duì)主導(dǎo)地位,控制所有的數(shù)據(jù)傳輸和相關(guān)操作

5、,在任何USB系統(tǒng)中,只有一個(gè)主機(jī)??偟恼f(shuō)來(lái),主機(jī)主要有以下功能:(l)提供電源,同時(shí)進(jìn)行節(jié)電管理。(2)檢測(cè)設(shè)備,包括設(shè)備的連接和斷開。(3)管理數(shù)據(jù)傳輸,包括控制流和數(shù)據(jù)流。(4)控制主控制器和USB設(shè)備間的連通和關(guān)閉。 圖1.1 USB系統(tǒng)分層結(jié)構(gòu)1.2 USB的設(shè)備USB設(shè)備可以被劃分為作為串行接口引擎的USB總線接口層、端點(diǎn)集合的USB邏輯層以及接口集合的功能層。從USB協(xié)議的角度來(lái)看,USB設(shè)備可以分為集線器(Hub)和功能設(shè)備。集線器可以提供更多的連接點(diǎn),用于擴(kuò)展主機(jī)的USB端口。功能設(shè)備是一種可以和USB主機(jī)進(jìn)行交互的設(shè)備,有其特定功能。功能設(shè)備內(nèi)部應(yīng)該包含配置信息,用以描述其

6、功能和資源需求等。在功能設(shè)備被使用前,需要主機(jī)根據(jù)配置信息對(duì)其進(jìn)行配置。USB協(xié)議用設(shè)備架構(gòu)的概念來(lái)描述USB設(shè)備的特性,即USB設(shè)備是由配置、接口和端點(diǎn)組成,一個(gè)USB設(shè)備可以含有一個(gè)或多個(gè)配置,在每個(gè)配置中可含有一個(gè)或多個(gè)接口,在每個(gè)接口中可含有若干個(gè)端點(diǎn)。其中,配置和接口是對(duì)USB設(shè)備功能的抽象,端點(diǎn)是USB設(shè)備中的實(shí)際物理單元,實(shí)際的數(shù)據(jù)傳輸是由端點(diǎn)來(lái)完成,在使用USB設(shè)備前,必須指明其采用那個(gè)配置和接口。USB設(shè)備構(gòu)架如圖1.2所示 圖1.2 USB設(shè)備構(gòu)架(1)設(shè)備設(shè)備代表一個(gè)USB設(shè)備,它由一個(gè)或多個(gè)配置組成。設(shè)備描述符用于說(shuō)明設(shè)備的總體信息,并指出其所含配置的個(gè)數(shù)。一個(gè)USB設(shè)

7、備只能有一個(gè)設(shè)備描述符。如果高速USB設(shè)備既需采用高速傳輸又需采用全速傳輸,則它還必須支持設(shè)備限定描述符,以指出另一傳輸速率下該設(shè)備的總體信息。(2)配置一個(gè)USB設(shè)備可以包含一個(gè)或多個(gè)配置,如USB設(shè)備的低功耗模式和高功耗模式就可分別對(duì)應(yīng)一個(gè)配置。在使用USB設(shè)備前,必須為其選擇一個(gè)合適的配置。配置描述符用于說(shuō)明USB設(shè)備中各個(gè)配置的特性,如配置所含接口的個(gè)數(shù)等。USB設(shè)備的每一個(gè)配置都必須有一個(gè)配置描述符。(3)端點(diǎn)端點(diǎn)是USB設(shè)備中的實(shí)際物理單元,USB數(shù)據(jù)傳輸就是在主機(jī)和USB設(shè)備各個(gè)端點(diǎn)之間進(jìn)行的。端點(diǎn)描述符用于說(shuō)明USB設(shè)備中各個(gè)端點(diǎn)的特性,如端點(diǎn)所支持的傳輸類型等。USB設(shè)備的每

8、一個(gè)端點(diǎn)都必須有一個(gè)端點(diǎn)描述符。端點(diǎn)一般由USB接口芯片提供。USB設(shè)備中的每個(gè)端點(diǎn)都有唯一的端點(diǎn)號(hào),各端點(diǎn)所支持的數(shù)據(jù)傳輸方向也是確定的(輸入或是輸出)。利用設(shè)備地址、端點(diǎn)號(hào)和傳輸方向就可以指定一個(gè)端點(diǎn),并和它進(jìn)行通信。端點(diǎn)的傳輸特性還決定了其與主機(jī)通信時(shí)所采用的傳輸類型,如控制端點(diǎn)只能使用控制傳輸。根據(jù)端點(diǎn)號(hào)的不同,端點(diǎn)可分為如下兩種類型。0號(hào)端點(diǎn):該端點(diǎn)比較特殊,有IN和OUT兩個(gè)物理單元,但只有一個(gè)端點(diǎn)號(hào)0,且只能支持控制傳輸。所有的USB設(shè)備都必須含有一個(gè)0號(hào)端點(diǎn),用作缺省控制管道。USB系統(tǒng)軟件是使用該管道來(lái)和USB邏輯設(shè)備進(jìn)行配置通信的。對(duì)USB系統(tǒng)軟件而言,0號(hào)端點(diǎn)在USB設(shè)備

9、連接、上電和復(fù)位后就有效了;但對(duì)客戶軟件來(lái)說(shuō),只有在USB設(shè)備被正確配置后,才可以使用0號(hào)端點(diǎn)。非0號(hào)端點(diǎn):根據(jù)具體應(yīng)用的需要,USB設(shè)備可以含有多個(gè)除0號(hào)端點(diǎn)以外的其它端點(diǎn)。對(duì)于低速設(shè)備,其附加端點(diǎn)最多為2個(gè);對(duì)于全速/高速設(shè)備,其附加端點(diǎn)最多為15個(gè)。不論是對(duì)USB系統(tǒng)軟件還是對(duì)客戶軟件而言,這些非0號(hào)端點(diǎn)都只有在USB設(shè)備被正確配置后才可使用。2 USB數(shù)據(jù)傳輸類型不同的USB設(shè)備對(duì)數(shù)據(jù)傳輸有不同的要求,如數(shù)據(jù)傳輸?shù)拇笮?、傳輸速率的高低、需同步傳輸或突發(fā)傳輸?shù)?。根?jù)這些要求,USB定義了四種傳輸類型:控制傳輸、批量傳輸、同步傳輸和中斷傳輸。2.1 控制傳輸控制傳輸是USB傳輸中最重要的傳

10、輸,唯有正確的執(zhí)行完控制傳輸,才能進(jìn)一步的執(zhí)行其他傳輸。這種傳輸機(jī)制用來(lái)提供介于主機(jī)與設(shè)備之間的配置、命令或狀態(tài)的通信協(xié)議。因此,需要以雙向傳輸來(lái)達(dá)到這個(gè)請(qǐng)求??刂苽鬏斢职巳N傳輸類型:控制讀取、控制寫入以及無(wú)數(shù)據(jù)控制。其中,又可再分為2-3個(gè)階段:設(shè)置(Setup)階段、數(shù)據(jù)(Data)階段以及狀態(tài)(Status)階段。在設(shè)置階段,主機(jī)發(fā)送命令給設(shè)備;數(shù)據(jù)階段,傳輸?shù)氖窃O(shè)置階段所表征的數(shù)據(jù);在狀態(tài)階段,設(shè)備返回握手信號(hào)給主機(jī)。每當(dāng)設(shè)備第一次連接到主機(jī)時(shí),控制傳輸就可用來(lái)交換信息,設(shè)置設(shè)備的地址或讀取設(shè)備的描述符與請(qǐng)求。由于控制傳輸非常重要,所以必須確保傳輸?shù)倪^(guò)程沒(méi)有發(fā)生任何錯(cuò)誤。這個(gè)偵錯(cuò)

11、的過(guò)程可以使用CRC錯(cuò)誤檢查方式來(lái)加以檢測(cè)。如果這個(gè)錯(cuò)誤無(wú)法恢復(fù),只好再重新傳送一次。每一個(gè)USB設(shè)備第一次執(zhí)行控制傳輸時(shí),占用了端點(diǎn)0以及地址0。其中,端點(diǎn)0是作為控制傳輸?shù)奶囟ǘ它c(diǎn),別的USB傳輸類型不能拿來(lái)使用。而地址0,則是外圍設(shè)備一開始所占用的預(yù)留地址。當(dāng)USB設(shè)備初次安裝時(shí),USB系統(tǒng)軟件使用控制數(shù)據(jù)對(duì)設(shè)備進(jìn)行設(shè)置,設(shè)備驅(qū)動(dòng)程序通過(guò)特定的方式使用控制數(shù)據(jù)來(lái)傳送,數(shù)據(jù)傳送是無(wú)損的。2.2 批量傳輸批量傳輸?shù)臄?shù)據(jù)是流,主要是利用USB總線的空閑帶寬進(jìn)行數(shù)據(jù)傳輸?shù)?,可以在不確定的時(shí)間內(nèi)傳輸大量數(shù)據(jù),適合于數(shù)據(jù)量大,而對(duì)時(shí)間和傳輸速率要求不高的場(chǎng)合。當(dāng)USB總線帶寬緊張時(shí),它會(huì)為其它傳輸類

12、型讓出自己所占用的幀,而其本身將被延遲。當(dāng)USB總線空閑的時(shí)候,它會(huì)以很快的速率傳輸,其傳輸時(shí)間也很短。所以批量傳輸可以發(fā)送大量的數(shù)據(jù)而不會(huì)堵塞USB總線,但其傳輸時(shí)間和傳輸速率卻得不到保證。另外,批量傳輸時(shí),有數(shù)據(jù)錯(cuò)誤檢查機(jī)制,如果數(shù)據(jù)包傳輸過(guò)程出錯(cuò),則會(huì)重新發(fā)出數(shù)據(jù)包。只有全速與高速設(shè)備,才支持批量傳輸2.3 同步傳輸同步傳輸適用于必須以固定的速率抵達(dá)或在指定時(shí)刻抵達(dá)、可以容忍偶爾錯(cuò)誤的串流數(shù)據(jù)上??梢允菃蜗蚧螂p向的傳輸。此種傳輸需要維持一定的傳輸速度,因此相對(duì)的就須犧牲錯(cuò)誤的修正。它采用了預(yù)先與PC主機(jī)協(xié)議好的固定帶寬,以確保發(fā)送端與接收端的速度能相互吻合。對(duì)于同步傳送來(lái)說(shuō),即時(shí)的數(shù)據(jù)傳

13、遞比完美的精度和數(shù)據(jù)的完整性更重要一些。2.4 中斷傳輸 由于USB不支持硬件的中斷,所以必須靠PC主機(jī)以周期性的方式加以輪詢,以便知道是否有設(shè)備需要傳送數(shù)據(jù)給PC。由此也可知道,中斷傳輸僅是一種“輪詢”的過(guò)程,而非過(guò)去所認(rèn)知的“中斷”接口技術(shù)。而輪詢的周期非常重要,因?yàn)槿绻?,?shù)據(jù)可能會(huì)流失掉,但反之太高,則又會(huì)占去太多的總線帶寬。其中,對(duì)于全速設(shè)備(12MbPs)而言,可以設(shè)置1255ms之間的輪詢間隔。因此,換算可得全速設(shè)備的最快輪詢速度為1kHz。中斷數(shù)據(jù)是少量的,且其數(shù)據(jù)延遲時(shí)間也是有限范圍的。這種數(shù)據(jù)可由設(shè)備在任何時(shí)刻發(fā)送,并且以不慢于設(shè)備指定的速度在USB上傳送。3 USB 通

14、信原理3.1 通信的結(jié)構(gòu) USB協(xié)議的通信指的就是USB設(shè)備和USB主機(jī)之間的通信。物理上,總線上的設(shè)備通過(guò)一條物理連線和主機(jī)通信,所有的設(shè)備共享這條物理鏈路。邏輯上,主機(jī)給每個(gè)設(shè)備提供了一條邏輯的連接,侮個(gè)設(shè)備都有這樣的一個(gè)點(diǎn)對(duì)點(diǎn)的連接。其它的總線如PCI、ISA等,為每個(gè)設(shè)備提供了多條邏輯連接,如I/0端口、內(nèi)存地址和DMA通道等,設(shè)備的驅(qū)動(dòng)程序通過(guò)這些通道對(duì)設(shè)備進(jìn)行控制并和它通信。為了細(xì)化USB的通信機(jī)制,USB協(xié)議的開發(fā)者使用了分層的概念,每一層傳輸?shù)臄?shù)據(jù)結(jié)構(gòu)對(duì)其它邏輯是透明的。為了更好地理解USB協(xié)議,將USB通信邏輯上分成了三層:信號(hào)層、協(xié)議層和數(shù)據(jù)傳輸層。信號(hào)層用來(lái)實(shí)現(xiàn)在USB設(shè)

15、備和主機(jī)的物理連接之間傳輸位信息流的信息。邏輯層用來(lái)實(shí)現(xiàn)在USB設(shè)備和USB主機(jī)端的協(xié)議軟件之間傳輸包字節(jié)流的信息,它們?cè)谛盘?hào)層被編碼成NRZI位信息后傳送出去。數(shù)據(jù)傳輸層用來(lái)實(shí)現(xiàn)在USB主機(jī)端的客戶端驅(qū)動(dòng)程序和設(shè)備端的功能接口之間傳輸有一定意義的信息,這些信息被協(xié)議層打包成包格式。為了方便,協(xié)議將信號(hào)層傳輸?shù)奈恍畔⒘鞣Q為包,將協(xié)議層傳輸?shù)陌畔⒘鞣Q為事務(wù)處理,將數(shù)據(jù)傳輸層傳輸?shù)男畔⒘鞣Q為傳輸。所有的傳輸最終都以比特流的方式在信號(hào)層上實(shí)現(xiàn)通信。3.2編碼方式當(dāng)PC主機(jī)對(duì)USB設(shè)備發(fā)出控制信號(hào)時(shí),所有連接的USB設(shè)備都通過(guò)根集線器收到同樣的信號(hào),但是經(jīng)過(guò)對(duì)比所配置的USB設(shè)備地址后,只能有一個(gè)U

16、SB設(shè)備做出相對(duì)應(yīng)的動(dòng)作,這和網(wǎng)絡(luò)的架構(gòu)有點(diǎn)類似。因此對(duì)一個(gè)USB設(shè)備而言,不僅要無(wú)誤地接收主機(jī)端所送來(lái)的數(shù)據(jù),又要正確地發(fā)出響應(yīng)的信號(hào)。因此,在D+與D一的差動(dòng)數(shù)據(jù)線上就必須采用一種特別的編號(hào)方式再加以傳送出去,以解決在USB纜線所產(chǎn)生信號(hào)延遲以及誤差等問(wèn)題。在此,USB采用了NRZI的編碼方式,無(wú)需同步的時(shí)鐘信號(hào)也能實(shí)現(xiàn)同步的數(shù)據(jù)存取。這一部分的電路是通過(guò)USB芯片中的SIE(串行接口引擎)來(lái)實(shí)現(xiàn)的。3.3 事務(wù)處理在USB上數(shù)據(jù)信息的一次接收或發(fā)送的處理過(guò)程稱為事務(wù)處理,USB協(xié)議中,USB事務(wù)處理是USB主機(jī)和USB設(shè)備數(shù)據(jù)通信的基礎(chǔ)。事務(wù)處理的類型主要包括IN事務(wù)、OUT事務(wù)、SET

17、UP事務(wù)和SOF事務(wù)等。數(shù)據(jù)的傳輸方向都是以USB主機(jī)為主題來(lái)描述的,IN事務(wù)表示主機(jī)從設(shè)備端接收數(shù)據(jù),OUT事務(wù)表示主機(jī)向設(shè)備發(fā)送數(shù)據(jù)。事務(wù)處理由三個(gè)階段組成:令牌階段、數(shù)據(jù)階段和握手階段,其中數(shù)據(jù)階段和握手階段是可選的。下面就幾種主要的事務(wù)處理加以介紹:(l)IN事務(wù)處理IN處理用于完成USB設(shè)備到主機(jī)的數(shù)據(jù)傳輸。如果傳輸成功,它將包括令牌、數(shù)據(jù)和握手三個(gè)階段。令牌階段:主機(jī)準(zhǔn)備好接收數(shù)據(jù),并向指定的USB設(shè)備發(fā)出IN令牌包。數(shù)據(jù)階段:設(shè)備發(fā)送含有專用數(shù)據(jù)的數(shù)據(jù)包。握手階段:主機(jī)接收到這些數(shù)據(jù)后,向USB設(shè)備返回ACK握手包。在IN事務(wù)處理中,USB設(shè)備并不是每次都能成功的響應(yīng)主機(jī)發(fā)出的I

18、N令牌包。如果USB設(shè)備在接收到IN令牌后發(fā)現(xiàn)其己經(jīng)損壞,則不會(huì)做任何應(yīng)答。如果USB設(shè)備暫時(shí)不能向主機(jī)發(fā)送數(shù)據(jù),則會(huì)返回NAK握手包。如果USB設(shè)備的這個(gè)IN端點(diǎn)已經(jīng)被停止了,則會(huì)向主機(jī)返回STALL握手包。如果上述錯(cuò)誤都沒(méi)有發(fā)生,則USB設(shè)備將向主機(jī)發(fā)出數(shù)據(jù)包。(2)OUT事務(wù)處理OUT事務(wù)處理用于完成主機(jī)到USB設(shè)備的數(shù)據(jù)傳輸。如果傳輸成功,它將包括令牌、數(shù)據(jù)和握手三個(gè)階段,其實(shí)現(xiàn)過(guò)程如下:令牌階段:主機(jī)向指定的USB設(shè)備發(fā)出OUT令牌包。數(shù)據(jù)階段:主機(jī)發(fā)送含有專用數(shù)據(jù)的數(shù)據(jù)包。握手階段:USB設(shè)備接收到該令牌包和數(shù)據(jù)包后,向主機(jī)返回ACK握手包。在OUT事務(wù)處理中,USB設(shè)備并不是每次

19、都能成功地響應(yīng)主機(jī)發(fā)出的OUT令牌包。如果USB設(shè)備在接收到OUT令牌包和數(shù)據(jù)包后,發(fā)現(xiàn)數(shù)據(jù)已經(jīng)損壞,則不會(huì)做任何應(yīng)答。如果USB設(shè)備暫時(shí)不能接收主機(jī)發(fā)來(lái)的數(shù)據(jù),則它返回NAK握手包。如果USB設(shè)備的這個(gè)OUT端點(diǎn)己經(jīng)被停止,則它會(huì)向主機(jī)返回Stall握手包。如果USB設(shè)備和該數(shù)據(jù)包的數(shù)據(jù)觸發(fā)位不匹配,則USB設(shè)備會(huì)丟棄數(shù)據(jù)毛病返回ACK握手包。如果上述情況都沒(méi)有發(fā)生,則USB設(shè)備將接收數(shù)據(jù),并返回ACK握手包。(3)SOF事務(wù)處理SOF事務(wù)處理表示USB幀/小幀的開始,它僅包含主機(jī)或集線器事務(wù)翻譯器發(fā)出的SOF令牌包,而不需要USB設(shè)備返回任何握手。當(dāng)USB設(shè)備檢測(cè)到SOF令牌包的PID字段

20、時(shí),表明其將進(jìn)行SOF事務(wù)處理。對(duì)幀間敏感的USB設(shè)備不需使用幀號(hào)字段,僅需對(duì)PID字段進(jìn)行譯碼即可。如果USB設(shè)備需要使用幀號(hào),則它必須對(duì)PID、幀號(hào)和CRC字段都進(jìn)行譯碼。不需使用USB總線時(shí)間的全速設(shè)備可以忽略SOF令牌包。這里以主機(jī)軟件向外部 USB 設(shè)備發(fā)送數(shù)據(jù)為例介紹整個(gè)數(shù)據(jù)傳輸流程:1.主機(jī)軟件將數(shù)據(jù)保存在數(shù)據(jù)緩沖區(qū)中,向 USB 總線驅(qū)動(dòng)程序發(fā)送數(shù)據(jù)傳輸請(qǐng)求,即 I/O 請(qǐng)求包(IRP)。 2.USB 總線驅(qū)動(dòng)程序?qū)χ鳈C(jī)軟件的 I/O 請(qǐng)求包(IRP)進(jìn)行響應(yīng)。將其中的數(shù)據(jù)轉(zhuǎn)化為 USB 協(xié)議中規(guī)定的事務(wù)處理格式,并將其向下傳遞給 USB 主控制器驅(qū)動(dòng)程序。 3.USB 主控制器驅(qū)動(dòng)程序?qū)⒚總€(gè)事務(wù)處理轉(zhuǎn)化為一系列以幀為單位的事務(wù)處理隊(duì)列。這樣處理是為了滿足 USB 傳輸協(xié)議的要求,并保證傳輸不超過(guò) USB的帶寬。 4.在 USB 主控制器中,讀取事務(wù)處理列表,將其中的事務(wù)處理以信息包的形式發(fā)送到 USB 總線上??梢允褂门總鬏?、中斷傳輸、同步傳輸和控制傳輸 4 種傳輸方式,同時(shí),也可以選擇低速、全速和高速 3 種傳輸速率進(jìn)行傳輸。 5.USB 功能設(shè)備接收信息,USB 的 IE 引擎自動(dòng)解碼信息包,并將數(shù)據(jù)保存在指定的端點(diǎn)緩沖區(qū)中,供 USB 進(jìn)行處理。 USB 功能設(shè)備向

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論