摘要:根據現代電子系統對信號源的頻率穩定度、準確度及分辨率越來越高的要求,結合直接數字式頻率合成器(DDS)的優點,利用FPGA芯片的可編程性和實現方案易改動的特點,提出了一種基于FPGA和DDS技術的任意波形發生器設計方案。采用VHDL和原理圖輸入方式,在Quar-tusⅡ平臺下實現該設計的綜合和仿真,用Matlab對仿真數據進行處理及顯示,驗證了設計的正確性。通過設置參數可以靈活控制輸出頻率和分辨率。
關鍵詞:DDS;FPGA;波形發生器;VHDL
0 引言
隨著現代電子技術的發展,在通訊、雷達、宇航、電視廣播、遙控遙測和電子測量等使用領域,對信號源的頻率穩定度、頻譜純度、范圍和輸出頻率提出了越來越高的要求。為了提高頻率穩定度,經常采用晶體振蕩器等方法來解決,但已不能滿足眾多應用場合的要求。伴隨電子測量技能與計算機技能的緊密結合,一種新的信號發生器——任意波形發生器應運而生,它可產生由用戶定義的任意復雜的波形,因而具有廣闊的運用發展前景。目前設計波形發生器的要領通常有三種:
(1)傳統的直接頻率合成技能(DS)。該類要領能實現高速頻率變換,具有低相位噪聲以及所有要領中最高的工作頻率。但由于采用大量的倍頻、分頻、混頻和濾波環節,導致其結構復雜、體積龐大、成本昂貴,而且容易產生過多的雜散分量。
(2)鎖相環式頻率合成器(PLL)。該類技能具有良好窄帶跟蹤特征,可選擇所需頻率信號,抑制雜散分量,且省去大量濾波器,有利于集成化和小型化。但由于鎖相環本身是個惰性環節,鎖定時間較長,因而頻率轉換時間較長,且由模擬要領合成的正弦波參數(如幅度、頻率和相位等)都難以定量控制。
(3)直接數字式頻率合成器(direct digital frequency,DDS)。該類要領具有高頻率穩定度、高頻率分辨率以及極短的頻率轉換時間。此外,全數字化結構便于集成,輸出相位連續,頻率、相位和幅度均可實現程控,而且理論上能夠實現任意波形。
鑒于DDS技術的優點,本文利用FPGA芯片的可編程性和實現方案易改動的特點,提出一種基于FPGA和DDS技術的任意波形發生器設計新方法。
1 DDS的基本原理
DDS的基本原理是利用采樣定理,通過查表法產生波形。DDS的結構有很多種,其基本的電路原理可用圖1來表示。
DDS是從相位概念出發,直接對參考正弦信號進行抽樣,得到不同的相位,通過數字計算技術產生對應的電壓幅度,最后濾波平滑輸出所需頻率。下面通過從相位出發的正弦函數產生描述DDS的概念。
圖1中,K為頻率控制字;N為相位累加器的字長;M為ROM地址線位數;m為ROM數據線位數,即DAC的位數;fc為DDS系統的參考時鐘源,通常是一個具有高穩定性的晶體振蕩器,為整個系統的各個組成部分提供同步時鐘。
DDS的數學模型可歸結為:在每一個時鐘周期T內,頻率控制字K與N比特相位累加器累加1次,同時對2N取模運算,得到的和(以N位二進制數表示)作為相位值,以二進制代碼的形式查詢正弦函數表ROM,再將相位信息轉變成相應的數字量化正弦幅度值。ROM輸出的數字正弦波序列經數/模轉換器轉變為階梯模擬信號,最后通過低通濾波器平滑后得到一個純凈的正弦模擬信號,其頻率為:
相位累加器由N位加法器與N位累加寄存器級聯構成。每來一個時鐘脈沖fc,加法器將頻率控制字K與累加寄存器輸出的累加相位數據相加,把相加后的結果送至累加寄存器的數據輸入端。累加寄存器將加法器在上一個時鐘脈沖作用后所產生的新相位數據反饋到加法器的輸入端,以使加法器在下一個時鐘脈沖的作用下繼續與頻率控制字相加。這樣,相位累加器在時鐘作用下,不斷對頻率控制字進行線性相位累加。由此可以看出,相位累加器在每一個時鐘脈沖輸入時,把頻率控制字累加1次,相位累加器輸出的數據就是合成信號的相位,相位累加器的溢出頻率就是DDS輸出的信號頻率。用相位累加器輸出的數據作為波形存儲器(ROM)的相位取樣地址,這樣就可把存儲在波形存儲器內的波形抽樣值(二進制編碼)經查找表查出,完成相位到幅值轉換。波形存儲器的輸出送到D/A轉換器,D/A轉換器將數字量形式的波形幅值轉換成所要求合成頻率的模擬量形式信號。低通濾波器用于濾除不需要的取樣分量,以便輸出頻譜純凈的正弦波信號。
2 DDS模塊的FPGA實現
2.1 DDS模塊的基本結構設計
整個DDS系統的設計采用層次結構,采用VHDL與原理圖輸入相結合的方法,DDS基本結構如圖2所示。
下面就各個部分的設計分別介紹:該設計中采用的頻率字為32位,即N=32,RAM為256×8位,故ROM的地址線寬M=8,輸出數據線寬L=8。由于RAM地址線為8位(28=256),而相位累加器的輸出為32位,為了保證它們之間的對應,將相位累加器的高8位與RAM的地址線相連。這樣存在多個相位地址對應同一個RAM地址的情況,如果把相位累加器輸出的所有位數全部用來查詢RAM,那么RAM的容量會非常的大,如此巨大的RAM表容量在實際工作中難以實現。因此,常使用相位地址高位來尋址,舍去低位的相位截斷方法。當然,這種方法會引入一定的噪聲,但
對于節省的資源來說,這種方法還是值得的。
2.2 DDS模塊的總體設計
該設計主要由接口部件、頻率及控制部件、相位累加器、波形數據產生部件和輸出選擇器組成,如圖3所示。
接口部件主要完成接收單片機發送過來的頻率參數及控制參數其中A0為數據通道和地址通道選擇位,EN為數據寫入使能。頻率及控制部件主要完成頻率控制字及輸出控制參數的存儲,由5個帶寫使能的8位同步寄存器組成。相位累加器為DDS主要部件實現相位的累加。波形數據產生部件的功能是將相位數據轉化為所需的波形數據,其中正弦波和三角波數據由查ROM表獲得,鋸齒波數據直接由相位累加器輸出得到,方波數據是相位累加器輸出數據與設定數據比較獲得。輸出選擇器的SEL端接到控制參數寄存器,它的4個數值分別選擇4種不同的波形輸出。
3 DDS仿真實驗結果
設置輸出100 kHz正弦波,由式,得,通過計算K=21 477 072=147B6DOH,按照此數據設置好頻率控制寄存器的參數,其仿真波形如圖4、圖5所示。
用Matlab對仿真數據進行處理,得到對應波形顯示圖6~圖11所示,驗證了設計的正確性。
4 結語
該系統用FPGA器件FLEX10K在QuartusⅡ平臺上通過原理圖設計DDS,用Matlab對QuarltusⅡ平臺上軟件仿真得出的仿真數據進行處理及顯示,驗證了設計的正確性。通過設置參數可以靈活控制輸出頻率和分辨率,而專用的DDS芯片雖然具有抽取比大,性能穩定的特點,但價格昂貴,靈活性不強,不能充分體現軟件無線電的優勢所在。具體到實際的應用中可增加頻率控制字的寬度,一般取32位或48位,這樣能夠提高頻率分辨率。