新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于DS2438芯片的智能电池监测系统

基于DS2438芯片的智能电池监测系统

作者: 时间:2012-02-08 来源:网络 收藏


四、系统功能软件实现及流程图

  为了满足监测的实时性,本系统单片机采用定时中断的方式访问,进行电池参数采集。首先设置单片机的计数器为定时方式,开启计数器,定时长短可随需要灵活设定。然后单片机运行其它程序,等待定时中断的到来。定时中断发生之后进入中断服务程序,调用的控制操作程序,进行数据采集,并将采集来的数据进行处理和显示,最后重新初始化定时中断,返回。图3是系统总体流程图,图4是中断服务程序流程图。

  与单片机进行数据通讯时仅用一根数据线,因此必须严格按照芯片的读写时序要求来编写程序,这样才能保证数据的正确读写。这一过程虽然繁琐,但并不复杂,因篇幅有限,本文对此不予说明。下面介绍如何实现利用基于DS2438芯片的智能对仪器的供电方式(直流或交流)和电池的电压、电流、温度、剩余电量进行监测。

  1.供电方式的监测

  要确定仪器在使用中处于何种供电方式,可利用前面介绍的电流寄存器的值进行判定。

  首先单片机控制DS2438使其电流A/D转换器使能,DS2438便会以每秒36.41次的速度对流入、流出电池块电流自动进行测量,测量的结果存放于电流寄存器中。电流寄存器的高字节的高六位是流入电池电流的符号位,为1时表示电池正在充电,也就是仪器正由交流电源供电;为0表示电池正在放电,即仪器正由直流电池供电。因此,单片机读出电流寄存器的值,对其高六位进行判断就可获悉供电方式,同时也获得了电流值。软件流程图见图5。

  2.电池电压、温度的测量

  由于DS2438内部有A/D转换器和数字温度传感器,要获得电池的电压、温度只需要由单片机对DS2438发出采集电压、温度的控制命令,然后等待其采集完毕并自动将电压、温度测量值存入相对应的寄存器后,再由单片机读取寄存器的内容即可。在读取寄存器值时,若单片机与DS2438之间的数据线为低电平,则表明DS2438正在进行电压、温度转换,此时不能读取数据,只有当数据线为高电平时,才能正确的读取数据。
  
  3.剩余电量的监测

  电池的剩余电量是仪器在使用过程中用户所需要的重要信息,它可用电流积分累加(ICA)寄存器的值求得。ICA寄存器的值是由DS2438定时自动测量电池电流后更改的,无需对其进行控制,只需单片机读出ICA寄存器的值,然后将读出的值代入公式(2),便可得到电池的剩余电量。剩余电量监测的流程图见图6。

  剩余电量=ICA/(2048×RSENS) (2) 其中RSENS的单位为Ω。

  说明:(1) 单片机对DS2438进行任意存储命令操作时,在发出每个命令之前都必须按照DS2438的复位时序要求,先发复位信号且等待DS2438的应答(以示 DS2438准备接受或发送数据),然后再发出一个ROM命令用以选择总线上要访问的DS2438,在本文的程序流程图中,此过程用“DS2438的初始化”来代替;
  (2) 在对DS2438控制之前,必须先写状态/标志寄存器;
  (3) 在读取寄存器的值时,为防止读取错误,先要检查DS2438是否正在修改寄存器的内容,这可通过对状态/标志寄存器中的NVB位进行判断实现。


五、结束语

  本文介绍的基于DS2438芯片的智能是一种便携式仪器的一部分,实际使用证明本系统运行可靠、功能强大、操作方便、能够与其他功能协同工作。随着各种便携式电子产品的广泛应用,电池实时监测已成为一种必不可少的功能。因此本文所介绍的具有较强的实用性。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