《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的多通道同步實時高速數(shù)據(jù)采集系統(tǒng)設(shè)計
基于FPGA的多通道同步實時高速數(shù)據(jù)采集系統(tǒng)設(shè)計
2019年電子技術(shù)應(yīng)用第6期
易志強(qiáng),韓 賓,江 虹,張秋云
西南科技大學(xué) 信息工程學(xué)院,四川 綿陽621010
摘要: 為了滿足精密設(shè)備監(jiān)測過程中對數(shù)據(jù)采集的精確性、實時性和同步性的嚴(yán)格要求,設(shè)計了一種基于FPGA的多通道實時同步高速數(shù)據(jù)采集系統(tǒng)。本系統(tǒng)采用Xilinx公司的Spartan6系列的FPGA作為核心控制器件,實現(xiàn)了數(shù)據(jù)采集控制、數(shù)據(jù)緩存、數(shù)據(jù)處理、數(shù)據(jù)存儲、數(shù)據(jù)傳輸和同步時鐘控制等功能。經(jīng)測試驗證,該方案具有精度高、速率快、可靠性好、實時性強(qiáng)、成本低等特點。
中圖分類號: TP274+.2
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.190460
中文引用格式: 易志強(qiáng),韓賓,江虹,等. 基于FPGA的多通道同步實時高速數(shù)據(jù)采集系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2019,45(6):70-74.
英文引用格式: Yi Zhiqiang,Han Bin,Jiang Hong,et al. Design of multi-channel synchronous real-time high-speed data acquisition system based on FPGA[J]. Application of Electronic Technique,2019,45(6):70-74.
Design of multi-channel synchronous real-time high-speed data acquisition system based on FPGA
Yi Zhiqiang,Han Bin,Jiang Hong,Zhang Qiuyun
School of Information Engineering,Southwest University of Science and Technology,Mianyang 621010,China
Abstract: In order to meet the strict requirements of precision, real-time and synchronization of data acquisition in the process of precision equipment monitoring, a multi-channel, real-time and high-speed data acquisition system based on FPGA is designed. This system uses the Spartan6 series FPGA of Xilinx as the core control device, which realizes functions such as data acquisition control, data buffering, data processing, data storage, data transmission and synchronous clock control. The test shows that the scheme has the advantages of high precision, fast speed, good reliability, strong real-time performance and low cost.
Key words : FPGA;data acquisition;real-time;multi-channel

0 引言

    隨著科學(xué)技術(shù)的快速發(fā)展,數(shù)據(jù)采集系統(tǒng)已廣泛應(yīng)用于航天、軍事、工業(yè)、醫(yī)療等各個領(lǐng)域,尤其在高精度產(chǎn)品的檢測和監(jiān)控項目中發(fā)揮著至關(guān)重要的作用[1]。在實際工程應(yīng)用中,要求采集系統(tǒng)具有高速率、高精度、實時處理、系統(tǒng)穩(wěn)定性好和通道數(shù)量多等特點。但是,傳統(tǒng)的數(shù)據(jù)采集方案多數(shù)以ARM處理器(Advanced RISC Machine,ARM)或數(shù)字信號處理器(Digital Signal Processing,DSP)作為控制核心,并不能有效解決高速數(shù)據(jù)采集處理中實時性和同步性的技術(shù)難題[2]

    與DSP和ARM相比,FPGA在數(shù)據(jù)采集領(lǐng)域有著極其重要的地位。FPGA具有時鐘頻率高、內(nèi)部延時小、純硬件并行控制、運算速度快、編程配置靈活、開發(fā)周期短、抗干擾能力強(qiáng)、內(nèi)部資源豐富等優(yōu)點,非常適用于實時高速數(shù)據(jù)采集[3-4]。

    針對上述問題,本文設(shè)計了一種以FPGA作為主要處理器的16通道實時高速高精度的同步數(shù)據(jù)采集系統(tǒng),本方案在實際監(jiān)測工程中的采樣頻率為200 kHz,運用FPGA合理地控制和協(xié)調(diào)數(shù)據(jù)流在各個模塊之間傳輸,進(jìn)而實現(xiàn)系統(tǒng)所需求的實時、同步和高速采集等功能。

