2010-08-29 10:51:37|  分类: 方案资料|举报|字号 订阅

一、前言

使用便携式电子产品,希望能够随时知道电池的所剩电量,所能持续的工作时间,并且据此调节相关应用,这无疑将是一个非常方便的事情,尤其适合使用智能手机的商务人士。电池电量检测技术在笔记本电脑中已经屡见不鲜,多数笔记本电脑都有电源管理的选项,提供不同的电源工作模式以及电池报警功能。但是在更加小型化的便携产品市场,这一技术却还不多见。

便携式产品提供的功能越来越纷繁,用户日益需要准确地监测电池电量,以便灵活管理可用电源,明确显示剩余工作时间,尽可能延长系统运行的时间。现在大多数手机采用的电量测量方法还比较简单,缺乏精确度。目前主流的检测方法是简单测量电池电压,估算相对应的电池剩余电量。总电量除以4或5,也就是通常能在手机屏幕上看见的4格或者5格的电量Bar,所以每格的精确度即是25%或者20%,这样的精度显然无法满足高精度要求的应用。

这种电压估测电量的方法通常如下:一块电池在放电的时候,电池的电压会随着电池电量的流失逐渐地下降。这样就可以得到一个比较简单而有效的对应关系,就是电压对应容量。通过电池正常使用(比如100mA放电)的放电曲线,对时间进行4等分,以充电限制电压为4.2V的锂电池为例,可以列出这样一个对应关系,4.20V—100%,3.85V—75%,3.75V—50%,3.60V—25%,3.40V—5%(因为手机不可能完全用光电池的电量,一般低于3.40V 时就可能自动关机了)。很显然,这种精度最高只有25%。另外,电池电压会随着RFPA的功率发射发生突变,通常会变小0.2V-0.3V。如果一味的使用电压模拟电量方法,就会误差更大。为了解决电池电压突然变小的测量问题,当前工程师们的普遍方法是利用软件算法进行均值滤波,对一段时间内的电池电压进行均值化,如果该时间段的平均电池电压确实下降了,则预估电量确实变少了,否则即认为电量并未变化。

电池电压模拟剩余电量的方法确实存在着缺陷,而通过库仑计实时监测电池消耗电量而计算剩余电量的方法则非常准确。Fairchild的FAN4010是这种应用的典型器件。它是一颗电流检测传感器,专门用于检测便携式设备电池的充电/耗电电流,能将通过精密检测电阻的电流信号转换为ADC可以检测到的电压信号,从而计算一段时间内消耗的真实电量。

二、硬件电路的典型设计

为了满足高精度的电池电量监测需求,FAN4010外加合适的应用电路并加上特定的软件控制算法,就能够很好的达到要求。如图1是FAN4010的典型应用框图。外围只需要两个电阻Rsense、Rout即构成高精度的放大电路。如图2是内部结构原理示意图,所以存在Vsense = I_load * Rsense, Vout = 0.01 * Vsense * Rout,由此两关系式可以等到I_load=100*Vout/(Rout*Rsense),所以只要用ADC监测Vout上的电压,再除以已知的电阻值Rout和Rsense,就可以得到准确的负载消耗电流,而电流对时间进行积分,,即可以达到所消耗的电量准确值。用总电量减去准确的电量消耗值,即可得到准确的剩余电量。充电电路,则同理。

图1 FAN4010的应用框图

图2 FAN4010的内部结构原理示意图

FAN4010的典型应用图以及Rsense、Rout的选值要求如下。其中图3为电池的充电电路,图4为电池的放电电路。

图3 充电部分的参考原理图

图4 放电部分的参考原理图

Rsense(R_sense1/R_sense2)

这两个电阻串联在充电和放电的路径上。因此,我们需要一个低阻值的电流采样电阻。矛盾的是,如果Rsense太低,精度都将丢失。若Rsense选择的过大,则此电阻上的压降和功耗都很大。因此,Rsense的选择应该是理想的高精确度和所能允许电压损失的综合平衡。虽然FAN4010在Vsense值较低时采样电阻上的功耗最小,但是一个更大的Rsense值能提供更多的准确性。然而较大的Rsense会产生一个比较大的电压降,减少了可提供给负载的有效电压,这在低电压尤其电池供电的应用中会很有麻烦。正因为如此,设计中要很好地了解预期的最大允许负载电流和负载供电电压。为了获得最大化的精度,建议Rsense的选择应符合以下条件:10mV<200MV P>

Rout(R_out1/R_out2)

接到GND上的Rout这个电阻,是用来产生一个可供ADC检测到的电压信号。它的选择主要取决于两个参数:I_out(即I_load*Rsense/100)以及ADC的电压采样范围。最大的I_load产生的最大Vout不能超过ADC的最大采样电压。为了保证精度最大化,同时又希望最大的Vout能尽量接近ADC的最大采样量程。

另外,为了保证FAN4010的最大线性化,Rout的选择应满足关系式:
其中Vin为输入电压,Iout_fs的值则是表1中的对应值,在不同的最大Vsense时,其值不一样。例如,若最大的Vsense为500mV时,则Iout_fs=5mA。

Table.1 Iout_FS的选值表


Layout设计图例如图5,走线的基本原则是:FAN4010尽量靠近充电/放电路径。

图5 layout实例

三、典型的软件设计

电量计算的算法如图6,相关说明如下:

假设前提:现有两块电池,A (总容量1000mAh左右,不确定),B(总容量1500mAh左右,不确定),此2电池均可能使用在手机P上。

