理论教育 C8051芯片产生SPWM波

C8051芯片产生SPWM波

时间:2023-12-07 理论教育 版权反馈
【摘要】:基于C8051的SPWM波的产生武汉东湖学院电信学院何锡武本文介绍了通过80C51单片机来实现SPWM控制波形的原理和方法,整个系统的电路结构简单,可靠性能高。实验采用80C51单片机为控制核心,根据冲量效果不变理论,结果表明,采用等效面积法产生的SPWM波形具有精度高、输出波形谐波小、对称性好等优点。运用定时器T0控制高低电平输出,使其占空比在一个载波周期内的脉冲按照正弦规律变化,即可得到SPWM波形。

C8051芯片产生SPWM波

基于C8051的SPWM波的产生

武汉东湖学院电信学院 何锡武

本文介绍了通过80C51单片机来实现SPWM控制波形的原理和方法,整个系统的电路结构简单,可靠性能高。实验采用80C51单片机为控制核心,根据冲量效果不变理论,结果表明,采用等效面积法产生的SPWM波形具有精度高、输出波形谐波小、对称性好等优点。

一、前言

SPWM(Sinusoidal PWM)法是一种比较成熟的且目前使用较广泛的PWM法。正弦脉冲宽度调制(SPWM)技术已在交流调速、直流输电、变频电源领域得到广泛应用。为了提高整个系统的控制效果,实现具有较高性能SPWM脉冲技术,一直以来,人们都在不断探索更加便捷和高品质的波形产生电路。

正弦脉冲宽度调制波形的产生一般有三种方法。第一,采用分立元件电路产生,主要由三角波发生器、正弦波发生器和比较器组成。分立元件电路复杂,调试困难,成本高,可靠性差,因此一般很少采用。第二,采用专用集成芯片产生。专用集成芯片功能强大,输出波形质量高,应用比较广泛。第三,采用单片机实现。现在许多单片机都具有产生SPWM波的功能,采用单片机可使电路简单,可靠性好,而且方便对系统其他数据参数进行监控、显示和处理,使整个系统的控制非常的方便。由于微控制器内部集成有很多控制电路,比如定时器、PWM电路、可编程计数器阵列等,所以使得这种实现SPWM的方法具有控制电路简单、运行速度快、控制精度高、抗干扰能力强等优点。

二、方案设计

1.SPWM信号产生的方法

早期SPWM信号的发生是由模拟控制信号来实现的,但是现在已经很少采用这种方案,一般都是采用数字控制的方法。可以采用大规模集成电路专用芯片产生SPWM信号,也可以用单片机中的存储器来存储预先计算好的SPWM数据表格,控制时根据指令调出;或者通过软件实时生成SPWM波形。本文采用80C51单片机查表法生成SPWM:利用冲量效果不变理论,以80C51单片机为控制核心,利用软件,使输出脉冲按照正弦规律变化,得到SPWM波形。这种方案实现SPWM波形电路结构简单,可靠性好,受外界干扰小。

2.等面积法形成SPWM

等面积法的基本思想是将一个正弦波分成N等份,把每一份的正弦波曲线与横轴所包含的面积用一个与此面积相等的等高矩形脉冲来代替。若按照目前常用的谐波分析方法,几乎全是将正弦波的每一等份用一个矩形或梯形面积等效来分析,但用单片机或DSP中的PWM输出引脚来形成SPWM 波形,实际上每一等份的波形都是具有某一占空比的PWM波形。

如图1所示,将正弦半波看成由N个彼此相连的脉冲所组成的波形,这些脉冲宽度都相等,都为img15,但是幅值不相等,且脉冲的顶部为曲线,N个脉冲的幅值按照正弦规律变化。如果将此脉冲序列用同样数列的等幅不等宽的矩形脉冲序列来代替,使矩形脉冲的中点与相应正弦等份的中点重合,且使矩形脉冲和相应正弦部分脉冲面积相等,如图1②所示,像这种脉冲的宽度按正弦规律变化而和正弦波等效的波形,即为SPWM波形。因此,为了得到正弦波,需要输出一系列幅值相等但是宽度不相等的矩形波。

img16

图1 正弦波和相应SPWM波

如图1①所示,将一个正弦半波分为N等份,每一等份的正弦曲线与横轴所包围的面积都用一个面积与此相等的等高矩形脉冲代替,矩形脉冲的中点与每一等份的正弦脉冲的中点重合,这样,由N个等幅而不等宽的矩形脉冲所构成的波形就与正弦半波等效。对于正弦波的负半周,也可以用同样的方法得到PWM波形,现在取出时刻K到时刻K+1的波形进行分析。图示2中时刻K到时刻K+1正弦半波所包含的面积为S,矩形的面积为S1,正弦半波的幅度为U,矩形波的幅度为U1,宽度为Tm

img17

图2 面积等量示意图

img18

由面积等效可以得到S=S1

img19

输出SPWM波形的基波(等效的SPWM)为f=50HZ,采样频率为N倍频,即载波比为N,单片机晶振频率为SMHZ,计数器频率为其12分频,即s/12MHZ,计数器周期为12/sus,则每T小格的计数值为:

img20

Tm对应的计数值为:

img21

则SPWM波占空比:

img22

代入式(3)得:

img23

其中K=0,1,2,3, ……… (n/2-1)

为了程序方便,一般采用改进的PWM法,将每个小窄脉冲移至每个T长度的边沿,这样计算量会减少一半,不过最终正弦波形会有所畸变。

三、硬件电路设计

80C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单、可靠。用80C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可。80C51单片机最小系统如图3所示。

