每通道的累加器及逻辑控制电路均采用一片EP1K30,用于实现累加器和步长控制字寄存器并完成板上地址译码、两级DAC控制、波形抖动补偿以及本通道的继电器控制等功能。累加器字长32位,时钟基准源频率为DSP输出频率的两倍频。第一级DAC用于波形的产生,第二级DAC用于控制输出幅度和波形正反相,并对第二级DAC输出进行了平滑滤波和放大处理。
根据系统的性能要求,输出端采用了电压隔离放大器,与总线隔离,并且四个通道各自独立。本模块总共有一个数字地和四个模拟输出地。这样,既可以保证VXI系统和其它通道的安全,又减少了模块负载和VXI系统的相互干扰。
波形数据存储器IDT7025S被等分为A、B两页,可以实现不同波形之间的无抖动切换,每页为4k×16bit。当DDS开始工作时,DSP先锋主A页写入波形数据,并在DSP的控制下产生波形;当要切换到另一种波形时,只需往B页写入另一种波形的数据,将32位累加器所产生的地址(累加器高12位)切换到B页即可。这样,可实现幅值和相位均连续的波形无抖动切换。
每个通道采用两级12Bit DAC,它们均设置为双极性电压输出。第一级DAC的参考电压源可以接内部基准或外部载波,第二级DAC的参考电压源可以接内部基准、外部载波或第一级DAC电压输出。通过对两级DAC所接参考电压源的不能设置(通过继电器进行切换),可以分别实现如下功能:
(1)用作直接输出,第二级DAC的参考电压源接内部基站。第二级DAC电压输出为:V2out=(Din2-2048)/2 12,可通过输入不同的Din2控制直流输出幅值和正负极性。
(3)用作自定义波形发生器,第一级DAC和第二级DAC的设置为(2)所述,不同的是波形存储器的内容。零槽控制器按一定的规约向双口RAM(IDT709289L)的前15页写入自定义的波形数据,DSP亦按一定的规约取出数据并送往指定通道的IDT7025S,IDT7025S的A和B两页进行交替切换,从而连接输出自定义波形。
(4)外加载波进行调制,第一级DAC参考电压源接外部载波,第二级DAC参考电压源接第一级DAC电压输出。外加载波为正弦信号Vsin(αx+θ) ,其中,V为载波最大电压值,α为自变量x的系数,θ为初始相位。第一级DAC电压输出为:Vlout=Vsin(αx+θ) ×Dinl/2 12,这样即实现了载波的幅度调制。第二级DAC用来控制整个幅度,其输出电压V2out=Vsin(αx+θ) ×Din1/2 12×(Din2-2048)/ 2 12,Din2为第二级DAC的输入数据。
(5)载波直接输出,只需第二级DAC的参考电压源接外部载波,第二级DAC电压输出为:V2out=Vsin(αx+θ) ×(Din2-2048)/2 12。
由于隔离放大器有一定的输出噪声,所以把信号放大器放在隔离放大器之前,低通滤波器放在隔离放大器之后,这样,既避免把隔离入大器的噪声放大,又有效地进行了平滑滤波。
电压输出采用功率运放OPA445进行放大,实现±12V输出。而电流输出则采用电压/电流转换器AD694实现,电流输出量程为0~20mA或4~20mA。
2.2 软件部分
软件主要包括两部分:DSP程序和VXI系统主机底层驱动函数及测试程序。
DSP程序采用C语言和汇编语言混合编程。控制部分的程序采用了汇编语言,提高了程序的效率。而数据的产生部分采用了实现起来比较简单的C语言,避免了采用汇编处理数据的复杂编程。
上位机测试程序采用NI公司的LabWindows/CVI编制。LabWindows/CVI基于C语言的编程环境,具有丰富的用户界面控件和VXI总线系统函数,使编程简捷方便。面向本模块的操作函数打包生成.dll文件即可供系统调用。
3 实现结果及分析
图5所示为输出频率为10kHz的方波、锯齿波、正弦波和三角波的输出波形,其峰-峰值均为24V。图6所示为调制波输出波形,10kHz外部正弦波作为载波信号,1kHz正弦波信号作为调制信号,峰-峰值为24V。图5和图6均由Tektronix公司的TDS210型示波器采样所得。
经实验所得的波形输出的频率分辨率为0.1%左右,显然大于理论的频率分辨率FMin=10 6/2 33=0.0001164Hz。经分析,系统误差包括:(1)相位截尾误差;(2)电路板布局布线因素带来的干扰而导致的误差;(3)标准参考频率源稳定性的影响带来的误差;(4)D/A转换器引入的误差;(5)波形幅值存储数据有限字长引入的量化误差。
本模块中实现的DDS相对于传统方法具有种种优点。由于DSP强大的数据处理能力和灵活的控制功能,再加上FGPA具有的高性能、高集成度等特点,使模块具有优良的性能。另外,DDS的这种实现方法有很大的灵活性,可以进行复杂的滤形调制。
由于DDS数字化实现过程的固有特点,如累加器相位截断、波形幅度量化和数/模转换器的非线性等特性,使得输出信号频谱的杂散性较大,这一点当输出频率较高时尤为突出。因此,在设计的过程中要采取一定的改进措施。如对DDS的结构加以改进、优化波形存储器的结构、选择合适的数/模转换器件、使用抖动注入技术等,尽量减少其杂散性,从而使DDS系统具有更优良的性能。