任意波形电源的设计
文章编号:1003-6199(2011)04-0077-04
摘 要:介绍一种幅值和频率都连续可调的任意波形电源,针对电磁阀性能检测而设计,具有较好的稳定性、精确性、安全性和快速启动性,可以瞬间输出10 A电流。以单片机为控制系统,控制DDS模块产生1 Hz~10 KHz的波形信号,控制放大模块对其进行幅值和功率放大,得到0 V~40 V的波形信号,作为电源的最终输出。
关键词:任意波形发生器;FPGA;DDS;流水线结构;AD7541
中图分类号: TP216 文献标识码:A
Design of Arbitrary Waveform Power Supply
AI Kaiwen HU Yuiming SHEN Runxia
(College of Electrical Engineering,Guangxi University,Nanning 530004,China)
Abstract:In this paper,a arbitrary waveform power supply is introduced,which frequency and voltage is continuously controllable,and which is designed to detect the performance of a solenoid.The power supply is stability,accuracy,security,it can fast startup and output a current about 10 AMP immediately.A singlechip is used as control system to control both the DDS module and the Magnifing module.The DDS module generate a signal with the frequency from 1Hz to 10KHz,and the Magnifing module magnify the amplitude and power of the signal,then a signal with amplitude from 0V to 40V is generated,finally the signal is used as the output of the power supply.
Key words:arbitrary waveform generator;FPGA;DDS;pipeline architecture;AD7541
1 引 言在工业生产中,往往需要一些特定的电信号来检测产品的性能或者检测机器的故障,这些信号的波形、幅值、频率要求在一定范围内连续可调。例如电磁阀,一种在冶金、化工、机械、电力等都广泛使用的控制流体方向的自动化基础元件,其可靠性和安全性非常重要,需要使用特定的电信号对电磁阀的启动、长时间工作稳定度、瞬间工作特性等整体性能进行测试。信号发生器在电子技术领域广泛应用于电子电路、自动控制和科学实验等,通常我们使用信号发生器来产生这些信号,但国内电子仪器市场上的任意信号发生器价格昂贵。
因此针对电磁阀性能的检测,而设计一种幅值在0V~40V连续可调,频率在1Hz~10KHz连续可调的任意波形信号电源。电源的最大输出电流为10A,最大输出功率为400W。电源还需要承载瞬间输出大电流,需要长时间高功率的稳定工作。
2 系统结构和原理简介
采用AT89C52单片机做系统的控制部分,控制波形信号的幅值、频率和相位。主要功能模块是波形信号产生电路和波形信号放大电路。外围设备有E2PROM、按键开关组、LCD显示器,分别用来存储、改变和显示当前幅值、频率和相位。系统结构图如图1所示。
系统的工作原理是单片机根据开关组得到键值,控制波形信号产生模块产生对应频率和相位的波形信号,波形由PC机控制;同时控制波形信号放大模块改变波形信号的幅值,得到任意波形信号。另外,波形放大模块还有放大功率的作用,由辅助电源提供功率,使之可以直接驱动负载,承载瞬间的大电流冲击。
3 系统硬件设计
硬件的核心部分是由单片机控制的波形信号产生模块和波形信号放大模块组成。波形信号产生模块由FPGA、DAC转换器、低通滤波器构成。
31 使用FPGA实现DDS
相比专用的DDS芯片功耗大、价格高,且只能产生固定的波形信号,FPGA除克服上述缺点外,还具有高速度、高分辨率、低失真度、带宽大等优点,非常适合于设计检测仪器仪表。
使用FPGA构成直接数字频率合成器(DDS)[1-2]的数字控制振荡器NCO,用于产生数字波形信号,然后通过DAC转换为模拟波形信号,最后通过低通滤波器输出平滑的波形信号,如图2所示。
数字控制振荡器NCO主要由相位累加器A[3-4]、两个加法器、波形ROM构成。输入量freq和phase分别为32位频率控制字和32位相位控制字,相位累加器A在每个时钟clk周期内对频率控制字freq进行线性累加,如公式(1);然后加上相位控制字phase得到一个相位值result,如公式(2);根据此相位值作为ROM的寻址地址,得到数字波形信号的幅度Dout。
A=freq+A(1)
result=A+phase (2)
由于相位累加器的字长为32位,DDS的最终输出频率f=fclk*freq/(232),时钟clk的频率fclk为200MHz,那么freq=21.474836*f,输出频率f的分辨率为200M/(232)Hz=0.047Hz。
32 使用流水线结构[5]的相位累加器
公式(1)和公式(2)是2个32位的加法。如果用级联结构的32位加法来实现,完成一次加法运算的过程中,高一位的加法必须先等低一位的加法运算完毕得到进位才可以进行,这样2个32位加法运算的延迟时间将会是64个1位加法运算的延迟时间总和。为了缩短延迟时间,本设计采用流水线技术实现32位的加法,将32位的数据分成4段8位的数据,将2个32位的加法分成8个8位的加法进行,每一个加法器都在时间上相对独立且同时进行,这样的加法运算延迟时间只是8个1位加法运算的延迟时间总和。该流水线结构如图3所示,有六级流水结构,有1个64位寄存器r1,1个65位寄存器r2,1个58位寄存器r3,1个50位寄存器r4,,1个42位寄存器r5,1个33位寄存器r6,一个32位累加寄存器A,8个8位全加器,如图3所示。这种结构需要六个时钟周期等待,之后每个时钟周期都会输出加法结果,也就是输出波形有6个周期的延时。
(其中,图中方框代表8位寄存器,长方框代表1位寄存器,内含加号的梯形代表8位加法器)
整个流水线的工作过程为:当DDS开始工作或者复位时,相位累加器A中的数据清零,流水线开始工作,有如下6个过程:
1)第一级流水线将freq和phase按{phase[31:24],freq[31:24],phase[23:16],freq[23:16],phase[15:8],freq[15:8], phase[7:0],freq[7:0]}这种顺序赋给寄存器r1。
2)第二级流水线将累加器A[7:0]与r1中原freq[7:0]相加得到新的A[7:0]和进位i1,并赋给r2[8:0],r1中剩下的数据直接赋给r2。
3)第三级流水线将累加器A[7:0]与r2中原phase[7:0]相加得到result[7:0]和进位i2,并赋给r3[8:0],将累加器A[15:8]与r2中原freq[15:8]和进位i1相加得到新的A[15:8]和进位i3,并赋给r3[17:9],r2中剩下的数据直接赋给r3。
4)第四级流水线将累加器A[15:8]与r3中原phase[15:8]和进位i2相加得到result[15:8]和进位i4,并赋给r4[16:8],将累加器A[23:16]与r3中原freq[23:16]和进位i3相加得到新的A[23:16]和进位i5,并赋给r4[25:17],r3中剩下的数据直接赋给r4。
5)第五级流水线将累加器A[23:16]与r4中原phase[23:16]和进位i4相加得到result[23:16]和进位i6,并赋给r5[24:16],将累加器A[31:24]与r4中原freq[31:24]和进位i5相加得到新的A[31:24]和进位i7,并赋给r5[33:25],r4中剩下的数据直接赋给r5。
6)第六级流水线将累加器A[31:24]与r5中原phase[31:24]和进位i6相加得到result[31:24]和进位i8,并赋给r6[31:24], r5中剩下的的数据直接赋给r6。r6[31:0]就是我们的最终结果result[31:0]。
使用ModelSim仿真软件,该流水线技术DDS的仿真波形图如图4所示,其中ROM表中的波形是正弦波。
33 DAC转换模块
DAC采用12位并行数模转换器AD7541,采用双极性输出方式,输出公式为V= VREF-VREF*NB/211。其中,VREF为输入基准电压,NB为数字输入量(取值范围为0至212-1)。VREF取2.048V,V的取值区间为[2.048,-2.047]V,精度为0.001V。为了使上下对称,控制NB的取值范围为1至212-1,那么V的取值区间为[2.047,-2.047]V,再通过反相比例放大电路,将电压反向放大1/2.047倍,最终信号输出在[-1,1]V之间,精度为0.0005V。
34 ROM中波形数据的采集
在MATLAB中生成ROM中的波形数据,数据以.mif格式存储,然后通过PC机下载到FPGA的ROM中。
假设周期波形的函数为f(x),求出函数的周期T,那么f(x)=f(x+T),求出函数f(x)的绝对值函数|f(x)|的最大值MAX,那么f(x)的取值区间为[-MAX,MAX]。ROM表的寻址地址是14位,那么一共需要在[0,T)上等间隔采集214(16384)个数据,,而DAC是12位的数模转换器,那么每个数据需要一一映射到12位DAC转换器的12位数据上,映射形式如表格1所示。
35 波形信号放大模块
波形信号放大模块是一个上下对称的电路,上半部分为正信号放大,截止负信号,下半部分为负信号放大,截止正信号。电路通过分压电阻R1、R2将信号送给电压比较器,通过电压负反馈[6-7]将信号反馈给输出,输出电压Vout的计算公式为:
Vout=Vin*R2/R1 (3)
其中,R2采用一个数控电位器X9313W和一个数控电位器X9313U串联,编程控制R9的取值范围为[323,12920]欧姆,步进为323欧姆,R1的值为3230欧姆,那么Vout将为输入信号的[0.1,40]倍,精度为0.1倍。
使用Pspice对该电路进行仿真:输入Vin为1Hz的正弦信号,当放大倍数分别是1、5、10、20、40时,输出信号Vout的仿真波形图如图5所示。
4 结 论
使用FPGA来替代传统的DDS芯片,具有高分辨率、低失真度、低功耗等优点。采用流水线的相位累加器可以进一步增加输出频率的精度。FPGA的ROM中的数据可以根据实际情况进行更改,体现了电路的灵活性。使用并行DAC,保证数据的转换速度,保证电路在高频时信号不延时或失真。
参考文献
[1] 刘畅,李智.基于FPGA的任意波形发生器的设计[J] .微计算机信息,2010,2:131-132.
[2] M Y Chua , V C Koo. FPGA-based chirp generator for high resolution UAV SAR[J]. Progress In Electromagnetics Research, 2009,99:71-88.
[3] 钟文峰,胡永忠.基于FPGA的频率合成器的实现[J] .科技信息,2010,23:111-113.
[4] Kesoulis M J, Koukourlis C S, Lygouras J N. Design and implementation of a DDSbased multicarrier GMSK modulator [J] . International Journal of Communication Systems,2009,8:971-987.
[5] 李辉.基于FPGA的数字系统设计[M] .西安:西安电子科技大学出版社,2008.11.
[6] 倪本来.高稳定度电源[M] .北京:人民邮电出版社,1982.12.
[7] [日]互川治郎.实用电源电路设计[M] .北京:科学出版社,2006.1.
收稿日期:2011-10-18
基金项目:广西研究生教育创新计划资助项目(GXU11T32521)
作者简介:艾凯文(1986—),男,江西吉安人,硕士研究生,研究方向:智能自动化(E-mail:akwkevin@126.com);胡桂明(1961-),男,广西桂林人,副教授,博士,硕士生导师,研究方向:智能优化控制和智能信息处理。
下一篇:自适应跳频通信系统研究