FPGA/ASIC技术
摘 要: 基于运放的信号发生器精度低且稳定性和可调节性差,而基于DDS的信号发生器则成本高、电路复杂。为此提出了基于FPGA+PWM的多路信号发生器设计方法。该方法硬件上无需DAC与多路模拟开关,由FPGA产生调制输出波形信号所需的PWM脉冲波,经二阶低通滤波和放大电路后即可得到所需波形信号。实验证明,该多路信号发生器幅值分辨率高,频率精度高,且具有良好的直流性能,各通道可独立产生三角波、锯齿波、正弦波、方波且输出稳定。且其成本低,设计灵活,可扩展性强,可应用于各种场合。
PWM(Pulse Width Modulation)脉宽调制技术是一种对模拟信号电平进行数字编码的方法,通过对一系列脉冲的宽度进行调制,等效出所需要的波形[1]。PWM技术对波形调制的灵活性和通用性好,并且对硬件要求低,应用广泛[2]。目前的PWM信号发生器大多存在周期调节不方便、路数有限等问题,而随着大规模集成电路的发展,FPGA拥有了资源丰富、工作速度快、使用灵活、稳定性高等特点。在此基础上,本文提出了一种基于FPGA+PWM的多路信号发生器,结合二者的优势,产生波形、频率、幅度可独立调节的多路波形信号[3]。
根据面积等效原理:冲量相等而形状不同的窄脉冲加在具有惯性的环节上,其效果基本相同(冲量是指窄脉冲的面积;效果基本相同指的是输出响应波形基本相同)。基于该理论生成的PWM控制技术即是利用一系列等幅不等宽的脉冲(不同占空比的矩形波),经过一定的信号处理来生成所需的各种波形[4]。
对于三角波的生成,需要脉宽参数按照先线性增大然后线性减小的规律来实现,其他波形(如矩形波、锯齿波等)可以用相同的原理实现。
在实现正弦波信号时,需要计算出正弦信号表,根据波形信号的频率与幅度,通过查表的方式把RAM中的脉宽参数传递给PWM发生器,得到脉冲宽度按正弦变化的PWM脉冲波[7]。
在FPGA中利用计数器和比较器来产生PWM矩形脉冲波,如图4所示,在一个进程中用一个寄存器保存PWM周期参数T,T_Counter在系统时钟的驱动下进行自加,直到T_Counter=T时T_Counter复位为0,完成一次PWM周期;在另一个进程中通过比较T_Counter与脉宽参数PWM_Width,从而控制PWM脉冲波的脉宽;为了更新PWM_Width,在T_Counter计数到T-1时向波形控制单元报告单次脉冲结束,波形控制单元接收到结束标志后更新脉宽参数,使PWM发生器在下一周期产生新的PWM脉冲波。
单路信号的波形控制单元和PWM发生器仅需要很小的FPGA资源和一个I/O引脚就能实现,并且外部滤波电路占用的PCB面积也比传统DAC实现的信号发生器要小很多,所以只要把单路信号发生器进行简单的复制就能实现多路信号的产生,且各个通道之间具有很好的独立性,互不影响,这是FPGA相比其他控制芯片所具有的优势。
电路使用XC3S100E来实现FPGA控制单元的设计。XC3S100E有108个可分配的用户引脚,使用28个作为通信端口,剩余80个引脚进行PWM脉冲信号调制输出;电路使用fosc=120 MHz的外部晶振,经内部DCM(时钟控制管理模块)倍频后获得240 MHz的系统时钟。设置PWM脉冲发生计数器位数为N=14 bit。滤波电路通带增益设置为1(Rf=0,断开R1),所实现的信号发生器主要性能参数如下:
通过上位机设置各个通道的波形参数,利用Tektronix TDS100B(40 MHz,500 MS/s)示波器测量各通道的输出波形,得到如图6所示波形信号输出。
从图6中可以看出,信号源输出波形光滑,频率稳定度高,而且各通道工作独立性高,波形、频率、幅度均可独立调节,满足设计要求。
基于FPGA+PWM的多路信号发生器的设计结合了FPGA与PWM技术的优势,可同时输出80路信号,各路信号的波形、频率、幅值均可独立调节。实验证明,该信号发生器具有良好的直流性能,其精度可达到0.2 mV,同时可产生良好的三角波、锯齿波、正弦波、方波,还可通过上位机产生任意波形信号,输出稳定,频率精度高。其成本低,设计灵活,可扩展性强,可应用于工业控制、LED阵列控制以及测量、通信等各种不同的场合。
全部0条评论
快来发表一下你的评论吧 !