微处理器 (MPU) 或 微控制器 (MCU)?为您的下一个设计选择合适的处理设备时应该考虑哪些因素?
什么是 MPU 和 MCU?
选择合适的设备作为新设计的基础可能会很困难。需要在价格、性能和功耗之间取得适当的平衡,这具有多方面的含义。首先,在进行设计时需要考虑直接的技术因素,但是,如果该设备(无论是 微控制器 (MCU) 还是微处理器 (MPU))成为一系列新产品平台方法的基础,那么该决定可能会产生深远的影响。
首先,让我们考虑一下 MCU 和 MPU 之间的一些主要区别。通常,MCU 使用片上嵌入式闪存来存储和执行其程序。以这种方式存储程序意味着 MCU 的启动时间非常短,可以快速执行代码。使用嵌入式内存的唯一实际限制是总可用内存空间是有限的。市场上大多数 Flash MCU 设备最多具有 2 MB 的程序内存,并且根据应用的不同,这可能是一个限制因素。MPU 没有同样的内存限制。它们使用外部存储器来提供程序和数据存储。程序通常存储在非易失性存储器中,例如 NAND 或串行闪存,并在启动时加载到外部 DRAM 中,然后开始执行。这意味着 MPU 启动和运行的速度不如 MCU 快,但可以连接到处理器的 DRAM 和 NVM 的数量可达数百 Mbytes,NAND 甚至可达 Gbytes。另一个区别是功耗。通过嵌入自己的电源,MCU 只需要一个单电压电源轨。相比之下,MPU 需要为核心、DDR 等提供几种不同的电压轨。开发人员需要使用板载附加电源 IC/转换器来满足这一需求。
从应用角度来看,设计规范的某些方面可能会以特定方式驱动设备选择。例如,所需的外围接口通道数量是否超出了 MCU 所能满足的数量?或者,市场规范是否规定了某种用户界面功能,而由于 MCU 不包含足够的片上内存或不具备所需的性能,因此该功能无法通过 MCU 实现?在进行首次设计时,如果了解到这一点,就很有可能会有许多产品变化。在这种情况下,很有可能会优先采用基于平台的设计方法。这就需要在处理能力和接口能力方面留出更多的“余地”,以适应未来的功能升级。
一个难以确定的属性是任何给定设计可能需要的处理性能。以 Dhrystone MIPS (DMIPS) 衡量的处理能力有助于量化这些标准。例如,基于 ARM Cortex-M4 的微控制器(如 Atmel 的 SAM4 MCU)额定为 150 DMIPS,而 ARM Cortex-A5 应用处理器 (MPU)(如 Atmel 的 SAMA5D3)可提供高达 850 DMIPS。估算所需 DMIPS 的一种方法是查看应用程序中可能需要大量性能的部分。为您的应用程序运行完整的操作系统(OS),例如 Linux、Android 或 Windows CE,至少需要 300–400 DMIPS。对于许多应用来说,直接的实时操作系统可能就足够了,50 DMIPS 的预留空间绰绰有余。使用 RTOS 还有一个好处,就是它需要的内存空间很小;通常内核只需要几 kB。不幸的是,一个完整的操作系统需要一个内存管理单元(MMU)才能运行;这反过来又指定了要使用的处理器内核类型,需要更多的处理器能力。
如果要运行数字运算密集度较高的应用程序,则需要在操作系统和其他通信与控制任务之外预留 DMIPS 空间。应用程序越基于数字,就越有可能需要 MPU。
微控制器与微处理器应用
无论预期应用是针对消费电子产品还是工业自动化,用户界面(UI)都是一个重要的考虑因素。作为消费者,我们已经熟悉并习惯使用丰富多彩、直观的图形用户界面。工业应用越来越多地使用这种操作员交互方式,尽管操作环境会限制这种方式的合理性。对于 UI 来说,有许多因素。首先,是所需的处理开销。对于在 Linux 上广泛使用的 UI 库(例如 Qt),80–100 DMIPS 的开销可能就足够了。第二个因素与 UI 的复杂性有关。动画、特效、多媒体内容越多,要显示的图像变化越大,所需的处理能力和内存也就越大。并且此要求随着分辨率的提高而增加,这就是为什么对于以 UI 为中心的应用程序来说,MPU 更适合。另一方面,较低分辨率屏幕上带有伪静态图像的较简单的 UI 可以通过 MCU 来处理。另一个支持 MPU 的理由是,MPU 一般都配备了嵌入式 TFT LCD 控制器。很少有 MCU 具有此功能。TFT LCD 控制器和其他一些外部驱动组件必须从外部添加。因此,虽然可以使用 MCU 实现,但开发人员需要查看整体 BOM。目前,一些带有嵌入式 TFT LCD 控制器的 Flash MCU 正在进入市场,但仍然必须有足够的嵌入式 SRAM 内存来驱动显示器。例如,QVGA 320 x 240 16 色格式需要 150 kB 的 SRAM 来馈送和刷新显示屏。这是一个相当大的 SRAM 专用容量,因此可能需要额外的内存,进一步增加了 BOM 并缩小了与 MPU 解决方案之间的差距。更复杂、更先进的图形用户界面,尤其是使用大于 4.3 英寸的屏幕时,需要使用 MPU。如果说 MPU 在彩色 TFT 屏幕上运行 UI 方面占据主导地位,那么 MCU 则是段式或点阵 LCD 控制以及其他具有串行接口的屏幕的王者。
连接设备
从连接性的角度来看,大多数 MCU 和 MPU 设备都可用,并具有所有常见的流行外围接口。但是高速通信外设(例如 HS USB 2.0、多个 10/100 以太网端口或千兆以太网端口)通常仅在 MPU 上找到,因为它们更有能力处理大量数据。是否有足够合适的信道和带宽来处理数据流量是一个关键问题。根据所使用的通信协议,应检查使用第三方堆栈对代码空间的影响。要求 高速连接的应用程序(尤其是与使用基于操作系统的堆栈相结合的应用程序)将需要基于 MPU 的设计。
推动 MCU 和 MPU 之间选择的另一个关键方面是应用程序对实时/确定性行为的需求。由于 MCU 中使用的处理器内核以及嵌入式闪存,并且考虑到所使用的软件是 RTOS 或裸机 C,MCU 肯定会在这方面占据领先地位,并将完美地解决大多数时间关键和确定性的应用程序。
MPU 和 MCU 的电源模式和性能
最后要考虑的一点是功耗。虽然 MPU 确实具有低功耗模式,但其数量和功耗都不如典型 MCU。由于支持 MPU 的外部硬件增加了一个因素,将 MPU 置入低功耗模式可能也会稍微复杂一些。此外,MCU 的实际功耗要比 MPU 低很多,例如在低功耗模式下,SRAM 和寄存器的保留功耗要低 10 到 100 倍。显然,这与操作系统所需的 RAM 量直接相关,因此需要供电才能立即恢复运行。选择基于 MCU 还是 MPU 的方法需要考虑很多决策,包括性能、功能和 BOM 预算。从广义上讲,MCU 通常用于成本优化解决方案,在这种解决方案中,严格控制 BOM 和省电至关重要。MPU 通常用于功能丰富且性能高的应用。MCU 通常用于超低功耗应用,例如遥控器、消费电子产品和智能电表,这些应用的设计重点是延长电池寿命,并且不需要或很少需要 UI 交互。它们还用于需要高度确定性行为的场合。MPU 非常适合基于操作系统的工业和消费应用,这些应用可能需要大量计算并且需要多个高速连接或丰富的 UI。
选择一家能提供高度兼容的 MCU 和 MPU 产品的供应商,您可以轻松地进行上下迁移,并最大限度地重复使用软件,从而获得最佳的长期投资回报。

