基于AVR的笔记本电池检测仪

2010年03月30日 17:19    发布者:我芯依旧
引言

普通电池仅有作为电源向负载供电的功能.而智能电池是由电池组、电池管理芯片、充放电电路、保护电路等共同组成的。智能电池不仅可以提供电源,而且由于电池管理芯片中内置了微处理器和通信接口,它还可以向外部提供电池当前电压、当前电量、温度、门槛电压、充放电次数、生产厂商、生产日期等动态信息和设计信息。笔记本电池就是一种智能电池.它采用SMBUS向操作系统提供当前电池电量的余量、还能使用多长时间等数据。

笔记本电池在生产完成后。要老化电池。也就是测试电池是否能够正常工作。检测的步骤通常分步进行.首先读取电池的各种设计信息检查是否正确.其次对电池充放电检查是否可充放.最后校正电池电压、电流和温度。本文提出一种自动流程的笔记本电池检测仪.它自动比较电池信息.当发现错误信息后,写入正确信息,避免了手工输入,可有效提高工作效率2倍以上。

1 硬件电路的实现

笔记本测试仪是基于AVR单片机ATMEGA88实现的。ATMEGA88是ATMEL公司研制的高性能、低功耗8位微处理器,它采用RISC结构,最高速度达16M,28个可配置的引脚,lK内部SRAM.8K程序存储器.还具有512字节的EEPROM。ATMEG88还具有丰富的外设。如三个定时器、六通道PWM、10位ADC、USART接口、SPI总线、TWI总线等,这些特性十分适合智能电池的需要可以使控制器外围电路减至最少。因此本文选用了ATMEGA88。本文实现的笔记本电池检测仪可检测以TI公司BQ2060、BQ20270、Bq20280、BQ20290四个系列的电量计量芯片组成的智能电池。

1.1 SMBUS总线

SMBUS总线最早由Intel公司提出的。目前在个人电脑、工业测控、智能仪器仪表得到了广泛的应用。TI公司的BQ系列电鼍计量芯片都提供了SMBUS通讯接口供用户使用。SMBUS协议与12C总线类似,它是由两根信号线来传输数据的,一个是时钟传输线SCL。一个数据传输线SDA,SMBUS最高传输速度为100Kbps,当总线上接入速度不同的器件时。可以采用延长SCL低电平的时间来同步数据通信。SMBUS既可以由硬件接口实现.也可以由软件模拟实现.但在电路上这两根信号必须是漏极开路或集电极开路的,两根信号通过一个1OK的上拉电阻接到+5V电源上.这样在无数据传输时.两根信号线总是在高电平以使智能器件能检测到总线空闲。SMBUS总线上的设备有主设备和从设备两类,两类设备传输模式有收发两种,这样共有四种传输模式.无论哪一种通讯时都是由主设备发起和结束的。智能电池是SMBUS总线的上的从设备.它的写地址是0x16.读地址是Oxl7,SMBUS的一次写命令传输过程如图1所示。


图1 SMBUS时序图

在SCL为高电平时。主设备在SCL为高时把SDA从高拉低产生一个起始位。传输数据开始.紧跟其后的是地址寻址的8bit数据,最后一位0代表写操作。1代表的是进行读操作。随后传输是8bit数据是智能电池内部的命令字.根据电池芯片版本的不同有所不同。接下来的两个字节数据分别的命令内容的低字节和高字节,最后由主设备在SCL为高时把SDA从低拉高结束操作。在SMBUS读数据的时候要先时电池进行写入操作,再对电池进行读寻址,这一点和I2C还有所不同。ATMEG88的TWI总线是完全兼容SMBUS的,并且它的引脚可配置内部上拉电阻,可以省去外部的两个电阻。

1.2充放电电路

由ATMEGA88控制的可调电流的充放电电路能对电池进行充放电测试,TI公司的BQ计量芯片对电池计量具有自学习功能,计量建立在一个充放电的完全循环上的,因此电路必须要实现完全充电和完全放电。


图2充电电路图

充电电路如图2所示.LM317组成了一个恒压源.LM317的输入是1.25V.Si4953是一个N沟道的MOS管.它的栅极接在三极管8050的集电极上。源极和漏极与充电电路串联。三极管8050的作用是来关断和打开Si4953。它的基极接在ATMEG88的一个端口上。ATMEGA88置高电平,8050发射极正偏,集电极反偏,8050饱和导通,Si4593栅极为低电平,MOS截止相当于电路开路,电源不能给电池的正极充电。当要对电池进行充电时.ATMEG88将此引脚置低电平,8050截止,Si4953导通电源通过LM317给电池的正极充如1.25A的电流。改变ATMEGA88的这个引脚的占空比可以很改变充电电流的大小。在充电过程中.ATMEGA88每秒钟读一次电池的门槛电压.如果门槛电压到了电池的最大充电电压并能维持2分钟.说明电池已经充满。电池充满后.不能再继续充电,否则会造成电芯过充损坏.电量计量芯片会在电池充满后打开内部的FET保护电路.断开充电通路保护电芯。ATMEG88在电池充满后.读取电池的保护位.如果已经打开说明电池工作正常。
电池放电是充电的反过程,与充电过程很类似,在放电过程中.电池的电压不断降低.与充电不同的是电量计量芯片会设置三级到四级保护电压.一般来说是笔记本电池是不允许电压跌落到最后一级电压以下,因为这个时候电芯由于过放可能已经物理损坏,电压每跌落一个等级,电量计量芯片就会打开这一级的保护电路,减小放电的电流,到最后一级时,放电电路完全断开,报告电池的电量已经耗尽。ATMEG88要检测每一级保护都正常.才能确定电池工作良好。

