开源测试工具 [腾讯 TMQ] 腾讯电量仪——智能硬件测试工具尝试之路

匿名 · August 16, 2016 · Last by bs111 replied at October 14, 2019 · 1799 hits

作者:袁建发

随着移动互联网的快速发展,智能手机对电量的消耗也变得越来越大,续航短板一直是用户吐槽的焦点,不管是 iOS 还是 android,每天为手机充电成为一个惯例,甚至一天充电好几次;而许多手机厂商也承认电池成了制约手机发展的主要障碍之一。手机的其他模块越来越小,而电池的体积越来越大,已经成为了一个事实,只能通过增加电池的容量来满足功能的需求,移动电源的出现,虽然在一定程度上缓解了续航不足的问题,但并不是一个最好的解决方案。下图为用户对智能手机缺陷的投票结果(统计数据来源于网易手机频道),通过投票结果我们可以看出,电池续航不给力成为用户关注手机缺陷的首要问题。

图 1- 智能手机用户缺陷统计

目前针对智能手机电量测试的方法一般有两种,一种是基于软件的模拟电量测试,可以模拟测试各个 APP 的电量消耗的数据,另外一种是基于硬件仪器的电量测试,可以实时记录手机电池放电电流来计算手机当前的电量消耗的数据。这两种测试方法,有各自优缺点。

图 2- 电量测试方法对比

  • 从软件的角度出发,我们可以根据移动设备操作系统(例如 Android 操作系统提供了 API 可以获取手机在一定时间内消耗的百分比电量,或者提供各个硬件设备使用的时间,根据硬件设备单位时间电量消耗值,就可以计算出总的电量消耗情况)提供的 API,得出电量消耗情况。Q = Q1×T1 +Q2×T2+ Q3×T3+...+ Qn×Tn 其中 Q 为总电量,Q1 为某个设备(例如 CPU)的单位时间电量消耗值,T1 为该设备在一段时间内使用的时间,那么 Q1*T1 就表示在这段时间内消耗的电量值,把所有设备电量求和就可以计算出总电量值。

  • 从硬件的角度出发,根据上节讲到的电量是在电流通电一段时间内产生,故我们只需要统计一段时间内电池放电的平均电流值即可得出电量消耗,平均电流值越大,电量消耗越大;那么我们如果能测量出移动设备通电的电流值,然后计算出电流平均值就可以得出移动设备电量消耗的大小了。

上面 2 种方案,硬件方案测试的是整个硬件设备的电流值,而软件方案则是通过硬件的单个元器件(例如屏幕、GPS、WIFI、CPU 等)平均功耗,系统记录每个元器件使用的时间,就可以得出每个元器件的在一段时间内的电量消耗(这种方案会因硬件设备元器件型号不同、设备老化的影响而存在较大误差),软件测试比较适合需要精确到具体应用级别的耗电,且需要横向和竞品对比耗电,或者纵向前后版本之间的对比耗电。

从以上两种测试方法中我们可以看出,软件测试方法操作比较简单,但是测试的数据是通过模拟计算得出,数据有很大的偏差性,实际过程中可信度不高,项目组接受程度低。硬件测试法依赖硬件仪器,且硬件仪器采购价格偏高(2w—5w 之间)且仪器的很多功能浪费了,属于典型的大材小用。做过一轮分析比较之后,我们希望的硬件仪器是能满足测试基本的电流和电压数据、且精度满足要求即可,不需要额外的其他冗余功能。于是就去电子市场以及某宝上面找相关的仪器,通过实际测试验证,基本没有符合要求的电流仪器;价格在 1000 左右的电流仪可自定义编程来获取电流数据,但普遍的精度达不到要求,最高精度在 1 秒 1 次的采集精度,对于手机来说,这个精度明显达不到要求,通过对手机实际应用的需求,我们得出电流仪的最低的采集间隔不得大于 50ms,精度越高越接近真实的电流场景数据。通过不停的深入了解相关的电流仪硬件仪器知识,和电子市场相关人员的了解,制作精度满足要求、价格便宜、体积较小的电量仪器已经水到渠成了——这就是腾讯电量仪。

