姚益武,袁秋晨,王筱萌,張琬菁,江 丹
(北京工業(yè)大學(xué) 電子信息與控制工程學(xué)院,北京100124)
直接數(shù)字頻率合成技術(shù)(DDS)具有頻率分辨率高,切換速度快,可輸出相位連續(xù)、任意的波形信號(hào),能夠?qū)崿F(xiàn)全數(shù)字自動(dòng)化控制等優(yōu)點(diǎn),使其成為雷達(dá)、通信等信號(hào)源的首選。本文提出了一種基于DDS的正弦信號(hào)發(fā)生器,該發(fā)生器利用FPGA技術(shù)設(shè)計(jì)實(shí)現(xiàn)[1],操作簡(jiǎn)單,可實(shí)現(xiàn)最高頻率為10 MHz的正弦信號(hào)輸出,具有廣泛的應(yīng)用前景。
正弦信號(hào)發(fā)生器由FPGA模塊、穩(wěn)壓電源、鍵盤顯示單元、后向通路(高速D/A、低通濾波器、功放電路)幾部分組成。系統(tǒng)結(jié)構(gòu)如圖1所示。
隨著VLSI技術(shù)的進(jìn)步,目前FPGA的性能和硬件資源已經(jīng)可以構(gòu)成一個(gè)系統(tǒng)。設(shè)計(jì)中FPGA采用Cyclone的EP1C3T100C8器件,該芯片擁有2910LEs,約7 KB RAM,1個(gè)PLL資源。在FPGA外接晶振頻率為32 MHz時(shí),通過PLL可倍頻得到80 MHz全局時(shí)鐘,并且豐富的邏輯模塊與存儲(chǔ)資源為DDS算法的設(shè)計(jì)提供了良好的硬件基礎(chǔ)。由于FPGA門級(jí)延時(shí)僅數(shù)納秒,因此有利于信號(hào)的快速建立及轉(zhuǎn)換。
圖1 系統(tǒng)整體結(jié)構(gòu)
高速 D/A采用 TI的 8 bit、165 MS/s電流輸出型數(shù)模轉(zhuǎn)換器件DAC908,能滿足FPGA輸出數(shù)字信號(hào)更新速率的要求。DAC908輸出電流與數(shù)字控制字間的關(guān)系見表1,DAC電路如圖2所示。
表1 輸出電流與代碼關(guān)系
DAC908最大輸出電流為20 mA,可在25 Ω負(fù)載電阻上產(chǎn)生0.5 V壓降。同時(shí)DAC908的負(fù)載電阻作為基于高速運(yùn)放OPA680的差分放大器[2]的并聯(lián)電阻,放大器增益為2倍,因此輸出信號(hào)幅度范圍為±1 V。信號(hào)再經(jīng)二階巴特沃茲特性的LC低通濾波器平滑,由末級(jí)功放電路(采用 OPA656和 BUF634構(gòu)成)輸出,驅(qū)動(dòng) 50 Ω負(fù)載。
系統(tǒng)軟件設(shè)計(jì)采用模塊化思想,可移植性、可讀性強(qiáng)。算法設(shè)計(jì)基于FPGA平臺(tái),包括鍵盤顯示模塊、時(shí)鐘發(fā)生模塊、DDS信號(hào)發(fā)生模塊(PLL、DDS算法模塊、ROM函數(shù)表)及DAC控制模塊。FPGA系統(tǒng)設(shè)計(jì)如圖3所示。
圖3 FPGA系統(tǒng)設(shè)計(jì)
傳統(tǒng)的DDS算法最先由 Tierney、Rader和Gold提出,如圖4所示。它利用循環(huán)溢出的L位相位累加器產(chǎn)生正弦函數(shù)的相位變量。相位累加器每溢出一次,就代表正弦波形的一個(gè)周期。相位累加器輸入的頻率控制字Fin控制生成的正弦波形的頻率,累加器的瞬時(shí)相位輸出作為ROM表的地址。ROM表是存有正弦采樣值的存儲(chǔ)器。
圖4 傳統(tǒng)的DDS結(jié)構(gòu)
基于傳統(tǒng) DDS算法,F(xiàn)in=80 MHz時(shí),為獲得 10 MHz高頻信號(hào),則相位累加器字長(zhǎng)為3,ROM表至少存有8個(gè)采樣點(diǎn);為獲得10 Hz低頻信號(hào),相位累加器字長(zhǎng)應(yīng)滿足 0.8×107=2L,ROM表的容量應(yīng)為7 812 KB,遠(yuǎn)遠(yuǎn)超過了現(xiàn)有FPGA的存儲(chǔ)資源,因此有必要改進(jìn)傳統(tǒng)算法。
改進(jìn)后的DDS結(jié)構(gòu)[3]如圖5所示,主要由循環(huán)相位累加器、地址信號(hào)發(fā)生器和ROM查找表組成。循環(huán)相位累加器的算法設(shè)計(jì)[4]如圖6所示。
循環(huán)相位累加器的進(jìn)位信號(hào)clkout作為地址發(fā)生器的計(jì)數(shù)時(shí)鐘。而ROM表的設(shè)計(jì),以降低存儲(chǔ)容量為主。設(shè)計(jì)中ROM函數(shù)表中有8個(gè)采樣數(shù)據(jù),分別是正弦波在 0°、45°、90°、135°、180°、225°、270°、315°這 8 個(gè)相點(diǎn)處的值。根據(jù)奈式采樣定理,8個(gè)樣點(diǎn)的正弦波經(jīng)過低通濾波器后可以完全還原。
圖6 循環(huán)相位累加器的算法設(shè)計(jì)
FPGA整體工程遵循自頂向下的設(shè)計(jì)原則[5],經(jīng)編譯、綜合分析、布局布線、時(shí)序分析后獲得面向SRAM的配置文件,此文件經(jīng)JTAG鏈下載到目標(biāo)器件中,便可進(jìn)行系統(tǒng)的在線調(diào)試。調(diào)試中借助QuartusII的Signal TapII邏輯分析器文件(采樣時(shí)鐘為全局時(shí)鐘、采樣深度為128 bit)對(duì)DDS算法進(jìn)程作了時(shí)序的板級(jí)驗(yàn)證,如圖7所示。而系統(tǒng)輸出的正弦信號(hào)利用40 MHz帶寬雙蹤模擬示波器進(jìn)行觀察,符合設(shè)計(jì)要求。
本文介紹了一種基于FPGA的DDS算法的正弦信號(hào)發(fā)生器,采用Altera的EP1C3T100C8及TI的DAC908高速數(shù)模轉(zhuǎn)換器件實(shí)現(xiàn),并進(jìn)行了系統(tǒng)的在線板級(jí)驗(yàn)證與測(cè)試。輸出信號(hào)頻率范圍為DC到10 MHz,信號(hào)頻率分辨率為 0.1 Hz。
[1]劉進(jìn)志,陳滌.基于 MPU/PLL和CPLD技術(shù)的數(shù)字正弦信號(hào)發(fā)生器的設(shè)計(jì)與分析[J].山東大學(xué)學(xué)報(bào),2005,40(5):88-92.
[2]馬場(chǎng)清太郎著.運(yùn)算放大器應(yīng)用電路設(shè)計(jì)[M].何希才,譯.北京:科學(xué)出版社,2007.
[3]李曉芳,常春波,高文華.基于 FPGA的DDS算法的優(yōu)化[J].儀器儀表學(xué)報(bào),2006(z1):896-898.
[4]NOWLIN R W,SUNDARARAJAN R.A VHDL course for electronics engineering technology[D].1998(8):17-20.
[5]MAKHIJANI H,MEIER S.A high level design solution for FPGA′s.WESCON/94.Idea/Microelectronics.1994:596-603.