在中国,熟悉单片机的人士大多会听说过STM32。这是意法半导体(STMicroelectronics, 简称ST)的32位微控制器(MCU)家族,基于ARMCortex-M内核。
2007年,STM32F1诞生。这是业界首款搭载ARM Cortex-M3内核的32位MCU,采用180nm闪存工艺,配有128KB闪存和20KB RAM,运行主频为72MHz,在当时属于相当高的配置。
随后的10年内,STM32产品线相继加入了基于ARM Cortex-M0、Cortex-M4和Cortex-M7的产品,产品线覆盖通用型、低成本、超低功耗、高性能低功耗以及甚高性能类型。
这里需要补充一下ARM公司知识点。
ARM公司在经典处理器ARM11以后的产品改用Cortex命名,老式的则命名为Classic系列,并分成A、R和M三类,旨在为各种不同的市场提供服务,见下图。
Cortex系列属于ARMv7架构,ARMv7架构定义了三大分工明确的系列:“A”系列面向尖端的基于虚拟内存的操作系统和用户应用;“R”系列针对实时系统;“M”系列对微控制器。
由于应用领域不同,基于v7架构的Cortex处理器系列所采用的技术也不相同,基于v7A的称为Cortex-A系列,基于v7R的称为Cortex-R系列,基于v7M的称为Cortex-M系列。
ARM Cortex™-A 系列应用型处理器可向托管丰富OS平台和用户应用程序的设备提供全方位的解决方案,从超低成本手机、智能手机、移动计算平台、数字电视和机顶盒到企业网络、打印机和服务器解决方案。高性能的Cortex-A15、可伸缩的Cortex-A9、经过市场验证的Cortex-A8处理器和高效的Cortex-A7和Cortex-A5处理器均共享同一架构,因此具有完全的应用兼容性,支持传统的 ARM、Thumb指令集和新增的高性能紧凑型Thumb-2指令集。
Cortex-A15 和 Cortex-A7 都支持 ARMv7A 架构的扩展,从而为大型物理地址访问和硬件虚拟化以及处理 AMBA4 ACE 一致性提供支持。同时,这些都支持big.LITTLE 处理。
ARM在Cortex-A系列处理器大体上可以排序为:Cortex-A57处理器、Cortex-A53处理器、Cortex-A15处理器、Cortex-A9处理器、Cortex-A8处理器、Cortex-A7处理器、Cortex-A5处理器、ARM11处理器、ARM9处理器、ARM7处理器,再往低的部分手机产品中基本已经不再使用。 需要指出的是,单从命名数字来看Cortex-A7似乎比A8和A9低端,但是从ARM的官方数据看,A7的架构和工艺都是仿照A15来做的,单个性能超过A8并且能耗控制很好。另外A57和A53属于ARMv8架构。
ARM Cortex-R实时处理器为要求可靠性、高可用性、容错功能、可维护性和实时响应的嵌入式系统提供高性能计算解决方案。
Cortex-R 系列处理器通过已经在数以亿计的产品中得到验证的成熟技术提供极快的上市速度,并利用广泛的 ARM 生态系统、全球和本地语言以及全天候的支持服务,保证快速、低风险的产品开发。
许多应用都需要 Cortex-R 系列的关键特性,即:
高性能:与高时钟频率相结合的快速处理能力
实时:处理能力在所有场合都符合硬实时限制
安全:具有高容错能力的可靠且可信的系统
经济实惠:可实现最佳性能、功耗和面积的功能。
Cortex-R 系列处理器与Cortex-M和Cortex-A系列处理器都不相同。显而易见,Cortex-R 系列处理器提供的性能比 Cortex-M 系列提供的性能高得多,而 Cortex-A 系列专用于具有复杂软件操作系统(需使用虚拟内存管理)的面向用户的应用。
ARM Cortex™-M处理器系列是一系列可向上兼容的高能效、易于使用的处理器,这些处理器旨在帮助开发人员满足将来的嵌入式应用的需要。这些需要包括以更低的成本提供更多功能、不断增加连接、改善代码重用和提高能效。
Cortex-M 系列针对成本和功耗敏感的MCU和终端应用(如智能测量、人机接口设备、汽车和工业控制系统、大型家用电器、消费性产品和医疗器械)的混合信号设备进行过优化。
STM32分为4种不同系列产品:高性能产品、主流产品、超低功耗产品以及无线产品,见下图。
从上图可知,STM32开发了基于M0、M4、M7以及A7四种内核的MCU产品。 为什么ARM Cortex-M的内核要划分出这么多的型号呢?主要是针对不同的应用领域,下图是官方给出的区别。
上图囊括了ARM公司所有Cortex-M内核,ST意法公司选择了M0、M4、M7以及A7研发了MCU产品,图中的内容精简为一句话:数字越大,性能越高。
STM32的高性能产品又细分为STM32F2、STM32F4、STM32F7和STM32H7共四个系列。如,STM32F2系列基于包含STM32F205/215 和STM32F207/217 2款产品。
知道型号命名规则后,就可以依据需要订购正确的MCU。
再次以一张图的方式总结一下四大类型产品各自特点。