C8051F绯诲垪鍗曠墖鏈轰骇鐢烻PWM绠楁硶澶у叏 - 鐧惧害鏂囧簱 联系客服

发布时间 : 星期一 文章C8051F绯诲垪鍗曠墖鏈轰骇鐢烻PWM绠楁硶澶у叏 - 鐧惧害鏂囧簱更新完毕开始阅读e9334f62bdd126fff705cc1755270722192e59ad

一种基于C8051单片机的SPWM波形实现方案

A method of producing SPWM waveform based on C8051 MCU

Nsx2009

摘 要: 详细介绍了通过C8051单片机的可编程计数器列阵PCA来实现SPWM控制波形的原理

和方法,并对SPWM脉冲序列中的最小脉冲处理问题进行了分析。实验结果证实了该方法的准确性和可靠性。

叙 词: C8051;SPWM波形;最小脉冲

Abstract: The principle and method of producing SPWM control waveform by using the C8051

MCUs’ programmable counter array (PCA) is introduced in detail. And the minimum pulse problem of the SPWM pulse series is analyzed. Experimental results verify that the method is accurate and reliable.

Keywords: C8051, SPWM waveform, minimum pulse

1 引言

正弦脉宽调制(SPWM)技术已在交流调速、直流输电、变频电源等领域得到广泛应用,为了提高整个系统的控制效果,高性能SPWM脉冲形成技术一直是人们不断探索的问题。采用模拟电路和数字电路等硬件电路来产生SPWM波形是一种切实可行的方法,但是这种实现方法控制电路复杂、抗干扰能力差、实时调节较困难。近年来,人们提出了由单片机、DSP等微控制器来实现SPWM波形的数字控制方法[1][2],由于微控制器内部集成了很多控制电路,比如定时器、PWM电路、可编程计数器阵列等,所以使得这种实现SPWM的方法具有控制电路简单、运行速度快、控制精度高、抗干扰能力强等优点。本文介绍了一种利用C8051单片机实现输出频率可变SPWM波形的方法,并将由C8051F040产生的单极性SPWM波应用于单相频率可调逆变电源,实验结果证实了利用C8051实现SPWM波形的可行性和有效性。

2 SPWM技术原理

SPWM技术的基本原理是利用一个三角波载波和一个正弦波进行比较,得到一个宽度按正弦规律变化的脉冲序列,用它们来驱动逆变器开关管的开关转换。由微控制器来实现SPWM波形的方法有表格法、随时计算法和实时计算法,但前两种无实时处理能力[2]。

采用实时计算法要有数学模型,其中一种较为常用的是采样型SPWM法,它分为自然采样法、对称规则采样法和不对称规则采样法。本文采用对称规则采样法,即利用经过采样的正弦波(实际上是阶梯波)与三角波相交,由交点得出脉冲宽度。图1是典型的单极性对称规则采样法,它只在三角波的峰值时刻采样正弦调制波并将采样值保持,分别取保持值和三角波交点作为脉冲宽度时间。图中Ts为三角波的周期,同时也是采样周期;Ur为三角波的高,正弦波为Ucsinωt。根据三角形相似关系,得到

所以

其中,M=Uc/Ur为调制比,t为采样点(这里为顶点采样)的时刻。则脉冲宽度为

采样点时刻t只与载波比N有关。对于图1情况有t=kTS+θ,其中k=0,1,2,…,N-1,θ=180/N度。

图1 对称规则采样法

在对称规则采样情况下,只要知道采样点时刻t就可以确定这个采样周期内的脉冲宽度tpw和时间间隔toff,从而可以计算出SPWM波形高、低脉冲的宽度。

3 C8051实现SPWM波形的原理及算法

3.1 C8051F系列单片机PCA简介

C8051F系列单片机都具有一个可编程计数器阵列PCA,以C8051F040为例,PCA包含1个专用的16位计数器/定时器和6个16位捕捉/比较模块,可以输出6路PWM波形。如图2所示,16位PCA专用计数器/定时器的时基信号可有多种选择,可通过配置相关的系统控制器的特殊功能寄存器(SFR)来实现。每个捕捉/比较模块有自己的I/O线CEXn,可通过配制交叉开关寄存器(XBR0)将每个模块的I/O线连接到端口I/O;每个模块都可配制为独立工作,有四种工作方式:边沿触发捕捉、软件定时器、高速输

图2 PCA原理框图

出或脉宽调制器。本文中,产生频率可变的SPWM波形是使用了捕捉/比较模块的高速输出工作方式,其原理如下:

当PCA的16位计数器/定时器PCA0H(高8位)和PCA0L(低8位)与16位捕捉/比较模块寄存器PCA0CPHn(高8位)和PCA0CPLn(低8位)发生匹配时,模块的CEXn引脚上的逻辑电平将发生跳变,并产生一个中断请求,即将控制寄存器PCA0CN中相应的CCFn位置位,当CCF中断被允许时,CPU将转向CCF中断服务程序。如果将相应模块的I/O线CEXn连接到端口I/O,单片机相应端口输出电平即发生变化,这就可实现PWM脉冲的高、低电平输出。置位PCA0CPMn寄存器中的TOGn、MATn、ECOMn和ECCFn位,将允许高速输出方式,同时允许CCF中断[3]。