热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pwm整流的基本原理(pwm频率和占空比)

脉宽调制PWM是开关型稳压电源中的术语。这是按稳压的控制方式分类的,除了PWM型,还有PFM型和PWM、PFM混合型。脉宽宽度调制式(PWM)开关型稳压电路是在控制电路输出频率不变


脉宽调制是开关式稳压电源的一个术语。这是根据电压稳定的控制模式分类的。除了脉宽调制型,还有PFM型和脉宽调制/PFM混合型。脉宽调制(PWM)开关稳压器是在控制电路输出频率不变的情况下,通过电压反馈来调节控制电路的占空比,从而达到稳定输出电压的目的。


随着电子技术的发展,出现了多种PWM技术,包括:相电压控制PWM、脉宽PWM、随机PWM、SPWM、线电压控制PWM等。镍氢电池智能充电器采用的脉宽PWM方法,采用等脉宽的脉冲串作为PWM波形,通过改变脉冲串的周期来实现频率调制,通过改变脉冲宽度或占空比来实现电压调节,采用合适的控制方法来协调电压和频率。通过调节脉宽调制的周期和占空比,可以达到控制充电电流的目的。


脉宽调制的定义


脉宽调制是一种利用微处理器的数字输出来控制模拟电路的非常有效的技术,广泛应用于从测量和通信到功率控制和转换的许多领域。


模拟信号的值可以连续变化,其时间和幅度分辨率不受限制。9V电池是一种模拟器件,因为它的输出电压不完全等于9V,而是随时间变化,可以取任何真实值。类似地,从电池吸收的电流不限于一组可能的值。模拟信号和数字信号的区别在于,后者的值通常只能属于一组预定的可能值,例如{0V,5V}的集合。


模拟电压和电流可直接用于控制,如控制车载收音机的音量。在简单的模拟收音机中,音量旋钮连接到可变电阻。旋钮转动时,电阻值变大或变小;流经该电阻的电流也随之增加或减少,从而改变驱动扬声器的电流值,使音量相应变大或变小。像收音机一样,模拟电路的输出与输入成线性比例。


虽然模拟控制看起来直观简单,但并不总是非常经济或可行的。其中之一就是模拟电路容易随时间漂移,很难调整。能够解决这个问题的精密模拟电路可能非常大、笨重(比如老式的家庭立体声设备)而且价格昂贵。模拟电路也可能产生严重的热量,其功耗与工作元件两端的电压和电流的乘积成正比。模拟电路也可能对噪声敏感,任何干扰或噪声都会改变电流值。


通过数字控制模拟电路,可以大大降低系统的成本和功耗。此外,许多微控制器和数字信号处理器的芯片上已经包含了脉宽调制控制器,这使得数字控制的实现更加容易。


脉宽调制工作原理


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




从图1b的分析可以看出,所产生的矩形脉冲的宽度取决于在脉冲下降沿的时间tk时语音信号的幅度值。因此,采样值之间的时间间隔是不均匀的。通过在系统的输入端插入采样保持电路,可以获得均匀的采样信号,但是对于实际的tk-ktst情况,均匀采样和非均匀采样之间的差异非常小。假设采样是均匀的,kth矩形脉冲可以表示为:


(1)


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


但是,如果矩形脉冲近似如下:脉冲幅度为a,中心在t=kTs,Tk在相邻脉冲之间缓慢变化,那么脉宽调制波Xp(t)可以表示为:


(2)


在…之中。无需频谱分析,从公式(2)可以看出,脉宽信号由语音信号x(t)加上DC分量和相位调制波组成。当T0Ts时,相位调制部分引起的信号重叠可以忽略,因此脉宽调制波可以直接由低通滤波器解调。


数字脉宽调制器的实现:


实现数字脉宽调制器的基本思路见图2。




