齊彩利,宋 鵬,齊建中
(北方工業大學信息工程學院,北京 100144)
傳統意義上的模擬信號源是采用模擬電路振蕩、變換得到的。振蕩頻率取決于RC、RL或RLC,這些器件自身的局限性決定了這樣的信號源頻率穩定度低、相位會產生漂移、信號幅度不容易控制等缺點。直接數字頻率合成(Direct Digital Frequency Synthesis,DDS)是從相位概念出發直接合成所需要波形的一種新的頻率合成技術。它在相對帶寬、頻率轉換時間、相位連續性、正交輸出、高分辨率以及集成化等一系列性能指標方面已遠遠超過了傳統頻率合成技術所能達到的水平。實現DDS有2種可選方案,即采用低頻正弦波DDS單片電路的方案和自行設計的基于現場可編程門陣列(Field Programmable Gate Array,FPGA)芯片的設計思路。基于FPGA實現的DDS可在一片FPGA芯片上實現信號源的信號產生和控制,并且只要改變存儲波形信息的ROM數據,就可以靈活地實現任意波形發生器。專用DDS芯片實現的信號源功耗大、價格高,而將DDS信號源設計嵌入到FPGA芯片所構成的系統中,其系統成本并不會增加多少,可以實現很多更加復雜的功能,因此,采用FPGA設計的DDS信號源具有很高的性價比。綜合以上考慮,選用的是第2種方案。
所設計的信號源能夠同時輸出八路正弦信號,每一路信號都可在0~100 Hz頻率范圍內變化。系統組成如圖1所示。

圖1 系統結構
系統由控制模塊、頻率合成模塊、輸出模塊和電源模塊組成。控制模塊的主要任務是完成對DDS部分頻率控制字和控制信號的置入;頻率合成部分是在FPGA芯片里面用verilog編寫代碼合成DDS,輸出模塊完成D/A轉換、濾波和放大功能,使輸出符合信號源的要求;電源模塊為整個系統供電。
DDS需要外界提供相應的數據和控制信號。用單片機做控制電路,頻率改變簡捷迅速。方案中選用了C8051單片機作為控制核心,并采用zlg7290芯片控制鍵盤,用來對各個輸出信號頻率的修改和界面設置,HY-12864液晶芯片則用來顯示當前狀態和各個信號的頻率。
1.3.1 DDS工作原理
DDS是從相位概念出發直接合成所需要波形的一種新的頻率合成技術。DDS電路一般包括系統時鐘、相位累加器、相位調制器、ROM 查找表、D/A轉換器和低通濾波器(LPF)。
工作過程是預先在ROM中存入正弦波形的幅度編碼,每來一個時鐘信號,N位的相位累加器將頻率控制字X與相位寄存器的輸出累加,同時,相位寄存器輸出序列的高M位去尋址相位/幅值查找表,得到一系列離散的幅度編碼。該幅度編碼經數模轉換后得到模擬的階梯電壓,再經低通濾波器平滑后,就可得到所需要的正弦信號。一般將相位累加器、相位寄存器和相位/幅值查找表稱為數控振蕩器(NCO)。DDS的輸出信號頻率為:

式中,Y=2N。
頻率分辨率為:

實際最高輸出頻率取:

關于D/A轉換器的輸入位數(P),可根據對輸出模擬信號波形的精度要求來確定,其精度即為。一般情況下ROM查找表的位寬M要比D/A轉換器的精度多2~4位。根據設計的要求,輸出正弦波頻率范圍在0~100 Hz,采用的位寬P=8位的D/A來進行波形的數模轉換,因此正弦ROM表的地址位寬選擇M=10,尋址范圍可達210=1024個點。由于單片機和FPGA芯片間普通I/O口資源的限制和查找表地址位寬的綜合考慮,累加器位寬N=11。根據設計要求分辨率達到5 Hz,而FPGA芯片的晶振為20 MHz,因此這就要求晶振時鐘必須經過分頻才能夠提供為系統時鐘。由此分辨率為:

在最大輸出頻率Fmax=100 Hz時,其最大步長可達:

