1、发动机伺服系统任意波形发生器的设计与实现王 彤 威 (北京航天测控公司,北京 100830)摘要:文章介绍了为发动机伺服系统设计的任意波形发生器 VXI 模块部分电路的实现,详细说明了在一定时间段内实现波形的形状、波形的频率、波形的幅度可以根据用户的需求任意变化的设计与实现。关键词: 任意波形发生器;VXI 总线Design and Realization of Arbitrary Waveform Generator in a Engine Servo SystemWANG Tong-wei(Beijing Aerospace M VXI Bus 1 前 言在固体火箭发动机伺服系统的测试中,
2、需要在 80s 的时间内不间断地输入多种激励信号,其中既有测量暂态特性的方波信号,又有测量频率特性的正弦波信号,以及测量速度特性的三角波信号,还要求信号源输出波形的幅度、频率可以变化。同时单个模块双通道同步输出,多个模块通道间同步输出。以前的波形发生器只能输出单一、连续的波形,在一定的时间内波形的形状、幅度以及频率变化不能满足要求。基于 VXI 总线的任意波形发生器正是基于固体火箭发动机伺服系统的需要设计而成。2 模块的设计与实现2.1 模块的结构与组成任意波形发生器 VXI 模块硬件电路包括:VXI 接口电路、地址发生电路(DDS) 、波形存储器 RAM、D/A 转换器等电路,具体的原理框图
3、如图 1 所示。任意波形发生器的波形形状、频率、幅度、相位、波形输出的触发方式、波形个数等参数均可以依据用户的要求变化,这些参数的设置与控制由 VXI 总线接口电路与模块的数据交换实现的,可见 VXI 总线接口电路是设计的关键之一。为了提高波形数据的加载速度,接口采用了 A24/A16 寻址,利用块传输的方式,一次加载 64K 个字的波形数据,通过块传输加载波形数据的时间可以在 10ms 以内。同时接口电路使用可编程逻辑器件 CPLD,便于电路的修改与调试,大大缩短了模块的研发时间。任意波形发生器采用了直接数字合成技术(DDS) ,即用数字量去产生模拟量。直接数字合成技术的核心电路为相位累加器
4、电路,相位累加器为波形存储器 RAM 提供地址,经过D/A 转换器转化成模拟量,通过信号调理电路的处理,输出用户所需的波形。为了提高低频信号的频率分辨率,本模块相位累加器采用了 48 位,电路中使用的仅仅是高 16 位,剩下的低位地址输出不使用。因为假如全部的相位累加器的相位值都用于寻址波形存储器,波形存储器的存储容量将随着相位累加器的位数呈指数函数增加,在实际电路中从技术条件和所需仪器功能因素上考虑,无限制地增加存储容量是无法实现的,这就是相位截断。通过相位截断可以大量地节省存储空间,保证在有限的存储空间内输出频率分辨率高的波形。相位累加器电路也是本模块设计的关键电路之一。2.2 模块功能的
5、要求根据发动机测试过程中的需要,要求在 80s 时间内不间断输入波形,要求波形发生器 VXI 模块提供所需的信号。在本文中以 6.938s 为一个时间段具体说明模块实现这样波形输出的电路设计。下面是 6.938s 内输出波形的情况:(1)在 0s0.5s 时间内,要求输出 0V 电压;(2)在 0.5s1.5s 时间内,要求输出频率为 1Hz 的方波;其中在 0.5s0.9s 时间内,输出时间为 0.4s 半个周期的方波,幅度为 8V;在0.9s1.1s内,输出时间为 0.2s 半个周期的方波,幅度为 8V;在 1.1s1.5s 内,输出时间为 0.4s 一个周期的方波,幅度为 0.64V,偏
6、置电压为 7.2V;(3)在 1.5s2s 时间内,要求输出 0V 电压;(4)在 2s4.438s 时间内,要求输出频率为 2.438Hz 的三角波;其中 2s2.813 s 时间内,输出时间为 0.813s 一个半周期的三角波,幅度为 8V;在 2.813s4.438s 时间内,输出时间为 1.625s 一个半周期的三角波,幅度为 8V;(5)在 4.438s4.938s 时间内,要求输出 0V 电压;(6)在 4.9386.938s 时间内,要求连续输出频率变化的正弦波;其中 4.938s5.938s 时间内,输出频率为 1Hz 的正弦波,幅度为 8V;在5.938s6.938s 时间内
7、,输出频率为 2 Hz 的正弦波,幅度为 8V;(7)在 6.938 s 以后 0.5s,输出电压为 0V;(8)6.938s 到 80s 之间的波形略。具体的波形如图 2 所示。2.3 模块功能的设计与实现系统要求在一定的时间内输出波形的形状、频率以及幅度改变,设计需要考虑波形数据(决定波形形状)和频率控制字以及控制波形输出时间的控制字何时加载;如何提高波形数据的加载时间;波形频率改变的过程中如何保证两个波形的输出的连续性;以及如图 1 双通道任意波发生器 VXI 模块原理VXI总线背板连接器VXI总线接口通道 1 相位累加器通道 1 波形存储器累加器通道 2波形存储器累加器通道 2相位累加
8、器D/A D/AD/A D/A何利用波形存储器的有限空间存储波形数据;如何实现一种波形的频率连续变化;如何实现双模块四通道的同步输出等一系列问题。电路设计中采用了一片 Altera 公司 EPF10K20 的 FPGA 实现控制电路,在 FPGA 中主要有定时器、相位累加器、相关寄存器以及相关的逻辑控制等电路,结合本模块的设计主要讲述以下电路的设计与实现:2.3.1 波形存储器为保证输出波形平滑,采样的点数越多越好。在本模块的设计中采用了 ISSI 公司的 64K存储容量,16 位数据线的 SRAM 存储器。在以前的设计中,都是将波形数据存储在 SRAM中,由地址发生器连续地读取 SRAM 中
9、的波形数据输出波形。在实际的发动机伺服系统中,需要的波形变化各异,可能在 80s 或 100s 内连续地发送几种波形,而且有的波形有可能连续输出 32 个周期或 16 个周期,也许更多的周期。如果将这么多的波形数据都存储在同一个波形存储器中,受存储器存储容量的限制,这种情况显然是不可能实现的。因此在设计中,将同一种波形形状的数据存储在波形存储器中,从而就解决了存储空间受限的问题,同时为了使波形数据传输的速度快,采用了块传输的方式,可以保证传输 64K 个字的波形数据时间在 10ms 以内。 2.3.2 硬件定时器电路的设计在 0s6.938s 波形输出的图形中,可以看到在不同形状波形输出的过程
10、都有 0.5s 的 0V电压输出,利用这一段时间,加载下一段波形的波形数据和频率控制字以及输出 0V 的时间,设计中采用定时器来判断波形是否开始输出还是结束输出。比如,从图 2 可以看到有 0.5s 的 0V 电压输出,在这段时间内加载方波的波形数据和方波的输出时间以及 0.5s 的输出时间,当定时器计数到 0.5s 的时间后,使能 DDS 工作的控制位,读取 RAM 中的波形数据,同时加载波形输出的时间,当定时器计数到以后,停止波形的输出,以下几种波形的输出以此类推。从上面的分析可以看到计数器的设计在本模块设计过程中的重要性。2.3.3 同种波形频率的切换以图 2 中的方波为例,说明同种波形
11、频率的切换问题的实现。在方波输出的 1s 时间内需要输出 0.4s 的半个周期的方波、0.2s 的半个周期的方波以及 0.4s 一个周期的方波。64K 存储容量空间将均分这几段波形, 64K*0.4 为第一小段方波的波形数据, 64K*0.2 为第二小段方波的波形数据,64K*0.4 为第三小段方波的波形数据,在频率控制字写入方波的输出时间 1s,从而实现了波形频率的切换。对于连续地输出整周期的正弦波,为加快运行速度,可以不采用这种波形加载方式,只将一个整周期的波形数据一次性加载,通过硬件电路与软件程序的结合,改变频率控制字实现频率的连续切换。3 结束语在实际测试系统中,需要的激励源不仅能够提供标准的波形,同时也提供用户要求的变化各异的波形。本文介绍了适用于发动机伺服系统的波形发生器 VXI 模块的构成,并详细介绍了在一定时间内发出波形形状、频率、幅度可变电路的实现方法。该模块目前开始应用于某发动机测试系统中。参考文献: 1 李春明. 数字波形合成技术理论研究与实践. 哈尔滨工业大学博士学位论文 . 1995: 19-35.图 2 输出的波形图 2 廖娟娟,安琪. 基于可编程逻辑阵列的 VXI 总线消息基接口的设计. 全国第三届 VXI 技术专题报告会论文集, 1998: 30-32.