img24

图3 由89C52单片机构成的最小系统

80C51单片机为核心控制部件,从单片机的P1管脚输出半个周期的SPWM波形,显示数码管可以接单片机P0口作为显示部分,可以在上面显示输出波形的频率参数,本系统未涉及该部分。

四、软件设计

在本系统设计中,数据处理是对数据的计算,即脉冲宽度时间,使脉冲宽度按照正弦规律变化。本系统通过单片机内部定时计数去T0实现波形的载波周期控制,根据每个周期内计数值的大小决定输出高低电平来实现占空比的变化。(www.daowen.com)

1.80C51单片机定时/计数器控制设计

80C51单片机内部有两个16位定时/计数器,即定时器T0和定时器T1,它们都有定时和计数的功能,可以用于定时控制、延时、对外部事件计数和检测等场合。通过编程可以设定任意一个或两个定时器工作,并使其工作在定时/计数方式。当设置为定时工作方式时,对机器周期计数,这时计数器的加1信号由来自系统的时钟振荡器输出脉冲经12分频后产生,即每经过一个机器周期,计数值加1,直至计满溢出。因为一个机器周期由12个震荡脉冲组成,所以计数频率=1/12f 。当晶振f=12MHZ时,计数频率=1MHZ,或计数周期=1us。从开始计数到溢出的这段时间就是所谓的定时时间。在机器周期固定的情况下,定时时间同计数器事先装入的初值有关,初值越大,定时越短。

由SPWM波形产生的原理分析可以得到,每一个T等份内的占空比不一样。运用定时器T0控制高低电平输出,使其占空比在一个载波周期内的脉冲按照正弦规律变化,即可得到SPWM波形。

2.80C51单片机的中断系统控制设计

80C51单片机有5个中断源,即外部中断INT0和INT1、定时/计数器中断T0和T1、串行口中断,分为两个中断优先级。本设计中,采用定时/计数器中断T0 来控制波形周期。80C51内部的定时/计数器一旦设定初值并启动后,会以一定速率进行向上计数的工作。当计数器值溢出后,便会产生定时/计数器中断,同时设定相应的中断标志,计数器0设定为TF0,等执行完相应的中断服务程序后才会清除工作标志。由于输出半波的载波周期为25,程序通过在中断程序中对中断次数进行计数来控制输出波形的周期。

3.程序流程

主程序框图见图4所示,中断程序框图见图5所示。

img25

图4 主程序框图

img26

图5 中断程序框图

4.SPWM占空比计算

由等面积法产生SPWM波形推出占空比。本设计取N为50,则K的取值为0,1,2,3…24。利用函数计算可以得到各k值对应的占空比取值依次为:

0.0502328 0.1499048 0.2472136 0.3406232 0.4286616 0.5099392 0.5831752 0.6472136 0.7010456 0.7438208 0.7748664 0.793692 0.8 0.793692 0.7748664 0.7438208 0.7010456 0.6472136  0.5831752 0.5099392 0.4286616 0.3406232 0.2472136 0.1499048 0.0502328

将计算得到的占空比保留两位小数取近似值,取百分数,即扩大100倍,得到数组详见表1所示。该数组即为中断程序中控制输出1的计数值,当计数值小于该值时,输出为1,大于该值时输出为0。

表1 各K值对应的占空比

img27

5.程序实现

img28

img29

五、测试数据结果分析与结论

1.测试方法

本设计采用Proteus和Keil C仿真软件对正弦信号波形进行检测。Protues是英国Labcenter公司开发的电路及单片机系统设计与仿真软件,可以实现数字电路、模拟电路及微控制器系统与外设的混合电路系统的电路仿真。Protues软件中还提供有交直流电压表、逻辑分析仪、示波器、定时/计数器和信号发生器等测试信号工具用于电路测试。

本设计是基于Protues和Keil C的程序开发工程。测试方法如下:①启动Protues开发平台,利用ISIS模块绘制SPWM波形控制系统电路原理图;②启动Keil u Vision4开发平台,建立一个Keil工程;③输入C51源程序,编译生成*.hex可执行文件;④将编译后的可执行文件下载到Protues中;⑤在Keil中实现对Protues下的仿真运行控制。

2.结论与分析

按设计程序下载仿真结果如图6所示,可以看到从P1口所输出的PWM波形和经滤波后所得到正弦波。系统功能达到设计要求,因只有正半周,所以表现失真。如有外部电路进行倒像,经H桥输出即可得到完整正弦波形。

img30

图6 系统仿真输出

另外,如图6所示,仿真出来的波形图有点毛刺,这是因为为了简单方便,取得N值为50,有点偏小,如果N的取值足够大,得出来的波形就会很完美了。

本设计利用C8051单片机控制产生SPWM波形不需要外部的信号输入,硬件电路简单,是一种简单易行的方法,具有运算精度高、实时调节性强的特点。同时,通过软件的处理,计算SPWM的脉冲宽度来调节占空比,使脉冲宽度按照正弦规律变化,从而得到SPWM波形。

参考文献

[1]何立民.单片机应用系统设计[M].北京:航天航空大学出版社,1990.

[2]林立等.单片机原理及应用:基于Proteus和Keil C[M].北京:电子工业出版社,2009.

[3]戴佳等.51单片机C语言应用程序设计实例精讲[M].北京:电子工业出版社,2008.

[4] 彭伟.单片机C语言程序设计实训100例:基于8051+Proteus仿真[M].北京:电子工业出版社,2009.

[5]谢维成,杨加国.单片机原理与应用及C51程序设计[M].北京:清华大学出版社,2006.

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