1. 引言
PWM是什么?对于很多工科出身的人来说,这可能是一个非常浅显易懂的技术,这不就是一个通过调制输出高低电平的持续时间,实现类似模拟信号输出的技术吗?但对于很多人来说,为什么会有PWM技术,PWM方波有什么特点,如何转换成模拟信号,与模拟信号之间的转换关系等等,还有一系列问题有待了解。本文主要针对不太了解PWM技术的人,从几个方面介绍下PWM波,不足之处请多包涵,欢迎互相交流探讨。
2. 由来
集成电路中存在两种信号,通常分为模拟电路信号和数字电路信号。简单来说,所谓模拟信号就是时间连续,幅值连续的信号;所谓数字信号就是时间离散,幅值离散的信号。举个例子说明,直角坐标系中画一根y=x直线,这根直线就是时间和幅值连续的,其间可以取任何值,属于模拟信号,而在直角坐标系中画出1,2,3,4,5等坐标点,它的时间和幅值是离散的,属于数字信号。 在我们平时生活中,在集成电路的模拟信号随处可见,比如汽车收音机的音量控制,在简单的收音机控制电路中,音量旋钮连接到可变电阻上,通过旋钮控制电阻的大小,调节流经电路的电流大小,从而改变驱动收音机扬声器的电流值,使得音量增大或者变小。
模拟信号看上去直观简单,但在很多场合的应用中并不是很经济和可行。这里提出三点不足,第一模拟信号随着时间的推移会出现漂移的问题,累计误差增大,控制精度不高。针对这个问题,有人设计出精密型的模拟电路,但体积很庞大,而且又笨重和昂贵,并不是很适用;第二,模拟电路有可能出现严重发热的问题,其功耗比较大,大小和工作元件两端电压、电流的乘积成正比;第三,模拟电路对噪声很敏感,任何扰动或噪声都会模拟信号数值产生影响。因此,数字电路随即出现,可以通过数字方式控制模拟信号,大幅降低系统的成本和功耗,弥补模拟电路的不足。而PWM技术就是实现数字电路控制模拟电路的关键技术。
3. 特点及原理
PWM(Pulse Width Module)中文名:脉冲宽度调制技术。直白地说,就是对数字方波进行调制,使其输出信号接近于模拟信号。何为方波,下面给出一张示意图,它是周期性出现的具有相同幅值的波形,可通过控制电路开关的通断,调整高、低电平的持续时间,输出一系列幅值相等的方波,并通过改变方波的面积大小,从而模拟所需要的模拟信号波形。此时引入一个概念,叫占空比,表示在一个周期中,高电平持续时间占整个周期的比例。
讲到这,大家可能还是不太明白方波是如何输出变成模拟正弦波之类连续波形的。目前已有多种技术理论进行解释[2],这里为简单起见,只介绍一种“等效面积”方法,首先介绍一个采样控制理论中的重要结论:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。冲量指窄脉冲的面积。效果基本相同,是指环节的输出响应波形基本相同。PWM控制技术就是以该结论为理论基础,通过对电路开关的通、断进行控制,使输出端得到一系列幅值相等,而宽度不相等的脉冲,用这些脉冲代替正弦波或者其他所需要的波形。
怎么理解“等效面积法”?其实就是把正弦波等分成N份,每份的宽度相等,都等于PI/N,但幅值不等,而且每份的顶部不是水平直线,而是曲线,每份的幅值变化按正弦规律变化。根据上面提到的冲量原理,我们可以用数量、幅值相等,宽度不相等的方波去逼近正弦波,把方波的中点和相应正弦等分的中点重合,而且使方波和相应正弦部分面积(即冲量)相等,效果是一样的,于是就得到一组脉冲序列,这就是PWM波形。此时,各脉冲宽度是按正弦规律变化的。实际电路中,是通过控制对电容器件的充电和放电时间,实现对连续电压大小的控制。
可以把各脉冲宽度与正弦波各幅值电压通过计数的方式相对应,存储于处理器中,根据所需波形的幅值,通过查表的方式控制开关器件的通断,从而生成PWM信号波形,以达到预期的目的。比如说,Arduino应用的是8位寄存器,计数总数为255。于是,对于最大幅值为5V的正弦波,可得到最小脉冲宽度为delta=5V/255=0.02V,即每个计数单位或者说分辨率表示0.02V,那么要输出幅值为2.5V的电压时,通过analogWrite(pin,n),其中计数为n=2.5V/0.02V=128,即输出2.5V电压。
除了通过处理器计数方式记录PWM波与正弦波幅值关系外,还有通过三角波对比器的方式等等,实现输出正弦波的功能,想深入了解的可自行查找资料。
4. 参考链接