1 系統(tǒng)總體設(shè)計

1.1 系統(tǒng)總體設(shè)計結(jié)構(gòu)

    本系統(tǒng)的總體結(jié)構(gòu)設(shè)計如圖1所示,該系統(tǒng)由數(shù)據(jù)前采集前端處理、數(shù)據(jù)存儲系統(tǒng)、選通開關(guān)控制系統(tǒng)和FPGA核心控制系統(tǒng)四部分構(gòu)成。采集前端處理主要對輸入測量系統(tǒng)的模擬信號進(jìn)行濾波處理和幅值控制,以保證輸入采集芯片的模擬信號更加穩(wěn)定;FPGA核心控制系統(tǒng)通過使用FPGA作為核心控制器件,實現(xiàn)了數(shù)據(jù)同步處理、實時采集、數(shù)據(jù)緩存、時序約束、端口控制、數(shù)據(jù)判讀數(shù)、據(jù)存儲等功能;數(shù)據(jù)存儲系統(tǒng)的功能是將判讀后的數(shù)據(jù)實時存儲到Flash中;選通開關(guān)控系統(tǒng)則是利用1選8多路復(fù)用開關(guān)ADG1408和固態(tài)繼電器G3FD-X03SN實現(xiàn)被測設(shè)備的輸入信號選通和電源通斷控制,使被測設(shè)備能安全快速地進(jìn)入到監(jiān)測狀態(tài)。本系統(tǒng)需要對8個被測設(shè)備進(jìn)行同步實時循環(huán)測量與控制,并對測量數(shù)據(jù)進(jìn)行記錄判讀、傳輸與存儲。主要包括:供電管理與電源控制、直流電壓電流實時監(jiān)測、模擬信號通道切換、射頻信號切換、數(shù)據(jù)存儲等功能。

ck1-t1.gif

1.2 系統(tǒng)工作原理

    系統(tǒng)上電后,等待FPGA初始化完成,進(jìn)入等待連接狀態(tài)。當(dāng)外部輸入相關(guān)命令參數(shù)后,由FPGA接收并解析命令。先控制系統(tǒng)內(nèi)部選通開關(guān)工作,將被選中的設(shè)備信號接入采集系統(tǒng)中。然后向被測設(shè)備發(fā)出控制信息,同時采集系統(tǒng)實時監(jiān)控被測設(shè)備的供電情況,隨后,將采集的數(shù)據(jù)緩存到FPGA內(nèi)部隨機(jī)存取存儲器(Random Access Memory,RAM)中等待處理。最后將采集到的數(shù)據(jù)通過FPGA片上先進(jìn)先出隊列(First Input First Output,F(xiàn)IFO)回傳到外部監(jiān)視器上進(jìn)行實時顯示,按照相應(yīng)規(guī)則進(jìn)行判決并存儲,形成測試數(shù)據(jù)報表。

2 部分硬件電路設(shè)計

2.1 信號調(diào)理電路設(shè)計

    由于輸入系統(tǒng)的被測信號的電壓幅值為27 V,無法直接對被測信號進(jìn)行采集處理,因此本系統(tǒng)設(shè)計了信號調(diào)理電路對輸入系統(tǒng)的模擬信號進(jìn)行濾波處理和幅值控制。該電路通過采用可編程放大器AD8065設(shè)計了一個具有較平坦通帶的二階有源巴特沃斯低通濾波器,對前端輸入模擬電壓信號進(jìn)行濾波處理。隨后,利用芯片MAX4080將模擬電流信號轉(zhuǎn)換成模擬電壓信號。然后,使用高精度的電阻網(wǎng)絡(luò)分壓方式對被測模擬電壓進(jìn)行比例降壓,再經(jīng)過高性能運放AD8276進(jìn)行模擬電壓調(diào)理。最后,傳送到模擬數(shù)字轉(zhuǎn)換器(Analog-to-Digital Converter,ADC)進(jìn)行采樣。經(jīng)過該硬件調(diào)理后,可以保障輸入采集芯片的模擬電壓信號具有平滑、穩(wěn)定的特性。

