设为首页
联系站长
加入收藏
 您的位置: Pecker's Home >> 文章频道 >> 电子技术 >> 电源技术 >> 其他电源 >> 正文
  电池管理及监控设计         
电池管理及监控设计
[ 作者:杨涌、谢显中    转贴自:佚名    点击数:1343    更新时间:2007-7-10    文章录入:pecker

摘要:本文讨论了电池充电管理芯片bq24032A 和电池监控芯片bq26220 的特性,并介绍了基于Windows CE 操作系统的电池驱动模型和初始化过程,重点介绍了电池电压的获取和电池电量的计算方法。

关键词:电池,Windows CE,驱动程序

Battery Management and Monitor Development

Yang Yong Xie Xian-zhong

MII Key Lab of Mobile Communication Technology, Chongqing University of Posts andTelecommunications, Chongqing, 400065, China

Abstract:This article introduced the characteristic of battery manager chip bq24032 and battery monitor chip bq26220. and introduced battery driver achievement and initialization process based on Windows CE operating system, and elaborated how to gain the voltage and how to compute the capability of the battery.

Keyword:Battery,Windows CE,Driver


1. 前言

    随着信息技术的飞速发展,移动终端设备如手机、PDA、掌上电脑等产品正越来越多地得到广泛使用。加上目前移动终端设备的处理器性能不断提高、无线应用程序不断增加、图形功能越来越先进。功能上的增加,导致了移动终端产品的功耗越来越大;因此,对电池的提出了更高的性能要求,尤其体现在电池的管理方面,其中包括电池的充电管理和电池的监控,这是嵌入式产品开发中必须考虑的问题。


2. 电池管理芯片介绍

2.1. 电池充电管理芯片bq24032A

    电池管理芯片bq24032A 支持USB 充电和AC 充电方式。通过bq24032A 对电池进行充电。此芯片提供整个系统的电源输出。其中电池管理芯片bq24032A 的VBAT 接于电池监控芯片bq26220 的VBAT 引脚。PSEL 为电源选择端口,可以用于选择由那种输入电源作为主输入电源(USB AC)。如果主输入电源不可用,系统将自动采用第二种输入电源进行输入,电池输入作为最后的选择,当USB 或AC 电源不存在时才选择使用电池作为供电源。PSEL 被设置为低时,USB 被选择为主输入[1]。下图1 为电池管理芯片bq24032A 及其外围
电路图:


图1 电池管理芯片bq24032A 及其外围电路图

2.2. 电池监控芯片bq26220

    bq26220 芯片是先进的电池设备监控模块,它可精确地测量充电和放电电流,并支持所有管理电池容量的必要功能,这个芯片可用于手持电话、PDA、和另外的便携式产品中。bq26220 芯片和主控制器一起执行电池的管理功能,主控制器负责将bq26220 的数据传送到终端用户电源管理系统中和接收相应的数据。这个模块提供64 比特通用闪存,8 比特的ID ROM,和32 比特的RAM 储空间。这些非易失的存储空间能够保存电池的监控信息或关键的电池参数。

    其中,BAT 为电池电压检测输入端口,这个引脚被用于检测和测量电池的电压值。HDQ为单线HDQ 口,是一个单线串行通信接口,它是双向输入的,负责将寄存器的信息传递给主控制器,并接收主控制器的信息到寄存器中,电池监控芯片bq26220 的HDQ 端口接于PXA272 处理器的GPIO119 端口[2]。下图2 为bq26220 芯片原理模块图:


图2 bq26220 芯片原理模块图


3. 电池驱动模型和驱动初始化过程

    Windows CE 中包含的样本设备驱动程序分为两种类型:单片驱动程序(Monolithic device driver)和分层驱动程序(Layered Device driver)。采用分层开发模式可以降低开发难度,缩短开发周期,在电池驱动开发中使用分层驱动开发模式。

    分层驱动程序由两个独立的层组成:上层是模型设备驱动程序(MDD),下层是依赖平台的驱动程序(PDD)。设备驱动程序服务器提供的接口(DDSI)是在PDD中实现的函数集,并由MDD调用。由于微软提供了所有与MDD模块相关的源代码,所以对这部分不用做任何改动,只需将自己的PDD模块与MDD模块链结成一个公用库即可[3]。MDD 通过IoCTLS 调用PDD 中的特定函数来访问硬件的具体特性。

    Windows CE 电池驱动要求的MDD 函数包括:

    Init、Deinit、Open、Close、Read、Write、Seek、PowerDown、PowerUp、IOControl。

    Windows CE 电池驱动要求的PDD 函数包括:

    BatteryPDDInitialize、BatteryPDDDeinitialize、BatteryPDDGetStatus、BatteryPDDGetLevels、BatteryPDDSupportsChangeNotification、BatteryPDDPowerHandler、BatteryPDDResume。

    电池驱动初始化过程

    在系统上电自检成功后,上层调用电池驱动入口函数,进行电池驱动初始化工作:

    (1)判断是否已经进行中断事件初始化,如果没有初始化,则进行下面的操作,如果已经进行了一次初始化,则关闭事件句柄。

    (2)初始化电池全局变量。

    (3)如果中断事件成功,则调用ResumeThreadProc 创建电池线程。在线程的主调函数中,设置电池线程的优先级,然后在循环中等待中断事件。

    (4)调用PDD 层的初始化函数BatteryPDDInitialize;在PDD 层中,为GPIO 寄存器和电源管理寄存器开辟两段虚拟内存。

    (5)初始化AC97 的寄存器。

    (6)初始化存放电池电量值的环形缓冲区。
   
    (7)调用BatteryAPIGetSystemPowerStatusEx2 函数更新电池电量结构体PSYSTEM POWERSTATUS_ EX2 中的数据。


4. BatteryAPIGetSystemPowerStatusEx 函数

    BatteryAPIGetSystemPowerStatusEx 函数主要获取系统电源状态值。在执行过程中是通过调用BatteryAPIGetSystemPowerStatusEx2 函数来完成的。而BatteryAPIGetSystemPowerStatusEx2 函数调用BatteryPDDGetStatus 函数以获取电池状态信息,BatteryPDDGetStatus 函数通过调用GetMainBatteryVoltage 获取主电池电压值,通过调用GetPowerDevStatus 获取电池设备状态, 并获取剩余电量的比例值。下图3 为BatteryAPIGetSystemPowerStatusEx 函数调用关系图:


图3 BatteryAPIGetSystemPowerStatusEx 函数调用关系图


5. CalcMainBatteryVoltage 获取电池电压值

    Bq26220 通过BAT 端口检测电池电源,并且通过寄存器BATH-BATL 传递给上层。这个BATH(地址=0x72——从第0 比特到第2 比特)和BATL 低比特寄存器(地址=0x71——从第0 比特到第7 比特)包含电池电压经过ADC 转换后的结果。这个电压以11 比特、2.44mV 为步长、并带有LSB 的二进制形式表达出来。BATH 寄存器的第3 比特代表MSB,BATL 的第0 比特代表LSB。最大电压测量范围为5V。

    BATH寄存器的第3 比特到第7 比特存储电压ADC 后的偏移量信息,这个最重要的信息比特是在4 比特(第3 比特到第7 比特)偏移数据后的标记比特。

    LSB获取修正因子,以μV为单位,主控制器负责通LSB获取修正因子和偏移量来测量ADC后的电压值。下面是计算公式:

    正确的V BATV BAT×(2.44LSB修正因子)-偏移量

    计算举例如下:

    例如:如果真实的LSB=+2.45mV,偏移量=+80mV

    计算正确的:V BAT

    LSB修正因子=+10μV0.001mV

    偏移量=+10×8mV80mV

    正确的V BATV BAT×(2.440.01)-80

    程序具体实现流程如下图4:


图4 CalcMainBatteryVoltage 函数流程图


6. 电池电量计算方法

    原来电池电量百分比显示的其实是电压百分比。可是硬件方面测试发现,电池电量和电池电压并非成简单的线性关系,因此需要分区间进行百分比的转换校正。常温下,我们设备获得的电池电压和电量曲线大致如下(图5):


图5 电池电压和电量的关系图

    在驱动程序中创建了一个为16个字长度的环形缓冲区,采样点数增加为16个,这样可以增加对采样结果的可靠性。电池电压采样值even_samp为16个采样值的和去掉一个最大值和一个最小值后再取平均值。

    在我们的移动终端设备中,电池的最大电压为559(4.10V),最小电压为455(3.30V),以图5 的两条虚线作为区间的分界线,可分为4.10V~3.80V,3.80V~3.60V,3.60V~3.30V 这三个区间,对电池电压值进行分区间的处理,三个区间上的曲线斜率近似为:

    4.1V~3.80V:Kl=(100-70)/(4.10-3.80)

    3.80V~3.60V:K2=(70-20)/(3.80—3.60)

    3.60V~3.30V:K3=20/(3.60-3.30)

    4.10V~3.30V:K=100/(4.10-3.30)

    在进行电池电量百分比的转换时,当我们获得在559~455 区间内的采样值后,首先获得原来的百分比值voltage_percent= (even_samp-455) * l00/(559-455)。然后针对不同的区间进行相应的调整,得到的电量百分比分别为:

    4.10V~3.80V:voltage_ercent+=(4.10-even_samp * 7.5/1024)×(K-K1)

    3.80V~3.60V:voltage_percent+=(3.80-even_samp * 7.5/1024)×(K-K2)

    3.60V~3.30V:voltage_percent-=(even_samp-3.30V * 7.5/1024)×(K-K3)

    通过对以上三个区间的分别处理,这样就获得了相对正确的电池电量[4]。


7. 小结

    本文介绍了在Windows CE 系统中,基于电池充电管理芯片bq24032A 和电池监控芯片bq26220 芯片的电池驱动的实现。主要介绍了电池电压的获取和电池电量的计算方法。对电池管理提供了很好的借鉴。


参考文献:
    [1] TI 公司关于电池管理芯片bq24032A 的资料
    [2] TI 公司关于电池监控芯片bq26220 的资料
    [3] 傅曦.Windows CE 嵌入式开发入门——基于Xscale 架构[M] 北京.人民邮电出版社,2006 :227-230.
    [4] 杨明.军用手持仪器剩余电置的实时预测D].电子质量.2005.


