浅谈DSP 算法存在的困难挑战

处理器/DSP

873人已加入

描述

  随着嵌入式应用越来越多地处理语音、视频和其他高速数据,对数字信号处理的需求已成为廉价、低功耗 MCU 的主要挑战——更不用说嵌入式开发人员了。MCU 制造商在一些 MCU 中添加了 DSP 功能以扩展其功能,创建了一类称为数字信号控制器 (DSC) 的 MCU。本文指出了 DSP 算法存在的困难,并研究了一些符合挑战。

  对速度的需求

  几乎所有 MCU 都可以处理基本控制应用,但实时处理高速音频和视频信号的计算量要大得多。DSP 涉及在将这些信号转换为数字形式后用于处理这些信号的算法和技术。需要不同的算法来增强图像、识别或生成语音,或压缩数据以进行传输或存储。完全用软件实现它们会慢得让人无法接受,因此需要某种硬件加速。

  即使通用 MCU 可以处理高速信号,其功率预算也会受到严重影响。添加专用 DSP 芯片或使用高速 RISC 处理器、FPGA 或 ASIC 可以解决这两个问题,但在成本、电路板空间和设计复杂性方面的成本要高得多。嵌入式开发人员的第一道防线是正确选择算法——为手头的任务找到计算密集度最低的算法;然后找到一个经过优化以处理这些算法的 MCU。

  数字滤波器

  几乎所有信号都需要某种滤波,无论是降低噪声、去除不需要的信号分量还是缩小输入波形。两种基本类型的数字滤波器是无限脉冲响应 (IIR) 和有限脉冲响应 (FIR)。IIR 滤波器是一种反馈系统,它根据当前和先前的输入以及先前的输出生成输出。实现 IIR 滤波器的计算强度低于 FIR 滤波器。然而,IIR 滤波器在稳定性、线性度和对量化噪声的敏感性方面存在问题。它们通常需要 32 位硬件才能有效地实现它们。

  FIR 滤波器仅根据当前和以前的输入生成输出;它们没有反馈回路并且本质上是稳定的;它们也不存在 IIR 滤波器所具有的相位线性和量化噪声问题。FIR 滤波器比 IIR 滤波器更易于设计,但计算量更大,因此设计人员需要注意速度和功率之间的权衡。FIR 滤波器可以在 16 位定点硬件中实现,如果 CPU 和乘法累加 (MAC) 单元足够快,甚至可以在 8 位 MCU 中实现。

  数据转换

  信号处理通常需要在时域和频域之间来回快速转换信号。支持 DSP 的 MCU 通常可以处理这些转换,而无需借助外部 DSP 或 FPGA。虽然离散傅里叶变换 (DFT) 广泛用于频谱分析、数据压缩和数据卷积,但它对 MCU 的计算量太大;因此,快速傅里叶变换 (FFT) 很受欢迎,它可以以更少的工作量提供相同的结果(图 1)。FFT 算法是一组非常适合 MAC 的加法和乘法。

