《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的主從式高速數(shù)據(jù)采集與傳輸系統(tǒng)
基于FPGA的主從式高速數(shù)據(jù)采集與傳輸系統(tǒng)
來源:電子技術(shù)應(yīng)用2011年第5期
石繁榮,黃玉清
西南科技大學(xué) 信息工程學(xué)院,四川 綿陽 621010
摘要: 針對數(shù)據(jù)采集系統(tǒng)有信號形式多樣、實(shí)時傳輸和靈活配置的要求,介紹了一種基于FPGA的數(shù)據(jù)采集和傳輸系統(tǒng),以及系統(tǒng)數(shù)字電路的程序設(shè)計(jì)。該系統(tǒng)以現(xiàn)場可編程邏輯陣列(FPGA)作為數(shù)據(jù)采集、預(yù)處理、組幀和傳輸?shù)目刂坪诵?,通過低速串口接收控制命令,以高速USB接口向控制臺發(fā)送采集數(shù)據(jù)幀,設(shè)計(jì)了數(shù)字FIR濾波器濾除采集電路的信號干擾。測試結(jié)果表明,直流(DC)信號的平均測量精度為0.293%,交流(AC)信號的平均測量精度為0.642%,通道間相位差小于10°,適用于遙測和數(shù)據(jù)處理系統(tǒng)。
中圖分類號: TP274+.2
文獻(xiàn)標(biāo)志碼: B
文章編號: 0258-7998(2011)05-0082-04
The master-slave mode data acquisition and transmission system based on FPGA
Shi Fanrong,Huang Yuqing
School of Information Engineering, Southwest University of Science and Technology, Mianyang 621010, China
Abstract: Considering the requirements of the signal forms, the real-time transmission and configurable in data acquisition system, a data acquisition and transmission system based on field-programmable gate array(FPGA) and the programming of digital circuit is described. FPGA realizes the control centre of data acquisition, the data pretreatment, the data framing and the data transmission in system. The control centre receives the order by low-speed serial interface, and sends the data by high-speed USB interface. The digital FIR filter is designed to smooth the signal interfere of acquisition circuit. The result shows that, the average accuracy for direct current(DC) signal is 0.293%, and 0.642% for alternating current(AC) signal. So it is suitability in telemetry and data processing system.
Key words : high-speed; data acquisition; multi-channel; configurable; FPGA


    隨著數(shù)字技術(shù)的飛速發(fā)展和數(shù)字系統(tǒng)的廣泛應(yīng)用,模擬信號轉(zhuǎn)換為可處理的數(shù)字信號,對采集系統(tǒng)的精度、采樣率以及數(shù)據(jù)速率都有更高的要求。對于大型復(fù)雜的設(shè)備,其故障檢測和診斷同樣是一項(xiàng)復(fù)雜的工作,采集設(shè)備的工作狀態(tài)及環(huán)境變化,對操作者了解設(shè)備的工作狀態(tài),及時對系統(tǒng)的故障作出判斷和處理有積極的意義。FPGA器件具有很高的集成度,豐富的資源,用戶可編程,使用方便靈活,設(shè)計(jì)周期短,因而廣泛應(yīng)用于數(shù)字系統(tǒng)中。本文介紹了以FPGA為控制核心的高速數(shù)據(jù)采集與傳輸系統(tǒng),以低速串口傳輸數(shù)據(jù)量少的上位機(jī)控制指令,通過高速USB接口向上位機(jī)傳輸數(shù)據(jù)量大的采集數(shù)據(jù)幀,保證指令和數(shù)據(jù)傳輸?shù)目煽啃?,可提供最?2路采集通道,并可通過上位機(jī)界面配置采集通道數(shù)量和采集電路增益,F(xiàn)PGA控制器根據(jù)約定的控制協(xié)議執(zhí)行操作。系統(tǒng)程序設(shè)計(jì)以ISE 10.1為平臺,使用Verilog HDL語言設(shè)計(jì)實(shí)現(xiàn)。系統(tǒng)針對復(fù)雜環(huán)境的大型設(shè)備的運(yùn)行監(jiān)測和故障診斷需求,提供一種可應(yīng)用遠(yuǎn)程測控的底層數(shù)據(jù)采集與傳輸應(yīng)用[1-3]。
