STM32系列单片机分类及其特点概览
STM32系列单片机是基于ARM Cortex-M内核的32位单片机,具有系列全、型号多、资料全等众多优点,应用得非常广泛。
意法半导体公司(STMicroelectronics,ST)基于ARM公司的Cortex-M内核设计生产的STM32系列单片机是目前应用最广泛的32位单片机。STM32的产品线非常丰富,截止(2020年1月)STM32系列产品线如图所示。
图中的处理器分为如下两大类。
(1)基于ARM Cortex-M系列内核的微控制器单元(Microcontroller Unit,MCU),也就是常说的单片机。MCU一般只有一个处理器内核,少数型号有两个内核。
(2)具有Cortex-M4和双Cortex-A7核的微处理器单元(Microprocessor Unit,MPU)。STM32 MPU是ST公司在2019年年初才推出的新产品。它的Cortex-A7内核上可以运行OpenSTLinux系统,用于实现高级应用程序。它的Cortex-M4内核可以面向硬件实现底层功能。
常用的STM32器件指的是STM32系列32位MCU。STM32系列MCU推出的时间比较久,应用广泛,各类设计资源和资料也比较多。STM32系列MCU是基于ARM Cortex-M系列内核设计的,ARM Cortex-M是面向嵌入式应用的32位内核,分为M0、M0+、M3、M4、M33、M7等系列(图1-1的横坐标)。这些内核的性能逐渐增强,当然,它们的功耗也逐渐增大。
图中的STM32系列MCU在纵轴方向分为以下几个系列。
(1)无线MCU。STM32WL系列MCU集成了sub-GHz无线控制单元,支持多种调制模式,能够采用LoRaWAN或任何其他合适的协议。STM32WB系列是2.4GHz无线通信双核MCU,一个M0+内核作为网络处理器,一个M4内核作为应用处理器,支持Bluetooth 5、802.15.4网络,
支持BLE 5、ZigBee 3等无线通信协议栈。
(2)超低功耗MCU。STM32L系列是超低功耗系列MCU,使用不同的Cortex-M内核,超低功耗系列STM32 MCU适用于对功耗敏感的应用。
(3)主流MCU。主流系列MCU在功耗和性能方面比较均衡,主频最高能到72MHz。例如,市面上比较畅销的基于STM32F103的开发板,主要是价格便宜,外设丰富。
(4)高性能MCU。高性能系列用于对处理速度和性能要求比较高的应用,比如需要进行数字信号处理或实现图形用户界面的应用。Cortex-M4和Cortex-M7系列内核带有浮点数单元(Float Point Unit,FPU),具有数字信号处理(Digital Signal Processing,DSP)指令集,所以STM32F4、STM32F7、STM32H7系列可用于对性能要求较高的应用。
每个系列的MCU又有很多具体的型号,具有不同大小的Flash存储器和SRAM内存,且具有不同的外设,例如,STM32F4系列有十几个具体的型号,这为设计选型提供了方便。此外,STM32的系列之间一般还有引脚相容的型号,例如,一个STM32F2系列的某个型号可以找到一个引脚相容的STM32F4型号,这也为更改设计提供了方便。
因为STM32系列MCU都是基于Cortex-M内核的,所以它们的代码在二进制级别是兼容的。ST公司为每个系列的MCU提供了驱动库,代码级别的兼容性也比较好。STM32系列有450多种具体型号,在将一种型号上的设计迁移到另一种型号上时,代码上的迁移是比较容易的。STM32系列MCU型号丰富,适用于各种应用场合,可以替代各种传统单片机的功能。此外,STM32系列的软件开发方式统一,学会一种型号的STM32 MCU的开发后,再换用其他型号的STM32 MCU进行开发也是类似的,可降低学习的时间成本。
参考资料:
STM32Cube高效开发教程(王维波,鄢志丹,王钊)
作者:黄卷青灯77