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