STM32是一款ARM微控制器产品系列的总称。目前这个系列处理器中已经包含了很多子系列,分别介绍如下。
(1)STM32小容量产品,即闪存存储器容量在16~32KB之间的STM32微处理器。
(2)STM32中容量产品,即闪存存储器容量在64~128KB之间的STM32微处理器。
(3)STM32大容量产品,即闪存存储器容量在256~512KB之间的STM32微处理器。
(4)STM32互联型产品。
此外,从功能上划分,该系列处理器又可以被分为如下系列。
(1)STM32F101XX系列单片机;
(2)STM32F102XX系列单片机;
(3)STM32F103XX系列单片机。
STM32F103XX系列单片机基于高性能32位RISC的ARM Cortex-M3内核,最高工作频率为72MHz。片上集成了高速存储器和通过APB总线连接的众多外设和输入/输出接口,其中片上存储器Flash最多可达512KB,SRAM最多可达64KB。此外,所有的设备都提供了标准的通信接口,如两个I 2 C接口、3个SPI接口和5个USART接口。除此之外,STM32F103XX系列处理器还集成了两个12位的ADC,1个12位的双通道DAC,11个16位的计时器。由此可见,使用STM32F103XX系列处理器就可以比较容易地实现较高的指令吞吐量和丰富的系统资源,具体如下。
1.系统内核
(1)在STM32F103XX系列处理器中,使用了ARM32位的Cortex-M3 内核,最高工作频率可达72MHz,代码吞吐量高达1.25DMIPS/MHz;
(2)支持单周期指令乘法和硬件除法。
2.存储器
(1)片上集成了32~512KB的Flash存储器;
(2)片上集成了6~64KB的SRAM存储器。
3.系统时钟、复位和电源管理
(1)2.0~3.6V的电源供电及数字输入/输出端口的驱动电压;
(2)系统上电复位POR(Power On Reset)、系统掉电复位PDR(Power Down Reset),以及可编程的电压探测器PVD;
(3)支持4~16MHz的晶振;
(4)处理器内部集成了出厂前调校的8MHz内部振荡电路;
(5)支持用于CPU时钟的锁相环PLL(Phase Locked Loop);
(6)带校准用于实时时钟RTC(Real-Time Clock)的32kHz的晶振。
4.低功耗
(1)处理器提供了3种低功耗模式:休眠模式、停止模式和待机模式。
(2)支持用于RTC及备份寄存器供电的VBAT。
5.两个12位的μs级模数转换器
(1)模数转换器测量范围为0~3.6V,16路采集通道;
(2)双通道采样并支持采样数据保存;
(3)处理器片上集成一个温度传感器。
6.直接内存存取DMA(Direct Memory Access)
(1)支持12通道DMA控制器;
(2)支持对如下外设的DMA操作:定时器Timer、模数转换器ADC、数模转换器DAC、I 2 C通信接口、SPI通信接口,以及USART通信接口。
7.最多支持112个快速输入/输出端口
(1)根据不同的处理器型号,STM32分别支持26、37、51、80及112引脚的数字输入/输出端口,且所有端口均可被映射为16个外部中断向量;
(2)除了模拟信号输入引脚外,其他所有引脚均可容忍5V电压的输入信号。
8.调试模式
(1)处理器支持串行调试接口SWD;
(2)处理器支持JTAG调试接口。
9.支持11个定时器
(1)支持4个16位的定时器,且每个定时器具有4个IC/OC/PWM或者脉冲计数器;
(2)支持2个16位的6通道高级控制定时器,最多6个通道可用于PWM信号输出;
(3)支持2个看门狗定时器(独立看门狗定时器与串口看门狗定时器);
(4)支持SysTick定时器,即24位的倒数计数器;
(5)支持2个16位的基本定时器,用于驱动数模转换器DAC。
10.支持13个通信接口
(1)支持2个I 2 C接口,分别为SMBus和PMBus;
(2)支持5个USART接口;
(3)支持3个速率为18Mb/s的SPI接口,与I 2 C接口复用;
(4)支持2个CAN2.0接口;
(5)支持1个USB2.0接口;
(6)支持1个SDIO接口。
在STM32单片机中,根据微处理器中片上硬件资源的不同可以将其分为不同的系列。这就需要用户在进行ARM嵌入式系统设计之前,根据系统对硬件资源的实际需求进行STM32处理器的选型操作。在表3.1中,选取了STM32单片机STM32F103XX系列中常见的处理器型号,用户可以对照该表进行ARM处理器的选型操作。
表3.1 STM32F103XX器件选型表
从表3.1可以看出,即使是同一个STM32处理器系列,也存在各种不同的具体型号。这些不同型号的处理器主要在片上集成的硬件资源上有比较大的差别。
用户在进行ARM嵌入式开发的过程中,必须根据系统的实际需求,参考表3.1中各个类型处理器中所集成的硬件资源,选择不同型号的ARM处理器。只有充分考虑系统设计的各个要求,才能选择正确型号的单片机,既能够满足ARM系统对硬件资源的需要,同时也不会浪费资源,降低系统的设计成本。