一种移动终端电池信息的数据处理方法及系统的制作方法

文档序号:5961208阅读:187来源:国知局
专利名称:一种移动终端电池信息的数据处理方法及系统的制作方法
技术领域
本发明涉及数据处理技术领域,尤其涉及一种移动终端电池信息的数据处理方法及系统。
背景技术
稳定可靠的电池信息采样值为移动终端基本功能的实现提供了可靠的保障,也有利于提升用户体验。电池信息采样一般包括电池电压的采集或者电池温度的采集,然而这两种电池信息的采集都会受到一些影响。例如在电池电压的采集过程中,电池电压容易受到电流的影响,电池电压随着电流的波动而波动,使得电池电压采样结果不稳定,导致依赖于电池信息计算得到的电量信息来回波动而出现异常关机和停止充电的情况发生;同时电池电压的不稳定也影响了低电报警与关机功能的实现。在电池温度的采集过程中,用于采集电池温度的电池温度传感器(NTC)的参考电压容易受到干扰,使得温度采集出现错误值,·导致异常关机和停止充电等等情况的发生。因此,现有技术还有待于改进和发展。

发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种移动终端电池信息的数据处理方法及系统,旨在解决现有移动终端电池信息采样值不稳定、不可靠的问题。本发明的技术方案如下
一种移动终端电池信息的数据处理方法,其中,包括步骤
A、移动终端开机,通过模数转换器采集移动终端的电池信息获得电池信息的采样值,并以所述采样值作为开机的返回结果;
B、开机完成后,设置一包含若干数量的电池信息的滤波窗口,并以先进先出方式更新滤波窗口中的电池信息,以滤波窗口内的电池信息的平均值或中间值作为开机完成后的返回结果。所述移动终端电池信息的数据处理方法,其中,所述电池信息为电池电压。所述移动终端电池信息的数据处理方法,其中,所述步骤A具体包括
Al、移动终端开机,通过模数转换器获取移动终端电池电压的采样值;
A2、判断所述采样值的数量是否达到预设的数量;
A3、当所述采样值的数量达到预设的数量时,以该预设数量的采样值中的最大值作为开机的返回结果;当所述采样值未达到预设的数量时,以所采集的采样值中的最大值作为开机的返回结果。所述所述移动终端电池信息的数据处理方法,其中,所述步骤Al具体包括
AU、判断所述移动终端是否处于开机阶段,当是时,获取移动终端电池电压的采样值,
否则执行步骤A12 ;
A12、判断所述移动终端是否从飞行睡眠模式中退出,当是时,执行步骤A13,否则转入步骤B ;
A13、通过模数转换器采集移动终端当前的电池电压,并以当前的采样值初始化电池电压作为飞行睡眠模式的返回结果。所述移动终端电池信息的数据处理方法,其中,所述步骤B具体包括 BI、设置一索引变量,所述索引变量与最先进入滤波窗口的电池电压的采样值相对
应;
B2、当新的采样值进入到滤波窗口时,判断所述索引变量是否达到预定阀值,当是时,将所述索引变量重置为0,并转入步骤B3,否则直接执行步骤B3 ;
B3、将索引变量自动加1,并以新的采样值替换掉滤波窗口中索引变量对应的采样值;B4、对所述滤波窗口中的采样值进行平均值处理,将获得的平均值作为开机完成后的返回结果。所述移动终端电池信息的数据处理方法,其中,所述方法还包括
当所述移动终端的电池被拔出后,以O作为电池拔出的返回结果。所述移动终端电池信息的数据处理方法,其中,所述电池信息为电池温度。所述移动终端电池信息的数据处理方法,其中,所述步骤A具体包括
A01、判断移动终端是否处于开机阶段;
A02、当所述移动终端处于开机阶段时,通过模数转换器获取移动终端电池温度当前的采样值,并以当前采样值作为开机的返回结果;否则转入步骤B。所述移动终端电池信息的数据处理方法,其中,所述步骤B具体包括
B01、设置一索引变量,所述索引变量与最先进入滤波窗口的电池电压的采样值相对
应;
B02、当新的采样值进入到滤波窗口时,判断所述索引变量是否达到预定阀值,当是时,将所述索引变量重置为0,并转入步骤B03,否则直接执行步骤B03 ;
B03、将索引变量自动加I,并以新的采样值替换掉滤波窗口中索引变量对应的采样
值;
B04、对所述滤波窗口中的采样值进行排序,并以排序后的中间值作为开机完成后的返回结果。一种移动终端电池信息的数据处理系统,其中,包括
初始化模块,用于移动终端开机,通过模数转换器采集移动终端的电池信息获得电池信息的采样值,并以所述采样值作为开机的返回结果;
平均及中值处理模块,用于开机完成后,设置一包含若干数量的电池信息的滤波窗口,并以先进先出方式更新滤波窗口中的电池信息,以滤波窗口内的电池信息的平均值或中间值作为开机完成后的返回结果。有益效果本发明通过对采集的电池信息进行滤波处理,并以先进先出原则更新滤波窗口中的电池信息,最后将滤波窗口内的电池信息的平均值或中间值作为返回结果,从而获得了稳定可靠的电池信息,本发明算法效率高,可移植性好,不影响其他模块的工作,提升了用户的体验。