作者介绍:

杨涌(1979—),男(汉族),重庆人,硕士研究生,主要研究方向:嵌入式系统开发;

谢显中(1966—),男(汉族),四川人,博士,现为重庆邮电大学教授,移动通信学术带头人,信息产业部/重庆市移动通信重点实验室主任,目前主要从事移动通信技术方面的科研与教学工作。

联系地址:重庆邮电大学77 号信箱34 栋310 室

邮编:400065

联系电话:13609402769

Email:yangyong102812@163.com

分享到:
    免责声明:本文仅代表作者个人观点,与Pecker's Home无关。登载目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字和图片(或其他媒体形式内容)的真实性、完整性、及时性本站不作任何保证或承诺。请读者仅作参考,并请自行核实相关内容。如果有侵犯版权事宜,请通知master@peckerhome.com,我们将在第一时间删除该信息。
  • 上一篇文章: 应用处理器的电源管理设计

  • 下一篇文章: 标准化可编程电源管理——势在必行的现代电路板设计
  • 发表评论】【告诉好友】【打印此文】【关闭窗口
     最新5篇热点文章
    处理器架构消亡史[00140]
    通信恩仇,5G江湖[00281]
    官方辟谣扫码支付引爆加油…[00524]
    谷歌搭售是不是作恶?可以…[00285]
    你对Zigbee无线连接了解多…[00515]
     
     最新5篇推荐文章
    Pecker之家开通用于电子元…[02-13]
    印刷电路板图设计经验[04-04]
    基于电力线通信的家庭网络…[03-23]
    利用USB控制器设计的Windo…[01-20]
    基于ARM920T微处理器的IDE…[01-20]
     
     相 关 文 章
    电池技术为何停滞不前?革…[00286]
    微软新技术可延长电池使用…[00323]
    为什么电池用越久电量就越…[00292]
    手机电池内置成主流 可更换…[00295]
    木头电池要挑战锂电池[00285]

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论