基于C8051的软开关用移相PWM的实现

发布者:创新之梦最新更新时间:2007-03-09 手机看文章 扫描二维码
随时随地手机看文章
摘要:通过C8051单片机的可编程计数器列阵PCA来实现软开关用移相PWM触发脉冲,实验结果表明通过此法产生的PWM波调试方便,运行可靠,可应用于多种软开关电路中。 关键词:软开关;移相PWM:C8051 0 引言 软开关技术近年来已经得到了深入,广泛的研究并且发展迅速。但在各种软开关电路中,使开关管实现软开关的触发脉冲比较特殊:例如在典型的Boost ZCT—PWM电路[1]中,主开关管的触发脉冲超前于辅助开关管的触发脉冲,两者虽然频率相同,但占空比不同。在实验中发现,利用Cvgnal公司的C8051F系列单片机可以方便地产生此种软开关用的、多路占空比不等的移相PWM脉冲。 1 C805lF系列单片机可编程计数器阵列PCA简介 图1为PCA原理框图,以C8051F040为例,PCA包含1个专用的16位计数器/定时器和6个16位捕捉/比较模块。从图1中可见,16位PCA专用计数器/定时器的时基信号可有多种选择,可通过配置相关的系统控制器的特殊功能寄存器(SFR)来实现。每个捕捉/比较模块有自己的I/O线CEXn,可通过配制交叉开关寄存器(XBR。)将每个模块的I/O线连接到端口I/0;每个模块都可配制为独立工作,有4种工作方式:边沿触发捕捉方式、软件定时器比较方式、高速输出和脉宽调制器。本文中产生多路占空比不等的移相PWM是使用了捕捉/比较模块的高速输出工作方式,其原理如图2所示。 PCAOL和PCAOH分别为系统16位PCA计数器/定时器的低8位和高8位,PCAOCPLn和PCAOCPHn分别为捕捉/比较模块寄存器低8位和高8位。在高速输出方式下,配制模块工作方式的寄存器PCA0CPM值如图2中所示。当系统PCA计数器/定时器与模块寄存器值发生匹配时,模块的CEXn引脚上的逻辑电平将发生变化,如果将相应模块的I/0线CEXn连接到端口I/0,单片机相应端口输出电平即发生变化,这就可实现PWM脉冲的高、低电平输出。每个模块的工作是单独进行的,需要的CPU干预较少,这就可同时输出多路PWM。 控制寄存器PCAOCN中,CF是当PCA计数器/定时器溢出时,由硬件置位,如CF中断被允许则此时CPU转向CF中断服务程序,该位只能由软件清零。CR置1是允许PCA计数器/定时器工作,置O是禁止。CCF0~CCF5是模块捕捉比较标志,当匹配发生时,该位由硬件置位,如CCF中断被允许则此时CPU转向相应CCF中断服务程序,该位只能由软件清零。 可见要产生多路移相PWM,可允许多个捕捉/比较模块同时工作,当发生匹配即电平转换时,允许CPU转向CCF中断服务程序,在中断服务程序中,将相应的数值偏移量与寄存器PCAOCPLn和PCAOCPHn值相加,这一数值偏移量便决定了下一次匹配的时间,PWM的高、低电平脉宽便由各自相应的数值偏移量决定。 2 软件系统设计及编程语言的选择 系统主程序框图如图3所示。 在针对具体电路应用时,须加入主开关管PWM触发脉冲调节子程序,根据输出电压采样反馈来调节其占空比以保证输出电压稳定。在选择编程语言时,同时用C51和汇编语言来产生2路移相PWM,并作了比较。比较如下:设定开关频率为20kHz,主开关管触发脉冲占空比为50%,辅助管为20%并滞后于主开关管2lμs开通。进入CCF中断服务程序后,CPU进行捕捉/比较模块寄存器偏移量计算时,以模块0计算主开关管高电压脉宽偏移量为例,C51语句为: tempI=(PCA0CPH0《8)lPCA0CPLO;//取寄存器当前值 temp1+=0x0271: //上升沿,加上高电压脉宽 PCA0CPLO=(0Xff%26;amp;(temp1); PCAOCPH0=[0xff%26;amp;(temp》8)];//计算结果返回寄存器 编译后的语句执行过程为: MOV R7,FCH MOV A,R7 MOV R3,FBH MOV 0CH,A MOV A,R3 MOV 0DH,A ADD A,#7lH MOV 0DH,A MOk A,#02H ADDC A,OCH//以上取害存器当前值,并加上高电压脉宽计算 MOV OCH,A MOV A,0DH MOV FBH,A M0V A,OCH MOV FCH,A//计算结果返回寄存器 直接使用汇编语言实现相同功能时,汇编语句为 mllV A,R0 add A,#071h mov R0,A clr A addc A,Rl add A,#02h mov R1,A mov PCAOCPLO,R0 mov PCAOCPHO,Rl 编译后的语句执行过程为 MOV A,RO ADD A,#71H MOV R0,A CLR A AkDDC A,Rl ADD A,#02H MOV R1,A MOV FBH,R0 MOV FCH,Rl 通过比较中断服务程序处理过程可见,C51的执行过程中有些地址只是作为数据存取的中转,另外,还有大量的堆栈操作未在文中给出,这增加了CPU处理CCF中断的时钟周期,如果几个中断优先级相同的CCF中断发生的时间间隔过短,就会造成程序跑飞。使用汇编语言编程,在单片机时钟频率为24.5MHz时,其中断服务程序最少用时约为35个时钟周期,而C51用时大概为其2倍。因此,用汇编语言编程可实现的PWM频率和移相范围都要高于C5l。 3 实验结果 1)针对主、辅开关管均实现软开关的新型Boost ZCT—PWM电路[图4(a)]需要的两路移相PWM触发脉冲,用C8051单片机产生了所需触发脉冲[图4(b)],并对此Boost电路作了实验。单片机端口J/0为低电平有效,故图4(b)所示是经非门反相后的信号。实验电路参数:Vin=24V,Vo=48V,输出功率100W,Lf=5mH,L1=4μH,La=6μH,Ca=1μF,Cf200μF。实验结果如图5所示。 从图5实验结果可见,主、辅开关管均实现了零电流开通和关断,表明单片机产生的移相PWM触发脉冲能保证电路实现预期的全软开关效果。 2)专用移相控制芯片如UC3879,在软开关全桥PWM变换器(如图6所示)中有很广泛的应用。本实验实现单片机输出4路PWM脉冲,频率为50kHz,每路占空比为40%,同一桥臂开关管死区时间设定为2μs,桥臂S1、S4为一组,S2、S3为一组,实验结果如图7所示。 从以上实验结果可见,所产生的PWM脉冲波形频率和相移精确度高,波形理想。 4 结语 通过C805l单片机的可编程计数器列阵PCA产生移相PWM脉冲,可根据实际应用所需产生相应脉冲路数,频率高,移相范围广,精确可靠,可应用于多种软开关实验或者实际电路中。
引用地址:基于C8051的软开关用移相PWM的实现

上一篇:由SA51和MSP430F1121组成的驱动控制系统
下一篇:SPI总线在51系列单片机系统中的实现

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved