摘要:本文介绍了一种基于DS2762 芯片的智能锂电池监测系统。着重阐述了系统的硬件实现和软件设计。系统借助单片机完成了实时监测和显示当前状态的功能。本系统功能强大、结构简单, 可用于数码相机、智能电话及其它便携式仪器的智能锂电池模块中。
一、引言
目前, 在设计便携式产品时通常采用电池供电。
在使用电池供电时, 电池的当前状态是用户所关心的, 如智能电话、数码相机等都实时显示当前的状态。为此, 在设计本文所涉及的仪器时, 智能电池监测系统被充分考虑。本文实现的锂电池监测系统由DS2762 锂电池监测芯片、51 单片机、液晶显示模块组成。其中的核心功能由DS2762 芯片完成的。本文介绍了系统的硬件实现和软件设计, 以及DS2762 芯片的特性和相关控制软件程序。
二、系统硬件结构及工作原理
1、系统硬件结构。本系统的硬件设计力求简洁,以便使单片机能够完成更多其他功能。硬件实现如图1 所示:
图1 硬件结构图
整个系统由DS2762 锂电池监测芯片、51 单片机和液晶显示模块组成。DS2762 芯片是MAXIM公司推出的新一代智能锂电池监测芯片, 集数据采集、信息储存、安全保护于一身,具有功能强大、硬件接线简单等特点。它完成对电池当前状态的监测, 包括当前电池的充/ 放电状态、电压、电流、温度和剩余电量等参数的监测。DS2762 芯片能自动采集这些数据, 并将其放在存储器中。
DS2762 的引脚功能如下图2 所示:
图2 引脚功能
PIO: 可编程的I/O 端。根据需要控制用户定义的外围电路。
VDD: 电池正极输入。
Vin: 感应电压输入。
51 单片机按照用户需要对电池的相应参数读取和处理, 然后送往液晶显示模块显示。由于存放这些参数的EEPROM具有非易失性, 所以本系统具有掉电保护功能。由图1 可见, 单片机是整个系统的控制处理中心, 由于大量的工作由单片机完成, 明显地降低了系统硬件复杂度, 极大地提高了系统的智能化。
液晶显示模块显示用户需要了解的电池当前状态信息, 用户根据这些信息以作出相应的处理。它仅仅接受单片机的控制和访问。
2、工作原理。系统上电后, 先确定电池的工作方式: 单片机每88ms 监测一次电压, 将DS2762的IS1 和IS2 两端的压差( Vis=Vis1- Vis2) 转换成电流后存入电流寄存器。若Vis 为正值, 说明电池正在充电; 若Vis 为负值, 说明电池正在放电, 也就是仪器正由锂电池直流电源供电。接着单片机对DS2762 发出采集电压、温度的控制命令。由于DS2762 内部有A/D 转换器和数字温度传感器, 可自动将电压、温度测量值存入DS2762 相对应的寄存器, 因此, 单片机只要等待其采样完毕后, 读取寄存器的内容, 最后送液晶显示模块显示。
电池的剩余电量可用电流累加寄存器的值求得。电流累加寄存器的值是由DS2762 实时自动测量电池电流后更改的, 无须对其进行控制。电池充电时该值增加, 放电时该值减少。单片机读取此值后即可获得剩余电量。
场效应管FET1、FET2 等构成DS2762的充放电保护回路。过压保护:如果电池电压Vin 超出过压门限电压Vov, 延时Tovd后,DS2762 将关闭充电场效应管FET1.欠压保护: 如果电池电压Vin 低于欠压门限电压Vuv, 延时Tuvd 后,DS2762 将关闭充电和放电场效应管FET1、FET2, 进入睡眠方式, 等待充电指令。充电过流保护:如果Vis(Vis=Vis1- Vis2)超出过流门限Voc, 延时Tocd 后, DS2762 将关闭场效应管FET1、FET2.放电过流保护:如果Vis 低于- Voc, 延时Tocd 后, DS2762 将关闭放电场效应管FET2.短路保护:如果SNS 脚的电压超过短路门限电压, 延时Tscd 后, DS2762 将关闭放电场效应管FET2.
三、系统软件实现及流程图
为了满足监测的实时性, 单片机采用定时中断的方式访问DS2762, 进行电池参数采集。首先设置单片机的计数器为定时方式, 开启定时器, 定时长度可随需要灵活设定; 然后单片机运行其他程序, 等待定时中断的到来, 定时中断发生之后进行中断服务程序, 对数据进行采集、处理和显示; 最后重新初始化定时中断, 返回。图3 是系统总体流程图, 图4 是中断服务流程图。
图3 系统总体流程图
图4 中断服务程序流程图
DS2762 与单片机进行数据通讯时仅用一根数据线( DQ) , 因此必须严格按照芯片的读写时序要求来编写程序, 这样才能保证数据的正确读写。图5、图6 是DS2762 芯片对电池的工作方式和剩余电量进行监测的程序流程图:
图5 电池工作方式监测流程图
图6 剩余电量监测流程图
说明: 1> 单片机对DS2762 进行任意存储命令操作时, 在发出每个命令之前都必须按照DS2762的复位时序要求。先发出复位信号且等待DS2762的应答( 以示DS2762 准备接受或发送数据) , 然后再发出一个ROM 命令用以选择总线上要访问的DS2762.在本文的程序流程图中此过程用"DS2762的初始化"来代替。2> 在读取寄存器的值时, 为防止读取错误, 先要检查DS2762 是否正在修改寄存器的内容。这可通过判断EEPROM寄存器的EEC 位即可。
四、结束语
本文介绍的基于DS2762 芯片的锂电池监测系统是一种便携式仪器的一部分。系统硬件设计简洁,且同单片机配合使用, 不仅极大地提高了智能化, 而且功能强大、操作方便, 能够与其他功能协同工作。
随着各种便携式电子产品的广泛应用, 电池实时监测已成为一种必不可少的功能, 因此本文所介绍的系统具有较强的实用性, 可用于数码相机、智能电话及其他便携式仪器的智能锂电池监测模块中。<