0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用STCl2C5410AD单片机实现SPWM波形的产生

电子设计 来源:郭婷 作者:电子设计 2019-01-09 10:10 次阅读

引言

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

1 正弦脉宽调制技术SPWM

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

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

采用STCl2C5410AD单片机实现SPWM波形的产生

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

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

采用STCl2C5410AD单片机实现SPWM波形的产生

: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输出模式框图。

采用STCl2C5410AD单片机实现SPWM波形的产生

在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。

采用STCl2C5410AD单片机实现SPWM波形的产生

图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标志位均由硬件置位,但不能自动清零,必须在中断程序中由软件清零。

采用STCl2C5410AD单片机实现SPWM波形的产生

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

采用STCl2C5410AD单片机实现SPWM波形的产生

3 实验结果

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

采用STCl2C5410AD单片机实现SPWM波形的产生

4 结束语

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电源
    +关注

    关注

    184

    文章

    17471

    浏览量

    249058
  • 单片机
    +关注

    关注

    6030

    文章

    44482

    浏览量

    631765
  • SPWM
    +关注

    关注

    14

    文章

    356

    浏览量

    60497
收藏 人收藏

    评论

    相关推荐

    单片机产生SPWM

    谁有用51单片机产生SPWM的程序?最好也有proteus的电路图,给我发一份 小弟初学急用 非常感谢邮箱1054784724qq.com
    发表于 04-20 21:57

    单片机产生SPWM波在UPS中的应用

    单片机产生SPWM波在UPS中的应用:文中介绍了基于PIC16F73单片机产生SPWM控制
    发表于 09-19 08:11 141次下载

    8098单片机控制的SPWM逆变器

    摘要:介绍采用8098单片机控制的SPWM逆变器,该系统利用8098的高速输出口HSO由软件实时计算来产生SPWM控制信号关键词:
    发表于 05-31 10:37 97次下载

    STCl2C5A60S2单片机的SD卡读写

    STCl2C5A60S2单片机的SD卡读写 摘要:分析了基于STC单片机的SD卡的读写操作,给出了一种基于高速、低功耗、超强抗干扰的新一代STCl2C5A60S2系列IT
    发表于 04-23 14:59 4315次阅读
    <b class='flag-5'>STCl2C5A60S2</b><b class='flag-5'>单片机</b>的SD卡读写

    STCl2C5410AD单片机的四通道声发射信号采集系统设计

    STCl2C5410AD单片机的四通道声发射信号采集系统设计方案 摘要:根据声发射信号微弱、传播速度快、易受干扰等特点,通过对声发射检测中声发射信号源定位类别和方
    发表于 04-24 10:15 1464次阅读
    <b class='flag-5'>STCl2C5410AD</b><b class='flag-5'>单片机</b>的四通道声发射信号采集系统设计

    PIC单片机设计的SPWM控制技术

    本文采用软硬件结合设计的方法,利用面积等效法,并且基于PIC单片机实现对试验逆变系统的SPWM控制。 目前SPWM
    发表于 06-08 08:30 2371次阅读
    PIC<b class='flag-5'>单片机</b>设计的<b class='flag-5'>SPWM</b>控制技术

    单片机产生PWM波形控制LED灯亮度

    单片机产生PWM波形控制LED灯亮度单片机产生PWM波形控制LED灯亮度
    发表于 01-07 17:34 68次下载

    基于C8051单片机SPWM波形实现

    基于C8051单片机SPWM波形实现
    发表于 04-13 15:29 49次下载

    基于STM32单片机SPWM波的实现

    本文是关于基于STM32单片机SPWM波的实现的介绍
    发表于 08-24 16:30 168次下载

    SPWM波形protues仿真程序 51单片机SPWM波形产生

    SPWM波形protues仿真程序 51单片机SPWM波形产生代码 protues仿真
    发表于 01-14 22:32 276次下载

    基于STCl2C5410AD的无刷控制器检测设计

    很多的检测仪器都采用模拟电路,使得结果不是很精确,而且需要的电路也很复杂,成本很大。设计采用STCl2C5410AD单片机作为控制芯片,大大简化了硬件电路,以软件编程来
    发表于 09-06 11:08 3次下载
    基于<b class='flag-5'>STCl2C5410AD</b>的无刷控制器检测设计

    基于单片机和PWM控制方法调速实现无刷控制器检测设计

    单片机作为主要控制芯片。STCl2C5410AD系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速、低功耗、超强抗干扰的新一代8051
    发表于 05-13 10:13 1745次阅读
    基于<b class='flag-5'>单片机</b>和PWM控制方法调速<b class='flag-5'>实现</b>无刷控制器检测设计

    spwm单片机4路输出C语言,基于PIC单片机的正弦波逆变器设计与实现

    ,其优点是电路简单,集成度高,缺点是无法全面实现对系统的反馈控制、监视管理和保护工作,故一般也要配合单片机实现;3)利用单片机等微处理器产生
    发表于 11-08 17:21 23次下载
    <b class='flag-5'>spwm</b><b class='flag-5'>单片机</b>4路输出<b class='flag-5'>C</b>语言,基于PIC<b class='flag-5'>单片机</b>的正弦波逆变器设计与<b class='flag-5'>实现</b>

    基于STCl2C5A60S2单片机的SD卡读写

    电子发烧友网站提供《基于STCl2C5A60S2单片机的SD卡读写.pdf》资料免费下载
    发表于 10-10 09:34 8次下载
    基于<b class='flag-5'>STCl2C5A60S2</b><b class='flag-5'>单片机</b>的SD卡读写

    采用单片机89S51和SPWM波形发生器SA8281制作控制器

    电子发烧友网站提供《采用单片机89S51和SPWM波形发生器SA8281制作控制器.pdf》资料免费下载
    发表于 11-06 10:16 1次下载
    <b class='flag-5'>采用</b><b class='flag-5'>单片机</b>89S51和<b class='flag-5'>SPWM</b><b class='flag-5'>波形</b>发生器SA8281制作控制器