白炳良,王靈芝
(閩南師范大學(xué),福建 漳州 363000)
基于PIC及FPGA的簡易信號分析儀設(shè)計(jì)
白炳良,王靈芝
(閩南師范大學(xué),福建 漳州 363000)
高速數(shù)據(jù)采集與信號分析是信號分析儀的關(guān)鍵。設(shè)計(jì)以PIC16F877A單片機(jī)為核心,DA芯片MCP4922及可變增益放大器AD603構(gòu)成程控放大電路;CCP模塊實(shí)現(xiàn)頻率測量;AD轉(zhuǎn)換器AD9288及FPGA實(shí)現(xiàn)高速實(shí)時數(shù)據(jù)采集,并由LCD液晶顯示被測數(shù)據(jù)及波形。由單片機(jī)讀取FPGA中FIFO的緩存數(shù)據(jù),實(shí)現(xiàn)對正弦波、三角波、方波等幅值、電壓真有效值的測量及信號波形判斷,實(shí)驗(yàn)效果實(shí)用良好。
高速數(shù)據(jù)采集;單片機(jī);現(xiàn)場可編程門陣列;FIFO技術(shù);高速模數(shù)轉(zhuǎn)換器;程控放大電路
隨著微電子技術(shù)和計(jì)算機(jī)技術(shù)的不斷發(fā)展,信號的分析變得越來越重要,信號分析儀是一種可以用來觀察、測量、記錄各種瞬時電壓,并能以波形方式顯示其與時間關(guān)系的電子測量儀器。它能說明信號的許多特性參數(shù):頻率、幅度、真有效值等,并能對輸入信號波形自動識別。
高速實(shí)時的數(shù)據(jù)采集經(jīng)模數(shù)轉(zhuǎn)換后,必須要求具有與之匹配的高速緩存器件,傳統(tǒng)的數(shù)據(jù)采集方案已不能滿足高速實(shí)時數(shù)據(jù)采集應(yīng)用,因此需要設(shè)計(jì)高性能的數(shù)據(jù)采集與處理系統(tǒng)[1]。由于單片機(jī)指令周期及數(shù)據(jù)處理速度的問題,無法滿足高速實(shí)時數(shù)據(jù)采集,F(xiàn)PGA具有高的時鐘頻率、運(yùn)行速度快、功耗低、組成靈活等特點(diǎn)[2-3]。因此設(shè)計(jì)了利用單片機(jī)、高速AD、FPGA等構(gòu)成信號分析儀:實(shí)現(xiàn)周期信號頻率范圍為20 Hz~250 KHz、輸入電壓范圍為0.05 Vpp~10 Vpp的情況下,系統(tǒng)能完成對正弦波、三角波、方波三種輸入信號相關(guān)參數(shù)的測量并顯示波形。
圖1 系統(tǒng)框圖
系統(tǒng)框圖如圖1所示。采用PIC16F877A單片機(jī)作為系統(tǒng)控制核心??勺兯p器由繼電器、電阻網(wǎng)絡(luò)及跟隨器實(shí)現(xiàn)11或101信號變比;由12位DA轉(zhuǎn)換器MCP4922、AD603組成的程控放大器;放大及整形電路將待測信號轉(zhuǎn)換為矩形波,由單片機(jī)的CCP模塊實(shí)現(xiàn)頻率測量;程控放大器的輸出信號與一直流分量由加法器實(shí)現(xiàn)疊加,使待分析的信號均處于y軸正半軸;由高速并行AD芯片AD9288、可編程邏輯器件FPGA中的FIFO模塊實(shí)現(xiàn)對輸入信號至少一個周期數(shù)據(jù)的存儲,單片機(jī)根據(jù)需要實(shí)時讀取FIFO中的數(shù)據(jù),這樣解決了慢速CPU與快速數(shù)據(jù)的讀寫問題;單片機(jī)對讀取的數(shù)據(jù)進(jìn)行處理,實(shí)現(xiàn)在LCD液晶屏上顯示輸入信號波形、峰峰值、頻率、真有效值等。
2.1 程控放大器
AD603是一個壓控型的可變增益放大器,VINP為信號輸入端,它的增益的調(diào)整與其1腳和2腳的電壓差VG有關(guān),當(dāng)-0.5 V<VG<0.5 V時,增益(dB)與其電壓差VG(V)之間滿足線性關(guān)系: Gain(dB)=40 VG+G0,當(dāng)5腳和7腳斷開時,G0=30,所以,Gain(dB)=40 VG+30,即增益的范圍為10~50dB[4]。圖中MCP4922是個雙通道12位的數(shù)模轉(zhuǎn)換器,5 V電壓由5K電位器調(diào)節(jié)A通道參考電壓VREFA,MCP4922采用SPI總線方式與PIC通信,由VOUTA端可輸出數(shù)控模擬電壓U1。從而實(shí)現(xiàn)程控放大并由VOUT端輸出U2,見圖2。
圖2 程控放大器
由IC1A與IC1B組成的加法器是使待分析的信號均處于y軸正半軸,其輸出信號U3送AD轉(zhuǎn)換。
2.2 并行AD轉(zhuǎn)換器AD9288及FPGA模塊
由于待分析輸入信號頻率為20Hz~250KHz,對波形離散化采樣及存儲時,采樣速度必須足夠快才能采集到完整正確的信息,所以系統(tǒng)采用高速并行AD芯片AD9288對輸入信號進(jìn)行實(shí)時采樣。
如圖3所示,AD9288是一款100Msps采樣速率的雙通道8位高速模數(shù)轉(zhuǎn)換器,內(nèi)部由兩個跟蹤/保持放大器,兩個A/D變換器,一個邏輯控制器,兩個時鐘模塊,一個內(nèi)部參考電壓模塊和兩個數(shù)據(jù)輸出模塊組成。當(dāng)S1、S2為低電平時,A、B通道處于STANDY,則A/D變換器不進(jìn)行采樣量化編碼,當(dāng)S1為高電平,S2為低電平時,AD9288在編碼時鐘的控制下進(jìn)行工作。A通道的數(shù)據(jù)輸出送cycloneⅡ系列芯片EP2C8Q208C8N中FIFO的數(shù)據(jù)線實(shí)現(xiàn)信息存儲[5]。
FIFO為先進(jìn)先出的存儲器,速度高,存儲方便。FIFO中的數(shù)據(jù)是隊(duì)列結(jié)構(gòu),會出現(xiàn)溢出現(xiàn)象。當(dāng)向一個滿的FIFO中寫入數(shù)據(jù)時,就會把最新進(jìn)入的數(shù)據(jù)排擠出去,存入存儲器中。在CPU設(shè)計(jì)、高速數(shù)據(jù)采樣存儲、顯示緩存、高速通信緩存等方面有重要的應(yīng)用[3]。系統(tǒng)根據(jù)不同頻率的信號,選擇不同的采樣率將數(shù)據(jù)存儲于FIFO;存滿后等待PIC的讀寫信號和時鐘信號,按照FIFO的先進(jìn)先出的順序讀取FIFO存儲的數(shù)據(jù)。
FIFO數(shù)據(jù)線經(jīng)220Ω電阻后接到單片機(jī)RB0~RB7,經(jīng)過讀寫信號R/W和時鐘信號CLK與單片機(jī)進(jìn)行相互通信。D0A~D7A AD9288的8位并行輸出口,將其采樣到的數(shù)據(jù)送入FIFO存儲器中。同時,F(xiàn)IFO模塊的輸出時鐘ADCLK控制AD采樣率,使其保證采樣到的數(shù)據(jù)至少有一個周期的信號波形。
圖3 并行AD與FPGA及單片機(jī)接口
圖4為系統(tǒng)主流程圖。程序分為兩個分支,一個是自動搜索合適的倍率,一個是信號參數(shù)計(jì)算和顯示(參數(shù)顯示與波形顯示由功能鍵控制),兩個分支自動切換。
圖4 系統(tǒng)主流程圖
自動搜索合適的倍率是通過判斷采集的數(shù)據(jù)中最大值是否在所要求的范圍內(nèi),如果太大,可通過降低MCP4922的輸出電壓,降低AD603的增益,反之,則增大其增益,然后再重新測量頻率和采樣信號數(shù)據(jù),直到滿足條件。
3.1 單片機(jī)與FIFO協(xié)議
單片機(jī)與FIFO數(shù)據(jù)存儲器,通過一個讀寫位和八個并行數(shù)據(jù)位分時復(fù)用實(shí)現(xiàn)通信。當(dāng)單片機(jī)需要向FIFO寫數(shù)據(jù)時,是根據(jù)CCP模塊測得的頻率,分別由這八個數(shù)據(jù)位送分頻系數(shù)、使能分頻器、使能FIFO三組控制信號。當(dāng)從FIFO讀取數(shù)據(jù)時,單片機(jī)也是從這八個數(shù)據(jù)位讀取。
3.2 真有效值測量方法
交流信號的有效值就是方均值,對于周期為T的信號u(t),其有效值為
將信號進(jìn)行離散化(T=n×ΔT),可以得到:
由上式可計(jì)算出真有效值[6-7]。
3.3 波形判斷
由波峰因數(shù)判斷輸入信號的波形。波峰因數(shù)=峰峰值/有效值,三角波的波峰因數(shù)為,正弦波的波峰因數(shù)為,方波的波峰因數(shù)為1。因此,根據(jù)AD采樣的數(shù)據(jù)計(jì)算出信號峰峰值和有效值,從而判斷出輸入信號的波形[8-9]。
表1-3為不同條件下各輸入信號的測試情況,效果理想。
表1 峰峰值和有效值測量記錄表
表2 波形識別測試表
表3 信號波形測試表
系統(tǒng)可正確地測量輸入信號的各項(xiàng)參數(shù)和顯示波形,實(shí)驗(yàn)驗(yàn)證了該方案的可行性,實(shí)現(xiàn)高速AD數(shù)據(jù)采集、FIFO及PIC單片機(jī)三者的有機(jī)結(jié)合,該系統(tǒng)具有硬件設(shè)計(jì)簡潔,處理速度快等優(yōu)點(diǎn),可為高速數(shù)據(jù)采樣存儲等提供借鑒,具有較強(qiáng)工程實(shí)踐意義。
[1] 韓國榮,吳長瑞,張新勝.FPGA在高速實(shí)時信號采集系統(tǒng)中的應(yīng)用[J].測控技術(shù),2012,31(5): 60-67.
[2] 邵磊,倪明.基于FPGA的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2011,37(19):221-223.
[3] 張秋云,王黎,高曉蓉,等.基于FPGA的高速實(shí)時數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012,35(7): 70-76.
[4] 鐘艷娥,黃順,趙少武.放大器增益的智能控制[J].中山大學(xué)研究生學(xué)刊:自然科學(xué)、醫(yī)學(xué)版,2012,33(1):106-112.
[5] 繆軍同,魯新平.模數(shù)轉(zhuǎn)換器AD9288及其應(yīng)用[J].山西電子技術(shù),2006,(5):43-49.
[6] 邱玉春.一種采用單片機(jī)實(shí)現(xiàn)的基于離散積分的真有效值測量方法[J].工業(yè)控制計(jì)算機(jī),2012,25(8):134-135.
[7] 馮喬春.真有效值的測量及應(yīng)用[J].云南電力技術(shù),2008,36(3):14-15.
[8] 楊幼桐.基于單片機(jī)與傳感器的金屬載脹系數(shù)測定[J].大學(xué)物理實(shí)驗(yàn),2013(4):40-43.
[9] 白炳良,周錦榮.基于單片機(jī)的開關(guān)電源并聯(lián)供電系統(tǒng)的設(shè)計(jì)[J].大學(xué)物理實(shí)驗(yàn),2013(6):58-60.
Designed of the Simple Signal Analyzer Based on PIC and FPGA
BAI Bing-liang,WANG Ling-zhi
(Minnan Normal University,F(xiàn)ujian Zhangzhou 363000)
High-speed data acquisition and signal analysis is the key for signal analyzers.With PIC16F877A microprocessor as the core,DAC MCP4922 and variable gain amplifier AD603 as remote control amplifier,CCP module for frequency measuring,ADC AD9288 and FPGA chip to realize high-speed real-time data acquisition,and LCD displayer to display the measured data and waveforms.The practical result is fine for the signal analyzer.
high speed data acquisition;MCU;FPGA;FIFO;high-speed ADC;remote control amplifier
TN919
A
10.14139/j.cnki.cn22-1228.2015.01.005
1007-2934(2015)01-0014-05
2014-09-15
福建省教育廳科技項(xiàng)目(JK2013028)