西西河

主题:【原创】大纵深的移动位置业务 -- 邓侃

共:💬70 🌺97
全看分页树展 · 主题 跟帖
家园 试着回答。

1. 手机各个功能运行时的耗电量是怎么测算出来的?

譬如,“AT+CFUN=1 WCDMA 117 GSM 113”

117和113是mA还是mW,是电流还是电功率?

如果只是电流,那么这些数据不能完全表示耗电量。我的理解是否正确?

严格的说,我引用的是“3G基带芯片(应为模块)的”数据。此数据来源于3G基带模块的硬件手册,并非手机整体的耗电量。数据开头已标明“Average(mA)”,所以是电流不是功率。但还是可以表示耗电量的。如果你检查你的手机电池,容量几乎都是以mAh标明的。原因是几乎所有的手机电池供电范围很窄,一般是3.7/3.8V,允许波动范围是3.4-4.2V.功率需要计算,电压几乎固定,而电流可以直接测量。所以一般都是直接用电流表示耗电量。

2. 这些数据是怎么测出来的?

是用的Agilent的测量仪器么?

单独测量某个模块(3G基带)的耗电量比较困难,一般都是在大板(开发板)时测。此时容易焊测点。到了小板(目标板),大部分的测点都被覆盖了。很难测。不过,我觉得你关心的是整机的耗电量。这就容易多了。比较贵的方法是用Agilent的直流电源,很多都有GPIB(IEEE-488)接口,直流电源接到电池供电的pin上,可以编程GPIB通过串口记录。便宜的用穷人的办法:USB Power Monitor。

点看全图

外链图片需谨慎,可能会被源头改

PC软件直接记录和分析电流值。

3. 有没有办法测量运行某一段程序所耗用的电功率?

譬如,我写了一段HelloWorld在手机里跑,有没有办法测量,跑完这段程序所耗费的电功率?

有。但不是绝对值。方法是:

1.测baseline

1.1 把所有自动省电的设置都关掉。如果不需要在线,把基带置于飞行模式或关掉。应该尽可能关掉所有的程序

1.2 测n个时间段的电流均值,同时记录峰值

2.测你的程序

2.1 保持1.1的状态不变

2.2 运行你的程序

2.3 测n个时间段的电流均值,同时记录峰值

2.3 和1.2 的差值就可以假定是你的程序的耗电量。

需要的话,你可以在程序中加几个固定时间段的睡眠来同步,使测量数据更容易解读。(真正的数据要把睡眠去掉。)

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河