《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的多通道同步實時高速數(shù)據采集系統(tǒng)設計
基于FPGA的多通道同步實時高速數(shù)據采集系統(tǒng)設計
2019年電子技術應用第6期
易志強,韓 賓,江 虹,張秋云
西南科技大學 信息工程學院,四川 綿陽621010
摘要: 為了滿足精密設備監(jiān)測過程中對數(shù)據采集的精確性、實時性和同步性的嚴格要求,設計了一種基于FPGA的多通道實時同步高速數(shù)據采集系統(tǒng)。本系統(tǒng)采用Xilinx公司的Spartan6系列的FPGA作為核心控制器件,實現(xiàn)了數(shù)據采集控制、數(shù)據緩存、數(shù)據處理、數(shù)據存儲、數(shù)據傳輸和同步時鐘控制等功能。經測試驗證,該方案具有精度高、速率快、可靠性好、實時性強、成本低等特點。
中圖分類號: TP274+.2
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190460
中文引用格式: 易志強,韓賓,江虹,等. 基于FPGA的多通道同步實時高速數(shù)據采集系統(tǒng)設計[J].電子技術應用,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 引言

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

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

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

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

1.1 系統(tǒng)總體設計結構

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

ck1-t1.gif

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

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

2 部分硬件電路設計

2.1 信號調理電路設計

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

2.2 A/D轉換電路設計

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

ck1-t2.gif

2.3 存儲電路設計

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

ck1-t3.gif

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

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

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

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

ck1-t4.gif

3.2 數(shù)據采集模塊

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

    ck1-gs1.gif

式中,CODE為轉換后的二進制碼,V+和V-是電源供電電壓,REF則為基準電壓。 

ck1-t5.gif

3.3 數(shù)據緩存模塊

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

ck1-t6.gif

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

ck1-t7.gif

3.4 數(shù)據存儲模塊

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

ck1-t8.gif

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

ck1-t9.gif

4 結論

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

參考文獻

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

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

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

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

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

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



作者信息:

易志強,韓  賓,江  虹,張秋云

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

此內容為AET網站原創(chuàng),未經授權禁止轉載。