基于FPGA的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
隨著科學(xué)研究和工業(yè)生產(chǎn)對(duì)數(shù)據(jù)采集系統(tǒng)的速度、穩(wěn)定性、準(zhǔn)確性要求的不斷提高,傳統(tǒng)數(shù)據(jù)采集系統(tǒng)已經(jīng)逐漸不能滿足上述需求。傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)通常使用單片機(jī)或DSP作為控制核心,而且需要連接復(fù)雜的外圍電路和外接存儲(chǔ)器,才能完成整個(gè)數(shù)據(jù)采集任務(wù)。其中,以單片機(jī)做為主控芯片的系統(tǒng),由于單片機(jī)采用串行工作方式,且操作指令周期較長(zhǎng)。在應(yīng)對(duì)多路高速數(shù)據(jù)輸入時(shí),采集速率很低.且運(yùn)行不穩(wěn)定,很難保證高速數(shù)據(jù)采集的實(shí)時(shí)性和同步性。而以DSP作為主控芯片的數(shù)據(jù)采集系統(tǒng)中,雖然DSP有較高的工作時(shí)鐘,能滿足高速數(shù)據(jù)采集對(duì)速度的需求,但是數(shù)據(jù)采集工作的完成還需要外圍的存儲(chǔ)器和相應(yīng)的邏輯控制模塊的輔助,這樣就造成設(shè)計(jì)電路板的面積較大,成本偏高。
正因?yàn)閭鹘y(tǒng)數(shù)據(jù)采集系統(tǒng)的上述缺陷,基于FPGA的高速數(shù)據(jù)采集系統(tǒng)應(yīng)運(yùn)而生,成為解決上述問(wèn)題的有效手段。FPGA芯片具有時(shí)鐘頻率高、內(nèi)部延時(shí)小、工作效率高、擴(kuò)展方便、I/O資源豐富、存儲(chǔ)方式多樣、設(shè)計(jì)靈活通用、全部控制邏輯由硬件完成等優(yōu)點(diǎn)。通過(guò)Verilog硬件描述語(yǔ)言對(duì)FPGA進(jìn)行功能模塊設(shè)計(jì)不同于傳統(tǒng)的C語(yǔ)言對(duì)單片機(jī)的設(shè)計(jì),數(shù)據(jù)在FPGA內(nèi)部運(yùn)算、傳輸?shù)葹椴⑿刑幚恚『眠m合多路高頻數(shù)據(jù)處理要求。因此,本文設(shè)計(jì)了一個(gè)基于FPGA的高速數(shù)據(jù)采集系統(tǒng),不需搭建復(fù)雜的外圍電路和外接存儲(chǔ)器,在系統(tǒng)的時(shí)效性、穩(wěn)定性和設(shè)計(jì)成本上均有較大優(yōu)勢(shì)。
1 系統(tǒng)結(jié)構(gòu)與方案
本文所設(shè)計(jì)高速數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)如圖1所示。本系統(tǒng)FPGA采用Xilinx公司的XC3S200AN-4-FT256-C芯片。該芯片擁有20萬(wàn)門邏輯單元,內(nèi)含16個(gè)18KB的塊存儲(chǔ)器(Block RA M)與30 KB分布存儲(chǔ)器(Distributed RAM),最高工作頻率為326 MHz,完全可以滿足本系統(tǒng)對(duì)時(shí)序的需求。系統(tǒng)所用AD轉(zhuǎn)換芯片為ADI公司生產(chǎn)的高速高精度流水線型AD9233模數(shù)轉(zhuǎn)換芯片。該系統(tǒng)與PC機(jī)之間的數(shù)據(jù)通信使用串口通信。
2 系統(tǒng)邏輯設(shè)計(jì)
邏輯部分方案框圖如圖2所示。
邏輯部分主要由AD芯片控制邏輯、脈沖檢測(cè)控制邏輯、PC指令解析邏輯、系統(tǒng)運(yùn)行邏輯4部分組成。
隨機(jī)序列經(jīng)過(guò)脈沖檢測(cè)控制邏輯中的包含的上升沿檢測(cè)邏輯檢測(cè)到后,輸出脈沖信號(hào)。每有一個(gè)上升沿輸入,上升沿檢測(cè)邏輯就輸出一個(gè)脈沖信號(hào)。上升沿檢測(cè)邏輯輸出的脈沖信號(hào)經(jīng)過(guò)脈沖檢測(cè)控制邏輯內(nèi)包含的上升沿計(jì)數(shù)邏輯對(duì)上升沿計(jì)數(shù),計(jì)數(shù)結(jié)果為當(dāng)前時(shí)刻256μs時(shí)間窗內(nèi)上升沿個(gè)數(shù)。PC端與采集系統(tǒng)連接采用串口通信。PC指令解析邏輯對(duì)PC機(jī)的串口指令進(jìn)行解析,將解析的指令送到控制邏輯,控制邏輯控制統(tǒng)計(jì)計(jì)數(shù)和數(shù)據(jù)傳送。在PC端對(duì)采集到的數(shù)據(jù)通過(guò)串口助手來(lái)顯示。當(dāng)解析出開始檢測(cè)指令時(shí),控制邏輯根據(jù)兩個(gè)檢測(cè)點(diǎn)時(shí)刻(一個(gè)檢測(cè)點(diǎn)為隨機(jī)輸入序列的上升沿,另一個(gè)檢測(cè)點(diǎn)為上升沿延時(shí)1 ms)使能鎖存器對(duì)上升沿計(jì)數(shù)器的計(jì)數(shù)結(jié)果進(jìn)行鎖存,并以該計(jì)數(shù)值為地址將對(duì)應(yīng)的統(tǒng)計(jì)計(jì)數(shù)器加1。當(dāng)解析停止檢測(cè)指令時(shí)控制邏輯禁能鎖存器和統(tǒng)計(jì)計(jì)數(shù)器。當(dāng)解析清除指令時(shí),控制邏輯將統(tǒng)計(jì)計(jì)數(shù)器清零。當(dāng)解析傳送數(shù)據(jù)指令時(shí),控制邏輯將兩統(tǒng)計(jì)計(jì)數(shù)器的值分別傳送,通過(guò)多路選擇器分別鎖存統(tǒng)計(jì)計(jì)數(shù)器結(jié)果,然后啟動(dòng)串口發(fā)送邏輯發(fā)送鎖存器中的數(shù)值。
2.1 AD芯片控制邏輯
模擬信號(hào)輸入到AD芯片進(jìn)行由連續(xù)模擬信號(hào)到離散數(shù)字信號(hào)的轉(zhuǎn)換。AD9233芯片是由1.8 V模擬電源供電、1.8~3.3 V數(shù)字電源供電、精度為12位的模數(shù)轉(zhuǎn)換器,有80/105/125 Msps三種轉(zhuǎn)換速率的芯片。AD9233的模數(shù)轉(zhuǎn)換時(shí)序圖如圖3所示。
圖中CLK為AD9233的工作采樣時(shí)鐘,是由FPGA提供的。由FPGA內(nèi)部的分頻電路對(duì)系統(tǒng)時(shí)鐘進(jìn)行分頻,分頻后的時(shí)鐘做為AD9233的工作采樣時(shí)鐘。AD9233的使能端也是由FPGA邏輯來(lái)控制的,通過(guò)FPGA系統(tǒng)運(yùn)行邏輯提供的關(guān)于AD芯片工作狀態(tài)指示的信號(hào)來(lái)控制其工作狀態(tài)。圖中DATA為數(shù)字信號(hào)輸出。用Verilog HDL編寫的數(shù)據(jù)傳輸部分程序如下:
Rstn低電平有效,對(duì)寄存器Shift_Register進(jìn)行初始化?;蛘弋?dāng)Shift_Register_En為高電平時(shí)開始對(duì)14位的寄存器Shift_Register移位賦值。當(dāng)有模擬信號(hào)進(jìn)入AD轉(zhuǎn)換芯片,根據(jù)系統(tǒng)提供的工作采樣時(shí)鐘來(lái)將轉(zhuǎn)換出的數(shù)字信號(hào)輸入通過(guò)數(shù)據(jù)以14位為一組傳送端口送入FPGA內(nèi)部,然后數(shù)據(jù)進(jìn)入脈沖檢測(cè)控制邏輯。
2.2 脈沖檢測(cè)控制邏輯
脈沖控制邏輯主要針對(duì)采集到AD轉(zhuǎn)換芯片內(nèi)部傳送到FPGA的數(shù)字脈沖信號(hào)。主要內(nèi)容為上升沿計(jì)數(shù)邏輯。主要由14 bit計(jì)數(shù)器和脈沖時(shí)間節(jié)拍計(jì)數(shù)器組成。CLK250M為系統(tǒng)時(shí)鐘(250 MHz/4 ns),Rstn為系統(tǒng)復(fù)位信號(hào),低電平有效。DI信號(hào)為上升沿檢測(cè)到的脈沖信號(hào)。輸入信號(hào)每有一個(gè)上升沿脈沖,就輸出一個(gè)脈沖信號(hào),脈沖信號(hào)的脈寬為一個(gè)系統(tǒng)時(shí)鐘周期。DI信號(hào)同時(shí)輸入到14 bit計(jì)數(shù)器和時(shí)間節(jié)拍計(jì)數(shù)器記錄此時(shí)刻。14 bit計(jì)數(shù)器和時(shí)間節(jié)拍計(jì)數(shù)器在系統(tǒng)復(fù)位時(shí) 初始化為0。計(jì)數(shù)器根據(jù)時(shí)間節(jié)拍計(jì)數(shù)器最小值與當(dāng)前時(shí)間節(jié)拍差值與時(shí)間窗比較來(lái)決定計(jì)數(shù)器是加1、減1、保持原值不變。計(jì)數(shù)器操作情況如下:
當(dāng)CLK_D_value<=CLK_Window時(shí)計(jì)數(shù)器保持原值不變。
當(dāng)Pulse=1時(shí),計(jì)數(shù)器加1。
當(dāng)CLK_D_value>CLK_Window時(shí),計(jì)數(shù)器減1,時(shí)間節(jié)拍計(jì)數(shù)器加1。
上升沿計(jì)數(shù)邏輯中計(jì)數(shù)器的計(jì)數(shù)值為256 μs時(shí)間段內(nèi)輸入隨機(jī)序列上升沿個(gè)數(shù)。
脈沖檢測(cè)控制邏輯仿真時(shí)所用仿真軟件為ModelSim10.1。測(cè)試腳本編寫語(yǔ)言為Verilog HDL測(cè)試腳本文件中設(shè)置系統(tǒng)時(shí)鐘為25 MHz,復(fù)位信號(hào)Rstn為高電平,輸入的脈沖序列頻率為3.125 MHz。仿真結(jié)果如圖4所示。
2.3 PC指令解析邏輯
PC機(jī)與系統(tǒng)之間的數(shù)據(jù)傳輸采用RS-232標(biāo)準(zhǔn)進(jìn)行串口通信。PC指令解析邏輯通過(guò)分析PC機(jī)通過(guò)串口通訊模塊發(fā)送過(guò)來(lái)的數(shù)據(jù)對(duì)系統(tǒng)運(yùn)行模塊進(jìn)行控制。發(fā)送接收數(shù)據(jù)說(shuō)明如圖5所示。信號(hào)線從高電平變?yōu)榈碗娖介_始數(shù)據(jù)傳輸,與圖中不同之處在于,本文中傳輸數(shù)據(jù)位數(shù)為8位,替代了圖中奇偶校驗(yàn)位,直到接收到停止位,終止這一組數(shù)據(jù)傳輸。
通過(guò)設(shè)置固定的8 bit數(shù)據(jù)分別作為“開始”、“復(fù)位”、“停止”信號(hào),由PC機(jī)端串口助手發(fā)送數(shù)據(jù)到FPGA來(lái)控制系統(tǒng)完成開始采集數(shù)據(jù)、清空存儲(chǔ)器數(shù)據(jù)、停止數(shù)據(jù)采集等工作。同時(shí),配合系統(tǒng)運(yùn)行邏輯,當(dāng)有數(shù)據(jù)被采集時(shí),存儲(chǔ)到數(shù)據(jù)存儲(chǔ)器后,通過(guò)串口發(fā)送到PC端。
2.4 系統(tǒng)運(yùn)行邏輯
系統(tǒng)運(yùn)行邏輯為系統(tǒng)中主要邏輯部分。主要功能是協(xié)調(diào)各個(gè)其他邏輯模塊的配合工作,處理其他邏輯模塊反饋信號(hào),發(fā)送控制信號(hào),使數(shù)據(jù)采集工作完成。當(dāng)PC機(jī)通過(guò)串口發(fā)送開始檢測(cè)數(shù)據(jù)到系統(tǒng)時(shí),經(jīng)由PC指令解析邏輯分析,發(fā)送開始檢測(cè)信號(hào)給系統(tǒng)運(yùn)行邏輯,系統(tǒng)運(yùn)行邏輯做出相應(yīng)反應(yīng),給數(shù)據(jù)存儲(chǔ)器提供復(fù)位信號(hào),清空存儲(chǔ)器中數(shù)據(jù),準(zhǔn)備存入新采集到的數(shù)據(jù),同時(shí)使AD控制邏輯給AD轉(zhuǎn)換芯片使能端賦值,使其開始工作。
當(dāng)有數(shù)據(jù)被采集到系統(tǒng)時(shí),模數(shù)轉(zhuǎn)換芯片將其轉(zhuǎn)換為數(shù)字脈沖信號(hào)。脈沖信號(hào)進(jìn)入脈沖檢測(cè)控制邏輯,同時(shí)系統(tǒng)控制邏輯部分接到脈沖檢測(cè)控制邏輯信號(hào),將數(shù)據(jù)暫時(shí)存入數(shù)據(jù)存儲(chǔ)系統(tǒng)。然后將數(shù)據(jù)存儲(chǔ)器中的的數(shù)據(jù)傳送至串口,按8位數(shù)據(jù)的寬度多次發(fā)送給串口控制模塊,然后傳輸至PC機(jī),PC端實(shí)時(shí)顯示所采集到數(shù)據(jù)。系統(tǒng)采集的部分?jǐn)?shù)據(jù)在串口助手軟件顯示如圖6所示。
3 結(jié)束語(yǔ)
設(shè)計(jì)了一種基于FPGA的高速數(shù)據(jù)采集系統(tǒng)。采用高速模數(shù)轉(zhuǎn)換芯片+FPGA芯片+PC機(jī)的硬件結(jié)構(gòu),發(fā)揮FPGA的并行數(shù)據(jù)處理能力,與傳統(tǒng)的以DSP和單片機(jī)為主要處理芯片的數(shù)據(jù)采集系統(tǒng)相比,不需要搭建復(fù)雜的外圍電路,主要功能模塊均在FPGA內(nèi)部通過(guò)Verilog HDL語(yǔ)言設(shè)計(jì)完成,在數(shù)據(jù)采集速度和系統(tǒng)運(yùn)行穩(wěn)定性上均有較大優(yōu)勢(shì),可以滿足高速數(shù)據(jù)采集需求。