Skip to main content

XVF3800 项目导入

阅读前确认

用户需要确认一下内容,以方便阅读下文

  • 已拥有了 PXVF3800-KIT

  • 已详细了解 XVF3800 内置的前端算法 AEC , BF , NS, AGC 等

  • 已使用 PXVF3800-KIT 已经通过 xvf_host 工具调试出理想的参数

  • 已确认 XMOS XVF3800 4 路麦克风阵列方案性能可满足导入项目产品中

概要

使用 XVF3800 作为 4 麦阵列方案的主控,需要了解硬件设计和软件设计,结合结构设计,才能使得产品顺利落地。并且根据我司现有的 XMOS 麦克风阵列方案,建议使用 XVF3800 来做视频通话产品(Comms 方向)

提示

如需要做语音识别(ASR 方向)建议使用我们 2 麦阵列方案 XVF3610 方案。

XVF3800 项目导入前,根据下文的描述需要了解以下几点:

  • XVF3800 的硬件框架的确定

  • 熟悉 USB 的对产测和测试的作用

  • XVF3800 的固件获取, 烧录和更新

  • XVF3800 DSP 算法参数

  • 麦克风阵列的外壳结构的声学设计

  • XVF3800 的产测需具备的设备和测试的流程

  • XVF3800 过认证需要提前准备的工作

XVF3800 硬件基本框架

XVF3800 芯片基本特性如下:

  • 商用温度等级(0 °C to 70 °C)

  • QFN60 封装

  • 345mW(I2S)/400mW(USB)(固件运行)

  • I/O 驱动能力为 4mA

  • 订购型号:XVF3800-QF60B-C; 丝印:V16A0VF3

XVF3800 硬件系统最小系统如下图。XVF3800 线形 4 路麦克风阵列根据音频传输接口的不同,大体分为如下三种硬件框架。用户根据项目需求选择其一,并且以确定硬件上是否需要设计 ADC 和 DAC。

image-20231229154025993

使用 USB 连接 Host | USB_in&out

Host 主机的音频传输都通过 XVF3800 的 USB 来输入输出,XVF3800 作为一个 USB Audio 声卡设备,产品应用一般为外置的拾音设备。 其框架如下图,其中:

  • XVF3800 前端信号处理完后,提供干净的声音(Comms)给 Host 进行会议通话,通过 USB 接口输入给 Host

  • Host 播放声音时通过 USB 声卡播放输出,XVF3800 为声卡设备,XVF3800 的 AEC 参考信号在 USB 音频播放传输过程中获取

  • XVF3800 USB UAC1.0 包含传输音频输入输出、xvf_host 和 dfu_usb,UAC 输入输出的音频格式为 16KHz/48KHz

    image-20231229154045456

使用 USB 连接 Host | Analog_ref

XVF3800 通过 USB 输入声音给 host 主控,Host 主控提供模拟 AEC 参考信号给 XVF3800。

其框架如下图,其中:

  • XVF3800 前端信号处理完后,提供干净的声音(Comms)给 Host 进行会议通话,通过 USB 接口输入给 Host

  • Host 提供播放声音的参考信号给 XVF3800 做回音消除的参考信号,ADC 采集 Host 端的模拟声音传输给 XVF3800

  • XVF3800 USB UAC1.0 包含传输音频输入、xvf_host 和 dfu_usb,UAC 输入的音频格式为 16KHz/48KHz

image-20231229154106230

使用 I2S 连接 Host| I2S_in&out

该框图不常用,仅推荐 XVF3800 需要连接 WiFi/蓝牙时使用,并且建议 Host(无线模组)的 I2S 需要做 I2S slave 模式,因为 XVF3800 需要音频时钟做 16KHz 的音频算法处理

其框图如下图,其中:

  • XVF3800 前端信号处理完后,提供干净的声音(Comms)给 Host 进行会议通话,通过 I2S 接口输入给 Host

  • Host 提供播放声音的参考信号给 XVF3800 做回音消除的参考信号,Host 通过 I2S 传输给 XVF3800

  • I2S 协议要求 16KHz/48KHz 16bit,64fs, 标准 I2S,其两路 I2S 共用时钟线 MCLK,BCLK,LRCLK

  • 预留 USB 接口,方便工程样机的调试和产测。

image-20231229154117414

XVF3800 固件基本框架

ASR 和 Comms 的选择

XVF3500 固件麦克风阵列算法 DSP 运行后,可同时提供两路前端处理后的声音信号输出,且其分别为用于语音识别(ASR,Automatic Speech Recognition )和用于会议电话(Comms, communication and conferencing)。用户根据产品需求,可以选择 ASR 信号和 Comms 信号同时输出,或者选择其中一个输出。

ASR ASR 信号主要是用于语音识别,接入类似 Alexa 等各大语音识别引擎平台,做语音交互使用。ASR 信号整体的特征是人声清晰,频谱比较丰满,降噪系数较小,以满足语音高识别率。

Comms Comms 信号主要是用于会议通话使用,类似接入微软的 teams, skype 和企业微信或者钉钉等会议产品使用。Comms 信号整体的特征是底噪比较小,由于降噪系数比较大,其频谱比较干净明显。

AEC 参考信号选择

XVF3800 支持立体声(stereo)AEC ,所以需要左声道和右声道的同时输入给 XVF3800 作为 AEC 的参考信号。AEC 回音消除所需要的参考信号有两种方式提供给 XVF3800

选择 USB UAC 提供 AEC 参考信号

USB UAC 作为声卡播放的时候,播放的声音信号经过 XVF3800 的时候,XVF3800 已经 copy 了参考信号提供给内部 AEC 算法模块使用。但是,后级的 DAC 和功放都需要保持线性输出,喇叭播放出的声音不能有 EQ 处理。如有 EQ 处理,则喇叭播放出来的声音跟已提供的参考信号已经失去了线性的对比,结果会导致 AEC 性能发挥不好。

选择 I2S(ADC)模拟提供 AEC 参考信号

需要增加 I2S 接口接入数字参考信号或者增加 ADC 接入模拟参考信号提供给 XVF3800 AEC 算法模块使用。建议在功放前提供左右声道信号提供给 ADC。同理,功放后级不能有 EQ 处理。

烧录方式的选择

XVF3800 芯片需要外置 QSPI Flash 来存储固件,XVF3800 上电读取 QSPI Flash 的固件后,便不再需要继续读取 QSPI Flash 的内容,XVF3800 可以使用 XMOS 专用 XTAG 进行烧录,也可以使用 flash 烧录器进行 QSPI Flash 芯片烧录 XVF3800 的 factory 固件。同时可以通过 dfu_usb 工具更新 dfu 固件。根据产线实际情况,进行评估和选择。

木瓜电子通常会提供 3 种后缀命名的固件,分别为 xxx.xe, xxx_factory.bin 和 xxx.dfu。这三者中,xxx.xe 和 xxx_factory.bin 都统称为 factory 固件,xxx.dfu 称为更新固件。其中

  • xxx.xe 固件由 XMOS IDE 编译生成,仅能通过 XTAG 调试工具烧录到 XVF3800 芯片,其烧录时间上,效率很低,调试时可使用

  • xxx_factory.bin 固件由 xxx.xe 通过 XMOS IDE 导出,仅能通过 spi flash 烧录器烧录,效率较高,量产推荐使用

  • xxx.dfu 更新固件由 xxx.xe 通过 XMOS IDE 结合 QSPI Flash 型号信息来导出,仅能通过 USB dfu_usb 工具进行更新固件。更新固件后,需要重启 XVF3800 才会正常运作更新后的固件。

important

使用 dfu_usb 工具进行更新固件的前提是:XVF3800 已经烧录了 factory 固件,XVF3800 能够正常运作,USB 能够在操作系统枚举成功,

xxx.xe 的烧录方式

用户需要拥有 XMOS 的专用XTAG 调试工具 ,并且下载和安装XTC15 IDE。 运行其 Command prompt 工具,确保上电 XVF3800 硬件和接好 XTAG,键入指令如下, Enter 键后,查看 XVF3800 和 XTAG 是否握手成功

xflash -l

键入类似如下的 XTAG 指令,Enter 键后烧录完毕即可

xflash xxx.xe --spi-spec xx_flash.spec

xxx_factory.bin 的烧录方式

建议直接烧录 flash 芯片,尽量避免 PCBA 烧录 flash 芯片。直接烧录 flash 芯片是最高效,且良率最高。 用户需要拥有支持 QSPI Flash 芯片的 flash 烧录器,在其上位机选择使用 QE=1 的烧录方式,类似操作参考下图:

  1. 检测芯片型号或者选择 UC25HQ16(其他的 QSPI flash 芯片也可以,不够需要结合芯片型号导出 xxx_factory.bin)

  2. 加载 xxx_factoy.bin 固件

  3. 打开配置选项

  4. 选择 QE=1,后确定

  5. 勾选写入配置

  6. 开始烧录

固件开发

木瓜电子可以为用户提供 factory 固件和 DFU 更新固件,用户采购一些 XVF3800 样品,可以申请由木瓜电子预烧录 factory 固件的 QSPI flash 芯片,在样机阶段,都可以使用 DFU 进行更新固件。

如用户需要整个固件源代码,可以在 XMOS 官网下载,或者发邮件到mic@pawpaw.cn向木瓜电子申请。提供源代码之后,客户结合文件包内的文档和 XMOS 官方的文档自行编程,木瓜电子不考虑在 XVF3800 的代码细节问题上提供技术解答。

声学要求

XVF3800 线形麦克风阵列的 DSP 性能跟声学和结构设计有很大关系。在硬件设计前,须提前先了解声学设计的要求。PDM MEMS 麦克风有两种拾音孔,分为顶部拾音和底部拾音,这两种麦克风的声学电气特性几乎一致。XVF3800 算法对麦克风电气参数要求不高,通常选择的特性在如下范围左右即可

  • Sensitivity: -26 dB FS

  • SNR: 64 dBA

  • AOP: 120 dB SPL

麦克风密封性

密封主要是为了确保麦克风的拾音孔仅在结构外壳的拾音腔孔获取外界的声音,避免声音进入到结构内部来回反射产生较严重的混响。声学设计参考下图 在硬件设计时,需要提前考虑麦克风的密封性的设计,通常产品是增加密封胶套来实现密封性能,并且在硬件上需要预留密封胶套的位置以吻合产品结构声学需求。

麦克风避震性

避震主要是为了喇叭播放声音时音腔产生的震动不传导到麦克风板,进而避免影响麦克风的拾音。建议在设计喇叭音腔跟麦克风有足够的距离,并且有绝对的隔绝。

麦克风声压

麦克风的 AOP 通常在 120 dB 左右,如果声音信号超过该值,则会导致麦克风拾音出现截幅,导致声音失真。

XVF3800 的 AEC 性能做到最高 50dB 抑制,建议喇叭的声音在麦克风端录音不超过 100dB。 如超过该值,则大概会有 50dB 以上的回音残余在输出的信号中,50dB 以上残余回音 较为容易被人耳辨识出来。体现的结果是 AEC 性能不好

喇叭和麦克风尽量避免同一朝向,建议形成 90 度或者 180 度的朝向

麦克风一致性

4 路麦克风拾音信号需要保持高一致性,在组装结构外壳是,需要统一录制 4 路麦克风原始信号,进行分析去一致性,重点是体现在幅值和频谱特性。

4 路麦克风信号的一致性要求为整个 XVF3800 项目的基本要求,阵列麦克风才能发挥其应有的性能

产线测试

XVF3800 导入试产量产阶段,须要确认产线具备 QSPI Flash 芯片的烧录以及录音测试。建议使用 8 通道的 factoy 固件, 确保 4 个麦克风正常运作,以及做信号一致性分析。

ch0:Comms; ch1:ASR; ch2:mic0; ch3:mic1; ch4:mic2; ch5: mic3 ch6: aec_ref_l;ch7: ace_ref_r

在确定无硬件问题之后,再使用 dfu_usb 工具更新最终的 1 通道或者 2 通道的 dfu 固件以实现最终产品。

产品过认证

XVF3800 解决方案能够通过 Alexa 的 ASR 认证和微软的 Skype 等 Comms 认证。如产品确定需要过认证, 在产品处于 basic 版本时, 用户需要有足够熟悉和了解 XVF3800 DSP 的参数以及阵列的各项知识。根据认证平台商的要求, 在产品调整 XVF3800 DSP 参数以实现过认证。由于每个产品的声学结构都会影响 XVF3800 DSP 参数的指示, 所以木瓜电子无法在认证方面提供 XVF3800 的 DSP 参考值,并且不参与整个产品过认证流程。