一种小型UPS电源的嵌入式设计
2016-09-07
引言
该类小型智能化UPS 电源主要应用在通信行业、医疗设备和移动机器人等低电压场合,具备运行可靠、噪音小、能耗低等特点。目前国外多所高校和公司在针对该类UPS 进行研究和试制,并且在小型交流UPS 电源上取得了一些进展。但是国内所进行的相关研究尚处于起步阶段。
不同于多数交流输出的UPS 电源,本文提出的小型UPS 电源是通过控制相应的DC-DC 模块直接获得直流输出,避免了转换过程中的能量损耗。在系统设计上采用了嵌入式设计思想,将主控芯片与外围功能电路融合在同一块电路板中,软硬件协同工作以实现UPS 的智能化管理并大大减小系统的体积。
1 硬件系统
1.1 系统概述
如图1 所示,根据项目需要,设计以110 V/50Hz 的交流电为市电输入,通过开关电源模块将110V 交流电转换成12 V 的直流电。同时该模块内置市电检测模块,用来产生市电掉电信号,并将信号传送给主控芯片。市电经过开关电源AC-DC 转换后得到12 V 直流输出并通过LTC4256 热插拔保护模块供给负载。同时该直流输出经过LTC1512 充电模块稳流后对锂电池组进行充电。当系统工作在电池组供电模式时,锂电池组通过LTC3780 放电模块为负载提供12 V 直流供电。
图1 系统整体方框图
1.2 主控芯片
为了提高系统的集成度,设计采用内部集成AD 转换功能单元的C8051F320 作为主控芯片。该芯片内含两个外部中断源(INT0,INT1)以及一个可编程计数器阵列(Programmable Counter Array,PCA), 可以同时监测多路I/O 信号及产生方波控制信号。
主控芯片通过不断读取锂电池组电压、温度、充电电流以获知系统当前的运行状况。当捕捉到市电掉电信号时,主控芯片迅速给LTC3780 发出工作信号(高电平),并给LTC1512 发出关闭信号(低电平),从而实现对负载的不间断供电;当捕捉到市电来电信号时,主控芯片给出相反的逻辑电平,切换为市电供电状态。
1.3 市电检测模块
为了实现对主控芯片及其他外围芯片的隔离保护,市电检测模块通过PC817 型光耦将市电掉电信号接入主控芯片:当市电正常供电时,在光敏二极管的驱动下,主控芯片的对应引脚直接被接地置低;当市电掉电时,光耦断开,对应引脚被3.3 V 电源置高。主控芯片通过中断程序监测该引脚上逻辑电平的变化得到市电供电的状态从而控制UPS 电源工作在相应状态。
1.4 电源管理模块
电源管理模块由电源选择单元和稳压芯片组构成。设计采用电源选择芯片LTC4416 实现内部电源选择。电路如图2 所示,开关电源输出为主电源,锂电池组为从电源。其工作方式为:当市电供电时,LTC4416 通过E1 引脚判定主电源供电正常; 当开关电源输出电压低于Vf a i l(图中电路Vf a i l为8.9 V)时,LTC4416 判定主电源供电故障, 选择锂电池组对系统内部供电。电源选择电路不仅保证了系统内部正常供电,也增加了电池组的工作时间。稳压芯片组将选择后的电源分别稳压为5 V 和3.3 V,并提供给相应的模块, 系统内部电源分配如图3 所示。
图2 LTC4416 电源选择模块电路
图3 系统内部电源框图
1.5 后备锂电池组
该UPS 电源采用14.4 V,3.3 Ah 可充电锂电池组作为后备电池组,其最大充电电压为17.4 V.电池组内部集成了控制芯片,供电后,控制芯片能产生充电完成信号、放电结束信号以及电池组温度。
1.6 充电模块及放电模块
以LTC1512 为核心的充电模块,通过电压及电流反馈调节等方式将12 V 直流输入转换为16.8 V的恒流输出向电池组充电。当电池组供电时,以LTC3780 为核心的放电模块将电池组输出稳压为12 V 提供给负载。
为了实现对UPS 的智能化管理,系统需要对电池组电压和充电电流进行监测。电池组电压的测量方法为:将电压分压、滤波后送入主控芯片的AD 转换单元,处理得到当前电压值。充电电流则通过将采样电阻两端的电压分别送入ADC 单元转换得到电压差值,进而推导出电流值。
1.7 热插拔模块
热插拔保护即带电插拔保护,允许用户在不关闭系统、不切断电源的情况下取出和更换硬盘、电源或板卡等部件。该UPS 电源优点之一是集成以LTC4256 为核心的热插拔保护模块,从而提高系统对灾难的及时恢复能力、扩展性和灵活性等。此外LTC4256 还能起到抑制输出纹波、提高电能质量的作用。
2 软件系统
2.1 软件系统功能描述
智能UPS 电源的功能是基于硬件电路设计,利用软件控制相应模块来实现。如图4 所示,软件系统的主要功能为:
图4 软件功能说明图
(1) 当市电正常供电时, 软件系统通过获取电池组信息来判断是否对电池组充电,并监控电池组电压和温度,确保UPS 电源的正常工作。
(2) 当市电对电池组充电时, 中断系统实时监测充电电流,出现异常时发出报警并停止充电以保护电池组。
(3) 当市电掉电时, 软件系统控制主控芯片迅速给出相应控制信号,切换到电池组供电模式。
(4) 当UPS 电源工作在电池组供电模式时,中断系统实时监控放电结束信号和电池组电压,当电池组电能耗尽时,停止电池组供电。
(5) 当电池组电压过低或电池组温度异常时,软件系统发出报警指示, 并且强制关闭UPS 系统,确保系统安全。
2.2 主控芯片的初始化
C8051F320 每个引脚都可以被配置为模拟输入或数字I/O 引脚, 被选择作为数字I/O 的引脚还可以被配置为推挽或漏极开路输出。此外数字交叉开关允许将内部数字系统资源映射到端口I/O 引脚。
用户可以通过配置端口跳过寄存器(PnSKIP)、端口交叉开关寄存器(XBR0, XBR1)等寄存器来根据设计要求自由分配数字资源的功能引脚。
为了简化硬件电路,主控芯片采用内部振荡器作为时钟基准。软件初始化时则通过配置寄存器OSCICN 来选取内部时钟基准。
2.3 中断系统设计
由于市电检测需要保证足够的实时性,所以采用中断方式来监测市电掉电信号。软件上采用PCA模块的输入捕捉功能来捕获信号的变化,从而提升系统的动态性能。PCA 模块初始化程序如下:
void PCA_Init(void)
{
PCA0MD = 0x00;
PCA0CPM0 = 0x31;
PCA0CN = 0x40;
EIE1 = 0x10;
PCA0L = 0x00;
PCA0H = 0x00;
}
2.4 AD 转换软件设计
C8051F320 的AD 转换单元支持最多17 路模拟输入,从功能上满足了设计要求。其软件分为初始化和测量两部分。初始化主要负责选择电压基准,配置ADC 模块工作方式等,而测量部分程序则用来获取UPS 工作时的电池组电压、充电电流和电池组温度并根据报警阈值对系统进行保护。
由于AD 转换过程中会受到各种因素的干扰,因此程序中需要相应的误差补偿来确保数据的准确性。这些误差补偿参数可以通过估算得到理论值,然后根据多次试验的实际数据进行修正得到合适的补偿参数。
2.5 报警处理
当UPS 工作在电池组供电状态且电池组电压较低时(小于12 V),软件系统控制蜂鸣器报警,其程序如下:
if(battery_voltage<12.0)
{
if(Discharge==1)
{
Buzzer_Low(2);
}
if(Discharge==1)
{
ET0=1;
TR0=1;
}
}
电池组温度报警程序中设置了两个温度阈值,较低值为报警阈值(Temp_Alert),用来控制蜂鸣器报警,警示用户。较高值为停机阈值(Temp_Stop),当温度高于停机阈值时, 强制关闭系统以保护UPS 电源,其程序如下:
if(temp { Buzzer=1; if(temp { Charge=0; Discharge=0; } } 2.6 软件系统总结 在硬件电路的基础上通过对主控芯片的软件进行设计,融合AD 转换单元、中断系统、PCA 计数器模块等多个部分, 最终实现UPS 电源的功能:市电掉电后UPS 电源能持续给负载供电,并且切换时间小于10 ms;具有自保护措施,实现对UPS 电源的智能化管理;具备声光预警功能,能够直观的提示用户UPS 电源的工作状况;良好的鲁棒性,能较好的抵抗外界干扰。 3 实验结果 图5 为小型UPS 样机图, 凹槽中为锂电池组,主控板安装在订制的外壳中。 图5 小型UPS 实物图 图6 表示当市电掉电时,UPS 电源实现工作状态的自动切换。由图中负载端输出波形可以看出,市电掉电时,UPS 电源迅速启用备用锂电池组进行供电,其切换时间接近于零,远低于后备式UPS 电源限定的10 ms 切换时间。 图6 UPS 工作状态切换波形图 4 结语 本UPS电源系统采用后备式方式, 与在线式UPS 相比,切换时间相对较长但有价格优势,但由于采用嵌入式软硬件控制,极大地缩短了系统动态响应时间,使得本电源系统在切换时间上接近在线式UPS 电源,实现了一种既保证可靠供电又降低成本和能耗的小型UPS 直流电源。