图I为本发明移动终端电池信息的数据处理方法较佳实施例的流程图。图2为图I所示方法中电池信息为电池电压时开机阶段的处理流程图。图3为图2所示方法中飞行睡眠模式的处理流程图。图4为图I所示方法中电池信息为电池电压时滑动平均滤波处理流程图。图5为图I所示方法中电池信息为电池温度时开机阶段的处理流程图。图6为图I所示方法中电池信息为电池温度时中值滤波处理流程图。图7为本发明移动终端电池信息的数据处理系统较佳实施例的结构框图。
具体实施方式
本发明提供一种移动终端电池信息的数据处理方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。请参阅图1,图I为本发明移动终端电池信息的数据处理方法较佳实施例的流程图,如图所示,其包括步骤
5101、移动终端开机,通过模数转换器采集移动终端的电池信息获得电池信息的采样值,并以所述采样值作为开机的返回结果;
5102、开机完成后,设置一包含若干数量的电池信息的滤波窗口,并以先进先出方式更新滤波窗口中的电池信息,以滤波窗口内的电池信息的平均值或中间值作为开机完成后的返回结果。开机完成后,也需要通过模数转换器采集移动终端的电池信息获得电池信息的采样值,然后通过采样值以先进先出方式更新滤波窗口中的电池信息,即更新滤波窗口的buffer (数据缓冲器,将送来的数据暂时存放,供其他模块取走使用),最后以平均值或中间值作为开机完成后的返回结果。进一步地,所述电池信息为电池电压或电池温度,通过获取上述任一种电池信息作为返回结果,本发明中的返回结果由移动终端的其他模块实时提取使用,进行后续的计算及转换,最后得出电池电量信息,实现移动终端的各种功能。本发明中的电池电压或电池温度通过模数转换器采样获取,模数转换器是指将模拟信号转变成数字信号的电子元件,为了提高采样值的可靠性和稳定性,本发明针对电池电压和电池温度两种电池信息都进行了滤波处理,以滤波窗口内的电池信息的平均值或中间值作为返回结果,而不是直接将采样值作为返回结果,提高了数据的准确性。同时,本发明还针对电池电压和电池温度的不同特点,进行了不同的处理,以提高采样值的可靠性。针对电池电压采样过程,本发明对开机阶段的采样值进行了最大值处理,如图2所示,其包括步骤
S201、移动终端开机,通过模数转换器获取移动终端电池电压的采样值;在移动终端开机阶段,如果直接将某个相对不太准确的采样值作为返回结果,那么其需要经过一个滤波窗口的时间,才能完全返回相对准确的采样值,所以,在开机阶段需要一个准确的采样值来初始化返回结果,否则误差将会影响一整个滤波窗口的时间。在移动终端开机阶段,由于启动过程中,电池电压会因为电流过大而被拉低,所以需要将相对较大的采样值作为返回结果,具体实施方法是以某个预设的数量的采样值中最大的采样值作为返回结果,例如20个,这样获得的返回结果也较准确。S202、判断所述采样值的数量是否达到预设的数量;此步骤判断采样值的数量是否达到预设的数量,针对不同的情况,进行不同的处理。S203、当所述采样值的数量达到预设的数量时,以该预设数量的采样值中的最大值作为开机的返回结果,即以该预设数量的采样值中的最大值初始化buffer,并将该最大值作为开机的返回结果;
S204、当所述采样值未达到预设的数量时,以所采集的采样值中的最大值作为开机的返回结果,即所有已经采集的采样值中的最大值初始化buffer,并将该最大值作为开机的返回结果。例如,在获取20个采样值后,就以这20个采样值中的最大值作为返回结果,而如果未达到20个,例如采样值为8个,那么就以这8个采样值中的最大值作为返回结果。在模数转换器进行采样时,还需要判断移动终端是否处于开机阶段,当是时就进行上述的步骤,否则就需要判断移动终端是否从飞行睡眠模式中退出,如图3所示,包括步 骤
5301、判断所述移动终端是否处于开机阶段;
5302、当所述移动终端不是处于开机阶段时,判断所述移动终端是否从飞行睡眠模式中退出;
5303、当所述移动终端是处于开机阶段时,就按照正常的开机过程进行处理,即获取移动终端电池电压的采样值;
5304、当所述移动终端是从飞行睡眠模式中退出时,通过模数转换器采集移动终端当前的电池电压,并以当前的采样值初始化电池电压作为飞行睡眠模式的返回结果;
5305、当所述移动终端未从飞行睡眠模式中退出时,转入步骤S102。当移动终端处于飞行睡眠模式中,为了省电,模数转换器的采样会中止,在采样中止期间,返回给其他模块使用的是历史值,如果不更新返回结果,则误差会影响一整个滤波窗口的时间长度,所以在飞行睡眠模式后或在任何导致模数转换器采样中止的情况发生时,都需要重新更新返回结果,本发明以模数转换器当前的采样值初始化buffer,并将当前的采样值作为返回结果,以便快速更新电池信息。为了对电池电压的采样值进行平均值处理,需要以FIFO (先进先出)方式来更新滤波窗口中的采样值,然后滤波窗口中的平均值作为返回结果,此过程称为滑动平均滤波,如图4所示,所述步骤S102具体包括
5401、设置一索引变量,所述索引变量与最先进入滤波窗口的电池电压的采样值相对
应;
5402、当新的采样值进入到滤波窗口时,判断所述索引变量是否达到预定阀值,当是时,将所述索引变量重置为0,并转入步骤S403,否则直接执行步骤S403 ;
5403、将索引变量自动加1,并以新的采样值替换掉滤波窗口中索引变量对应的采样
值;
5404、对所述滤波窗口中的采样值进行平均值处理,将获得的平均值作为开机完成后的返回结果。通过上述的滑动平均滤波处理,可以减轻模数转换器采样的波动,并输出稳定的结构,这种算法对于高频波动干扰具有良好的抑制作用,非常适用于电池电压这类缓变信号的处理,获取平稳的滤波效果,提升用户的体验。在移动终端的使用过程中,模数转换器采样过程中,还检测电池是否被拔出,当电池被拔出后,以O作为电池拔出的返回结果。当所述移动终端的电池被拔出后,以O作为返回结果。电池电压的采样值滤波处理过程的算法实现,如下所示
A、数据定义
#define BUFFER_SIEZE_VOLT (50)//平滑窗口长度 static uint32 voltage_smooth [BUFFER_SIEZE_VOLT] ; //buffer 定义static uintl6 voltage_smooth_index;//buffer 队尾标记,用于数
据更新
B、开机阶段20个采样值的最大值初始化buffer for (i = O; i < BUFFER_SIEZE_VOLT; i++)
Voltage_smooth [i] = vbatt_max;// 以最大值 vbatt_
max初始化buffer
C、飞行睡眠模式重新初始化buffer
If ( sleepandairplane_flag == I )//飞行睡眠模式下
for (i = O; i < BUFFER_SIEZE_VOLT; i++)
voItage_smooth[i] = volt_mv;//以当前采样值初
始化buffer
D、拔出电池后直接返回O
if ( TRUE == battery_remove ) {// 拔除电池直接返回 O
voltage_rt = O;
}
E、正常情况下FIFO原则更新buffer并计算平均值
Voltage_sum -= voltage_smooth [voltage_smooth_index] ; //FIFO 原贝更新 buffer
voltage_sum += voIt_mv;
voltage_smooth[voltage_smooth_index] = voIt_mv;
voltage_rt = voltage_sum/BUFFER_SIEZE_VOLT;//计算
平均值
voltage_smooth_index++;
voltage_smooth_index=voltage_smooth_index%BUFFER_SIEZE_VOLT;
针对电池温度采样过程,本发明同样在开机阶段进行了处理,具体如图5所示,具体包

