摘要:本文概括了采用MAXIM 充电器芯片对通用的化学电池进行充电的普遍要求。内容主要包括:系统级的权衡比较,固化软件的设计要点。关键词:充电器、镍镉电池、镍氢电池、锂离子电池、铅酸电池
在过去的五年中,由于便携式设备的市场压力已经使简单的电池充电器发展成能够在30 分钟将高性能电池充电结束的复杂的开关模式的系统。这一发展趋势已经脱离了短短几年前所倡导的内嵌的单机运行的充电器芯片的发展方向。而且这些现行的芯片内部具有相当的智能,能够对高性能电池进行复杂的快速充电。今天的电池充电器系统采用随处可得的单片微处理器的智能来调节充电器的充电电流和电压。在大批量的应用中,采用这种方法可以降低成本,而且允许充电器针对具体的应用具有最大的灵活性。原来充电过程所有必需的智能算法是驻留在电池充电器控制芯片内部,现在系统设计人员则须采用某种充电算法,编写相应的固化软件。本文提供了采用MAXIM 充电器芯片构成充电器系统一些必要的信息和背景材料。
(一)、电池充电技术概述
目前实际使用的4 种化学电池是:镍镉电池,镍氢电池,铅酸电池和锂离子电池。针对这4 种化学可充电电池的通用充电器状态流程图如图一所示,电池的快速充电分为以下几个阶段:
虽然初始化本身并不对电池充电,但却是整个充电过程很重要的一步。充电器在此阶段对自身进行初始化和自检。充电器在对电池充电过程中可能由于电源故障而中断,接着重新初始化。如果电池不是智能电池或某种能够记忆时间标志的储存体。我们就无法知道系统已经重新初始化过了。大多数充电器在一次电源故障后,会进行一次完全的初始化。如果电池不允许过充电,充电器可以执行一段特别的自检程序以确定电池是否已经充过电。例如如果充电器上电过程中有电池插在充电器上,则必须触发这样一个自检操作。
初始化在好几种情况下会带来过充电问题。例如一个固定时间方式的充电器固定不变地对电池充电4 小时,如果在电池已经充了3 小时59 分钟电的时候,电源出了问题。充电器在重新初始化后,对电池开始了另外4 个小时的充电,导致电池过充电4 个小时。如此的过充电会损坏电池。这也是固定时间充电法很少采用的原因之一。这一例子也说明了充电器为什么要检测电池温度或采用别的终止充电的方法作为后备措施的原因。
充电器在这一阶段检查充电器上是否装上了电池以及电池是否可以充电。检查充电器上是否装上了电池通常是通过断开充电电源检测充电器端子电压来实现的。但这种方法带来的问题是当电池使用过度的时候,几乎没有电压可供测试。作为替换的方法是充电器寻找热电阻或是短路跳针来做判断,而不是寻找电池本身。这一功能也可以用来识别电池组,智能电池。在另一方面,可以实现与电池组大量的数据交换。交换的数据通常是通过系统管理总线提供的必需的电池充电参数,系统管理总线与I2C 总线类似。
一旦充电器确认电池装上后,就开始确认电池是否是好的,在这一阶段,充电器对电池的基本性能进行检查:开路,短路,热或冷,试一下电池是否可充,部分充电器特别是铅酸电池充电器向电池施加一个比较小的充电电流(约为正常充电电流的1/5),使得电池在固定的时间内达到某一个特定的电压值。这一技术的应用避免了充电器错误地将深度放电的铅酸电池认为是不可充的电池。在得到电池生产商许可的情况下,这一方法也可以运用于其他性质的化学电池。
对电池和环境温度的检查也是电池鉴定的一部分,当充电器检测到一个不正常的高温或低温的时候,通常等待一个预定的时间间隔期望温度返回到额定值。若温度在预定的时间内没有返回,则充电器将降低充电电流,进而降低电池的温度,提高电池的充电效率。最后要检测电池是否开路或短路,电池的开路很容易检测,但短路电池的测试结果需要确认以避免错误的指示结果。若所有的这些检查通过那么可以对电池开始充电,如图一所示,状态前进一步。
图一、通用充电器状态流程图
部分充电器(主要是针对镍镉电池)包括一个可选择的预处理阶段。在预处理阶段,电池在放电前需进行完全的放电。完全放电使每节电池的电压降低到一伏以下消除电极中的树枝状的结晶组织,树枝状的结晶组织会引起人们称呼得不太正确的记忆效应。这种所谓的记忆效应实质上是指出现了会降低电池使用时间的树枝状结晶组织,但是一个完整的充放电过程有时可以消除这一问题。在每次充电前或通过负载测试或别的什么方法指示电池的容量尚余一半以上时可以进行预处理预处理的时间从1到10 个小时不等。通常不推荐在一小时内将电池的电放光,快速发电增加了负载电阻散热的困难。但通常也不推荐大于10 个小时的预处理时间。除非当检测到镍镉电池具有与记忆效应相混淆的容量降低时,可以人工启动大于10 小时的预处理,故系统设计者应避免在充电器上设置初始化按钮以防止这种操作。
具体电池所采用的快速充电及终止方法取决于电池的化学机理和其他的设计因数,下面的讨论包含了目前通用化学电池中广泛采用的快速充电技术。至于特别的规则或推荐方法,请向电池生产商的应用部门咨询。
NiCd 和NiMH 电池的充电过程非常相似,差别主要在快速充电的终止检测方法上。在每种情况下,充电器对电池进行恒流充电同时监测电池的电压和其他参数以决定何时终止充电。充电可以采用超过2C 的速率。但采用的最多的是C/2 速率。因为充电效率一般小于100%,故以C/2 的速率充满一个电池需要2 个小时多一点的时间。
在恒流方式充电时,电池电压会缓慢地上升达到一个峰值(斜率为0 的一个点),NiMH 电池的充电须在这个峰值点终止,而镍镉电池的充电则须在峰值点后当电池电压第一次下降了一个-∆V 的某个点终止,如果在电池充电终止之后继续对电池进行充电会最终损坏电池。
当充电速率大于C/2(这样充电时间将小于2 小时)时,充电器也要监测电池的温度和电压。因为当电池快要充满电的时候,电池的温度会急剧上升。监测温度提供了另一种电池充电终止技术,这种基于正温度斜率的终止方法叫∆T 终止法。包括充电时间,最大电池电压在内的其他因素也可以用来终止充电,一个设计完善的充电器通常通过这些因素的综合来终止充电。
图二、充电速率为C/2 时Nicd 电池的充电特性
图三、Li+电池电压与充电电流
锂离子电池的充电方法不同于镍基材料的化学电池它采用顶点截止法充电以保证安全地将最多的能量储存在电池中。锂离子电池充电器提供一个稳定精度超过0.75%的充电电压,最大充电速率由充电器的电流极限范围确定,跟实验室用的稳压电源很相似(图3)。当快速充电开始的时候,电池电压较低,充电电流即为充电器电流极限,随着充电的继续进行,电池电压缓慢上升,最终当每节电池的电压达到浮空电压值4.2V 时,充电电流快速下降。
当电池电压达到浮空电压时,充电器即可终止充电。但这忽略了顶端截止操作。一种备用的方法是当电池达到浮空电压时启动一个定时器,然后在一个固定的延时后终止充电。另一种方法是检测充电电流,当充电电流跌落到一个下限值时终止充电典型值是限流值的5%,某些生产商推荐高一点的100 毫安的下限值)。顶端截止就是采用这样的技术。
在过去的几年里,锂离子电池,充电器都得到了改进,对电池的化学机理也有了进一步的了解。早期的锂离子电池具有影响安全的不足之处,但今天设计良好的系统不会出现这些问题。尽管生产商的推荐各种各样,锂离子电池确实在持续不断地发展。
铅酸电池一般采用限流法或者是更简单的限压法进行充电。限压法的方式与锂离子电池的充电法很相似,但不需要那么高的精度。他要求限流电压源的电压值比电池的浮空电压(约2.45V)略高一点.
在预处理操作确保电池可以充电时,充电器即开始电池进行快速充电,直到充电电流降低到最小值时终止快速充电(这一过程与锂离子电池充电器很相似),转入浮充状态对电池充电(浮充电压一般为2.2V)。铅酸电池允许长时间地进行浮充。
当温度升高时,铅酸电池的快充电流应该以每升高一度降低0.3%的速率降低。铅酸电池快充的最高推荐温度为50℃,但浮充不受这一温度的限制。
充电
所有化学电池的充电器通常包含一个可选的顶端截止阶段。这阶段是在快速充电结束后,再以适当的充电电流使电池充满电(这一操作与给汽车油箱加油很类似,当泵自动停止以后,再用小流量给油箱补满油)。当电池电压温度,时间达到某一极限值时,顶端截止阶段结束。在一般情况下,顶端截止阶段可以延长电池5%到10%的使用时间。这里要特别提醒的是电池这时已经充满电或者接近充满电,过充会损伤电池。
(针对所有化学电池的充电器通常包含一个可选的涓流充电状态,这一阶段用于补偿电池的自放电。铅酸电池自放电的速度最高每天有几个百分点的自放电),锂离子电池的自放电速度最低。所以不需要对锂离子电池进行涓流充电。镍镉电池涓流充电的速率一般为C/16。镍氢电池的安全连续电流一般为C/50。但一般不推荐对镍氢电池进行涓流充电。
涓流充电的另一种形式是脉冲涓流充电。充电器提供幅度为C/8 的低占空比的脉冲涓流,典型的平均涓流值为C/512。对两种镍基电池进行脉冲涓流充电都很适合于采用微机进行开关量控制。
(二)、通用充电系统在考虑如何设计一个实用的充电线路时,设计者应该先了解充电器的基本模块和特点。所有的快速充电器在形式上应包含这些功能模块:一般来自墙上插座的未经稳压的直流大功率电源,充电电压和充电电流的控制信号,对于廉价的充电器,电压电流调整器件通常是功率晶体管或其他能够将电功耗转化为热的线性器件也可以是降压型的开关电源,降压型的开关电源内部若采用二极管,则工作效率一般,如采用同步整流技术,工作效率最高。
图6 中的模块中表示了各种测控功能,模拟电流控制回路限制电池的最大充电电流,电压控制回路保持了电池充电电压的恒定(注:锂离子电池对充电电压的要求较高)。
充电器的电流电压特性曲线可以全部程控设定,或在限压的条件下程控设定电流(或相反)。通常要测试电池的温度,当温度高于某个阈值,或温度变化速率超过某个阈值时,终止充电。充电器也测量充电时间,通常采用智能模块计算这一充电时间。智能模块提供系统所需的全部智能,实现前面提到的状态机,它知道应该何时以何种方法终止快速充电。单机运行的充电器芯片内部包含了这些智能算法也可将这些智能算法驻留在微处理机中或充电器的其他硬件模块中。正如前面所提到的那样,目前采用的较多的后一种结构。
图六、通用充电系统框图
(三)、MAXIM 充电器用集成电路概述:
MAXIM 生产范围广泛的单机运行和控制器型的电池充电器集成电路,集成电路的多样性可以让设计人员在性能特性和成本之间权衡折衷。表1按照产品推出的顺序列出了这些适用于化学电池充电的集成电路,在上面的是最新推出的产品。
选择线性调节方式还是选择开关调整方式是一个很重要的设计决策。线性模式成本较低,但他会消耗功率而发热。对一个大的台式充电器来说发热也许不会是一个问题,但是对笔记本电脑这样的小系统,发热却是无法接受的。同步整流方式的调压器的效率最高(在90%左右),这一特点使之能够适用于象蜂窝电话这类小体积的系统。非同步整流方式的调节电路的效率一般。另外大部分的线性器件也可以应用于中等效率的不常推荐的开关模式
充电器的自身独立工作的性能也是一个设计决策问题,例如单机运行的充电器本身内部就什么都有了象MAX712/713,MAX2003,MAX2003A 连用户终端设备使用的LED 输出的控制信号都提供了。
另一些器件可以单机运行也可以和数模转换器,微处理机一起工作。这一类包括MAX1640/MAX1641,MAX846A 和MAX745。MAX1640,主要打算用在镍基电池充电上的集成限压电流源,内部包括一个充电定时器和脉冲涓流充电线路。它具备单机运行的特点,也可以与高效的同步开关调压器,低价位的标准开关器件合起来使用。
MAX846A 和MAX745 都可以单机运行对锂离子电池进行充电。他们内部包含通用控制器所必需的高精度基准源和独立的电压,电流控制回路。MAX846A 采用线性工作模式,MAX745 是同步开关模式。虽然他们都可以单机运行,但一般都和微处理机合用。微处理机对充电过程进行有限的控制。控制LED 及快速充电的终止一般由软件来完成,MAX846A 内部包含一个线性调压器及微处理机用的CPU 复位输出信号。最灵活的器件是MAX1647 和MAX1648,除了MAX1647 具有内部的DAC 和SMBus 串行接口,MAX1648 具有电压,电流模拟量控制接口外,他们基本相似,MAX1647 是一个具有独立的电压,电流寄存器的完整的接受串行数据控制的直流电源,可以和智能电池进行SMBus 通信,符合Intel/Duracell 智能电池的Level 2 标准。
(四)、采用微处理机设计点滴:
充电器一般采用象8051, PIC, 68HC 11或68HC05 之类廉价的8 位单片机。固化软件可以用汇编编写,也可以用C 编写。两种语言较易获得,价格低廉而且有免费的开发工具,其他相关组织及这些器件的生产商已经成套提供了编译器,汇编器,仿真器和代码库,库源代码的大部分内容特别是工具箱中的程序可以从WWW 网址上获得。
所有通用的8 位单片机都可以用在充电器中,但如何选择某一具体的单片机超出了本文的范围。这些单片机内部可以具有诸如AD,DA,SMBus 串行接口之类的外设器件,但是需要外部AD,DA 的简化型微处理器也很有用,这些简化型的单片机通常更加灵活好用。充电器对ROM 和RAM 的要求中等。在一般情况下,单一电池种类的充电器的代码段不超过0.5KB, RAM 只要32 字节(对低档的PIC 单片机来说都是很简单的要求)。巧妙一点增加大约50% 的代码,就可以编写出针对多种化学电池的通用程序。
开发单片机程序代码的最简单的途径是从一个框架或一小段相似的代码入手,逐渐修改至适合你的要求,这样有了快速工作的原型,克服了许多空白点,编译/汇编错误。不幸的是网上只有有限数量的电池充电器软件,而且都是针对标准应用的。尽管如此,“硬件和软件设计范例”还是提供了一个起点,参阅“参考文献”寻找更难的工具程序的某些信息。例如SMBus 通信和数学程序,及解释说明这些设计的程序设计示例。
(五)、充电器程序结构点滴: 编写电池充电器的软件最直接的方法是采用状态机定义一个状态变量或一组代表目前状态的标志。这样代码段就成为根据状态变量动作的大的因果动作。代码模块根据当前状况修改状态变量的值,不允许的或无法解释的状态会带来潜在的问题。所有的“当”判断都必须有默认值以剔除这些不允许的或不可能的状态修正他们。程序中要一直包含检查这些状态的功能,在异常情况下,自动停止充电器的动作。
编写程序时保持代码简单易懂,尽可能避免采用多重中断,复杂的多任务或排队结构。采用单一的定时器中断是保存时间变量的最有效的方法。若CPU 有带中断的定时器,则用他来保存系统定时标志。这一功能强大的技术是非中断原则的一个例外。若CPU 没有定时器中断(例如PIC16C5X),则采用查询系统定时器RTC 的方法,在设计程序代码时保证定时器在两次查询之间不会溢出即可。
避免使用硬件中断,而在定时器触发设置的固定时间间隔内去轮询硬件输入。代码可以实时地执行,但是不必对外部激励立即作出反应。确认电池是否装上要花费100 毫秒的时间是完全可以接受的。考虑到电池充电需要一个小时,单机运行的典型性能是每分钟计算一次以决定是否终止充电。
这些程序的简单实用的结构是定时循环。主程序检查其本身或定时器中断服务程序设置的定时器标志,调用执行所需多重任务的子程序。部分子程序每一个循环都执行,另一部分子程序每“n”个循环或触发才执行一次。基本的触发时间可以是100 毫秒。例如周期为0.5S 的闪光程序每5 次触发被调用一次以改变LED 的状态。而温度越限探测器在每次循环都检查一次温度。结果程序的结构就变得非常鲁棒。
对于没有定时器中断的微处理器,定时循环可以用程序本身来实现。使用他们本身的执行时间来保持系统的定时。
(六)、硬件失效保护:
最后一个推荐是考虑采用带有看门狗定时器和硬件失效保护功能的微处理器监控电路。监控电路的复位功能在系统上电时给系统提供一个干净的系统复位信号。看门狗定时器可以发现失控的CPU 和错误的软件死循环,MAXIM 也生产某些简单的温度测控产品,象温度开关MAX6501就构成了一个特别好的备份系统。这些SOT-23 封装的器件当芯片的温度穿越固定的温度门槛时会改变他们的输出电平。
监控电路对充电器来说特别重要。因为充电器的不断上电掉电会让CPU 失步。举个例子,假如处理器失控而不能终止快速充电,那结果可能是灾难性的。系统必须包含温度传感器或别的硬件使得快速充电在没有软件的参与下终止快速充电。