基于PIC16F874单片机的可编程电源的设计与应用
2011-12-05
随着各种电器和仪表设备的日渐丰富,对电源应用的灵活性提出了更高的要求。设计一款使用灵活、方便且价格相对便宜的通用电源,正越来越成为市场所需。现代单片机正朝着处理速度越来越快,外设资源越来越丰富,价格越来越便宜的方向发展,将单片机融入电源的设计中可以极大地提升电源的性能和灵活性。本文介绍了一种单片机加PWM芯片的开关电源设计方法,既可以保留PWM芯片带来的稳定工作性能,又可以利用单片机的控制能力提供各种人机交互和通信接口。笔者设计的电源作为通用电源使用,可以提供灵活可编程的电压电流输出,另外还可以设置成铅酸电池充电器的模式,具有广阔的应用前景。
1 系统功能
通过对电源的编程,可以方便地实现图1所示的电压输出波形。其中,V1、V2、T1、T2、dv、dt都是可以通过编程来设定的。电压值的输出范围为0~16V,最大输出电流为10 A。输出电压精度为0.1 V,电流精度为10mA。电流的设定值指的是允许输出的最大电流,也可以被编程为与输出电压一样的波形。
另外,电源也可以工作在铅酸电池充电器的模式(简称“LBC模式”)。根据铅酸电池的特性,当电源工作在LBC模式时,电源首先将输出较大的充电电压和电流V1/I1,至少维持10s;当充电电流降到小于设定值I2时,电源输出较小的充电电压和电流V2/I2。如果到了设定时间T1,充电电流还未降到I2以下,这时电源输出也会降为V2/I2。当输出电流再次大于I2时,电源将再次输出V1/I1充电。其中,V2设定值必须小于14V。若设置为大于14 V,电源会自动将其设成14 V。I2的值必须大于1/8I1,否则将被自动设成1/8I1。
用户可以通过3种方式对电源进行输出设定:
① 通过电源面板上按键编程。通过按键对输出电压、电流限流值、时间等量进行设定。
② 通过PC机串口编程。通过将PC机的串口RS232与电源串口相连,再运行PC机上一串口通信的软件对电源进行编程。
③ 电源间相互编程。通过将两台电源的串口相连,操作其中一台电源面板上的按键来对另一台进行编程。操作的一台电源叫做“主电源”,被编程的电源叫做“从电源”。在这种编程方式中,只能将从电源的参数设置为与主电源完全一致,而不能对各个参数进行单独设定。一台电源只能提供100W的功率。这种方式可以应用在需要较大功率的场合,可将两台或多台具有相同设置的电源输出并联来方便地实现功率扩展。
2 工作原理
用单片机来控制开关电源,总的来说可以分为两种:
第一种是单片机通过输出PWM或DA给电源电路提供一个基准电压,单片机本身不介入电源的反馈中(本设计所采用的就是这种方式);第二种为通过单片机输出的PWM信号直接控制开关管工作,取代PWM芯片,但这种方式对单片机的要求较高,需要具有相当高的时钟频率才能满足对输出PWM频率和分辨率的要求。
系统按模块来分可以分成两大模块:
电源模块和单片机控制模块。电源模块是以PWM芯片为核心的AC—DC变换器,PWM芯片采用安森美半导体的电流型PWM控制器NCP1200作为控制芯片。单片机控制模块采用美国微芯公司的PIC16F874作为微控制器,主要实现电流电压信号的采样、显示、按键输入、串口通信以及为电源模块提供电压电流参考等功能。
电网电压经整流滤波后供给高频变换电路,由高频变换电路产生输出。单片机输出两路PWM信号,给电源模块提供输出电压的参考值和电流的限流值,电源模块按照单片机提供的参考值输出电压和限定最大电流。虽然单片机采样输出电压和电流进行显示,但这里单片机并不参与系统的反馈,反馈通过电源模块来实现(在后面的部分中会详细讲到)。
3 硬件设计
3.1 电源模块电路
NCP1200是安森美半导体公司(ON Semiconductor)推出的一款电流型PWM控制器。其应用电路只需要使用很少的外围元件,使设计更加紧凑。另外,芯片内集成输出短路的保护电路,使成本可以进一步降低。
图4是以NCP1200为控制芯片的电源电路的结构。从图中可以看到,电源模块中有两种反馈类型。第一种是输出电压反馈,输出电压采样值VSS和单片机提供的设定值进行比较,通过光耦来控制NCP1200芯片FB脚的电压,调整DRV脚输出PWM的脉宽来控制场效应管的导通和关断时间,从而达到调整输出电压值的目的。另一路反馈是电流限流反馈,当采样到的输出电流值ISS超过单片机提供的最大限流值IPWM后,比较器输出正电压使得光耦最大导通,将FB脚电压拉低,使得NCP1200输出PWM脉宽减小,从而达到限流的目的。当输出电流小于单片机提供的限流值时,限流反馈不起作用。
辅助电源提供+12 V的电压,另经三端稳压器件KA7805(图中未画出)产生+5V的电压,给比较器和单片机控制模块提供电源。
3.2 单片机控制电路
PIC16F874是美国微芯科技公司(Microchip Technology)的一款8位单片机,内置4K×14位的Flash、128字节的RAM和64字节的EEPROM。另外,它具有丰富的外设资源,其内置1个UART模块可供串口通信用,2个CCP模块可以产生2路独立、10位分辨率的PWM信号,8路10位的A/D转换通道。另外,PIC系列单片机的每个I/O能提供25mA的驱动电流,对于LED的接口电路可以省掉外加晶体管的驱动电路。
单片机控制系统的主要接口电路:
① 按键接口电路。采用暂触式开关输入,使用电阻电容去抖。
系统按模块来分可以分成两大模块:
电源模块和单片机控制模块。电源模块是以PWM芯片为核心的AC—DC变换器,PWM芯片采用安森美半导体的电流型PWM控制器NCP1200作为控制芯片。单片机控制模块采用美国微芯公司的PIC16F874作为微控制器,主要实现电流电压信号的采样、显示、按键输入、串口通信以及为电源模块提供电压电流参考等功能。
电网电压经整流滤波后供给高频变换电路,由高频变换电路产生输出。单片机输出两路PWM信号,给电源模块提供输出电压的参考值和电流的限流值,电源模块按照单片机提供的参考值输出电压和限定最大电流。虽然单片机采样输出电压和电流进行显示,但这里单片机并不参与系统的反馈,反馈通过电源模块来实现(在后面的部分中会详细讲到)。
3 硬件设计
3.1 电源模块电路
NCP1200是安森美半导体公司(ON Semiconductor)推出的一款电流型PWM控制器。其应用电路只需要使用很少的外围元件,使设计更加紧凑。另外,芯片内集成输出短路的保护电路,使成本可以进一步降低。
图4是以NCP1200为控制芯片的电源电路的结构。从图中可以看到,电源模块中有两种反馈类型。第一种是输出电压反馈,输出电压采样值VSS和单片机提供的设定值进行比较,通过光耦来控制NCP1200芯片FB脚的电压,调整DRV脚输出PWM的脉宽来控制场效应管的导通和关断时间,从而达到调整输出电压值的目的。另一路反馈是电流限流反馈,当采样到的输出电流值ISS超过单片机提供的最大限流值IPWM后,比较器输出正电压使得光耦最大导通,将FB脚电压拉低,使得NCP1200输出PWM脉宽减小,从而达到限流的目的。当输出电流小于单片机提供的限流值时,限流反馈不起作用。
辅助电源提供+12 V的电压,另经三端稳压器件KA7805(图中未画出)产生+5V的电压,给比较器和单片机控制模块提供电源。
3.2 单片机控制电路
PIC16F874是美国微芯科技公司(Microchip Technology)的一款8位单片机,内置4K×14位的Flash、128字节的RAM和64字节的EEPROM。另外,它具有丰富的外设资源,其内置1个UART模块可供串口通信用,2个CCP模块可以产生2路独立、10位分辨率的PWM信号,8路10位的A/D转换通道。另外,PIC系列单片机的每个I/O能提供25mA的驱动电流,对于LED的接口电路可以省掉外加晶体管的驱动电路。
单片机控制系统的主要接口电路:
① 按键接口电路。采用暂触式开关输入,使用电阻电容去抖。