符合SMBus2.0协议单节智能锂电池系统的设计
扫描二维码
随时随地手机看文章
由于锂电池具有电压高、能量密度高、无“记忆效应”、放电曲线平缓等优点,很多便携式产品采用单节锂电池进行供电。然而锂电池也是比较娇贵的产品,过冲、过放电、短路等都会对使用寿命产生影响甚至发生爆炸危害到人身安全。而且目前很多便携式产品在电池电量没有完全用完时就不允许继续工作,降低了电池使用效率和产品的使用时间。因此,对单节锂电池进行相关的处理措施是非常必要的。
1 智能电池系统规范概述
电池的智能化是最近才发展起来的,智能电池的实现方法多种多样,但只有一种系统能够提供包括电池、充电器和其他元件在内的完整方案,即基于系统管理总线(SMBus)的标准智能电池系统(SBS)。系统主要由四个模块组成:充电、安全保护、测量和计算通信。这种结构以Intel和其他公司开发的双线总线为中心,数据协议SBData规范使其电源管理系统所用的电池数据保持一致性,如固定值、测量值、计算值和预测值以及充电和报警信息。这些数据用在主系统和智能电池系统之间互相传递。
数据协议规范定义的34个数值代表了操作条件、计算而得的预测和SBS特性。在功能上具有:测量(电压、温度、电流和平均电流);容量信息(容量值包括相对充电状态、绝对充电状态、剩余容量和完全充电容量);剩余时间(耗尽时间、平均耗尽时间、平均充满时间、充放电定值、定值充满时间、定值耗尽时间和定值OK);报警与广播(剩余容量报警、剩余时间报警、充电电流和充电电压);模式、状态和错误(电池模式、容量模式、充电器模式、最大错误、电池状态和制造商访问);电池身份识别(周期计数、设计容量、设计电压、规范信息、制造日期、编号、制造商名称、器件名称、器件化学以及制造商数据)[2]功能。
由于标准是一些便携式电脑制造商推出的,主要针对笔记本电脑等耗电偏大、采用多电芯(电池)供电的系统。但在单电池供电的系统中,由于成本及资源问题限制了电池系统的操作,使智能电池系统的发展复杂化。因此这里将智能电池系统规范引入到单节锂电池中,需要在软、硬件方面做出合适的修改。
2 系统的硬件组成
单节智能锂电池系统采用Maxim公司的充电管理芯片MAX1555实现充电管理功能;理光的R5421构成单节锂电池保护电路,防止电池过冲、过放电、过流及短路;利用Maxim的DS2438完成电池的各种状态的检测及电池的标识,具有SMBus(与I2C兼容)接口的单片机C8051F305完成了充电状态的测量控制、电池状态的读取和运算、存储及通信等功能。此外还有为主系统供电的电源处理芯片以及具有二次保护功能的电源开关TPS2013。这些都可以根据实际需求做出取舍。整体由单片机构成嵌入式系统,利用C8051F305标准的SMBus2.0接口与被供电系统进行通信,完成相关信息的读取和命令发送等功能。系统框图如图1所示。
2.1 充电管理
锂离子电池的额定电压为3.6V(有的产品为3.7V),充满电时的终止充电电压根据阳极材料的不同分为4.1V和4.2V。锂离子电池的终止放电电压为2.5V~2.75V(电池厂给出的工作电压范围或给出的终止放电电压,各参数略有不同)。低于终止放电电压继续放电称为过放,电池电压超过4.1V或4.2V时称为过充,锂电池不适合作大电流放电,同时锂电池的充放电对环境温度都有一定的要求。以上任何一项超过指标都会对电池产生不良的影响。其充电管理电路如图2所示。
本系统采用充电管理芯片MAX1555,它可以通过USB和AC适配器电源为单节锂离子电池充电,可以接受最高7V的输入电压。通过优化充电速率,当达到MAX1555温度限制时,充电器并不关断,而是逐渐降低充电电流使其可以在电池状况和输入电压处于最糟糕的情况下不受散热问题的制约[3]。
系统采用线性充电方式,当电池电压低于3V时,器件进入充电电流为40mA的预充电模式,直至电压高于3V进入恒流模式。如果连接的是USB口但无直流电源时,充电电流被设定为100mA(最大值);如果是DC电源充电,充电电流被自动设定为280mA(典型值)。当电池电压超过4V时,芯片以固定4.20V+/-0.04V左右的恒定电压给电池充电(恒压模式),如果充电电流小于50mA,则芯片停止充电,结束一个充电周期,通过状态引脚CHG的高电平传输到单片机中。
采用MAX1555芯片成本低、外围电路简单、体积小、发热量低、充电策略可靠。当采用交流适配器充电时,500mAh的锂电池只需两个小时即能冲满,完全能够满足充电器设计的要求。
2.2 安全保护
图3为本系统的电池保护电路,主要采用理光(RICOH)的R5421N111C和用于电源开关、低导通电阻的N沟道场效应管S-19926构成锂电池保护电路,实现过充、过放、过电流和短路保护等功能。
在正常状态下电路中U2的“Cout”与“Dout”脚都输出高电压,两个MOSFET(Q1、Q2)都处于导通状态,电池可以自由地进行充电和放电。由于MOSFET的导通阻抗也很小(<30mΩ),因此其导通电阻对电路的性能影响也很小。
当电池电压超过4.28V(过充)、低于2.5V(过放)、场效应管两端的电压大于0.1V(过流,具体数值是根据场效应管导通电阻及相关公式计算而得)或场效应管两端的电压大于0.9V(短路时,该值由控制IC决定)时,芯片通过对两个MOSFET的控制,实现对电池的保护[4]。
2.3 测量部分
为了实现对电池当前各种状态的监测,包括当前电池的充/放电状态、电压、电流、温度、剩余电量、消逝时间等参数的监测,这里采用智能电池检测芯片DS2438来完成。
DS2438芯片是DALLAS公司推出的新一代智能电池监测芯片,具有功能强大、体积小、硬件接线简单等优点(通过一线与单片机进行数据指令通信);内含数字温度传感器对电池温度进行测量;片内模数转换器对电池电压进行监测,从而可判定充电和放电的结束;片内的积分电流累加器可实时记录电池流入、流出电流的总量,便于统计电量;内含记录相对于内部基准时间的电池充电完毕、其脱离系统的精确时刻消逝时间表;内含40字节可用于存放电池特殊参数的掉电保护的用户访问存储器[5]。
2.4 计算通信部分
计算通信部分使用Silabs公司的低成本单片机C8051F305,它具有采用流水线指令结构的高速8051微控制器内核、256B RAM、2KBFlash存储器、8个I/O口、标准SMBus串口、采用3V供电、功耗低[5]。
采用单片机系统对DS2438的数据进行读取、运算、存储,通过标准的SMBus接口对数据和指令与主系统传输,同时多余的I/O口用来控制电源的开关等其他功能。
3 软件设计
软件编写主要采用模块化的方式,编译环境Keil 7.50 完成C51的编程。这里主要介绍对智能电池系统协议SBData的定制和对DS2438的读写控制。
3.1 智能电池系统通信协议的定制
SBData1.1协议规定了34个数值[6]。该系统根据需要做出修改,只占用22个数值,在实际应用中可以根据所需数据进行读取,同时也可以将冲放电控制策略应用于系统,对智能锂电池系统起到软保护的作用。这些数值都是通过DS2438测量或预先定义存放在C8051的Flash存储器中,主系统通过SMBus或用I/O口模拟I2C时序,向智能电池系统发送命令码,获取所需的值。智能电池数据功能表如表1所示。具体值的定义由于篇幅限制这里不做介绍。
3.2 DS2438的读写控制
3.2.1 供电方式的测量
首先单片机控制DS2438使其电流A/D转换器使能,而后DS2438对流入、流出电池块的电流自动进行测量,结果存放于电流寄存器中。电流寄存器的高字节的高6位是流入电池电流的符号位,为1表示电池正在充电;为0表示电池正在放电。单片机对电流寄存器的值的高6位进行判断就可获得供电方式,同时也获得电流值。供电方式测量程序流程图如图4所示。
3.2.2 电池电压、温度、剩余电流的测量
要获得电池的电压和温度,只需要由单片机对DS2438发出采集电压、温度的控制命令,然后等待其采集完毕并自动将电压、温度测量值存入相对应的寄存器后,再由单片机读取寄存器的内容即可。在读取寄存器值时,注意只有当数据线为高电平时,才能正确地读取。其程序流程与图4类似。
电池的剩余电量可用电流积分累加(ICA)寄存器的值求得。只需单片机读出ICA寄存器的值,然后将读出的值代入公式:剩余电量=ICA/(2048×RSENS),便可得到电池的剩余电量。
该智能电池系统引入了国际标准,具有笔记本智能电池系统的优点。在实际应用中该系统改进了便携式电源的管理;延长了电池的工作时间;确保了安全温度内的充放电;缩短了充电时间;可选用多种商家的电池;易于升级,为便携式仪器提供了很好的解决方案。
参考文献
1 Friel D. SBS简化便携式电源系统设计.电子工程专辑,1999;(6):26~30
2 Fukatsu S, Dunstan R. Smart battery system manager specifi-cation revision 1.0 www.SBSIF.org,1998-12-04~12
3 郭海帆,宣宗强.基于DS2438芯片的智能电池监测系统.今日电子,2003;(9):32~34
4 The datasheet of R5421NXXX series NO.EA-069-0006.www.dianyuan.com,2002-10
5 童长飞.C8051系列单片机开发与C语言编程.北京:北京航空航天大学出版社,2005
6 PS501现场可编程单电池管理. Microchip Technology Inc,2004:25~29