从单板计算机到IIoT(工业物联网)设备,视频接口在所有类型的嵌入式平台中都很常见。然而,视频接口的完整通路(从模拟或数字前端到处理器数字视频输入)非常复杂,因此若使用传统方法对其进行生产测试将会非常困难并且耗时。本文将介绍一种更简单的测试方法。
嵌入式平台上的典型视频前端以及生产测试设置环境中的数据通路的一般流程如图1所示。
图1:嵌入式平台的测试设置和视频前端。
视频前端包括一个视频接收器IC,它可以是ASIC,也可以以FPGA内部的RTL IP来实现。该ASIC/FPGA的输出通常是采用BT.1120/BT.656标准格式的并行视频总线,并会连接到处理器的视频输入端口。生产测试软件的目的是确保整个视频通路不会出现任何与组装有关的问题,例如线路固定在高电平或低电平,或多条信号线之间发生短路。
视频接口生产测试的常用技术包括主观评价和使用固定的视频数据图案。在主观评价方面,测试人员捕获几秒钟的测试视频,然后通过视觉观察将所捕获图像与测试图像进行比较。这种技术的缺点是它需要人为干预并且依赖于人为解读。例如,如果视频数据总线的低位固定为低,那么即使像素值减少1,这种微小的视觉变化也难以通过人工检查而察觉。
使用来自视频输入源的固定视频数据图案(例如彩条图案)可提供更定量的测试。即利用系统捕获一些视频数据帧并将其与固定视频数据图进行比较。由于捕获的视频帧应与正在播放的固定视频数据图案帧逐像素匹配,因此使用MD5之类的校验和可以快速进行这种比较。
这种技术的缺点是不易为所有可能的前端视频接口和标准得到固定的视频图案源,例如视频播放器。解决这个限制的常用方法是采用单一标准的播放器,然后通过转换器将其更改成所需的标准和接口。但是,转换器在转换标准的同时会改变像素值。例如,从HDMI转换到3G-SDI接口时,视频数据会从RGB888转换为YUV422格式。这会使像素值改变,从而导致伪误差。
还有一种方法可以对视频通路进行生产测试。要理解这种技术,首先要了解该通路中所用并行视频接口格式BT.1120/BT.656的一些基本概念。
BT.1120是一种16位并行接口,它使用嵌入在视频数据流中的代码来区分有效(可见)和消隐(不可见)的视频片段。BT.656也是如此,唯一的区别是BT.656是8位并行总线接口。图2显示了一个隔行扫描视频帧中的像素的划分。
图2:一个完整的数字视频帧。
每个有效视频像素行由有效视频结束(EAV)码和有效视频起始(SAV)码进行划分。这些代码基于当前有效行的H值(水平同步)、V值(垂直同步)和F(场)值,也被称为定时同步信号。SAV和EAV代码长度为四个字节,数据格式为“FF 00 00 xy”,其中“FF 00 00”是前导码,xy是包含定时同步信号和四个误差检测/校正位的状态字。图3显示了如何生成SAV和EAV代码。
图3:SAV和EAV代码生成。
这些代码就是检查视频数据通路完整性所需的全部代码,视频本身反而并不重要。如果数据通路中存在生产误差,例如短路、开路或固定故障,则EAV和SAV代码会与预期值不匹配。
对上述方法进行扩展,只需将视频输出接口连接到视频输入接口,即可对其进行测试。但这样做的缺点是,如果出现误差,我们将无法区分此误差是在输出还是输入接口通路中——要找出具体的误差发生接口必须执行更多的测试。
我们公司目前已广泛使用上述方法来测试所开发的硬件电路板上的视频接口。该方法大大缩短了视频接口的总体测试时间,从而降低了电路板的测试成本。
Ayusman Mohanty是Ittiam Systems公司的产品架构师,专注于为音视频广播和监视系统设计硬件。
(原文刊登于ASPENCORE旗下EDN英文网站,参考链接:Simplify test of embedded video interfaces。)
本文为《电子技术设计》2019年11月刊杂志文章。