2.2 A/D轉(zhuǎn)換電路設(shè)計

    A/D模數(shù)轉(zhuǎn)換器是數(shù)據(jù)采集的核心器件,影響著整個系統(tǒng)的采樣精度、采樣速率和數(shù)據(jù)吞吐量,所以芯片選型是采集系統(tǒng)設(shè)計中最關(guān)鍵的一步。本系統(tǒng)設(shè)計采用ADI公司的高精度、低功耗、電荷再次分配逐次逼近型模數(shù)轉(zhuǎn)換器AD7609,該產(chǎn)品是一款8通道、18位、真差分、同步采樣模數(shù)轉(zhuǎn)換芯片。本系統(tǒng)采用兩片AD7609芯片構(gòu)成了16路通道的數(shù)據(jù)采集電路。AD7609硬件電路圖如圖2所示,將并行/串行接口選擇輸入端與3.3 V電平直接相連,再將芯片引腳CONVST A和CONVST B短接在一起,并施加同一個轉(zhuǎn)換信號可以實現(xiàn)8個通道同時轉(zhuǎn)換。

ck1-t2.gif

2.3 存儲電路設(shè)計

    數(shù)據(jù)采集完成后,將相應(yīng)通道的采樣數(shù)據(jù)發(fā)送到監(jiān)視器進(jìn)行實時顯示和存儲到Flash閃存中,等待外部控制器發(fā)送讀取命令。本系統(tǒng)采用ST公司的S25FL128P Flash存儲器進(jìn)行實時存儲。該芯片存儲容量為128 Mbit,通過SPI接口與外部控制器建立通信,接口的時鐘頻率最大可達(dá)到104 MHz。該芯片具有設(shè)計簡單、存儲數(shù)據(jù)穩(wěn)定和價格低廉等特點,具有廣泛的實用性。Flash存儲電路如圖3所示。

ck1-t3.gif

3 系統(tǒng)軟件設(shè)計

    FPGA軟件設(shè)計主要劃分成系統(tǒng)同步時鐘、數(shù)據(jù)采集、數(shù)據(jù)緩存、數(shù)據(jù)存儲4個模塊,下面依次介紹各個模塊的設(shè)計。

3.1 系統(tǒng)同步時鐘模塊

    由于A/D采樣和Flash數(shù)據(jù)存儲時鐘均為50 MHz,而數(shù)據(jù)處理和RAM緩存讀寫控制的時鐘均為100 MHz。因此,為了保證系統(tǒng)各模塊之間數(shù)據(jù)傳輸與處理的同步性,本系統(tǒng)采用FPGA內(nèi)部的鎖相環(huán)(Phase Locked Loop,PLL)IP核倍頻或分頻生成100 MHz和50 MHz的時鐘。通過調(diào)用鎖相環(huán)設(shè)計出一個具有低抖動、低延遲的系統(tǒng)時鐘,保障了高速采集系統(tǒng)運行更加穩(wěn)定[5-6]。與大多數(shù)時鐘同步方案不同,該系統(tǒng)同步時鐘模塊除了使用PLL之外,還要通過時序約束的方式來減小數(shù)據(jù)與時鐘之間偏斜,重新建立時鐘偏斜的保持時間(Time Setup,TSU)如圖4所示。通過時序約束不僅能實現(xiàn)系統(tǒng)時鐘同步,還能避免出現(xiàn)數(shù)據(jù)傳輸錯誤。

ck1-t4.gif

