人机界面面向对象编程方法PWM输出
人机界面面向对象编程方法——PWM输出
PWM一般指脉冲宽度调制,脉冲宽度调制是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。
背景
随着电子技术的发展,出现了多种脉冲宽度调制(Pulsewidthmodulation,PWM)技术,其中包括:相电压控制PWM、脉宽PWM法、随机PWM、SPWM法、线电压控制PWM等,而在镍氢电池智能充电器中采用的脉宽PWM法,它是把每一脉冲宽度均相等的脉冲列作为PWM波形,通过改变脉冲列的周期可以调频,改变脉冲的宽度或占空比可以调压,采用适当控制方法即可使电压与频率协调变化。可以通过调整PWM的周期、PWM的占空比而达到控制充电电流的目的。
模拟信号的值可以连续变化,其时间和幅度的分辨率都没有限制。9V电池就是一种模拟器件,因为它的输出电压并不精确地等于9V,而是随时间发生变化,并可取任何实数值。与此类似,从电池吸收的电流也不限定在一组可能的取值范围之内。模拟信号与数字信号的区别在于后者的取值通常只能属于预先确定的可能取值集合之内,例如在{0V,5V}这一集合中取值。
模拟电压和电流可直接用来进行控制,如对汽车收音机的音量进行控制。在简单的模拟收音机中,音量旋钮被连接到一个可变电阻。拧动旋钮时,电阻值变大或变小;流经这个电阻的电流也随之增加或减少,从而改变了驱动扬声器的电流值,使音量相应变大或变小。与收音机一样,模拟电路的输出与输入成线性比例。
尽管模拟控制看起来可能直观而简单,但它并不总是非常经济或可行的。其中一点就是,模拟电路容易随时间漂移,因而难以调节。能够解决这个问题的精密模拟电路可能非常庞大、笨重(如老式的家庭立体声设备)和昂贵。模拟电路还有可能严重发热,其功耗相对于工作元件两端电压与电流的乘积成正比。模拟电路还可能对噪声很敏感,任何扰动或噪声都肯定会改变电流值的大小。
通过以数字方式控制模拟电路,可以大幅度降低系统的成本和功耗。此外,许多微控制器和DSP已经在芯片上包含了PWM控制器,这使数字控制的实现变得更加容易了。
基本原理
脉宽调制(PWM)基本原理:控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率。
例如,把正弦半波波形分成N等份,就可把正弦半波看成由N个彼此相连的脉冲所组成的波形。这些脉冲宽度相等,都等于π/n,但幅值不等,且脉冲顶部不是水平直线,而是曲线,各脉冲的幅值按正弦规律变化。如果把上述脉冲序列用同样数量的等幅而不等宽的矩形脉冲序列代替,使矩形脉冲的中点和相应正弦等分的中点重合,且使矩形脉冲和相应正弦部分面积(即冲量)相等,就得到一组脉冲序列,这就是PWM波形。
可以看出,各脉冲宽度是按正弦规律变化的。根据冲量相等效果相同的原理,PWM波形和正弦半波是等效的。对于正弦的负半周,也可以用同样的方法得到PWM波形。在PWM波形中,各脉冲的幅值是相等的,要改变等效输出正弦波的幅值时,只要按同一比例系数改变各脉冲的宽度即可,因此在交-直-交变频器中,PWM逆变电路输出的脉冲电压就是直流侧电压的幅值。根据上述原理,在给出了正弦波频率,幅值和半个周期内的脉冲数后,PWM波形各脉冲的宽度和间隔就可以准确计算出来。按照计算结果控制电路中各开关器件的通断,就可以得到所需要的PWM波形。下图为变频器输出的PWM波的实时波形。
HMI系统应用
HMI系统中的PWM功能,主要应用于电机伺服控制,以及需要使用脉宽控制的的其它外部设备。也可以通过PWM实现简易的设备间通讯控制等。
脉冲宽度调制原本是一个模拟控制过程,但是在人工智能系统中,所有的功能处理过程都是数字式的,所以我们同样需要将这个脉冲宽度调制过程进行一个数字化的处理。这个处理过程和模拟量转换成数字量的原理是一样的。模拟量是将一定范围内的电压如0V~3.3V,0V~5V转换成不同精度等级的数字量信号。数字量的等级数越多表明转换的精度越高(具体可参见前面章节中的《模拟量与数字量》部分文章),同理可见,脉冲宽度调制,它首先是一个有着固定脉冲周期的电子脉冲信号,这个电子脉冲信号是以方波的形式出现的。在这种方波的形式中,信号只有两种存在形式,即高电平和低电平信号。也就是说在一个脉冲周期中,信号的电平不是高电平就是低电平,而高电平在一个周期中存在的时间长短就是脉冲宽度。而脉冲宽度调制(PWM)指的就是对高电平信号在一个周期中保留时间长短的调制过程。高电平信号停留时间在整个周期时间中所占的比重大小(百分比)就叫做占空比(高电平时间/周期时间),因此也可以说脉宽调制过程就是这个占空比的调制过程。
由此可见,脉冲宽度调制的数字化过程本质就是对脉冲周期的一个数字化过程,将脉冲周期时间分成若干个单位时间段,每一段都代表着这个周期的最小时间单元。单元时间段的段数越多,代表着脉冲宽度调制的可调占空比精度越高,调节精细度越高。例如:以一个周期15秒钟为例,将其分成3段则其脉冲宽度调制占空比只有1/3,2/3两种,意味着利用其占空比所传递的信息内容只有两种,而将其分成5段,则占空比可分为1/5,2/5,3/5,4/5则其利用占空比传递的信息内容只有4位,比3段的分法要多出2种信息表达形式。那么,如果分成10段,15段呢?它们所表达出的信息内容会更多。因此,占空比的精度对于PWM中的信息传达有着重要的意义。
在HMI系统中,将PWM周期时间分成为个单位时间段,通过之前的学习可以知道它有1/,2/,3/......99/即99种占空比数据形式。我们可以通过给出相应的数据值的指令形式来完成对占空比的设置。例如,设置当前值为15,则表示这个周期内有15个单位时间为高电平,其它85个单位时间段为低电平。
同时这个当前值是一个可读可写的数据单元,在需要对占空比做出调整修正时,可利用其可写功能向这个数据单元输入修改值,完成占空比的调整。当需要要识别当前PWM输出工作状态时,就可以利用其可读取功能,完成数据的读取,从而完成程序执行过程中的相关计算,识别,判断等任务。同时PWM也可以通过计算运算的方式来随时修改其数值。
不同的HMI系统类型,所分配的PWM硬件资源也是不一样的。这个要由HMI触控屏的产品规格型号来决定。如,K0系列的触控屏在PWM使用中,为其分配了4个管脚端口,即有4个IO管脚可以实现PWM信号的输出功能。而在X5系列触控屏当中,则只分配了端口6,端口7管脚具有PWM的信号输出功能。前者对应PWM功能端口,有4个PWM变量,分别为PWM4~PWM7。后者有2个PWM功能变量,PWM6,PWM7。
格式 PWM6=30
指令含义为设置PWM6占空比为30
PWM7=90
指令含义为设置PWM7占空比为90
说明:
1、 占容比最小值为0,最大值为100,上电默认值为50。
2、 PWM4~PWM7依次对应扩展IO中的io4~io7端口管脚。
3、 设置好PWM占空比以后,需要使用cfgpio指令配置此IO的模式为PWM输出模式,相应IO管脚才会开始输出PWM信号,配置完PWM模式后在PWM输出的过程中可以随时修改占空比,不用重新配置。
4、 上电默认所有扩展IO模式为上拉输入(内部上拉电阻为50K)。
转载请注明:http://www.abuoumao.com/hytd/3959.html