图中,在时钟脉冲的作用下,循环计数器的5位输出逐渐增大。5位数字调制信号由寄存器控制,并不断与环路计数器的输出进行比较。当调制信号大于环路计数器的输出时,比较器输出高电平;否则,它输出低电平。在周期计数器的一个周期之后,使能信号EN被发送到寄存器,并且寄存器发送下一组数据。在计数器的每个计数周期中,由于输入调制信号的大小不同,比较器输出端输出的高电平数量也不同,从而产生不同占空比的脉宽调制波。




图3


为了在t=kTs时逼近矩形脉冲的中心,计数器产生的数字码不是从小到大或从大到小的变化,而是将数据分为偶数序列和奇数序列。在计算期间,甚至

数序列由小变大,直到最大值,然后变为对奇数序列计数,变化为由大到小。如图3例子。

奇偶序列的产生方法是将计数器的最后一位作为比较数据的最低位,在一个计数周期内,前半个周期计数器输出最低位为0,其他高位逐次增大,则产生的数据即为偶数序列;后半个周期输出最低位为1,其余高位依次减小,产生的数据为依次减小的偶序列。具体电路可以由以下电路图表示:

8051中的PWM模块设计:

应该称为一个适合语音处理的PWM模块,输出引脚应该外接一积分电路。输出波形的方式适合作语音处理。设计精度为8位。

PWM模块应包括:

1、比较部分(Comp):

2、计数部分(Counter):

3、状态及控制信号寄存/控制器(PWM_Ctrl);

1)状态积寄存器:(Flags),地址:E8H;

①EN:PWM模块启动位,置位为„1‟将使PWM模块开始工作;

②(留空备用)

③④解调速率标志位:00–无分频;01–2分频;10–10分频;11–16分频。(RESET后为00)

⑤(留空备用)

⑥(留空备用)

⑦(留空备用)

⑧(留空备用)

注意:该寄存器可以位操作情况下可写,不可读;只能在字节操作方式下读取。

2)数据寄存器(DataStore),地址:F8H;注意:该寄存器值不可读,只可写。

4、端口:

1)数据总线(DataBus);(双向)

2)地址总线(AddrBus);(IN)

3)PWM波输出端口(PWMOut);(OUT)

4)控制线:

① CLK:时钟;(IN)

② Reset:异步复位信号;(IN低电平有效)

③ WR:写PWMRAM信号;(IN低电平有效);

④ RD:读PWMRAM信号;(IN低电平有效)

⑤ DONE:接受完毕反馈信号;(OUT高电平有效)

⑥ INT:中断申请信号;(OUT低电平有效)

⑦ IntResp:中断响应信号;(In低电平有效)

⑧ ByteBit:字节/位操作控制信号(IN1-BYTE0-BIT);

⑨⑩中断占用相当于MCU8051的外部中断2,则可保证在5个指令周期之内,“读取数据”中断必定得到响应。

PWM模块使用方法:因为占用了8051外部中断1,所以在不使用该模块时,应该把外部中断2屏蔽。而PWM模块产生的中断请求可以看作是“能接受数据”的信号。中断方法如后“中断读取数据过程”。使用PWM模块,应该先对内部地址8FH的数据寄存器写入数据,然后设置地址8EH的状态寄存器最低位(0)为"1",即PWM模块开始工作并输出PWM调制波(如TIMER模块)。在输出PWM调制波过程中,应及时对PWM写入下一个调制数据,保证PWM连续工作,输出波形连续。

中断读取数据过程:

1.PWM模块可以读取数据,申请中断信号INT置位为„0‟,等待8051响应;

2.8051接受到中断申请后,作出中断响应,置位IntResp信号线为„0‟;

3.PWM模块收到IntResp信号后,把中断申请信号INT复位为„1‟,等待8051通知读取数据WR信号;

4.8051取出要求数据放于数据总线(DataBus)上,并置WR信号为„0‟;

5.PWM模块发现WR信号为„0‟,由数据总线(DataBus)上读取数据到内部数据寄存器,将DONE位置位为„1‟;

6.8051发现DONE信号的上跳变为„1‟,释放数据总线;

