- 相關(guān)推薦
一種基于USB的快速數據傳輸系統設計
摘 要:文章介紹了一種利用基于USB的快速讀數系統的設計方法。該系統利用CY7C68013實(shí)現,文章給出了系統的硬件設計方案、FPGA內部集成FIFO的軟件實(shí)現方法以及GPIF與FLASH握手信號的設計。通過(guò)此USB數據傳輸模塊,實(shí)現了FLASH存儲器與計算機之間的數據高速傳輸。應用結果表明,此數據通信系統是可靠有效的,具有一定的通用性,可用于其它類(lèi)似的測試存儲系統中。
關(guān)鍵詞:USB;GPIF;數據傳輸;FPGA
目前計算機的有線(xiàn)數據傳輸方式主要有串口、并口和USB三種。串口最高傳輸速度僅為115200bit/s。并口傳輸的模式有兩種,速度最快的EPP模式其傳輸速度約為兩百K。而USB方式中數據以包的形式進(jìn)行傳送,工作模式分低速、全速和高速,低速的傳輸速度為1.5M/S,全速約為12M/S,高速可達480M/S。面對今天容量日益龐大的存儲系統,使用USB技術(shù)無(wú)疑將大大提高系統讀數速度。隨著(zhù)嵌入式系統的發(fā)展,將USB硬件收發(fā)器、SIE串行接口引擎等USB硬件集成在一個(gè)單片機芯片上,簡(jiǎn)化USB協(xié)議,為我們使用USB設計讀數模塊提供了可能。
本文USB傳輸系統采用微處理器CY68013實(shí)現。文章給出了此數據傳輸系統的硬件設計方案,著(zhù)重介紹了FPGA控制模塊中內部集成FIFO的實(shí)現方法,以及GPIF與FLASH通信時(shí)握手信號的設計方案。
1系統硬件方案設計
CY68013 是Cypress公司推出的 EZ-USB FX2系列產(chǎn)品之一,內部集成了 USB 2.0 收發(fā)器、智能串行引擎(SIE)、增強型8051控制器、通用可編程接口(GPIF)、8.5KB的RAM 和FIFO存儲器,最大限度的滿(mǎn)足了USB2.0的總線(xiàn)帶寬。FX2最常用的數據傳輸方式就是GPIF。GPIF是一種快速的數據傳輸方式,時(shí)序簡(jiǎn)單。它可以很容易的從RAM中讀取數據。但是,由于FLASH存儲器的讀數操作是以頁(yè)為單位,讀數時(shí)頁(yè)與頁(yè)之間有一小段時(shí)間間隔,數據輸出不是連續的。為解決此問(wèn)題,實(shí)現FX2GPIF方式讀取FLASH中的數據,需要使用FIFO作為數據過(guò)渡,先將FLASH中的數據讀到FIFO中,USB控制器再從FIFO中讀取數據。
2FPGA內部集成FIFO的軟件設計
2.1內部集成FIFO的結構
FIFO的本質(zhì)是一種特殊的雙口RAM,由于大部分FPGA內部就有雙口RAM資源。因此在這里選用合適的FPGA芯片來(lái)編寫(xiě)FPGA內部集成FIFO。FIFO結構的特點(diǎn)是先進(jìn)先出,對外它是一種沒(méi)有地址控制的特殊緩存。只要給一個(gè)FIFO提供讀、寫(xiě)使能信號就能使其工作,不同的是FIFO對外不顯示地址,只是給出表現內部狀態(tài)的滿(mǎn)、半滿(mǎn)和空信號,用戶(hù)根據這些信號對FIFO進(jìn)行操作。
FIFO設計時(shí)最重要的就是怎么給出這些信號。本設計中FIFO產(chǎn)生滿(mǎn)、半滿(mǎn)以及空狀態(tài)標志信號采用如下方法:用讀地址和寫(xiě)地址相減結果來(lái)判斷FIFO的滿(mǎn)空狀態(tài);此外還可以據此得到FIFO的半滿(mǎn)狀態(tài)信號。這種方法可以容易的控制FIFO滿(mǎn)、半滿(mǎn)、空的深度。
2.2FIFO標志信號的產(chǎn)生
FIFO滿(mǎn)、空、半滿(mǎn)標志信號的生成過(guò)程是一樣的,只不過(guò)判斷比較的差值不一樣。FIFO滿(mǎn)時(shí)差值為1023,空為1。為了避免時(shí)序錯誤,還可以設定一定的滿(mǎn)空深度。例如,當地址差大于1000時(shí)認為FIFO已滿(mǎn),不再向FIFO中寫(xiě)入數據,這樣可以避免錯誤的出現。
3GPIF與FLASH握手信號設計滿(mǎn)、空信號主要是在讀數時(shí)使用,用作GPIF與FLASH讀數時(shí)的握手信號,以保證讀數的穩定可靠。讀數時(shí)數據要先存到FIFO中,然后USB再從FIFO中讀取數據。對于FIFO來(lái)說(shuō),讀取和寫(xiě)入的速度是不同的,可能讀比寫(xiě)快,也可能寫(xiě)比讀快。因此,我們需要設計讀數握手信號,以防讀數時(shí)丟失數據。信號的握手過(guò)程是:對于讀數控制模塊來(lái)說(shuō),只要FIFO不滿(mǎn)它就向FIFO中寫(xiě)入數據。對于FX2GPIF來(lái)說(shuō),只要FIFO不空它就從FIFO中讀取數據。這樣對于FIFO的讀寫(xiě)就組成了一個(gè)閉環(huán),保證了讀數的完整準確。
讀數握手方式確定以后可能出現兩種情況:①FIFO的寫(xiě)數速度大于讀數速度,這樣寫(xiě)地址慢慢就追上讀地址了,這時(shí)的總的讀數速度就由讀數速度決定。②FIFO的寫(xiě)數速度大于讀數速度,這樣讀地址慢慢就追上寫(xiě)地址,這時(shí)的總的讀數速度就由寫(xiě)數速度決定。
4結語(yǔ)
本文設計的基于EZ-USB FX2微處理器的數據通信系統,實(shí)現了利用USB端口從FLASH存儲器種快速讀取數據。此數據通信系統應用在了某型號車(chē)載測試存儲系統中。存儲的數據通過(guò)此傳輸模塊快速地讀入計算機,根據上位機數據恢復的信號與原始信號比較,失真較小,噪聲水平低取得了良好的效果。此設計具有一定的通用性,對于一般基于USB的高速數據傳輸系統設計具有一定的應用參考價(jià)值。
參考文獻:
[1]錢(qián)峰.EZ-USB FX2單片機原理、編程及應用[M].北京:北京航空航天大學(xué)出版社,2006.
[2]張會(huì )新,王紅亮.通用異步串行通訊測試系統[J].儀器儀表學(xué)報,2006,27(S2):434-435.
[4]徐慶元,張天序.基于USB總線(xiàn)的高速視頻采集系統設計[J].微計算機信息,2006,(10):247.
【一種基于USB的快速數據傳輸系統設計】相關(guān)文章:
基于USB接口的數據采集系統設計03-18
基于USB接口的數據傳輸系統的研究與設計03-15
基于USB總線(xiàn)的實(shí)時(shí)數據采集系統設計與實(shí)現03-19
基于USB與DSP的指紋識別系統的設計實(shí)現03-19
基于DSP的USB口數據采集分析系統03-18
帶USB接口的電子巡更系統的設計03-18