基于FPGA的多通道高速采樣系統(tǒng)設(shè)計
摘要:旋轉(zhuǎn)機械的振動監(jiān)測,對于機械的安全運行和提高設(shè)備利用率有重大意義。利用FPGA的并行處理能力,采用高速可編程FPGA模塊和嵌入式開發(fā)的結(jié)合方式,提出了一種基于FPGA的高速、多通道、同步采樣實現(xiàn)方法。闡述了對于高速AD芯片的控制,硬件的布局布線,以及對于系統(tǒng)的功能要求,進(jìn)行了軟硬件的設(shè)計和調(diào)試。通過仿真和實驗的結(jié)果表明,對于信號發(fā)生器發(fā)出的高頻率正弦波,上位機上能夠顯示出完好的波形,即基于FPGA的采樣設(shè)計能夠達(dá)到多通道,高速采樣的要求,可以實現(xiàn)對高速旋轉(zhuǎn)機械振動的實時監(jiān)測。
0 引言
大型旋轉(zhuǎn)機械包括了汽輪機、水輪機、壓氣機等機械設(shè)備,是航空、電力、機械、石油化工等領(lǐng)域的關(guān)鍵設(shè)備。隨著工業(yè)生產(chǎn)和運行機組的參數(shù)不斷提高,對設(shè)備的可靠性、安全性、經(jīng)濟性提出了更高的要求,促使了對于旋轉(zhuǎn)機械設(shè)備振動監(jiān)測技術(shù)的研究。
目前實現(xiàn)數(shù)字信號處理主要有兩種形式:一種是使用數(shù)字信號處理器(DSP),DSP芯片的內(nèi)部采用程序和數(shù)據(jù)分開的哈夫結(jié)構(gòu),而且具有專門的硬件乘法器,可以廣泛采用流水線操作,提供特殊的DSP指令,可以用來快速地實現(xiàn)各種數(shù)字信號處理算法。然而,由于受到DSP自身性能的限制以及程序指令按順序執(zhí)行的特點,難以實現(xiàn)大規(guī)模、高速運算;另一種則是現(xiàn)場可編程門陣列(FPGA)。FPGA的結(jié)構(gòu)主要分為三部分:可編程邏輯模塊、可編程I/O模塊、可編程內(nèi)部連線,這樣就大大降低了印刷電路板設(shè)計的工作量和難度,同時,F(xiàn)PGA具有強大的邏輯功能,能對多路信號進(jìn)行并行處理,可以自定義模塊和自定義指令,有效提高了設(shè)計的靈活性和效率。因此,在比較低的取樣速率時,整體上很復(fù)雜的程序可以使用DSP;而在高速,多通道采樣方面,F(xiàn)PGA具有明顯的優(yōu)勢。實際中,一般的水輪機,汽輪機的旋轉(zhuǎn)速度在每分鐘幾千轉(zhuǎn),可以利用DSP完成數(shù)據(jù)采樣,但是遇到超過每分鐘萬轉(zhuǎn)以上的旋轉(zhuǎn)機械,就可以利用FPGA來完成高速采樣。
本設(shè)計采用高性能的FPGA芯片EP3C25Q240,高速多通道同步采樣AD芯片THS1207,通過良好的PCB布局、模塊化編程、多通道并行處理,實現(xiàn)對于高速旋轉(zhuǎn)機械的振動監(jiān)測與分析。
1 并行系統(tǒng)的工作原理
1.1 系統(tǒng)內(nèi)部構(gòu)成
并行系統(tǒng)工作原理框圖如圖1所示。本系統(tǒng)采用自頂向下的設(shè)計方法,可以主要分為AD模塊、FPGA控制模塊和以太網(wǎng)通信模塊。外部振動模擬信號經(jīng)過信號調(diào)制電路后進(jìn)入AD芯片進(jìn)行12位模數(shù)轉(zhuǎn)換,之后把數(shù)字信號并行傳遞給FPGA芯片。得到采樣數(shù)據(jù)后,F(xiàn)PGA對信號進(jìn)行并行處理,然后將處理過的數(shù)字信號通過以太網(wǎng)完成與上位機的數(shù)據(jù)通信。
FPGA模塊是信號處理系統(tǒng)的核心,它主要完成對數(shù)據(jù)采集的控制,對數(shù)字信號的并行處理與運算以及以太網(wǎng)通信。
1.2 系統(tǒng)外圍接口
系統(tǒng)外圍主要有AD轉(zhuǎn)換電路、信號調(diào)理電路、鍵相電路、SDRAM和EPCS電路、電源電路、JTAG和AS調(diào)試接口、以太網(wǎng)接口和LED顯示接口等。
2 板級電路設(shè)計
作為控制核心的FPGA芯片采用Altera公司的Cyclone系列的第三代EP3C25Q240,它具有豐富的資源和引腳數(shù)量,足夠滿足本系統(tǒng)需要。憑借其低功耗、高功能、低成本的前所未有的組合,拓寬了大批量、成本敏感的應(yīng)用。
考慮到設(shè)計的高速多通道的要求,AD選用了Texas Instruments生產(chǎn)的高速芯片THS1207。THS1207是一個CMOS、低功耗、12位、6 MSPS模擬-數(shù)字轉(zhuǎn)換器。對速度、分辨率、帶寬和單電源操作都非常適合應(yīng)用在雷達(dá)成像、高速采集和通信。輸出誤差校正邏輯的多級流水線架構(gòu),并提供了在整個工作溫度范圍內(nèi)無失碼。該THS1207由四個模擬輸入,同時進(jìn)行采樣,這些輸入可以單獨選擇,配置為單端或差分輸入。為ADC提供1.5~3.5V的內(nèi)部參考電壓。外部也可以參考選擇適合ADC精度和溫度漂移要求的應(yīng)用,如圖2所示。
D0-D11是并行數(shù)據(jù)輸入/輸出口;CS1為芯片的片選信號;RD和WD分別為讀寫信號;CONV_CLK為提供給AD芯片的工作時鐘信號;SYNC為數(shù)據(jù)同步信號;REFP和REFM為AD的參考電壓,可以選擇內(nèi)部或外部參考電壓,本設(shè)計中采用了內(nèi)部參考電壓;BVDD和DVDD是數(shù)字正電源,AVDD是模擬正電源;BGND和DGND是數(shù)字地,AGND是模擬地;AINP、AINM、BINP、BINM為模擬信號輸入的四個通道。
FPGA和上位機的數(shù)據(jù)通信需要由以太網(wǎng)模塊來完成。以太網(wǎng)采用高速DM9000A芯片,該芯片是臺灣DAVICOM公司推出的一款高度集成、功能強大、引腳少、性價比高的單片快速以太網(wǎng)控制芯片,非常適用于嵌入式系統(tǒng)設(shè)計。DM9000A主要特性是:集成10/100M物理層接口;內(nèi)部帶有16K字節(jié)SRAM用作接收發(fā)送的FIFO緩存;支持802.3以太網(wǎng)傳輸協(xié)議;體積小,只有48個引腳;功耗非常低,單電源3.3V工作,內(nèi)置3.3V變2.5V電源電路,I/O端口支持3.3~5.0V的容差。FPGA與以太網(wǎng)的接口示意圖如圖3所示。
3 多通道并行處理
由于FPGA具有并行處理的優(yōu)勢,在高速多通道同步采樣中,更能滿足設(shè)計的要求。選擇硬件描述語言為Verilog,它能夠在多種抽象級別對數(shù)字邏輯系統(tǒng)進(jìn)行描述,可以顯式地對并發(fā)和定時進(jìn)行建模。本設(shè)計是四片AD芯片的同步高速采樣,利用FPGA具有的自定義外設(shè)以及自定義指令的功能,對于四片AD芯片實現(xiàn)了同步采樣的控制,并對數(shù)據(jù)并行處理。
3.1 單片ADC的控制
AD芯片THS1207的單通道采樣的最大采樣速度是6MSPS,四通道采樣的最大采樣速度是1.5MSPS,本設(shè)計采用的是四通道同步采樣模式,四通道時序圖如圖4所示。
在轉(zhuǎn)換過程中ADC有一個自由運行的外部輸入時鐘CONV CLK。隨著每一個CONV CLK信號下降沿,四個通道模擬信號轉(zhuǎn)換后的值提供給相應(yīng)的讀出信號中的數(shù)據(jù)總線。READ+是,CS1三者的邏輯集成信號,READ+為低電平時表示讀有效。信號SYNC是低電平時,第一個通道的數(shù)據(jù)到數(shù)據(jù)總線,隨后SYNC拉高,第二、三、四通道的數(shù)據(jù)按順序依次讀取。
3.2 多片AD的同步采樣及并行處理
單個AD的控制完成后,就很容易擴展到對四片AD的控制。在采集多通道數(shù)據(jù)時,需要保持同步采樣,本設(shè)計采用的方法是每一路信號通過各自的信號調(diào)理電路和ADC轉(zhuǎn)換結(jié)束后,ADC保持?jǐn)?shù)據(jù),由FPGA依次讀取。
在硬件布局時,四片AD共用數(shù)據(jù)線,讀寫信號和AD轉(zhuǎn)換時鐘信號。因此FPGA通過寫命令同時啟動這四片AD芯片,十六個通道的模擬信號進(jìn)入AD。每片AD都有一個數(shù)據(jù)同步信號SYNC,當(dāng)判斷得到四片AD中的某個SYNC信號是低電平時,則可認(rèn)為十六道數(shù)字信號已同步到位,通過片選信號的切換依次讀取各個AD芯片的數(shù)據(jù)并暫時儲存在寄存器中。也可以根據(jù)自己需求,開啟和關(guān)閉某些AD,選擇特定的通道數(shù)據(jù)進(jìn)行讀取。同步采樣原理圖如圖5所示。
3.3 自定義指令
自定義指令是FPGA的嵌入式軟核nios ii的一大特色,nios ii有著一個開放式的ALU,用戶可以根據(jù)自己的要求添加自定義指令來實現(xiàn)應(yīng)用需求,大大體現(xiàn)了nios ii軟核的靈活性。自定義指令的功能是運用Verilog語言,由電路模塊來完成的。因此,相比較利用C語言編程來實現(xiàn)功能,自定義指令具有執(zhí)行速度快的顯著特點。Nios ii支持四類自定義指令:組合邏輯指令、多周期用戶自定義指令、擴展用戶自定義指令、內(nèi)部寄存器自定義指令來滿足各種應(yīng)用情況。
本設(shè)計中旋轉(zhuǎn)機械的振動信號雖然在硬件中經(jīng)過了信號調(diào)理,但是由于元器件間參數(shù)的問題,仍舊會存在數(shù)據(jù)的偏差,運用了自定義指令中的多周期用戶自定義指令將數(shù)據(jù)進(jìn)行修正。多周期指令需要數(shù)據(jù)指令和邏輯指令。利用start信號開始執(zhí)行指令,done信號來表示執(zhí)行結(jié)束,可以返回結(jié)果。
同時對于采集得到的數(shù)據(jù)進(jìn)行傅里葉變換、濾波等處理,通過自定義指令也能實現(xiàn),提升了FPGA的信號處理能力。
4 AD時序仿真
仿真在FPGA的開發(fā)中扮演了重要的角色,利用modelsim仿真軟件來對編好的AD程序進(jìn)行時序驗證。AD正式工作前,需要通過向AD內(nèi)部控制寄存器、CR1寫命令啟動AD,然后才能讀取數(shù)據(jù)。啟動AD芯片THS1207的流程圖如圖6所示,啟動AD的仿真結(jié)果如圖7所示。
AD芯片THS1207正常啟動后就可以開始讀取各個通道的數(shù)據(jù),由于本設(shè)計是十六個通道依次采樣,采樣結(jié)束后,需要通過片選控制信號依次讀取各個通道的數(shù)據(jù),仿真結(jié)果如圖8所示。
從仿真結(jié)果驗證得到編寫的AD程序可以完成十六道采樣的設(shè)計要求。
5 實驗結(jié)果
實驗采用AD四通道同步采樣,利用信號發(fā)生器產(chǎn)生正弦波,選擇同步采樣方式對每個正弦波采樣128點,通過以太網(wǎng)傳送到上位機,采樣得到的波形如圖9所示。
可以利用FPGA的自定義指令,根據(jù)需求將得到的數(shù)據(jù)進(jìn)行處理,如圖10,對得到的波形數(shù)據(jù)進(jìn)行偏置為-10和放大倍數(shù)為1.05的修正。
實驗中當(dāng)信號發(fā)生器發(fā)出正弦波的頻率達(dá)到3000Hz時,即采樣頻率達(dá)到384kHz時,F(xiàn)PGA采集波形能力達(dá)到了最大值,相當(dāng)于180000r /min的旋轉(zhuǎn)機械的基頻信號。當(dāng)超過3000Hz時,采樣得到的波形會出現(xiàn)毛刺現(xiàn)象。分析原因,主要是由于nios ii進(jìn)、出中斷服務(wù)程序,以及中斷服務(wù)程序中對采樣數(shù)據(jù)的讀取需要花費一定的時間。
6 結(jié)束語
本設(shè)計利用FPGA并行技術(shù)、自定義模塊化設(shè)計以及nios ii的特色功能即自定制指令,實現(xiàn)了對于旋轉(zhuǎn)機械振動信號的多通道高速同步采樣。顯示了FPGA可編程、設(shè)計靈活、高速的特點,同時也驗證了基于FPGA的多通道高速采樣系統(tǒng)的可行性。
根據(jù)實驗結(jié)果和理論的最大采樣速度還有差距,可以進(jìn)一步改進(jìn)系統(tǒng)設(shè)計,例如采用DMA優(yōu)化程序,提高速率。
評論