在嵌入式平台上自动化音频接口测试
如今,音频接口已经无处不在。它可用于工业物联网 (IIOT) 的大多数单板计算机 (SBC)。有多种类型的接口可用,从模拟音频到数字音频端口。这种接口的每种类型在设计和测试方面都有其自身的挑战。在组装和生产期间对这些接口的测试涉及从模拟或数字前端到处理单元的数字音频输入端口的完整路径。
嵌入式平台上的音频前端和生产测试设置环境中音频数据路径的通用流程如下所示(图 1),
图 1:嵌入式平台的测试设置和音频前端(来源:作者)
上图显示了数据路径中存在的主要块/组件。存在的接收器 IC 可以是模拟前端 IC,例如模数转换器 (ADC),也可以是数字音频接收器 IC。 IC 的输出可以采用任何串行格式,例如 Inter-IC Sound Bus (I2S)。该接口可以传输脉冲编码调制(PCM)格式的原始音频数据。
生产测试的目的是确保针对各种问题对完整的音频路径进行功能测试。可能的问题包括:
前端接收器 IC 故障。
I2S 线上的组装相关问题,例如高位(连接到电源)或低位(连接到地)或多条信号线之间短路。
此音频接口测试将成为更大的生产测试系统的一部分,该系统将测试嵌入式电路板上的所有接口。
下面列出了一种用于检测音频接口测试中与组装相关的问题的常用技术。对于前端接收器 IC 故障,需要使用不同的技术,但这些技术超出了本文档的范围。
技术 1 – 主观测试
主观测试涉及捕获音频数据样本几秒钟,并将它们与通过听力检查播放的实际音频进行比较。这种技术的缺点是需要人工干预且耗时。例如,如果有多个立体声通道,则用户需要一个接一个地聆听并确认。
考虑到上述技术的缺点,我们提出了一种创新的方法来测试音频接口信号并实现整个过程的自动化。
技术 2 – 自动化测试
要理解这种自动化测试技术,了解 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 线会有多个数据信号。我们可以通过以下带有四个数据信号 DATAx (x =0,1,2,3) 的 I2S 总线示例来演示这一点。这可以通过在 DATA 信号之一上提供音频数据并为所有剩余数据信号提供 0 来实现。这样当我们可以生成所有DATAx(x =0,1,2,3)的捕获数据的MD5校验和并确认MD5校验和值符合预期时。
如果我们仅在 DATA0 上提供音频数据,则 DATA1-3 信号的 MD5 校验和应该是 MD5(0000),而对于 DATA0,它应该是某个随机值。这可以在四次迭代中对所有四个数据信号一个接一个完成,如表1所示。
点击查看大图
表 1:音频测试的迭代(来源:作者)
这种技术的局限性在于它只能用于识别上述问题。对于某些用例,它无法区分问题。例如,如果多条信号线短接,则该技术可以检测到存在问题,但无法明确说明哪些信号线短接在一起。
结论
上述方法已经过测试,目前正在成功用于测试 Ittiam 开发的许多硬件板上的音频输入接口。我们已经看到它减少了音频接口的整体测试时间,从而降低了电路板测试成本。
Ayusman Mohanty 是一名产品架构师,主要专注于为视频和音频广播和监控系统构建硬件。可以通过 Linkedin 联系到他。
物联网技术