基于FPGA的主從式高速數(shù)據(jù)采集與傳輸系統(tǒng)
隨著數(shù)字技術的飛速發(fā)展和數(shù)字系統(tǒng)的廣泛應用,模擬信號轉(zhuǎn)換為可處理的數(shù)字信號,對采集系統(tǒng)的精度、采樣率以及數(shù)據(jù)速率都有更高的要求。對于大型復雜的設備,其故障檢測和診斷同樣是一項復雜的工作,采集設備的工作狀態(tài)及環(huán)境變化,對操作者了解設備的工作狀態(tài),及時對系統(tǒng)的故障作出判斷和處理有積極的意義。FPGA器件具有很高的集成度,豐富的資源,用戶可編程,使用方便靈活,設計周期短,因而廣泛應用于數(shù)字系統(tǒng)中。本文介紹了以FPGA為控制核心的高速數(shù)據(jù)采集與傳輸系統(tǒng),以低速串口傳輸數(shù)據(jù)量少的上位機控制指令,通過高速USB接口向上位機傳輸數(shù)據(jù)量大的采集數(shù)據(jù)幀,保證指令和數(shù)據(jù)傳輸?shù)目煽啃?,可提供最?2路采集通道,并可通過上位機界面配置采集通道數(shù)量和采集電路增益,FPGA控制器根據(jù)約定的控制協(xié)議執(zhí)行操作。系統(tǒng)程序設計以ISE 10.1為平臺,使用Verilog HDL語言設計實現(xiàn)。系統(tǒng)針對復雜環(huán)境的大型設備的運行監(jiān)測和故障診斷需求,提供一種可應用遠程測控的底層數(shù)據(jù)采集與傳輸應用[1-3]。
1 系統(tǒng)硬件結構
系統(tǒng)結構如圖1所示,系統(tǒng)主要有上位機管理系統(tǒng)、鏈路管理主控層和通道管理從控制層三個主體部分。上位機管理系統(tǒng)提供人機交互的功能,本文不做詳細介紹,系統(tǒng)硬件主體主要由主控層和從控層組成。鏈路管理主控制層主要實現(xiàn)控制指令解析、數(shù)據(jù)管理和從控層管理等功能,通道管理從控制層主要功能是通道管理和配置、數(shù)據(jù)管理和傳輸。主控層提供3個與從控層通信的差分接口,可支持3塊從控層并行工作。
鏈路管理主控制層由1片Xilinx的FPGA芯片XC3S1500作為控制模塊,3組差分芯片對作為主控層與從控層的通信鏈路,1片RS232和CY7C68013A芯片分別作為控制層與上位機管理系統(tǒng)的下行控制鏈路和上行數(shù)據(jù)鏈路。主控FPGA與采集FPGA是跨印制板連接,使用差分驅(qū)動和接收芯片(LVDS391/390)通過屏蔽差分線纜連接,主控層與每個從控層通過1根包含6對差分線的屏蔽線纜連接,上行和下行各3對差分線路,保證板間通信的可靠性。
從控層由1片Xilinx的XC3S200AN芯片作為控制模塊構成母板,每2路采集通道組構成采集子板,以雙列直插的方式與母板連接,整體結構并行對稱,采集母板提供了4個子板接口,可以8路通道并行工作。從控層結構如圖2所示,每一路采集通道由AD8253和AD8250組成的前后兩級放大,級聯(lián)的芯片增益可由從控層FPGA通過軟件配置,溫度傳感器DS18B20實時監(jiān)控系統(tǒng)本身的工作環(huán)境溫度。
2 控制及數(shù)據(jù)傳輸
由系統(tǒng)硬件結構可知,系統(tǒng)有上行和下行兩組通信鏈路,即控制指令鏈路和數(shù)據(jù)傳輸鏈路??刂浦噶钇鹩谏衔粰C系統(tǒng),由串口發(fā)送到控制層,經(jīng)主控層解析處理后,分發(fā)至相應的從控層,再由從控層執(zhí)行相應的指令操作。數(shù)據(jù)傳輸起于從控層,通過差分線路傳輸?shù)街骺貙?,在主控層組幀后,寫入USB芯片,最后由上位機系統(tǒng)讀入顯示。指令和數(shù)據(jù)都約定了特定的格式,以一定的協(xié)議進行通信,同時對從控層和采集通道都進行了編號,以此實現(xiàn)控制協(xié)議的解析和分發(fā),以及數(shù)據(jù)管理和上位機解析。
2.1 控制協(xié)議
控制協(xié)議是由上位機、主控層和從控層共同約定的,控制命令以字為單位,有標志字、控制命令和配置參數(shù)三類。其中標志字約定為11111111B,標志字是命令和參數(shù)的起始標志,主控層或從控層只有在接收到標志字后,才會解析接下來的數(shù)據(jù),判斷上位機發(fā)出的命令。
控制命令:00000000B、01xxxxxxB、11xxxxxxB和01XXxx
xxB分別約定為系統(tǒng)復位指令、停止轉(zhuǎn)換指令、啟動轉(zhuǎn)換指令和從控層配置指令。指令格式如表1所示。
配置參數(shù):XXXXxxxxB,主要有采樣率參數(shù)和通道配置參數(shù),其中XXXX為通道號,編碼為0000~0111B,即0~7號通道。配置參數(shù)跟在指令01XX1100B/01XX1110B后時,xxxx為XXXX通道的采樣率參數(shù),作為從控層/主控層采樣脈沖的參數(shù)。配置參數(shù)緊接在XX層通道配置計數(shù)指令后時,則xxxx為XXXX通道的增益配置參數(shù),高2位為前級放大器增益,低2位為后級放大器增益。
配置命令基本格式如圖3所示。在系統(tǒng)上電后以FF00H迫使系統(tǒng)復位,系統(tǒng)復位成功后,同樣以FFH開始,發(fā)送采樣率配置和通道增益配置命令及參數(shù)。如配置指令FF_4E_x1H,即第一層所有通道采用同一內(nèi)采樣脈沖,采樣率分頻參數(shù)為1,對應內(nèi)采樣率設置為40 kHz。
2.2 通信協(xié)議及數(shù)據(jù)格式
上文已經(jīng)介紹了系統(tǒng)各部分的硬件連接,主控層和從控層之間有6對差分線,上行和下行分別3對,下行有復位信號、采樣脈沖信號和數(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號通道)為溫度傳感器信息編碼,余下通道編碼可作擴展。
3 系統(tǒng)程序結構
主控層主要完成上位機配置命令解析、采集數(shù)據(jù)組幀,從控層主要執(zhí)行配置命令、控制A/D通道工作狀態(tài),以及采集數(shù)據(jù)編碼上傳。
3.1 主控層程序設計
主控層是系統(tǒng)的中間節(jié)點,是聯(lián)系上位機管理系統(tǒng)和下層采集的重要結構。主控層實時接收并解析來自上位機管理系統(tǒng)的命令字和配置參數(shù),同時向從控層分發(fā)控制和配置信息。主控層在接收到采集FPGA上傳的數(shù)據(jù)后,組幀發(fā)送至USB芯片。
主控層程序結構如圖5所示,主要有串口收發(fā)模塊、狀態(tài)機控制器、數(shù)據(jù)接收模塊、USB控制器及數(shù)據(jù)FIFO。串口接收器波特率9 600 b/s,與PC機的標準串口連接。串行發(fā)送模塊以異步串行方式向從控層發(fā)送控制命令和配置參數(shù)。緩沖區(qū)FIFO是基于乒乓操作機制,大小為4 096 B,緩沖區(qū)數(shù)據(jù)每滿512 B,則由USB控制器讀入USB芯片CYS68031A[4]。此處USB采用的是同步讀寫方式,數(shù)據(jù)速率設置為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為幀計數(shù)信息,其余507 B為數(shù)據(jù)空間。
3.2 從控層程序設計
從控層程序結構如圖7所示,主體功能有:接收并解析主控FPGA發(fā)送的配置參數(shù);根據(jù)配置參數(shù)進行系統(tǒng)鏈路自檢,配置通道增益;接收主控板采集脈沖并啟動A/D轉(zhuǎn)換;讀取A/D轉(zhuǎn)換數(shù)據(jù)并組合編碼;對數(shù)據(jù)進行濾波處理;向主控FPGA上傳A/D數(shù)據(jù)。
系統(tǒng)的流程如圖8所示。采集通道的增益配置是在從控層接收到所有通道的配置參數(shù)后同步完成。首先配置前級增益,再配置后級。系統(tǒng)的鏈路自檢是由從控層生成一組約定的數(shù)據(jù),發(fā)送到上位機系統(tǒng),以判斷各層之間的連接狀態(tài)。在采用相同的采樣率時,從控層所有通道保持數(shù)據(jù)同步,采樣率不同時,各通道的數(shù)據(jù)經(jīng)過復接同步后再發(fā)送主控層。
3.3 FIR濾波器設計
數(shù)字FIR濾波器由上位機發(fā)送控制命令,對指定的通道數(shù)據(jù)進行濾波處理,以濾除采集電路的信號干擾。濾波器結構如圖9所示,采用半并行對稱結構,濾波系數(shù)的設計借助MATLAB的FDATOOL,根據(jù)系統(tǒng)的既定采樣率和參數(shù),設計了2組33階的系數(shù),系數(shù)被儲存在ROM中,因濾波器為對稱結構,所以ROM只需儲存17個系數(shù),系統(tǒng)可根據(jù)配置信息選取濾波系數(shù)。濾波器框架為串并結合結構,同時可以選擇不同的濾波系數(shù),減少濾波器對乘法器資源和邏輯資源的使用。
圖10所示為用FDATOOL設計的33階kaiser窗濾波系數(shù)的MATLAB仿真圖,β=0.3,截止頻率Wc=0.5。輸入信號頻率f=0.5 MHz,采樣頻率Fs=5 MHz。
借助仿真軟件ModelSim驗證FIR濾波器,仿真結果如圖11所示。以輸入0.5 MHz方波信號為例,采樣率設置為6 MHz,經(jīng)過濾波處理后,得到了0.5 MHz正弦信號。
4 系統(tǒng)測試與數(shù)據(jù)指標
經(jīng)過大量的測試分析和統(tǒng)計證明系統(tǒng)具有很好的性能和測量精度。表2所示為部分測量數(shù)據(jù)分析結果。幅值為10 mV~5 V信號,在不同增益下,直流信號的測量精度平均值可達0.293%,頻率為100 Hz交流信號的測量精度平均值可達0.642%。
本系統(tǒng)提供了最大24路的采集通道,系統(tǒng)工作通道可配置、可選擇,系統(tǒng)啟動迅速,具有很強的實時性,通道間的相位誤差小于10°,精度高、數(shù)據(jù)吞吐量大,并具有一定故障自檢能力。系統(tǒng)內(nèi)采樣時鐘最小為100 Hz,最大為40 kHz,A/D最大采樣頻率可達250 kHz,USB的讀寫能力最大可達到48 MB/s??梢詰糜跈z測、控制等系統(tǒng)中,目前已應用于某測控系統(tǒng)。
評論