3.2 數(shù)據(jù)采集模塊

    FPGA對AD7609的控制主要是通過對轉(zhuǎn)換信號CONVST AB、片選信號CS、時鐘信號SCLK進(jìn)行控制,完成采樣率調(diào)整和采樣啟??刂?。如圖5(a)所示,本模塊通過控制AD7609在轉(zhuǎn)換期間讀取數(shù)據(jù)的方式進(jìn)行采樣。當(dāng)檢測到BUSY下降沿時,則完成所有通道的數(shù)據(jù)轉(zhuǎn)換。從圖5(b)的仿真圖可以看出,通過使用系統(tǒng)同步時鐘模塊可以實現(xiàn)16路通道的同步采集功能。由于AD7609的輸出編碼方式為二進(jìn)制補(bǔ)碼,因此采集完成后可以通過ADC傳遞函數(shù)得到轉(zhuǎn)換后數(shù)字信號代表的幅值,轉(zhuǎn)換公式為:

    ck1-gs1.gif

式中,CODE為轉(zhuǎn)換后的二進(jìn)制碼,V+和V-是電源供電電壓,REF則為基準(zhǔn)電壓。 

ck1-t5.gif

3.3 數(shù)據(jù)緩存模塊

    由于系統(tǒng)為16通道同步數(shù)據(jù)采集,因此每完成一次采集會產(chǎn)生大量待處理數(shù)據(jù)。并且由于FPGA與外部處理器通信之間存在硬件差異,會導(dǎo)致其與外部處理器之間存在傳輸處理速度不匹配的問題。因此,為了滿足系統(tǒng)所需實時存儲和傳輸要求,本系統(tǒng)采用了一種乒乓結(jié)構(gòu)的傳輸方式[6]進(jìn)行數(shù)據(jù)緩存。利用FPGA內(nèi)置的知識產(chǎn)權(quán)核(Intellectual Property core,IP)資源,在ISE14.7軟件操作平臺上,構(gòu)建系統(tǒng)所需18 bit位寬的塊RAM和FIFO各兩片進(jìn)行輪流讀寫操作,實現(xiàn)數(shù)據(jù)實時緩存的功能。如圖6所示,若使能信號Crl_1處于高電平,則控制RAM_1進(jìn)行存儲。當(dāng)RAM_1存儲滿后,產(chǎn)生另一個使能控制信號Crl_2并將使能信號Crl_1電平翻轉(zhuǎn),由RAM_2繼續(xù)行數(shù)據(jù)存儲。當(dāng)使能信號Crl_2到來時,等待系統(tǒng)判讀生效后,則控制FIFO進(jìn)行數(shù)據(jù)緩存。若該控制信號處于高電平則FIFO_1進(jìn)行數(shù)據(jù)緩存。當(dāng)FIFO_1緩存滿后則將使能控制信號Crl_2的電平翻轉(zhuǎn),由FIFO_2繼續(xù)緩存,并將FIFO_1中的數(shù)據(jù)通過某種協(xié)議傳送到外部控制器進(jìn)行處理。如此周而復(fù)始,在RAM和FIFO緩存器中進(jìn)行乒乓操作,可以實現(xiàn)系統(tǒng)所需實時存儲和傳輸功能。

ck1-t6.gif

    如圖7數(shù)據(jù)緩存仿真圖所示,通過時序約束實現(xiàn)了兩個不同緩存器之間的同步讀寫操作,很好地完成了乒乓式的數(shù)據(jù)緩存功能。

ck1-t7.gif

