嵌入式平台上的自动音频接口测试
Posted 电子工程专辑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式平台上的自动音频接口测试相关的知识,希望对你有一定的参考价值。
从模拟音频到数字音频端口,各种类型的接口层出不穷。每种类型的接口在设计和测试中都面临自身的挑战。在组装和生产过程中,这些接口的测试涵盖了整个路径,从模拟或数字前端到处理单元的数字音频输入端口。本文介绍一种常用的技术,用于检测音频接口测试中与装配相关的故障问题。
音频接口如今已无所不在。应用于工业物联网(IIOT)的大多数单板计算机(SBC)上也有它们的身影。从模拟音频到数字音频端口,各种类型的接口层出不穷。每种类型的接口在设计和测试中都面临自身的挑战。在组装和生产过程中,这些接口的测试涵盖了整个路径,从模拟或数字前端到处理单元的数字音频输入端口。
嵌入式平台上的音频前端和生产测试设置环境中的通用音频数据流路径如下所示(图1):
图1:嵌入式平台的测试设置与音频前端(来源:作者)
上图显示了数据路径中的主要模块/组件。其中接收器IC可以是模拟前端IC,例如模数转换器(ADC),也可以是数字音频接收器IC。IC的输出可以是任何串行格式,如Inter-IC Sound Bus(I2S),该接口可以携带脉冲编码调制(PCM)格式的原始音频数据。
生产测试的目的在于确保整个音频路径的功能在各种故障下都被测试到。这些可能的故障包括:
音频接口测试只是比较大的生产测试系统的一部分,而整个生产测试系统将测试嵌入式电路板上的所有接口。
下面介绍一种常用的技术,用于检测音频接口测试中与装配相关的故障问题。对于前端接收器IC故障的检测则需要使用不同的技术,本文不做描述。
主观测试是指捕获音频数据样本几秒钟,将它们与聆听测试中播放的实际音频进行比较。该技术的缺点是需要人为干预并且耗时。比如,如果存在多个立体声声道,那么用户需要聆听并确认每个声道。
为克服这一缺点,我们提出一种创新的方法来测试音频接口信号,并自动完成整个过程。
要理解这种自动测试技术,有必要先了解I2S接口的一些基本概念。
I2S总线有三个信号 BCLK(位时钟)、WCLK(字时钟)、DATA(数据信号)。如果BCLK或WCLK出错(卡在高电平或低电平),则处理器音频输入端口将无法进行正常捕获,从而显示出相应的时钟故障。如果时钟信号正常,那么无论DATA值为何,音频都会被捕获。如果DATA停留在1或0,则音频数据缓冲区中将包含每个16位样本的所有FFFF或所有0000。因此,当我们生成MD5校验和时,将得到两个相应的值:MD5(FFFF)和MD5(0000)。而对于音频数据的每个其它值,其MD5校验和的值都将不同。这个概念可用于自动化和检查音频捕获信号。
这种测试方法是在适当音频被播放时才捕获信号,静音状态时无法捕获。这确保了仅捕获我们的音频文件而且缓冲区中的数据是正确的。一旦音频数据缓冲区存储了大约100个样本,就可以生成其MD5校验和。如果DATA信号停留在高电平,则其MD5校验和值与MD5(FFFF)相同;如果停留在低电平,则其MD5校验和值将与MD5(0000)相同。如果DATA信号正常切换,则MD5校验和将是其他任意随机值。因此,根据MD5校验和的值,我们可以判断DATA信号是否存在故障。
I2S总线通常有多个数据信号。我们通过一个示例来说明,假定I2S有四个数据信号DATAx(x = 0,1,2,3)。我们在其中一个DATA信号上提供音频数据而在所有剩余数据信号上提供0。然后生成所有DATAx(x = 0,1,2,3)信号上捕获数据的MD5校验和,并确认MD5校验和的值是否如预期。
如果仅在DATA0上提供音频数据,则DATA1-3信号的MD5校验和应该是MD5(0000),而DATA0的MD5校验和应为一些随机值。如表1所示,罗列了分别对四个数据信号执行该测试得到的迭代结果。
该技术的局限性在于它仅可用于识别上述故障。对于某些用例,它无法区分哪里存在故障。例如,如果多个信号线短路,则该技术可以检测到存在此故障但不能清晰地说明具体哪些线路短路。
上述方法已经过验证,目前已成功用于测试Ittiam开发的许多硬件板上的音频输入接口。现在我们已经看到,它可以减少音频接口的整体测试时间,从而降低电路板测试成本。
‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧
以上是关于嵌入式平台上的自动音频接口测试的主要内容,如果未能解决你的问题,请参考以下文章
SpringShoots开源音频处理框架养成记第一个进程和测试代码运行时间
音视频系列--OpenSL ES基础用法总结
Android OpenSL ES 开发:Android OpenSL 介绍和开发流程说明
准备MicroPython内核开发书籍嵌入式实验程序的实验平台
Dodobox一个基于所有平台的嵌入式操作系统(OS)
嵌入式平台gtest白盒测试