4_STM32F103ZET6芯片系统架构和寄存器
STM32F103ZET6芯片系统架构和寄存器
一、概述
设计MCU功能前需要对芯片系统架构、存储器、寄存器地址映射有所了解。
二、系统架构
STM32F103是ST公司基于ARM授权Cortex M3内核而设计的一款芯片,而Cortex M内核使用的ARM v7-M架构。
ARM公司提供CM3内核和调试系统,其他部分如外设(IIC、SPI、UART、TIM等)、存储器(SRAM、FLASH等)、I/O等由芯片厂商(ST等)设计,最终得到STM32系列芯片(如STM32F103ZZET6)。
I Code(指令)总线,连接闪存(FLASH)指令接口,用于获取指令;
D Code(数据)总线,连接闪存存储器(SRAM、FLASH等)数据接口,访问常量、变量等;
系统总线,连接所有外设(GPIO、SPI、IIC、TIM等),用于控制各种外设工作,如配置各种外设相关寄存器等;
DMA总线实现内存到外设、外设到内存、内存到内存的数据传输, 不需要经过CPU处理;
内部FLASH,存储代码/数据;
内部SRAM,存储数据;
FSMC(灵活的静态存储控制器),外部总线接口,用来访问外部SRAM、NAND/NOR FLASH、LCD等;
外设总线,AHB总线连接总线矩阵,通过2个APB桥连接APB1和APB2,AHB总线速度最大72Mhz,APB2总线速度最大72Mhz,APB1总线速度最大36Mhz;
总线矩阵协调内核系统总线和DMA主控总线之间的访问仲裁,仲裁利用轮换算法,确保各总线间有序访问。
三、存储器和寄存器地址
3.1 存储器地址
芯片厂商(ST)将所有的存储器及外设资源都映射在一个4GB的地址空间上,这个过程就叫存储器映射,之后访问映射后的地址,便可访问对应具体的外设。
在芯片手册"STM32F103ZET6.pdf"第4章Memory mapping中查看存储器映射地址(下图中最右侧列即为为对应端口的存储器映射地址)。
ST将4GB空间分成8个块,每个块512MB,分别包含各类外设端口和存储器地址
Block 0 Code 0X0000 0000 ~ 0x1FFF FFFF(