基于SOPC的SPWM脉冲发生器的实现
图3为SPWM脉冲发生器中SPWM模块的原理图。本文引用地址:https://www.eepw.com.cn/article/180716.htm
本系统采用载波信号和调制信号不保持同步的异步调制方式。在异步调制方式中,通常保持载波频率固定不变,即三角载波的频率保持不变。三角载波的数字化是利用计数器来产生阶梯状的数字化三角载波,其核心部件是一个无符号加减计数器。利用其循环加减计数来产生阶梯状的数字化三角载波。计数器先执行加法,从0计数到某一值。在本系统中设定为255,再执行减法计数从255到0,从而实现三角载波。本系统中三角载波的峰峰值为255。设O为数字化三角载波的峰值,TCLK为加减计数器的时钟周期,Ts为三角载波周期,则这3者之间的关系为:
下面给出Verilog HDL设计的三角载波发生器的部分程序。
正弦调制波产生采用直接数字频率合成器DDS方案实现。DDS技术是一种采用数字化技术、通过控制相位的变化速度,直接产生各种不同频率和不同幅度信号的频率合成方法。DDS具有较高的频率分辨率,可实现快速的频率切换且在频率改变时能够保持相位的连续,很容易实现频率、相位和幅度的数控调制。DDS系统的核心是相位累加器,它由一个加法器和一个相位寄存器组成,每来一个时钟,相位寄存器以步长增加,相位寄存器的输出与相位控制字相加,然后输入到正弦查找表地址上,正弦查找表包含一个周期正弦波的数字幅度信息,每个地址对应正弦波中0°~360°范围的一个相应点。在FPGA内部开辟一块ROM区域,将通过程序生成的离散时间正弦波幅值存入其中。图4所示为正弦调制波的顶层文件设计。
在本系统中,将256个离散时间正弦波幅值存入ROM中。在系统上电后,根据设定的频率按照相位与地址一一对应的关系从表中依次读出预先存好的幅值。本系统采用异步调制方式,三角载波的幅值与频率是固定的,这样通过改变正弦调制波的频率与幅值,则改变系统的载波比与调制。
幅度调节模块是控制正弦波的输出幅度,从而控制SPWM的脉冲宽度。这一功能是通过并行乘法器实现的。它实现容易,运算速度快,可靠性高,可以满足系统的高效要求。在系统中乘法器对正弦函数表中取出的正弦幅值进行调制深度加权调整。设某时刻正弦调制波幅值为YIN相应的调制度所对应的一整数为λ,则此时输出正弦信号的幅值YOUT:
式中,λ的取值范围为0~255。因为正弦离散时间幅值范围为0~255,所以通过一个8位的并行乘法器实现λYIN。在数字电路中将数据右移1位等同于数值除以2的效果,所以取λYIN结果的高8位作为YOUT的值,以此实现除以256的效果。
数字比较器就是将三角载波信号的幅值与正弦调制信号的幅值进行比较。在系统中,三角载波信号与正弦调制信号均是以数字方式实现的,所以将三角载波的计数值与正弦调制信号的幅值进行比较,然后根据二者数值的大小比较得出“1”与“0”两种逻辑量。在正弦调制信号与三角载波信号两个相邻的交点之间,若正弦波幅值数据大于三角波幅值数据,则通过比较后,所得的逻辑量为“1”,反之则为“0”。
评论