基于STC系列单片机的SPWM波形实现

出处:chunyang 发布于:2010-03-24 16:55:50

  摘要:文章在比较了多种生成SPWM波的技术基础上,给出了利用等效面积法来产生SPWM波形的工作原理,详细介绍了由单片机STCl2C5410AD的可编程计数器阵列PCA实现SPWM控制软件的编写过程,并给出了SPWM中断服务程序的流程图。将结果应用于由MICA421驱动器驱动的四个MOSFET器件FQAl60N08所组成的逆变桥上进行实际调试,实验结果表明,该方法具有电路简单、计算量小、实时性强的优点,采用在线计算和查表技术相结合,较好的解决了实时控制的要求,具有较好的应用价值。

  0 引言

  近年来,随着逆变电源在各行各业应用的日益广泛,采用正弦脉宽调制(SPWM)技术控制逆变电源提高整个系统的控制效果是人们不断探索的问题。对SPWM的控制有多种实现方法,其一是采用模拟电路、数字电路等硬件电路产生SPWM波形,该方法波形稳定准确,但电路复杂、体积庞大、不能进行自动调节;其二是借助单片机、DSP等微控制器来实现SPWM的数字控制方法,由于其内部集成了多个控制电路,如PWM电路、可编程计数器阵列(PCA)等,使得这种方法具有控制电路简单、运行速度快、抗干扰性强等优点。本文介绍一种利用STC系列单片机实现SPWM波形的方法,并将由STCl2C5410AD产生的单极性SPWM波应用于单相逆变电源,实验结果证明了利用其实现SPWM波形的可行性和有效性。

  1 正弦脉宽调制技术SPWM

  SPWM控制方案有两种:即单极性调制和双极性调制法。单极性法所得的SPWM信号有正、负和0三种电平,而双极性得到的只有正、负两种电平。比较二者生成的SPWM波可知:在相同载波比情况下,生成的双极性SPWM波所含谐波量较大;并且在正弦逆变电源控制中,双极性SPWM波控制较复杂。因此一般采用单极性SPWM波控制的形式。

  由单片机实现SPWM控制,根据其软件化方法的不同,有如下几种方法:自然采样法、对称规则法、不对称规则法和面积等效法等。理论分析发现面积等效法相对于其它方法而言,谐波较小,对谐波的抑制能力较强。而且实时控制简单,利于软件实现。因此本文采用面积等效法实现SPWM控制。


  图l为SPWM面积等效法原理示意图。

  假设所需的输出正弦电压为U0=Umsinωt,式中:Um为正弦波幅值。利用面积等效法正弦波小块面积S1与对应脉冲面积S2相等的原则,将正弦波的正半周分为N等分,则每一等分的宽度为兀/N,计算出半个周期内N个不同的脉宽值。相关公式如下:

  正弦波S1面积为:


  逆变器输入直流电压为UD,脉冲面积S2与S1相等,即有:


  所以第k个区间的脉冲宽度δk

  式中:M为调制度。N为半个周期内的脉冲个数。综合考虑载波比、输出谐波等因素,在此N取60。由上式计算出的SPWM脉宽表是一个由窄到宽、再由宽到窄的60个值的正弦表,将其存入STC单片机的ROM中以供调用。

  2 STC系列单片机生成SPWM波原理

  2.1 STC系列单片机简介

  STCl2系列单片机是美国STC公司在8051单片机标准的内核基础上改进推出的一个增强型功能的8051的单片机,从引脚到指令上完全与8051单片机兼容。突出的特点就是其具有可编程计数器阵列PCA。以STCl2C5410AD为例,有四路可编程计数器阵列PCA/PWM。PCA含有一个特殊的16位定时器,有4个16位的捕获/比较模块与之相连。四个模块的公共时间基准由PCA定时器决定,可以通过PCA模式寄存器CMOD SFR的CPSl和CPS0位确定。每个模块可编程工作在4种模式下:上升/下降沿捕获、软件定时器、高速输出或PWM脉冲输出。文中SPWM生成功能主要靠PWM脉冲输出模式完成。图2即为PCA模块脉宽调节PWM输出模式框图。

  在PCA PWM输出模式中,当CLSFR的值小于{EPCnL,CCAPnL}时,输出为低,当PCA CL SFR的值等于或大于{EPCnH,CCAPnH}时,输出为高。当CL的值由FF变为00溢出时,{EPCnH,CCAPnH}的内容装载到{EPCnL,CCAPnL}中。这样就实现了无干扰的更新PWM。要使能PWM模式,模块CCAPMn寄存器的PWMn和ECOMn位必须置位。本文中,SPWM波形是综合使用了模块O的脉宽调节(PWM)模式和模块1的16位软件定时器模式,通过软件中断的形式实现的。

  与此同时,STCl2C54lO单片机还具有快速A/D转换功能。有一个lO位、8路通道的A/D转换器。可以方便的对输入、输出的电压、电流进行监控和显示。

  2.2 SPWM波生成方法

  利用STC系列单片机产生SPWM波的基本原理是:将载波周期数值赋给PCA模块l的16位捕获/比较模块寄存器CCAPlH(高8位)和CCAPlL(低8位),PCA定时器的值CH(高八位)、CL(低八位)与模块捕获寄存器的值相比较,当两者相等时,产生PCA中断。在中断中,调用模块0的PWM脉宽调节模式,将下一个SPWM波的脉宽通过CCAP0H装载到CCAPOL中,这样就可以实现无干扰的更新PWM。


  图3中即为由软件实时计算好的一路单极性SPWM波形的脉宽示意图。在每个固定的载波周期内,不同脉宽数值组成一个正弦表格的形式。若选用模块O(P3.7)输出此路SPWM,首先将模块0的PCA模块工作模式寄存器定义为8位PWM模式,将16位计数器定时器CH、CL清零,PCA PWM模式辅助寄存器O清零(保证捕获寄存器EPCOH(高八位)、EPC0L(低八位)固定为零,PWM波比较的数值只与PCA模块0的捕获寄存器CCAPOH(高八位)、CC2APOL(低八位)有关),模块l的捕获寄存器CCAPlH(高八位)、CCAPlL(低八位)送入载波周期的高八位和第八位数值,PCA比较/捕获模块寄存器1(CCAPMl)定义为使能比较功能,允许匹配产生中断。将个脉宽值sin[0]装入CCAP0H,开PCA模块中断及低压检测中断,开总中断,启动PCA计数。当16位计数器/定时器的数值与模块1中捕获/比较寄存器的数值相等时,产生一个CCF中断;在中断程序中,清中断标志位,重新给模块1的捕获寄存器CCAPlH(高八位)、CCAPlL(低八位)送入载波周期的高八位和第八位数值,将16位计数器定时器CH、CL清零,中断次数i加1,将下一个脉宽数值sin[i]装入CCAPOH以备比较。同时判断是否到达数值N,若是,中断次数i清零,同时将脉宽数sin[i]值送入CCAP0H,完成一个循环。这样,周而复始,在P3.7引脚上将不断产生随着正弦规律变化的脉宽,从而得到准确的SPWM波。

  2.3 软件设计

  程序编写采用KeilC51编程语言进行,整个程序由主程序和键盘中断子程序以及PCA中断子程序组成。主程序在系统初始化后进入SPwM脉宽计算程序,计算相应的脉冲宽度,形成正弦表格,等待中断标志位以响应不同的中断。由于SPWM波是不断输出的,必须将PCA中断级别设置为。一旦有PCA中断标志位,即转入执行其中断子程序。图4为PCA中断子程序流程图。在中断服务程序中,注意CCF1位和CF标志位均由硬件置位,但不能自动清零,必须在中断程序中由软件清零。

  与此同时,系统可以响应键盘中断子程序,由键盘控制通过液晶显示屏监控输出电压、电流的变化情况等。

  3 实验结果

  根据上述设计思路及编写的软件,用MIC442l驱动器驱动四个MOSFET器件FQAl60N08组成的逆变桥上进行实际调试。图5为由单片机STCl2C5410输出的两路互补(有一定死区时间)单极性SPWM波。用这两路互补信号直接驱动芯片MIC4421,其输出信号再分别驱动逆变桥,经低通滤波后的波形如图6所示。

  4 结束语

  实验结果表明,此方法电路结构简单,硬件设计和软件编程切实可行。采用在线计算和查表技术相结合,较好的解决了实时控制的要求。同时采用单片机作为控制器件,不仅成本降低,而且调试方便,受外界干扰较小,有很好的实用性和可靠性。


  

参考文献:

[1]. STC datasheet https://www.dzsc.com/datasheet/STC_2043151.html.
[2]. ROM datasheet https://www.dzsc.com/datasheet/ROM_1188413.html.
[3]. CPSl datasheet https://www.dzsc.com/datasheet/CPSl_2043282.html.
[4]. MIC4421 datasheet https://www.dzsc.com/datasheet/MIC4421_2423186.html.


关键词:单片机

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

相关技术资料
广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!