齐彩利,宋 鹏,齐建中
(北方工业大学信息工程学院,北京 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.