历史上的今天
返回首页

历史上的今天

今天是:2025年02月25日(星期二)

正在发生

2020年02月25日 | PIC单片机之PWM原理分析

2020-02-25 来源:elecfans

  1、什么是PWM

  什么是PWM,专业点说脉宽调制,通俗点说 就是不断的输出高低电平。 比如 单片机 40ms的时间 输出高电平然后60ms的时间 输出低电平接着一直不断周期性的交替输出高低电平 这就是典型的PWM波。高电平输出的时间40ms就是传说中的脉宽,40ms+60ms=100ms 便是PWM的周期。假定我们把周期定为100ms.我们可以根据我们的需要 把高电平的时间加大或者减小,比如 高电平输出时间加大为80ms.那么低电平的时间就变为20ms. 也可以 高电平输出时间减小为20ms.那么低电平的时间就变为80ms.这即是脉宽调制 调的便是这高电平的时间。 而高电平(脉宽)在周期中,所占用的时间比例 就被称为占空比。用数学公式表示 高电平的时间/周期的时间=占空比。


  2、PWM的实现方式

  我们如何让单片机输出PWM波。有两种方式 一种是直接用I/O输出,另一种方式利用模块。


  2.1利用I/O口输出PWM

  如果你的单片机没有带有PWM输出功能模块,那么你可以自己写个程序输出PWM波。因为PWM不就是高低电平。一个I/O在加上一个定时器,对于任何单片机来说都是很容易做到的。


  2.2利用模块输出PWM

  对于PIC单片机而言就带有输出PWM的功能模块。利用模块输出PWM其实比利用I/O输出PWM更加简单便捷精确。


  3、PWM控制的基本原理

  理论基础:

  冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。冲量指窄脉冲的面积。效果基本相同,是指环节的输出响应波形基本相同。低频段非常接近,仅在高频段略有差异。

PIC单片机之PWM原理分析

图1形状不同而冲量相同的各种窄脉冲


  面积等效原理:

  分别将如图1所示的电压窄脉冲加在一阶惯性环节(R-L电路)上,如图2a所示。其输出电流i(t)对不同窄脉冲时的响应波形如图2b所示。从波形可以看出,在i(t)的上升段,i(t)的形状也略有不同,但其下降段则几乎完全相同。脉冲越窄,各i(t)响应波形的差异也越小。如果周期性地施加上述脉冲,则响应i(t)也是周期性的。用傅里叶级数分解后将可看出,各i(t)在低频段的特性将非常接近,仅在高频段有所不同。

PIC单片机之PWM原理分析

图2冲量相同的各种窄脉冲的响应波形


  用一系列等幅不等宽的脉冲来代替一个正弦半波,正弦半波N等分,看成N个相连的脉冲序列,宽度相等,但幅值不等;用矩形脉冲代替,等幅,不等宽,中点重合,面积(冲量)相等,宽度按正弦规律变化。


  SPWM波形——脉冲宽度按正弦规律变化而和正弦波等效的PWM波形。

PIC单片机之PWM原理分析

图3用PWM波代替正弦半波

  4、PWM工作原理分析

  脉冲宽度调制波通常由一列占空比不同的矩形脉冲构成,其占空比与信号的瞬时采样值成比例。下图所示为脉冲宽度调制系统的原理框图和波形图。该系统有一个比较器和一个周期为Ts的锯齿波发生器组成。语音信号如果大于锯齿波信号,比较器输出正常数A,否则输出0。因此,从图中可以看出,比较器输出一列下降沿调制的脉冲宽度调制波。

PIC单片机之PWM原理分析

  通过图b的分析可以看出,生成的矩形脉冲的宽度取决于脉冲下降沿时刻t k时的语音信号幅度值。因而,采样值之间的时间间隔是非均匀的。在系统的输入端插入一个采样保持电路可以得到均匀的采样信号,但是对于实际中tk-kTs《 《的情况,均匀采样和非均匀采样差异非常小。如果假定采样为均匀采样,第k个矩形脉冲可以表示为:

PIC单片机之PWM原理分析

  其中,x{t}是离散化的语音信号;Ts是采样周期; 是未调制宽度;m是调制指数。

