📄 电池管理及监控设计 - 商情资讯 - 华强电子世界网.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0062)http://www.hqew.com/file/NewsHTML/20078/200789102046732726.htm -->
<HTML><HEAD><TITLE>电池管理及监控设计 - 商情资讯 - 华强电子世界网</TITLE><LINK
href="电池管理及监控设计 - 商情资讯 - 华强电子世界网.files/style.css" type=text/css rel=stylesheet>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2900.3157" name=GENERATOR></HEAD>
<BODY>
<TABLE id=Table1 cellSpacing=0 cellPadding=0 width=760 align=center border=0>
<TBODY>
<TR>
<TD>
<SCRIPT src="电池管理及监控设计 - 商情资讯 - 华强电子世界网.files/top2006.js"></SCRIPT>
</TD></TR></TBODY></TABLE>
<TABLE id=Table2 cellSpacing=0 cellPadding=0 width=760 align=center border=0>
<TBODY>
<TR>
<TD>
<SCRIPT src="电池管理及监控设计 - 商情资讯 - 华强电子世界网.files/menu2006.js"></SCRIPT>
</TD></TR></TBODY></TABLE>
<TABLE id=Table23 cellSpacing=0 cellPadding=0 width=760 align=center border=0>
<TBODY>
<TR>
<TD>
<SCRIPT src="电池管理及监控设计 - 商情资讯 - 华强电子世界网.files/A_Service.htm"></SCRIPT>
</TD></TR></TBODY></TABLE>
<TABLE id=Table3 cellSpacing=0 cellPadding=0 width=760 align=center border=0>
<TBODY>
<TR>
<TD id=black height=26><IMG height=11
src="电池管理及监控设计 - 商情资讯 - 华强电子世界网.files/greenarrow.gif" width=12
align=absMiddle> 当前位置:<A href="http://www.hqew.com/">华强电子世界网</A> > <A
href="http://www.hqew.com/info/">商情资讯</A> > <A
href="http://www.hqew.com/info/more.asp?NTID=8">设计应用</A> >
正文</TD></TR></TBODY></TABLE>
<TABLE id=Table4 cellSpacing=0 cellPadding=0 width=760 align=center border=0>
<TBODY>
<TR>
<TD vAlign=top bgColor=#fff7e8>
<TABLE id=Table5 cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD bgColor=#ffc78e height=1><SPACER
type="block"></TD></TR></TBODY></TABLE>
<TABLE id=Table6 cellSpacing=0 cellPadding=8 width="96%" align=center
border=0>
<TBODY>
<TR>
<TD vAlign=top>
<DIV align=center><BR><SPAN class=w24>电池管理及监控设计</SPAN>
<HR noShade SIZE=1>
发布日期:<SPAN class=redtext>2007-8-9</SPAN></DIV></TD></TR>
<TR>
<TD class=newstext vAlign=top>
<P> 随着信息技术的飞速发展,移动终端设备如手机、PDA、掌上电脑等产品正越来越多地得到广泛使用。加上目前移动终端设备的处理器性能不断提高、无线应用程序不断增加、图形功能越来越先进。功能上的增加,导致了移动终端产品的功耗越来越大;因此,对电池的提出了更高的性能要求,尤其体现在电池的管理方面,其中包括电池的充电管理和电池的监控,这是嵌入式产品开发中必须考虑的问题。
<BR><BR> <B>1. 前言 </B></FONT>
<TABLE height=0 width=0 align=left></TR></TD><!--script src="/ad/include/advert.asp?location=INFO006"--><!--/script-->
<SCRIPT
src="E:\新建文件夹\BATT\电池管理及监控设计 - 商情资讯 - 华强电子世界网.files\A_Service(1).htm"></SCRIPT>
</TD></TR>
<TBODY></TBODY></TABLE>
<P> <B>2. 电池管理芯片介绍</B> </FONT></P>
<P> 2.1.电池充电管理芯片bq24032A </FONT></P>
<P> 电池管理芯片bq24032A支持USB充电和AC充电方式。通过bq24032A对电池进行充电。此芯片提供整个系统的电源输出。其中电池管理芯片bq24032A
的VBAT接于电池监控芯片bq26220的VBAT引脚。PSEL为电源选择端口,可以用于选择由那种输入电源作为主输入电源(USB或AC)。如果主输入电源不可用,系统将自动采用第二种输入电源进行输入,电池输入作为最后的选择,当USB或AC电源不存在时才选择使用电池作为供电源。PSEL被设置为低时,USB被选择为主输入[1]。下图1为电池管理芯片bq24032A及其外围电路图:
<BR>
<DIV align=center>
<TABLE width=10>
<TBODY>
<TR>
<TD align=middle><IMG src="" border=0></TD></TR>
<TR>
<TD align=middle></TD></TR></TBODY></TABLE></DIV><BR> 2.2.
电池监控芯片bq26220 </FONT>
<P></P>
<P> bq26220芯片是先进的电池设备监控模块,它可精确地测量充电和放电电流,并支持所有管理电池容量的必要功能,这个芯片可用于手持电话、PDA、和另外的便携式产品中。bq26220芯片和主控制器一起执行电池的管理功能,主控制器负责将bq26220的数据传送到终端用户电源管理系统中和接收相应的数据。这个模块提供64比特通用闪存,8比特的ID
ROM,和32比特的RAM存储空间。这些非易失的存储空间能够保存电池的监控信息或关键的电池参数。 </FONT></P>
<P> 其中,BAT为电池电压检测输入端口,这个引脚被用于检测和测量电池的电压值。HDQ为单线HDQ接口,是一个单线串行通信接口,它是双向输入的,负责将寄存器的信息传递给主控制器,并接收主控制器的信息到寄存器中,电池监控芯片bq26220
的HDQ端口接于PXA272处理器的GPIO119端口[2]。下图2为bq26220芯片原理模块图: </FONT></P>
<P>
<DIV align=center>
<TABLE width=10>
<TBODY>
<TR>
<TD align=middle><IMG src="" border=0></TD></TR>
<TR>
<TD align=middle></TD></TR></TBODY></TABLE></DIV><BR> <B>3.
电池驱动模型和驱动初始化过程 </B></FONT>
<P></P>
<P> Windows CE中包含的样本设备驱动程序分为两种类型:单片驱动程序(Monolithic device
driver)和分层驱动程序(Layered Device
driver)。采用分层开发模式可以降低开发难度,缩短开发周期,在电池驱动开发中使用分层驱动开发模式。 </FONT></P>
<P> 分层驱动程序由两个独立的层组成:上层是模型设备驱动程序(MDD),下层是依赖平台的驱动程序(PDD)。设备驱动程序服务器提供的接口(DDSI)是在PDD中实现的函数集,并由MDD调用。由于微软提供了所有与MDD模块相关的源代码,所以对这部分不用做任何改动,只需将自己的PDD模块与MDD模块链结成一个公用库即可[3]。MDD通过IoCTLS调用PDD中的特定函数来访问硬件的具体特性。
</FONT></P>
<P> Windows CE电池驱动要求的MDD函数包括: </FONT></P>
<P> Init、Deinit、Open、Close、Read、Write、Seek、PowerDown、PowerUp、IOControl。
</FONT></P>
<P> Windows CE电池驱动要求的PDD函数包括: </FONT></P>
<P> BatteryPDDInitialize、BatteryPDDDeinitialize、BatteryPDDGetStatus、BatteryPDDGetLevels、BatteryPDDSupportsChangeNotification、BatteryPDDPowerHandler、
BatteryPDDResume。 </FONT></P>
<P> 电池驱动初始化过程 </FONT></P>
<P> 在系统上电自检成功后,上层调用电池驱动入口函数,进行电池驱动初始化工作: </FONT></P>
<P> (1)判断是否已经进行中断事件初始化,如果没有初始化,则进行下面的操作,如果已经进行了一次初始化,则关闭事件句柄。
</FONT></P>
<P> (2)初始化电池全局变量。 </FONT></P>
<P> (3)如果中断事件成功,则调用ResumeThreadProc创建电池线程。在线程的主调函数中,设置电池线程的优先级,然后在循环中等待中断事件。
</FONT></P>
<P> (4)调用PDD层的初始化函数BatteryPDDInitialize;在PDD层中,为GPIO寄存器和电源管理寄存器开辟两段虚拟内存。
</FONT></P>
<P> (5)初始化AC97的寄存器。 </FONT></P>
<P> (6)初始化存放电池电量值的环形缓冲区。 </FONT></P>
<P> (7)调用BatteryAPIGetSystemPowerStatusEx2函数更新电池电量结构体PSYSTEM
POWERSTATUS_ EX2中的数据。 </FONT></P>
<P> <B>4. BatteryAPIGetSystemPowerStatusEx函数</B></FONT></P>
<P> BatteryAPIGetSystemPowerStatusEx函数主要获取系统电源状态值。在执行过程中是通过调用BatteryAPIGetSystemPowerStatusEx2函数来完成的。而BatteryAPIGetSystemPowerStatusEx2函数调用
BatteryPDDGetStatus函数以获取电池状态信息,BatteryPDDGetStatus函数通过调用GetMainBatteryVoltage获取主电池电压值,通过调用GetPowerDevStatus获取电池设备状态,并获取剩余电量的比例值。下图3为BatteryAPIGetSystemPowerStatusEx函数调用关系图:</FONT></P>
<P>
<DIV align=center>
<TABLE width=10>
<TBODY>
<TR>
<TD align=middle><IMG src="" border=0></TD></TR>
<TR>
<TD align=middle></TD></TR></TBODY></TABLE></DIV> <BR>
<DIV align=center>图3
BatteryAPIGetSystemPowerStatusEx函数调用关系图</DIV></FONT>
<P></P>
<P> <B>5. CalcMainBatteryVoltage获取电池电压值</B></FONT></P>
<P> bq26220通过BAT端口检测电池电源,并
且通过寄存器BATH-BATL传递给上层。这个BATH(地址=0x72——从第0比特到第2比特)和BATL低比特寄存器(地址=0x71——从第0比特到第7比特)包含电池电压经过ADC转换后的结果。这个电压以11比特、2.44mV为步长、并带有LSB的二进制形式表达出来。BATH寄存器的第3比特代表MSB,BATL的第0比特代表LSB。最大电压测量范围为5V。</FONT></P>
<P> BATH寄存器的第3比特到第7比特存储电压ADC后的偏移量信息,这个最重要的信息比特是在4比特(第3比特到第7比特)偏移数据后的标记比特。</FONT></P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -