显示移动终端电池剩余电量的方法及装置
技术领域
本发明涉及通信终端设备领域,尤其涉及一种对移动终端电池的剩余电量进行监测的方法及***。
背景技术
随着现代科技的发展,移动电话、PAD、笔记本等便携式的设备随处可见。便携式产品提供的功能也越来越多,随之而来的问题是电池的耗电量也越来越大。因此,能随时能了解移动终端的耗电量,以方便用户使用,是一个需要解决的问题。
传统的移动终端设备的电池剩余电量计算方法比较常见的是基于电池电压来估算电池的剩余电量。这种方法通过ADC来采样获取电池的电压,然后,再根据电池电压-电量映射表来预测电池的剩余电量。这类方法的缺陷是1)未考虑在移动终端运行期,由于运行环境的变化导致电池采样电压的瞬时突变,从而导致获取的电池电量的抖动。2)未考虑电池的内阻在充电、放电条件下对电池电压的影响因素。
因此,有必要提供对现有的计算电池剩余电量的方法进行改进。
发明内容
本发明的目的在于提供一种显示移动终端电池剩余电量的方法及装置,以使得移动终端在从待机状态被唤醒时,电量可立即更新到最新状态;在工作情况下,保证电量连续变化,改善用户体验。
为达到上述技术目的,本发明提供了一种显示移动终端电池剩余电量的方法,该方法包括如下步骤:
步骤S101:判断移动终端是否处于待机状态,如果处于待机状态,执行步骤S102;否则执行步骤S103;
步骤S102:获取电池被唤醒时电池的显示电压,执行步骤S104;
步骤S103:获取电池工作时电池的显示电压;
步骤S104:根据显示电压获取电池剩余电量。
优选的,步骤S101中,判断移动终端是否处于待机状态的方法为:
获取移动终端相邻两次计算电池剩余电量的时间差,如果该时间差大于预设的阈值,则认为移动终端处于待机状态。
优选的,步骤S102中,获取电池被唤醒时电池的显示电压v_show的方法为:
步骤S1021:获取电池的校准电压v_cal和上一次电池的电压v0_real;
步骤S1022:判断移动终端处于放电状态还是处于充电状态;
如果处于充电状态,执行步骤S1023,如果处于放电状态,执行步骤S1024;
步骤S1023:电池被唤醒时的显示电压v_show为电池的校准电压v_cal和上一次电池的电压v0_real中的大者;
步骤S1024:电池被唤醒时的显示电压v_show为电池的校准电压v_cal和上一次电池的电压v0_real中的小者。
优选的,获取电池的校准电压的方法为:
在充电状态下,电池校准电压v_cal为:
v_cal=v_read-i_chg*r_battery_resistor
在放电状态下,电池校准电压为:
v_cal=v_read+i_chg*r_battery_resistor;
其中,v_read为采样电压r_battery_resistor为电池内部电阻值,i_chg为流过电池的电流。
优选的,步骤S103中,获取工作时电池的显示电压的方法为:
步骤S1031:获取电池的校准电压v_cal;
步骤S1032:计算电池电压变化步长step;
步骤S1033:根据上述电池电压变化步长step和电池的校准电压v_cal计算电池当前的电压v1_real;
步骤S1034:根据上述电池当前的电压v1_real计算电池当前的显示电压v_show。
优选的,步骤S1031中,获取电池的校准电压v_cal的方法为:
在充电状态下,电池校准电压v_cal为:
v_cal=v_read-i_chg*r_battery_resistor
在放电状态下,电池校准电压为:
v_cal=v_read+i_chg*r_battery_resistor;
其中,v_read为采样电压r_battery_resistor为电池内部电阻值,i_chg为流过电池的电流。
优选的,步骤S1032中,计算电池电压变化步长step的方法为:
获取电池上一次的电压v0_real,并确定其对应的电池剩余电量在(p-1)%与p%之间,电池电压变化步长step为:(vp-1-vp)/(n+1),所述vp-1表示电池剩余电量为(p-1)%时的电压,所述vp表示电池剩余电量为p%时的电压,p为自然数,n为自然数,其大小取决于相邻两次计算电池剩余电量的频率。
优选的,步骤S1033中,计算电池当前电压v1_real的方法为:
比较电池校准电压v_cal与电池上一次的电压v0_real;
如果所述电池校准电压v_cal大于上一次的电压v0_real,则电池当前电压v1_real为v0_real+step;否则,电池当前电压v1_real电压为v0_real-step。
优选的,步骤S1034中,计算电池当前显示电压v_show的方法为:
如果电池上次显示电压v0_show大于电池当前电压v1_real,则电池当前v_show电压为v1_real+step;否则,电池当前显示电压v_show为v1_real-step。
本发明还提供了一种显示移动终端电池剩余电量的装置,该装置包括:
判断模块,用于判断移动终端是否处于待机状态;
第一获取显示电压模块:用于获取电池被唤醒时电池的显示电压;
第二获取显示电压模块:用于获取电池工作时电池的显示电压;
获取剩余电量模块:根据显示电压获取电池剩余电量。
优选的,判断模块还包括
计算模块,用于获取移动终端相邻两次计算电池剩余电量的时间差;如果该时间差大于预设的阈值,则认为移动终端处于待机状态。
优选的,第一获取显示电压模块包括:
第一接收模块,用于获取电池的校准电压v_cal和上一次电池的电压v0_real;
第一充放电判断模块:用于判断移动终端处于放电状态还是处于充电状态,
如果处于充电状态,电池被唤醒时的显示电压v_show为电池的校准电压v_cal和上一次电池的电压v0_real中的大者;
如果处于放电状态,电池被唤醒时的显示电压v_show为电池的校准电压v_cal和上一次电池的电压v0_real中的小者。
优选的,第一接收模块还用于:
在充电状态下,电池校准电压v_cal为:
v_cal=v_read-i_chg*r_battery_resistor
在放电状态下,电池校准电压为:
v_cal=v_read+i_chg*r_battery_resistor;
其中,v_read为采样电压r_battery_resistor为电池内部电阻值,i_chg为流过电池的电流。
优选的,第二获取显示电压模块包括:
第二接收模块,用于获取电池的校准电压v_cal;
第二计算步长模块:用于计算电池电压变化步长step;
第二计算当前电压模块:用于根据上述电池电压变化步长step和电池的校准电压v_cal计算电池当前的电压v1_real;
第二计算显示电压模块:用于根据上述电池当前的电压v1_real计算电池当前的显示电压v_show。
优选的,第二接收模块还用于:
在充电状态下,电池校准电压v_cal为:
v_cal=v_read-i_chg*r_battery_resistor
在放电状态下,电池校准电压为:
v_cal=v_read+i_chg*r_battery_resistor;
其中,v_read为采样电压r_battery_resistor为电池内部电阻值,i_chg为流过电池的电流。
优选的,第二计算步长模块还用于
获取电池上一次的电压v0_real,并确定其对应的电池剩余电量在(p-1)%与p%之间,电池电压变化步长step为:(vp-1-vp)/(n+1),所述vp-1表示电池剩余电量为(p-1)%时的电压,所述vp表示电池剩余电量为p%时的电压,p为自然数,n为自然数,其大小取决于相邻两次计算电池剩余电量的频率。
优选的,第二计算当前电压模块包括:
比较模块:用于比较电池校准电压v_cal与电池上一次的电压v0_real;
如果所述电池校准电压v_cal大于上一次的电压v0_real,则电池当前电压v1_real为v0_real+step;否则,电池当前电压v1_real电压为v0_real-step。
优选的,第二计算显示电压模块还用于:
如果电池上次显示电压v0_show大于电池当前电压v1_real,则电池当前v_show电压为v1_real+step;否则,电池当前显示电压v_show为v1_real-step。
本发明的有益效果在于:本发明首先根据电池是否从休眠状态下被唤醒分别计算电池的显示电压,保证在休眠状态被唤醒情况下,电量可立即更新到最状态;在未休眠情况下,保证电量连续变化,改善用户体验。其次,考虑到电池内阻对电池ADC采样电压的影响因素,根据动终端设备的充电状态,分别计算电池的电压,保证计算电压的准确度,提高移动终端设备续航时间。
附图说明
图1是本发明提供的方法的流程图;
图2是图1中步骤S102一个实施例的流程图;
图3是本发明提供的装置的结构框图;
图4是图3中第一获取显示电压模块的结构框图;
图5是图3中第二获取显示电压模块的结构框图。
具体实施方式
下面结合具体的实施例及附图对的技术方案进行详细的描述,以使其更加清楚。以下实施例仅为了描述本发明所列举的较为详细的实施例,并不作为对本发明的限定。
参见图1-2,本发明提供的显示移动终端电池剩余电量的方法,该方法包括如下步骤:
步骤S101:判断移动终端是否处于待机状态,如果处于待机状态,执行步骤S102;否则执行步骤S103。
其中,判断移动终端是否处于待机状态的方法为:
获取移动终端相邻两次计算电池剩余电量的时间差,如果该时间差大于预设的阈值,则认为移动终端处于待机状态。例如:如果所述时间差大于10分钟,则可认为本次是移动终端从待机状态下被唤醒后首次进行的电池剩余电量计算。
步骤S102:获取电池被唤醒时电池的显示电压,执行步骤S104。
其中,获取电池被唤醒时电池的显示电压v_show的方法为:
步骤S1021:获取电池的校准电压v_cal和上一次电池的电压v0_real;
步骤S1022:判断移动终端处于放电状态还是处于充电状态;
如果处于充电状态,执行步骤S1023,如果处于放电状态,执行步骤S1024。
步骤S1023:电池被唤醒时的显示电压v_show为校准电压v_cal和上一次电池的电压v0_real中的大者;即:v_show=max(v_cal,v0_real)。
步骤S1024:电池被唤醒时的显示电压v_show为校准电压v_cal和上一次电池的电压v0_real中的小者,即:v_show=min(v_cal,v0_real)。
通过读取获取移动终端设备的充电IC中充电状态存器值,可以获取移动终端设备的充放电状态。
由于电池内阻的存在,在充电状态下,电池充电,电池的采样电压中包含了电池内阻上的压降;在电池放电情况下,电池供电,电池内阻消耗了一部分电池电压。因此电池的采样电压与实际电池的开路电压之间存在较大误差,所以需要根据移动终端设备的充放电状态以及电池内阻对采样电压进行校准。
获取电池的校准电压的方法为:
在充电状态下,电池校准电压v_cal为:
v_cal=v_read-i_chg*r_battery_resistor
在放电状态下,电池校准电压为:
v_cal=v_read+i_chg*r_battery_resistor;
其中,v_read为采样电压,r_battery_resistor为电池内部电阻值,i_chg为流过电池的电流。
步骤S103:获取电池工作时电池的显示电压。
其中,获取工作时电池的显示电压的方法为:
步骤S1031:获取电池的校准电压v_cal;由于电池内阻的存在,在充电状态下,电池充电,电池的采样电压中包含了电池内阻上的压降;在电池放电情况下,电池供电,电池内阻消耗了一部分电池电压。因此电池的采样电压与实际电池的开路电压之间存在较大误差,所以需要根据移动终端设备的充放电状态以及电池内阻对采样电压进行校准。
其中,获取电池的校准电压v_cal的方法为:
在充电状态下,电池校准电压v_cal为:
v_cal=v_read-i_chg*r_battery_resistor
在放电状态下,电池校准电压为:
v_cal=v_read+i_chg*r_battery_resistor;
其中,v_read为采样电压,r_battery_resistor为电池内部电阻值,i_chg为流过电池的电流。
通过读取获取移动终端设备的充电IC中充电状态存器值,可以获取移动终端设备的充放电状态。
步骤S1032:计算电池电压变化步长step。
在工作的情况下,移动终端相邻两次的电池剩余电量应该呈现连续变化的趋势。但是由于移动终端设备运行环境的不同,比如:开启摄像头、播放视频文件等耗电量大的应用时,电池采样电压存在瞬时突变的特性,从而导致获取的电池校准电压也相应存在较大幅度的波动。这样会导致最终获取的电池剩余电量出现跳变现象。因此需要对上述电池的校准电压进行平滑处理,即通过步长step来对校准电压进行平滑处理。
其中,计算电池电压变化步长step的方法为:
获取电池上一次的电压v0_real,并确定其对应的电池剩余电量在(p-1)%与p%之间,电池电压变化步长step为:(vp-1-vp)/(n+1),所述vp-1表示电池剩余电量为(p-1)%时的电压,所述vp表示电池剩余电量为p%时的电压,p为自然数,n为自然数,其大小取决于相邻两次计算电池剩余电量的频率。如果频率高,则n可以选择大些值。一般而言,保持电池变化的步长在几个毫伏之内。
步骤S1033:根据上述电池电压变化步长step和电池的校准电压v_cal计算电池当前的电压v1_real。
其中,计算电池当前电压v1_real的方法为:
比较电池校准电压v_cal与电池上一次的电压v0_real;
如果所述电池校准电压v_cal大于上一次的电压v0_real,则电池当前电压v1_real为v0_real+step;否则,电池当前电压v1_real电压为v0_real-step。
步骤S1034:根据上述电池当前的电压v1_real计算电池当前的显示电压v_show。
步骤S1034中,计算电池当前显示电压v_show的方法为:
如果电池上次显示电压v0_show大于电池当前电压v1_real,则电池当前v_show电压为v1_real+step;否则,电池当前显示电压v_show为v1_real-step。
步骤S104:根据显示电压获取电池剩余电量。
其中,可以通过查询电压-电量映射表,根据显示电压获得电池的剩余电量。
参见图3-5,本发明还提供了一种显示移动终端电池剩余电量的装置,该装置包括:
判断模块101,用于判断移动终端是否处于待机状态。
判断模块101还包括计算模块,用于获取移动终端相邻两次计算电池剩余电量的时间差;如果该时间差大于预设的阈值,则认为移动终端处于待机状态。
第一获取显示电压模块102,用于获取电池被唤醒时电池的显示电压。
第一获取显示电压模块102包括:
第一接收模块1021,用于获取电池的校准电压v_cal和上一次电池的电压v0_real;
第一充放电判断模块1022:用于判断移动终端处于放电状态还是处于充电状态,
如果处于充电状态,电池被唤醒时的显示电压v_show为电池的校准电压v_cal和上一次电池的电压v0_real中的大者,即v_show=max(v_cal,v0_real);
如果处于放电状态,电池被唤醒时的显示电压v_show为电池的校准电压v_cal和上一次电池的电压v0_real中的小者,即v_show=min(v_cal,v0_real)。
第一接收模块还用于:
在充电状态下,计算电池校准电压v_cal:
v_cal=v_read-i_chg*r_battery_resistor
在放电状态下,计算电池校准电压:
v_cal=v_read+i_chg*r_battery_res istor;
其中,v_read为采样电压r_battery_resistor为电池内部电阻值,i_chg为流过电池的电流。
第二获取显示电压模块103,用于获取电池工作时电池的显示电压。
第二获取显示电压模块103包括:
第二接收模块1031,用于获取电池的校准电压v_cal;
第二计算步长模块1032,用于计算电池电压变化步长step;
第二计算当前电压模块1033,用于根据上述电池电压变化步长step和电池的校准电压v_cal计算电池当前的电压v1_real;
第二计算显示电压模块1034:用于根据上述电池当前的电压v1_real计算电池当前的显示电压v_show。
第二接收模块1031还用于:
在充电状态下,计算电池校准电压v_cal为:
v_cal=v_read-i_chg*r_battery_resistor
在放电状态下,计算电池校准电压为:
v_cal=v_read+i_chg*r_battery_resistor;
其中,v_read为采样电压,r_battery_resistor为电池内部电阻值,i_chg为流过电池的电流。
第二计算步长模块1032还用于
获取电池上一次的电压v0_real,并确定其对应的电池剩余电量在(p-1)%与p%之间,电池电压变化步长step为:(vp-1-vp)/(n+1),所述vp-1表示电池剩余电量为(p-1)%时的电压,所述vp表示电池剩余电量为p%时的电压,p为自然数,n为自然数,其大小取决于相邻两次计算电池剩余电量的频率。
第二计算当前电压模块1023包括:
比较模块:用于比较电池校准电压v_cal与电池上一次的电压v0_real;
如果所述电池校准电压v_cal大于上一次的电压v0_real,则电池当前电压v1_real为v0_real+step;否则,电池当前电压v1_real电压为v0_real-step。
第二计算显示电压模块1034还用于:
如果电池上次显示电压v0_show大于电池当前电压v1_real,则电池当前v_show电压为v1_real+step;否则,电池当前显示电压v_show为v1_real-step。
获取剩余电量模块104,根据显示电压获取电池剩余电量。
可以通过查询电压-电量映射表,根据显示电压获得电池的剩余电量。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。