5501、判断移动终端是否处于开机阶段;
5502、当所述移动终端处于开机阶段时,通过模数转换器获取移动终端电池温度当前的采样值,并以当前采样值作为开机的返回结果;否则转入步骤S102,即步骤S503。如果是处于开机阶段,由于电池温度采样值不存在与电池电压采样值相同的问题,将当前采样值即第一次采样值初始化buffer,并将该当前采样值作为返回结果较为准确,如果不是开机阶段,可进行正常的步骤S102过程。在移动终端正常使用情况下,也是以FIFO原则来更新滤波窗口中的采样值,但是最后输出的返回结果并不是平均值,而是中间值,此过程称为中值滤波,如图6所示,其具体包括步骤
5601、设置一索引变量,所述索引变量与最先进入滤波窗口的电池电压的采样值相对
应;
5602、当新的采样值进入到滤波窗口时,判断所述索引变量是否达到预定阀值,当是时,将所述索引变量重置为0,并转入步骤S603,否则直接执行步骤S603 ;
5603、将索引变量自动加I,并以新的采样值替换掉滤波窗口中索引变量对应的采样
值;
5604、对所述滤波窗口中的采样值进行排序,并以排序后的中间值作为开机完成后的返回结果。本发明中,中值滤波考虑到了电池温度采用受到参考电压的影响的因素,有效去除异常值,输出中间值,解决了温度误报问题。在采样过程中,如果电池被拔出,将直接返回-34的结果,以极限低温重新初始化返回结果。 电池温度的采样值滤波处理过程的算法实现,如下所示
A、数据定义
#define BUFFER_SIEZE_TEMP 5//定义中值滤波窗口长度
static int buff [BUFFER_SIEZE_TEMP] ; //定义 buffer static int buff_tmp [BUFFER_SIEZE_TEMP] ; //buffer 备份,用于排序 static int buff_index=0;//对尾位置,用于 buffer 更新
B、初始化buffer
If(Iflag) {//buffer 开机
初始化
for(i=0; i<BUFFER_SIEZE_TEMP; i++) buff[i] = data_tmp; flag = I;
}
C、排序并获取中间值
for (k=0; k<((BUFFER_SIEZE_TEMP+l)/2) ; k++) {//排序
for(q=k; q<BUFFER_SIEZE_TEMP; q++){
if (buff_tmp[q] < buff_tmp[k]){tmp = buff_tmp[q];buff_tmp[q] = buff_tmp[k];buff_tmp[k] = tmp;
}
}
}temp_rt = buff_tmp [ ((BUFFER_SIEZE_TEMP-1) /2) ] ;// 挑选中间值
D、拔出电池后直接返回-34
if ( TRUE == battery_remove ) {// 电池拔除
temp_rt = (-34);
}
基于上述方法,本发明还提供一种移动终端电池信息的数据处理系统,如图7所示,包

