如何选择微控制器MCU或微处理器MPU

作为嵌入式系统的“大脑”,处理器对系统的整体成功或失败有很大的影响。
因此,选择合适的设备非常重要。这些器件大致分为微控制器(MCU)和微处理器(MPU),并有各种不同类型,型号和尺寸。在MPU或MCU之间进行选择可能是一项复杂而艰巨的任务。本文将列举这些类型设备的一些主要选择标准。

处理能力
最重要的考虑因素就是工作绩效了;MPU提供比MCU同类产品更强大的处理能力。通过比较引用的Dhrystone MIPS(每秒数百万条指令 - 器件数字),可以对器件进行广泛比较。Dhrystone MIPS(通常缩写为DMIPS)是衡量设备完成任务的速度的基准指标,该任务在某种程度上类似于处理器上的实际负载。
对于大多数嵌入式系统,这是操作系统OS。基本的RTOS可能只需要50 DMIPS; 与Linux,Android或Windows CE等全功能操作系统相比,这可能需要6-8倍。

如何选择微控制器MCU或微处理器MPU_第1张图片

特别对于数学密集型应用,将需要额外的处理能力,增加了需要MPU的可能性。另一方面,如果应用程序需要实时确定性行为,那么MCU将是更好的选择; MCU的时序确定性处理器内核和闪存的组合使其适用于要求功能安全的应用。由于确定性应用通常将软件保持在最低限度,使用RTOS或裸机C,MCU通常具有足够的性能来支持这一点。
此阶段需要考虑的另一件事是图形用户界面GUI。即便是当今最平凡的工业应用也需要丰富多彩的GUI。随着消费者对电子设备的花哨图形和动画的期望越来越高,消费者应用程序的要求也越来越高。您选择的GUI的复杂程度将影响您是否决定使用MCU或MPU进行项目,因为复杂的GUI需要比简单的GUI有更多的处理能力。MCU可能适用于具有简单GUI的系统,可能是具有伪静态图像和低分辨率屏幕的系统; 而以GUI为中心的应用可能需要MPU的处理能力。

记忆
此外,要考虑的下一个功能是内存。MCU和MPU具有完全不同的存储器方法。
MCU通常具有片上闪存来存储和执行程序。闪存可以非常快速地访问,因此可以非常快速地启动和运行程序。但是,由于嵌入了这种内存,因此,如果程序在开发过程中显着增加,则很难增加容量。
有可能将设备换成同一系列中具有更多内存的部件,但这只能到目前为止。MCU的典型内存限制约为2 MB。
另一方面,MPU使用外部存储器进行程序和数据存储,提供更大的灵活性。外部NAND或串行闪存通常用于存储程序,然后将其加载到外部DRAM中; 因此,启动过程比MCU的片上存储器需要更长的时间。但是,容量可以是几百兆字节(NAND的Gbytes)。

功率和价格
功耗明显优胜者是MCU,通常比MPU低几个数量级。它们具有多种低功耗模式,某些系列产品专为超低功耗应用而设计。同时,使用MPU进行低功耗设计可能会非常棘手。一些具有低功率模式,但是这些模式很少且很远,并且外部存储器的使用意味着将MPU置于其低功率模式可能更复杂。
另外权衡的一个非常重要的考量因素是价格。显然,无论选择与否,MCU或MPU的价格都将发挥重要作用。在这种情况下,MCU代表了成本优化的解决方案,通常也代表低功耗选项。但是它有所需的性能吗?MPU通常用于高性能应用,但您能负担得起吗?是否有可用的电池,能够以合理的BOM成本在两次充电之间达到所需的时间?需要非常仔细地考虑这种平衡。

其他考虑
需要考虑的其他事项可能包括设计的简单性,特别是在非常紧迫的上市时间期限内工作时。例如,MCU只需要一个电源轨,而MPU需要几个不同的电压轨用于内核,DDR和其他模块,因此板上需要额外的电源转换器,这增加了设计的复杂性和成本。
系统需要LCD吗?如果是这样,则需要LCD控制器,如果选择了MPU,则可能有一个内置控制器。并非所有MCU都配备了片上LCD控制器,因此需要更多的外部元件才能实现。一些带有片上TFT LCD控制器的MCU已经上市,但检查是否有足够的嵌入式SRAM供给和刷新显示器是有意义的。如果没有足够的片上功能,为此任务添加额外的外部存储器可能是一种解决方案。
另一方面,如果应用程序特别低成本或低功耗,则可以考虑更改为段或点阵显示器,这将允许使用较低规格的MCU。
连通性是选择处理设备的另一个因素。需要与第三方(基于OS的)堆栈进行高速连接的设计通常使用MPU,因为它们能够更好地处理和处理与HS USB 2.0或千兆以太网交换的数据量。也就是说,MCU几乎可以与所有潜在的外围接口组合一起使用,但应仔细检查相关应用所需的通道数和带宽。
最后但同样重要的是:规划未来。最终产品是否可能被制成需要不同尺寸处理器的产品系列?产品是否可能演变成需要更强处理能力的更大,更好的版本?或者下一步是低功率版本?在这些情况下,选择具有各种兼容的MCU和MPU产品的供应商将有助于在时机成熟时最大限度地重复使用软件。

你可能感兴趣的:(嵌入式,操作系统,移动开发)