黃 俊,余水寶,黃相平
(浙江師范大學(xué) 數(shù)理與信息工程學(xué)院,浙江 金華321004)
移相信號在電子、通信等科學(xué)研究領(lǐng)域有著廣泛的應(yīng)用,兩個同頻的移相信號又是電子行業(yè)繼電保護領(lǐng)域中模擬、分析事故的一個重要手段,因此移相信號發(fā)生器是實驗室和科研單位經(jīng)常使用到的一個重要儀器設(shè)備。近年來,一種新的頻率合成技術(shù)——直接數(shù)字頻率合成(DDS)技術(shù)得到飛速發(fā)展。DDS技術(shù)是一種從相位概念出發(fā)直接合成所需波形的頻率合成技術(shù)。它與傳統(tǒng)的頻率合成技術(shù)相比,具有頻率分辨率高、頻率轉(zhuǎn)換速度快、輸出波形靈活、相位變化連續(xù)等優(yōu)點。隨著微電子技術(shù)的發(fā)展,現(xiàn)場可編程門陣列(FPGA)器件也得到了飛速發(fā)展。由于該器件具有集成度高、可靠性強和現(xiàn)場可編程等特點,因此在數(shù)字信號處理中得到了廣泛的應(yīng)用,越來越受到硬件電路設(shè)計工程師的青睞。
本文介紹了一種基于FPGA的數(shù)字移相信號發(fā)生器的設(shè)計方案,頻率范圍1 Hz~10 MHz,相位差范圍0°~359.5°,頻率分辨率為 1 Hz,相位差分辨率為 0.5°,可輸出方波、三角波和正弦波。該系統(tǒng)具有輸出波形靈活、穩(wěn)定性好等優(yōu)點。
DDS主要由相位累加器、波形查找表ROM、D/A轉(zhuǎn)化器和低通濾波器等部件組成,其原理框圖如圖1所示。圖中,相位累加器在系統(tǒng)時鐘的控制下以步長K作線性累加,其輸出端可對波形查找表ROM尋址,波形查找表輸出相應(yīng)的波形數(shù)據(jù),然后波形數(shù)據(jù)依次經(jīng)過數(shù)模轉(zhuǎn)換器和低通濾波器,最后輸出平滑連續(xù)的波形。
設(shè)相位累加器的字長為N,頻率控制字為K,系統(tǒng)的時鐘頻率為fc,則DDS系統(tǒng)輸出波形的頻率fout為:
頻率分辨率Vf為:
當(dāng)系統(tǒng)時鐘頻率fc固定不變時,DDS的頻率分辨率Vf完全由相位累加器的字長N決定。本系統(tǒng)中,fc=160 MHz,N=32,則頻率分辨率 Vf≈0.372 5 Hz,因此 DDS的頻率分辨率極高。
從原理框圖可以看出DDS是一個開環(huán)系統(tǒng),沒有任何反饋環(huán)節(jié),這種結(jié)構(gòu)大大縮短了DDS的頻率轉(zhuǎn)換時間。
本系統(tǒng)主要包括人機交互模塊、單片機模塊、基于FPGA的DDS模塊、高速D/A模塊和低通濾波器模塊,系統(tǒng)整體框圖如圖2所示。其中人機交互模塊包括液晶12864顯示和鍵盤輸入兩部分,分別用于顯示波形參數(shù)和實現(xiàn)用戶對波形的調(diào)節(jié)功能。單片機模塊一方面用于控制液晶顯示和鍵盤輸入,另一方面負(fù)責(zé)與FPGA進行通信。限于篇幅,本文主要介紹基于FPGA的DDS模塊和高速D/A轉(zhuǎn)換模塊。
圖2 系統(tǒng)整體框圖
基于FPGA的DDS模塊是本系統(tǒng)設(shè)計的核心。首先值得說明的是,實現(xiàn)兩路移相信號的直接數(shù)字頻率合成有兩種方案可供選擇。方案一:使用同一相位累加器、同一起始地址,當(dāng)移相角度發(fā)生變化時,發(fā)送不同波形數(shù)據(jù)到兩個存儲器,使輸出信號產(chǎn)生相位差。方案二:在儲存器中存放相同的數(shù)據(jù),根據(jù)移相角度改變兩個相位累加器掃描的起始地址。前者利用FPGA設(shè)計硬件電路簡單,但偏重于軟件,算法技巧性較強;后者對相位累加器的設(shè)計要求較高,考慮到FPGA內(nèi)部的豐富資源,本系統(tǒng)采用方案二[1-2]。
本系統(tǒng)采用Cyclone II系列的FPGA芯片EP2C8Q208C8為主控芯片,其內(nèi)部最高處理速度達(dá)幾百兆,內(nèi)含兩個鎖相環(huán)倍頻器(PLL)和 4 MB的 ROM,內(nèi)部資源相當(dāng)豐富。利用FPGA芯片設(shè)計的頂層文件Symbol File圖如圖3所示。其中pll為鎖相環(huán)倍頻模塊,tongxun為FPGA與單片機通信接口模塊,add為相位累加器模塊,lpm_rom0、lpm_rom1為存儲器ROM模塊。
本系統(tǒng)輸出信號的最高頻率擬達(dá)到10 MHz,如果在一個周期內(nèi)至少采樣16個點,則掃描時鐘頻率至少要達(dá)到160 MHz。由于系統(tǒng)的有源晶振頻率為 50 MHz,因此本系統(tǒng)充分利用FPGA內(nèi)部的鎖相環(huán),輸出160 MHz的高頻信號作為系統(tǒng)時鐘[3-4]。
2.1.1 與單片機通信接口模塊
為了將頻率控制字與相位控制字輸入給FPGA,本系統(tǒng)利用單片機對其進行送數(shù)。首先考慮到單片機與FPGA電平匹配的問題,本系統(tǒng)選用STC12LE5A60S2單片機,其工作電壓范圍為2.2 V~3.6 V。
為了使FPGA與單片機正常通信,本系統(tǒng)仿照AD9851的串口通信模式,其時序如圖4所示。在寫時鐘W_CLK的控制下,40 bit控制字依次從低位到高位被讀入,最后FQ_UD端產(chǎn)生一個上升沿,表示將40 bit控制字加載到AD9851內(nèi)部寄存器。
本系統(tǒng)設(shè)計了兩組串口通信接口,一組用于接收30 bit的頻率控制字,另一組用于接收12 bit的相移控制字。通過設(shè)計硬件描述語言,創(chuàng)建Symbol File。
2.1.2 相位累加器模塊
通過設(shè)計硬件描述語言,創(chuàng)建相位累加器Symbol File。該累加器的字長為32,當(dāng)復(fù)位信號reset為1時,在時鐘pllclk控制下每來一個脈沖累加器以步長K(kong_f)累加,高 12位(31 downto 20)累加結(jié)果輸出作為ROM地址,當(dāng)K發(fā)生變化時輸出頻率也相應(yīng)改變。累加器的初值為K1(kong_p),當(dāng)K1改變時累加器輸出結(jié)果也相應(yīng)改變,從而使兩個存儲器的地址不同而形成相位差。
本系統(tǒng)考慮到輸出信號的光滑度和FPGA的資源,設(shè)計4 096個點為一個周期,因此設(shè)計了兩個12 bit(4 096 B)的 ROM。本系統(tǒng)創(chuàng)建的存儲器 ROM Symbol File,clock為基準(zhǔn)時鐘,address[11..0]為地址輸入端,q[11..0]為波形數(shù)據(jù)輸出端。
由于本系統(tǒng)輸出兩路頻率相同而相位不同的移相信號,因此需設(shè)計兩組高速D/A轉(zhuǎn)換電路。該電路采用轉(zhuǎn)換速率為 165 MS/s,分辨率為12 bit的高速 D/A轉(zhuǎn)換芯片,其具有轉(zhuǎn)換速度快、控制方便、輸出波形誤差小等優(yōu)點??紤]到DAC902為差分電流輸出型,差分電流最大值是20 mA,輸出端接 100 Ω電阻,所以通過電壓反饋型高速運算放大器OPA690得到差分電壓。
系統(tǒng)上電后通過Gwinstek GDS-2102數(shù)字存儲示波器測試并記錄實驗結(jié)果。
圖5所示為信號源輸出頻率為1 kHz,兩路信號相移分別為 45°、90°、180°、270°時, 使用示波器觀察并用U盤拷貝的輸出波形。
圖6所示為信號源輸出相移 180°、頻率為 1 MHz,頻率相移分別為 10 Hz、10 kHz、5 MHz、10 MHz 時, 使用示波器觀察并用U盤拷貝的輸出波形。
表1為同相移下根據(jù)不同頻率值測得的實際頻率值。
本系統(tǒng)通過選用Cyclone II系列的FPGA芯片EP2C8Q208C8和STC12LE5A60S2單片機實現(xiàn)了數(shù)字移相信號發(fā)生器的設(shè)計??僧a(chǎn)生頻率范圍為1 Hz~10 MHz,且頻率、相位均可調(diào)的方波、三角波和正弦波。由于本系統(tǒng)采用DDS算法,因此能在頻率、相位上實現(xiàn)高精度的控制。實驗結(jié)果表明,本系統(tǒng)具有頻率分辨率高、頻率轉(zhuǎn)換速度快、輸出信號噪聲低和系統(tǒng)穩(wěn)定性好等優(yōu)點。
表1 頻率測試數(shù)據(jù)(相移 180°,空載)
[1]李輝,朱林生.基于FPGA的三相函數(shù)信號發(fā)生器設(shè)計[J].電子科技,2010,23(7):87-91.
[2]舒俊,陳希,余水寶.零誤差低頻程控三相相移信號發(fā)生器[J].儀器儀表學(xué)報,2009,30(6):796-797.
[3]周紹軍.基于DDS技術(shù)的高精度雙路可移相波形信號發(fā)生器設(shè)計[J].西南民族大學(xué)學(xué)報,2010,36(5):822-826.
[4]趙茂泰.電子測量儀器設(shè)計[M].武漢:華中科技大學(xué)出版社,2010:148-153.