劉文樂 尚明健
摘 要:本文論述的一種基于FPGA的DDS實驗裝置設(shè)計思路,裝置硬件結(jié)構(gòu)設(shè)計和FPGA片內(nèi)數(shù)字電路設(shè)計,該裝置由電源板、DAC信號發(fā)生器、FPGA最小系統(tǒng)組成,波形數(shù)據(jù)則由CORDIC算法模塊的數(shù)據(jù)經(jīng)過變換后得到,在使用時通過設(shè)置所需波形的頻率,相位的信息即可得到相應(yīng)的方波或正弦波。
關(guān)鍵詞:FPGA;DDS;CORDIC算法
直接數(shù)字式頻率合成器DDS(Direct Digital Synthesizer)與采用模擬技術(shù)的頻率合成器相比,DDS具有成本低、分辨率高、功耗低、轉(zhuǎn)換快速等優(yōu)點,可以產(chǎn)生方波或正弦波或任意波形應(yīng)用廣泛[1,2]。目前DDS信號發(fā)生器多采用MCU或FPGA外加DAC的方式進(jìn)行設(shè)計,近年來由于FPGA的發(fā)展,采用FPGA設(shè)計DDS的案例也逐漸增多[3,4]。本實驗裝置在設(shè)計時參考了國內(nèi)一些成功的設(shè)計,采用FPGA加8位高速DAC的方式實現(xiàn),具備兩個通道,主要由FPGA最小系統(tǒng)板、DAC信號發(fā)生器、電源板組成,組合方便。
1 系統(tǒng)整體結(jié)構(gòu)和工作原理
如圖1所示系統(tǒng)整體結(jié)構(gòu)由電源板,DAC信號發(fā)生器,F(xiàn)PGA最小系統(tǒng)構(gòu)成。電源板用于給FPGA最小系統(tǒng)和DAC信號發(fā)生器供電,為簡化實驗流程,保證實驗的安全性,電源板采用單路5V輸入,這樣使用普通的5V電源適配器或USB電源即可給系統(tǒng)供電;DAC信號發(fā)生器采用8位高速DAC完成數(shù)模轉(zhuǎn)換,經(jīng)過模擬重構(gòu)濾波器濾除信號中的高頻成分,再經(jīng)過運(yùn)放調(diào)理電路,得到所需幅值的信號;FPGA最小系統(tǒng)用于接收并解析用戶的指令,經(jīng)過FPGA內(nèi)部的算法運(yùn)算得到需要發(fā)送至DAC的值。
1.1裝置硬件結(jié)構(gòu)設(shè)計
1.1.1電源板設(shè)計
電源板用于為整套實驗裝置供電,其中FPGA需要3.3V的BANK電壓與1.2V的CORE電壓,DAC信號發(fā)生器中使用的DAC芯片需要3.3V供電,但是運(yùn)放在工作時需要+/-5V供電,所以電源板在進(jìn)行設(shè)計時,需要同時提供3.3V、1.2V、-5V以及+5V這4種電平,為保證實驗裝置使用的便利性使用單路5V供電,采用的如圖2所示的電源樹設(shè)計。其中一階電源濾波器對5V適配器的
輸入進(jìn)行濾波,一階電源濾波器的輸出即可直接使用,3.3V和1.2V分別由BL1117-3.3和BL1117-1.2提供,BL1117是一款雙極型低壓差的線性穩(wěn)壓器,具有過流保護(hù)和過熱保護(hù)功能,在系統(tǒng)中使用LDO供電是因為LDO的電源紋波小,外圍電路簡單,易于減小裝置體積,但是由于要找到一款可以將+5V 電源輸入轉(zhuǎn)換為-5V 輸出的LDO非常困難,所以采用LM2662提供-5V,LM2662為電荷泵,工作頻率可調(diào),在電路板布局恰當(dāng)?shù)那闆r下輸出即為穩(wěn)定的-5V。
1.1.2 DAC信號發(fā)生器設(shè)計
如圖3所示,DAC信號發(fā)生器由高速DAC,模擬濾波器,調(diào)理電路組成,其中模擬濾波器采用低通設(shè)計,并不可省去否則由于高速ADC內(nèi)部的零階保持器的作用,輸出信號會呈現(xiàn)階梯狀,調(diào)理電路中運(yùn)放的選擇為AD8047高速電壓反饋運(yùn)算放大器,DAC為AD9708高速DAC,AD9708 為ADI公司生產(chǎn)的高性能電流輸出DAC,依照ADI公司的介紹該DAC芯片采用分段電流源架構(gòu)與專有開關(guān)技術(shù)相結(jié)合,可減小雜散分量,其阻抗大于100 kΩ,支持最高125 MSPS的更新速率。
在實際使用中以一定的采樣率使用DAC芯片會得到重構(gòu)的模擬信號,但是此時直接使用示波器進(jìn)行測量,會發(fā)現(xiàn)輸出波形有一些小的臺階,這是DAC芯片的零階保持造成的,要解決這一問題一般采用的方法是在DAC的輸出增加一個模擬重構(gòu)濾波器或一階保持電路,在本裝置中使用的是模擬重構(gòu)濾波器的方式,但是由于系統(tǒng)配置DAC芯片的更新速率為102.778MSPS(為了使分頻準(zhǔn)確,理想的更新速率應(yīng)該為102.4MSPS,但是由于FPGA內(nèi)部的PLL只能以特定的整數(shù)值對輸入時鐘進(jìn)行倍頻或分頻,所以只可得到102.778MSPS的時鐘),而輸出信號則在50Hz-8MHz可調(diào),此時使用有源濾波器有較大的設(shè)計難度,所以裝置采用無源巴特沃斯濾波器作為模擬重構(gòu)濾波器使用。
1.2.3 FPGA最小系統(tǒng)設(shè)計
FPGA最小系統(tǒng)的主要作用是產(chǎn)生波形數(shù)據(jù),所以其設(shè)計應(yīng)當(dāng)小巧,方便與DAC信號發(fā)生器連接,但是又要具備完整的功能,能夠與用戶交互,且便于讀取系統(tǒng)的工作狀態(tài)。FPGA最小系統(tǒng)結(jié)構(gòu)如圖4所示,M25P16用于固化FPGA 的程序,擴(kuò)展IO用于連接高速DAC,USB轉(zhuǎn)串口用于連接PC機(jī),接收控制指令,F(xiàn)PGA在接收到控制指令后依據(jù)相應(yīng)的指令設(shè)定輸出波形的種類,頻率,此時系統(tǒng)的工作狀態(tài)由LED顯示,F(xiàn)PGA 的外部時鐘由50M有源晶振提供。FPGA采用Xilinx公司設(shè)計的Spartan-6低功耗FPGA,該型號的FPGA采用45nm技術(shù),成本較低,適合用于設(shè)計中小規(guī)模的數(shù)字邏輯系統(tǒng)。
1.2 FPGA片內(nèi)數(shù)字電路設(shè)計
FPGA片內(nèi)數(shù)字電路結(jié)構(gòu)如圖5所示,為了讓參與者在實驗過程中能夠更好地理解數(shù)字信號處理方面的知識,實驗裝置沒有采用常見的查表法產(chǎn)生波形數(shù)據(jù),而是采用了如下方法:首先通過CORDIC模塊產(chǎn)生頻率與初始相位一定的正弦信號,通過位寬變換使得到的數(shù)據(jù)滿足DAC的8位數(shù)據(jù)位寬,由于此時的數(shù)據(jù)還是采用補(bǔ)碼方式表示,所以在輸出前要進(jìn)行換算,經(jīng)過變換得到的數(shù)據(jù)即為所需的正弦波數(shù)據(jù);方波的產(chǎn)生則是先利用零點檢測器對CORDIC模塊輸出的正弦波進(jìn)行過零點檢測,如此便可確定輸出信號的頻率,進(jìn)一步變換得到所需的方波。
2 實驗結(jié)果分析
利用設(shè)計的DDS實驗裝置,通過串口向FPGA發(fā)送參數(shù)設(shè)置的控制指令,以實現(xiàn)波形的輸出功能,其中,波形頻率范圍為50Hz-8MHz。以100Hz為例的實驗結(jié)果如圖6所示,從圖中可以看出:經(jīng)過配置后通道一輸出正弦波,通道二輸出方波,且輸出波形穩(wěn)定。該實驗說明了該實驗裝置的各個硬件模塊工作正常,且FPGA產(chǎn)生了正確的波形數(shù)據(jù)。
3 結(jié)論
從實驗效果上看,所設(shè)計的DDS實驗裝置工作良好,兩個通道經(jīng)過配置,便可以自由輸出一定頻率的正弦波和方波。由于CORDIC算法在產(chǎn)生正弦波形數(shù)據(jù)過程中不過多消耗FPGA片內(nèi)存儲資源,只需要進(jìn)行移位和加減運(yùn)算,降低了FPGA的片上資源消耗;使用比較法產(chǎn)生方波,也不需要額外存儲方波的數(shù)據(jù),簡化了系統(tǒng)結(jié)構(gòu)。本實驗裝置在減小裝置體積的前提下,保證了功能的完整,可作為低成本的信號源使用。
參考文獻(xiàn):
[1]胡力堅.基于DDS的任意波形發(fā)生器設(shè)計與實現(xiàn)[D].西安電子科技大學(xué),2009.
[2]陳科,葉建芳,馬三涵,等.基于DDS+PLL技術(shù)頻率合成器的設(shè)計與實現(xiàn)[J].國外電子測量技術(shù),2010,29(4):43-47.
[3]黃燕.基于FPGA的DDS信號發(fā)生器的研究[D].南京林業(yè)大學(xué),2012.
[4]鄧耀華,吳黎明,張力鍇,等.基于FPGA的雙DDS任意波發(fā)生器設(shè)計與雜散噪聲抑制方法[J].儀器儀表學(xué)報,2009,30(11):2255-2261.
作者簡介:劉文樂(1963-),本科,高級工程師,研究方向為水泥工藝設(shè)備電氣自動化設(shè)計與控制。
*通訊作者:尚明健。