基于ARM的处理器是无处不在的MCU世界,经常有一些可以从相同的MCU供应商。每个ARM CPU进行了优化一类特殊的加工要求,从低端功耗受限应用的高功率性能优化,双核的应用。当今最流行的ARM CPU的MCU设备似乎是皮质的CPU。你如何决定哪些的ARM Cortex的CPU是正确的为您的应用?让我们通过观察示例实现,这将帮助你决定哪一种适合您的下一个设计探索出一些比较流行的Cortex-的MCU之间的主要区别。
许多选项
这不是寻常的发现一个MCU系列内的许多不同的ARM Cortex的CPU。皮质CPU和可选的扩展解决各种应用需求,但都具有向后兼容的指令集,如图1和Cortex-M0 / M0 + / M1系列开始,指令集是针对通用数据处理和IO任务。在Cortex-M3 CPU增加了先进的数据处理和加速更复杂的控制和通用计算任务位域操作指令。在Cortex-M4的CPU增加数字信号处理(DSP)指令,并提供单指令多数据(SIMD)操作,其中相同的数据处理指令可以在同一时间上的多个数据源的操作。这些特殊能力可以大大加快复杂的数据处理任务,像那些在音频和视频应用中。在Cortex-M4 CPU还可以添加一个浮点单元(FPU)时的性能和精度是目标算法两个重要因素。模拟检测和电机控制,例如经常使用浮点其精度,但高性能需要快速控制回路闭合。
图1:的ARM Cortex微控制器指令集兼容。
这regular-和向后兼容的指令集的一个关键优势(ARM和意法半导体提供)是MCU制造商可以为特定的应用进行优化的设备,而“涵盖了所有的赌注”由具有向上兼容性,如果在算法中的生长在复杂目标系统的寿命。例如,有多少次你需要的,以便在开发过程中,以满足新的需求添加更复杂的功能呢?在Cortex指令集架构(ISA)的向上兼容性,使这个容易。在某些情况下,可以简化目标体系结构也一样,因为向下兼容性允许用户以降低成本,如果较低的性能是可以接受的。意法半导体STM32其MCU系列中使用了多种的ARM Cortex处理器。图2示出的各种皮质CPU和与每个微控制器系列相关的关键硬件功能。请注意,在Cortex-M0的CPU上使用入门级STM32F030 / 50/051设备,而皮质-M4与DSP和FPU上使用高性能STM32F4xx(如STM32F401RCT6)和STM32F3xx设备。中档设备使用的Cortex-M3的CPU,其中所述更复杂的DSP和FPU指令不要求有尽可能高的性能。(这些指令可以有多个指令,如果需要得到执行,大多数编译器的硬件实现和多周期的“软”的实现之间进行切换提供了相当透明的方法。)
图2:STM32F系列MCU的Cortex的CPU和主要硬件功能。
其他厂商也支持ARM的Cortex微控制器的多种口味,往往在广泛的性能和成本范围。 Silicon Labs公司,例如,有EFM32系列MCU(如EFM32ZG222F32-QFP48)使用了ARM的Cortex-M处理器。低端低功耗GZ系列采用了Cortex-M0 +的CPU,而中档TG,G,LG和GG系列中采用的Cortex-M3 CPU。高端WG系列采用了Cortex-M4 CPU与DSP和FPU增强。有使得可以10个不同的封装选项,用少许预先规划,迁移从一个CPU类型到另一个,使其更容易适应变化的要求或提供使用相同的基本设计不同的产品。
皮质-A架构
在Cortex-M的架构是一个非常流行的一种具有MCU厂商,但在Cortex-A架构也显示出在厂商的设备为好,经常在主控板,其中大型外部存储器用于指令和数据。皮质-A的CPU是非常高性能的应用进行了优化,往往像视频播放和先进的安全功能的要求。爱特梅尔的Cortex-A5型SAMA5D4微处理器,如(图3),采用了Cortex-A5 CPU带有2×32KB的一级缓存和128KB的二级缓存来加速处理性能。片上DDR2 / LPDDR / LPDDR2控制器访问从外部存储器所以非常大的程序和数据集可以使用的指令和数据。视频处理算法,例如,可需要非常大的数据集和也非常大的程序。硬件子系统提供了安全性,连接性,控制和用户界面,简化创建复杂的人机界面和相应的控制系统显著的能力。
图3:爱特梅尔SAMA5D4 MPU框图。
SAMA5D4还支持两个重要的Cortex扩展功能 - Trust区段和NEON。 Trust区段支持安全的代码执行。通常一个处理器需要执行某些与安全相关的功能(如安全PIN输入,或密码保护),以及某些正常程序功能(例如,图形显示或菜单选择例程)。信任区的硬件扩展,允许程序员来保护安全相关的功能正常访问和潜在的安全攻击。即使是调试功能可以限制只是正常的程序,以进一步保护安全程序窥探和类似的攻击。该NEON扩展提供显著的处理性能改进SIMD的算法。为NEON扩展共同目标是多媒体信号处理的2D / 3D图形,视频编码/解码,和声音合成。 NEON有自己独立的管道和寄存器文件,并且可以支持无/有符号的8位,16位,32位,64位,和单精度浮点的32个寄存器,可视为64或业务128位宽根据指令。 NEON通常可以提供显著的性能提升非SIMD实现;在复杂的视频编解码器60-150%的性能提升是一个典型的例子。
多核CPU的解决方案
ARM Cortex的CPU也呈现出了多核MCU实现。这些设备有时具有两个不同性能的CPU,1非常高性能的“繁重”的目标应用程序的功能,以及用于管理通信端口,用户接口的较慢的高性能CPU和类似的低层次的控制功能。其他多核设备具有相同类型的CPU,只是复制,可以很容易划分和分配较少,专门的处理功能,实现处理和电源效率的平衡。例如,一个CPU可处于低功率等待状态(或许在一个“慢”数据时段)放,如果它不需要满足性能要求,然后转向时,需要额外的处理上。德州仪器在其协奏曲系列MCU如图4所示(作为一个例子见F28M35H52C1RFPT)增加了ARM Cortex-M3处理器广受欢迎的C28x CPU提供控制和连接在一台设备的简单的解决方案。在C28x的CPU进行了优化实时控制,它可以利用其15年以上的DSP的应用体验。在ARM Cortex-M3 CPU进行了优化,通信应用,它可以利用广泛的ARM生态系统的通讯驱动程序(以太网,USB,CAN,SPI等)以及强大的调度和O / S的支持。
图4:双CPU内核协奏曲™MCU系列德州仪器。
匹配您的应用程序,以正确的ARM Cortex的CPU
你可以找到的ARM Cortex处理器在多种微控制器系列的几乎所有MCU厂商。为了通过确定的指令集来匹配合适的Cortex的CPU与您的应用程序,你应该开始为你的应用程序最合适的。特别是,看看是否像浮点或DSP先进的数据处理能力是必需的。你需要更先进的功能,如NEON或Trust区段?也许你的应用程序更多的控制导向和低功耗是一个关键要求?如果是这样,简单M0架构可能是正确的配合。中档的设计可以充分利用Cortex-M3的CPU,并选择基于连接的需求和其他关键外设设备 - 你通常有最多的选择中档设备,从你的MCU制造商。如果您的需求,在设计阶段改变你可能希望能够迁移到一个功能更丰富的设备或功能更瘦设备。在这种情况下,选择一个MCU系列支持设备之间轻松迁移可能是重要的。您还可以使用大的ARM Cortex生态系统,以充分利用成熟的驱动程序,实时操作系统,功能特定的库和开发工具链。不管是什么的ARM Cortex的CPU,你选择你可以肯定会有一个强大的生态系统以简化设计。
责任编辑:gt
-
处理器
+关注
关注
68文章
19275浏览量
229744 -
mcu
+关注
关注
146文章
17141浏览量
351097 -
控制器
+关注
关注
112文章
16350浏览量
177944
发布评论请先 登录
相关推荐
评论