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