简化针对多种化学类型电池的充电器
摘要: 当为不同电池芯容量的多种化学类型电池充电时,在不同的充电阶段上,电池电压可能会高于或低于电源电压。因此,需要对电源电压做升压或降压,以配合电池的电压。
当为不同电池芯容量的多种化学类型电池充电时,在不同的充电阶段上,电池电压可能会高于或低于电源电压。因此,需要对电源电压做升压或降压,以配合电池的电压。例如,当为一个典型电压为1.25V的单芯NiMH(镍金属)电池充电时,必须对3.3V的电源做衰减或降压。当要为一个单芯4.1V锂离子电池充电时,输入电压需要做升压。为解决这些问题,应用一种SEPIC(单端初级电感转换器)作为主充电路径(参考文献1)。
当为不同电池芯容量的多种化学类型电池充电时,在不同的充电阶段上,电池电压可能会高于或低于电源电压。因此,需要对电源电压做升压或降压,以配合电池的电压。例如,当为一个典型电压为1.25V的单芯NiMH(镍金属)电池充电时,必须对3.3V的电源做衰减或降压。当要为一个单芯4.1V锂离子电池充电时,输入电压需要做升压。为解决这些问题,应用一种SEPIC(单端初级电感转换器)作为主充电路径(参考文献1)。这种开关模式的dc/dc转换结构可以同时在某个电压区间内完成升降压工作,从而提供了电源电压的灵活性。
锂离子与NiMH化学类型需要不同的充电曲线,但一个灵活的充电架构可以方便地用于两种情况。较为灵活与简便的实现方式是,用微控制器上的固件,从一种化学类型切换到另一种类型。如果设计一种模块化的充电子系统,并将各种功能封装到各个模块中,就可以根据系统需求,使用某个系列中的不同微控制器,实现相同的应用。模块化的使用简化了设计,开发人员就能够为其它主要应用增加电池充电功能,如电机控制与医疗测量等(参考文献2)。
在控制充电电流时,电池充电器必须要确定出电池的电压、电流与温度。确定电池状态的硬件对所有电池类型都是共同的,电池电压可以高于或低于微控制器的输入范围。因此,工程师们一般都会用一个电阻分压电路测量电压,做电压衰减。他们可以测量高侧的电流,即进入电池的电流;也可以测量低侧的电流,即离开电池的电流;或者,在SEPIC情况下,可以在电感的次级端使用一只电阻。电池通常都内嵌有热敏电阻,可以用于监控和确保电池温度的精度。有些商用电池制造商为降低成本而省略了这些热敏电阻。这种情况下,用户可以外接一只热敏电阻,并使之与电池接触。
采用这些测量参数,微控制器就能确定并控制进入电池的充电电流。从电池充电器的角度来说,不同化学类型之间的主要区别就是充电曲线(图1与参考文献3)。锂离子电池采用的是恒流恒压的充电曲线。如果电池电压在启动时低于恒流阈值,则电池充电器会以少量电流供电,大约为电池容量的10%。在这个预处理阶段,电池电压会随着充电电流而逐步增加。当电压达到快充阈值时,微控制器将充电电流增加到约为100%容量。这个恒流阶段一直保持下去,直到电池电压达到规定的电压值。然后,电池充电器进入恒压阶段,在此期间,充电电流减小,同时电池电压保持在规定的电压值。当电流降低到终止电流时,电池电压保持不变,而电池充电过程终止。
在充电期间,电池中的电流随温度的变化而变化。如果有任何电池状态参数(电压、电流或温度)超出了相应电池充电阶段所规定的范围,则电池充电器会停止充电做保护。
NiMH电池的前两个充电阶段与锂离子电池类似,即:20%容量的激活段,以及100%容量的恒流段。电压下跌与温度下跌表明了NiMH电池的恒流段结束,而电流保持恒定。在这次电压下跌后,NiMH充电器的充电曲线进入了充电完成阶段,在此期间,电流降低到约5%容量的涓流水平。这一阶段提供一个恒定时间的小充电电流,直到充电终止。
[#page#]
使用这些充电需求,就可以将电池充电过程简化为不同的水平,方法是用一个预先定义了电压、电流、温度和超时等数值的状态机。微控制器的状态机控制着电池的状态,以及充电所需要的电流量。图2是一个可为这两种电池充电的简化的状态机。
根据所选择的电池化学类型,微控制器会检查电池的状态机,控制充电电流。电池充电的曲线可以有预编程、启动前或自动决定三种形式。对于前两种方式,微控制器会从用户的输入获得电池类型。对预编程情况,模块软件会选择充电电池的类型,用所需曲线为微控制器编程。这种决策方式适用于那些充电是附加功能的应用。在这些应用中,电池类型是已知的。
在启动前方式中,微控制器会做一个附加检查,这种检查可以简单到在启动时由微控制器检查开关的位置,从而确定电池的充电曲线与选择。对于自动检查方式,微控制器会在启动后自动地做出决策,通过检测电池的类型而选择电池充电曲线。例如,一只单芯NiMH电池的典型电压范围为0.9V~1.25V,而一个锂离子电池芯的电压范围为2.7V~4.2V。同样,不同电池的温度范围也有差异,微控制器可以在启动时保存和比较这些数值。自动检查方案只能用于某些情况。一般来说,预编程与启动前方法可用于大多数应用。本文主要讨论预编程决策,面向那些电池充电是附加功能的应用。
两种化学类型都使用了相同的硬件,用于电池充电器的检测与控制(图3)。要确定电池的状态,就要将电压、电流和温度以多工方式输入到微控制器中的一只ADC,完成测量。固件使用这些数值确定出状态,通过改变PWM(脉冲宽度调制器)的占空比而控制充电电流。PWM的输出连接到SEPIC中MOSFET的栅极上,控制流经电池的电流。这些步骤都与CPU有关,因此会有一些延迟。有些 电池(包括锂离子电池芯)对过充很敏感,在较高电压下会变得不稳定。比较器增加了防止过压和过流状况的硬件保护电路。这些比较器会在必要时中止充电,直到用户将其复位,或电池回到安全的状况下。
根据测得的参数值以及电池的化学类型,CPU确定出电池的状态,并相应地改变PWM占空比。按传统方法,CPU用于确定充电曲线的条件都是代码中的常数,程序员要手工修改它们(代码清单1)。
[#page#]
当需要修改充电曲线时,将电池充电曲线设为0或1,可在两个充电曲线之间做切换。程序将针对所有状态的电压、电流和温度极限保存为常数,并做相应的修改。如果某种电池类型需要不同的电压水平,则必须修改代码,输入新的参数,这意味着应用的用户必须了解修改充电曲线的代码,以及电池充电的限制条件。而采用模块化方案后,当选择了相应的IP(智能产权)块时,就可以输入用于修改电池充电器曲线的参数。图4给出了锂离子电池与NiMH电池的模块参数。
使用这些模块后,应用的设计者就可以为应用增加充电器模块,建立相应的充电曲线。模块还生成了所有其它的硬件块,包括比较器与PWM,以及软件状态机。采用可重新编程的架构时,如Cypress半导体公司的PSoC(可编程系统单芯片),就可以用软件应用,对硬件模块做编程和实现。采用这种方式,开发人员可用NiMH电池的充电曲线为图3中的硬件编程。为产品增加一个USB(通用串行总线)模块,开发人员就可以将电池参数发送给计算机。用C#语言的一个软件工具就可以绘出这些数据,当然也可以采用其它类型的通信方式和相近的工具。电池仿真器用于模仿锂离电池和NiMH电池,获得实时的图像(图5)。
[#page#]
由于使用了电池仿真器,电压的变化便产生了电流的开关噪声。因为使用电池仿真器的电压变化较快,PWM输出对一个电压变化的响应与安定时间可看作开关噪声。一块电池中的电压变化是渐进的,因此开关噪声在一块实际电池中并不明显。
通过对SoC(系统单芯片)固件的简单修改,就可以用相同硬件,开发出用于多种化学类型电池的充电器。将充电曲线模块做到元件中,便于主应用附加电池充电的功能。
参考文献
1. Ridley, Ray, PhD, “Analyzing the Sepic Converter,” Power Systems Design Europe, November 2006, pg 14.
2. Edlow, Ken, “AN57724, Component Hierarchy in PSoC Creator,” Cypress Semiconductor, April 12, 2011.
3. Buchmann, Isidor, “Charging the Lead Acid Battery,” Batteries in a Portable World, 2001.
暂无评论