1  系統(tǒng)硬件結(jié)構(gòu)
  系統(tǒng)結(jié)構(gòu)如圖1所示,系統(tǒng)主要有上位機(jī)管理系統(tǒng)、鏈路管理主控層和通道管理從控制層三個主體部分。上位機(jī)管理系統(tǒng)提供人機(jī)交互的功能,本文不做詳細(xì)介紹,系統(tǒng)硬件主體主要由主控層和從控層組成。鏈路管理主控制層主要實(shí)現(xiàn)控制指令解析、數(shù)據(jù)管理和從控層管理等功能,通道管理從控制層主要功能是通道管理和配置、數(shù)據(jù)管理和傳輸。主控層提供3個與從控層通信的差分接口,可支持3塊從控層并行工作。

    鏈路管理主控制層由1片Xilinx的FPGA芯片XC3S1500作為控制模塊,3組差分芯片對作為主控層與從控層的通信鏈路,1片RS232和CY7C68013A芯片分別作為控制層與上位機(jī)管理系統(tǒng)的下行控制鏈路和上行數(shù)據(jù)鏈路。主控FPGA與采集FPGA是跨印制板連接,使用差分驅(qū)動和接收芯片(LVDS391/390)通過屏蔽差分線纜連接,主控層與每個從控層通過1根包含6對差分線的屏蔽線纜連接,上行和下行各3對差分線路,保證板間通信的可靠性。

    從控層由1片Xilinx的XC3S200AN芯片作為控制模塊構(gòu)成母板,每2路采集通道組構(gòu)成采集子板,以雙列直插的方式與母板連接,整體結(jié)構(gòu)并行對稱,采集母板提供了4個子板接口,可以8路通道并行工作。從控層結(jié)構(gòu)如圖2所示,每一路采集通道由AD8253和AD8250組成的前后兩級放大,級聯(lián)的芯片增益可由從控層FPGA通過軟件配置,溫度傳感器DS18B20實(shí)時監(jiān)控系統(tǒng)本身的工作環(huán)境溫度。

 

 

2 控制及數(shù)據(jù)傳輸
  由系統(tǒng)硬件結(jié)構(gòu)可知,系統(tǒng)有上行和下行兩組通信鏈路,即控制指令鏈路和數(shù)據(jù)傳輸鏈路??刂浦噶钇鹩谏衔粰C(jī)系統(tǒng),由串口發(fā)送到控制層,經(jīng)主控層解析處理后,分發(fā)至相應(yīng)的從控層,再由從控層執(zhí)行相應(yīng)的指令操作。數(shù)據(jù)傳輸起于從控層,通過差分線路傳輸?shù)街骺貙樱谥骺貙咏M幀后,寫入USB芯片,最后由上位機(jī)系統(tǒng)讀入顯示。指令和數(shù)據(jù)都約定了特定的格式,以一定的協(xié)議進(jìn)行通信,同時對從控層和采集通道都進(jìn)行了編號,以此實(shí)現(xiàn)控制協(xié)議的解析和分發(fā),以及數(shù)據(jù)管理和上位機(jī)解析。
2.1 控制協(xié)議
    控制協(xié)議是由上位機(jī)、主控層和從控層共同約定的,控制命令以字為單位,有標(biāo)志字、控制命令和配置參數(shù)三類。其中標(biāo)志字約定為11111111B,標(biāo)志字是命令和參數(shù)的起始標(biāo)志,主控層或從控層只有在接收到標(biāo)志字后,才會解析接下來的數(shù)據(jù),判斷上位機(jī)發(fā)出的命令。
    控制命令:00000000B、01xxxxxxB、11xxxxxxB和01XXxx
xxB分別約定為系統(tǒng)復(fù)位指令、停止轉(zhuǎn)換指令、啟動轉(zhuǎn)換指令和從控層配置指令。指令格式如表1所示。

    配置參數(shù):XXXXxxxxB,主要有采樣率參數(shù)和通道配置參數(shù),其中XXXX為通道號,編碼為0000~0111B,即0~7號通道。配置參數(shù)跟在指令01XX1100B/01XX1110B后時,xxxx為XXXX通道的采樣率參數(shù),作為從控層/主控層采樣脈沖的參數(shù)。配置參數(shù)緊接在XX層通道配置計(jì)數(shù)指令后時,則xxxx為XXXX通道的增益配置參數(shù),高2位為前級放大器增益,低2位為后級放大器增益。
    配置命令基本格式如圖3所示。在系統(tǒng)上電后以FF00H迫使系統(tǒng)復(fù)位,系統(tǒng)復(fù)位成功后,同樣以FFH開始,發(fā)送采樣率配置和通道增益配置命令及參數(shù)。如配置指令FF_4E_x1H,即第一層所有通道采用同一內(nèi)采樣脈沖,采樣率分頻參數(shù)為1,對應(yīng)內(nèi)采樣率設(shè)置為40  kHz。

