《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 业界动态 > 基于VXI总线的四通道智能化任意波发生器的研制

基于VXI总线的四通道智能化任意波发生器的研制

2008-09-03
作者:王江华 张春熹1 魏晓龙

    摘 要: 介绍了一种基于VXI总线的四通道智能化任意波发生器及波形调制模块。本模块采用DSP+FPGA实现智能控制,应用先进的DDS(直接数字频率合成器)技术产生任意波,输出波形可加载波进行调制;本模块具有四个独立的通道,相互之间进行电气隔离,可输出幅度连续可调的电压和电流信号。
    关键词: VXI  DDS  任意波发生器  调制

 

    VXI总线是VMEbus eXtensions for Instrumentation 的缩写。VXI主机箱有13个插槽,其中,零槽控制器为系统的管理者。VXI模块根据其本身的性质、特点和所支持的通信规程可以分为寄存器基、消息基、存储器和扩展模块四种类型。每个模块的地址空间有A16、A16/A24和A16/A32三种类型。
    本文介绍利用DDS(直接数字频率合成器)技术实现具有任意波发生以及调幅功能的模块。与传统的频率合成技术相比,DDS技术具有很多优点:频率切换时间短、工作频率范围宽、频率分辨率高、相位变化连续和容易对输出信号实现调制等。一些公司先后推出了各种各样的DDS专用芯片,这些DDS专用芯片为电路设计提供了很大方便,但是并不能满足所有要求。例如,在实现调频及调幅等复杂功能时,利用现有的DDS专用芯片就会很不方便。利用可编程逻辑器件(CPLD)或现场可编程门阵列(FPGA)实现DDS具有很大的灵活性,能够很好地满足电路设计要求。
1 DDS基本原理
    DDS的基本原理框图如图1所示。它主要由标准参考频率源、累加器" title="累加器">累加器" title="相位累加器" title="相位累加器">相位累加器">相位累加器、波形存储器、数/模转换器、低通平滑滤波器等构成。其中,参考频率源一般是一个高稳定度的晶体振荡器,其输出信号用于DDS中各部件同步工作。DDS的实质是对相位进行可控等间隔的采样。

 


    相位累加器的结构如图2所示。它是实现DDS的核心,由一个N位字长的加法器和一个由固定时钟脉冲取样的N位相位寄存器组成。将相位寄存器的输出和外部输入的频率控制字K作为加法器的输入,在时钟脉冲到达时,相位寄存器对上一个时钟周期内相位加法器的值与频率控制字K之和进行采样,作为相位累加器在此刻时钟的输出。相位累加器输出的高M位作为波形存储器查询表的地址,从波形存储器中读出相应的幅度值送到数/模转换器。

 


    当DDS正常工作时,在标准参考频率源的控制下,相位累加器不断进行相位线性累加(每次累加值为频率控制字K),当相位累加器积满时就会产生一次溢出,从而完成一个周期性的动作,这个周期就是DDS合成信号的频率周期。输出信号波形的频率为:
   

    显而易见,当K=1时输出最小频率,即频率分辨率为。式中,fout为输出信号频率;K为频率控制字;N为相位累加器字长;fc为标准参考频率源工作频率。
