基于FPGA的高速數(shù)據(jù)采集系統(tǒng)設(shè)計
數(shù)據(jù)采集就是通過模數(shù)轉(zhuǎn)換器(A/D)將輸入的模擬信號轉(zhuǎn)換成數(shù)字信號,然后送入單片機中進行處理,而對A/D轉(zhuǎn)換器的啟動,數(shù)據(jù)的讀取,數(shù)據(jù)的傳輸都是靠MCU(單片機)執(zhí)行指令來完成的。近年來,隨著科學技術(shù)的發(fā)展,各種型號的模數(shù)轉(zhuǎn)換器的性能越來越高,而與密切相連的單片機因其時鐘頻率較低,很難滿足數(shù)據(jù)采集的實時性和同步性,因此,模數(shù)轉(zhuǎn)換器和單片機速度的不匹配,大大影響了數(shù)據(jù)采集系統(tǒng)的效率,這就要求能有一個讀取數(shù)據(jù)并且暫存數(shù)據(jù)的接口電路,來作為二者連接的橋梁,為此,基于FPGA的高速數(shù)據(jù)采集系統(tǒng)的研究顯得極為重要。
1 系統(tǒng)整體設(shè)計方案
本數(shù)據(jù)采集系統(tǒng)主要由信號調(diào)理通路、數(shù)模轉(zhuǎn)換器模塊、數(shù)據(jù)存儲與控制模塊組成。自行設(shè)計的硬件結(jié)構(gòu)框圖如圖1所示。
信號調(diào)理模塊是對兩路輸入信號進行調(diào)理的電路。輸入信號1是頻率為f1的正弦交流信號,先經(jīng)過整形電路,變?yōu)閿?shù)字時鐘信號CLK,送入模數(shù)轉(zhuǎn)換器MAX118,作為MAX118的外部時鐘輸入信號,控制數(shù)模轉(zhuǎn)換的速率。另一路輸入信號2為采樣輸入信號,可以是直流信號或是交流信號。當作為交流信號輸入時,其頻率f2是輸入信號1頻率f1的1/N倍。N值的大小就是輸入信號2在一個周期內(nèi)采樣點的數(shù)量。輸入信號2經(jīng)過調(diào)理電路處理后,就可以成為滿足MAX118輸入條件的信號。
將滿足MAX118輸入條件的信號2送入模數(shù)轉(zhuǎn)換器的任一輸入通道中,模數(shù)轉(zhuǎn)換器將模擬量(輸入信號)轉(zhuǎn)換為數(shù)字量。
本系統(tǒng)的FPCA設(shè)計主要包括雙端口寄存器模塊和計數(shù)器模塊,以及一些與MAX118和MCU連接的邏輯控制。FPGA在電路中,一邊與MAX118接口,一邊與MCU接口,完成數(shù)據(jù)采集和數(shù)據(jù)存儲的工作。在轉(zhuǎn)換過程中,模數(shù)轉(zhuǎn)換器MAX118的啟動和讀取,復(fù)位等控制功能均由FPGA完成。數(shù)據(jù)采集完畢后,F(xiàn)PGA與單片機之間的數(shù)據(jù)傳輸控制指令也是由FPGA發(fā)出并完成的。
電源部分由+9 V電源供給,F(xiàn)PGA的電源分別為3.3 V和1.5 V,是用專用電源芯片轉(zhuǎn)換得到,同時還轉(zhuǎn)換得到5 V電源供單片機和MAX118使用,電源的輸入電流最大3 A,但不應(yīng)小于2 A,因為大容量的FPGA在大負荷和資源使用較多時需要的電流較大,此電源的功率可以滿足正常使用,不會出現(xiàn)功率不夠而使芯片無法正常工作的情況。
2 核心器件工作原理分析
2.1 高速模數(shù)轉(zhuǎn)換器MAX118
MAX118是美國Maxim公司推出的低功耗、8位8通道的高速A/D轉(zhuǎn)換器,精度小于1LSB,采樣速率達到1.2 Msps。本方案采用讀模式進行采樣,可以設(shè)計出模數(shù)轉(zhuǎn)換器工作在MODE0模式下與FPGA硬件接口電路,通過對引腳的計數(shù),來讀取數(shù)據(jù)。
2.2 現(xiàn)場可編程門陣列(FPGA)及單片機(MCU)
本系統(tǒng)的控制器件由FPGA和單片機兩部分組成,在MCU+FPGA組成的電路系統(tǒng)中,單片機主要負責控制,而FPGA主要完成數(shù)據(jù)的采集和處理,所謂的控制,一方面是單片機直接控制外部電路,另一方面是在FPGA內(nèi)部自己來寫時序電路,滿足單片機的讀寫等時序,從而實現(xiàn)單片機與FPGA聯(lián)合控制本數(shù)據(jù)采集系統(tǒng)。
現(xiàn)場可編程門陣列選用Altera的Cyclone系列的EP1C6Q240C8,與之相連接的單片機選擇使用89C52或者52以上的單片機主芯片,這主要是為了高速的串口通信考慮。
3 FPGA邏輯設(shè)計
3.1 FPGA接口電路
FPGA在整個硬件電路中負責在MAX118和MCU之間的緩沖與控制。對于A/D來說,F(xiàn)PGA的主要作用是控制模數(shù)轉(zhuǎn)換器MAX118的啟動和轉(zhuǎn)換,并暫存采樣的數(shù)據(jù),通過其內(nèi)部設(shè)計的計數(shù)器,完成采樣信號一個周期內(nèi)采樣數(shù)量的控制。對于單片機來說,當FPGA完成信號一個周期的采樣后,向單片機申請中斷,由單片機完成對數(shù)據(jù)的讀取以及對FPGA內(nèi)部計數(shù)器的復(fù)位等工作。
自行設(shè)計的硬件連接圖如圖2所示。
下面根據(jù)圖2來具體說明采樣過程。
1)MAX118工作過程
要把輸入信號送入模數(shù)轉(zhuǎn)換器MAX118,必須通過設(shè)置其A0,A1,A2 3個引腳來選擇輸入信號的通道,當A0,A1,A2 3個引腳都為低時,選中通道1,此時,輸入信號被送入A/D中。并將外部時鐘信號CLK同時送入MAX118及FPGA中,保證二者同時被啟動。MAX118的MODE引腳被置低,工作在讀模式,至此,A/D可以進行轉(zhuǎn)換,8位數(shù)據(jù)從D0~D7引腳讀出。
2)FPGA控制過程
假設(shè)外部時鐘信號CLK的頻率f1是輸入信號頻率f2的32倍,輸入信號在一個周期內(nèi)將被采樣32個點。當FPGA檢測到時鐘信號CLK的上升沿時,開始從MAX118的數(shù)據(jù)輸出端口D0~D7讀數(shù)據(jù),并將數(shù)據(jù)放入FPGA的寄存器中。同時,F(xiàn)PGA的計數(shù)單元開始對MAX118的計數(shù),根據(jù)對MAX118時序的分析,每進行一次轉(zhuǎn)換,都被拉低一次,那么當采樣完一個周期的32個點后,也被計數(shù)了32次。此時,由FPGA給單片機一個中斷信號,單片機通過FPGA內(nèi)部設(shè)置的地址譯碼器開始對其存儲器中的數(shù)據(jù)進行讀取,而FPGA則處于等待狀態(tài)。當讀取結(jié)束后,單片機通過P1.0引腳給FPGA一個復(fù)位信號,將其內(nèi)部計數(shù)器清零,然后再開始讀取下一個周期的數(shù)據(jù),如此循環(huán),周而復(fù)始。
3.2 FPGA邏輯設(shè)計
本設(shè)計采用Verilog—HDL硬件描述語言進行邏輯代碼設(shè)計,在QuartusⅡ開發(fā)環(huán)境下,根據(jù)需求編寫源代碼,來完成分析綜合,適配,仿真等工作,最后將生成的pof文件下載到FPGA中。
4 系統(tǒng)調(diào)試結(jié)果分析
4.1 直流信號采集效果
首先,輸入一個直流信號進行采集,來分析采集系統(tǒng)的正確度。
設(shè)輸入信號1頻率f1=160 kHz,經(jīng)過整形電路變?yōu)橐粋€方波信號,作為模數(shù)轉(zhuǎn)換器的時鐘信號。輸入信號2為一個直流信號,設(shè)其表達式為u=1 V,然后對輸入信號2進行16個點的采樣,采樣數(shù)據(jù)如下表所示:
上表中的采樣值是經(jīng)過8位的模數(shù)轉(zhuǎn)換器MAX118量化編碼后輸出的,需要經(jīng)過歸一化處理后,才能用正確度公式來分析,其中表示測量的均值,x表示真實值。通過計算ε=0.03。MAX118是一個8位的模數(shù)轉(zhuǎn)換器,其基準電壓為5 V,所以此模數(shù)轉(zhuǎn)換器的分辨率為5/28=0.02,也就是A/D引起的量化誤差為0.02。由此可見,系統(tǒng)誤差中,除了量化誤差外,還存在著別的誤差,這是由于電路中的噪聲干擾等因素引起的,是不可避免的。這個數(shù)據(jù)也表明,本設(shè)計的準確度很高。
4.2 交流信號采集效果
現(xiàn)在,輸入一個交流信號來分析采集系統(tǒng)的精密度。精密度反映在相同條件下,對某定值做多次測量,測量值分散的程度,通過測量值的標準偏差來衡量標準差越小,表示數(shù)據(jù)越集中。
圖3是由采樣系統(tǒng)輸出的測量值畫出的波形圖,采樣數(shù)據(jù)已經(jīng)作了歸一化處理。
觀察上圖,發(fā)現(xiàn)只有少數(shù)采樣點偏離實際值,二者的波形形狀基本吻合,說明數(shù)據(jù)采集是成功的。
如表2所示,為輸入正弦信號在一個周期內(nèi)的32個點實際值和采樣值數(shù)據(jù)。其中,采樣測量值已經(jīng)進行了歸一化的處理。
采樣數(shù)據(jù)的標準差
可以用來衡量系統(tǒng)的精密度。由計算可得:σ≈0.09,標準偏差越小,測量數(shù)據(jù)越集中,這個數(shù)據(jù)說明系統(tǒng)的測量準確度也很高。
經(jīng)過以上對系統(tǒng)正確度和精密度的分析,可以得出,本設(shè)計的正確度和精密度都很高,也就是說系統(tǒng)的準確度很高。以上的數(shù)據(jù)分析結(jié)果,充分說明了這個設(shè)計系統(tǒng)能夠正確的讀寫數(shù)據(jù),穩(wěn)定且可靠。
5 結(jié)束語
本設(shè)計采用在線可編程的FPGA器件作為A/D和MCU的接口控制電路,完成了模擬信號的采集,與傳統(tǒng)的基于MCU的采集系統(tǒng)相比,具體采樣靈活,硬件電路簡單,實時性和同步性高等特點。測試數(shù)據(jù)表明,該設(shè)計能很好完成8位8通道的數(shù)據(jù)采集工作,采樣準確度高,系統(tǒng)工作穩(wěn)定。