1 引言
随着科学技术飞速发展,对电源可靠性、输出精度和稳定性要求越来越高,利用D/A转换器的高分辨率和单片机自动检测技术设计的程控电源就显示出其优越性。程控电源既能方便输入和选择预设电压值又具有较高精度和稳定性,而且能实现对电源的可编程监控,给电路实验带来极大的方便,提高了工作效率。
2 C8051F040单片机
随着微电子技术的飞速发展,CPU已经变成低成本器件。在可能的情况下,各种机电设备已经或者正在嵌入CPU构成的嵌入式系统。美国的Silabs公司推出的C8051F系列单片机把80C51系列单片机从微控制器(MCU)时代推向片上系统(SOC)时代,使得以8051为内核的单片机上了一个新的台阶。SOC即system on chip的缩写,意思是把计算机常用的一些数字核模拟外设等全部做在一块芯片上,使它成为一个完整的模拟数据采集与控制系统。
本设计使用C8051F040作为主控芯片。C8051F040是一款功能强大的单片机,是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。除了具有标准8051的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模拟部件和其它数字外设及功能部件。外设或功能部件包括ADC、DAC、电压基准、可编程计数器阵列等。它有优于51系列单片机的性能,而且成本也不高,C8051F040单片机是真正能独立工作的片上系统(SOC)。
3 工作原理
交流电220V经变压、整流、滤波后得到高压直流电100V,然后通过DC-DC变换电路将高压直流电变为所需要的直流电压12V,12V除了给恒压控制回路和限流控制回路供电外,还经过DC-DC变换器(LM2596S)得到5V直流电,5V直流电给单片机模块供电。
控制电路是整个程控电源的核心部分,用户可根据需要,通过键盘设定开关电源输出的电压值及最大输出电流值,单片机系统对电源输出电压和电流进行数据采样,并与用户给定数据进行比较,然后根据设置的调整算法控制开关调整电路,使电源输出电压符合给定值,开关控制电路在调整电源输出电压的同时还要检测电路的输出电流,当输出电流超过给定值时,就限制电流值,使其不超过最初设定的最大电流值,实现保护功能。实时的电压值和电流值通过液晶LCD显示。
C8051F040内部集成有可编程计数器阵列PCA,PCA产生PWM,基于单片机的PWM(脉宽调制)控制,通过一个I/O引脚输出PWM脉冲,直接驱动外接的调节管,改变功率开关管的导通/截止时间进行输出稳定,从而达到稳定输出电压的目的。
限流控制回路从输出端取样并与设定的上限电流值进行比较,若负载上的电流高于设定电流值,就限流保护,使输出电流值保持在上限值,电压值随之降到对应值。
4 硬件电路设计
4.1 辅助电源电路
本次设计的电源系统最终要求实时输出我们想要的电压,故我们需要电压稳定的直流供电系统。本系统是将220V的交流电分别变为+5V(单片机最小系统)和+12V(稳压、限流控制模块)的直流电压。
如图1所示,220V交流电通过电源变压器,变为100V交流电。整流电路的任务是将交流电变换成直流电,这里采用的是桥式整流电路。滤波电路用于滤去整流输出电压中的纹波,在此选用的是由电容、电感组合而成的复式滤波电路。由于电抗元件在电路中有储能作用,故电容、电感具有平波作用。其后加上两个电阻(R1,R2)一个稳压管(W1),将电压大致稳在直流12V。
图1 整流、滤波、稳压原理图
图2是DC-DC变换器(LM2596S)以及外围电路,以12V作为输入电压,经过转化输出稳定的5V直流电压。LM2596S由比较器,基准电压源,振荡器,驱动器等构成。C16是输入滤波电容,FS1起保护电路的作用,L4,D15,C17是储能部分。
图2 DC-DC变换器
4.2 控制电路
本模块利用开关式稳压电源的基础电路,以高性能单片机C8051F040为主控元件,组成数据处理电路,在检测与控制软件支持下,采用双闭环控制系统,控制闭环为电压环或电流环,控制回路从输出端对输出电流、电压进行数据采样,并与设定基准进行比较,从而调整和控制开关功率管的工作状态,改变功率开关管的导通/截止时间进行输出稳定。同时监测输出电流大小,通过系统软件实现限流功能。图3表示恒压控制模块的原理图和限流控制模块的原理图。
4.2.1 恒压控制电路
为达到稳定输出电压的目的,不断检测系统的输出电压,根据电源输出电压与设定值之差,输出PWM波,直接控制调节管M2的占空比,使输出电压稳定。C8051F040内部集成有可编程计数器阵列PCA,基于单片机的PWM(脉宽调制)控制,通过P0.0(通过数字交叉开关设置)输出PWM脉冲,直接驱动外接的晶体管Q4、Q3,从而改变功率开关管M2的导通频率或导通/截止时间进行输出稳定,达到稳压状态,稳压回路工作,DS1亮,呈现红色。
4.2.2 限流控制电路
限流控制回路从输出端取样并与设定的上限电流值进行比较,若负载上的电流高于设定电流值,就限流保护,使输出电流值保持在上限值,电压值随之降到对应值。限流状态时,DS2亮,呈现绿色。
图3控制电路原理图
5 算法介绍
主程序中主要包括对定时器中断返回的键值的处理,对采样回的电压、电流值的处理以及调节等部分。
电压采样部分利用了C8051F040的模数转换(A/D)功能。采用了12位的ADC,通过设置相关的寄存器使其工作在单端方式下,电压基准取自VREF0 引脚,增益为1。该设计的电压基准为2.44v,有公式:
转换码 =
其中:单端方式n = 12;差分方式n = 11。
采样电压值Vd为:Vd=转换码×2.44/4096;
分析电路可知实时电流Io与采样回的电压Vdi的关系是:Io=Vdi/11/1.1;由R20和R19的分压关系可知输出电压Vo与采样电压Vdv的关系是:Vo=Vdv×101。
由以上三式便可根据ADC0相关的寄存器ADC0H、ADC0L中的转换码得到实时的电压电流值。
电流的控制部分利用了C8051F040的数模转换(D/A)功能。C8051F040内有两个片内12 位电压方式数/模转换器(DAC),每个DAC 的输出摆幅均为0V 到VREF,对应的输入码范围是0x000 到0xFFF,由于输出摆幅和输入码是线性的对应关系,所以可得到输出电压CCadj与输入码Mda的关系是:Mda=CCadj/2.45×4096
又由电路图可知限定电流Imax与输出电压Vda的关系是:CCadj=Imax×1.1×11;由以上两式可得到限流值与输入码的关系为Mda=Imax×1.1×11×4096 /2.45
则可通过该式给输出限定电流值,通过限定值和实际电路的电流值进行比较实现对电路的电流的限制,从而保护了程控电源。完成程控电源限流的功能。
由于该设计是开关电源,所以电压的控制部分利用了C8051F040的脉宽调制功能(PWM),C8051F040内部集成有可编程计数器阵列PCA,可编程计数器阵列PCA可工作在脉宽调制(PWM)方式下,基于PWM功能,C8051F040可输出控制信号来控制开关稳压电源功率开关管(MOSFET ,IGBT)开通和关断的时间比率,从而使开关稳压电源输出设定的电压值。当电源所带的负载有所变化而导致输出电压有所变化时再根据对输出的电压的采样反馈通过调节输出信号的占空比可来稳定输出电压。
本设计中C8051F040工作在16位脉宽调制器方式下。在该方式下,16位捕捉/比较模块定义PWM信号低电平时间的PCA0时钟数。当PCA0计数器与模块的值匹配时,CEXn的输出被置为高电平;当计数器溢出时,CEXn输出被置为低电平。为了输出一个占空比可变的波形,新值的写入应与PCA0 CCFn匹配中断同步。置‘1’ PCA0CPMn寄存器中的ECOMn、PWMn和PWM16n位将使能16位脉冲宽度调制器方式。为了输出一个占空比可变的波形,应将CCFn设置为逻辑‘1’以允许匹配中断。16位PWM的占空比的计算公式为:占空比=(65536 − PCA0CPn)/65536
又根据电路中开关电源部分的原理,可以得到一个调节函数:占空比=f(?E),其中?E为设定电压值与采样回的输出电压值之差。从而便可通过不断调节占空比来减小?E使输出电压达到设定值并且稳定在设定值,来完成恒压的功能。
6 结论
程控电源的设计采用C8051F040单片机作为控制核心。在PC的IDE开发环境中用C语言进行编程,通过开发板将程序下载到单片机中,进行联调。联调结果基本符合输出电压、电流值(0~100V,0~1A),由于所选器件精度问题,还存在一定误差。选取参数高的具有相同功能的器件,可以使输出电压、电流的范围变大。