雷竞技注册
技术文章

如何选择用于数字信号处理应用的微控制器外设

2019年4月08日通过罗伯特Keim

本文继续讨论在您在DSP功能方面思考时尤其重要的微控制器功能和特征。

本文继续讨论在您在DSP功能方面思考时尤其重要的微控制器功能和特征。

微控制器可以是一种方便且经济效益的方法,可以将数字信号处理结合到可穿戴设备,医疗设备,音频设备和各种其他产品和系统中。然而,微控制器主要设计(毫不奇怪)控制事物,因此如果我们希望MCU是一个有效的信号处理器,我们需要仔细选择。

前一篇文章重点讨论了CPU特性,即位宽、时钟频率、每条指令的时钟周期和浮点能力。在本文中,我们将研究使微控制器更适合DSP功能的外围模块和特性。

处理器支持

一些硬件模块占据了CPU和典型外设(如计时器和比较器)之间的中间位置。一个常见的例子是硬件乘法器。

硬件乘法

在实时DSP系统中,硬件乘数可能意味着成功和失败的区别。重要的DSP应用,如数字滤波和频谱分析,需要大量的乘法运算,这些必须足够迅速地执行产生的结果在合理的时间内(从用户的角度来看),这是当事情真的可以成为挑战性速度等于或超过的速度数据从外部系统。

这个三角形冷杉过滤器结构表示乘法操作。

由于大部分微控制器应用程序不需要高级乘法功能,因此将乘数集合到处理器核心本身时通常没有意义。然后,硬件乘法器是从CPU接收数据的补充模块,执行高效的乘法,然后使得产生的数据可用于CPU。

硬件乘数实际上不仅仅是乘法。DSP例程通常需要一个称为乘法-累加(MAC)的过程,它(正如您可能已经猜到的那样)涉及多次相乘和对乘法运算的结果进行加法或累加。硬件MAC模块为提高DSP性能提供了更大的潜力。

包含在MAXQ615中的硬件乘数,来自Maxim的小而廉价的微控制器,执行符号和无符号的16位乘法,16位乘法和累积,16位乘法和减法。

直接内存访问(DMA)

我第一次了解DMA是在一个软件定义无线电这不得不在数字化基带信号上迅速执行解码算法,并且在时间敏感的数字信号处理中将其经验永久印象地印象。

DMA单元本质上是一个独立的处理器,它只有一个任务:移动数据。这个任务很简单,因此将DMA功能整合到项目中不会严重增加其复杂性,而且系统的DSP功率显著提高,因为CPU可以专注于处理数字,而不是在内存和外设之间变换数据。如果您的应用程序需要计算密集的实时DSP, DMA控制器可能是对您的MCU能力特别有价值的补充。

SAM4S微控制器上的DMA控制器(来自Atmel)允许我生成这个正弦曲面而没有不断掀起CPU,将下一个数据点发送到DAC。

沟通

数字信号处理不仅需要一个处理器,而且需要处理数字数据。在大多数情况下,这些数字数据来源于单片机之外,这意味着数据传输是DSP链中的关键一环。

并行数据传输

我喜欢并行接口,因为它们至少在理论上是简单的,但它们不太常见,而不是你想象的。同时传输八个甚至十六位比一次发送一位更有效,但即使在高速系统中也广泛使用串行接口。如果并行数据传输是系统中的选项,并且您希望尝试一下,请查看具有“外部存储器接口”(EMI或EMIF)的微控制器,“外部总线接口”(EBI),或沿这些行的其他东西。

串行数据传输

2C是不是一个高速接口,和标准UART.倾向于用于低或中等的数据速率。寻找那些通告最高时钟速率的外设,并且使用额外的信号在接收器和发射器之间进行同步(这允许数据信号完全用于实际的数据传输)。

我认为“USART”是我描述的那种串行通信模块的相当标准的缩写(“S”代表“同步”)。基本上我推荐的是一个相当于TI的微控制器“多通道缓冲串行端口——缩写McBSPMIC-BSP.,好像模块来自爱尔兰)在我的内存中提出,并将在我的脑海中永久关联,高速串行数据传输....

错误检查

需要健壮的错误检测的应用程序可以从硬件中获益CRC.模块。

这是一个硬件CRC模块集成到一个来自Silicon Labs的EFM8 Laser Bee微控制器的示意图。您给它一个字节序列,它使用一个标准的CRC多项式来生成一个16位的结果。

结论

我确实认为,在许多低强度和中等强度的DSP应用中,微控制器比数字信号处理器更可取,我希望这篇文章将帮助您识别能够可靠地执行您的项目所需的DSP任务的微控制器。

以前的文章介绍了微控制器系列: