学海荡舟手机网

主页 > 实用文摘 > 教育文摘_15 > > 详细内容

基于VXI总线的四通道智能化任意波发生器的研制_传感与控制论文

摘要:介绍了一种基于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所示。它主要由标准参考频率源、相位累加器、波形存储器、数/模转换器、低通平滑滤波器等构成。其中,参考频率源一般是一个高稳定度的晶体振荡器,其输出信号用于dds中各部件同步工作。dds的实质是对相位进行可控等间隔的采样。

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

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

显而易见,当k=1时输出最小频率,即频率分辨率为fmin=fc/2n。式中,fout为输出信号频率;k为频率控制字;n为相位累加器字长;fc为标准参考频率源工作频率。

2 波形发生器模块的实现

2.1 硬件部分

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

硬件主要可分为总线接口、dsp及逻辑控制电路、四通道dds波形发生及调制电路、信号调理和输出接口等几部分。其中,零槽控制器与dsp之间用双口ram作为通讯中介,双口ram采用idt709289l,其容量为64k×16bit。

根据零槽控制器和模块交换的特点,本模块采用寄存器基的a16/a24的操作模式,数据为16bit。在a16的寻址方式下,每个模块都具有一组配置寄存器,系统可以通过访问这些寄存器来获得器件的种类、型号、生产厂家、地址空间及存储器需求等。在a24模式下,零槽控制器可为一个模块配置的存储空间,最大为256n×2 23-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,idt9289l的每一页映射到dsp数据区0x7000~0x7fff,用于接口电路,页面的切换用dsp的i/o译码控制。4个idt7025s均映射到dsp数据区0x8000~0x9fff,分别用作四路dds的波形存储器,4个idt7025s的片选由dsp进行控制。dsp相关的译码及控制电路用一片ep1k10来实现。

图3

    单个通道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,它们均设置为双极性电压输出。第一级dac的参考电压源可以接内部基准或外部载波,第二级dac的参考电压源可以接内部基准、外部载波或第一级dac电压输出。通过对两级dac所接参考电压源的不能设置(通过继电器进行切换),可以分别实现如下功能:

(1)用作直接输出,第二级dac的参考电压源接内部基站。第二级dac电压输出为:v2out=(din2-2048)/2 12,可通过输入不同的din2控制直流输出幅值和正负极性。

    (2)用作函数发生器,第一级dac参考电压源接内部基,第二级dac参考电压源接第一级dac电压输出,波形存储器存放不同函数波形数据可输出不同的函数波形。此时,第一级dac输出电压为:v1out=vref×(din1-2048)/2 12,其中,vlout为第一级dac双向输出电压,vref为dac参考电压源,dinl为第一级dac输入数据。在这里vref为常值2v,式中只有dinl为变量,din1对应波形存储器中4096个波形幅值数据(一个周期)。当波形数据以500khz的速率依次装载到dac时,由公式(1)得dac输出波形的频率为:fout=k×(10 6/2 33)。第二级dac输出电压为:v2out=vlout×(din2-2048)/2 12,其中,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电压输出为: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系统具有更优良的性能。