插入电池(开机)→→是否电池校准(默认否)→→否→→调用电池容量曲线a(默认)(若使用电池B,则修改为使用电池容量曲线b)→→通过电池端电池Vcc以及监测耗电量联合评估剩余电量百分比。
→→是→→若要校准,请保证该电池已经充满电→→选择校准曲线,a 还是 b? →→记录最高端电池Vcc-h,默认此时电池电量百分比100%→→按每一可计算时间段,分别监测耗电量,以及电池端电压→→一直使用到电池没电,自动关机,记录此状态电压Vcc-l以及默认此时电池百分比0%,计算总的电量损耗Q,此Q即为以后容量曲线的total Q。

图6 软件流程图

简便的电池电量测试设计方法相关推荐

  1. 软件测试之---测试设计方法

    二.测试设计方法(黑盒测试设计方法:白盒测试设计方法) 1.等价类划分法 1.1等价类划分法概念 将输入(输出)域划分成若干个子集合,从划分的子集合中选取代表数据,如果选取的数据测试没有问题,就认为未 ...

  2. 手机发烫是为何—— App 电量测试定位方法

    为什么要做电量测试 随着移动互联网的快速发展,手机的实用性.娱乐性越来越强.日常使用中发现,安装了应用后,即使不怎么使用,电量也会消耗很快.但如果恢复出场设置充满电后,手机可以待机很长时间.真相只有一 ...

  3. 【腾讯TMQ】手机发烫是为何 --App电量测试定位方法

    为什么要做电量测试 随着移动互联网的快速发展,手机的实用性.娱乐性越来越强.日常使用中发现,安装了应用后,即使不怎么使用,电量也会消耗很快.但如果恢复出场设置充满电后,手机可以待机很长时间.真相只有一 ...

  4. iphone发热测试软件,手机发烫像火炉——教你App电量测试定位方法

    为什么要做电量测试? 在移动互联网快速发展的今天,手机自身的实用性和娱乐性正在不断加强,手机已经成为了人们的必备生活品,但是在实际使用中发现,在安装相关应用之后,即便不怎么使用,手机的电量也会消耗很快 ...

  5. 【测试】用例测试设计方法

    目录 1. 测试用例的基本要素 1.1 测试用例 :单位用户注册成功 1.2 测试用例对比 2. 测试用例的好处 3. 用例设计方法 3.1 基于需求的设计 3.2 案例 3.3 具体的设计方法 3. ...

  6. 服务器电池维修,服务器电池电量低判断方法

    服务器电池电量低的判断方法 [root@VM5000 ~]# /opt/H3Cmonitoren -sc1240 -all Item_name      Current   Up_cri    Up_ ...

  7. jtag调试 c语言,研究基于IEEE1149.7标准的CJTAG测试设计方法

    摘要:在深入研究IEEE 1149.7标准的基础上,针对测试问题设计了CJTAG测试控制器,实现了T0,T1,T3和T4层级的主要功能.对该控制器的各个功能进行了仿真验证.结果表明该控制器产生的测试信 ...

  8. 常用测试设计方法--其他

    其他测试设计技术 EC 等价类覆盖 BV 边界值覆盖   CRUD覆盖 数据周期测试   CheckList   EG 错误猜测 基于经验的测试设计 ET 探索测试 测试人员在测试执行过程中设计测试用 ...

  9. 软件质量模型 测试设计方法,质量模型-可靠性测试

    质量模型-可靠性测试 目录 2009-10-14 磁针石:xurongzhong#gmail.com 在指定条件下使用时,软件产品维持规定的性能级别的能力. 注1 :软件不会损耗或老化.可靠性的种种局 ...

最新文章

  1. 美式期权定价python_【优质好课】Python量化期权实战应用
  2. spark1.1.0学习路线
  3. linux中创建本地yum库,轻松安装Linux软件
  4. 良好的编码习惯 —— 5 个提高代码质量的技巧
  5. GDCM:gdcm::Printer的测试程序
  6. python怎么设置代码执行时间_Python 2.x如何设置命令执行的超时时间实例
  7. http --- 路由器缓存与常见的状态码
  8. decimal转换为int_“System.InvalidCastException 指定的转换无效”问题的反思和总结
  9. ads s参数拟合_数据分析--拟合
  10. P1251 餐巾计划问题 费用流
  11. 数学与泛型编程(7)置换算法
  12. (Spline)三次样条求解
  13. 万兴科技开启公司史上最大规模秋招,拟在长沙组建千人团队
  14. Java 1L和1的区别
  15. LaTex 数学之矩阵
  16. 程序员新手上路第一步
  17. fedora17下nvidia双显卡闭源驱动的安装
  18. LED圆柱屏、波浪屏、飘带屏等异形屏是由柔性软模组构成的创意LED显示屏
  19. Android开源项目汇总20150712更新
  20. FreeMarker 指南(二) -【纯属整理】

热门文章

  1. 【Kotlin基础系列】第7章 类与对象(1)--- 类
  2. 【经典论文精读】浅谈神经网络的万能近似定理
  3. 高中信息第四节计算机的软件,高中信息技术基础《计算机的软件》教案设计.doc...
  4. chatgpt赋能python:Python行太长如何处理?
  5. SDL农场游戏开发 4.Crop类,作物的产生及成长
  6. SEO工作中,怎么交换友链?
  7. 微信小程序 java网上宠物用品商城系统springboot
  8. 基于C语言的各进制转换计算器程序设计
  9. PPT:自动分拣及拣选系统
  10. 运营商大数据,三网融合大数据,联通大数据,移动大数据