Android设备功耗测量

作者: ben3726 | 来源:发表于2018-08-23 18:21 被阅读52次

    原文:https://source.android.com/devices/tech/power/device

    您可以为测定含有电池电量计的Android设备的设备功耗,例如Summit SMB347或Maxim MAX17050(大多数Nexus设备上提供)。当外部测量设备不可用或不方便连接到设备时(例如移动使用中),可使用系统内仪表。

    测量可以包括瞬时电流,剩余电量,测试开始和结束时的电池容量,以及更多取决于设备支持的属性(见下文)。为获得最佳效果,请使用具有相同电量计和相同电流检测电阻的相同设备类型在长时间运行A / B测试期间执行设备功耗测量。确保每个设备的启动电池电量相同,以避免电池放电曲线中不同点的电量计行为不同。

    即使在相同的测试环境下,也不能保证测量的绝对精度很高。然而,在测试运行期间,特定的电量计和检测电阻器的大部分误差都是一致的,因此在相同设备之间进行比较是有用的。我们建议在不同配置中运行多个测试,以确定配置之间的显著差异和相对功耗。

    读功耗

    要读取功耗数据,请在测试代码中插入对API的调用。

    import android.os.BatteryManager;
    import android.content.Context;
    BatteryManager mBatteryManager =
    (BatteryManager)Context.getSystemService(Context.BATTERY_SERVICE);
    Long energy =
    mBatteryManager.getLongProperty(BatteryManager.BATTERY_PROPERTY_ENERGY_COUNTER);
    Slog.i(TAG, "Remaining energy = " + energy + "nWh");
    

    可用的属性

    Android支持以下电池电量计属性:

    BATTERY_PROPERTY_CHARGE_COUNTER    剩余电池容量,单位为微安时
    BATTERY_PROPERTY_CURRENT_NOW       瞬时电池电流,单位为微安
    BATTERY_PROPERTY_CURRENT_AVERAGE   平均电池电流,单位为微安
    BATTERY_PROPERTY_CAPACITY          剩余电池容量,显示为整数百分比
    BATTERY_PROPERTY_ENERGY_COUNTER    剩余能量,单位为纳瓦时
    

    大多数属性都是从类似名称的内核power_supply子系统属性中读取的。然而,特定设备的确切属性、属性值分辨率和更新频率取决于:

    • 电量计硬件,如Summit SMB347或Maxim MAX17050。
    • 电量计到系统的连接,如外部电流检测电阻的值。
    • 电量计芯片软件配置,如为内核驱动程序中的平均电流计算间隔选择的值。

    详情请参阅Nexus设备的可用属性。

    Maxim电量计

    在长时间测定电池充电状态时,Maxim电量计(MAX17050,BC15)校正库仑计数器偏移测量值。对于在短时间内进行的测量(例如功耗计量测试),电量计不进行校正,使得当电流测量值太小时,偏移是主要误差源(尽管没有时间可以完全消除偏移误差)。

    对于典型的10mOhm检测电阻设计,偏移电流应优于1.5mA,这意味着任何测量值均为+/- 1.5mA(PCBoard布局同样也会影响这种变化)。例如,在测量大电流(200mA)时,您可以预期以下情况:

    • 2mA(由于电量计增益误差导致,增益误差为200mA的1%)
      • 2mA(由于检测电阻误差导致,增益误差为200mA的1%)
      • 1.5mA(电量计的电流检测偏移误差)

    总误差为5.5mA(2.75%)。将其与中等电流(50mA)进行比较,其中相同的误差百分比给出总误差为7%或小电流(15mA),其中+/- 1.5mA给出总误差为10%。

    为获得最佳效果,我们建议测量大于20mA。增益测量误差是系统性且可重复的,使您能够在多种模式下测试器件并获得干净的相对测量(1.5mA偏移除外)。

    对于+/- 100uA相对测量,所需的测量时间取决于:

    • ADC采样噪声。MAX17050采用通常的工厂配置,可产生+/- 1.5mA的样品间噪声,每个样品的输出电流为175.8ms。对于1分钟的测试窗口,您可以预期+/- 100uA的范围,对于6分钟的测试窗口,可以预期小于100uA的干净3-sigma噪声(或33uA时的1-sigma噪声)。
    • 由于负载变化导致样本混叠。变化夸大了错误,因此对于具有加载固有变化的样本,请考虑使用更长的测试窗口。

    支持的Nexus设备

    Nexus 5
    模型 Nexus 5
    电量计 Maxim MAX17048 电量计 (ModelGauge™,无库仑计)
    属性 BATTERY_PROPERTY_CAPACITY
    测量 电量计不支持除电池充电状态以外的任何测量值,分辨率为%/ 256(完整电池容量的1/256)。
    Nexus 6
    模型 Nexus 6
    电量计 Maxim MAX17050 电量计 (具有Maxim ModelGauge™ 调节的库仑计)和10mohm电流检测电阻。
    属性 BATTERY_PROPERTY_CAPACITY, BATTERY_PROPERTY_CURRENT_NOW, BATTERY_PROPERTY_CURRENT_AVERAGE, BATTERY_PROPERTY_CHARGE_COUNTER, BATTERY_PROPERTY_ENERGY_COUNTER
    测量 CURRENT_NOW 分辨率为156.25uA, 更新周期为175.8ms。 CURRENT_AVERAGE 分辨率为 156.25uA, 更新周期可配置0.7s - 6.4h, 默认11.25 秒。 CHARGE_COUNTER(累计电流,非扩展精度)分辨率为500uAh(原始库仑计读数,未通过燃料表进行库仑计数器偏移调整,加上来自ModelGauge m3算法的输入,包括空补偿)。 CHARGE_COUNTER_EXT (内核中的扩展精度)分辨率为8nAh. ENERGY_COUNTER在标称电压3.7V时为 CHARGE_COUNTER_EXT。
    Nexus 9
    模型 Nexus 9
    电量计 Maxim MAX17050电量计(具有Maxim ModelGauge™调节功能的库仑计)和10mohm电流检测电阻。
    属性 BATTERY_PROPERTY_CAPACITY, BATTERY_PROPERTY_CURRENT_NOW, BATTERY_PROPERTY_CURRENT_AVERAGE, BATTERY_PROPERTY_CHARGE_COUNTER, BATTERY_PROPERTY_ENERGY_COUNTER
    测量 CURRENT_NOW分辨率156.25uA,更新周期为175.8ms。CURRENT_AVERAGE分辨率156.25uA,更新周期可配置0.7s - 6.4h,默认11.25秒。CHARGE_COUNTER(累积电流,非扩展精度)分辨率为500uAh。CHARGE_COUNTER_EXT(内核中的扩展精度)分辨率为8nAh。ENERGY_COUNTER在标称电压3.7V时为CHARGE_COUNTER_EXT。累计当前更新期175.8ms。ADC以175ms量化采样,采样周期为4ms。可以调整占空比。
    Nexus 10
    模型 Nexus 10
    电量计 Dallas Semiconductor DS2784电量计(库仑计),带有10mohm电流检测电阻。
    属性 BATTERY_PROPERTY_CAPACITY, BATTERY_PROPERTY_CURRENT_NOW, BATTERY_PROPERTY_CURRENT_AVERAGE, BATTERY_PROPERTY_CHARGE_COUNTER, BATTERY_PROPERTY_ENERGY_COUNTER
    测量 电流测量(瞬时和平均)分辨率为156.3uA。CURRENT_NOW瞬时当前更新周期为3.5秒。CURRENT_AVERAGE更新周期为28秒(不可配置)。CHARGE_COUNTER(累积电流,非扩展精度)分辨率为625uAh。CHARGE_COUNTER_EXT(内核扩展精度)分辨率为144nAh。ENERGY_COUNTER在标称电压3.7V时为CHARGE_COUNTER_EXT。所有更新周期为3.5秒。

    相关文章

      网友评论

        本文标题:Android设备功耗测量

        本文链接:https://www.haomeiwen.com/subject/jeumiftx.html