Eftichios Koutroulis,科斯塔斯卡Kalaitzakis,会员,IEEE和尼古拉斯长Voulgaris
摘要---在单片机中实现PWM 控制技术的方法及其原理,分析单片机实现PWM 功能几种方法的优缺点,分别介绍用单片机的PWM 模块实现PWM 功能、用程序模拟实现多路PWM 功能、用定时器资源实现高分辩率PWM 功能和用机外硬件实现PWM 功能的方法,并分析这些的方法的优缺点
关键词:单片机,PWM 技术,分辩率,频率
单片机应用于工业控制等方面时,经常要对电流、电压、温度、位移、转速等模拟量进行调整控制,如恒流、恒压、恒温、恒速等,单片机一般将采集的模拟量数据进行运算和处理,根据设计要求对输出控制进行脉宽调制,达到恒流、恒压、恒温、恒速的目的。随着大规模集成电路的不断发展, 很多单片机都有内置PWM 模块, 因此, 单片机的PWM 控制技术可以用内置PWM模块实现,也可以用单片机的其它资源由软件模拟来实现,还可以通过控制外置硬件电路来实现, 现谈谈单片机的PWM 控制技术实现方法及其原理,并分析各种方法的优缺点,着重介绍用定时器资源实现高分辩率PWM 功能的方法和机外硬件实现
PWM 功能的方法
1 PWM 控制技术
PWM 方式即脉冲宽度调制方式,如图1。主要有分辨率、周期两个参数,分辨率是指在一个周期内可控的最小时间,分辨率越高,控制精度也越高,一般用n 位二进制数表示,如8 位、10位、12 位、16 位等分辨率, 可控的最小工作时间:T1min= T2n , T1T也称作占空比。单片机应用于工业控制等方面时, 一般采用PWM 方式对模拟量进行控制,在周期T 一定的情况下,通过调整工作时间T1 来达到对模拟量控制的目的。单片机的PWM 方式是指单片机通过软、硬件在指定的I /O 口输出工作时间T1 可调的一定频率的方波信号。
2 几种实现PWM功能的方法及其工作原理
单片机要实现PWM 功能, 可以通过单片机的PWM 模块、程序模拟、定时器模拟、外置硬件电路等方法实现,以下介绍这几种方法的工作原理及其优缺点。
2.1 用单片机的PWM模块实现PWM功能
随着大规模集成电路的不断发展,寻找带有内置PWM 模块的单片机已经不是困难的事情,内置PWM 模块的单片机,其PWM 最大分辨率一般是10位,只要设置好PWM 工作的频率、分辨率等参数并启动,将占空比数据写入指定寄存器即可,程序流程如图2。单片机初始化时设置好PWM 模块参数并启动PWM 功能,根据需要采集模拟量数据,经运算分析调整占空比,再将占空比数据写到PWM 指定的寄存器中,周而复始,达到调整PWM 的目的。这种实现PWM 功能方法的优点是控制简单、控制程序短、程序用于处理PWM 功能所需占用的时间短,不足之处是输出的I /O 口必须是单片机内PWM 模块指定的I /O 口,不能任意改变,要同时实现多路PWM 功能时受到单片机内PWM 硬件资源的限制。
2.2 用程序模拟实现多路PWM功能
用单片机一个定时器资源产生公共的PWM 时基, 将该时基实时与各路PWM 所要求的占空比数据比较, 时基≤占空比数据时,对应输出口输出“1”,否则输出“0”。以模拟4 路8 位PWM 功能为例,设PWM 公共时基存于TIMER(00H~FFH)存储器中,各路占空比数据存于P1、P2、P3、P4(00H~FFH),PWM输出分别为OUT1、OUT2、OUT3、OUT4,选用TMR0 定时器,主程序和中断程序流程如图3。单片机初始化时设置好TMR0 定时器参数并启动TMR0 中断,根据需要采集模拟量数据,经运算分析调整各路占空比。TMR0 中断处理程序产生PWM 时基,每进入一次中断,TIMER 就加一,当到达FFH 后又从00H 开始累加。将时基TIMER 分别与各路占空比P1~P4 比较,时基大于占空比则对应输出“0”,否则对应输出“1”。例如要模拟4 路8 位100Hz 的PWM,定时中断设置延时时间应为(1/100Hz)×28 ≈40μs,图1 PWM 方式同时,还要选择尽可能高频率的时钟,要保证中断处理所需时间远小于中断设置延时时间,让单片机有足够的时间执行主程序。这种方法的优点是仅用一个定时器资源, 就能实现多路PWM,不需指定I /O 口,也就是可以在低端单片机上实现多路PWM 功能。但是,由于在中断处理过程中要处理的程序量大,无法提高PWM 的频率,PWM 的分辨率也不宜大于8 位, 因为大于8 位分辨率时, 各路占空比数据和时基数据都要用两个字节存储, 中断处理过程必须比较双字节数的大小, 程序会大大加长, 由于单片机的最高时钟频率是有限的, 因此会大大影响PWM 的频率。同样的道理, 如果要提高频率, 势必也会影响PWM 的分辨率。因此,当模拟的PWM 频率和分辨率都要求不高而又要同时模拟多路PWM 功能时可以使用这种方法。
2.3 用定时器模拟实现PWM功能
很多低端单片机并没有内置PWM 时模块, 某些应用场合并不需要用到中高端的单片机, 如果单片机的定时器资源有剩余,可以利用定时器资源模拟PWM 功能。具体方法如下:根据要模拟PWM 的精度要求, 确定用于保存占空比数据的存储器的位数(一般为8 位、10 位、12 位、16 位等),根据频率要求设置好定时器的预分频参数,将图一中的工作时间和(周期-工作时间)交替写入定时器,即可实现PWM 功能。假定用16 位定时器TMR1 模拟16 位PWM 功能, 定时器的计数存储器为TMR1H:TMR1L,从0000h 开始递增计数,一直加到FFFFh 后,再翻转到0000h,同时TMR1 溢出时会产生中断,占空比数据存于P1H:P1L,中断处理程序流程图如图4,因为定时器为正计数溢出中断,因此定时器在模拟PWM 的工作时间时,要将P1H:P1L 的补码送入TMR1H:TMR1L,定时器在模拟PWM 的间歇时间时,要将P1H:P1L 送入TMR1H:TMR1L。通过交替设定定时器计数数据,达到模拟PWM 的目的。用定时器模拟实现PWM 功能的优点是可以实现高精度(最高16 位)的PWM,PWM 输出可以是任意I /O 口,中断处理程序不长。不足之处是一个PWM 要占用一个定时器资源,很难
同时实现多路PWM 功能。
2.4 机外硬件模拟PWM功能
PWM 功能也可以用机外硬件模拟实现,如用机外移位寄存器和数字比较器实现PWM 功能和用Intel 8254 定时器电路实现PWM 功能,以下分别介绍其工作原理及其优缺点。
2.4.1 用机外移位寄存器和数字比较器实现PWM功能
图5 为机外用移位寄存器和数字比较器模拟实现4 路1kHz12 位PWM 的硬件原理图,图中U1~U6 带锁存的8 位移位寄存器(74HC595)与单片机通讯,保存各路占空比数据,U17~U14 由74AS885 和74HC85 组成4 路12 位数据比较器,U15 提供1kHzPWM 时基信号,其原理为:单片机将4 路PWM 的占空比数据依次传输到U1~U6,其中U1 保存第1 路PWM 占空比的高8 位,U2 保存第1 路PWM 占空比的低4 位和第2 路PWM 占空比的高4 位,U3 保存第2 路PWM 占空比的高8 位,U4 保存第3路PWM 占空比的高8 位,U5 保存第3 路PWM 占空比的低4位和第4 路PWM 占空比的高4 位,U6 保存第2 路PWM 占空比的高8 位。当各路PWM 占空比数据大于PWM 时基时输出高电平,否则输出低电平,达到模拟实现PWM 的目的。
PWM 的频率和精度由外部硬件电路控制实现, 要改变PWM 的精度, 就要改变移位寄存器的数量,PWM 的频率(fPWM)由U15 第⑩脚输入的时钟信号的频率(fT)和PWM 的精度(2n)决定,fPWM= fT2n因此,图中的PWM 频率fPWM= 4MHz212 ≈1kHz。用图5 的方法模拟PWM 功能的优点是单片机没有特定要求,不管模拟几路PWM,硬件电路与单片机的接口仅占3 个I /O口, 单片机只要负责将PWM 得占空比数据传输出去即可,PWM输出不占用单片机的I /O 口,提高精度和改变频率容易实现。缺点也很明显,线路复杂,占用大面积的线路板空间,成本高。
2.4.2 用Intel 8254 定时器电路实现PWM 功能
图6 为用Intel 8254 定时器电路实现2 路16 位PWM 原理图,Intel 8254 定时器有3 个通道, 每个通道有6 种工作模式,Intel 8254 定时器的工作原理很容易查到, 在此不加以分析。图6 的8254 计数器0 工作在模式0,计数器1 和计数器2工作在模式1。在这种模式下,其OUT0 的输出信号在其中一个周期内处于低电平,而在其它周期则处于高电平,OUT0 的反向信号在其中一个周期内处于高电平, 而在其它周期中处于低电平。另外,由于计数器1 和计数器2 工作在模式1,当其门控信号GATE1 和GATE2 有一个上升沿的触发脉冲时,其输出信号的反向信号输出为一个高电平的单稳脉冲, 此时若GATE1 和GATE2 信号为连续不断的触发脉冲,则计数器1 和计数器2 将不断反复重新计数, 从而使其输出信号的反向信号为连续不断的脉冲信号。保持计数器0 的计数初值不变,则计数器0 的输出信号OUT0 的频率就不会改变, 即计数器1 和计数器2 的门控信号触发频率为恒值, 这时如果改变计数器1 或计数器2 中的计数初值, 则其输出信号OUT1 或OUT2 的反向信号的输出信号的脉冲宽度将会随计数器中计数初的改变而改变, 这样就形成了脉冲宽度可调节的PWM 信号。用Intel 8254 定时器电路实现PWM 电路简单,PWM 的精度高(最高达16 位),频率受8254 输入的计数速率限制(8254最高输入速率为10MHz),PWM 的频率=晶振频率/ 2n(n 为PWM的精度)单片机对Intel 8254 定时器初始化后,将PWM 得占空比数据写入对应计数器即可,操作简单,如果要增加PWM 的路数, 可以增加一片8254 实现(2 片8254 共可以实现5 路PWM)。不足之处是与单片机的接口占用I /O 口较多。
3 结束语
实现PWM 功能的方法有很多,实际应用中也可以由几种方法组合实现,笔者在设计一个多路恒流充电方案时,用户要求3路恒流充电,查阅相关单片机资料,选用有内置3 路10 位PWM的PIC16F737 单片机,方案完成后,用户觉得很满意,提出要求实现4 路恒流充电,考虑PIC16F737 仅有3 路PWM,但3 路恒流充电并没有使用TMR1, 因而用TMR1 定时器模拟了1 路10位的PWM,这样在PIC16F737 中就实现了4 路10 位PWM。另外,1.575GHz 的1dB 功率压缩点P1dB 是11.5dBm,带内增益平坦度小于0.2dB。从表2 可以看出,相对于理论仿真结果,中心频率发生偏移,噪声系数有一定的恶化。
4 LNA 测试和理论仿真之间误差的探讨
仿真的局限性就是很难将实际制作时的各种因素对结果的影响表现出来,比如腔体效应。在仿真时的电源电路可以不加大值的滤波电容,软件仍然能把理想的结果计算出来。但在实际制作时滤波电容却是必须的。电路板的损耗和介质损耗不均匀这些因素也被忽略。另外,元器件的值和微带线的长宽都是在非常精确的条件下参与仿真的。而在电路板上焊接时,不能做到那么精确的焊接,比如很难将两个元器件焊接后,还使其中间的微带线长度正好是2mm 或3mm。一段的误差影响不是很大,但整个电路板元器件的焊接误差加一块就会对结果造成很大影响。尤其一些关键位置的元器件的值变化一点就会对结果产生较大影响。在进行仿真时,所有的元器件值都是精确的,而实际元器件值都是有误差的,不能做到绝对准确。比如,第一级的输入匹配电路的电感,对结果影响就比较大,由于电感的值只有3.6nH,零点几的误差相对于这个标准值都是很大的。所有的值的误差加一块就会对结果产生更大影响。所以需要调试解决这些问题。在微波阶段腔体效应的影响不能忽视,尤其对反射波影响很大。盖上放大器的盖时,会发现输入端驻波比变小,这是因为受到前面腔体的反射,减小了输入端反射系数,而同时相反,输出端驻波比却变大, 这是因为受到后面腔体的反射增大了输出端反射系数,变大变小的幅度能达到0.1 以上。增益也会得到抑制,但相对于30dB 多的增益,增益受腔体效应的影响不是很大。但有却甚至会带来LNA 的自激,在工程当中,可以在腔体内壁上涂吸
波材料降低腔体效应的影响,而且这样也可以用来减小驻波比。
5 结束语
放大器的原理图设计是一个反复调谐优化的过程, 成品制作也是个反复调试和测试的过程, 利用软件仿真不仅可以省去很多复杂的计算,快速设计,而且对调试也有很强的指导作用。高频器件最容易受环境等诸多因素的影响, 从而使其偏离仿真设计值,所以有必要对造成这些误差的工艺、损耗和腔体效应原
因进行分析。经测试表明该放大器完全满足指标要求,尤其噪声系数、增益平坦度和增益优于同频段的产品很多,且体积小,可用在GPS 的L1 波段接收系统的前端并成功应用。
参考文献
[1]高清Maheshappa,学者Nagaraju,克里希纳穆尔蒂和MV,“一种改进
最大功率点跟踪器使用升压转换器, 当前锁相环,“可再生能源,第一卷。 13,没有。 2,第195-201, 1998。
[2]浅滩百色,下午Szczesny,和RL Steigerwald,“微机 某住宅功率调节系统控制,“IEEE期刊。。,第一卷。的IA - 21,第1182至1191年,九月/十月1985。
[3]机管局Nafeh,跳频法赫米,办公自动化Mahgoub,萨尔瓦多和EM - Zahab“发达 最大功率跟踪算法独立光伏
系统“,能源,第一卷。 20,页45-53,1998年1月。
[4]赵光原田和G.,“太阳能电池之间的电源接口控制
和AC来源,“IEEE期刊。电力电子。,第一卷。 8,第654-662,10月 1993。
[5]律政司司长蒋介石,KT公司张和CY日圆,“住宅储能 系统,“IEEE期刊。工业电子。,第一卷。 45,页385-394,1998年6月。
[6]数据库Snyman和JHR恩斯林,“简化前馈控制 在光伏设备的最大功率点,在过程中“。 1992年诠释。 conf中。工业电子。,Contr。,仪器设备。自动售货机。,第一卷。一,1992年11月,第 548-553。
[7]三华,学者林和C.沉“执行的DSP控制的光伏
系统的峰值功率跟踪,“IEEE期刊。工业电子。, 第一卷。 45,页99-1071998年2月。
[8]黄长发和BH赵体育,“设计与microprocessorcontrolled分析 峰值功率跟踪系统,“IEEE期刊。 Aerosp。电子。 系统eXPerience。,第一卷。 32,182-189,1996年1月。
[9]华润沙利文和MJ的权力,“高效率的最大功率 在一个点跟踪太阳能光伏阵列的比赛车辆,“在 触发。 IEEE电力电子。规格。 conf中。,1993年6月,第574-580。
[10]克Vachtsevanos和K. Kalaitzakis,“一种混合光伏模拟器 实用的互动研究,“IEEE期刊。能源兑换。,第一卷。欧共体- 2,第 227-231,1987年6月。
[11]名爵Jaboori,MM的Saied和AA Hanafy,“阿的贡献 模拟和设计优化光伏发电系统,“国立 跨。能源兑换。,第一卷。 6,第401-406,1991年9月。
[12]全磨憨等。电力电子转换器,应用和设计。 纽约:Wiley,1989。
[13]大赦国际新闻记者,开关电源设计。纽约:McGraw 希尔,1994。
用户540024 2013-6-3 18:52
chen_zs2012_704941858 2013-5-16 23:01
用户436823 2013-5-16 12:12