位置:51电子网 » 技术资料 » 单 片 机

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

发布时间:2007/4/23 0:00:00 访问次数:896

摘要:通过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&(temp1);
PCAOCPH0=[0xff&(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处理C

摘要:通过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&(temp1);
PCAOCPH0=[0xff&(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处理C

相关IC型号

热门点击

 

推荐技术资料

硬盘式MP3播放器终级改
    一次偶然的机会我结识了NE0 2511,那是一个远方的... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!