嵌入式开发:在Arm Cortex®-M CPU上开始使用数字信号处理(DSP)的5个技巧

更新时间: 2022-05-19 10:43:53来源: 粤嵌教育浏览量:7644

  数字信号处理 (DSP) 为开发人员提供了以灵活且经济高效的方式清理和分析复杂信号的能力,这一切都来自软件。当开发人员通常考虑 DSP 时,他们通常会想到昂贵的专用处理器,但现代微控制器(例如 Arm Cortex-M 处理器)现在包含 DSP 扩展,允许 DSP 算法在资源受限的环境中高效执行。在本文中,我们将探讨嵌入式开发人员在开始使用 Arm Cortex-M 处理器的 DSP 时可以遵循的几个技巧。

  技巧1 – 了解问题域

  在深入了解 DSP 之前,开发人员了解可以应用 DSP 的问题领域是很有用的。通常,DSP 应用于实时流式传输的数据信号,例如音频和语音处理,或静态信号,例如图像处理。DSP 应用范围广泛,例如声纳、雷达、语音识别、电信和控制系统等。

  DSP 在嵌入式系统中有几个非常常见的应用。首先,DSP 可用于将传统模拟电路转换为软件,这有很多好处。接下来,DSP 可用于创建数字滤波器,例如无限脉冲响应 (IIR) 和有限脉冲响应 (FIR) 滤波器。这些滤波器经常用于控制系统,例如电机控制系统,以消除传感器信号中的噪声。最后,开发人员可以使用 DSP 使用Fast Fourier Transform (FFT) 将时域中的信号转换为频域,从而分析信号的频率分量。

  技巧2 – 探索最新的 DSP 技术

  了解 DSP 为当今设计人员提供的功能的一个好方法是检查 DSP 技术的使用位置和方式。让我们先看看一些工具,然后是尖端应用程序。

  首先,有允许开发人员模拟、测试和部署 DSP 算法的高级工具,例如 MATLAB。MATLAB 为设计人员提供了一组 DSP 库,这些库可以组合在一个易于使用的界面中,以便在将算法部署到目标设备之前测试其行为方式。该工具还允许嵌入式开发人员生成在目标设备上执行的低级微控制器代码。MATLAB 功能广泛,可用于解决任意数量的 DSP 相关问题。

  其次,还有一些工具,例如 ASN 滤波器设计器,允许开发人员轻松创建数字滤波器。开发人员可以选择他们想要创建的滤波器类型,例如 IIR 或 FIR,然后在滤波器图上的点周围拖动以获得他们需要的滤波器响应。一旦实现了滤波器响应,设计人员就可以生成以多种不同格式实现滤波器的代码,包括与 Cortex-M CMSIS 兼容的代码。

  除了这些工具,开发人员还可以检查应用程序的用途,以深入了解如何使用 DSP。使用 DSP 的真正独特的解决方案是 Chirp。Chirp 使用音频将凭证信息从移动设备传输到边缘设备以进行配置。这消除了配置物联网边缘节点所需的所有额外步骤,这些步骤通常需要按住按钮一段时间,将其转换为接入点,连接到它,然后告诉它应该连接到哪个网络。Chirp 创新性地使用 DSP 将配置信息转换为音频流,所有这些都通过 DSP 算法进行处理,大大简化了设备设置。

  这些只是可用于 DSP 的工具和技术的几个示例,但嵌入式开发人员可以探索数百种工具和技术。

  






  技巧3 – 选择一个低成本的开发板进行试验

  开始使用DSP的最佳方式是亲自动手。这可以通过选择具有支持DSP扩展的 Cortex-M4处理器的开发板来完成。有很多板可供选择,比如基于S6E2CC系列微控制器的Cypress FM4入门套件和ST Microelectronics STM32F4-Discovery板。

  FM4入门套件非常适用于Donald S. Reay的示例,也可用于Arm的大学计划。STM32F4-Discovery板还有一个很棒的应用笔记,演示了Arm CMSIS 库。开发板还带有一个 LCD,可以让开发人员轻松显示转换和信号。

  无论选择哪种开发板,重要的是获得实践经验,而不仅仅是书本知识,才能成为精通的DSP开发人员。

  技巧4 – Arm CMSIS-DSP 库

  开发人员在开始使用 DSP 时可以利用的最佳资源之一是使用Arm CMSIS-DSP 库。CMSIS-DSP 库可以免费下载,包含 60 多种不同的 DSP 相关函数。这些函数旨在为嵌入式开发人员提供在 Cortex-M 处理器上开发快速高效的 DSP 算法所需的构建块。该库包含十种不同类别的函数,其中包括:

  基本数学函数,例如向量点积、向量乘法、向量加法

  快速数学函数,例如平方根、正弦和余弦

  复杂的数学函数,例如复杂点积、复数乘实乘法

  滤波器,例如 FIR、IIR、Biquad 和 Convolution

  矩阵函数,如矩阵乘法、复矩阵乘法

  变换,例如复杂 FFT 函数

  电机控制功能,包括矢量克拉克变换、矢量帕克变换、PID 电机控制

  统计函数,包括均方根 (RMS)、标准偏差、最大值和功率

  支持功能,例如将数据类型从浮点数转换为定点数

  插值函数。

  选择开发板进行试验后,下载 CMSIS-DSP 库是很好的第二步。

  






  技巧5 – 参与DSP社区

  开始使用DSP时,有许多在线资源可供选择,但嵌入式开发人员可用的最佳资源之一是在线社区。社区为开发人员提供了提问的机会,并让更有经验的开发人员分享他们的DSP知识。网上有几个不错的DSP社区,比如Arm Community和DSP相关的,这些社区是免费的,并且在他们的论坛上拥有一些知识最渊博的DSP专家,此外还有大量以前提出的问题 DSP资源。

  DSP 对于下一波嵌入式设备至关重要——但比以往任何时候都更容易实现

  DSP已成为嵌入式系统开发人员必不可少的工具。物联网、自动驾驶汽车(包括无人机)和人工智能等行业的快速增长正在推动对传感器的需求不断增长。为了以灵活、快速的方式处理来自这些传感器的数据,它们需要在软件中进行数字化处理。越来越不需要在昂贵的 DSP 处理器上执行此处理,因为它通常可以在 Arm Cortex-M 等微控制器上完成,尤其是在它具有 DSP 扩展的情况下。遵循本文中提供的技巧将帮助嵌入式开发人员快速有效地掌握 DSP。


免费预约试听课