如何为数字信号处理应用选择微控制器
本文讨论了当您需要 MCU 作为系统控制器和数字信号处理器时应该寻找的功能。
本文讨论了当您需要 MCU 作为系统控制器和数字信号处理器时应该寻找的功能。
数字信号处理可以为各种产品和应用添加有价值的功能。即使是受成本、外形或进度限制的设计也可以轻松地结合 DSP 的优势,因为如今工程师可以访问大量价格低廉且相对用户友好的库代码、示例项目和高性能处理器.
真正的数字信号处理器——例如德州仪器 (TI) 的 C5000 系列或 ADI 公司的 SHARC 系列——可能是一个令人生畏的器件。我主要与德州仪器 (TI) 的 DSP 合作,总体而言,这次体验富有成效且令人满意。但是,那样的话我就不用设计电路板了,也没有享受尝试调试奇怪的系统崩溃和了解操作系统细节的过程。
毫无疑问,某些计算密集型 DSP 任务将需要真正的数字信号处理器甚至 FPGA。不过,在许多应用中,正确选择微控制器就足够了。本文讨论了当您想要确保您的 MCU 具有足够的 DSP 能力时需要关注的特性和功能。
8 位、16 位还是 32 位?
这个问题没有你想象的那么简单。一般来说,16 位和 32 位器件更适合 DSP 应用。数字信号处理涉及的数学过程往往会导致大数,而您需要一个可以直接处理这些大数的处理器。
但是,8 位处理本身并不坏,如果您知道将处理有限范围的数字值,那么 8 位微控制器可能是一个不错的选择。
此外,工程师通常没有时间或兴趣研究处理器的底层细节,因此很难在指定的位宽和实际计算效率之间建立明确的联系。例如,“32 位微控制器”是否有 32 位寄存器? 32 位 ALU? 32位地址总线? 32位通讯接口? “32位”究竟是什么意思?这些细节可能会影响您的决定,特别是如果您希望主要处理不需要所有这些额外位的小数字。
这种现代化的 8 位架构由 Silicon Labs 开发(图取自本文档)。他们警告不要假设 16 位或 32 位设备将始终优于 8 位设备。
时钟速度
微控制器的最大时钟频率无疑是其作为数字信号处理器优点的一个很好的指标。但是,了解每秒时钟周期数和每秒指令数之间的区别至关重要。处理器通过执行指令来完成DSP任务,因此其性能受时钟频率和执行指令所需时钟周期数的影响。
不幸的是,这个问题很快变得相当复杂。一条指令所需的时钟周期数从一条指令到下一条指令不同,平均值 使用流水线架构可以减少每条指令的时钟周期数。然后,你必须考虑“每条指令的功能”的数量——即,也许微控制器 A 只需要一条指令来做一些需要微控制器 B 上多条指令的事情。
此图传达了流水线处理器的概念。有关更多信息,请参阅此文章。科林 M.L.伯内特 [CC-BY-SA-3.0]。
这是我的简要建议:如果您要比较同一系列的设备,请选择更高的时钟频率。如果您要比较具有主要架构差异的设备,请尝试找到一个可靠的规范,以指示指令执行速率(表示为 MIPS,每秒数百万条指令)或每条指令的平均时钟周期数。
定点与浮点
术语“浮点”是指一种数字表示,其中小数点可以“浮动”,因为该数字由整数部分(尾数)和指数组成。替代方案(“定点”)对应于我们通常在普通微控制器中处理和感知数据的方式。仔细比较浮点运算和定点运算绝不是一项简单的任务,但似乎有一个共识,即浮点处理在数学密集型应用中可以更胜一筹。
我认为可以肯定地说所有微控制器都是定点设备,因为在我看来,如果它真的是一个浮点处理器,它就不再是微控制器了。但是,如果您真的决心在微控制器领域内最大限度地提高数学性能,则应该考虑使用包含浮点运算的设备co 处理器。
NXP 的 LPC3180FEL320 是一款 16/32 位基于 Arm 的微控制器,具有浮点协处理器,可实现高达 220 MIPS。 STMicroelectronics 还拥有包含浮点单元 (FPU) 的 STM32 微控制器。
我在我的圆形触摸传感器项目中使用了一些浮点数学。在大多数情况下,单独的 FPU 是不必要的——编译器擅长在典型的微控制器中实现浮点变量。
回顾
在本文中,我们探讨了使微控制器或多或少适合 DSP 应用的 CPU 特性。我认为在大多数情况下,关注位宽和 MIPS 是有意义的——除非您计划对 MCU 进行一些严肃的数字运算,否则您无需过多担心浮点与定点。我们将在下一篇文章中继续这个话题,将讨论与 DSP 相关的外设特性。
微控制器系列介绍
这篇文章是更大系列的一部分。您可以在下面找到其余的文章:
- 什么是微控制器?无数电子设备中的核心部件简介
- 如何为您的应用选择合适的微控制器
- 如何阅读微控制器数据表:简介和第一步
- 如何阅读微控制器数据表:探索硬件
工业技术