浅谈FPGA与音频处理器的结合
FPGA通常是面向通信行业,尽管其主要开发者仍然专注于通信应用, 但他们越来越关注存储和服务器市场。
但是, 广阔的工业市场又如何呢?
通常, 工业市场的要求并不像存储、服务器或通信应用程序所要求的那样复杂。尽管围绕工业物联网(IoT)市场的大肆宣传, 目前尚不清楚工程师如何利用现有技术使其潜力成为现实。有一种技术在工业市场日益普及, 那就是音频处理技术。通过将音频处理器的功能与 FPGA 的灵活性结合起来, 可以支持许多创新应用程序。
音频处理器正如其名字那样, 它是一个优化处理声音的处理器。它经常利用基于 ARM 或者 RTOS的处理器架构, 有硬件, 如数字到模拟转换器(AD/DA) , 多个数字麦克风输入, 为可听频谱优化的硬件加速器, 以及 I2S 或 SPI 接口。音频处理器常常与软件或固件捆绑在一起, 这些软件或固件被设计用来执行某些回音消除或降噪功能。
FPGA 使用一种基于门的体系结构, 它是以并行方式处理信号的理想结构。它还有内存、硬件乘法器和累加器, 以及充足的 I / O 灵活性。一些 FPGA 被认为是 SoC, 因为它们有四核A级 ARM 处理器, 但当 FPGA 与音频处理器配对时, 这种水平的马力是不必要的。音频处理器的理想配对是一个通用的, 灵活的 FPGA, 或者一个 FPGA包含了 ARM Cortex-M3这样的微控制器。结合这种类型的 FPGA 音频处理器, 无论是否有 Cortex-M3, 都可以在独特的工业通信和控制应用程序中为许多任务创建了理想的分工。
智能摄像机的音频监听
音频处理器可以执行的一个有趣的功能是在使用两个麦克风时进行音频检测。例如, 在音频处理器中使用适当的固件, 设备可以确定与声音位置相关的程度信息。如果在设备前听到声音(例如在正北方向) , 这将被处理为"90度" 。如果声音来源于东北方位的右侧, 音频处理器将输出"45度" 此外, 固件可以在两个麦克风前面创建一个波束来减弱波束外的噪音源。利用 FPGA, 波束可以被引导到感兴趣的声源方向。
图1
如图1所示,这种类型的监视摄像机包括以下主要部件 :
1. 用来捕捉图片的图像传感器2. Animage signal processor (ISP) to handle the video data 一个图像信号处理器(ISP)来处理视频数据
3. 一个音频处理器来清理声音路径和确定音频源的位置
4. 一个FPGA 可以连接到音频处理器, 并实现一个电机控制算法, 将相机转向声音
这种类型的智能相机可以更密切地关注声音来源的图像。 FPGA 还可以用来连接一个基于 PCI的高速 Wi-Fi 模块来传输图像, 或者可以触发一些警告或报警功能。这种方法也可以用来引导摄像机和收听麦克风来优化视频会议的性能。在这个应用程序中, 音频处理器将被用来检测声音的发源地, 通过使用 beamform来听谁在说话。在 FPGA 的控制下, beamform 不会将摄像头对准声音, 而是直接对准说话的人。
工业 IoT 声音检测应用
另一个由 FPGA 启用的工业 IoT 应用是维护、诊断和故障预防(图2)。想象一下, 有足够敏感的听觉, 能够知道电动机或其他运动部件什么时候会变得虚弱, 什么时候会失败。工业物联网的相关例子包括电梯发动机或地面钻头。通过使用音频处理器和 FPGA 对弱化电机或钻头的声音分布和监测, 可以防止产品故障和下降时间。
图2
为了实现这种解决方案, 音频处理器中插入声音配置固件, 以便监视与即将发生故障有关的音频签名。对于电动机应用程序, 这个签名可能是一个轴承发出的声音,例如,开始崩溃或者一个钻头的声音变得更高的音调, 因为它变得更加迟钝和工作更加努力。通过音频处理器中的声音轮廓, 解决方案接着听, 并不断匹配声音与存储的故障配置文件。与此同时, FPGA 与音频处理器进行通信, 并与网络或其他外围设备进行通信, 以继承这个状态。如果 FPGA 包含 ARM Cortex-M3, 它可以运行一个轻量级 TCP / IP 协议栈, 并通过以太网或无线标准发送信息。当然, 其他的通信功能也可使用, 比如 CAN 总线, USB, 或者专有协议。
当音频处理器检测到弱化条件的声音轮廓特性时, 它会向 FPGA 发出信号, 然后立即通过网络传递这些信息。通过早期捕捉失败的条件, FPGA 也可以被编程, 以触发系统覆盖的响应。以电梯为例, FPGA 可以等到确认电梯已经到达一楼, 所有人都出去了, 然后通知中央控制系统电梯已经停止运行。其他可以使用的例子包括汽车电动机、流体管道和其他物联网应用。如果声音剖面被很好的理解, 这种方法甚至可以用来触发维护的呼叫, 因此停机时间将被大大减少。
本地音频存储和播放
配对音频处理器和 FPGA 的解决方案对于最有效地在本地实现音频存储和检索的应用程序也很有用。这包括家庭自动化应用程序或加密音频的安全保护。
在这些例子中, 音频处理器接收声音或声音, 并通过 I2S 总线将其传递到 FPGA。然后, FPGA 将数据格式化, 存储在 SPI Flash 或其他存储中。这个设计也允许从 SPI Flash 通过 FPGA 回放到音频处理器上。此类设计的其他选项包括为安全应用程序加密和解密音频。另外, FPGA 还可以方便通信, 以便远程提供音频。
参考方案
最近, Arrow Electronics公司创建了一个硬件工具包来展示音频处理器和 ARM Cortex-M3 FPGA 所能提供的灵活性(图3)。 Microsemi SmartFusion2(SF2)评估工具包有一个音频处理器和PGA。该工具包具有机载闪存和 DDR 存储器, 以及 USB 和以太网接口。此外, 通过利用 Arduino 连接器集和 PMOD 接口, 可以添加一些外围选项。
图3
这个工具包创建了一个完整的 HDL 和 C代码参考设计, 允许存储多达四种不同的音频记录, 并支持播放控制。
有许多独特而引人注目的应用程序可以通过音频处理器和 FPGA 的组合来实现。音频处理器执行检测或监听事件的任务, 而 FPGA 则用于提供自定义响应。当然, 额外的 FPGA 逻辑还允许定制函数或者其他逻辑要求, 例如桥接、硬件加速或协议通信, 所有这些都可以通过硬件解决方案、参考设计和音频软件来探索实现。
(编译自 www.embedded-computing.com)