Jackindata
嵌入式软件工程师
展开
-
一种自动化生产测试流水线
最近了解到深圳昇润科技的一种测试生产线,分享给大家。昇润科技是一家主攻蓝牙方案与模组的高新技术企业,对于模组产品,生产测试是很重要的一个环节。在专门的生产车间中,做无尘化处理,并列布置了两条流水线,对模组进行批量化处理。流程如下:上板。把待处理模组从货箱、托盘中同时一个或多个取出,放入流水线。 分板摆盘。模组 PCBA 生产后是多个还连接在一起,需要切割分板,然后放置到正确的位置,比如电源、数据接口的准确接线。 缓存。人工上板、摆盘速度无法做到恒定且与流水线完全一致,所以需要缓存。 RF 测试原创 2021-11-03 07:09:43 · 1198 阅读 · 0 评论 -
硬件自动化测试 01 - 一个简单的测试框架
概述我们公司是一家嵌入式解决方案商,提供产品研发评估板和项目定制服务。在这些评估板和项目定制板上,硬件接口众多。为了在批量生产时能够保证每一套板卡的品质,需要全部做品质测试。而要加快测试进程,我们使用应用软件进行了全方位的辅助。也即是开发专门的自动化测试软件。该测试软件的目标有以下几点:自动化。自行判断硬件接口功能测试结果并报告。 快速。每一项测试以及测试的准备、报告耗时短。 流程...原创 2018-11-08 22:55:35 · 9891 阅读 · 4 评论 -
硬件自动化测试 02 - LTP-DDT
概述LTP-DDT 是 TI 开发整理的一个测试套件,目的是用来验证 Linux 发行版。而它是基于 LTP 的。LTP 全称 Linux Test Project,由 IBM、思科等多个公司共同开发维护。LTP-DDT 相较于 LTP 针对运行于嵌入式设备上的 Linux 内核及驱动的测试做了增强和优化,尤其是适配了 TI 自己的很多 ARM 平台。而这一点正是我们看重的。本文尝试说明使...原创 2018-11-15 11:56:57 · 3666 阅读 · 3 评论 -
硬件自动化测试 03 - LTP
概述上一篇我们介绍了 TI 的 LTP-DDT 的初步使用,这次我们回过头来看看 LTP。LTP 提供了一个框架以及很多可用的测试程序,都是可以复用的东西。对其做一番研究了解,然后稍加改造并应用起来,可以大大减轻我们的工作。避免老是从无到有,重复造轮子。编译与运行这里还是以广州创龙的 TL138-EVM 为例介绍基本的编译与运行。这过程中的一些小错误可以暂且忽略,先把整个流程跑通。...原创 2018-12-18 11:06:28 · 1350 阅读 · 0 评论 -
硬件自动化测试 04 - 另一个简单的测试框架
基本思想先前我介绍过我们的一个简单的自动化测试框架 —— 《一个简单的测试框架》,最近我又设计实现了另一个,叫 TLATS,原因是我们有了新的测试需求。在原有基础上修修补补,倒不如吸收其经验与思想重新设计,以满足更多情况,更好用。先简单介绍下我们的新的测试辅助板 ATS 底板。ATS 全称是 Auto Test System,专门用于测试我们的核心板(SOM - System on Mod...原创 2019-01-27 12:28:43 · 2841 阅读 · 0 评论 -
有关嵌入式硬件测试的资料
CSDN 博客硬件测试专栏 https://blog.csdn.net/engrossment/column/info/30400硬件测试之出厂测验 https://blog.csdn.net/zimingzim/article/details/81409995硬件测试工程师培训 https://blog.csdn.net/rabbit100/article/details/59058...原创 2019-03-19 14:17:13 · 4308 阅读 · 0 评论 -
硬件测试的种类
硬件产品测试的 7 大种类信号质量测试 时序测试 功能测试 性能测试 容错测试 长时间测试 一致性测试信号质量测试信号质量测试是很底层与直接的一项测试,需要对硬件板卡本身有相当的了解才能进行。另外,板卡中的部分功能模块需要通过软件使其工作起来之后才有相应的信号,才能进行信号质量测试。所以这项测试需要测试人员具有一定的技术基础,在测试时与硬件、软件开发人员紧密合作。而由于这...原创 2018-12-18 18:22:47 · 24142 阅读 · 0 评论 -
通信总线测试方案
概述本文档说明针对数据总线的测试方案。测试要点包括:数据线的功能测试。 地址线的功能测试。 数据总线的带宽性能测试。 数据总线的压力性能测试。对于数据总线的功能异常,包括数据线与地址线,一般有 4 种:数据线、地址线固定为高,也就是必能传输表示 1 。 数据线、地址线固定为低,也就是必能传输表示 0 。 数据线、地址线的两条或多条短路。 数据总线位宽异常。本方案根据以上需求与经验设计整理出对应的具体方法。在各平台具体开发中可以直接参考采用。注意,本方案不包含对存储芯片的读写验原创 2021-05-11 09:52:31 · 1269 阅读 · 0 评论 -
外设测试 - LCD 接口测试
概述本文描述板卡上的 LCD 功能与接口的测试方案。基于原始设计功能进行测试该方案就是按一般使用方法,接入 LCD 显示屏,直接查看其显示、触控、背光控制的效果确认功能正常。配置成 GPIO 进行测试LCD 的大部分管脚可以在内核(设备树)配置作为 GPIO 功能,由此我们就可以对 GPIO 进行两两配对测试了。不能配置 GPIO 功能的管脚的测试在后文说明。首先,需要确保管脚没有断路(比如接口端子虚焊或 B2B 异常的情况),配对的 GPIO 能够正常拉高拉低即可...原创 2020-09-28 20:25:54 · 846 阅读 · 0 评论 -
外设测试 - SD 、eMMC 测试
在 Linux 中,SD 卡、eMMC 设备都使用 mmc 总线,所以可以采用统一的测试方法。这里的思路是,先生成一个 1MB 大小的文件,写入设备,然后读取出来存到另一个文件。再使用 cmp 命令对比两个文件的内容是否一致。存储设备可能存在多个分区,所以对每一个分区都进行一次以上测试。mmc_test.sh:#!/bin/bash# Description:# Test SD or eMMC device with mount point. Get mount point from原创 2020-10-20 08:57:59 · 3297 阅读 · 0 评论 -
外设测试 - 音频测试 - LINE IN - MIC IN - LINE OUT - PHONE OUT
概述本项测试针对音频接口的 LINE IN、LINE OUT、MIC IN、PHONE OUT。内部 IN 到OUT 的循环,采用先录音然后播放的方式实现。使用到 arecord、aplay、amixer 命令。测试步骤LINE IN 和 LINE OUT使用音频线连接板卡的 LINE IN 和电脑(手机)的音频输出口,电脑(手机)播放音频。然后在板卡执行录音播放脚本。./line_in_test.sh使用耳机或音响音频线接入 LINE OUT,测试员细心听输出的音频,检查是否..原创 2020-10-16 15:15:35 · 2656 阅读 · 0 评论 -
外设测试 - ATAES132A 加解密芯片测试
原理使用芯片官方提供的读写操作库,进行先写后读并校验,确认数据一致。示例代码int main(void){ uint8_t ret; aes132p_enable_interface(); ret = write_memory_test(); if (ret != AES132_FUNCTION_RETCODE_SUCCESS) { aes132p_disable_interface(); printf原创 2020-12-08 21:47:38 · 593 阅读 · 0 评论 -
外设测试 - CAN 接口测试
原理底层:Linux 内核 SocketCAN 子系统。应用层:使用 canutils 工具。同一板卡 2 个 CAN 配对测试 使用两根导线,H 对 H、L 对 L 相连。 使用 canutils 中的 canconfig 程序配置波特率,启动。 使用 canutils 中的 candump 接收,cansend 发送。 校验收发的数据是否一致。 1 个 CAN 与辅助板的 CAN 对接测试参考前述测试。1 个 CAN 与 PC 通过 US.原创 2020-10-16 15:35:03 · 2351 阅读 · 0 评论 -
外设测试 - RTC 测试
概述Linux 系统中获取 RTC 时间可能有两种途径,一种是处理器内部的 RTC,另一种是主板上独立的 RTC 模块。我们这里不涵盖前者,因为一般认为处理器良率较高。RTC 模块有几大主要部件:晶振、RTC 芯片、I2C 总线、电池供电。所以测试方案的设计就是从这几个部件的功能确认出发。读取 RTC 时间RTC 芯片除了电池可以供电,板卡本身的系统电源也会给他供电。当从 Linux 系统中能够读取到 RTC 芯片上的时间时,就起码确保了两个功能运行正常:RTC 芯片正常;与处理器连接的 I原创 2020-12-09 22:32:26 · 3769 阅读 · 0 评论 -
外设测试 - FAN 接口测试
概述部分板卡使用的是 PWM 功能引脚来控制风扇转速,或者像下图的是只有 GPIO 控制启停。为了测试验证这里除了处理器引脚之外的其他供电电路,FAN 接口的测试只能接入风扇进行控制测试了,需要测试员观察风扇变化确认测试结果。参考代码#!/bin/bash# Description:# Control fan speed in loop.FAN_PATH='/sys/devices/platform/gpio_fan/hwmon/hwmon0/pwm1'RUNNING_FLA原创 2020-11-04 17:35:28 · 956 阅读 · 0 评论 -
外设测试 - SATA 接口功能测试
缘由早先做的测试程序是扫描所有挂载点,确定接入的固态硬盘的路径,然后进行数据读写校验。这要求预先在固态硬盘上创建一个标记文件,如 here_sata_ssd.flag。这对于测试准备来说很不友好,尤其是需要测试的板卡多了起来。维护测试专用固态硬盘增加了工作量。改进我们这里根本是为了验证板卡的 SATA 接口功能,当接入 SATA 盘时,系统会对设备进行识别。这里识别就可以验证通道正常了。挂载那是后话,不用管了。如果是人工检测,执行以下命令即可。cat /proc/scsi/scsi这将原创 2020-08-04 18:59:16 · 2327 阅读 · 0 评论 -
外设测试 - KEY 测试
概述按键的设计,核心功能就是通过按钮触发一个高电平或低电平脉冲,发送到处理器进行处理。所以测试方法就是去确认获取事件。以下对几类常见按键进行分别说明。用户按键之所以叫用户按键,是因为该类按键触发的事件最终到达用户层,由应用程序自行决定触发何种动作。所以我们的测试方法就是事先运行一个应用程序,监听用户按键事件。当获取到事件时,程序可通过控制 LED 闪烁或者切换显示屏显示内容等方式告知测试员按键正常。复位按键复位一般有两种,有的分别叫做 FULL RESET、WARM RESET,有的原创 2020-12-07 21:39:09 · 845 阅读 · 0 评论 -
外设测试 - ADC 电平采集测试
原理基于内核 IIO 子系统,给定固定输入电压,程序通过设备节点读取读数,换算为采集电压,与实际输入电压计算误差,不大于 5% 为测试通过。自动化测试设计1)考虑相邻通道存在短路的可能,最好给相邻通道设置不同的输入电压值。2)可从板卡扩展接口中的 3.3v、5v 等管脚中通过电阻分压的方法降到 ADC 的采集范围进行输入。参考代码#!/usr/bin/env python# Description:# Test ADC value, error limit is 5%.原创 2020-10-29 16:54:54 · 1008 阅读 · 0 评论 -
外设测试 - EEPROM 芯片测试
原理EEPROM 挂载在 I2C 总线下,程序基于 Linux 的 I2C 子系统进行数据读写,并校验。参考代码#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <unistd.h>#include <getopt.h>#include <stdbool.h>#include <libgen.h>#include .原创 2020-10-30 08:32:30 · 1120 阅读 · 0 评论 -
外设测试 - 4G 模块测试
这里介绍 ME3620、ME3630 4G 模块的使用方法。初始化ARM Linux 板卡#!/bin/shif [ ! -d "/sys/class/gpio/gpio188" ];thenecho 188 > /sys/class/gpio/exportecho out > /sys/class/gpio/gpio188/directionfimsleep 20echo out > /sys/class/gpio/gpio188/dire...原创 2020-10-20 08:43:19 · 2668 阅读 · 0 评论 -
外设测试 - LED 测试 - 功能测试
LED 测试是简单直接的,就是确认其能够控制点亮和熄灭。是的,熄灭也要确认,以防电路存在问题。如果短路等原因造成 LED 持续点亮,那这个 LED 就是废的了。LED 的设计有以下几种情况:电源 LED通常为红色,电源通上就亮起。测试方法就是,通上电源,检查确认红色亮起。USER LED这种 LED,我们可以编写程序循环控制其亮灭变化,让测试员随时观察。在 Linux 中常规用户灯会生成设备节点用户控制,比如执行如下命令就可以让其持续闪烁:echo heartbeat >原创 2020-11-27 19:15:46 · 845 阅读 · 0 评论 -
外设测试 - 温度传感器测试
概述温度传感器测试方法有两种。一个是低标准的自动化的,另一个是高要求的人工对比的。但都是基于驱动提供的传感器设备节点进行温度值读取。一个温度传感器设备节点实例:/sys/devices/platform/ocp/44e0b000.i2c/i2c-0/0-0049/hwmon/hwmon1/temp1_input使用 cat 命令即可读取。一般除以 1000 得到摄氏度温度值。自动化测试考虑设备的运行环境与发热情况,设定一个温度波动范围值,比如 30 ~ 50 摄氏度。自动化测试程序自原创 2020-10-16 14:47:16 · 990 阅读 · 0 评论 -
RS232-CAN 对接测试 - 基于乐电新南 RS232-CAN 转换器
缘由在板卡的批量生产测试中,CAN 可以两个互相收发数据做功能检验,但部分板卡只有一个 CAN 接口的情况下,不方便测试。于是找到了这样一个 RS232-CAN 转换器,让 CAN 与 RS232 进行对接测试。转换器简介对 CAN 总线信号与 RS232 通道数据进行相互转换,以达到两种不同协议进行数据通信的效果。还有高级的数据过滤等功能可以配置使用。连接说明基于广州创龙的 5728-IDK 板卡测试。1)转换器的 VIN 管脚需提供 5V 电源供电。2)转换器的 GND、CA原创 2020-07-28 10:51:52 · 1390 阅读 · 0 评论 -
UART0 作为调试串口的同时与普通串口 UART3 对接测试的方案
缘由在硬件自动化测试中,数据通信接口最好有对接的方式,由程序自动完成数据收发与校验,从而实现对硬件接口的测试验证。这里讲到的 UART0 与 UART3 的测试,由于为了保留 UART0 作为调试串口的功能,便于维修人员使用,所以需要特别的处理方案。硬件连接原理这里 UART0 是调试串口,CP2108 是 USB 转串,用于接上位机进行使用调试串口。UART3 是一个普通的待测串...原创 2019-11-14 11:34:54 · 1615 阅读 · 0 评论 -
USB TO UART 调试串口的一种新测试方案
旧方案之前在做专用 ATS 测试底板时,应用了一个与普通调试串口进行对接的方案(https://blog.csdn.net/engrossment/article/details/103064310),这个方案适用于定制底板,因为他不经过串口转 USB 芯片 CH340,在待测底板上这就属于漏测了。方案一采用一个现成的串口转 USB 独立模块,接入待测板的 Micro USB 口,转为串口后再与其他普通串口对接,进行数据收发测试。但实测时才注意到,板卡和模块上的两个 CH340 对接,根本互不认原创 2020-07-27 13:51:11 · 1992 阅读 · 0 评论 -
SATA 和 USB 的移除与扫描加载测试
在硬件验收测试中有发现板卡偶尔识别 SATA 盘失败的情况,为了进一步测试定位问题,专门找了这个 SATA 设备的移除与扫描加载测试方法。以下基于广州创龙的 TL138 进行说明。我们这里的移除和加载是在系统驱动层面的动作,而非物理上的。所以我们要看设备接入到系统所使用的总线,SATA 盘使用的正是 SCSI 总线。那么 SCSI 相关的操作就是我们需要关心的。基于以下描述的方法,我们对可疑的...原创 2019-09-20 09:34:33 · 622 阅读 · 0 评论 -
USB 3.0 批量生产测试
缘由早期我们的 USB 接口测试不区分 1.x、2.0、3.0,统一采用对接入的 U 盘进行数据读写并校验的方法。为了区分不同的接口还需要在 U 盘预先创立不同的标识文件,让测试程序识别,用于报告哪个接口通过或失败。后来改进了创建标识文件的方案,直接识别插入的 U 盘,不区分哪个是哪个,除了问题再让维修人员进一步排查。毕竟,出问题概率很低。但现在发现 USB 3.0 接口可能存在一种情况,其部分差分线损坏了,依然能够识别到接入的 U 盘。这样当前测试方案就无法覆盖 3.0 接口的所有功能了。原创 2020-07-24 11:36:16 · 701 阅读 · 0 评论 -
硬盘测试工具 hdparm
前面已有介绍了两款存储设备性能测试工具,Bonnie(https://blog.csdn.net/engrossment/article/details/83833287)和 Bonnie++(https://blog.csdn.net/engrossment/article/details/84137801),这次再介绍一个叫 hdparm 的工具。hdparm 本身主要用于读取和设置硬盘的...原创 2019-03-27 09:42:53 · 1467 阅读 · 0 评论 -
存储设备性能测试工具 Bonnie
概述我们在评估开发板的各种接口时,其中一个重要的指标就是带宽(数据传输速率)。早期的时候我们是直接使用 dd 命令进行简单测试的,但发现多次测量的结果波动很大。后来使用了自己专门写的 Python 程序,做随机数据的读写。但依然是比较简陋,考虑不够全面。Bonnie 正是适合我们使用场景的工具,小而美!它测试了多种方式的读、写,甚至还有随机的跳读。编译运行在 Bonnie 官网下载...原创 2018-11-07 22:45:58 · 2879 阅读 · 0 评论 -
存储设备性能测试工具 Bonnie++
概述之前已有写博文介绍 Bonnie:存储设备性能测试工具 Bonnie。不过还是有必要再了解一下 Bonnie++。Bonnie++ 最开始基于 Bonnie 进行修改与增强,到后来用 C++ 重写了大部分代码并加入了很多特性。其中最主要的是 Bonnie++ 相较于 Bonnie 支持大于 2G 的测试数据量。这对于在运行内存几 GB、几十 GB 的机器上测试是十分重要的,否则测试数...原创 2018-11-16 14:02:54 · 2504 阅读 · 0 评论 -
基于 dd 的块设备读写性能测试
概述本文档说明测试块设备(block device)读写性能的方法。块设备包含如 SATA、USB、SD、eMMC、Nand 等。测试技术要点读写使用 dd 命令,基于块设备在 /dev/ 下的设备文件进行操作,不依赖文件系统。 从 /dev/urandom 获取随机数进行读写测试。 考虑硬件框图、数据流向。直接从 DDR 内存读取数据写入到待测设备,直接从待测设备读取数据然后存储...原创 2019-07-31 13:49:27 · 1179 阅读 · 0 评论 -
存储设备与总线性能测试工具 Fio
本博客前面介绍的读写性能测试工具 Bonnie:https://blog.csdn.net/engrossment/article/details/83833287 以及 Bonnie++:https://blog.csdn.net/engrossment/article/details/84137801Fio是一款 IO 性能测试工具,可用于测试CPU、网络及存储等多种设备的性能数据,它是一...原创 2019-08-27 10:23:14 · 2483 阅读 · 0 评论 -
内存带宽测试工具 mbw
1、起因在我先前的文章《系统综合性能测试工具 lmbench》(https://blog.csdn.net/engrossment/article/details/83830363)中有讲解到里面的一个叫 bw_mem 的内存带宽测试工具,那为什么又要去找这个什么 mbw 来折腾呢?起因是我要基于在广州创龙 TL6678-EasyEVMDSP 上的 Linux 上测试 DDR 的性能,而这个...原创 2019-03-07 17:56:07 · 5799 阅读 · 0 评论 -
一个简单的内存读写带宽测试程序
之前有写文章介绍了 mbw(https://blog.csdn.net/engrossment/article/details/88314722)以及 lmbench(https://blog.csdn.net/engrossment/article/details/83830363)。其中 mbw 的只是简单使用了 memcpy 系统调用进行测试,而 lmbench 里面的 bw_mem、str...原创 2019-11-25 17:05:01 · 2922 阅读 · 4 评论 -
内存正确性测试工具 memtester
概述之前有写博文(系统综合性能测试工具 lmbench)介绍的 lmbench,里面就有一个 bw_mem 可以用来测试 DDR 内存的带宽。这里准备介绍的 memtester 主要是为了测试 DDR 内存的正确性,用官网的话来说就是testing the memory subsystem for faults 。这也是验收硬件设备时必不可少的一项测试。memtester 这个工具还很方便...原创 2018-11-14 18:26:19 · 14750 阅读 · 0 评论 -
系统综合性能测试工具 lmbench
概述这是一个主要测试系统的带宽和延时的通用工具。有着挺古老的历史,官网上的有一句说明很有趣:these pages may make your eyes hurt.官网:http://www.bitmover.com/lmbench/测试包:https://sourceforge.net/projects/lmbench/测试平台:Windows 10 下 Virtua...原创 2018-11-07 20:33:28 · 6833 阅读 · 0 评论 -
网口速率测试工具 iperf
后面重新整理的基于 iperf3 的测试总结:https://blog.csdn.net/engrossment/article/details/97791972 - 2019年8月2日iperf 官网:https://iperf.fr/iperf 的基本用法是,在辅助设备(PC)启动一个服务端,然后在待测网口的板卡设备启动一个客户端,进行 CS 通信,统计测试情况。所以,从这里可以看...原创 2018-11-27 08:18:52 · 15723 阅读 · 0 评论 -
网口速率测试工具 iperf3
先前有整理了 iperf 的使用文章(https://blog.csdn.net/engrossment/article/details/84559708),但近期又对这个 ETH 的测试进行了研究,有一些新的发现,故重新整理出来。iperf 官网:https://iperf.fr/概述本文档说明 ETH 网口的带宽测试。基于 PCIe 等方式扩展的网口设备也可以使用该测试方法。或...原创 2019-07-30 16:18:34 · 6642 阅读 · 2 评论 -
CAN 通信测试工具 canutils
概述CAN,Controller Area Network,控制器局域网,一种高可靠性的现场总线。广泛用于汽车电子、工业控制通信。canutils 工具包内含 5 个独立的程序:canconfig、candump、canecho、cansend、cansequence。这几个程序的功能简述如下:canconfig:用于配置 CAN 总线接口的参数,主要是波特率和模式。 candump...原创 2020-03-31 15:14:05 · 15495 阅读 · 2 评论 -
RTC 误差测试工具 ntpdate
对 RTC 误差的测试,我们原来采用的方法是手工校时,然后断电放置十个小时以上,再来手工检查时间误差。这样测试出来的误差精度只能去到秒级,而且也引入了手工校时、核对的误差。后来发现 ntpdate 这个工具很适用。只是网络对时依赖网络。以下是测试方法。首先确保板卡系统的所有自动对时服务已关闭。 执行以下命令进行网络对时。可以根据需要选择其他的 ntp 对时服务器。ntpdate t...原创 2018-11-26 12:12:58 · 3371 阅读 · 1 评论