3.4 數(shù)據(jù)存儲模塊

    利用外部處理器設(shè)定一個閾值,將緩存進(jìn)RAM中的數(shù)據(jù)與閾值比對。若大于閾值電壓,則判讀無效將被測設(shè)備電源和信號選通開關(guān)斷開;反之,數(shù)據(jù)判讀有效,需要將采集時間、外部命令輸入以及采集數(shù)據(jù)組幀后,實時存儲到Flash中。本模塊利用FPGA通過SPI總線與M25P128芯片建立主從關(guān)系,實現(xiàn)了Sector擦除、Page編程、地址管理、數(shù)據(jù)讀取等功能,從而快速、準(zhǔn)確地在Flash芯片中實現(xiàn)數(shù)據(jù)讀寫功能。該模塊采用了摩爾狀態(tài)機(jī)實現(xiàn)狀態(tài)跳轉(zhuǎn),既消除了狀態(tài)跳轉(zhuǎn)時造成的毛刺,又很好地完成了存儲與讀取功能。數(shù)據(jù)存儲與讀取狀態(tài)圖如圖8所示。圖中地址管理除了實現(xiàn)頁面讀寫地址轉(zhuǎn)換外,還要將第一個頁面用于存儲下最后一次存儲的地址,在斷電重啟后,能緊接著掉電前的數(shù)據(jù)繼續(xù)進(jìn)行數(shù)據(jù)存儲。

ck1-t8.gif

    Flash數(shù)據(jù)存儲仿真圖如圖9所示,數(shù)據(jù)存儲功能是將8 bit的并行數(shù)據(jù)通過Flash_SI引腳串行輸入到Flash芯片中實現(xiàn)數(shù)據(jù)存儲功能。數(shù)據(jù)讀取功能則需要創(chuàng)建一個8位的移位寄存器將Flash_SO引腳的串行數(shù)據(jù)轉(zhuǎn)為并行數(shù)據(jù),傳輸?shù)酵獠刻幚砥鬟M(jìn)行處理。

ck1-t9.gif

4 結(jié)論

    針對傳統(tǒng)數(shù)據(jù)采集處理系統(tǒng)不能有效地實現(xiàn)數(shù)據(jù)在傳輸和存儲過程中的同步性、實時性問題,本文設(shè)計了一種基于FPGA的16通道高精度同步實時高速采集系統(tǒng)。該系統(tǒng)采用FPGA控制AD7609在轉(zhuǎn)換期間讀取數(shù)據(jù)的傳輸方式,使系統(tǒng)能夠達(dá)到200 kHz采樣率。通過合理利用FPGA內(nèi)部資源,實現(xiàn)數(shù)據(jù)緩存的乒乓傳輸方式,從而完成了數(shù)據(jù)的實時傳輸和Flash的實時存儲功能,增強(qiáng)了數(shù)據(jù)傳輸和存儲的可靠性、有效性和穩(wěn)定性,極大地發(fā)揮出了FPGA的高速數(shù)據(jù)并行處理能力和時序約束能力。本系統(tǒng)已成功應(yīng)用于某實際工程監(jiān)測項目中,具有一定的應(yīng)用價值。

參考文獻(xiàn)

[1] 黃鴻靖.面向信號模擬的實時數(shù)據(jù)采集與塊數(shù)據(jù)傳輸技術(shù)研究[D].杭州:浙江大學(xué),2018.

[2] 趙樹磊,劉敬猛,張慧,等.基于FPGA臨空數(shù)據(jù)采集系統(tǒng)的設(shè)計[J].電子技術(shù)應(yīng)用,2018,44(12):123-126.

[3] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程[M].北京:北京航空航天大學(xué)出版社,2005.

[4] 王建中,楊璐.高速實時系統(tǒng)數(shù)據(jù)采集與傳輸[J].計算機(jī)科學(xué),2016,43(S2):604-606.

[5] 皮代軍,張海勇,葉顯陽,等.基于FPGA的高速實時數(shù)據(jù)采集系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2009,32(6):12-14.

[6] 張素萍,李朝強(qiáng),張建芬.一種高速實時數(shù)據(jù)采集處理系統(tǒng)設(shè)計[J].火力與指揮控制,2016,41(7):125-129.



作者信息:

易志強(qiáng),韓  賓,江  虹,張秋云

(西南科技大學(xué) 信息工程學(xué)院,四川 綿陽621010)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。