摘 要: 選取Altera公司Cyclone III系列EP3C40F484作為新型高速數(shù)據(jù)傳輸系統(tǒng)控制平臺,,將DDR2作為FIFO,借助USB3.0中的CYUSB3014,,完成FPGA與PC之間的高速圖像數(shù)據(jù)傳輸,。通過軟硬件測試,,驗證了該系統(tǒng)圖像數(shù)據(jù)傳輸?shù)母咚俸涂煽啃浴?/p>
關鍵詞: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)總體設計
本系統(tǒng)主要研究PC和FPGA間的數(shù)據(jù)傳輸,,圖1是系統(tǒng)的總體設計。從圖中看出,,圖像數(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個按鍵中一個是復位鍵,,剩下3個按鍵對應到測試速度指示燈,并且按鍵的狀態(tài)FPGA發(fā)送到FX3系統(tǒng),,然后上傳到上位機,。
2 系統(tǒng)硬件設計
設計中采用Altera公司Cyclone III系列EP3C40F484芯片作為FPGA的主控芯片,以MT47H64M16HR芯片DDR2為數(shù)據(jù)設立緩沖區(qū) ,,以FX3系列CYUSB3014芯片作為USB3.0的驅(qū)動[2],,采用在上位機編程和Eclipse軟件進行編譯下載到USB3.0控制系統(tǒng)板級上程序,形成API應用,,進行數(shù)據(jù)傳輸測試,。系統(tǒng)設計過程中采用了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)的軟件設計
在整個軟件架構(gòu)中分別對GPIF II狀態(tài)機、DDR2中的FIFO讀寫,、USB的數(shù)據(jù)流傳輸?shù)冗M行設計與研究,。為后續(xù)測試、觀察的需要,,在上位機分別進行C++編程和Eclipse 新建并編譯工程且通過JTAG下載到FX3系統(tǒng)的板級上,,方便上位機與下位機通信觀察和控制。
3.1 DDR2中的FIFO讀寫設計
FIFO建立主要是為了FPGA向上位機發(fā)送數(shù)據(jù)時能提供足夠大的緩存,,以便可以批量地的處理數(shù)據(jù),。設計中的FIFO主要通過DDR2實現(xiàn),,所以在設計過程中要分別對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中寄存器分頻并且設置比較器的方法來精確定時,。
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并且設置PP=0而進入idle狀態(tài),,在空閑狀態(tài)下等待信號去選擇進入Move Data狀態(tài)還是 Start Stream狀態(tài)。若設置了Nump>0,,則進入到Start Stream狀態(tài),,接收到Dp時通過Streamn和CStream的關系決定切換到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)機設計
FX3系統(tǒng)中GPIF II接口是USB3.0控制系統(tǒng)必經(jīng)過的一個接口,為使系統(tǒng)整體結(jié)構(gòu)更加清晰,,此處采用狀態(tài)機切換機制,。圖5為GPIF II狀態(tài)機設計轉(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í)行不同的任務,。
4 系統(tǒng)的測試
上位機中通過C++編寫工程并用Eclipse軟件進行工程編輯、編譯,,通過JTAG下載到USB3.0控制系統(tǒng)板級上,,形成API應用,此應用程序可以觀測數(shù)據(jù)的傳輸速率,、波形顯示等,。結(jié)合系統(tǒng)總體架構(gòu)的軟件和硬件平臺,最后測試的結(jié)果如圖6、圖7所示,。圖6顯示了上位機的應用程序獲取到的板級信息,,包括當前器件的信息Cypress USB3.0 Generic Driver F1、設備的PID,、設備的VID和設備的類型等,。通過上位機的器件信息知上位機讀取到的信息和板級上的USB3.0設備吻合,驗證了上位機API應用程序的準確性,。圖7的速度性能測試是在上位機的API應用程序上調(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,,達到了預期的效果,,在一定程度上解決了噴繪機圖像數(shù)據(jù)傳輸速度低的瓶頸。
隨著數(shù)字噴繪機的發(fā)展,,如何在精準數(shù)據(jù)前提下提高數(shù)據(jù)的傳輸速率值得探究,。本設計系統(tǒng)基于USB3.0協(xié)議結(jié)合當今流行的硬件可編輯邏輯處理器—FPGA+USB3.0控制系統(tǒng)+DDR2實現(xiàn),從理論和實際上提高了噴繪機數(shù)據(jù)傳輸速度,,達到了理想的預期效果,。但設計系統(tǒng)沒能完全面向客戶,還有不少缺陷和不足,,需要在以后彌補和改正,。希望將來此設計系統(tǒng)可以打開高速數(shù)據(jù)在噴繪機傳輸中的應用。
參考文獻
[1]王宗超,,倪凱,, 王偉能,等. 新一代高速串行接口USB3.0介紹[J].記錄媒體技術(shù),,2010(2):34-36.
[2] 朱君麗,, 汪文. USB3.0的高速信息傳輸瓶頸研究[J].新器件新技術(shù),2013(6):47-48.
[3] 索曉杰,,翟正軍,,姜紅梅. USB3.0協(xié)議分析與框架設計[J].計算機測量與控制,,2012(8):2233-2235.