7.PWM模块完成当前输出周期,复位DONE为„0‟,从此当前数据寄存器可以再次接受数据输入。

注意事项:

1)输出的PWM信号中的高电平部分必须处于一个输出周期的中间,不能偏离,否则输出语音经过低通后必定是一失真严重的结果。

2)对于8位精度的PWM,每个输出周期占用256(28)个机器周期,但是包含256个机器周期至少有22个指令周期,亦即264(22*12)个机器周期,由于语音信号的连续性,256与264之间相差的8个机器周期是不能由之丢空的,否则也会使输出信号失真。如果将须输出数字量按256/264的比例放大输出,亦不可行,因为如此非整数比例放大,放大倍数很小,则经过再量化后小数部分亦会被忽略掉,产生失真。举例:输出数字量为16,按比例放大后为16.5,更会产生难以取舍的问题。

故采取以下办法:该模块以时钟周期为标准,而与TMBus无关,即基本上与8051部分异步工作。读取数据方式为每次读取足够数据段储存于模块内的RAM内(暂定每次读取8字节),储存字节数必须能保证PWM输出该段数据过程中,有足够时间从RAM处继续读取数据。由于占用了8051的外部中断2,中断申请在3个指令周期(36个时钟周期)内必定能得到响应,而PWM模块处理一个数据需要固定耗时256个时钟周期,故能保证PWM模块顺序读取数据中断能及时得到响应,不会影响调制信号的连续性。

3)RDRAM过程是异步过程。

4)输出后数据寄存器不自动清零。因为可以通过把Flags(0)写„0‟而停止PWM模块继续工作。

PWM技术的具体应用

PWM软件法控制充电电流

本方法的基本思想就是利用单片机具有的PWM端口,在不改变PWM方波周期的前提下,通过软件的方法调整单片机的PWM控制寄存器来调整PWM的占空比,从而控制充电电流。本方法所要求的单片机必须具有ADC端口和PWM端口这两个必须条件,另外ADC的位数尽量高,单片机的工作速度尽量快。在调整充电电流前,单片机先快速读取充电电流的大小,然后把设定的充电电流与实际读取到的充电电流进行比较,若实际电流偏小则向增加充电电流的方向调整PWM的占空比;若实际电流偏大则向减小充电电流的方向调整PWM的占空比。在软件PWM的调整过程中要注意ADC的读数偏差和电源工作电压等引入的纹波干扰,合理采用算术平均法等数字滤波技术。


推荐阅读
  • 配置IPv4静态路由实现企业网内不同网段用户互访
    本文介绍了通过配置IPv4静态路由实现企业网内不同网段用户互访的方法。首先需要配置接口的链路层协议参数和IP地址,使相邻节点网络层可达。然后按照静态路由组网图的操作步骤,配置静态路由。这样任意两台主机之间都能够互通。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 加密世界下一个主流叙事领域:L2、跨链桥、GameFi等
    本文介绍了加密世界下一个主流叙事的七个潜力领域,包括L2、跨链桥、GameFi等。L2作为以太坊的二层解决方案,在过去一年取得了巨大成功,跨链桥和互操作性是多链Web3中最重要的因素。去中心化的数据存储领域也具有巨大潜力,未来云存储市场有望达到1500亿美元。DAO和社交代币将成为购买和控制现实世界资产的重要方式,而GameFi作为数字资产在高收入游戏中的应用有望推动数字资产走向主流。衍生品市场也在不断发展壮大。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • 本文详细介绍了使用C#实现Word模版打印的方案。包括添加COM引用、新建Word操作类、开启Word进程、加载模版文件等步骤。通过该方案可以实现C#对Word文档的打印功能。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
  • 本文介绍了在C#中SByte类型的GetHashCode方法,该方法用于获取当前SByte实例的HashCode。给出了该方法的语法和返回值,并提供了一个示例程序演示了该方法的使用。 ... [详细]
author-avatar
手机用户2502903557
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有