2.2 通信協(xié)議及數(shù)據(jù)格式
    上文已經(jīng)介紹了系統(tǒng)各部分的硬件連接,主控層和從控層之間有6對差分線,上行和下行分別3對,下行有復(fù)位信號、采樣脈沖信號和數(shù)據(jù)信號線,上行有數(shù)據(jù)線、同步時鐘線和同步使能線。數(shù)據(jù)信號線以異步串行的方式,主控層向從控層發(fā)送命令和配置參數(shù),采樣脈沖信號線在不同層采用外采樣脈沖或主控層提供的脈沖時使用,以保證不同層間的同步采樣。上行數(shù)據(jù)以SPI同步串行方式傳輸,數(shù)據(jù)速率為12.5 Mb/s。
    數(shù)據(jù)格式如圖4,一個數(shù)據(jù)有3 B,由6 bit的頭信息編碼和18 bit數(shù)據(jù)位組成。高2位是該從控層的編號,編碼范圍為00B~11B(0~3層);次高4位為通道編碼,0000B~0111B(0~7號通道)為A/D通道編碼,1010B(10號通道)為溫度傳感器信息編碼,余下通道編碼可作擴(kuò)展。


3 系統(tǒng)程序結(jié)構(gòu)
    主控層主要完成上位機(jī)配置命令解析、采集數(shù)據(jù)組幀,從控層主要執(zhí)行配置命令、控制A/D通道工作狀態(tài),以及采集數(shù)據(jù)編碼上傳。
3.1 主控層程序設(shè)計(jì)
    主控層是系統(tǒng)的中間節(jié)點(diǎn),是聯(lián)系上位機(jī)管理系統(tǒng)和下層采集的重要結(jié)構(gòu)。主控層實(shí)時接收并解析來自上位機(jī)管理系統(tǒng)的命令字和配置參數(shù),同時向從控層分發(fā)控制和配置信息。主控層在接收到采集FPGA上傳的數(shù)據(jù)后,組幀發(fā)送至USB芯片。
    主控層程序結(jié)構(gòu)如圖5所示,主要有串口收發(fā)模塊、狀態(tài)機(jī)控制器、數(shù)據(jù)接收模塊、USB控制器及數(shù)據(jù)FIFO。串口接收器波特率9 600 b/s,與PC機(jī)的標(biāo)準(zhǔn)串口連接。串行發(fā)送模塊以異步串行方式向從控層發(fā)送控制命令和配置參數(shù)。緩沖區(qū)FIFO是基于乒乓操作機(jī)制,大小為4 096 B,緩沖區(qū)數(shù)據(jù)每滿512 B,則由USB控制器讀入USB芯片CYS68031A[4]。此處USB采用的是同步讀寫方式,數(shù)據(jù)速率設(shè)置為25 MB/s。

    主控層程序流程如圖6所示。數(shù)據(jù)被讀入主控層緩沖后,通過查詢方式循環(huán)讀取數(shù)據(jù)并寫入FIFO緩沖區(qū)。數(shù)據(jù)寫入FIFO同時是組幀,數(shù)據(jù)幀的格式:以512 B為一個數(shù)據(jù)塊,每一個數(shù)據(jù)塊的前2 B以FF作為幀同步頭,次3 B為幀計(jì)數(shù)信息,其余507 B為數(shù)據(jù)空間。

