實(shí)現(xiàn)USB2.0高速數(shù)據(jù)傳輸?shù)膯栴}探討.doc_第1頁
實(shí)現(xiàn)USB2.0高速數(shù)據(jù)傳輸?shù)膯栴}探討.doc_第2頁
實(shí)現(xiàn)USB2.0高速數(shù)據(jù)傳輸?shù)膯栴}探討.doc_第3頁
實(shí)現(xiàn)USB2.0高速數(shù)據(jù)傳輸?shù)膯栴}探討.doc_第4頁
實(shí)現(xiàn)USB2.0高速數(shù)據(jù)傳輸?shù)膯栴}探討.doc_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡(jiǎn)介

實(shí)現(xiàn)USB2.0高速數(shù)據(jù)傳輸?shù)膯栴}探討摘要:針對(duì)USB2.0高速數(shù)據(jù)傳輸在實(shí)際應(yīng)用中存在的具體問題,深入分析了諸如協(xié)議開銷、帶寬分配、工作環(huán)境、主機(jī)硬件結(jié)構(gòu)和操作系統(tǒng)配置、設(shè)備驅(qū)動(dòng)程序等影響速度提高的種種因素。同時(shí)重點(diǎn)闡述了USB2.0設(shè)備接口中端點(diǎn)FIFO通道和GPIF通用可編程接口的關(guān)鍵作用。并利用USB2.0控制芯片EZ-USB FX2進(jìn)行了不同模式下數(shù)據(jù)傳輸?shù)膶?shí)驗(yàn)最后在此基礎(chǔ)上指出解決高速數(shù)據(jù)傳輸問題的幾條對(duì)策。1 引言 USB(Universal Serial Bus,通用串行總線)是計(jì)算機(jī)與其外設(shè)連接的一種新型接口技術(shù)。盡管在2000年4月27日發(fā)布的USB2.0規(guī)范中最高傳輸速度已經(jīng)達(dá)到了480 Mbps(即60 MB/s)。但是很多USB2.0設(shè)備在實(shí)際工作時(shí)的數(shù)據(jù)傳輸速度卻與此相差甚遠(yuǎn)。本文作者曾為此利用測(cè)試軟件BusHound對(duì)諸如閃存盤、mp3、移動(dòng)硬盤等典型USB2.0設(shè)備進(jìn)行速度測(cè)試,其結(jié)果由表1給出。 由于USB2.0的實(shí)際數(shù)據(jù)傳輸速度與PC主機(jī)和USB設(shè)備的諸多因素有關(guān),且其中任一個(gè)因素都有可能成為影響數(shù)據(jù)傳輸速度的瓶頸。因此對(duì)此進(jìn)一步地深入探討是很有必要的。2 影響USB2.0數(shù)據(jù)傳輸速度的因素分析(1)USB通信協(xié)議的開銷 在USB數(shù)據(jù)通信的過程中,總線上傳輸?shù)牟⒉恢皇钦嬲枰臄?shù)據(jù)信息,還要包括諸如同步信號(hào)、類型標(biāo)識(shí)、校驗(yàn)碼、握手信號(hào)等各種協(xié)議信息。因此實(shí)際數(shù)據(jù)傳輸?shù)乃俾矢緵]有可能達(dá)到總線傳輸?shù)臉O限速度480 Mbps。且對(duì)不同的傳輸類型,存在不同的協(xié)議開銷。如在USB1.1協(xié)議下規(guī)定的每毫秒1幀中,對(duì)一個(gè)設(shè)備的中斷傳輸只能進(jìn)行一次,考慮中斷傳輸?shù)臄?shù)據(jù)包為64Byte,故可算出這種傳輸?shù)淖畲笏俣戎挥?4 kB/s。 對(duì)USB2.0的情況,由于采用了微幀結(jié)構(gòu),每幀分為8個(gè)微幀,且中斷傳輸在每個(gè)微幀下可以傳輸3個(gè)數(shù)據(jù)包,而每包的數(shù)據(jù)也增加到1024個(gè)字節(jié),故可以算出USB2.0的中斷傳輸?shù)淖畲笏俣忍岣叩?31024 B/ms=24 MB/s。盡管與USB1.1的64 KB/s相比提高很大,卻仍與480Mbp(60 MB/s)相差很遠(yuǎn)。 如表2所示.USB2.0中最能體現(xiàn)高速傳輸特點(diǎn)的應(yīng)屬批量傳輸類型,其53.24 MB/s的理論傳輸速度上限可以說比較接近60MB/s的總線速度極限。因此,如果僅從獲取最高數(shù)據(jù)傳輸?shù)哪繕?biāo)出發(fā),應(yīng)當(dāng)選用批量傳輸工作方式。(2)USB帶寬的分配 USB協(xié)議規(guī)定。控制傳輸應(yīng)確保在低/全速時(shí)能夠使用10的帶寬,高速時(shí)能夠使用20的帶寬。而批量傳輸并沒有保留任何帶寬。即批量傳輸只有在控制傳輸和其它傳輸不需要使用其帶寬的情況下,方能使用剩下的帶寬。因此,盡管總線閑置時(shí)批量傳輸可以在一段時(shí)間里盡快地傳輸大量的數(shù)據(jù),但總線忙時(shí)批量傳輸就可能工作很慢。 通常PC主機(jī)可能同時(shí)使用諸如鼠標(biāo)、鍵盤、攝像頭、打印機(jī)和掃描儀等多種USB設(shè)備,它們分別采用不同的傳輸方式。可以設(shè)想.如果開始只有一個(gè)設(shè)備以批量傳輸方式獨(dú)占系統(tǒng)的全部帶寬。顯然速度會(huì)很快(接近53 MB/s)。但如果新插入的若干設(shè)備需要使用控制傳輸全部20的保留帶寬,那么先前設(shè)備批量傳輸?shù)目捎脦捑蜁?huì)下降到原先的80,傳輸速度可能變?yōu)?2 MB/s以下。作為一種更極端情況是批量傳輸設(shè)備插入前,已有設(shè)備以控制傳輸方式完全占有了20的保留帶寬.其它設(shè)備也以中斷或者同步傳輸方式共同占據(jù)了剩下的80帶寬,那么批量傳輸設(shè)備就會(huì)因?yàn)闆]有保留帶寬,只能處于等待的狀態(tài)。 USB的實(shí)時(shí)傳輸可以保證傳輸?shù)乃俾屎愣ǎ袛鄠鬏斠竺繋蛎總€(gè)微幀都能為每個(gè)設(shè)備進(jìn)行一次數(shù)據(jù)傳輸。因此確保主機(jī)對(duì)設(shè)備響應(yīng)的實(shí)時(shí)性。然而實(shí)時(shí)傳輸和中斷傳輸并不保留帶寬。主機(jī)只有在總線確實(shí)能夠分配足夠帶寬的情況下才會(huì)接受設(shè)備的通信要求。且實(shí)時(shí)傳輸不進(jìn)行握手包的確認(rèn)過程,因而不能確保數(shù)據(jù)傳輸?shù)恼_性。(3)USB設(shè)備的使用環(huán)境 USB的使用環(huán)境也是需要考慮的一個(gè)重要因素,如果處于一個(gè)電磁環(huán)境非常復(fù)雜的使用場(chǎng)合。不可避免地會(huì)受到干擾而產(chǎn)生傳輸錯(cuò)誤。盡管這種錯(cuò)誤在大多數(shù)通信協(xié)議(控制、中斷、批量傳輸)的管理下并不會(huì)影響通信的最終結(jié)果,但由此引發(fā)的重發(fā)、等待等糾錯(cuò)工作則會(huì)明顯地影響數(shù)據(jù)傳輸速度.甚至發(fā)生堵塞的現(xiàn)象。因此,USB2.0設(shè)備和PC主機(jī)間最好采用帶磁環(huán)的USB2.0專用連接線,且其長度最好限制在3 m5 m 的范圍內(nèi),這樣受到的電磁干擾和噪聲影響較小。糾錯(cuò)重發(fā)的概率也較小,數(shù)據(jù)傳輸?shù)乃俣纫簿惋@得較快。(4)PC主機(jī)本身的硬件結(jié)構(gòu)與操作系統(tǒng) PC主板的數(shù)據(jù)吞吐量高度取決于USB2.0主控制器在主板芯片組結(jié)構(gòu)中的位置。在用來管理I/O設(shè)備和控制I/O總線通信的南橋芯片的_T作模式下. 當(dāng)USB2.0主控制器掛在PCI總線時(shí),雖然PCI總線132 MB/s的帶寬處理USB1.1下12 Mbps的傳輸速度沒有問題,但對(duì)USB2.0高速模式就會(huì)受到PCI總線帶寬的限制。因此。較新的主板將USB2.0控制器與南橋芯片直接連接。從而消除PCI總線的帶寬瓶頸。 目前PC機(jī)上大規(guī)模使用的Windows操作系統(tǒng)是非實(shí)時(shí)操作系統(tǒng)。存數(shù)據(jù)傳輸時(shí),操作系統(tǒng)不能實(shí)時(shí)響應(yīng)數(shù)據(jù)傳輸?shù)恼?qǐng)求。雖然從Windows98開始. 以及隨后的Windows Me和Windows2000增加了對(duì)USB設(shè)備類的支持,但版本仍然是USB1.1。如需使用USB2.0設(shè)備,還需安裝相應(yīng)的USB2.0驅(qū)動(dòng)程序。目前只有Windows XP的Service Pack1才能完全支持USB2.0。(5)USB設(shè)備驅(qū)動(dòng)程序 USB設(shè)備的驅(qū)動(dòng)可以分為設(shè)備驅(qū)動(dòng)程序、USB總線驅(qū)動(dòng)程序、USB控制器驅(qū)動(dòng)程序三個(gè)部分。如圖1所示。應(yīng)用程序通過使用Windows API函數(shù)與USB設(shè)備驅(qū)動(dòng)程序?qū)υ挕SB設(shè)備驅(qū)動(dòng)程序通過調(diào)用驅(qū)動(dòng)程序棧完成對(duì)設(shè)備的接口操作、數(shù)據(jù)讀寫和管理電源等功能。USB總線驅(qū)動(dòng)程序(USBD.sys)和USB2.0控制器驅(qū)動(dòng)程序由操作系統(tǒng)提供。設(shè)備驅(qū)動(dòng)通過構(gòu)造URB(USB Request Block),并傳給總線驅(qū)動(dòng)程序來完成與總線驅(qū)動(dòng)程序的通信。通常情況下設(shè)備驅(qū)動(dòng)程序需要頻繁產(chǎn)生中斷。而設(shè)備驅(qū)動(dòng)程序系統(tǒng)優(yōu)先級(jí)并不高,當(dāng)計(jì)算機(jī)負(fù)荷較重或者有其它優(yōu)先級(jí)較高的中斷發(fā)生時(shí),它的中斷得不到處理而需要等待。如果設(shè)備驅(qū)動(dòng)程序向USB總線傳遞URB的時(shí)候設(shè)置一個(gè)較大的緩沖區(qū).便可減少了中斷的頻率而減少等待時(shí)間。從而提高數(shù)據(jù)傳輸?shù)乃俣取4送猓{(diào)整驅(qū)動(dòng)程序中諸如命令排隊(duì)策略、改變請(qǐng)求包大小等措施,也能對(duì)USB的數(shù)據(jù)傳輸速度產(chǎn)生一定的影響。(6)USB設(shè)備的硬件與固件 由于USB2.0的速度實(shí)在太快。一般單片機(jī)通過CPU的數(shù)據(jù)讀寫處理方式常常成為限制數(shù)據(jù)傳輸速度的瓶頸。因此為了實(shí)現(xiàn)USB設(shè)備與PC主機(jī)之間的高速傳輸,必須采用專門的接口電路和固件程序。3 通用USB2.0設(shè)備控制器的高速工作模式 EZ-USB FX2是一種支持USB2.0的微控制器,F(xiàn)X2內(nèi)部集成了USB2.0收發(fā)器、智能串行接口引擎(SIE)、增強(qiáng)型8051內(nèi)核、8.5 KB的RAM、4 KB的FIFO存儲(chǔ)器、I/O端口、I2C總線接口、8/16位數(shù)據(jù)總線和通用可編程接口(GPIF)等,最終通過通用的標(biāo)準(zhǔn)ATA接口連接外部電路,以適應(yīng)不同的用戶功能。 這里串行接口引擎SIE負(fù)責(zé)完成諸如串行數(shù)據(jù)的編碼和解碼,差錯(cuò)控制,位填充等支持USB底層協(xié)議的功能。數(shù)據(jù)傳輸則通常需要微處理器通過固件訪問接口芯片中的端點(diǎn)FIFO, 也需要微處理器通過固件訪問外圍設(shè)備的接口電路,正如圖2中標(biāo)識(shí)符 和所示的數(shù)據(jù)傳輸路線。然而,這種工作方式會(huì)因微處理器固件程序執(zhí)行較慢而限制數(shù)據(jù)傳輸速率的提高,且在高速時(shí)顯得格外突出。 為了適應(yīng)USB2.0高速數(shù)據(jù)傳輸?shù)男枰?這里采用了一種特殊的數(shù)據(jù)傳輸模式,如圖2中標(biāo)識(shí)符所示的數(shù)據(jù)傳輸路線,此時(shí)無需執(zhí)行內(nèi)部8051固件程序便可直接實(shí)現(xiàn)端點(diǎn)FIFO與外部的數(shù)據(jù)交換。從而很好地解決了普通微處理器轉(zhuǎn)發(fā)方式造成的帶寬瓶頸。 實(shí)際電路結(jié)構(gòu)中,4 KByte的端點(diǎn)FIFO可以通過固件程序配置成多重緩沖的形式,這種結(jié)構(gòu)可有效地提高USB帶寬的性能,平滑帶寬的抖動(dòng),并減少通信等待的時(shí)間。具體控制分為從機(jī)模式和主機(jī)模式兩種。主機(jī)模式是指利用FX2內(nèi)部集成的通用可編程接口GPIF(General Programmable Interface)產(chǎn)生時(shí)序邏輯信號(hào)來控制與外圍設(shè)備的數(shù)據(jù)傳輸。從機(jī)模式則指利用外部信號(hào)控制端點(diǎn)FIFO與外設(shè)之間的數(shù)據(jù)傳輸。 GPIF可包含8個(gè)時(shí)序狀態(tài),支持控制輸出線CTL、狀態(tài)輸入線RDY和地址信號(hào)ADR,構(gòu)造的各種時(shí)序邏輯信號(hào)可以有效地支持16位數(shù)據(jù)總線的雙向操作。描述GPIF波形的數(shù)組稱為波形描述符,可以在設(shè)備初始化時(shí)同固件程序一起下載.GPIF將根據(jù)其表達(dá)的時(shí)序邏輯關(guān)系,執(zhí)行相應(yīng)的控制作用。 FX2的固件程序是設(shè)備運(yùn)行的核心.擔(dān)負(fù)著處理USB驅(qū)動(dòng)程序的請(qǐng)求,執(zhí)行應(yīng)用程序的控制指令,完成數(shù)據(jù)的讀寫操作,以及根據(jù)需要啟動(dòng)GPIF周期.實(shí)現(xiàn)端點(diǎn)FIFO與外界的數(shù)據(jù)交換等功能。固件程序并不經(jīng)常參與數(shù)據(jù)傳輸?shù)木唧w過程.通常僅起檢測(cè)、判斷的作用,決定GPIF的工作在何時(shí)開始.何時(shí)停止。4 USB2.0高速數(shù)據(jù)傳輸?shù)乃俣葴y(cè)試 USB2,0速度測(cè)試的基本方法是通過PC主機(jī)上的測(cè)試軟件,記錄該P(yáng)C主機(jī)與某USB設(shè)備在固定時(shí)間內(nèi)交換的數(shù)據(jù)信息流量,進(jìn)而算出實(shí)際使用中的數(shù)據(jù)傳輸速度。這里采用的速度測(cè)試軟件是美國Perisoft公司提供的一種名為Bus Hound的總線分析測(cè)試軟件.其界面如圖3所示.這個(gè)軟件在運(yùn)行中不會(huì)對(duì)設(shè)備的工作產(chǎn)生任何影響。用該軟件來觀察USB設(shè)備工作情況,可以直接讀取當(dāng)前USB設(shè)備輸入輸出的數(shù)據(jù)量大小、數(shù)據(jù)傳輸速度和設(shè)備屬性等信息。 本文為USB2.0實(shí)際傳輸速度的具體測(cè)試流程如圖4所示。利用EZUSB FX2控制芯片開發(fā)的USB2.0設(shè)備通用控制器和一臺(tái)PC機(jī)。用一根大約2 m長的帶磁環(huán)的USB2.0專用連接線連接在一起。PC機(jī)的硬件配置是Intel P4 2.4 GHz的CPU,基于Inte1848芯片組的主板,主板上帶有支持高速模式的USB2.0接口,256 M DDR333內(nèi)存. 操作系統(tǒng)是WindowsXP SP1。主機(jī)設(shè)備驅(qū)動(dòng)程序采用Cypress公司為FX2系列控制器提供的通用驅(qū)動(dòng)程序ezusb.sys。其中數(shù)據(jù)緩沖區(qū)設(shè)為64KB,應(yīng)用程序用VC編寫,其作用是向USB接口控制器發(fā)送需要數(shù)據(jù)上傳的指令和上傳數(shù)據(jù)量的大小后。將數(shù)據(jù)從USB設(shè)備讀到PC之中。作為USB設(shè)備的FX2的固件程序在Keil集成開發(fā)環(huán)境中開發(fā)。應(yīng)用GPIF進(jìn)行邏輯控制.并將所用端點(diǎn)6設(shè)為單區(qū)容量大小為512Byte的4重緩沖模式。固件程序的功能只是將來自并行數(shù)據(jù)線的數(shù)據(jù)源源不斷地送往USB的端點(diǎn)FIFO中。 在固件程序設(shè)計(jì)中首先采用圖2中標(biāo)識(shí)符和所示的數(shù)據(jù)傳輸模式.測(cè)得的數(shù)據(jù)傳輸速度一直在200 KB/s以下。然后采用圖2中標(biāo)識(shí)符所示的數(shù)據(jù)傳輸模式,在實(shí)驗(yàn)中讓PC主機(jī)多次重復(fù)采集大量數(shù)據(jù)。以提高速度測(cè)試的準(zhǔn)確性。在PC機(jī)不接其它USB設(shè)備一次采集數(shù)據(jù)的量為650.2 Mbyte的情況下,USB2.0總線的實(shí)際數(shù)據(jù)傳輸速度最高達(dá)到了25.5 MB/s,即204Mbps。5 結(jié)束語 綜上所述,這里強(qiáng)調(diào)幾點(diǎn)看法:首先,人們通常所說的480 Mbps是USB2.0總線速度的上限.考慮通信協(xié)議的開銷后,實(shí)際數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論