基于FPGA的DDS信號發(fā)生器設(shè)計
信號發(fā)生器又稱信號源或振蕩器,在生產(chǎn)實踐和科技領(lǐng)域中有著廣泛的應用。能夠產(chǎn)生多種波形,如三角波、鋸齒波、矩形波(含方波)、正弦波的電路被稱為函數(shù)信號發(fā)生器。函數(shù)信號發(fā)生器的實現(xiàn)方法通常是采用分立元件或單片專用集成芯片,但其頻率不高,穩(wěn)定性較差,且不易調(diào)試,開發(fā)和使用上都受到較大限制。隨著可編程邏輯器件(FPGA)的不斷發(fā)展,直接頻率合成(DDS)技術(shù)應用的愈加成熟,利用DDS原理在FP-GA平臺上開發(fā)高性能的多種波形信號發(fā)生器與基于DDS芯片的信號發(fā)生器相比,成本更低,操作更加靈活,而且還能根據(jù)要求在線更新配置,系統(tǒng)開發(fā)趨于軟件化、自定義化。本文研究了基于FPGA的DDS信號發(fā)生器設(shè)計,實現(xiàn)了滿足預定指標的多波形輸出。
1 DDS基本原理
DDS建立在采樣定理基礎(chǔ)上,首先對需要產(chǎn)生的波形進行采樣,將采樣值數(shù)字化后存入存儲器作為查找表,然后通過查表讀取數(shù)據(jù),再經(jīng)D/A轉(zhuǎn)換器轉(zhuǎn)換為模擬量,將保存的波形重新合成出來。DDS基本原理框圖如圖1所示。
除了濾波器(LPF)之外,DDS系統(tǒng)都是通過數(shù)字集成電路實現(xiàn)的,易于集成和小型化。系統(tǒng)的參考時鐘源通常是一個具有高穩(wěn)定性的晶體振蕩器,為各組成部分提供同步時鐘。頻率控制字(FSW)實際上是相位增量值(二進制編碼)作為相位累加器的累加值。相位累加器在每一個參考時鐘脈沖輸入時,累加一次頻率字,其輸出相應增加一個步長的相位增量。由于相位累加器的輸出連接在波形存儲器(ROM)的地址線上,因此其輸出的改變就相當于查表。這樣就可以通過查表把存儲在波形存儲器內(nèi)的波形抽樣值(二進制編碼)查找出來。ROM的輸出送到D/A轉(zhuǎn)換器,經(jīng)D/A轉(zhuǎn)換器轉(zhuǎn)換成模擬量輸出。
2 系統(tǒng)總體方案設(shè)計
該設(shè)計以FPGA開發(fā)平臺為核心,將各波形的幅值/相位量化數(shù)據(jù)存儲在ROM內(nèi),按照設(shè)定頻率,以相應頻率控制字k為步進,對相位進行累加,以累加相位值作為地址碼讀取存放在存儲器內(nèi)的波形數(shù)據(jù),經(jīng)D/A轉(zhuǎn)換和幅度控制、濾波即可得到所需波形。波形發(fā)生器采取全數(shù)字化結(jié)構(gòu),用硬件描述語言Verilog設(shè)計實現(xiàn)其頻率可調(diào)可顯示。經(jīng)開發(fā)平臺的D/A轉(zhuǎn)化和外加濾波整形處理波形數(shù)據(jù),理論上能夠?qū)崿F(xiàn)任意頻率的各種波形。系統(tǒng)總體設(shè)計方框圖如圖2所示。
系統(tǒng)按工作原理和控制對象的先后分為三個功能單元:波形數(shù)據(jù)產(chǎn)生單元、D/A轉(zhuǎn)化單元和濾波整形處理單元。波形數(shù)據(jù)產(chǎn)生單元除具有波形數(shù)據(jù)輸出功能外,還有頻率設(shè)置和輸出顯示功能。波形信號頻率可設(shè)置范圍為0~99 999 999 Hz,系統(tǒng)時鐘采用外接晶體振蕩器40 MHz時鐘脈沖,頻率穩(wěn)定度優(yōu)于10-4輸出采用8位LED數(shù)碼循環(huán)動態(tài)顯示。D/A轉(zhuǎn)換單元負責對從ROM表里讀取的波形數(shù)據(jù)進行D/A轉(zhuǎn)換,對D/A轉(zhuǎn)換器件的選用從建立時間、位數(shù)、轉(zhuǎn)化誤差和轉(zhuǎn)換時間等四個方面考慮。濾波整形處理單元完成對D/A轉(zhuǎn)換的模擬波進行平滑,濾除雜波和高頻干擾,補償頻帶損耗和幅度損失,最終輸出低誤差、高質(zhì)量、滿足題設(shè)要求的波形。
3 系統(tǒng)功能單元實現(xiàn)
3.1 波形數(shù)據(jù)產(chǎn)生單元
波形數(shù)據(jù)產(chǎn)生單元是信號發(fā)生器設(shè)計的主體。在此,采用DDS原理設(shè)計的信號發(fā)生器能完成三種波形(正弦、三角和方波)數(shù)據(jù)的產(chǎn)生,而且根據(jù)控制信號還可完成選定波形指定頻率的輸出。波形數(shù)據(jù)產(chǎn)生單元按功能實現(xiàn)上的相互聯(lián)系可劃分為頻率控制字生成模塊、相位累加器模塊和波形數(shù)據(jù)ROM表模塊,如圖3所示。其中,頻率控制字生成模塊可根據(jù)輸入產(chǎn)生指定頻率字,同時顯示輸入頻率數(shù)字。相位累加器模塊負責對所選波形的相位尋址,以頻率控制字作為步長反復進行累加運算。波形數(shù)據(jù)ROM表模塊存放三種波形的幅值/相位量化值,通過地址選擇相應波形的數(shù)據(jù)。
系統(tǒng)輸入控制使用4×4鍵盤.鍵盤主要按鍵功能介紹如下:
“0~9”:數(shù)字鍵,設(shè)定信號頻率;
“確定”:用于對波形信號設(shè)置的確認,波形信號的設(shè)置必須“確定”后才有效;
“←”:刪除已輸入信號頻率數(shù)字的最后一位,用于修改設(shè)置的頻率;
“清零”:將頻率數(shù)字快速全部清零;
“↑”:步進增大控制;
“↓”:步進減小控制。
設(shè)定頻率輸出范圍為1 kHz~10 MHz,頻率步進為50 Hz。系統(tǒng)輸出采用8個LED數(shù)碼管,以掃描方式顯示(單位為Hz)頻率數(shù)字。根據(jù)DDS原理,以步進值50Hz作為頻率控制字1,那么最大值10 MHz對應的頻率控制字為200 000,用18位二進制數(shù)值就可以表示(218>200 000)。從抽樣值恢復出原波形數(shù)據(jù),理論上每個周期波形數(shù)據(jù)至少抽取2個點,考慮到實際應用時受頻率損耗、線間串擾等因素的限制,該設(shè)計采用22 b的頻率控制字和相位累加器,4 Kb的8位波形ROM表,取相位累加器輸出的高12 b尋址波形數(shù)據(jù),三種波形按幅值/相位對應關(guān)系分別存儲782個數(shù)據(jù)。故各波形數(shù)據(jù)單位周期有800 768(782×210)個相位狀態(tài),完全滿足任一波形在單位周期內(nèi)取4個幅值點的要求,可保證即使輸出最大頻率的波形仍能達到較好的效果。波形選擇功能由兩位開關(guān)組合實現(xiàn),共有四種狀態(tài),其中三組用來表征不同的波型,另一組留作擴展波形用。
3.2 D/A轉(zhuǎn)換單元
數(shù)/模轉(zhuǎn)換單元是繼波形數(shù)據(jù)產(chǎn)生單元之后,將數(shù)字量形式的波形幅值轉(zhuǎn)換成所要求的合成頻率的模擬量形式信號。DAC輸出信號實際上是階梯模擬信號,需在數(shù)/模轉(zhuǎn)換后利用低通濾波器對波形進行平滑處理。在此,采用ADI公司生產(chǎn)的單片雙8位CMOS乘法數(shù)/模轉(zhuǎn)換器AD7528,線性度達到1/2,轉(zhuǎn)換時間達到納秒級,可以很準確地進行10 MHz信號的量化運算。
3.3 濾波處理單元
濾波器是一種能通過有用頻率信號而同時抑制(或衰減)無用頻率信號的電子裝置。由于運算放大器具有近似理想的特性,且可以省去電感,得到接近理論預測的頻率響應特性。構(gòu)成有源濾波電路后還具有一定的電壓放大和緩沖作用,并能減小體積。綜合考慮,系統(tǒng)采用運算放大器SL560構(gòu)成二階低通濾波器。
4 系統(tǒng)功能仿真和驗證分析
4.1 頻率控制字生成模塊仿真與分析
頻率控制字的生成直接影響著波形數(shù)據(jù)的尋址,該模塊負責快速記錄并實時顯示輸入的頻率數(shù)字,準確計算得到相應的頻率控制字。系統(tǒng)鍵盤為高速動態(tài)掃描(頻率為200Hz),采用狀態(tài)機設(shè)計,設(shè)置了按鍵去抖動功能。在FPGA開發(fā)平臺對該模塊進行功能驗證,整體無誤操作產(chǎn)生,幾乎沒有時滯效應,按鍵的防抖動效果也良好,達到了預期的目的。
4.2 相位累加器模塊仿真與分析
相位累加器用于實現(xiàn)相位累加,并存儲其累加結(jié)果。當前,相位累加器的值和時鐘周期到來后的相位累加器的值相差k(k為頻率控制字)。該模塊的仿真波形如圖4所示。
4.3 實驗波形觀測與誤差分析
信號發(fā)生器功能驗證無誤,用示波器觀測實驗波形如圖5所示。
檢測輸入頻率為0~10 MHz時,波形形狀均良好,未出現(xiàn)明顯失真。計算理論誤差為0.095%,在實測中發(fā)現(xiàn),波形數(shù)字的誤差相對很小,不足0.1 %。由于濾波整形電路存在高頻耦合通路,產(chǎn)生線間串擾,對濾波效果形成了不利影響,因此濾波器設(shè)計必須滿足頻帶寬,截止特性好,抗干擾性強等特性。
5 結(jié) 語
介紹了以直接數(shù)字頻率合成技術(shù)(DDS)為基礎(chǔ)的波形信號發(fā)生器工作原理和設(shè)計過程,并在FPGA實驗平臺上設(shè)計實現(xiàn)了滿足各功能指標的信號發(fā)生器。系統(tǒng)硬件除需外加濾波整形電路外,其余部分均可在FPGA開發(fā)實驗系統(tǒng)KH-310上集成開發(fā),系統(tǒng)軟件可在Quartus下編寫代碼,實現(xiàn)數(shù)據(jù)信息處理和控制操作等功能。整體開發(fā)環(huán)境成熟,應用工具齊全,隨著FPGA性價比的不斷提高,基于FPGA平臺開發(fā)信號發(fā)生器將逐步走向標準化、規(guī)?;彤a(chǎn)品化。
現(xiàn)代電子和通信技術(shù)的發(fā)展,對信號發(fā)生器提出了更高、更嚴格的要求。除了對信號頻率范圍、帶寬和頻率分辨率的嚴格限制外,對信號的波型及調(diào)制特性等也有著苛刻的規(guī)定。研究和開發(fā)具有更高性價比的信號發(fā)生器將是當前和今后一段時間內(nèi)亟需解決的課題。這里旨在建立一種基于FPGA的簡單數(shù)字信號發(fā)生器設(shè)計方法。若能充分利用FPGA強大的數(shù)據(jù)運算處理能力以及編程靈活、運行速率快等優(yōu)點,合理整合IP核資源和SoPC技術(shù),簡化設(shè)計結(jié)構(gòu),一定可以設(shè)計出功能多樣、性能更加出色的信號發(fā)生器。