初始化模块100,用于移动终端开机,通过模数转换器采集移动终端的电池信息获得电池信息的采样值,并以所述采样值作为开机的返回结果;·
平均及中值处理模块200,用于开机完成后,设置一包含若干数量的电池信息的滤波窗口,并以先进先出方式更新滤波窗口中的电池信息,以滤波窗口内的电池信息的平均值或中间值作为返回结果。关于各模块的功能作用在前面已有详述,不再赘述。本发明针对电池电压采样和电池温度采样中出现的问题的不同,采样不同的方法来对采样值进行处理,例如对于电池电压采样过程中,电池电压容易受到电流影响而波动,所以电池电压的采样值容易在某个值附近上下波动,所以本发明将滤波窗口中的采样值进行平均滤波处理,获得一个稳定的平均值,消除高频的干扰;对于电池温度采样过程中,由于参考电压不稳,容易出现异常的错误值,比如采集到了温度数列[25,25,24,24,80],其中的80明显是错误值,进行中值滤波后,得到中间值25,那么25即可作为返回结果,从而去除了 80这样的错误值,保证了返回结果的准确性。此外,本发明还对具体应用时可能遇到的各种场景进行了改进,例如在移动终端处于开机时、在移动终端处于飞行睡眠模式时、在移动终端电池被拔出时等这样的特殊场景,对采样值进行了针对性的处理,使最终返回的结果更加准确。本发明中的数据处理方法,是针对采样数据进行处理,所以对于移动终端中的其他处理模块不产生影响,即使后期出现模数转换器采样的问题,也只需对采样数据进行处理,而不用对整个系统都进行改变,所以增强了容错性,方便了数据的修正处理。综上所述,本发明通过对采集的电池信息进行滤波处理,并以先进先出原则更新滤波窗口中的电池信息,最后将滤波窗口内的电池信息的平均值或中间值作为返回结果,从而获得了稳定可靠的电池信息,本发明算法效率高,可移植性好,不影响其他模块的工作,提升了用户的体验。应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
权利要求
1.一种移动终端电池信息的数据处理方法,其特征在于,包括步骤 A、移动终端开机,通过模数转换器采集移动终端的电池信息获得电池信息的采样值,并以所述采样值作为开机的返回结果; B、开机完成后,设置一包含若干数量的电池信息的滤波窗口,并以先进先出方式更新滤波窗口中的电池信息,以滤波窗口内的电池信息的平均值或中间值作为开机完成后的返回结果。
2.根据权利要求I所述移动终端电池信息的数据处理方法,其特征在于,所述电池信息为电池电压。
3.根据权利要求2所述移动终端电池信息的数据处理方法,其特征在于,所述步骤A具体包括 Al、移动终端开机,通过模数转换器获取移动终端电池电压的采样值; A2、判断所述采样值的数量是否达到预设的数量; A3、当所述采样值的数量达到预设的数量时,以该预设数量的采样值中的最大值作为开机的返回结果;当所述采样值未达到预设的数量时,以所采集的采样值中的最大值作为开机的返回结果。
4.根据权利要求3所述所述移动终端电池信息的数据处理方法,其特征在于,所述步骤Al具体包括 All、判断所述移动终端是否处于开机阶段,当是时,获取移动终端电池电压的采样值,否则执行步骤A12; A12、判断所述移动终端是否从飞行睡眠模式中退出,当是时,执行步骤A13,否则转入步骤B ; A13、通过模数转换器采集移动终端当前的电池电压,并以当前的采样值初始化电池电压作为飞行睡眠模式的返回结果。
5.根据权利要求2所述移动终端电池信息的数据处理方法,其特征在于,所述步骤B具体包括 BI、设置一索引变量,所述索引变量与最先进入滤波窗口的电池电压的采样值相对应; B2、当新的采样值进入到滤波窗口时,判断所述索引变量是否达到预定阀值,当是时,将所述索引变量重置为O,并转入步骤B3,否则直接执行步骤B3 ; B3、将索引变量自动加1,并以新的采样值替换掉滤波窗口中索引变量对应的采样值; B4、对所述滤波窗口中的采样值进行平均值处理,将获得的平均值作为开机完成后的返回结果。
6.根据权利要求2所述移动终端电池信息的数据处理方法,其特征在于,所述方法还包括 当所述移动终端的电池被拔出后,以O作为电池拔出的返回结果。
7.根据权利要求I所述移动终端电池信息的数据处理方法,其特征在于,所述电池信息为电池温度。
8.根据权利要求7所述移动终端电池信息的数据处理方法,其特征在于,所述步骤A具体包括A01、判断移动终端是否处于开机阶段; A02、当所述移动终端处于开机阶段时,通过模数转换器获取移动终端电池温度当前的采样值,并以当前采样值作为开机的返回结果;否则转入步骤B。
9.根据权利要求7所述移动终端电池信息的数据处理方法,其特征在于,所述步骤B具体包括 B01、设置一索引变量,所述索引变量与最先进入滤波窗口的电池电压的采样值相对应; B02、当新的采样值进入到滤波窗口时,判断所述索引变量是否达到预定阀值,当是时,将所述索引变量重置为0,并转入步骤B03,否则直接执行步骤B03 ; B03、将索引变量自动加I,并以新的采样值替换掉滤波窗口中索引变量对应的采样值; B04、对所述滤波窗口中的采样值进行排序,并以排序后的中间值作为开机完成后的返回结果。
10.一种移动终端电池信息的数据处理系统,其特征在于,包括 初始化模块,用于移动终端开机,通过模数转换器采集移动终端的电池信息获得电池信息的采样值,并以所述采样值作为开机的返回结果; 平均及中值处理模块,用于开机完成后,设置一包含若干数量的电池信息的滤波窗口,并以先进先出方式更新滤波窗口中的电池信息,以滤波窗口内的电池信息的平均值或中间值作为开机完成后的返回结果。
全文摘要
本发明公开一种移动终端电池信息的数据处理方法及系统,其中,所述方法包括步骤移动终端开机,通过模数转换器采集移动终端的电池信息获得电池信息的采样值,并以所述采样值作为开机的返回结果;开机完成后,设置一包含若干数量的电池信息的滤波窗口,并以先进先出方式更新滤波窗口中的电池信息,以滤波窗口内的电池信息的平均值或中间值作为开机完成后的返回结果。本发明通过对采集的电池信息进行滤波处理,并以先进先出原则更新滤波窗口中的电池信息,最后将滤波窗口内的电池信息的平均值或中间值作为返回结果,从而获得了稳定可靠的电池信息,本发明算法效率高,可移植性好,不影响其他模块的工作,提升了用户的体验。
文档编号G01R31/36GK102944843SQ20121043025
公开日2013年2月27日 申请日期2012年11月1日 优先权日2012年11月1日
发明者李元 申请人:惠州Tcl移动通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1