基于SOPC的SPWM脉冲发生器的实现
扫描二维码
随时随地手机看文章
1 SPWM产生原理
正弦脉宽调制(SPWM)技术,就是产生与正弦波等效的一系列等幅不等宽矩形脉冲波形。实现SPWM调制的方法很多,采样型SPWM法是其中较常用的一种方法,它分自然采样法和规则采样法。自然采样法是目前最好的一种SPWM实现方法,因为利用这种方法所得到的SPWM波形最接近正弦波,而数字化自然采样法是用数字电路实现自然采样法的方法,并且数字化自然采样法的调制效果可以和自然采样法的调制效果相逼近。本设计中采用数字化自然采样法,即SPWM脉冲产生方法采用正弦调制波与三角载波相比较的传统方法,但是正弦调制波、三角载波和比较逻辑等均采用基于FPGA的数字化方法来实现。图1所示为SPWM波产生方式示意图。通常采用等腰三角波作为载波,因为等腰三角波上任一点的水平宽度和高度成线性关系且左右对称,当它与任何一个平缓变化的调制波相交时,如果在交点时刻对电路中的开关器件的通断进行控制,就可以得到宽度正比于信号波幅值的脉冲,这正好符合正弦脉宽调制的要求。
2 基于SOPC的SPWM波形的实现
SPWM脉冲发生器的SOPC系统框图如图2所示。其中,Nios处理器是Ahera公司免费提供的32位CPU,作为软核嵌入FPGA中,作为整个SOPC系统的中央处理单元,Nios之外的各个模块接到Avalon总线上,通过Avalon总线进行数据交换。
图2中,SPWM模块由频率变换、正弦调制波生成、三角载波生成、幅度调节、数据比较、死区时间这6部分组成。功能是按设定的载波比和调制度,输出符合要求的高精度高稳定性的SPWM脉冲波;SRAM为系统提供程序运行空间和数据存储空间。在QuartusⅡ的SOPC Builder中实现,生成SRAM控制器;Flash电路用于存储FPGA的配置文件和NiosⅡ的软件代码;按键、LCD液晶显示电路通过按键对载波比和调制度进行设定,通过Nios处理器将设定参数送至SPWM模块,使之产生相应参数的脉冲波。LCD则显示系统当前工作状态的参数设置。[!--empirenews.page--]
图3为SPWM脉冲发生器中SPWM模块的原理图。
本系统采用载波信号和调制信号不保持同步的异步调制方式。在异步调制方式中,通常保持载波频率固定不变,即三角载波的频率保持不变。三角载波的数字化是利用计数器来产生阶梯状的数字化三角载波,其核心部件是一个无符号加减计数器。利用其循环加减计数来产生阶梯状的数字化三角载波。计数器先执行加法,从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”。[!--empirenews.page--]
死区产生部分同样具有非常重要的作用,通过比较产生的SPWM波形上下沿相互对应,而没有将其错开一定的时间。如果这样的SPWM脉冲直接送入智能功率模块,就会导致其上下两个桥臂直通而短路。必须在开关管开关通断切换时设置一段时间使上下桥臂满足同时关断,即设置通常所说的死区电路。死区部分的输入是来自比较部分输出结果的一路SPWM波,输出是两路互补的带一定死区时间的SPWM波。本系统中,设计的死区时间为2μs。部分代码如下。
在QaultusⅡ软件中完成顶层文件的编译后,生成.pof文件和.sof文件,将编译产生的.sof文件通过JTAG下载线下载配置到SOPC中。图5为死区时间设定为2μs的时候利用逻辑分析仪测试的SPWM脉冲波形的情况。v为不加死区时间的单相SPWM波形,pa与pb是死区部分的输出,是两路互补的带一定死区时间的SPWM波。
3 结束语
本文提出一种基于SOPC系统实现SPWM数字化自然采样脉冲发生器的方案,并给出具体的实现方法。该电路通过系统可编程芯片实现。用Verilog HDL硬件表述语言完成了功能模块的设计实现,使得电路简单,可靠性高,稳定性好。同时,由SOPC系统实现的此SPWM脉冲发生器,设计灵活,可在线编程,可根据不同要求的工作场合进行系统参数的修改。