1.3热敏电阻检测电路

电池在工作时.部分电能会转化为热能,温度的升高会引起电芯的化学性能发生急剧的变化.甚至有爆炸的危险.因此对电池温度的检测是必须的。笔记本电池一般使用一个IOK的负系数热敏电阻来检测温度的变化,热敏电阻工作正常才能保证电池的安全。在电池检测过程,热敏电阻的检测也是其中重要的一环。检测电路如图所示,两个LM358组成了一个窗口比较器来检测输入的信号。由图3可知窗口比较器上的上限是VH=5*(10+3.3)/(20+3.3)=2.8V,下限是VL=5*10/(20+3.3)=2.1V,热敏电阻和上拉电阻分压作为输入信号Uin由窗口比较器的原理可知,若VL

图3热敏电阻检测电路

2 软件功能的实现

软件的实现分单片机和程序两部分。其中单片机完成协议转换功能上位机软件实现检测功能。

2.1 SMBUS总线与RS232协议的转换

电池检测仪是由ATMEGA88把数据从电池取出,通过RS232把数据发给上位机。或从上位机接收数据转发给电池,可见在信息传送过程中,电池检测仪起到了桥接的作用。电池版本的不同信息容量也不同,如对于BQ2060系列的电池,只有127个字节的信息。ATMEGA88共有lK的SRAM,完全可以将全部寄存器存入到单片机中,而对于BQ20280的智能电池,电池信息容量为1752个字节,无法完全存放,只能将数据分批发送出去。本文使用分组发送的方法转发数据,在单片机内部为SMBUS总线和RS232各分配32字节的收发缓冲区,数据都组装成帧发送.单片机在收发到一个完整的帧后才启动后续操作。数据帧的格式为:第一字节同步字符0xFE,第二字节数据长度字节,最大值29.从第三字节开始数据字节。内容为ASCII码的数字和字母。最后一字节是数据帧结束字节OxFD。当收到帧起始字,ATMEG88把数据放入接收缓冲区,当收到帧结束字节后,处理数据并放人到发送缓冲区.启动发送。为了避免数据溢出现象,还加入了超时处理.当处理一帧数据超过2ms时视为数据收发失败。将此帧数据删除。

2.2电池可配置编程的实现

对于BQ20270等系列的高档电池,电量计量芯片内部集成了Flash存储器。可以使用SMBUS总线对电池的配置在线更新。本文提出的电量检测仪实现了对Flash的编程操作,完成了生产一块电池的全部操作。在进行编程之前,要先准备一个原装镜象文件。这个文件里包含了电池的器件配置信息如电阻特性曲线、化学特定数据等.对电池执行一个写操作,写入0x08,置电池为编程模式.数据通过SMBUS写入电池,完成后发送校正命令.电池执行内部的自动校正算法把电池校准,再将电池专用信息写入包括生产日期、序列号等.将所有写入的信息再读出来与原有信息比较进行数据校验,如检查数据无误,复位电池恢复5分钟后,向电池发送阻抗匹配追踪使能命令0x21,电池就可以正常工作了。

2.3智能电池检测流程

检测智能电池的整个流程是在七位机的软件下控制完成的,在电池的生产流程中,参数的变化是很频繁的,为了能适应各种不同电池的检测本文采用读取配置文件的方法。在上位机软件启动时,首先要加载的后缀为INI的电池配置文件,配置文件主要结构是一个settings段。段中存储的是关键字.智能电池的每一个寄存器都三个关键字。分别是寄存器的地址、寄存器的最大值、寄存器的最小值。上位机软件根据配置文件动态生成要检测的内容界面,根据地址向检测仪发送串口命令.检测仪把此命令转发给电池,电池会返回此命令的值,上位机收到后与加载的最大值和最小值比较。如果超出范围则检测不通过.软件会用不同的颜色标出。上位机加载配置文件完毕后,第一步检测电池的的基本信息如设计电压、设计容量、电压、电流、循环次数等.如不正确上位机软件自动写入正确值;第二步启动充放电电路检测电池内部的保护电路和加载电流,如不正确则报警,并记入日志文件:第三步检测热敏电阻是否工作正常.如不正常报警并记往日志文件:最后校正电路参数。如果电池不能正常工作.还可以用智能电池检测仪对电池重新编程。

3 结论

本文对智能电池检测仪的工作原理和实现方法进行了详细阐述。实现了电池的基本信息检测、充放电检测、热敏电阻等检测.并且实现了智能电池的在线编程。智能电池检测仪具有效率高、配置灵活、使用方便等特点.在电池生产中取得了良好的效果。

本文创新点:本文提出了采用AVR单片机对笔记本电池检测进行充放电、温度等检测.流程采用上位机软件配置,提高了电池检测流程的效率和灵活性。

本文提出电池检测仪已批量生产30套,每套售价2万元。一个检测仪每月可检测约4K块电池.可节省大量人工和时间,直接经济效益1万元左右。


作者:高艳芬,何明星,王伟    来源:《微计算机信息》(嵌入式与SOC)2009年第25卷8-2期