图 3- 普通电流仪

腾讯电量仪为腾讯 TMQ(Tencent Mobile Quality Center,即腾讯移动品质中心)旗下的一款专为智能设备(特别是智能手机)电量功耗测试提供的一套硬件测试仪器。主要针对 android 系统手机进行功耗测试,通过外接电路替代手机电池供电来探测手机实时放电的电流,计算出手机电量消耗的速度。

图 4—腾讯电量仪和手机的实物部分解线图

腾讯电量仪有 5 个接线柱,接线柱接线图如下图所示:

图 5—腾讯电量仪接线图

接线顺序如下:

1)1 号接口通过绿色导线接入被测对象,例如手机的正负极(其中红色接正极、黑色接负极);

2)2 号接口接 USB 电源接口(公对公 USB 线),给被测对象提供电源;

3)3 号接口为信号指示灯,电量仪正常工作指示灯会常亮;

4)4 号接口接计算机 COM 串口,提供数据读取通道;

5)5 号接口接计算机 USB 接口(宽口 USB 线),提供电量仪工作电压;

6)6 号接口为自动化测试接口 USB 线(正常 USB 线),如果不做自动化测试,该接口不接线。

注:2 号接口虽然是通过 USB 电源接口实现,但也可以通过外接可调稳压电源来实现可变的电源电压,例如手表、车载机盒等非手机智能设备。
腾讯电量仪相比传统电量仪的特点,就是体积小、制造成本低、测试精度适中且完全支持自动化测试。其中 6 号接线口通过内置芯片命令来屏蔽电信号到达连接被测对象获取数据且不影响手机充放电状态。

那么对于这样的一款硬件产品,该如何去实现呢?首先,腾讯电量仪是一款硬件测试仪器,对于一般的硬件产品,我们总结的开发流程大概如下:

图 6- 硬件开发基本流程

市场调研:

1、已有产品调研:对现有市场上的电量仪产品进行对比,优缺点有哪些;

2、成本调研:初步调研要做的电量仪产品成本预估,这个很重要;

3、差异化调研:腾讯电量仪和市场上面的电量仪的差异化在哪里,方便后面市场宣传;

产品需求:

1、基本需求:制定电量仪基本功能需求;

2、差异化需求:突出电量仪相比其他电量仪差异化的需求;

合作伙伴:

1、需求确认:和合作厂家要充分沟通需求,防止需求沟通不充分导致后续硬件重复迭代的情况;

2、迭代计划:在需求确认后制定相应的迭代计划;

测试验收:

1、功能测试:测试成型的芯片手板功能是否满足需求描述;

2、性能测试:测试稳定性、数据准确性等;

上面大概讲了下硬件开发的基本流程,下面我们接着介绍腾讯电量仪的逻辑工作原理,原理图如下图所示:

图 7- 电量仪逻辑图

电量仪逻辑功能主要包括 2 部分,一部分是测量电流和电压,另外一部分提供动态 USB 切换功能。

1、测量电压:通过参考电压利用 AD 转换器将模拟信号转换成数字电压信号,通过串行通讯接口和 PC 交换数据;

2、测试电流:通过内置小电阻(微欧级)利用 AD 转换器将模拟信号转换成数字电压信号,然后计算出通过该小电阻的电流数据,通过串行通讯接口和 PC 交换数据;

3、USB 切换:通过 PC 串行通讯接口交换数据来控制 USB 切换状态(控制 USB 电信号;USB 有 4 根信号线,其中 2 根是数据信号线,另外 2 根是电信号线)。

电量仪主要用到的元器件模块图如下图所示:

图 8- 电量仪物理器件模块图

各个元器件的参考成本如下图所示:

图 9- 器件参考价格表

腾讯电量仪和 PC 交互主要通过 COM 串口通讯来完成数据交互。目前定义了 3 种命令字来交互数据:
1、connect:USB 连接电信号命令字,命令字值为 0x32;PC 端发送 0x32 命令字给电量仪,电量仪连接上 USB 的电信号。

