摘 要: 選取Altera公司Cyclone III系列EP3C40F484作為新型高速數(shù)據(jù)傳輸系統(tǒng)控制平臺,將DDR2作為FIFO,借助USB3.0中的CYUSB3014,完成FPGA與PC之間的高速圖像數(shù)據(jù)傳輸。通過軟硬件測試,驗證了該系統(tǒng)圖像數(shù)據(jù)傳輸?shù)母咚俸涂煽啃浴?/p>
關(guān)鍵詞:USB3.0;CYUSB3014;噴繪機;FPGA,DDR2
隨著科技的不斷進步,噴繪機對圖像數(shù)據(jù)的傳輸速度有了更高的要求,傳統(tǒng)USB1.0或2.0傳輸顯示已不能達到要求。雖然理論上USB3.0[1]協(xié)議傳輸速度達 5 Gb/s,但由于種種原因,數(shù)據(jù)傳輸速度[2]離理論數(shù)值還有很大差值,如何在實際速度上提高圖像數(shù)據(jù)的傳輸速度值得研究。
1 系統(tǒng)總體設(shè)計
本系統(tǒng)主要研究PC和FPGA間的數(shù)據(jù)傳輸,圖1是系統(tǒng)的總體設(shè)計。從圖中看出,圖像數(shù)據(jù)從PC發(fā)送時經(jīng)過USB3.0接口,并在內(nèi)部通過DMA傳送方式把圖像數(shù)據(jù)傳送到GPIF II接口,然后FPGA直接從GPIF II接口處讀出圖像數(shù)據(jù),發(fā)送給需要的I/O接口或外部器件。若把FPGA作為數(shù)據(jù)源向PC發(fā)送數(shù)據(jù),為給批量(BULK)傳輸提供足夠的緩存空間,需要把DDR2作為FIFO,數(shù)據(jù)從FPGA經(jīng)過FIFO緩沖區(qū)通過FX3系統(tǒng)的USB3.0接口傳送到PC。FPGA采用了50 MHz的主頻,其中4個按鍵中一個是復(fù)位鍵,剩下3個按鍵對應(yīng)到測試速度指示燈,并且按鍵的狀態(tài)FPGA發(fā)送到FX3系統(tǒng),然后上傳到上位機。
2 系統(tǒng)硬件設(shè)計
設(shè)計中采用Altera公司Cyclone III系列EP3C40F484芯片作為FPGA的主控芯片,以MT47H64M16HR芯片DDR2為數(shù)據(jù)設(shè)立緩沖區(qū) ,以FX3系列CYUSB3014芯片作為USB3.0的驅(qū)動[2],采用在上位機編程和Eclipse軟件進行編譯下載到USB3.0控制系統(tǒng)板級上程序,形成API應(yīng)用,進行數(shù)據(jù)傳輸測試。系統(tǒng)設(shè)計過程中采用了2片1 Gbit存儲量的DDR2作為FIFO,緩沖FPGA到主機圖像數(shù)據(jù),同時2片DDR2分別采用獨立的地址、控制總線和數(shù)據(jù)總線,支持乒乓倒的數(shù)據(jù)傳輸模式。
圖2所示為FPGA硬件系統(tǒng)的搭建與配置,搭建的過程主要把FPGA、DDR2以及USB3.0進行搭建構(gòu)成完整的通信鏈路。從圖可以看出DDR2的時鐘主頻頻率來自FPGA的SYS_CLK_50M引腳,即50 MHz。DDR2采用雙邊沿觸發(fā),即上升沿與下降沿即為100 MHz的讀寫頻率。通過led_io[0]引腳信號來控制數(shù)據(jù)方向(即FPGA從DDR2讀數(shù)據(jù)還是寫數(shù)據(jù)),并根據(jù)讀寫使能對DDR2的數(shù)據(jù)位以及地址位進行嚴格控制。圖中配置了USB3.0的usb_pclk、usb_dp[31:0]、usb_slwr、usb_sldr、KEY1~KEY3、LED0~LED3、UART的TX、RX。
3 系統(tǒng)的軟件設(shè)計
在整個軟件架構(gòu)中分別對GPIF II狀態(tài)機、DDR2中的FIFO讀寫、USB的數(shù)據(jù)流傳輸?shù)冗M行設(shè)計與研究。為后續(xù)測試、觀察的需要,在上位機分別進行C++編程和Eclipse 新建并編譯工程且通過JTAG下載到FX3系統(tǒng)的板級上,方便上位機與下位機通信觀察和控制。
3.1 DDR2中的FIFO讀寫設(shè)計
FIFO建立主要是為了FPGA向上位機發(fā)送數(shù)據(jù)時能提供足夠大的緩存,以便可以批量地的處理數(shù)據(jù)。設(shè)計中的FIFO主要通過DDR2實現(xiàn),所以在設(shè)計過程中要分別對DDR2的讀寫進行控制,圖3為FIFO同步寫操作時序控制。
圖3中的SLWR和SLCS是外部寫使能信號,低電平有效。SLWR有效的前提下,每當PCLK信號上升沿將數(shù)據(jù)總線上的數(shù)據(jù)寫入到DDR2的FIFO中,而且每當時鐘的上升沿更新FIFO的指針即FIFO ADDR。FlAGA來源于FX3系統(tǒng),用來查看被標記地址狀態(tài)信號。FIFO同步讀寫時tas、tws等有嚴格的時限,為解決后顧之憂和延時的精確性,采用在FPGA中寄存器分頻并且設(shè)置比較器的方法來精確定時。
3.2 USB數(shù)據(jù)流傳輸
圖4為 USB數(shù)據(jù)流傳輸狀態(tài)圖,此處USB[3]遵循Device IN Stream 協(xié)議。此協(xié)議描述了狀態(tài)切換機制,主機中Endpoint數(shù)據(jù)用來促發(fā)狀態(tài)轉(zhuǎn)換。當配置Endpoint后,pipe處于(Disabled)失能狀態(tài),主機傳送pipe從而切換到Primr Pige狀態(tài)。在Prime Pige狀態(tài)下發(fā)送NRDY并且設(shè)置PP=0而進入idle狀態(tài),在空閑狀態(tài)下等待信號去選擇進入Move Data狀態(tài)還是 Start Stream狀態(tài)。若設(shè)置了Nump>0,則進入到Start Stream狀態(tài),接收到Dp時通過Streamn和CStream的關(guān)系決定切換到Move Data狀態(tài)還是Start Stream End狀態(tài)。圖像數(shù)據(jù)傳輸完成后通過傳輸PP和Prime進入Prime Pipe ACK狀態(tài),然后返回到空閑狀態(tài)。
3.3 FX3系統(tǒng)中GPIF II狀態(tài)機設(shè)計
FX3系統(tǒng)中GPIF II接口是USB3.0控制系統(tǒng)必經(jīng)過的一個接口,為使系統(tǒng)整體結(jié)構(gòu)更加清晰,此處采用狀態(tài)機切換機制。圖5為GPIF II狀態(tài)機設(shè)計轉(zhuǎn)化圖,由圖5知系統(tǒng)配置完后,從開始狀態(tài)切換到State1狀態(tài),此狀態(tài)下查詢FV是否有效,F(xiàn)V有效后切換到State2狀態(tài),此狀態(tài)下檢測輸入信號(FV和LV)來決定是否切換到Stata3狀態(tài)。若State3和state4數(shù)據(jù)傳送是緩沖區(qū)的邊界時,接下來數(shù)據(jù)傳送從State3和State4分別切換到State7和State8,傳送的數(shù)據(jù)不是緩沖區(qū)的邊界時,接下來數(shù)據(jù)傳送在等待LV的返回信號后從State3和State4切換到State5和State6。State9、State10、State11、State12是每個框架結(jié)束以后CPU得到一個中斷,在中斷里回調(diào)一個函數(shù)去使能CPU執(zhí)行不同的任務(wù)。
4 系統(tǒng)的測試
上位機中通過C++編寫工程并用Eclipse軟件進行工程編輯、編譯,通過JTAG下載到USB3.0控制系統(tǒng)板級上,形成API應(yīng)用,此應(yīng)用程序可以觀測數(shù)據(jù)的傳輸速率、波形顯示等。結(jié)合系統(tǒng)總體架構(gòu)的軟件和硬件平臺,最后測試的結(jié)果如圖6、圖7所示。圖6顯示了上位機的應(yīng)用程序獲取到的板級信息,包括當前器件的信息Cypress USB3.0 Generic Driver F1、設(shè)備的PID、設(shè)備的VID和設(shè)備的類型等。通過上位機的器件信息知上位機讀取到的信息和板級上的USB3.0設(shè)備吻合,驗證了上位機API應(yīng)用程序的準確性。圖7的速度性能測試是在上位機的API應(yīng)用程序上調(diào)用速率測試截圖,圖為FIFO同步寫的速率測試,從圖知可以通過“終止”按鍵停止圖像數(shù)據(jù)傳輸。圖中的運行狀態(tài)顯示Cypress USB3.0 Generic Driver F1傳送了1 680個數(shù)據(jù)包,失敗為0個數(shù)據(jù)包,速度最小值為153 600 kB/s,最大值為327 680 kB/s,平均值225 979 kB/s,達到了預(yù)期的效果,在一定程度上解決了噴繪機圖像數(shù)據(jù)傳輸速度低的瓶頸。
隨著數(shù)字噴繪機的發(fā)展,如何在精準數(shù)據(jù)前提下提高數(shù)據(jù)的傳輸速率值得探究。本設(shè)計系統(tǒng)基于USB3.0協(xié)議結(jié)合當今流行的硬件可編輯邏輯處理器—FPGA+USB3.0控制系統(tǒng)+DDR2實現(xiàn),從理論和實際上提高了噴繪機數(shù)據(jù)傳輸速度,達到了理想的預(yù)期效果。但設(shè)計系統(tǒng)沒能完全面向客戶,還有不少缺陷和不足,需要在以后彌補和改正。希望將來此設(shè)計系統(tǒng)可以打開高速數(shù)據(jù)在噴繪機傳輸中的應(yīng)用。
參考文獻
[1]王宗超,倪凱, 王偉能,等. 新一代高速串行接口USB3.0介紹[J].記錄媒體技術(shù),2010(2):34-36.
[2] 朱君麗, 汪文. USB3.0的高速信息傳輸瓶頸研究[J].新器件新技術(shù),2013(6):47-48.
[3] 索曉杰,翟正軍,姜紅梅. USB3.0協(xié)議分析與框架設(shè)計[J].計算機測量與控制,2012(8):2233-2235.