1 引言
在现代电子系统的测试应用中,信号源是必不可少的。根据不同系统对信号的不同需求,人们希望信号源输出波形信号的幅值、频率可调,且频率准确、稳定;甚至在一些情况下还希望信号源能够输出相位关系确定的多路波形信号。因此,传统模拟信号源已远远不能满足目前电子设计要求,而是直接采用数字合成技术产生的全数字化信号源。以数字化为基础的程控化、智能化的信号源,不仅在性能指标上有了质的飞跃,功能上更强大,操作更简捷。与传统的直接或间接频率合成技术相比,直接数字频率合成(Direct Digital Frequenly Synthesis,简称DDS)技术具有频率分辨率高、带宽输出相对较宽、频率转换速度快、相位变换连续等特点,便于对相位、幅度和频率的数字调制,能够满足数字化信号处理应用要求。
2 DDS基本原理
直接数字频率合成(DDS)是一种从相位概念出发直接合成所需频率波形的新频率合成技术。其基本思想是:首先将与相位对应的波形幅值数据存储在单片机ROM 中,通过相位累加器累计步长采样对应的波形数据。每采样一次数据,相位累加器的输出就增加一个步长的相位增加量△K,相位增加量由频率控制字确定。存储在ROM中的信号波形数据表包含产生信号的一个完整周期的幅值和相位。从ROM中读取相位累加器的相位累加值对应的波形幅值,通过D/A转换器将该数据转换成相应的模拟量,再经过滤波得到平滑的合成波形信号。相位累加器的相位累加为循环迭加,这样可使输出信号的相位连续。当相位累加器累加至满量程时,产生一次计数溢出,该溢出率即为输出信号频率。DDS基本原理框图如图1所示。
如果相位累加器的位数为N,频率控制字内的相位增量为K,参考时钟频率为fclk,则DDS系统输出信号频率fout为:
fout=fclk×K/2N(1)
输出信号的频率分辨率△fout为:
△fout=fclk/2N (2)
3 信号源硬件设计
目前,实现DDS造波的方法主要有两种:一种是采用DDS专用器件,另一种是在DDS原理基础上利用软件模拟。信号源可产生三相正弦交流信号,鉴于其成本和实现的灵活性,本设计采用第二种方法,其系统硬件框图如图2所示。系统采用上位机与下位机配合工作来实现。上位机利用CVI软件编程.为用户提供自设定信号频率的友好界面,并采用RS-232串口通信协议或USB通信协议来实现与单片机通信;下位单片机C8051F005由程序控制其内部的两路D/A 和外部的单路D/A转换器DAC7512共同产生三相交流信号;外围电路再配以差动放大、基准电压调节、低通滤波和功率驱动等电路模块,实现信号的调理和功率驱动。
3.1 信号产生模块
信号产生模块用于输出三路频率相同、相差120°的正弦波。其中前两路正弦信号由C8051F005单片机内部集成的D/A转换器产生,该内置D/A转换器是两路12位电压方式的D/A转换器,数字输入值范围为0x000H~0xFFFH,其对应输出的模拟电压幅值为0 V~VREF-1LSB V(VREF参考电压为+5 V),1LSB的电压幅值即为5/4 096 V。程序将不同相位查表取出的相应波形幅值数据送给D/A转换器,从而产生所需信号; 第三路正弦信号则由外部DAC7512产生.利用单片机的3个I/O端口分别作为DAC7512片选、时钟和数据输入的控制端口,同样通过程序提取不同相位对应的波形幅值数据控制DAC7512输出正弦信号。然后同时将这三路相位互差120°的交流电压信号同时送至波形调节电路,从而产生所需频率的正弦信号。
3.2 基准调压电路
该电路可使正弦信号以0 V为基准电压,上下对称、稳定输出。由于任意一路D/A转换器输出的正弦波形幅值变化范围仅在0 V-5 V,即正弦波的基准电压为2.5 V。因此,需要给输出的正弦波形升高一个电压基准。这里采用在信号输出的第二级运算放大器(U1B)的同相输入端输入2.5 V电压的方法来实现。根据运算放大器的特性,此时U1B的反相输入端(引脚6)的电压值也为2.5 V。这样,当正弦波经过差动放大电路(U1B及其外围电路R1、R2)和滤波电容C1后,波形输出端会获得电压幅值介于-2.5 V和+2.5 V之间的正弦波形。基准调压部分电路原理图如图3所示。
图3 基准调压电路
3.3 功率驱动电路
功率驱动电路信号源输出功率要求达到30 W,为了保证信号在输出时有足够的功率和电压。这里采用大功率功率放大模块对信号功率进行放大。将各个功率放大模块的性能参数和价格进行比较,选择采用TDA7294功率放大器件来实现信号的大功率输出。TDA7294放大器是一款大功率DMOS功放,它具有较宽的工作电压(20 V~80 V);较高的输出功率(高达100 W);较宽的频率输出范围(20 Hz~20 MHz);小噪声和失真以及过热、短路保护等功能。TDA7294的应用电路如图4所示,可使交流信号从Vin引脚输入,经过放大后从Vout 引脚输出。
图4 TDA7294应用电路
4 信号源软件设计
单片机软件部分具体编程方法为:通过程序循环传输D/A转换器波形的离散幅值数据,模拟基准时钟的功能;在单片机内部RAM取3个字节(24位)作为相位累加器;周期波形的幅值在相位上按256份等分,计算出的离散幅值数据组成波形数据表存储单片机内部ROM 中;程序每循环一次相位累加器累加一个频率控制字,从而得到一系列的相位值,直到相位累加器溢出,才完成波形一个周期的相位累加;取相位值序列的高8位数据,查ROM表转换相位幅值,得到离散波形幅值;幅值序列通过D/A转换及滤波电路得到输出波形。计算机向单片机发送频率控制字文现对输出波形频率的控制计算机先将没置的频率值转换为步长,再通过通信接口发送至单片机,单片机采用中断方式接收命令并更新步长,步长随波形频率变化而变化。计算机频率与步长之间的关系为:
Step=256×Tp×fout (3)
其中,Step为送入单片机的步长值(24位),256表示每个周期的波形等分为256份;Tp为程序送出一个离散波形数据所需的时间,即程序实现一次循环所需要的时间;fout为输出波形的频率值。
对于12位精度的D/A转换器,则需将离散波形的数据表格按照高低位形成两个数据表格,其中一个表格存放高4位的离散波形数据,另外一个存放低8位离散波形数据。这样在查表时一次需要查出2个表格的相同位置,得到两个数值。然后通过两个数据寄存器按照其高低位的顺序分别把查到的数据送到3路D/A转换器中产生正弦波形。由于3相正弦交流信号源的3路正弦波在相位上有120°的相位
差,所以在累加步长之前需要先加一个初相位值。对于12位精度的D/A转换器,如果0°对应的初相位是0x0000,那么,120°对应的初相位则是0x0555,240°对应的初相位为0x0AAA。整个下位单片机部分的程序流程图如图5所示。
5 实验数据比较结果
表1为实验时测得的一些数据,由实验数据可以看出,在频率输出范围内的精度可达0.005 Hz。