2、disconnect:USB 断开连接电信号命令字,命令字值为 0x33;PC 端发送 0x33 命令字给电量仪,电量仪断开 USB 电信号连接,这样到达了既可以读取手机上面的数据,同时断开了给手机进行充电目的,即完全支持自动化测试的目的。

3、getdata:获取电流、电压数据命令字,命令字值为 0x52;PC 端发送 0x52 命令字给电量仪,电量仪返回当前实时的 8 字节电流和电压数据,前 4 字节为无符号浮点数,表示电压,后 4 字节为无符号浮点数,表示电流。其中电压单位为 V,电流单位为 mA。数据精确取舍根据实际场景来决定,一般 0.1mA 和 0.01V 基本满足要求,如果有特别要求,可自行对数据进行处理。

芯片对电流和电压数据的转换处理都是在毫秒级,如果要求更高的处理数据精度,那么需要采用更好的芯片才能达到要求。下图通过 COM 串口通讯采用普通的处理芯片采集的数据,采集间隔是 100ms,最小采集间隔大约在 20ms 左右。

图 10- 电量仪采集电压和电流实时曲线图

上面这部分主要介绍了腾讯电量仪芯片相关的知识,另外一部分就是外壳模具了。外壳模具制作有 2 种方案:一种是找工厂设计并生产,这种方案费用较高,光开模费用就好几万,对于我们这种试水的产品而言,价格无法接受。另外一种方案就是选用市面上已经设计好的模具,选择大小相当的模具,然后我们自己调整芯片大小来匹配模具大小,然后根据需求进行开孔,这样成本较低,但会增加部分电量仪的体积,但总体在可接受范围内。我们最终选择的是第 2 种实现方案,外壳模型的材质类型目前市面上有 2 种,塑料和铝合金,塑料价格略便宜点,我们目前采用的是铝合金,符合现在主流智能硬件外壳模型。外壳成型模具一个大约成本在 60 元左右(量少的价格,量多价格会更低),其中模具费用在 25 元左右,开孔、磨砂、激光刻字等费用大约在 35 元左右。

当外壳模具完成后基本上一个产品就算完成了,后面就是外包装以及产品的宣传了,我这里就不再额外讲解了。下面就是一些我们在电量仪过程常见的一些注意事项:
1、腾讯电量仪测试方法和精密电流仪测试方法基本一样,接线以及采集数据处理都一样;不同点就是精简了设备,去掉了不必要的功能,采用稍便宜的芯片满足了手机功能测试要求。

2、硬件开发过程中切记频繁的变更需求,腾讯电量仪就是一个鲜明的例子,迭代了 3 次。每返一次工,周期要延长 1~2 个月。

3、连接手机的导线质量最好选用纯铜导线且长度不宜过长,因手机对电压的变化较敏感,而较长且质量差的导线,电阻较大,会进行分压导致手机本身电压不足而不稳定。

4、目前最新版本的电量仪不需要额外的电源来供电,通过简化的 USB 接口标准 5V 作为手机的电源,这样大大简化了测试复杂度,但相应的可能会对部分手机稳定性变差,如果对手机稳定性要求比较高的,可以自行接入可调稳压电源即可。

5、电量仪采集频率可以根据实际需要来调整,但采集间隔最好不要大于 100ms,太大的采集间隔会导致数据偏离真实值。

本章完~~

本文连接:http://tmq.qq.com/2016/08/smart-hardware-testing-tools-road-to-try/


TMQ(腾讯移动品质中心)是腾讯最早专注在移动 APP 测试的团队
我们专注于移动测试技术精华,饱含腾讯多款亿级 APP 的品质秘密,文章皆独家原创,我们不谈虚的,只谈干货!

扫码关注我们

扫一扫 关注 TMQ
精彩分享不断
共收到 3 条回复 时间 点赞

😂 我是没时间写和发..这个在中兴当年文档就比这个深 n 倍。。。

粗略算了下,成本才 100?

codeskyblue [Topic was deleted] 中提及了此贴 09 Dec 16:17

话说,楼主 怎么买呀
有官方的淘宝连接吗

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up