2 波形发生器模块的实现
2.1 硬件部分

    波形发生器模块结构框图如图3所示。

 


    硬件主要可分为总线接口、DSP及逻辑控制电路、四通道DDS波形发生及调制电路、信号调理和输出接口等几部分。其中,零槽控制器与DSP之间用双口" title="双口">双口RAM作为通讯中介,双口RAM采用IDT709289L,其容量为64K×16Bit。
    根据零槽控制器和模块交换信息的特点,本模块采用寄存器基的A16/A24的操作模式,数据为16Bit。在A16的寻址方式下,每个模块都具有一组配置寄存器,系统可以通过访问这些寄存器来获得器件的种类、型号、生产厂家、地址空间及存储器需求等。在A24模式下,零槽控制器可为一个模块配置的存储空间,最大为256n×223-m,其中,n在A32模式下为1,在A24模式下为0,m为器件型号寄存器高四位所定义的数值。在本模块中?熏m取值为6,存储器地址空间为128KByte。总线接口采用ALTERA公司的EPM3256A实现。板内接口逻辑和所有控制逻辑均采用Verilog硬件描述语言完成。
    接口电路中的双口RAM用作命令、参数和数据传输,分为命令参数区和数据区。双口RAM被均分为16页,每页为4K×16Bit,前15页作为自定义的波形传输区,第16页为命令参数区。双口RAM的采用使模块的设计相对于VXI系统而言具有很大的独立性,从而使波形发生电路能够方便地移植到其它总线上。
    板内主控CPU芯片选用了TI公司的TMS320F206。它主要起智能控制作用,接收通过VXI总线发来的各种命令,然后分析命令,执行命令,协调模块各部分的工作。与非智能模块相比,本模块具有明显的优越性。除了自定义波形以外,零槽控制器只需向模块发简单的命令和参数,DSP就能完成所有的功能。这样就大大减少了上位机和控制器的时间开销,使它们有更多的时间处理其它事件,有利于保证整个VXI系统可靠、协调地工作。
    DSP外扩数据存储器包括一片IDT709289L和四片IDT7025S,IDT709289L的每一页映射到DSP数据区0x7000~0x7FFF,用于接口电路,页面的切换用DSP的I/O译码控制。4个IDT7025S均映射到DSP数据区0x8000~0x9FFF,分别用作四路DDS的波形存储器,4个IDT7025S的片选由DSP进行控制。DSP相关的译码及控制电路用一片EP1K10来实现。
    单个通道DDS波形发生及输出部分功能框图如图4所示。

 


    每通道的累加器及逻辑控制电路均采用一片EP1K30,用于实现累加器和步长控制字寄存器并完成板上地址译码、两级DAC控制、波形抖动补偿以及本通道的继电器控制等功能。累加器字长32位,时钟基准源频率为DSP输出频率的两倍频。第一级DAC用于波形的产生,第二级DAC用于控制输出幅度和波形正反相,并对第二级DAC输出进行了平滑滤波和放大处理。
    根据系统的性能要求,输出端采用了电压隔离放大器,与总线隔离,并且四个通道各自独立。本模块总共有一个数字地和四个模拟输出地。这样,既可以保证VXI系统和其它通道的安全,又减少了模块负载和VXI系统的相互干扰。
    波形数据存储器IDT7025S被等分为A、B两页,可以实现不同波形之间的无扰动切换,每页为4K×16bit。当DDS开始工作时,DSP先往A页写入波形数据,并在DSP的控制下产生波形;当要切换到另一种波形时,只需往B页写入另一种波形的数据,将32位累加器所产生的地址(累加器高12位)切换到B页即可。这样,可实现幅值和相位均连续的波形无扰动切换。
    每个通道采用两级12Bit DAC,它们均设置为双极性电压输出" title="电压输出">电压输出。第一级DAC的参考电压源" title="参考电压源">参考电压源可以接内部基准或外部载波,第二级DAC的参考电压源可以接内部基准、外部载波或第一级DAC电压输出。通过对两级DAC所接参考电压源的不同设置(通过继电器进行切换),可以分别实现如下功能:
    (1)用作直流输出,第二级DAC的参考电压源接内部基准。第二级DAC电压输出为:可通过输入不同的Din2控制直流输出幅值和正负极性。
    (2)用作函数发生器,第一级DAC参考电压源接内部基准,第二级DAC参考电压源接第一级DAC电压输出,波形存储器存放不同函数波形数据可输出不同的函数波形。此时,第一级DAC输出电压为:V1out=Vref×,其中,V1out为第一级DAC双向输出电压,Vref为DAC参考电压源,Din1为第一级DAC输入数据。在这里Vref为常值2V,式中只有Din1为变量,Din1对应波形存储器中4096个波形幅值数据(一个周期)。当波形数据以500kHz的速率依次装载到DAC时,由公式(1)得DAC输出波形的频率为:。第二级DAC输出电压为:,其中,V2out为第二级DAC输出电压,Din2为第二级DAC输入数据。
    (3)用作自定义波形发生器,第一级DAC和第二级DAC的设置同(2)所述,不同的是波形存储器的内容。零槽控制器按一定的规约向双口RAM(IDT709289L)的前15页写入自定义的波形数据,DSP亦按一定的规约取出数据并送往指定通道的IDT7025S,IDT7025S的A和B两页进行交替切换,从而连续输出自定义波形。
    (4)外加载波进行调制,第一级DAC参考电压源接外部载波,第二级DAC参考电压源接第一级DAC电压输出。外加载波为正弦信号Vsin(αx+θ),其中,V为载波最大电压值,α为自变量x的系数,θ为初始相位。第一级DAC电压输出为:这样即实现了载波的幅度调制。第二级DAC用来控制整个幅度,其输出电压Din2为第二级DAC的输入数据。
    (5)载波直接输出,只需第二级DAC的参考电压源接外部载波,第二级DAC电压输出为:V2out=Vsin(αx+θ)
    由于隔离放大器有一定的输出噪声,所以把信号放大器放在隔离放大器之前,低通滤波器放在隔离放大器之后,这样,既避免把隔离放大器的噪声放大,又有效地进行了平滑滤波。
    电压输出采用功率运放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%左右,显然大于理论的频率分辨率经分析,系统误差包括:(1)相位截尾误差;(2)电路板布局布线因素带来的干扰而导致的误差;(3)标准参考频率源稳定性的影响带来的误差;(4)D/A转换器引入的误差;(5)波形幅值存储数据的有限字长引入的量化误差。
    本模块中实现的DDS相对于传统方法具有种种优点。由于DSP强大的数据处理能力和灵活的控制功能,再加上FPGA具有的高性能、高集成度等特点,使模块具有优良的性能。另外,DDS的这种实现方法有很大的灵活性,可以进行复杂的波形调制。
    由于DDS数字化实现过程的固有特点,如累加器相位截断、波形幅度量化和数/模转换器的非线性等特性,使得输出信号频谱的杂散性较大,这一点当输出频率较高时尤为突出。因此,在设计的过程中要采取一定的改进措施,如对DDS的结构加以改进、优化波形存储器的结构、选择合适的数/模转换器件、使用抖动注入技术等,尽量减小其杂散性,从而使DDS系统具有更优良的性能。
参考文献
1 H.T.Nicholas.Ⅲ,H.Samueli.An Analysis of the Output Spectrum of Direct Digital Frequency Synthesizers in the  Presence Phase-accumulator Truncation.Proc.41 Annul Frequency Control Symposium,1987:495~502
2 RIERA,SALISJM.Spurious Performance of Direct Digital  Synthesizers Generating Modulated Signals.Proceedings of the 7th Mediterranean Electrotechnical Cinfer. Antalya,Turkey,1994:223~226
3 董在望,陈雅琴,雷有华. 通信电路原理. 北京:高等教育出版社,2002.8
4 张毅刚,彭喜元,姜守达等.自动测试系统.哈尔滨:哈尔滨工业大学出版社,2001.9

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。