数字信号控制器

  图 1:不同 N 的 DFT 和 FFT 复数计算(由 Silicon Labs 提供)。

  FFT 仍然是一种计算密集型算法,尤其是当样本数量 n 变大时。通过首先优化算法通常可以实现很大的速度节省;例如,删除不必要的计算和零和。然后寻找具有单周期 MAC、桶形移位器和其他硬件 DSP 优化的 MCU,以实现高速信号处理。

  几个示例

  Silicon Labs强调其 8 位C8051F12x和C8051F360 MCU 能够实时计算 FIR 滤波器算法,同时仍为其他任务留出充足的 CPU 资源。C8051F124 _包括一个 50 MHz/50 MIPS 8051 CPU 内核;8 位和 12 位 ADC;一个 12 位 DAC;8/16 位脉宽调制;256 字节的 RAM;和 128 KB 的闪存。每次通过 FIR 滤波器都需要乘法和累加,芯片的 MAC 引擎为此进行了优化。Silicon Labs 为其支持 DSP 的 MCU 提供了一个 FIR 示例,该示例利用了循环缓冲区和镜像优化,后者将向 MAC 的数据移动操作减少了大约 25%。对于希望进一步了解这一点的读者,Digi-Key 提供了 Silicon Labs C8051F360-TB 目标板,它带有示例 C 源代码。

  移动到 16 位,Microchip Technology DSPIC30F、DSPIC33E和DSPIC33FDSC 可以轻松处理高阶 FIR 滤波器。事实上,正是 Microchip 在 2002 年推出 6000 系列 DSC 时创造了“数字信号控制器”这个术语。此后,该公司创建了支持 DSP 的 MCU 产品线 (dsPIC)。所有 dsPIC MCU 都集成了 DSP 功能,包括单周期 16 x 16 MAC;40位累加器;双操作数获取;饱和和舍入模式;收费图书馆;和低成本的滤波器设计工具。

  70 MIPS dsPIC33EP256将单周期 MAC 与双数据提取相结合;两个 40 位宽的累加器;单周期、混合符号 MUL 加硬件除法;32位乘法支持;15个DMA通道;以及多达 7 个具有独立时序和 8.2 ns 分辨率的 PWM 对。dsPIC33E 可以处理一些相当复杂的滤波器应用(图 2)。Digi-Key 带有 Microchip 的产品培训模块“ dsPIC33F 架构简介”,其中提供了更详细的信息。DSPIC30F 演示板对于那些希望自己进行检查的人来说,它是一种开发和评估工具,支持许多用于传感器、电机控制和通用应用的 dsPIC30F 器件。

数字信号控制器

  图 2:dsPIC DSP 性能示例(由 Microchip 提供)。

  飞思卡尔的60 MHz 16 位MC56F8367集成了众多 DSP 功能,包括单周期 16 x 16 位并行 MAC;四个 32 位累加器;512 KB 程序闪存;数据闪存和数据 RAM 各 32 KB;两个 12 路输出的 PWM 模块;和具有 16 个自校准输入的 12 位 ADC。MC56F8367 旨在为汽车、工业控制、医疗、电源管理和家用电器应用提供“32 位性能和 16 位代码密度”。 德州仪器

  _ TMS320F2802是一款 60 MHz 32 位 DSC,具有 32 K x 16 闪存和 6 K x 16 SRAM。针对高速电机控制和 PFC 应用,TMS320F2802 包含一个双 MAC,可以执行 16 x 16 位和 32 x 32 位 MAC 操作;一个高分辨率 PWM 模块,可产生多达 16 个 PWM 输出;以及具有 2 x 8 通道输入多路复用器的 12 位 ADC,转换速率为 160 ns (6.25 Msample/s)。TI 的产品培训模块“电机信号链概述”解释了如何在典型应用中使用该组件和其他电机信号链组件。

  虽然瑞萨并未将其 DSP 优化的RX621 称为MCU 一个 DSC,它仍然满足所有条件:一个 32 位桶形移位器;基于 32 位寄存器的 MAC(最多 80 位结果);一个 8 通道、12 位 ADC;512 KB 程序闪存;和 96 KB 的 RAM。32 位 100 MHz RX621 包括一个单精度 FPU,支持加/减/比较/乘/除和其他 DSP 密集型指令。提供多种通信接口(CAN、以太网、I²C、SPI、USB)以适应广泛的应用。瑞萨“ RX Core ”产品培训模块更详细地解释了该芯片,而瑞萨 RX62N 演示套件让您可以对其进行实际评估。

  概括

  为 DSP 指令添加大型单周期 MAC、桶形移位器和其他硬件支持使 DSC 能够承担相对高速的信号处理任务。通过使用 DSC,嵌入式开发人员通常可以避免购买更昂贵的处理器或添加单独的数据处理芯片的成本。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分