跳转至

语音芯片厂测方案说明*

1. 概述*

本厂测方案通过上位机模组与MCU之间的串口通信协议,对芯片的各项功能进行自动化测试验证。

有关串口协议详细部分请阅读 GX8006大模型开发包下载 国芯微离线语音协议_v*.pdf。

1.1. 测试要求*

  • 测试主机(上位机模组)
  • 语音芯片(MCU)
  • 主机和MCU串口连接
  • 音频输入设备(麦克风)
  • 音频输出设备(扬声器)

1.2. 包含测试点*

  • 录音和回采回路的连通性
  • MIC是否可以采集声音
  • 喇叭是否可以播放声音
  • GPIO是否可以正常输入输出

2. 测试项目及流程*

2.1 GPIO测试(0x0D)*

此测试分为两部分。

2.1.1 GPIO测试T1*

此测试用于验证各GPIO管脚输入输出是否正常。

2.1.1.1 硬件要求*
  • 将需要测试的每组引脚相互连接
  • 默认软件测试分组为
      {2, {11, 13}},    // Group 0
      {2, {12, 15}},    // Group 1
      {2, {5, 9}},      // Group 2
      {2, {14, 6}}      // Group 3
    
2.1.1.2 测试逻辑*
  • 先将一个组里的一个引脚设置为输出模式,其他引脚设置为输入模式
  • 输出引脚先输出高电平,检测其他引脚是否都能读到高电平
  • 输出引脚再输出低电平,检测其他引脚是否都能读到低电平
  • 如果任一测试失败,说明该组引脚间可能存在问题
  • 使用上述逻辑测试其它分组

2.1.2 GPIO测试T2*

此测试用于验证MICN是否接地。

2.1.2.1 硬件要求*
  • GX_MICNGPIO10连接。
  • GPIO10需根据实际硬件情况调整,默认软件使用的GPIO10
2.1.2.2 测试逻辑*
  • 检测GPIO10是否为0判断GX_MICN引脚贴片是否正确接地。

2.1.3 测试流程*

  1. 上位机模组发送测试指令

    字段 长度 说明
    帧头 2 0x55aa
    版本 1 0x00
    命令字 1 0x92
    数据长度 2 0x0002
    数据 1 0x0D(子命令)
    数据 1 0x01(测试T1 + T2)
    0x02(仅测试T2)
    校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余
  2. MCU接收到指令后执行相应的GPIO测试

  3. 测试完成后返回结果

    字段 长度 说明
    帧头 2 0x55aa
    版本 1 0x03
    命令字 1 0x92
    数据长度 2 0x0002
    数据 1 0x0D(子命令)
    1 0x00(成功)
    0x01(失败)
    校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

    返回说明:

    • 0x00:成功
    • 0x01:失败

2.2 音频回路测试(0x0C)*

此测试用于验证音频录音回采通路的完整性。

连接框图:

    语音板                       MCU
   ┌───────┐               ┌──────────┐
   │       │       ┌──────▶│ MIC      │
   │    SPK│───────│       │          │
   │       │       └──────▶│ AEC(REF) │
   │       │               │          │
   │    MIC|◀──────────────│ SPK      │
   └───────┘               └──────────┘

2.2.1 硬件要求*

  • 需要一个语音板产生音频信号
  • 语音板的SPK给到MCU的MIC和AEC
  • MCU的SPK输出环回到语音板的MIC
  • 语音回路测试8006仅做波形采集和播放,最终测试结果由语音底板输出给到上位机。
  • 注意MCU的回采电路未连通,连通会导致播放的时候再被采集回来。

2.2.2 测试逻辑*

  • MCU的GX_MICN接地由GPIOT2测试项进行验证。
  • 语音板产生音频信号例如1K
  • MCU在采集后进行播放,输出到语音板
  • 语音板检测收到的信号,验证回路是否正常

2.2.3 测试流程*

  1. 上位机模组发送测试指令

    字段 长度 说明
    帧头 2 0x55aa
    版本 1 0x00
    命令字 1 0x92
    数据长度 2 0x0003
    数据 1 0x0C(子命令)
    数据 1 0x00(麦克通道)
    0x01(回采通道)
    0xFF(结束测试)
    校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

    需要测试两次,一次麦克,一次回采,测试需要结束时需上位机发送结束测试。

  2. MCU返回执行结果

    字段 长度 说明
    帧头 2 0x55aa
    版本 1 0x03
    命令字 1 0x92
    数据长度 2 0x0002
    数据 1 0x0C(子命令)
    1 0x00(成功);0x01(失败)
    校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

    返回说明:仅作语音回路测试8006波形采集和播放是否执行成功的结果,最终测试结果由语音底板输出给到上位机。

  3. MCU接收到指令后启动对应通道的音频回路采集并播放

2.3 录音播音测试(0x0B)*

此测试用于验证芯片的MIC和喇叭是否正常。

2.3.1 硬件要求*

  • 需要连接好MIC和喇叭

2.3.2 测试逻辑*

  • MCU接收到指令后启动录音,录制指定时长的音频,并在录音完成后播放。通过听喇叭的声音判断是否正常。

2.3.3 测试流程*

  1. 上位机模组发送测试指令:

    字段 长度 说明
    帧头 2 0x55aa
    版本 1 0x00
    命令字 1 0x92
    数据长度 2 0x0002
    数据 1 0x0B(子命令)
    1 N(录音时间,单位秒,由于存内存限制,当前时间最大两秒)
    校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余
  2. MCU接收到指令后启动录音,录制指定时长的音频。这时开始说话,使MIC可以收到声音。

  3. 录音完成后自动播放录制的音频,听喇叭声音是否为刚刚说话的声音,判断是否正常。

  4. MCU 返回测试执行结果

    字段 长度 说明
    帧头 2 0x55aa
    版本 1 0x03
    命令字 1 0x92
    数据长度 2 0x0001
    数据 1 0x0B(子命令)
    校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

    返回说明:仅作软件是否执行成功的结果,具体是否有问题需要听喇叭声音。