楊 曉
(山西工商學院,山西 太原 030006)
隨著科學技術(shù)的不斷進步,測量技術(shù)也得以日益完善,同時對檢測技術(shù)的要求也在不斷提高。速度快慢和精度的大小是測量技術(shù)的兩個核心模塊,鎖相放大技術(shù)在這兩個方面都能夠很好的實現(xiàn),因此成為了微弱信號檢測領(lǐng)域的一種有效手段并得到廣泛的應(yīng)用[1]。
本文提出了一種數(shù)字鎖相電路的設(shè)計,利用信號的相關(guān)性實現(xiàn)得到待測信號的幅值和相位信息的目的。電路主要包括程控放大模塊、AD采集模塊、互相關(guān)運算模塊、串口傳輸和LabVIEW模塊。各模塊經(jīng)測試分析具有較高的可靠性,能夠達到運算要求。
鎖相放大技術(shù)是利用被測信號和參考信號的互相關(guān)原理對信號進行窄帶化操作,去除無用的噪聲信號,提取有效信息的一種檢測手段。為了獲得輸入信號的幅值和相位值,這里采用數(shù)字乘法累加器的方式來實現(xiàn)[2,3]?;ハ嚓P(guān)運算原理如圖1。
圖1 互相關(guān)運算原理圖
設(shè)計首先將待測信號通過AD轉(zhuǎn)換電路進行模數(shù)轉(zhuǎn)換,然后將信號傳輸?shù)紽PGA的內(nèi)部進行互相關(guān)運算。設(shè)待測信號為s(t),AD采樣電路的頻率為fN,對待測信號進行整周期采樣,設(shè)每個周期的采樣點數(shù)為N,那么在P個周期時可得采樣的點數(shù)共有M=N·P個[4]。其表達式如下:
(1)
其中,θ為待測信號的初相位,A為幅值量。
產(chǎn)生的參考信號和待測信號s(t)是同頻的,設(shè)正弦參考信號為rs(s):
(2)
其中,B為參考信號的幅值。對s(k)和rs(s)進行互相關(guān)運算,并進行整數(shù)個周期的采樣,最后能夠得到兩個信號的運算結(jié)果函數(shù)為:
(3)
通過上面的結(jié)果值可以看出,待測信號的初始相位θ的未知性能夠?qū)Y(jié)果造成影響,因此需要消除這一未知量,設(shè)計采用兩路待測信號分別進行互相關(guān)的方式[5]。設(shè)余弦參考信號為rc(k):
(4)
對s(k)和rc(s)進行互相關(guān)運算:
(5)
進行整數(shù)個周期的采樣,最后能夠得到兩個信號的運算結(jié)果函數(shù)為:
(6)
由式(6)和式(3)可得:
(7)
(8)
由式(7)、式(8)可得,當參考信號的幅值B為1時,能夠直接得到待測信號的幅值A(chǔ)和待測信號與參考信號之間的相位差θ。
首先通過頻率累加技術(shù)DDS在FPGA內(nèi)部產(chǎn)生一個方波信號,其頻率和占空比均是可調(diào)的,并以一個光耦合隔離電路的輸出來對高壓驅(qū)動電路進行驅(qū)動。外部待處理信號首先經(jīng)過程控放大電路和電壓跟隨電路以后,再通過AD采集端口進行數(shù)據(jù)的采集并傳輸?shù)紽PGA內(nèi)部,在FPGA中將該路信號與FPGA內(nèi)部產(chǎn)生的正弦參考信號、余弦參考信號、直流參考信號分別進行乘累加運算,然后將運算結(jié)果通過串口傳輸?shù)缴衔粰CLabVIEW中完成數(shù)據(jù)的拼接工作并將數(shù)據(jù)保存。
圖2 硬件電路整體設(shè)計
電源電路中既有數(shù)字電源又包括模擬電源,設(shè)計采用AMS1117_3.3、AMS1117_1.2、AMS1117_2.5分別為串口電路以及FPGA內(nèi)部電路進行供電,采用供電電源為模擬部分產(chǎn)生+5V的電壓供電。
為了提高信號的抗干擾能力以及電路與地之間的串擾,在電路中設(shè)計了光耦合隔離電路,芯片采用高速光耦6N135,使電路板能夠與高壓驅(qū)動電路板隔離開。
由于待處理信號較為微弱,在進行AD轉(zhuǎn)換前需進行放大處理,電路采用具有較高的輸入阻抗AD8250芯片實現(xiàn)對待測信號的程控放大,電路中采用的是三個AD8250級聯(lián)的方式,選擇了該芯片的簡單增益放大模式,并通過FPGA對放大倍數(shù)進行調(diào)整,該設(shè)計能夠?qū)崿F(xiàn)1~1 000倍之間的放大倍數(shù)調(diào)整。在放大電路與AD采集電路之間,設(shè)計增加電壓跟隨電路來保證信號的完整性,選擇OP27放大器能夠?qū)崿F(xiàn)預(yù)期要求。
AD轉(zhuǎn)換電路實現(xiàn)模擬信號到數(shù)字信號的轉(zhuǎn)換,在設(shè)計中根據(jù)完成鎖相放大運算的精度要求,每個信號周期至少需采集64個點,因此AD的采樣率需為3.125 MHz左右。選擇ADI公司的AD9220芯片能夠滿足設(shè)計需要,該芯片的最高采樣率為10 MHz,轉(zhuǎn)換精度為12位,信號可以選擇差分或單端方式輸入。
實現(xiàn)信號解調(diào)功能的FPGA芯片采用Altera公司生產(chǎn)的Cyclonc系列,其型號是EP3C16Q240C8N。時鐘電路采用的是50MHz的CETECJ有源晶振,它具有信號穩(wěn)定以及信號質(zhì)量好的優(yōu)勢。采用JTAG和AS兩種方式進行下載配置,JTAG模式主要用于對程序和芯片的調(diào)試,AS模式將程序下載到FPGA的外部存儲器EPSC16。
該部分主要包括基于FPGA 的DDS 信號發(fā)生器的設(shè)計、A/D 采集控制模塊的設(shè)計、數(shù)字鎖相乘累加程序的設(shè)計、基于NIOSⅡ與上位機 LabVIEW 串口通信程序的設(shè)計以及 LabVIEW 程序的設(shè)計。
DDS技術(shù)的主要作用是通過改變波形存儲器中的數(shù)據(jù),產(chǎn)生任意頻率和任意精度的波形信號。首先通過一個時鐘fclk來控制累加寄存器中的數(shù)值,使之與頻率控制字K不斷累加,再經(jīng)過數(shù)模轉(zhuǎn)換和低通濾波處理得到所求得信號頻率fout,計算公式如下:
fout=fclkK/2N.
(9)
其中,N為累加寄存器的位數(shù)。
該設(shè)計中通過PLL鎖相環(huán)倍頻產(chǎn)生200 MHz的時鐘作為DDS模塊時鐘,累加寄存器為2位,頻率控制字為1位。
正余弦參考信號的產(chǎn)生通過調(diào)用FPGA自帶的ROM宏功能模塊實現(xiàn),將波形數(shù)據(jù)通過MATLAB離散化產(chǎn)生64個點以后保存為.mif文件,ROM通過按地址尋址的方式將存儲的波形在時鐘上升沿時輸出。
設(shè)計采用AD9220作為AD采集模塊的芯片,只需要為它提供一個正確的時鐘,該芯片就能完成所需工作,即每個周期完成64個點的采樣。設(shè)計采用同步電路的方式來避免信號采集時毛刺造成的干擾,即需要保證毛刺不出現(xiàn)在沿口。由于毛刺出現(xiàn)的持續(xù)時間短,僅為幾納秒,因此出現(xiàn)在沿口的概率是很小的,該方式基本能夠避免毛刺對采集數(shù)據(jù)的影響。
鎖相功能的實現(xiàn)主要依賴于該部分的乘累加模塊。設(shè)計通過將采集信號與FPGA內(nèi)部產(chǎn)生的同頻率正余弦參考信號互相關(guān)運算完成對信號的解調(diào)。在 FPGA 中利用本身的宏功能模塊ALTMULT_ACCUM(Multiply-Accumulate)來實現(xiàn)乘累加功能。
輸入端口A為AD采集得到的12位無符號待測信號,端口B為10位有符號的參考正弦或者余弦信號。在accum_sload端為0時,該模塊進行乘累加運算,變?yōu)?時將運算結(jié)果輸出。設(shè)計通過計數(shù)器對累加的時間進行控制。運算完成后取出結(jié)果的高32位為有效位通過串口傳輸?shù)缴衔粰C并將結(jié)果清零。
本設(shè)計中 FPGA 通過串口將乘累加結(jié)果的直流項、正弦互相關(guān)和余弦互相關(guān)每路32位通過串口RS232傳輸?shù)絃abVIEW中,然后在LabVIEW中進行數(shù)據(jù)的拼接。
首先采用VISA庫進行串口的配置,將串口的波特率設(shè)為38 400 bit/s,數(shù)據(jù)位為8位,停止位為1,VISA資源名稱為通信COM口的選擇。然后進入主程序,檢測幀頭幀尾并將有效的字節(jié)數(shù)據(jù)讀取出來。主程序包括在一個while循環(huán)中,并利用VISA讀取緩存數(shù)據(jù)。下一步再對有效的字節(jié)數(shù)據(jù)進行重新拼接,這里利用數(shù)組將字節(jié)取出并拆分再利用整數(shù)拼接的方式,將數(shù)據(jù)從高位到地位拼接起來。最后將處理完成的數(shù)據(jù)保存起來通過MATLAB進行運算處理。
實驗驗證部分主要包括程控放大模塊放大倍數(shù)的測試、A/D 采集模塊采集功能的測試和 FPGA 內(nèi)部乘累加模塊的測試。
1) DDS技術(shù)測試
DDS信號發(fā)生器是鎖相放大運算的關(guān)鍵模塊之一,設(shè)計通過數(shù)字信號發(fā)生器和示波器對FPGA產(chǎn)生的方波信號的精度進行。首先通過QuartusⅡ 編寫測試程序使DDS產(chǎn)生50KHz的方波信號并下載到電路板,然后將其輸入到示波器的通道一,同時使用信號發(fā)生器產(chǎn)生同樣的信號并將其輸入至示波器的通道三。將兩個通道的信號調(diào)整至相對靜止后,其顯示如圖3。
圖3 DDS產(chǎn)生方波信號
由圖可見,兩信號頻率一致,相差值僅為0.518 Hz,誤差值較小,滿足要求。
2) 程控放大的測試
利用數(shù)字信號發(fā)生器產(chǎn)生一個正弦信號作為程控放大的輸入,其峰峰值設(shè)為200 mV,偏置為100 mV,頻率是100 kHz。信號放大后將結(jié)果輸出到示波器,放大倍數(shù)設(shè)為5倍,其結(jié)果如圖4所示。
由圖4可見,經(jīng)放大后的輸出結(jié)果分別為1.01 V。
3) 將AD9220的采樣時鐘頻率設(shè)定為3.125 MHz,然后通過數(shù)字信號發(fā)生器產(chǎn)生頻率大小為50 kHz,峰峰值為3 V的正弦信號作為輸入,AD的采樣結(jié)果通過邏輯分析儀進行觀測,其結(jié)果如圖5。
其中采樣時鐘為ad_clk,ad_data為直接輸入進來的信號,ad_data_r為經(jīng)過同步電路處理后的信號,通過圖5能夠看出A/D電路可以準確采集波形數(shù)據(jù)。
4)乘累加模塊的測試
分別對參考信號和乘累加的IP核進行測試。首先是生成ROM的宏功能模塊,建立.mif文件并存放64個10位的數(shù)據(jù),該數(shù)據(jù)為兩個周期的余弦波形,然后利用Verilog語言編寫程序,為ROM提供6位地址和3.125 MHz的時鐘。定制乘累加IP核ALTMULT_ACCUM,將兩個累加器a、b作為兩個輸入端,其中a每次累加1,b每次累加2;最后分別在QuartusⅡ中編寫測試程序,進而通過Modelsim-Altera6.6d軟件進行功能仿真。結(jié)果如圖6所示。
圖4 程控放大結(jié)果
圖5 AD采集功能測試
圖6 乘累加器功能測試
通過以上各模塊的測試分析可知,鎖相放大電路的程控放大模塊、A/D采集模塊和FPGA內(nèi)部乘累加模塊均能夠正常工作,且結(jié)果具有較高的準確性,各模塊互相配合實現(xiàn)鎖相放大功能。
提出一種正交矢量鎖相放大電路的設(shè)計,以FPGA作為數(shù)據(jù)處理模塊,實現(xiàn)待測信號處理并求得其的相位和幅值信息,并完成AD采集、程控放大、數(shù)據(jù)處理、串口傳輸?shù)饶K的硬件電路的設(shè)計。該電路經(jīng)實驗驗證能夠正確有效地處理待測信號實現(xiàn)鎖相放大功能,獲得準確數(shù)據(jù)實現(xiàn)科學計算。
[1] 許文佳.基于FPGA的數(shù)字鎖相放大器的設(shè)計與研究[D].長春:吉林大學,2012.
[2] 趙俊杰,郝育聞,郭璐璐,等.數(shù)字鎖相放大器的實現(xiàn)研究[J].現(xiàn)代電子技術(shù),2012,35(3):191-195.
[3] 呂潤發(fā).基于FPGA數(shù)字鎖相實現(xiàn)的彈光調(diào)制測旋光技術(shù)研究[D].太原:中北大學,2017.
[4] 陳光威.彈光調(diào)制雙閉環(huán)穩(wěn)定與控制技術(shù)的研究[D].太原:中北大學,2016.
[5] 李剛,張麗君,林凌,等.一種新型數(shù)字鎖相放大器的設(shè)計及其優(yōu)化算法[J].天津大學學報(自然科學與工程技術(shù)版),2008,41(4):429-432.