3.2 從控層程序設(shè)計(jì)
    從控層程序結(jié)構(gòu)如圖7所示,主體功能有:接收并解析主控FPGA發(fā)送的配置參數(shù);根據(jù)配置參數(shù)進(jìn)行系統(tǒng)鏈路自檢,配置通道增益;接收主控板采集脈沖并啟動A/D轉(zhuǎn)換;讀取A/D轉(zhuǎn)換數(shù)據(jù)并組合編碼;對數(shù)據(jù)進(jìn)行濾波處理;向主控FPGA上傳A/D數(shù)據(jù)。

    系統(tǒng)的流程如圖8所示。采集通道的增益配置是在從控層接收到所有通道的配置參數(shù)后同步完成。首先配置前級增益,再配置后級。系統(tǒng)的鏈路自檢是由從控層生成一組約定的數(shù)據(jù),發(fā)送到上位機(jī)系統(tǒng),以判斷各層之間的連接狀態(tài)。在采用相同的采樣率時,從控層所有通道保持?jǐn)?shù)據(jù)同步,采樣率不同時,各通道的數(shù)據(jù)經(jīng)過復(fù)接同步后再發(fā)送主控層。
3.3 FIR濾波器設(shè)計(jì)
    數(shù)字FIR濾波器由上位機(jī)發(fā)送控制命令,對指定的通道數(shù)據(jù)進(jìn)行濾波處理,以濾除采集電路的信號干擾。濾波器結(jié)構(gòu)如圖9所示,采用半并行對稱結(jié)構(gòu),濾波系數(shù)的設(shè)計(jì)借助MATLAB的FDATOOL,根據(jù)系統(tǒng)的既定采樣率和參數(shù),設(shè)計(jì)了2組33階的系數(shù),系數(shù)被儲存在ROM中,因?yàn)V波器為對稱結(jié)構(gòu),所以ROM只需儲存17個系數(shù),系統(tǒng)可根據(jù)配置信息選取濾波系數(shù)。濾波器框架為串并結(jié)合結(jié)構(gòu),同時可以選擇不同的濾波系數(shù),減少濾波器對乘法器資源和邏輯資源的使用。

    圖10所示為用FDATOOL設(shè)計(jì)的33階kaiser窗濾波系數(shù)的MATLAB仿真圖,β=0.3,截止頻率Wc=0.5。輸入信號頻率f=0.5 MHz,采樣頻率Fs=5 MHz。

    借助仿真軟件ModelSim驗(yàn)證FIR濾波器,仿真結(jié)果如圖11所示。以輸入0.5 MHz方波信號為例,采樣率設(shè)置為6 MHz,經(jīng)過濾波處理后,得到了0.5 MHz正弦信號。
4 系統(tǒng)測試與數(shù)據(jù)指標(biāo)
     經(jīng)過大量的測試分析和統(tǒng)計(jì)證明系統(tǒng)具有很好的性能和測量精度。表2所示為部分測量數(shù)據(jù)分析結(jié)果。幅值為10 mV~5 V信號,在不同增益下,直流信號的測量精度平均值可達(dá)0.293%,頻率為100 Hz交流信號的測量精度平均值可達(dá)0.642%。

    本系統(tǒng)提供了最大24路的采集通道,系統(tǒng)工作通道可配置、可選擇,系統(tǒng)啟動迅速,具有很強(qiáng)的實(shí)時性,通道間的相位誤差小于10°,精度高、數(shù)據(jù)吞吐量大,并具有一定故障自檢能力。系統(tǒng)內(nèi)采樣時鐘最小為100 Hz,最大為40 kHz,A/D最大采樣頻率可達(dá)250 kHz,USB的讀寫能力最大可達(dá)到48 MB/s??梢詰?yīng)用于檢測、控制等系統(tǒng)中,目前已應(yīng)用于某測控系統(tǒng)。
參考文獻(xiàn)
[1] 章勇勤,艾勇,鄧德祥. 基于FPGA 的超高速數(shù)據(jù)采集與處理系統(tǒng)[J].數(shù)據(jù)采集與處理,2009,24(2):238-242.
[2] 陳波,陸必應(yīng),周智敏.多通道高速數(shù)據(jù)采集處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代雷達(dá),2010,32(5):44-47.
[3] 山昆,劉建業(yè),趙偉,等.多通道同步采樣數(shù)據(jù)采集系統(tǒng)研究[J].微處理機(jī),2006(4):20-22.
[4] Cypress Semiconductor Corporation. EZ-USB FX2 Technical Reference. V 2.1.[EB/OL]. http//www.cypress.com, 2000.

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