
STM32系列单片机是ST公司基于ARM Cortex-M系列内核开发的32位微控制器,包括F1、F4、F7等多个子系列产品,覆盖CM0、CM3、CM4等多种内核架构,能够分别满足多种不同的选型需求。其中,F1系列作为通用类型,兼具丰富外设高性能和低成本的优点,是基于Cortex-M3架构的主力产品,应用最为丰富。F1系列下又有F101基础型、F102USB专用型、F103增强型以及F105/F107互联型4个子系列,这4个子系列间只有外设和存储器大小等细微差别,其中互联型产品主要添加了以太网支持等内容。本文主要基于F103系列讲解系统的总线架构,同时也包括部分其他F1系列非互联型产品的共有特点。 STM32总线架构
上图是非互联型产品的系统结构,分别画出了芯片的主要组成部分和各部分之间的总线连接(图中仅画出主要的线路连接),主要部分包括内核、存储器(片上Flash和片上SRAM等)、外设以及DMA组件,他们通过ICode总线(Instruction Code Bus)、DCode总线(Data Code Bus)、System总线、总线矩阵(Bus Matrix)、DMA总线、AHB总线、APB总线、AHB2APB桥等总线相互联通。 ICode总线是一条基于AHB-Lite总线协议的32位总线,负责从程序存储器读取指令,实现片内Flash、系统存储器或外部的NOR Flash和内核之间的联通。其中,ICode通过Flash接口(Flash控制器)连接片内Flash,该接口可以实现把ICode总线的AHB-Lite协议请求转换为Flash地址锁存、读写等物理接口信号。片内Flash一般存储了用户程序,故又名程序存储器。系统存储器是一块由ST厂商预先写入并固化了专用程序的特殊片内只读存储器(ROM),该专用程序主要是Bootloader,用于ISP/IAP等启动模式,即STM32使用串口下载程序时所运行的下载程序。系统存储器同样连接了一个内部专用控制器(类似于Flash控制器),该控制器接口被连接到总线矩阵,通过总线矩阵与ICode总线建立联系。对于片外扩展的程序存储器,ICode通过总线矩阵与FSMC(Flexible Static Memory Controller,灵活静态存储控制器)联通,而FSMC直接连接外部扩展存储器。FSMC可以把ICode总线的AHB-Lite协议请求转换为驱动片外存储器的读写使能等并行信号,同时确保高速内部总线与片外存储器的速度协调。通常,对于STM32系列单片机,可以通过BOOT引脚的高低电平确定芯片复位后的启动模式,也即ICode从哪个部分开始读取程序。 DCodeDCode总线同样遵从AHB-Lite总线协议,是独立于ICode总线的专注于数据访问的总线,该总线直接连接到总线矩阵,通过总线矩阵与其他片上单元(片上SRAM、片上Flash、片外扩展数据存储器)相连接。DCode总线主要访问区域为片上SRAM(存储变量、堆栈、中间运算结果等),内置的SRAM接口把DCode总线的AHB-Lite协议请求转换为SRAM访问信号,实现在SRAM中存取变量等信息。片上Flash除存储用户程序外,可能还存储了一些常量等数据,DCode总线通过总线矩阵与Flash接口联通,实现对这些数据的访问。FSMC除可以扩展片外程序存储器外,还可以扩展片外数据存储器(如SRAM),而DCode总线可以通过FSMC访问片外数据存储器。 系统总线并非单指某一条总线,而是沟通内核与各个外设的一个总线层级结构,包括连接内核与总线矩阵的内核侧System总线、连接各外设与总线矩阵的外设侧总线以及实现内核与NVIC(嵌套向量中断控制器)、SysTick定时器、RCC(复位与时钟控制器)等系统级模块的寄存器的联通的系统模块侧的连接。 总线矩阵连接了芯片上的大部分总线,是一个总线的仲裁与路由系统。它通过预设规则仲裁决定优先响应哪个请求,同时管理多条总线之间的数据传输,确保资源从正确的目标地址传输到正确的请求端。总线矩阵就像一个多刀多掷开关,,对多条总线之间的信息传输起到一个快速响应枢纽的作用。 DMA总线DMA总线是支持DMA数据传输的专用总线,可以实现在无CPU干预下的数据搬运。STM32F1有两个DMA通道接口(DMA1、DMA2),DMA接口实现接收外设的DMA请求和发起数据传输。DMA总线通过总线矩阵访问存储器(SRAM、Flash、片外扩展存储器等),以及连接AHB、APB总线访问支持DMA传输的外设。
|
最通俗易懂的STM32完整启动流程分析
如果你解决了这些问题,就可以直接学STM32
梳理STM32芯片的内部架构
没学过51单片机,能否零基础学STM32?
STM32电机控制用什么型号?高级定时器功能详解与芯片选型指南
STM32入门指南:从零开始,如何为你的首个项目选择最合适的MCU?
STM32选型指南:这些型号让您的项目又快又省
STM32H7R/S+TouchGFX:解锁智能家电沉浸式体验新维度
25个STM32问答,考验你基础的时候到了
什么是STM32? STM32与ARM有什么关系? STM32能做什么?