PIC单片机之PWM原理分析

  然而,如果对矩形脉冲作如下近似:脉冲幅度为A,中心在t = k Ts处, 在相邻脉冲间变化缓慢,则脉冲宽度调制波xp(t)可以表示为:

  其中,PIC单片机之PWM原理分析 。无需作频谱分析,由式(2)可以看出脉冲宽度信号由语音信号x(t)加上一个直流成分以及相位调制波构成。当PIC单片机之PWM原理分析时,相位调制部分引起的信号交迭可以忽略,因此,脉冲宽度调制波可以直接通过低通滤波器进行解调。


  5、PWM的优点

  PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。让信号保持为数字形式可将噪声影响降到最小。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。


  对噪声抵抗能力的增强是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。从模拟信号转向PWM可以极大地延长通信距离。在接收端,通过适当的RC或LC网络可以滤除调制高频方波并将信号还原为模拟形式。


  总之,PWM既经济、节约空间、抗噪性能强,是一种值得广大工程师在许多设计应用中使用的有效技术。


  6、PWM的作用

  PWM能用来做什么?PWM比较典型的应用就是对LED调光和电机调速。那PWM是如何进行调光和调速的呢,其实也很好理解。以给LED调光为例。给LED一直通电LED是最亮的。不给LED断电LED是不亮的。那要是在极短的时间内给LED不断的通电断电。那给人眼的感觉就是LED虽然是亮的,但亮度较低。


  如果单片机高平输出时LED是亮的。那么在PWM波中高电平输出的时间越长LED就越亮,反之则越暗。


  7、PIC单片机学习之PWM信号输出

  实现功能:通过键盘(BUTTON)控制蜂鸣器发生,键盘按下,通过RC2/CCP1接口输出PWM信号(频率880Hz,脉宽50)驱动蜂鸣器发声。


  实验环境:Proteus

  编程语言:汇编

  编程环境:MPLAB

  单片机:PIC16F877

  晶振:20MHz

  Proteus仿真电路如下图:

PIC单片机之PWM原理分析

  实验源程序:

  LIST P=16F877

  ;设置pwm为880Hz,50%占空比 INCLUDE P16F877.INC

  ORG

  0000H

  START BANKSEL TRISC;进入TRISC所在BANK BCF

  TRISC,2;清零TRIC的bit2,以使CCP1引脚成为输出

  MOVLW D‘70’

  MOVWF PR2;将70写入PR2以设置PWM周期

  BANKSEL CCPR1L

  MOVLW D‘35’

  MOVWF CCPR1L

  MOVLW 0X06

  MOVWF T2CON;bit2=1,使能TImer2,bit1-1,预分频值为16

  CHECKBUTTON BTFSC PORTA,4

  GOTO

  BUTTONOFF

  BUTTONON MOVLW H‘0C’

  MOVWF CCP1CON;设置CCP1为PWM模式

  GOTO

  CHECKBUTTON

  BUTTONOFF

  CLRF CCP1CON

  GOTO CHECKBUTTON

  END

推荐阅读

史海拾趣

问答坊 | AI 解惑

modelsim6.2

modelsim6.2b 有没有资料…

查看全部问答>

你认为做模拟设计的工资多少合适?

不知道你们是不是做IC的,如果是,那你认为这行拿多少工资才是合适的?…

查看全部问答>

freescale 降低噪声方法

飞思卡尔工程师的一个简单的note…

查看全部问答>

WINCE系统,如何检测USB鼠标插拔?

想在应用程序里检测鼠标的插拔情况,当鼠标插上时,显示鼠标光标,当鼠标拔掉时,隐藏鼠标光标,请问这个要怎么做啊!有没有USB设备插拔的消息或事件之类的啊?…

查看全部问答>

一个驱动程序中是不是可以建立多个设备对象,而这些设备对象是不是共用相同的派遣例程?

问题:一个驱动程序中是不是可以建立多个设备对象,而当针对不同的这些设备对象发送的IRP是不是共用相同的派遣例程? 问题产生的背景:     我要写一个监视串口的过滤驱动.从思路是这样的,在驱动中建立一个过滤串口设备对象将其挂在串口驱 ...…

查看全部问答>

STVisualDevelopVersion请教各位!!!!

    在ST Visual Develop Version 4.1.2开发环境下编写程序, 当程序每行代码超过80列时,编译器自动换行,这样对我程序的可读性和注释造成不便。    研究了编译器,这个问题仍然没有解决。请教各位: 怎样设置ST Vi ...…

查看全部问答>

07年购买的LSD-FET430UIF好像不能仿真430F5438

07年购买的LSD-FET430UIF好像不能仿真430F5438…

查看全部问答>

可控硅开关学习

对可控硅的三个主要性能参数不知道指什么,麻烦各位大侠指导一下。谢谢 三个参数分别为:Repetitive Peak Off-State Voltage:600V                 &nbs ...…

查看全部问答>

74HC***和74HC***D有什么区别啊????

今天在网上找了一下74系列资料看见一些芯片只有结尾的D或者A什么的,他们有什么区别啊??像74HC574和74HC574D、74HC138和74HC138D、74HC244 74HC244D 74HC244A三种,他们的封装大小好像也不一样,又有什么区别啊,我看了他们的资料内部结构都是一 ...…

查看全部问答>

谈谈嵌入式系统的可靠性(一)

    许多的操作系统,在宣传自己的优异性时,不外乎上下文切换时间多么短、占用系统资源多么少、功能模块多么多、线程间通信手段多么丰富。谈到可移植性时,不外乎说自己的C语言率多么高,移植需要修改的代码行多么少,等等!这些方面, ...…

查看全部问答>