




免費預覽已結束,剩余1頁可下載查看
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
實現(xiàn)USB2.0高速數(shù)據(jù)傳輸?shù)膯栴}探討摘要:針對USB2.0高速數(shù)據(jù)傳輸在實際應用中存在的具體問題,深入分析了諸如協(xié)議開銷、帶寬分配、工作環(huán)境、主機硬件結構和操作系統(tǒng)配置、設備驅動程序等影響速度提高的種種因素。同時重點闡述了USB2.0設備接口中端點FIFO通道和GPIF通用可編程接口的關鍵作用。并利用USB2.0控制芯片EZ-USB FX2進行了不同模式下數(shù)據(jù)傳輸?shù)膶嶒炞詈笤诖嘶A上指出解決高速數(shù)據(jù)傳輸問題的幾條對策。1 引言 USB(Universal Serial Bus,通用串行總線)是計算機與其外設連接的一種新型接口技術。盡管在2000年4月27日發(fā)布的USB2.0規(guī)范中最高傳輸速度已經達到了480 Mbps(即60 MB/s)。但是很多USB2.0設備在實際工作時的數(shù)據(jù)傳輸速度卻與此相差甚遠。本文作者曾為此利用測試軟件BusHound對諸如閃存盤、mp3、移動硬盤等典型USB2.0設備進行速度測試,其結果由表1給出。 由于USB2.0的實際數(shù)據(jù)傳輸速度與PC主機和USB設備的諸多因素有關,且其中任一個因素都有可能成為影響數(shù)據(jù)傳輸速度的瓶頸。因此對此進一步地深入探討是很有必要的。2 影響USB2.0數(shù)據(jù)傳輸速度的因素分析(1)USB通信協(xié)議的開銷 在USB數(shù)據(jù)通信的過程中,總線上傳輸?shù)牟⒉恢皇钦嬲枰臄?shù)據(jù)信息,還要包括諸如同步信號、類型標識、校驗碼、握手信號等各種協(xié)議信息。因此實際數(shù)據(jù)傳輸?shù)乃俾矢緵]有可能達到總線傳輸?shù)臉O限速度480 Mbps。且對不同的傳輸類型,存在不同的協(xié)議開銷。如在USB1.1協(xié)議下規(guī)定的每毫秒1幀中,對一個設備的中斷傳輸只能進行一次,考慮中斷傳輸?shù)臄?shù)據(jù)包為64Byte,故可算出這種傳輸?shù)淖畲笏俣戎挥?4 kB/s。 對USB2.0的情況,由于采用了微幀結構,每幀分為8個微幀,且中斷傳輸在每個微幀下可以傳輸3個數(shù)據(jù)包,而每包的數(shù)據(jù)也增加到1024個字節(jié),故可以算出USB2.0的中斷傳輸?shù)淖畲笏俣忍岣叩?31024 B/ms=24 MB/s。盡管與USB1.1的64 KB/s相比提高很大,卻仍與480Mbp(60 MB/s)相差很遠。 如表2所示.USB2.0中最能體現(xiàn)高速傳輸特點的應屬批量傳輸類型,其53.24 MB/s的理論傳輸速度上限可以說比較接近60MB/s的總線速度極限。因此,如果僅從獲取最高數(shù)據(jù)傳輸?shù)哪繕顺霭l(fā),應當選用批量傳輸工作方式。(2)USB帶寬的分配 USB協(xié)議規(guī)定??刂苽鬏攽_保在低/全速時能夠使用10的帶寬,高速時能夠使用20的帶寬。而批量傳輸并沒有保留任何帶寬。即批量傳輸只有在控制傳輸和其它傳輸不需要使用其帶寬的情況下,方能使用剩下的帶寬。因此,盡管總線閑置時批量傳輸可以在一段時間里盡快地傳輸大量的數(shù)據(jù),但總線忙時批量傳輸就可能工作很慢。 通常PC主機可能同時使用諸如鼠標、鍵盤、攝像頭、打印機和掃描儀等多種USB設備,它們分別采用不同的傳輸方式??梢栽O想.如果開始只有一個設備以批量傳輸方式獨占系統(tǒng)的全部帶寬。顯然速度會很快(接近53 MB/s)。但如果新插入的若干設備需要使用控制傳輸全部20的保留帶寬,那么先前設備批量傳輸?shù)目捎脦捑蜁陆档皆鹊?0,傳輸速度可能變?yōu)?2 MB/s以下。作為一種更極端情況是批量傳輸設備插入前,已有設備以控制傳輸方式完全占有了20的保留帶寬.其它設備也以中斷或者同步傳輸方式共同占據(jù)了剩下的80帶寬,那么批量傳輸設備就會因為沒有保留帶寬,只能處于等待的狀態(tài)。 USB的實時傳輸可以保證傳輸?shù)乃俾屎愣?,而中斷傳輸要求每幀或每個微幀都能為每個設備進行一次數(shù)據(jù)傳輸。因此確保主機對設備響應的實時性。然而實時傳輸和中斷傳輸并不保留帶寬。主機只有在總線確實能夠分配足夠帶寬的情況下才會接受設備的通信要求。且實時傳輸不進行握手包的確認過程,因而不能確保數(shù)據(jù)傳輸?shù)恼_性。(3)USB設備的使用環(huán)境 USB的使用環(huán)境也是需要考慮的一個重要因素,如果處于一個電磁環(huán)境非常復雜的使用場合。不可避免地會受到干擾而產生傳輸錯誤。盡管這種錯誤在大多數(shù)通信協(xié)議(控制、中斷、批量傳輸)的管理下并不會影響通信的最終結果,但由此引發(fā)的重發(fā)、等待等糾錯工作則會明顯地影響數(shù)據(jù)傳輸速度.甚至發(fā)生堵塞的現(xiàn)象。因此,USB2.0設備和PC主機間最好采用帶磁環(huán)的USB2.0專用連接線,且其長度最好限制在3 m5 m 的范圍內,這樣受到的電磁干擾和噪聲影響較小。糾錯重發(fā)的概率也較小,數(shù)據(jù)傳輸?shù)乃俣纫簿惋@得較快。(4)PC主機本身的硬件結構與操作系統(tǒng) PC主板的數(shù)據(jù)吞吐量高度取決于USB2.0主控制器在主板芯片組結構中的位置。在用來管理I/O設備和控制I/O總線通信的南橋芯片的_T作模式下. 當USB2.0主控制器掛在PCI總線時,雖然PCI總線132 MB/s的帶寬處理USB1.1下12 Mbps的傳輸速度沒有問題,但對USB2.0高速模式就會受到PCI總線帶寬的限制。因此。較新的主板將USB2.0控制器與南橋芯片直接連接。從而消除PCI總線的帶寬瓶頸。 目前PC機上大規(guī)模使用的Windows操作系統(tǒng)是非實時操作系統(tǒng)。存數(shù)據(jù)傳輸時,操作系統(tǒng)不能實時響應數(shù)據(jù)傳輸?shù)恼埱?。雖然從Windows98開始. 以及隨后的Windows Me和Windows2000增加了對USB設備類的支持,但版本仍然是USB1.1。如需使用USB2.0設備,還需安裝相應的USB2.0驅動程序。目前只有Windows XP的Service Pack1才能完全支持USB2.0。(5)USB設備驅動程序 USB設備的驅動可以分為設備驅動程序、USB總線驅動程序、USB控制器驅動程序三個部分。如圖1所示。應用程序通過使用Windows API函數(shù)與USB設備驅動程序對話。USB設備驅動程序通過調用驅動程序棧完成對設備的接口操作、數(shù)據(jù)讀寫和管理電源等功能。USB總線驅動程序(USBD.sys)和USB2.0控制器驅動程序由操作系統(tǒng)提供。設備驅動通過構造URB(USB Request Block),并傳給總線驅動程序來完成與總線驅動程序的通信。通常情況下設備驅動程序需要頻繁產生中斷。而設備驅動程序系統(tǒng)優(yōu)先級并不高,當計算機負荷較重或者有其它優(yōu)先級較高的中斷發(fā)生時,它的中斷得不到處理而需要等待。如果設備驅動程序向USB總線傳遞URB的時候設置一個較大的緩沖區(qū).便可減少了中斷的頻率而減少等待時間。從而提高數(shù)據(jù)傳輸?shù)乃俣?。此外,調整驅動程序中諸如命令排隊策略、改變請求包大小等措施,也能對USB的數(shù)據(jù)傳輸速度產生一定的影響。(6)USB設備的硬件與固件 由于USB2.0的速度實在太快。一般單片機通過CPU的數(shù)據(jù)讀寫處理方式常常成為限制數(shù)據(jù)傳輸速度的瓶頸。因此為了實現(xiàn)USB設備與PC主機之間的高速傳輸,必須采用專門的接口電路和固件程序。3 通用USB2.0設備控制器的高速工作模式 EZ-USB FX2是一種支持USB2.0的微控制器,F(xiàn)X2內部集成了USB2.0收發(fā)器、智能串行接口引擎(SIE)、增強型8051內核、8.5 KB的RAM、4 KB的FIFO存儲器、I/O端口、I2C總線接口、8/16位數(shù)據(jù)總線和通用可編程接口(GPIF)等,最終通過通用的標準ATA接口連接外部電路,以適應不同的用戶功能。 這里串行接口引擎SIE負責完成諸如串行數(shù)據(jù)的編碼和解碼,差錯控制,位填充等支持USB底層協(xié)議的功能。數(shù)據(jù)傳輸則通常需要微處理器通過固件訪問接口芯片中的端點FIFO, 也需要微處理器通過固件訪問外圍設備的接口電路,正如圖2中標識符 和所示的數(shù)據(jù)傳輸路線。然而,這種工作方式會因微處理器固件程序執(zhí)行較慢而限制數(shù)據(jù)傳輸速率的提高,且在高速時顯得格外突出。 為了適應USB2.0高速數(shù)據(jù)傳輸?shù)男枰?這里采用了一種特殊的數(shù)據(jù)傳輸模式,如圖2中標識符所示的數(shù)據(jù)傳輸路線,此時無需執(zhí)行內部8051固件程序便可直接實現(xiàn)端點FIFO與外部的數(shù)據(jù)交換。從而很好地解決了普通微處理器轉發(fā)方式造成的帶寬瓶頸。 實際電路結構中,4 KByte的端點FIFO可以通過固件程序配置成多重緩沖的形式,這種結構可有效地提高USB帶寬的性能,平滑帶寬的抖動,并減少通信等待的時間。具體控制分為從機模式和主機模式兩種。主機模式是指利用FX2內部集成的通用可編程接口GPIF(General Programmable Interface)產生時序邏輯信號來控制與外圍設備的數(shù)據(jù)傳輸。從機模式則指利用外部信號控制端點FIFO與外設之間的數(shù)據(jù)傳輸。 GPIF可包含8個時序狀態(tài),支持控制輸出線CTL、狀態(tài)輸入線RDY和地址信號ADR,構造的各種時序邏輯信號可以有效地支持16位數(shù)據(jù)總線的雙向操作。描述GPIF波形的數(shù)組稱為波形描述符,可以在設備初始化時同固件程序一起下載.GPIF將根據(jù)其表達的時序邏輯關系,執(zhí)行相應的控制作用。 FX2的固件程序是設備運行的核心.擔負著處理USB驅動程序的請求,執(zhí)行應用程序的控制指令,完成數(shù)據(jù)的讀寫操作,以及根據(jù)需要啟動GPIF周期.實現(xiàn)端點FIFO與外界的數(shù)據(jù)交換等功能。固件程序并不經常參與數(shù)據(jù)傳輸?shù)木唧w過程.通常僅起檢測、判斷的作用,決定GPIF的工作在何時開始.何時停止。4 USB2.0高速數(shù)據(jù)傳輸?shù)乃俣葴y試 USB2,0速度測試的基本方法是通過PC主機上的測試軟件,記錄該PC主機與某USB設備在固定時間內交換的數(shù)據(jù)信息流量,進而算出實際使用中的數(shù)據(jù)傳輸速度。這里采用的速度測試軟件是美國Perisoft公司提供的一種名為Bus Hound的總線分析測試軟件.其界面如圖3所示.這個軟件在運行中不會對設備的工作產生任何影響。用該軟件來觀察USB設備工作情況,可以直接讀取當前USB設備輸入輸出的數(shù)據(jù)量大小、數(shù)據(jù)傳輸速度和設備屬性等信息。 本文為USB2.0實際傳輸速度的具體測試流程如圖4所示。利用EZUSB FX2控制芯片開發(fā)的USB2.0設備通用控制器和一臺PC機。用一根大約2 m長的帶磁環(huán)的USB2.0專用連接線連接在一起。PC機的硬件配置是Intel P4 2.4 GHz的CPU,基于Inte1848芯片組的主板,主板上帶有支持高速模式的USB2.0接口,256 M DDR333內存. 操作系統(tǒng)是WindowsXP SP1。主機設備驅動程序采用Cypress公司為FX2系列控制器提供的通用驅動程序ezusb.sys。其中數(shù)據(jù)緩沖區(qū)設為64KB,應用程序用VC編寫,其作用是向USB接口控制器發(fā)送需要數(shù)據(jù)上傳的指令和上傳數(shù)據(jù)量的大小后。將數(shù)據(jù)從USB設備讀到PC之中。作為USB設備的FX2的固件程序在Keil集成開發(fā)環(huán)境中開發(fā)。應用GPIF進行邏輯控制.并將所用端點6設為單區(qū)容量大小為512Byte的4重緩沖模式。固件程序的功能只是將來自并行數(shù)據(jù)線的數(shù)據(jù)源源不斷地送往USB的端點FIFO中。 在固件程序設計中首先采用圖2中標識符和所示的數(shù)據(jù)傳輸模式.測得的數(shù)據(jù)傳輸速度一直在200 KB/s以下。然后采用圖2中標識符所示的數(shù)據(jù)傳輸模式,在實驗中讓PC主機多次重復采集大量數(shù)據(jù)。以提高速度測試的準確性。在PC機不接其它USB設備一次采集數(shù)據(jù)的量為650.2 Mbyte的情況下,USB2.0總線的實際數(shù)據(jù)傳輸速度最高達到了25.5 MB/s,即204Mbps。5 結束語 綜上所述,這里強調幾點看法:首先,人們通常所說的480 Mbps是USB2.0總線速度的上限.考慮通信協(xié)議的開銷后,實際數(shù)據(jù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年兩人股份協(xié)議書模板
- 2025年技術轉讓合同模板版
- 六年級下冊數(shù)學教案- 3.2 正比例 正比例的意義|西師大版
- 五年級上冊數(shù)學教案-4.小數(shù)的大小比較 蘇教版
- 《野望》歷年中考古詩欣賞試題匯編(截至2022年)
- 2025年湖南省邵陽市單招職業(yè)適應性測試題庫審定版
- 2024年水輪機及輔機項目資金需求報告
- 2025年嘉興職業(yè)技術學院單招職業(yè)適應性測試題庫新版
- 2025年河南省新鄉(xiāng)市單招職業(yè)傾向性測試題庫及答案1套
- 微專題21 圓錐曲線經典難題之一類探索性問題的通性通法研究 -2025年新高考數(shù)學二輪復習微專題提分突破140分方案
- 采購部組織結構圖
- 土力學與地基基礎(課件)
- 股票入門-k線圖基礎知識
- 全國大全身份證前六位、區(qū)號、郵編-編碼
- 種植林業(yè)可行性研究報告
- 金和物業(yè)公司簡介
- 廣東省五年一貫制考試英語真題
- 2023年中央廣播電視總臺校園招聘筆試參考題庫附帶答案詳解
- 項目部崗位廉潔風險情景教育案例
- 小學英語-What a dream教學設計學情分析教材分析課后反思
- 消防栓定期檢查記錄表
評論
0/150
提交評論