文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)09-0129-03
多串口數(shù)據(jù)通信技術(shù)主要研究數(shù)據(jù)的多串口采集,、存儲(chǔ)和處理,。由于串口通信技術(shù)的廣泛應(yīng)用,使得多串口采集卡一直是研究的熱點(diǎn),,從早期的基于PCI總線的多串口數(shù)據(jù)采集卡到后來(lái)的基于USB的多串口數(shù)據(jù)采集卡,以及現(xiàn)在的基于USB3.0的多串口數(shù)據(jù)采集卡,。
PCI采集卡由于使用不方便,逐漸被淘汰,,目前USB傳輸系統(tǒng)被廣泛應(yīng)用,。USB2.0理論傳輸速度為480 Mb/s,而USB3.0的傳輸速率可高達(dá)5 Gb/s,,且在USB2.0的基礎(chǔ)上又增加了超高速傳輸模式[1],。本文設(shè)計(jì)的系統(tǒng)中有80個(gè)485傳輸通道,每個(gè)通道的速率為1~10 Mb/s,最高傳輸速率可達(dá)800 Mb/s,,USB2.0已不能滿足此要求,。因此本文采用了Cypress的CYUSB3014和Altera的CycloneIII系列FPGA,,CYUSB3014保證與PC的傳輸性能,F(xiàn)PGA負(fù)責(zé)多串口數(shù)據(jù)的采集以及對(duì)CYUSB3014的控制[2],。
1 EZ-USB3.0 FX3與FPGA接口設(shè)計(jì)[3]
1.1 系統(tǒng)框架
整個(gè)多串口數(shù)據(jù)采集與傳輸系統(tǒng)[4-6]框圖如圖1所示,。圖中虛線部分為該系統(tǒng)的硬件框圖,整個(gè)系統(tǒng)由3部分組成,, USB3.0芯片選擇了業(yè)界性能表現(xiàn)最好的Cypress的CYUSB3014芯片(簡(jiǎn)稱FX3芯片),,理論上通信速率可達(dá)4.8 Gb/s,該芯片除了擁有GPIF2.0接口可方便與外設(shè)進(jìn)行通信外,,還有標(biāo)準(zhǔn)的SPI,、UART、I2C,、I2S與外設(shè)進(jìn)行通信,;FPGA采用了Cyclone 3C40系列的芯片,邏輯資源,、片上RAM以及I/O腳數(shù)目都能充分滿足本系統(tǒng)設(shè)計(jì),;80路485傳輸芯片采用了ADI的ADM3485E,是一款3.3 V低功耗數(shù)據(jù)收發(fā)器,,提供±15 kV的ESD保護(hù),適用于多點(diǎn)總線線路的半雙工通信,。共模輸入范圍-7 V~+12 V,數(shù)據(jù)速率可達(dá)12 Mb/s,能滿足本系統(tǒng)的設(shè)計(jì)要求,。
1.2 FX3與FPGA的通信設(shè)計(jì)
FX3與FPGA通信主要分為兩類:
(1)FX3對(duì)FPGA的配置信息:PC通過(guò)FX3將串口的相關(guān)信息發(fā)送給FPGA,如各串口的奇偶校驗(yàn),、波特率,、空閑位、每路的統(tǒng)計(jì)信息等配置,,此類信息數(shù)據(jù)量比較小;
(2)FX3與FPGA的大容量數(shù)據(jù)通信:FPGA將485采集的數(shù)據(jù)通過(guò)FX3傳輸?shù)絇C,。
為了有效地利用FX3的超高速數(shù)據(jù)傳輸特性,針對(duì)這兩種不同的數(shù)據(jù)類型,,本設(shè)計(jì)將兩種數(shù)據(jù)通道分開設(shè)計(jì),,其中配置信息較少,而采集的485數(shù)據(jù)容量很大,,為了不使配置信息數(shù)據(jù)打斷485數(shù)據(jù)通道,,將配置信息和數(shù)據(jù)信息通過(guò)兩個(gè)獨(dú)立的通道進(jìn)行傳輸,其中配置信息采用了通過(guò)FX3的UART和FPGA進(jìn)行通信,,通信格式如下:
FX3每發(fā)一條配置參數(shù)給FPGA,,F(xiàn)PGA都會(huì)返回相應(yīng)配置回應(yīng),并通知FX3可以繼續(xù)發(fā)送下一條配置信息,,在配置信息都發(fā)送完成后,,F(xiàn)X3最后會(huì)發(fā)送一條配置完成命令,,此時(shí)FPGA會(huì)啟動(dòng)外圍接口電路進(jìn)入正常的數(shù)據(jù)采集過(guò)程[7]。
2 USB3.0芯片固件設(shè)計(jì)
Cypress公司為USB3.0芯片提供了一個(gè)開發(fā)包,,其中包括了典型的固件代碼,。對(duì)USB3.0芯片固件的設(shè)計(jì),可利用EZ-USB FX3固件函數(shù)庫(kù)簡(jiǎn)化加速USB3.0 固件程序的開發(fā),。固件程序主要完成的工作有:初始化,、處理標(biāo)準(zhǔn)的USB設(shè)備請(qǐng)求及USB掛起時(shí)的電源管理等[8-9]。任務(wù)循環(huán)的流程圖如圖2所示,。
3 FPGA邏輯設(shè)計(jì)
FPGA采用了Altera公司的Cyclone III系列的3C40-C8,,其邏輯門數(shù)有200萬(wàn)門左右,最高工作頻率可以達(dá)到300 MHz,。整個(gè)工程使用了Verilog語(yǔ)言編寫,,整個(gè)工程的綜合、布局布線都是在Quartus11.0版本下進(jìn)行,,仿真軟件使用Modelsim6.5se版本,。本設(shè)計(jì)中FPGA邏輯設(shè)計(jì)主要包括485數(shù)據(jù)采集模塊及與FX3的讀寫時(shí)序控制邏輯,整個(gè)工程使用邏輯單元,,片上RAM使用率接近系統(tǒng)的95%,,整個(gè)系統(tǒng)工作頻率為100 MHz。
3.1 邏輯模塊設(shè)計(jì)
系統(tǒng)的邏輯模塊分為時(shí)鐘模塊,、FX3發(fā)送/接收緩存模塊,、發(fā)送/接收控制模塊、FX3讀寫控制模塊,、485接收模塊,、485發(fā)送模塊以及配置串口參數(shù)模塊。
整個(gè)系統(tǒng)的數(shù)據(jù)流分為兩個(gè)過(guò)程:485數(shù)據(jù)采集過(guò)程和485發(fā)送控制命令過(guò)程,。
(1)485數(shù)據(jù)采集過(guò)程:485數(shù)據(jù)通過(guò)485接收模塊傳送給FX3接收緩存模塊,,在FX3數(shù)據(jù)接口沒有被占用時(shí),通過(guò)FX3讀寫控制模塊發(fā)送給USB3.0芯片并傳到PC端,。
(2)485數(shù)據(jù)發(fā)送過(guò)程:USB3.0芯片通過(guò)FX3讀寫控制模塊將數(shù)據(jù)發(fā)送到FX3發(fā)送緩存模塊中,,在收發(fā)控制模塊檢測(cè)到相關(guān)串口空閑后通過(guò)485發(fā)送模塊將相關(guān)數(shù)據(jù)發(fā)送出去。
485收發(fā)相對(duì)于USB3.0速度來(lái)說(shuō),,屬于慢速設(shè)備,。為了提高USB3.0總線利用率,此處只設(shè)計(jì)了兩種緩存,,即接收緩存和發(fā)送緩存,,大小都設(shè)置為512 KB,80路的485接收和發(fā)送buffer最終都匯聚到這兩種緩存上,,有效地減少了短包和空包發(fā)生率,。
3.2 FX3接口時(shí)序
FPGA與FX3之間采用了Slave fifo模式,,F(xiàn)PGA通過(guò)狀態(tài)標(biāo)志的flaga、flagb,、flagc,、flagd來(lái)判斷FX3的接收/發(fā)送緩存的數(shù)據(jù)狀態(tài)[10],當(dāng)flaga/flagc為高時(shí),,表示FX3緩存中接收到了數(shù)據(jù),;當(dāng)flagb/flagd為高時(shí),表示FX3的發(fā)送緩存為非滿狀態(tài),,F(xiàn)PGA可對(duì)其進(jìn)行寫數(shù)據(jù)操作,。
圖3所示為FX3的A通道讀時(shí)序,F(xiàn)PGA先檢測(cè)i_usb_flaga是否為高電平,,如果為高電平則表示A通道buffer中有數(shù)據(jù)可讀,,此時(shí)將通道地址信號(hào)設(shè)置為0,片選信號(hào)o_usb_slcs_n/o_usb_sloe_n拉低,,o_usb_slrd_n信號(hào)拉低后,,在4個(gè)時(shí)鐘之后,數(shù)據(jù)將出現(xiàn)在io_usb_dq上,,如果進(jìn)行寫操作則將o_usb_slwr_n拉低,。對(duì)應(yīng)的通道號(hào)地址選對(duì),同時(shí)將片選信號(hào)拉低即可,寫通道時(shí)序如圖4所示,。
4 通信速度實(shí)驗(yàn)結(jié)果
利用Cypress的Streamer軟件,,可以測(cè)試該USB3.0傳輸系統(tǒng)的傳輸速率。將Packets per Xfer設(shè)置為256,,在win764位下(電腦配置為華碩N53XI241SN, Fresco FL1000系列的控制器)的傳輸速率測(cè)試結(jié)果為2.5 Gb/s,,滿足了整個(gè)系統(tǒng)的性能,如圖5所示,。
該系統(tǒng)適合于超高速數(shù)據(jù)的傳輸,具有電路簡(jiǎn)單,、體積小等優(yōu)點(diǎn),。FPGA技術(shù)與USB3.0的結(jié)合有極大的靈活性和可擴(kuò)展性,基于FPGA和USB3.0的突出優(yōu)點(diǎn),,該設(shè)計(jì)方案必將應(yīng)用在更廣闊的領(lǐng)域,。
參考文獻(xiàn)
[1] 馬俊濤,李振宇.SlaveFIFO模式下CY7C68013和FPGA的數(shù)據(jù)通信[J]. 中國(guó)傳媒大學(xué)學(xué)報(bào)(自然科學(xué)版),2009,16(2):38-44.
[2] 倪明輝,周軍,,楊庚. USB在FPGA控制的高速數(shù)據(jù)采集系統(tǒng)中的應(yīng)用[J]. 計(jì)算機(jī)測(cè)量與控制,2006,14(2):268-271.
[3] 白海亮. USB2.0微控制器CY7C68013與外FIFO通信發(fā)送過(guò)程的GPIF接口設(shè)計(jì)[J].黑龍江科技信息,2009(3):79.
[4] 薛園園,,趙建領(lǐng). USB應(yīng)用開發(fā)寶典[M].北京:人民郵電出版社,2011.
[5] 黃大勇,,李鑒,張建正. 基于USB2.0接口的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),,2007(24):69-72.
[6] 呂超,張玉霞,王立欣.USB接口高速數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)[J]. 計(jì)算機(jī)測(cè)量與控制,2009,17(5):1003-1005.
[7] 袁江南. 基于USB2.0與FPGA技術(shù)的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用,2007,33(7):116-118.
[8] 張世偉,,印世平,何運(yùn)桃. USB2.0接口傳輸?shù)腇PGA控制與實(shí)現(xiàn)[J]. 國(guó)外電子測(cè)量技術(shù),2009,28(11):74-76.
[9] 索曉杰,,翟正軍,,姜紅梅. USB3.0協(xié)議分析與框架設(shè)計(jì)[J]. 計(jì)算機(jī)測(cè)量與控制,2012,20(8):2233-2235.
[10] 王宗超,倪凱,王偉能,,等.新一代高速串行接口USB3.0介紹[J]. 記錄媒體技術(shù),2010(2):32-34.