如何验收安卓PCBA主板的质量和性能
.
版本:v0.1
作者:河东西望
日期:2022-7-15
.
对很多安卓智能设备厂商来说,他们的通用开发模式一般是:ODM/OEM设计开发主板PCBA(包括BSP驱动、原生AOSP系统及简单定制),自己做简单的系统二次定制及应用开发。而开发实力和水平较强的公司,则会做整体系统ROM定制和优化、应用SDK平台化等深度开发。
不管怎么开发,只要主板是PCBA厂商提供的,都面临一个问题,就是如何验收ODM厂商的PCBA主板质量,包括设计质量和生产质量。硬件和结构的质量,各行业都有相关国家标准体系,例如电子行业的3C标准,医疗行业的NMPA标准等等。本文档并不讨论这些硬件和结构质量标准及测试方法。
这里讨论的是PCBA主板的软件系统相关的质量验收测试方法,例如,安卓系统的稳定性,元器件(CPU/MEM/Disk/USB/WIFI/LAN/Battery等)的软件性能,甚至也不关注质量标准。本文基于工程项目实践经验,提供一些快速可靠的测试工具和方法。
1 有哪些情况需要验收?
首先,我们要搞清楚在哪些情况下我们需要验收?验收的内容是什么?
我们还是有必要先了解一下PCBA主板的生命周期。一般情况下,硬件设备开发生产的标准流程:
设计阶段 | O ─> EVT
开发阶段 | └──> DVT
试产阶段 | └──> PVT
量产阶段 | └──> PRD
EVT,Engineering Verification Test
DVT,Design Verification Test
PVT,Product Verification Test
PRD,Production,生产阶段。
在这四个阶段,理论上来说,每块PCBA主板都需要进行验收测试,但是综合考虑项目时间进度、人力设备资源、验收测试周期等因素,每个阶段主板验收的重点不一样:
| 硬件阶段 | 测试版本 | 测试项目 | 测试说明 |
|---|---|---|---|
| EVT | 原生系统版本 | 工程测试、性能测试、压力测试、功耗测试 | 硬件和系统基本摸底测试 |
| DVT | 开发稳定版本 | 压力测试、功耗测试 | 整机性能和功耗测试,检验运行应用质量 |
| PVT | 生产测试版本 | 主板测试、工程测试、性能测试 | 生产流程和效率验证 |
| PRD | 量产出货版本 | 主板测试、工程测试、性能测试、应用测试 | 出厂质量测试 |
所以我们会有如下这些工程测试:
- 主板测试:测试PCBA主板元器件及驱动功能。
- 工程测试:工程模式测试,硬件的应用功能测试。
- 性能测试:硬件电气特性和软件性能。
- 压力测试:硬件的长时运行性能曲线,最大值、最小值、平均值等。包括负载测试和压力测试,老化测试等。
- 功耗测试:包括各种负载条件下的功耗和温度的最大值、最小值、平均值等。
- 应用测试:生产出货质量环节对关键应用UI界面功能进行测试。
研发、测试和生产团队,可以根据自己的项目实际情况来安排要实施哪种测试组合。后面简单说一下这些测试都有那些内容,以及测试工具和方法。
实际上,很多中小型公司的生产开发流程一般是这样的:
首板开发阶段:
EVT
└──> DVT
└──> PVT
└──> PRD
批量出货阶段:
备货计划
└──> 生产贴片
└──> 刷入主板小系统
└──> PCBA主板测试
└──> 主板入库
出货计划
└──> 刷入整机系统版本
└──> 工程测试
├── 性能测试 │
├── 老化测试 │
└── 应用测试
└──> 出货
2 有哪些验收测试?
2.1 主板测试
PCBA主板功能测试,主要在SMT贴片线实施,主要测试的内容就是测试PCBA主板各种硬件和驱动是否都正常使能及正常工作,测试要求快速方便。
PCBA主板测试工具由芯片平台厂商(qcom、mtk、rockchip、amlogic等)提供。实际上是一个bootloader小linux系统,不包含android完整系统,大小只有几MB,可以快速烧录到主板中。在AOSP源代码中也会有这个工具,可以根据实际情况修改源代码调整测试项。
2.2 工程测试
就是常说的工程模式测试,在android运行环境中对硬件功能进行简单验证测试。例如:
- 相机拍照
- U盘读写
- WIFI连接断开
- 蓝牙连接断开
- 访问网页
- 耳机喇叭播放音乐
- 话筒录音
- 屏幕坏点和色彩测试
- 触摸轨迹。
工程模式是一个应用APK,是通用的测试工具,一般由芯片厂商开发提供的,在AOSP工程中也有源代码,开发团队只需要根据实际状况进行修改就可直接使用。
2.3 性能测试
硬件性能测试,在android设备中并没有通用的工具和测试标准。测试的主要目的是为了检查硬件性能是否满足规格要求。例如DDR3和DDR4的读写速率,EMMC读写速率,USB2.0和USB3.0的读写速率,2G/3G/4G网络速率等等。
硬件性能测试包括硬件电气特性测试和软件性能测试。硬件的电气特性测试(例如USB眼图测试,USB浪涌测试,WIFI辐射测试等),一般由硬件团队来完成。而软件性能测试(例如DDR读写速率,CPU浮点运算、USB传输速率、网络传输速率等),则需要编写自动化测试用例和脚本来完成。
硬件性能测试的测试目的、工具方法如下:
| 硬件 | 性能 | 方法和工具 | 说明 |
|---|---|---|---|
| CPU | 带宽和运算能力 | 圆周率浮点运算1W位的时间 | 可以对不同的CPU时钟频率进行测试 |
| DDR | 内存带宽 | 内存MEMCPY、DUMB、MCBLOCK等操作时间 | |
| EMMC | 坏块和读写速率 | 检查EMMC磁盘坏块;dd命令分区读写时间 | 文件大小为10Mx1000次和10Gx1次 |
| USB | USB读写速率 | dd命令对U盘进行读写 | 1.文件大小为10Mx1000次和10Gx1次。2. USB host/OTG测试读写方向不一样。 3. U盘必须是高速稳定的 |
| 网络 | 网络速率和带宽性能 | TTL响应时间和带宽 | 1. 测试对象包括蜂窝/有线/无限网络。2.必须在高速稳定的网络环境下,服务器不能限速 |
| 电池 | 最长待机时间 | 待机休眠静置直至自动关机 | 纯硬件测试方法 |
| 触屏 | 响应时间 | 手指触摸到响应的界面响应的时间 | 软件插桩测试 |
| 温度 | 温升时间 | 最大持续负载下CPU达到90度的时间 | 具体温度指标可以自定 |
当然,不同的设备可能还有其他硬件例如耳机、喇叭、陀螺仪、距离感应器、光感应器等,需要根据实际情况自己设计测试方法和质量标准。
当然,软件系统本身还有一些性能测试项目:例如开机速度、卡顿测试、拷贝测试,压缩/解压测试,多媒体编解码测试等,可以作为操作系统或者组件性能的测试项目,而不作为PCBA主板质量和性能测试项目。
每种具体的测试方法和工具,后续的文档会逐步的展开。
2.4 压力测试
硬件的运行性能压力测试,就是在最大负载条件下持续长时间运行,硬件表现出来的性能。例如对CPU、内存,BLKIO进行持续高压测试,采集运行数据,查看性能曲线,分析最大值,最小值,平均值,温度及异常数据信息等等。
一般的压力测试有CPU压力测试,内存压力测试,BLKIO压力测试,如果有条件的话,可以加入卡顿测试。
| 硬件 | 测试方法 | 测试工具 |
|---|---|---|
| CPU | 线程拷贝运算 | stressapptest |
| DDR | 内存拷贝操作 | stressapptest、mbw、memtester |
| EMMC | 块IO读写操作 | stressapptest |
详细的测试方法和工具,在以后的博文中详细展开。
在工厂生产测试中,对主板有老化实验测试,主要是针对硬件元器件进行持续2~4小时的测试,确保在出厂时间段内元器件没有失效。这些实验方法一般由厂商的NPI部门负责设计和开发测试工具。只需要对压力测试工具和方法调整测试时间即可。
2.5 功耗测试
就是对各种系统负载下的功耗进行测试。这个测试是一个硬件测试,但是需要硬件团队和软件团队一起协同来完成整个测试。
软件团队主要是设计各种负载测试条件,编写测试脚本和日志提取工具,生成测试报告等。硬件团队主要是根据负载测试要求,采用带有GPIB采集接口的精密电源,监测硬件功耗,提供测试数据和测试报告。
负载测试的内容包括如下几个:
- 整机功耗(平均值、最大值、最小值)。
- 温度曲线(平均值、最大值、最小值)。设备中可能有多种温度传感器,但是我们重点关注CPU温度和主板温度。
整机功耗测试,一般会基于不同的系统基线进行测试:
- 最小系统,就是删除了所有无关应用的最小操作系统版本,用于对操作系统做初始测试基线,目的是为了检测基础系统中的硬件都处于最佳状态。
- 基础系统,只包含设备厂商定制的桌面和关键服务的操作系统版本,用来作为定制系统的测试基线,确保关键应用和服务是最佳性能。
- 正常系统,包含了设备厂商所有应用和服务的完整操作系统版本,最终用于生产或上线的系统版本。
每种系统基线的功耗测试,一般要基于如下几种工作负载场景来进行测试:
- 飞行模式,待机休眠。这是一种最小使用模式,自然待机。测试系统的底电流,最大电流和平均电流。
- 正常负载,CPU使用到0~99%都可以算作正常负载。理论上来说,这种应用场景可以不用测试。
- 最大负载,CPU和内存持续长时间处于最高负载的应用场景。最常用的测试场景就是3/4/5...方视频通话。可以在这种负载场景下测试系统持续稳定工作的时间,温度上升时间和温控调频时机等。
2.6 UI测试
系统开机后,对设备的关键应用做真实场景的应用测试,确保功能正常。这个测试一般由工厂来设计实施,没有统一的操作方法和质量要求。
这个实验由质量部门确认,是做全测还是做一定比例的抽测。
如何验收安卓PCBA主板的质量和性能的更多相关文章
- 安卓开发笔记——ListView加载性能优化ViewHolder
在前不久做安卓项目的时候,其中有个功能是爬取某网站上的新闻信息,用ListView展示,虽然做了分页,但还是觉得达不到理想流畅效果. 上网查阅了些资料,发现一些挺不错的总结,这里记录下,便于复习. 当 ...
- Genymotion - 强大好用高性能的 Android 模拟器 (在电脑流畅运行APK安卓软件游戏的利器)
随着 Android 系统的应用和游戏越来越丰富,甚至有些比起Windows.Mac上的软件更加好用好玩,因此很多人都希望能在电脑上也能玩到安卓的游戏或APP. 我们曾推荐过 BlueStacks,而 ...
- 编写高质量的Python代码系列(八)之部署
Python提供了一些工具,使我们可以把软件部署到不同的环境中.它也提供了一些模块,令开发者可以把程序编写的更加健壮.本章讲解如何使用Python调试.优化并测试程序,以提升其质量与性能. 第五十四条 ...
- 安卓开发笔记——打造万能适配器(Adapter)
为什么要打造万能适配器? 在安卓开发中,用到ListView和GridView的地方实在是太多了,系统默认给我们提供的适配器(ArrayAdapter,SimpleAdapter)经常不能满足我们的需 ...
- 【黑金原创教程】【TimeQuest】【第五章】网表质量与外部模型
声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/al ...
- emouse思·睿—评论与观点整理之二
虽说我主要做的硬件,平时的兴趣爱好比较关注移动互联网,混迹于虎嗅.爱范儿.雷锋网.36Kr.cnBeta.瘾科技.i黑马.TechWeb等这类科技以及创业媒体,遗憾的是系统的去写的并不多,好在还算充分 ...
- 从备考PMP到与项目经理同呼吸
前言 PMP是什么梗? 项目管理专业人士资格认证.它是由美国项目管理协会(Project Management Institute(PMI)发起的,严格评估项目管理人员知识技能是否具有高品质的资格认证 ...
- 移动信息化不能延续PC时代的痛
当下,随着移动时代的到来,手机功能逐步完善,各个行业针对这一现象纷纷制定了相应的营销计划,于是霎时间兴起了一股网上订票/网上订饭/网上预约的热潮. 而对于IT行业,成为企业信息化最火的代名词莫过于移动 ...
- 读书笔记---PMBOK第五版官方中文版
以下是为了准备PMP考试时学习<PMBOK第五版官方中文版>这本书的笔记和摘要,目的是为了以后可以快速的抓住本书的核心重点复习. 引论 PMPOK的目的 收录了项目管理知识体系中被普遍认可 ...
随机推荐
- Linux 实现静态路由实验
环境: 四台主机: A主机:eth0 NAT模式 R1主机:eth0 NAT模式,eth1 仅主机模式 R2主机:eth0 桥接模式,eth1仅主机模式 B主机:eth0 桥接模式 手动修改IP地址 ...
- opencv学习之基础
前段时间一直在钻研深度学习中的卷积神经网络,其中的预处理环节可以说非常关键,主要就是对图片和视频进行处理.而图像处理就涉及到图形学和底层技术细节,这是一个比较精深和专业的领域,假设我们要从头开始做起, ...
- 【拖拽可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
"整篇文章较长,干货很多!建议收藏后,分章节阅读." 一.设计方案 整体设计方案思维导图: 整篇文章,也将按照这个结构来讲解. 若有重点关注部分,可点击章节目录直接跳转! 二.项目 ...
- 运维:ITIL V3
TIL 简史 在20 世纪80 年代末期,英国商务部(OGC,Office Government Commerce)发布了ITIL .OGC 最初的目标是通过应用IT 来提升政府业务的效率:目标是能够 ...
- HBase数据库基础操作
实验要求: 根据上面给出的学生表Student的信息,执行如下操作: 用Hbase Shell命令创建学生表Student: create 'student','name', 'score' put ...
- 关于ECharts图表反复修改都无法显示的解决方案
解决方案:清空浏览器所有记录,再次刷新即可
- 浅析kubernetes中client-go Informer
之前了解了client-go中的架构设计,也就是 tools/cache 下面的一些概念,那么下面将对informer进行分析 Controller 在client-go informer架构中存在一 ...
- 一次XGBoost性能优化-超线程影响运算速度
一.问题背景 一个朋友在使用 XGBoost 框架进行机器学习编码,他们的一个demo, 在笔记本的虚拟机(4核)运行的时候,只要8s, 但是在一个64核128G 的物理机上面的虚拟机去跑的时候,发现 ...
- SCI论文写作注意事项
1. 先写结论:(划定范围,以防添加无效的内容) 并非一开始就把整个结论都写出来,而是把
- 接口开发-restful
数据库表设计 1 --员工表 2 create table Employee 3 ( 4 id NUMBER primary key, 5 employeeID NUMBER not null, 6 ...