1.3.2 DDS的FPGA實現
近年來FPGA技術迅速發展,資源容量、工作頻率和集成度都有了很大的提高,市場上Xilinx和Altera公司的FPGA芯片都是很好的選擇。而且都支持主流的硬件編程語言VHDL和Verilog。考慮到系統的規模及以后的擴展需要,設計中的DDS部分采用Verilog硬件描述語言來設計。
首先按照一定的采樣點數將正弦波形一個周期的數據信息存于ROM表中,表中包含著一個周期正弦波的數字幅度信息,每個地址對應正弦波形中0~360°范圍內的一個相位點的幅度值,采樣值可以通過C++語言實現。

據分析,DDS實現過程的實質是從不變量X到離散時間序列的變換過程,這個過程可以由2次變換來實現:從不變量X以采樣率Fclk產生量化的相位序列和從離散量化的相位序列產生對應的正弦信號的離散幅度系列。
從不變量X以采樣率Fclk產生量化的相位序列的過程,一般由一個被頻率為Fclk的時鐘驅動的 N進制累加器來實現。
從離散化的相位序列產生對應的正弦信號的離散幅度系列的過程,可以通過計算機來完成,也可以由具備公式映射關系所構成的PROM波形存儲表的尋址過程來完成。這時量化的相位作為波形存儲表的尋址地址,而對應的量化的波形系列是波形存儲其中對應該地址的內容。波形存儲表沒有選擇用Verilog語言編寫代碼,直接調用Xilinx公司的IP核資源產生一個周期的正弦波查找表,方便靈活。由于同時輸出八路正弦信號,D/A芯片為四路DAC,因此采用兩片D/A芯片。D/A芯片輸入為串行輸入,因此使用8個累加器,用a、b、c信號控制同時輸出八路信號。
1.4.1 D/A轉換
D/A轉換完成數字信號到模擬信號的轉換,采用TLV5620芯片,它為串行輸入,輸出4路 DAC。12位命令字包括8位數據信息,2位A1、A0通道選擇位,輸出電壓選擇位控制輸出電壓在零到1倍參考電壓或2倍參考電壓。
1.4.2 低通濾波器的設計
低通濾波器是保證輸出信號頻譜純度的重要部件。為了有效地濾除主頻以上的雜散分量,要求濾波器的衰減特性要陡直,延遲時間要短。因為產生的正弦波頻率較低,要求不是很嚴格,此模塊采用芯片ICL7461設計了壓控電壓源二階低通濾波電路。截止頻率為:

式中 ,R=10 kΩ,C=0.1 μ F 。
軟件所需實現的功能有:鍵盤的控制、液晶對當前狀態和各路信號頻率的顯示,將外部輸入的數據按照一定算法變換成DDS信號源輸出信號所對應的控制字,從而使輸出的八路DDS正弦信號的輸出頻率可控。
實現上述功能,整個軟件的構成模塊有:按鍵的設定、LCD顯示、輸出頻率控制等模塊。主流程圖如圖2所示。

圖2 系統流程
信號源可輸出8路不同頻率的正弦信號,各個信號頻率都≤100 Hz。調節運算放大器的電位器可以實現對信號幅度0~10 V的任意可調。由示波器觀察其中2個正弦信號的波形如圖3所示。

圖3 輸出的2路正弦信號
本設計利用Xilinx公司的FPGA芯片,在FPGA芯片內部用verilog編寫代碼,實現DDS的功能。設計與實現的信號源為單片機控制下的小型系統,能夠同時輸出8路不同頻率的正弦信號。8路信號的頻率可通過鍵盤來設定,通過調節運放電位器可以改變幅度大小。只要改變存儲波形信息的ROM數據,就可以靈活地實現任意波形的8路信號。而不用另行制版,這樣既節省時問,又減小了開銷,并且有利于信號源的改進。 ■
[1]姜田華.實現直接數字頻率合成器的三種技術方案[J].電子技術應用,2004(3):1-3.
[2]余 勇,鄭小林.基于FPGA的DDS正弦信號發生器的設計和實現[J].電子器件,2005,28(3):596-599.
[3] 田 耕,徐文波,張延偉.無線通信FPGA設計[M].北京:電子工業出版社,2008.
[4]高 倩.基于DDS的高性能信號源的設計[J].江蘇技術師范學院學報,2005,11(6):48-53.
[5]高 琴,姜壽山,魏忠義.基于FPGA的DDS信號源設計與實現[J].西安工程科技學院學報,2006,20(2):210-214.
[6]付昱強.基于FPGA的DDS的設計和實現[J].科技廣場,2005(5):94-95.