摘 要:本文首先介绍了手持设备中基于电池电压和库仑计的电池剩余电量预测方式,然后对Maxim新推出的单芯片锂电池电量计DS2780的硬件结构和工作原理进行了分析。 关键词:手持设备;电池;电量
引言 对于手持设备而言,电池的电量指示变得越来越重要。今天的消费者已不再满足于手持设备仅能提供简单的三段式电量指示,他们需要更精确地知道他们的手机、数码相机、DV或PDA等还能够正常工作多长时间,以决定是否需要充电或携带备用电池。对于开发者而言,如果无法精确指示电池剩余电量,将不得不在对体积非常敏感的手持设备中采用比实际需求更大的电池,或缩短设备运行时间,这无疑会对产品的竞争力产生负面影响。 本文首先给出了手持设备中两种常用的电池电量预测方式,然后详细介绍了Maxim公司新推出的能够根据当前温度、电池电压、放电速率及电池老化状态等参数自动计算锂电池剩余电量的单片电量计DS2780,电量预测算法可在DS2780内完成,不占用主机任何资源,也不需主机进行干预。 基于电压和库仑计的电量预测 有多种方式能够实现电池剩余电量的指示或预测,在手持设备中通常采用两种方式:基于电压的电池电量预测,以及基于库仑计的电池电量预测。不同方式所能实现的精度会有很大差异。 基于电压的电池电量预测 这种方式通过检测电池电压来预测电池的剩余电量。对于手持设备常用的NiMH电池或锂电池而言,由于电池电压与剩余电量之间的关系与电池的工作温度和放电速率密切相关,因此该方法只能实现粗略预测。图1为一块标称容量为1250mAh的Li+电池在不同工作温度下,分别以0.1C和0.7C速率放电时,剩余电量(假定Li+电池电压下降到2.5V时为完全放电)与电池电压的关系曲线。从图1中可以看出,相同的锂电池电压对应的剩余电量在极端情况下可能会相差数倍,即使在非极端的情况下利用电压预测电量的误差也会很大。NiMH电池的情况也与之类似。 部分手持设备在监视电池电压的同时检测温度,然后采用二维查表方式预测电池剩余电量,这样虽然比仅监视电压有所改善,但在整个温度范围内仍会有20~40%的误差。 基于库仑计的电池电量预测 这种方式通过统计流入、流出电池的电荷,以库仑计的形式计算电池电量。多数库仑计电路都使用一个阻值非常低的串联电阻作为检流电阻,通过检测检流电阻上的压降反推电流,再通过电流对时间的积分来计算电量变化。可采用A/D和V-F两种方式检测串联检流电阻压降,分别如图2所示。 虽然基于库仑计的电池电量预测与基于电压的电池电量预测相比精度已有很大提高,但在更高精度的应用中,设计人员还需要结合当前电池的工作温度、放电速率、老化等因素对电量进行修正。 智能电量计DS2780 Maxim公司提供一系列精确的智能电池电量计芯片,通常在一块芯片内集成了库仑计、温度传感、电池电压检测、时钟和非易失存储器,能够对电池电量进行精确计算。新推出的DS2780不仅集成了各种相关硬件,同时还将锂电池剩余电量预测算法集成在芯片内,实时计算锂电池在快速和慢速两种放电速率下可继续释放的电量。整个计算过程无需主机参与,极大减轻了主机负担,降低了开发者软件编程的难度。此外,DS2780与主机之间的通信通过1-Wire接口实现,最大限度地减少了电池的连线。 硬件结构 DS2780内置16位电流检测ADC,11位电池电压及温度检测ADC,以及精确稳定的内部时钟,和用以存储电池特征数据和性能参数的E2PROM,其硬件结构如图3所示。 电流检测ADC采样外置检流电阻两端压降,并将采样结果对时间积分以实现库仑计功能,得到的以mVh表示的电池当前电量用以更新电量寄存器(ACR)。为了减小累积失调误差对电量计算精度的影响,每采样1024次(约1小时)电流检测ADC自动进行一次失调校准。DS2780可设置电流检测ADC的增益,并可对检流电阻的温度系数进行补偿,从而允许使用低精度、低成本的外置检流电阻。 DS2780工作原理 锂电池采用CC-CV方式充满时的容量由充电时的温度决定,完全放电时的剩余容量(即不能继续释放的容量)由放电速率和温度共同决定。典型锂电池在某一温度下充电,然后在不同温度下以不同速率放电所能释放的电量如图4所示。 DS2780在内部采用分段线性模型模拟图4所示曲线,其E2PROM中存储了电池0℃、+10℃、+20℃、+30℃和+40℃充电、快速放电、慢速放电的容量参数,所有容量参数均被归一化为相对电池在+40℃充满时容量的比值,模型利用这些参数进行线性插值。 每隔3.5秒,DS2780根据当前温度和电量寄存器(ACR)的值进行一次计算,并将计算结果存放在相应的结果寄存器中。其中,16位的快速和慢速放电剩余绝对电量寄存器(RAAC和RSAC)分别存放当前温度下电池快速和慢速放电时可以继续释放的电量绝对值,单位为mAh;8位的快速和慢速放电剩余相对电量寄存器(RARC和RSRC)分别存放对应条件下可以继续释放的电量相对值,以百分比表示。计算过程分别为: RAAC [mAh]= (ACR[mVh]-AE(T) ×FULL40℃[mVh])×RSNSP [mW] RSAC[mAh]=(ACR[mVh]-SE(T)×FULL40℃ [mVh])×RSNSP [mW] RARC[%]=100%×(ACR[mVh]-AE(T)×FULL40℃ [mVh]) /{(AS×FULL(T)-AE(T))×FULL40[mVh]} RSRC [%] = 100%×(ACR[mVh] - SE(T) × FULL40℃ [mVh]) /{(AS × FULL(T) - SE(T)) × FULL40℃ [mVh]} 上式中的ACR为以mVh表示的电量寄存器值;RSNSP为以mW表示的检流电阻值,该值存放在E2PROM中,由用户根据实际使用的检流电阻值设置;FULL40℃为电池在40℃充满时容量的绝对值,该值也存放在E2PROM中;FULL(T)、AE(T)和SE(T)分别为当前温度下电池充满时的容量,以及快速和慢速放电满足终止条件时,剩余容量相对电池在40℃充满时容量的比值,由DS2780根据当前温度,利用存储在E2PROM中几个给定温度下的相应值进行实时插值计算;AS为电池老化系数。 由于电池在老化过程中容量会逐步降低,因此DS2780利用老化系数(AS)补偿电池老化的影响。老化系数为当前电池充满时的容量值与出厂前电池充满时容量值的比值,随着电池老化,老化系数逐步降低。DS2780累计总放电量并将其折合成完整放电次数,每32次完整放电后,对老化系数进行一次修正,修正值相当于每100次完整放电,电池容量下降2.4%。由于电池存在个体差异,这种统一的修正不能适合所有电池,因此DS2780还设计有自学习功能,当其监视到电池的一次完整充电过程(从空到满)时,会自动利用该次充电流入电池的电量修正电池老化系数,以消除统一的电池老化系数修正带来的误差。 另外,电量寄存器(ACR)的误差也会随时间和电池的充放电次数累积,从而影响电池电量计算,DS2780通过监测电池充放电状态和温度,利用预设电池容量参数和老化系数自动对其进行修正。 |