一种小型UPS电源的嵌入式设计

2019-11-19      902 次浏览

引言


该类小型智能化UpS电源主要应用在通信行业、医疗设备和移动机器人等低电压场合,具备运行可靠、噪音小、能耗低等特点。目前国外多所高校和公司在针对该类UpS进行研究和试制,并且在小型交流UpS电源上取得了一些进展。但是国内所进行的相关研究尚处于起步阶段。


不同于多数交流输出的UpS电源,本文提出的小型UpS电源是通过控制相应的DC-DC模块直接获得直流输出,避免了转换过程中的能量损耗。在系统设计上采用了嵌入式设计思想,将主控芯片与外围功能电路融合在同一块电路板中,软硬件协同工作以实现UpS的智能化管理并大大减小系统的体积。


1硬件系统


1.1系统概述


如图1所示,根据项目需要,设计以110V/50Hz的交流电为市电输入,通过开关电源模块将110V交流电转换成12V的直流电。同时该模块内置市电检测模块,用来产生市电掉电信号,并将信号传送给主控芯片。市电经过开关电源AC-DC转换后得到12V直流输出并通过LTC4256热插拔保护模块供给负载。同时该直流输出经过LTC1512充电模块稳流后对锂电池组进行充电。当系统工作在电池组供电模式时,锂电池组通过LTC3780放电模块为负载提供12V直流供电。


图1系统整体方框图


1.2主控芯片


为了提高系统的集成度,设计采用内部集成AD转换功能单元的C8051F320作为主控芯片。该芯片内含两个外部中断源(INT0,INT1)以及一个可编程计数器阵列(programmableCounterArray,pCA),可以同时监测多路I/O信号及产生方波控制信号。


主控芯片通过不断读取锂电池组电压、温度、充电电流以获知系统当前的运行状况。当捕捉到市电掉电信号时,主控芯片迅速给LTC3780发出工作信号(高电平),并给LTC1512发出关闭信号(低电平),从而实现对负载的不间断供电;当捕捉到市电来电信号时,主控芯片给出相反的逻辑电平,切换为市电供电状态。


1.3市电检测模块


为了实现对主控芯片及其他外围芯片的隔离保护,市电检测模块通过pC817型光耦将市电掉电信号接入主控芯片:当市电正常供电时,在光敏二极管的驱动下,主控芯片的对应引脚直接被接地置低;当市电掉电时,光耦断开,对应引脚被3.3V电源置高。主控芯片通过中断程序监测该引脚上逻辑电平的变化得到市电供电的状态从而控制UpS电源工作在相应状态。


1.4电源管理模块


电源管理模块由电源选择单元和稳压芯片组构成。设计采用电源选择芯片LTC4416实现内部电源选择。电路如图2所示,开关电源输出为主电源,锂电池组为从电源。其工作方式为:当市电供电时,LTC4416通过E1引脚判定主电源供电正常;当开关电源输出电压低于Vfail(图中电路Vfail为8.9V)时,LTC4416判定主电源供电故障,选择锂电池组对系统内部供电。电源选择电路不仅保证了系统内部正常供电,也增加了电池组的工作时间。稳压芯片组将选择后的电源分别稳压为5V和3.3V,并提供给相应的模块,系统内部电源分配如图3所示。


图2LTC4416电源选择模块电路


图3系统内部电源框图


1.5后备锂电池组


该UpS电源采用14.4V,3.3Ah可充电锂电池组作为后备电池组,其最大充电电压为17.4V.电池组内部集成了控制芯片,供电后,控制芯片能产生充电完成信号、放电结束信号以及电池组温度。


1.6充电模块及放电模块


以LTC1512为核心的充电模块,通过电压及电流反馈调节等方式将12V直流输入转换为16.8V的恒流输出向电池组充电。当电池组供电时,以LTC3780为核心的放电模块将电池组输出稳压为12V提供给负载。


为了实现对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模块初始化程序如下:


voidpCA_Init(void)


{


pCA0MD=0x00;


pCA0CpM0=0x31;


pCA0CN=0x40;


EIE1=0x10;


pCA0L=0x00;


pCA0H=0x00;


}


2.4AD转换软件设计


C8051F320的AD转换单元支持最多17路模拟输入,从功能上满足了设计要求。其软件分为初始化和测量两部分。初始化主要负责选择电压基准,配置ADC模块工作方式等,而测量部分程序则用来获取UpS工作时的电池组电压、充电电流和电池组温度并根据报警阈值对系统进行保护。


由于AD转换过程中会受到各种因素的干扰,因此程序中需要相应的误差补偿来确保数据的准确性。这些误差补偿参数可以通过估算得到理论值,然后根据多次试验的实际数据进行修正得到合适的补偿参数。


1.5后备锂电池组


该UpS电源采用14.4V,3.3Ah可充电锂电池组作为后备电池组,其最大充电电压为17.4V.电池组内部集成了控制芯片,供电后,控制芯片能产生充电完成信号、放电结束信号以及电池组温度。


1.6充电模块及放电模块


以LTC1512为核心的充电模块,通过电压及电流反馈调节等方式将12V直流输入转换为16.8V的恒流输出向电池组充电。当电池组供电时,以LTC3780为核心的放电模块将电池组输出稳压为12V提供给负载。


为了实现对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模块初始化程序如下:


voidpCA_Init(void)


{


pCA0MD=0x00;


pCA0CpM0=0x31;


pCA0CN=0x40;


EIE1=0x10;


pCA0L=0x00;


pCA0H=0x00;


}


2.4AD转换软件设计


C8051F320的AD转换单元支持最多17路模拟输入,从功能上满足了设计要求。其软件分为初始化和测量两部分。初始化主要负责选择电压基准,配置ADC模块工作方式等,而测量部分程序则用来获取UpS工作时的电池组电压、充电电流和电池组温度并根据报警阈值对系统进行保护。


由于AD转换过程中会受到各种因素的干扰,因此程序中需要相应的误差补偿来确保数据的准确性。这些误差补偿参数可以通过估算得到理论值,然后根据多次试验的实际数据进行修正得到合适的补偿参数。


相关文章

推荐品类

为您推荐

东莞市钜大电子有限公司 粤ICP备07049936号