基于STM32的嵌入式系统应用
上QQ阅读APP看书,第一时间看更新

1.5 Arm Cortex系列处理器

Arm处理器发展到现在,其内核架构已从Arm v1发展到Arm v8。图1-5所示为具有代表性的Arm v4到Arm v7架构的进化图,其对应的内核命名也从Arm7、Arm9到了Arm11。Arm处理器内核进化到Arm v7架构后,已经不再沿用过去的数字命名方式,而是冠以Cortex的代号。

图1-5 Arm内核架构的进化

虽然Arm7仍然是一款普林斯顿结构的处理器,但是从Arm9开始,Arm处理器已经成为典型的采用哈佛结构的RISC处理器。

Arm Cortex系列处理器是基于Arm v7架构的,分为Cortex-A、Cortex-R和Cortex-M三个系列。基于v7A架构的处理器称为Cortex-A系列,基于v7R架构的处理器称为Cortex-R系列,基于v7M架构的处理器称为Cortex-M系列。

Cortex-A系列处理器主要用于高性能场合,是针对日益增长的运行Linux、Windows、Android操作系统的移动互联设备和消费电子产品需求设计的。

Cortex-R系列处理器主要用于实时性(Real Time)要求比较高的场合,针对的是需要运行实时操作系统来控制应用的系统,包括汽车电子、网络和影像系统。

Cortex-M系列处理器则主要用于微控制器(Microcontroller,MCU)领域,是为那些对功耗和成本非常敏感,同时对性能要求不断增加的嵌入式应用(如汽车电子、家用电器、工业控制、医疗器械、玩具和无线网络等)设计的。

表1-1所示为Cortex内核推出的时间,其中Cortex-M系列已由2004年推出的M3内核发展到2016年推出的M33内核;Cortex-R系列由2011年推出的R4内核发展到2016年推出的R52内核;Cortex-A系列又分成了32位和64位两个子系列,由2005年推出的A8内核发展到2017年推出的A55/A75内核。

表1-1 Cortex内核推出的时间

本书主要关注用于微控制器领域的Cortex-M内核,图1-6所示是按照运算能力强弱排列的Cortex-M系列内核发展进化图,注意内核的序号并不代表内核推出的时间顺序。

图1-6 Cortex-M内核的进化

Cortex-M3内核于2004年10月发布,是面向普通嵌入式市场的高性能、低成本的Arm处理器;

Cortex-M1内核于2007年3月发布,是专门面向现场可编程门阵列(Field Programmable Gate Array,FPGA)中应用设计实现的Arm处理器;

Cortex-M0内核于2009年2月发布,目标是打造极低成本、极低功耗的Arm处理器,M0内核并非M3内核的简化版,与采用哈佛结构的M3内核不同,M0内核采用的是普林斯顿结构;

Cortex-M4内核于2010年2月发布,在M3内核的基础上增加了浮点运算、数字信号处理(Digital Signal Processor,DSP)等功能,以满足数字信号控制市场的需求;

Cortex-M0+内核于2012年3月发布,在M0内核的基础上进一步降低了功耗并提高了性能;

Cortex-M7内核于2014年9月发布,在M4内核的基础上进一步提升了计算性能和数字信号处理能力,主要面向高端嵌入式市场。

基于性能价格比考虑,目前市场上中端控制应用领域仍然以采用Cortex-M3系列处理器为主,其具有以下特点。

(1)Cortex-M3的速度相对早期用于控制领域的Arm7快三分之一,功耗低四分之三。

(2)Cortex-M3完全基于硬件进行中断处理,具有更快的中断速度。

(3)Cortex-M3拥有非常高的性能和极低的中断延迟,支持多达240个外部中断,内建了嵌套向量中断控制器(Nested Vectored Interrupt Controller,NVIC)。

(4)Cortex-M3的低成本、高效率再加上强大的位操作指令,使其非常适合数据通信应用,尤其是无线网络(如ZigBee和蓝牙通信等)。

(5)目前在市场上已经有很多基于Cortex-M3内核的处理器产品,最便宜的价格甚至低于1美元,非常适合对价格敏感的消费类电子产品。