×
嵌入式 > 嵌入式开发 > 详情

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

发布时间:2020-09-10 发布时间:
|
引言

普通电池仅有作为电源向负载供电的功能.而智能电池是由电池组、电池管理芯片、充放电电路、保护电路等共同组成的。智能电池不仅可以提供电源,而且由于电池管理芯片中内置了微处理器和通信接口,它还可以向外部提供电池当前电压、当前电量、温度、门槛电压、充放电次数、生产厂商、生产日期等动态信息和设计信息。笔记本电池就是一种智能电池.它采用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在电池充满后.读取电池的保护位.如果已经打开说明电池工作正常。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
内核日志及printk结构浅析