李凜威,梅教旭,汪 磊,談 圖,高曉明
(中國科學院 安徽光學精密機械研究所 大氣物理化學研究室,安徽 合肥 230031)
基于FPGA和以太網(wǎng)數(shù)據(jù)采集系統(tǒng)的設(shè)計及實現(xiàn)
李凜威,梅教旭,汪 磊,談 圖,高曉明
(中國科學院 安徽光學精密機械研究所 大氣物理化學研究室,安徽 合肥 230031)
為了滿足網(wǎng)絡(luò)傳輸、可觸發(fā)控制和多路信號采集的需求,設(shè)計和實現(xiàn)了基于FPGA和以太網(wǎng)接口的數(shù)據(jù)采集系統(tǒng),其中以FPGA為核心,實現(xiàn)了AD驅(qū)動、觸發(fā)控制、串并轉(zhuǎn)換、FIFO緩沖和MAC配置。實驗結(jié)果表明系統(tǒng)設(shè)計合理,可以達到預(yù)期功能,這對同類數(shù)據(jù)采集系統(tǒng)有一定的參考價值。
數(shù)據(jù)采集;觸發(fā)控制;FPGA;以太網(wǎng)
近年來,基于近紅外可調(diào)諧二極管激光吸收光譜技術(shù)的氣體傳感器得到快速的發(fā)展。在很多實際應(yīng)用中[1],特別是對應(yīng)于車載或機載應(yīng)用環(huán)境,為保證較高的空間分辨率,需要連續(xù)實時地采集分析數(shù)據(jù)。人們通常利用普通商用采集卡連續(xù)采集光譜信號,然后再尋找特征吸收峰的位置。采用這種方式一方面相對耗時,影響采集速率,無法勝任長時間、不間斷的應(yīng)用環(huán)境;另一方面不停地尋找吸收峰位置,在弱吸收信號的情況下,會造成較大的測量誤差,由于采集卡的連續(xù)采集,每次采集卡內(nèi)存溢出,這會造成一定的數(shù)據(jù)丟失。利用觸發(fā)控制信號提供采集信號的起始點,不僅保證采集數(shù)據(jù)的穩(wěn)定,同時還能保證有選擇地采集數(shù)據(jù)[2]。
目前商用的數(shù)據(jù)采集系統(tǒng)難以滿足較高頻率觸發(fā)采集的需求,普通的商用采集卡很難達到100Hz的觸發(fā)頻率,導(dǎo)致丟失大量數(shù)據(jù),影響探測儀器的準確性。目前市場上能夠具有高速觸發(fā)采集的采集卡很少,并且價格昂貴,難以及時做到維護和升級。
文中以FPGA為核心,設(shè)計了基于以太網(wǎng)接口的可觸發(fā)控制的數(shù)據(jù)采集系統(tǒng)。FPGA具有高集成度,高速度和高可靠性等特點,時鐘延時可達ns級,完全適用于數(shù)據(jù)采集系統(tǒng)的
實時性與可靠性要求;FPGA具有豐富的內(nèi)嵌IP核,可以重復(fù)開發(fā),降低設(shè)計難度,縮短開發(fā)周期,具有較低的開發(fā)成本;FPGA可現(xiàn)場編程,易于修改,可根據(jù)實際應(yīng)用進行升級維護[3]。以太網(wǎng)傳輸技術(shù)相對于傳統(tǒng)的傳輸技術(shù),成本低廉,具有靈活性和較強的兼容性,利用雙絞線或光纖作為傳輸介質(zhì)可實現(xiàn)長距離高速傳輸。
總體設(shè)計如圖1所示,根據(jù)吸收峰的位置,在吸收峰到來之前給出觸發(fā)信號。數(shù)據(jù)采集系統(tǒng)在觸發(fā)信號上升沿到來時,啟動兩路AD同時對兩路模擬信號進行采集,轉(zhuǎn)換后進入FPGA,F(xiàn)PGA對數(shù)據(jù)進行處理并計數(shù),然后進入FIFO緩沖,當采集固定點數(shù)的數(shù)據(jù)(包含吸收峰以及附近的一段數(shù)據(jù)),F(xiàn)PGA停止接收數(shù)據(jù),等待下一次有效觸發(fā)信號的到來。當FIFO緩沖的數(shù)據(jù)達到半滿狀態(tài),取出數(shù)據(jù)并加入UDP協(xié)議后經(jīng)MAC通過PHY將數(shù)據(jù)發(fā)送給上位機。如果置觸發(fā)信號有效,并將計數(shù)功能關(guān)閉,可實現(xiàn)兩路信號連續(xù)實時采集。
數(shù)據(jù)采集系統(tǒng)以FPGA為核心,設(shè)計采用的FPGA是Altera公司Cyclone III系列的EP3C10E144C8N。具有10 kbit邏輯單元、424 kbit存儲器、23個18X18乘法器、專用外部存儲器接口電路、鎖相環(huán)(PLL)以及高速差分I/O等。Cyclone III 系列FPGA系列前所未有地同時實現(xiàn)了低功耗、低成本和高性能,進一步擴展了FPGA在成本敏感領(lǐng)域中的應(yīng)用。AD器件采用的是TI公司的采樣速率為250kSPS、16位精度串行輸出的ADS8326。以太網(wǎng)收發(fā)器采用的DM9161CEP是一款完全集成的和符合成本效益單芯片快速以太網(wǎng)PHY
ADS8326工作時序如圖2所示。CS信號出現(xiàn)下降沿的時候,DCLOCK必須為低電平,同時CS下降沿距離DCLOCK上升沿至少為20 ns。CS信號下降沿到來時,經(jīng)過5個DCLOCK的采樣,在第7個DCLOCK上升沿,AD開始從最高位開始串行輸出數(shù)據(jù),轉(zhuǎn)換完成后經(jīng)過幾個DCLOCK的Power Down,開始進行下一次轉(zhuǎn)換。系統(tǒng)嵌入了32位的Nios II處理器,將兩路1bit X 16串行信號轉(zhuǎn)換成32 bit X 1的一路并行信號有利于數(shù)據(jù)的傳輸處理。同時對串并轉(zhuǎn)換后的數(shù)據(jù)計數(shù),保證觸發(fā)控制的準確性。32位并行信號需要進入FIFO緩沖,因此還需要為FIFO提供使能信號以及時鐘信號。用Verilog HDL硬件語言編寫了AD驅(qū)動及處理模塊,仿真時序如圖3所示。
圖1 數(shù)據(jù)采集處理系統(tǒng)Fig. 1 Data acquisition system
圖2 ADS8326工作時序Fig. 2 ADS8326 timing information
圖3 AD驅(qū)動及串并轉(zhuǎn)換仿真時序Fig. 3 Driver and serial to parallel conversion timing simulation
其中clk為系統(tǒng)輸入時鐘,tr為外部觸發(fā)信號,din0和din1為AD轉(zhuǎn)換后的串行信號。wrreq和s_clk為FIFO的控制信號和時鐘信號,dout為串并轉(zhuǎn)換后的數(shù)據(jù)。從時序仿真圖來看,時序和邏輯都符合設(shè)計思路,可以達到預(yù)期要求。
在SOPC開發(fā)環(huán)境中可以方便的添加32位Nios II處理器、豐富的IP核以及用戶邏輯等,并用Avalon總線將這些模塊連接起來,同時還可以按地址訪問以及添加中斷。靈活易用的處理器和豐富的IP核簡化系統(tǒng)設(shè)計,降低成本,縮短開發(fā)時間[4]。硬件主要包括Nios II處理器、存儲器、異步FIFO、MAC模塊和通用IO等。添加并連接好的SOPC系統(tǒng)如圖4所示。
Nios II處理器內(nèi)核是一個32位的RISC處理器,它具有共享的通用指令集結(jié)構(gòu),專門針對Altera的主流FPGA系列進行了優(yōu)化。處理器負責數(shù)據(jù)和網(wǎng)絡(luò)協(xié)議的處理。
On-Chip Memory是一塊片上RAM,onchip_mem用于程序執(zhí)行和數(shù)據(jù)存儲,descriptor_mem用于SG-DMA的描述符存儲器。
MAC(介質(zhì)訪問控制層)主要負責控制與鏈接物理層的物理介質(zhì),MAC模塊調(diào)用了Triple-Speed Ethernet IP核,發(fā)送和接收用的是Avalon-ST接口,用戶需要通過此接口對MAC內(nèi)的接收FIFO和發(fā)送FIFO讀寫操作。MAC與外部PHY 使用MII/GMII接口進行連接,同時該模塊可提供MDIO/MDC接口,對PHY管理[5]。
圖4 SOPC硬件連接圖Fig. 4 Hardware connection diagram
Scatter-Gather DMA可根據(jù)描述符命令,將非連續(xù)的內(nèi)存空間的數(shù)據(jù)傳輸合并到連續(xù)的存儲空間。SG-DMA支持數(shù)據(jù)流到存儲器,存儲器到數(shù)據(jù)流以及存儲器之間的傳輸。Avalon總線采用的是Avalon-MM接口,與MAC的Avalon-ST接口不能直接連接,采用了sgdma_tx作為MAC發(fā)送通道,sgdma-rx作為接收通道。SG-DMA在完成當前任務(wù)后,會根據(jù)描述符命令自動提取命令字開始新的任務(wù),減少了CPU占用[6]。
DATAin是用戶邏輯,讓AD轉(zhuǎn)換后的數(shù)據(jù)進入SOPC。
異步FIFO用于存儲和緩沖數(shù)據(jù),同時可為DATAin提供Avalon-ST接口。
此外還添加了JTAG-UART、SYSID等。
在Nios II IDE集成開發(fā)環(huán)境中可以用C語言完成Nios II處理器的軟件設(shè)計。軟件設(shè)計流程如下,首先對個模塊初始化,上位機發(fā)送采集控制信號,系統(tǒng)開始信號采集。數(shù)據(jù)處理模塊將處理后的32位數(shù)據(jù)送入異步FIFO中,當FIFO半滿時產(chǎn)生中斷,將數(shù)據(jù)取出并加入UDP協(xié)議,并啟動SG-DMA將數(shù)據(jù)傳送到MAC中,最后經(jīng)以太網(wǎng)發(fā)送至上位機處理。
圖5 Nios II主程序流程圖Fig. 5 Main program flow chart of Niso II
UDP協(xié)議并不提供反饋檢測,因此UDP協(xié)議并不可靠,需要其他手段保證傳輸?shù)目煽啃?。但正是由于UDP不建立連接、撤銷連接、確認報文等開銷,保證了數(shù)據(jù)傳輸?shù)膶崟r性和高效性,這也是它在實際網(wǎng)絡(luò)尤其是實時數(shù)據(jù)傳輸網(wǎng)絡(luò)中廣泛應(yīng)用的主要原因[7]。在誤差允許范圍內(nèi),UDP可以滿足實時傳輸?shù)囊螅驹O(shè)計采用UDP/IP協(xié)議作為以太網(wǎng)傳輸協(xié)議。
數(shù)據(jù)采集系統(tǒng)設(shè)計完成后,還需實際測試來驗證可行性。數(shù)據(jù)采集系統(tǒng)通過以太網(wǎng)接口將數(shù)據(jù)發(fā)送至上位機,PC機利用Labview編寫的程序?qū)?shù)據(jù)進行存儲和顯示。
連續(xù)實時采集模式。函數(shù)信號發(fā)生器產(chǎn)生10 K的正弦波作輸入信號,采集系統(tǒng)采樣頻率為208 K。根據(jù)采樣定理,采集系統(tǒng)可以完整恢復(fù)正弦信號,一個周期平均應(yīng)該采樣20.8個點。實際采集圖像如圖7所示,與預(yù)期結(jié)果一致。
圖6 連續(xù)實時采集圖Fig. 6 Continuous real-time acquisition waveforms
圖7 外部觸發(fā)控制采集Fig. 7 External trigger control data acquisition
開啟觸發(fā)采集功能,利用函數(shù)信號發(fā)生器提供方波信號和正弦信號作為測試信號,正弦信號和方波信號具有相同的頻率和固定的相位差,如圖7(a)所示。方波信號頻率為200 Hz,模擬觸發(fā)信號,標記信號采集的起始點,表明后面的信號是需要采集的信號。觸發(fā)信號上升沿時開始采集,采集320點后停止采集,將采集到的數(shù)據(jù)打包發(fā)送到上位機,等待下一次觸發(fā)信號上升沿繼續(xù)采集。上位機顯示波形如圖7 (b)所示,是一個穩(wěn)定的波形。同時利用Wireshark網(wǎng)絡(luò)抓包工具對數(shù)據(jù)包進行分析,測試時間3 300 s,獲得數(shù)據(jù)657 545幀,平均每秒199.26幀數(shù)據(jù),與200 Hz的觸發(fā)頻率基本吻合。實驗結(jié)果與預(yù)期一致。
基于FPGA[8]和以太網(wǎng)[9]兩種技術(shù),設(shè)計了兩路信號的可觸發(fā)同步采集以及連續(xù)實時采集系統(tǒng),解決了其它采集系統(tǒng)難以有效觸發(fā)采集的問題,同時采用了通用的以太網(wǎng)接口傳輸數(shù)據(jù)。系統(tǒng)測試結(jié)果表明該采集系統(tǒng)可以達到200 Hz的雙路觸發(fā)采集,表明設(shè)計的合理性與準確性。此數(shù)據(jù)采集系統(tǒng)還可根據(jù)實際應(yīng)用進行升級維護,具有廣泛的應(yīng)用前景。
[1]汪磊,談圖,曹振松,等. 車載天然氣管道泄漏遙感探測技術(shù)的研究[J]. 光譜學與光譜分析,2010,(8):2192-2195.
WANG Lei,TAN Tu,CAO Zhen-song, et al.Research on Vehicle-Based Remote Sensing of Natural Gas Pipeline Leakage[J].Spectroscopy and Spectral Analysis,2010,(8):2192-2195.
[2]畢韜. 基于ARM和FPGA的高速數(shù)據(jù)采集卡的設(shè)計與實現(xiàn)[D].長春:長春工業(yè)大學,2010.
[3]吳繼華,王誠. Altera FPGA/CPLD 設(shè)計 [M]. 北京 : 人民郵電出版社,2005.
[4]陳長勝,李大鵬,王建宇. 基于Altera SOPC技術(shù)的嵌入式以太網(wǎng)終端設(shè)計[J]. 航空計算技術(shù),2008,(5):81-84.
CHEN Chang-sheng, LI Da-peng, WANG Jian-yu. Design of Embedded Ethernet Node Based on Altera SOPC Technology[J].Aeronautical Computing Technique, 2008,(5):81-84.
[5]韋宏,付友濤,孔凡鵬,等. 基于FPGA的千兆以太網(wǎng)設(shè)計[J].現(xiàn)代電子技術(shù),2012(18):56-59.
WEI Hong,FU You-tao, KONG Fan-peng, et al. Design of gigabit Ethernet system based on FPGA[J]. Modern Electronics Technique, 2012(18):56-59.
[6]梁藝,周衛(wèi)星. 基于SoPC的視頻監(jiān)視器千兆網(wǎng)顯示接口設(shè)計[J].電子技術(shù)應(yīng)用,2009(8):12-15.
LIANG Yi, ZHOU Wei-xing. The design of video monitor Gigabit Ethernet display interface based on SoPC[J].Application of Electronic Technique,2009(8):12-15.
[7]龔少波. 基于FPGA的網(wǎng)絡(luò)傳輸設(shè)計與實現(xiàn)[D].哈爾濱:哈爾濱工程:大學,2012.
[8]陳亮,劉金學.基于DSP和FPGA的導(dǎo)航計算機系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2012(2):1-3,6.
CHEN Liang,LIU Jin-xue.Design of navigation computer system based on DSP and FPGA[J].Modern Electronics Technique,2012(2):1-3,6.
[9]沈豪敏,張 濤,王 健.基于DM9000A的DSP以太網(wǎng)接口設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2013(24):140-143.
SHEN Hao-min,ZHANG tao,WANG Jian.Design and implementation of DSP Ethernet interface based on the DM9000A[J].Modern Electronics Technique,2013(24):140-143.
Design and implementation of a data acquisition system based on FPGA and Ethernet
LI Lin-wei, MEI Jiao-xu, WANG Lei, TAN Tu, GAO Xiao-ming
(Laboratory of Atmospheric Physico-Chemistry,Anhui Institute of Optics & Fine Mechanics,Chinese Academy of Sciences, Hefei230031,China)
A data acquisition system based on FPGA and Ethernet to achieve network transmission, trigger control,and multi-channel signal acquisition has been designed and implemented. This system utilizes FPGA as the core chip to complete the AD driver, trigger control, serial to parallel conversion, FIFO buffering and MAC configuration.Experimental results indicate that the data-acquisition system designed is reasonable and can reach the desired functions. This work has a certain reference value for similar data acquisition system.
data acquisition; trigger control; FPGA; Ethernet
TN-923
A
1674-6236(2014)07-0001-04
2014-01-13稿件編號201401091
國家自然科學基金(41175036);中國科學院儀器設(shè)備功能開發(fā)技術(shù)創(chuàng)新項目(YG2011056)
李凜威(1991—),男,安徽合肥人,碩士研究生。研究方向:數(shù)字電路設(shè)計及數(shù)據(jù)采集與處理。