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 结束语

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

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

    关注

    182

    文章

    16561

    浏览量

    244853
  • 单片机
    +关注

    关注

    6002

    文章

    43990

    浏览量

    620981
  • SPWM
    +关注

    关注

    13

    文章

    343

    浏览量

    60089
收藏 人收藏

    评论

    相关推荐

    8098单片机SPWM变频调速系统设计

    纹波小,是当前最有应用前景电力电子器件。驱动电路采用高速型EXB850驱动模块。控制电路用8098单片机实现SPWM波的生成,M/T高精度测速及闭环控制。
    发表于 10-21 11:16

    单片机产生SPWM

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

    52单片机编程产生SPWM

    我想用52单片机生成单极性的spwm波形,频率28k,程序怎么写啊?需要大神求助,或者有做过的直接共享一下程序啊,感谢
    发表于 03-07 10:10

    新人求助,怎么用51单片机产生SPWM波?

    本人新人,对单片机不是很懂,课设要求设计一个用单片机产生SPWM电路,要求载波频率可调,载波比可调。请教各位大神朋友,帮帮我,或者给个明确的思路和方向。谢谢。
    发表于 04-16 11:11

    基于stc12c5410ad单片机的数字电源设计

    基于stc12c5410ad单片机的数字电源设计
    发表于 05-26 09:16

    单片机产生SPWM算法

    单片机产生SPWM算法为基础制作的数字化AC/DC/AC单相变频电源,该电源将公网三相交流电转化为输出电压幅值和频率可独立调节的单相交流电。实验结果表明该电源输出电压波形较理想,
    发表于 11-15 09:02

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

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

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

     本文介绍了基于PIC16F73单片机产生SPWM控制波形,驱动全桥逆变电路组成的在线式纯正弦波UPS电泰达铭机电科技有限公司源系统,采用
    发表于 09-08 15:09 108次下载

    STCl2C5A60S2单片机的SD卡读写

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

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

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

    基于C8051单片机SPWM波形实现

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

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

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

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

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

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

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

    spwm波形是什么 spwm波形实现方法 生成spwm波形实现方法

    基于数字信号处理器(DSP)实现方法:使用DSP控制SPWM波形产生器,将参考正弦波信号和三角波信号输入DSP中,经过相关的算法处理后输出PWM波形
    发表于 05-02 10:52 6285次阅读