STM32教程-03-STM32总线矩阵和系统框图

STM32总线矩阵和系统框图

一、STM32F4xxx系统架构

从这张图中,可以看出ARM公司提供了内核和调试系统,而其他的I2C SPI UART 等外设由其他芯片公司设计开发,例如STM32的设计生产者ST公司。

二、总线矩阵

1、什么I总线-指令总线?

功能:下载到 STM32 Flash 中的是程序的二进制镜像(包含指令机器码),Cortex-M 内核的 I-Code(指令)总线是专用于从 Flash(或特殊配置的 SRAM 指令区)读取指令机器码并传递给内核执行的硬件通道,是指令执行的核心数据通路。

特点:1、单向传输,仅从存储器到内核的读操作,不支持从内核写到存储器

2、Flash与i-code总线直接对接,确保指令读取的高速性,不经过总线矩阵,没有总线竞争与延迟

2、什么是D总线-数据总线?

功能:从存储器(Flash的常量或者RAM的变量)中读取内核专属的数据

特点:1、单向传输,仅从存储器到内核的读操作,不支持从内核写到存储器

2、与Flash的DCODE总线,CCMRAM直接对接,不经过总线矩阵,没有总线竞争与延迟

3、仅服务内核,DMA 等其他主设备无法访问其路径。

3、什么是S总线-系统总线?

功能:实现内核与外设的双向交互,相比上面2个总线,s总线是可读可写的

特点:1、双向传输(支持 "内核→外设 / 存储" 写操作、"外设 / 存储→内核" 读操作);

2、通过总线矩阵的 S2 端口接入,需参与总线仲裁(可能存在延迟);

3、是内核与外部设备交互的 "通用通道"。

4、i-d-s总线是怎么配合使用的?

1、stm32上电开机,内核开始读取存储器中的二进制代码,i总线开始调用存储器中的指令。

2、I 总线:从 Flash 读取GPIO_Init()和USART_ReceiveData()的指令代码

3、D 总线:从 Flash 读取GPIO_InitTypeDef结构体中的默认配置常量,学过C语言可知,常量在只读存储区中

3、S 总线:向 GPIO 寄存器写入配置值(完成 GPIO 初始化);

从 USART 接收寄存器读取数据,并写入普通 SRAM;

4、D 总线:从普通 SRAM 中读取该数据(若数据需内核进一步处理)。

STM32F4系列的总线架构比51单片机要强大的多,STM32F4系列总线架构的知识在这里只作为初步了解即可。

2、总线矩阵分析

看上图说明在STM32F4XXX的总线系统架构图中,图中交叉的矩形为总线矩阵S,在总线矩阵的上方为主设备端口,右侧方为从设备端口。

1、什么是总线矩阵?

总线矩阵是一个让多设备可以同时访问多个从设备,避免总线阻塞,提升带宽利用率。

一句话理解总线矩阵:STM32 里不是所有外设抢一条路,而是有多条高速公路同时工作。

2、什么主设备?

主设备是ARM Cortex-M4(内核)、DMA1、DMA2、以太网MAC、USB OTG HS,他们具备"主动发起访问请求的能力 ",可以通过总线矩阵的从端口(S0-S7)接入总线矩阵。

例如:Cortex-M4 内核通过 I/D/S 总线发起指令 / 数据 / 外设访问;DMA1 通过DMA_PI端口发起数据传输请求。

3、什么是从设备

图右侧的Flash、SRAM1/2/3、AHB2外设、AHB1外设、FSMC都是从设备------ 它们只能 "被动响应主设备的访问请求 ",通过总线矩阵的主端口(M0-M7) 接入总线矩阵。

例如:Flash 等待内核通过 I/D 总线读取指令 / 数据;AHB1 外设(如 GPIO)等待内核通过 S 总线配置寄存器。

4、主从设备的判断标准?

判断主从设备的关键不是位置(上方或者右侧)而是是否具备主动发起访问请求的能力。

主设备:能主动发送"读写请求。

从设备:只能被动接受并响应请求。

5、举例子:内核是怎么控制AHB1外设GPIO的

内核->S总线(系统总线)->总线矩阵S2->总线矩阵M5端口->AHB1外设->GPIOX

三、系统框图

这幅图我们切开来看,先看上半部分的内核部分:

从图中可以看出在总线矩阵的左边,一一对应着主设备也就是可以发起访问的设备,总线矩阵的右侧挂载着从设备

三条高速总线矩阵 AHB1-3也挂载在总线矩阵上。

但是总线矩阵上没有AHB3啊?其实AHB3就是总线矩阵上的M6端口。

从图中可以看出,这个是APB桥,AHB-to-APB Bridge

图中这2个方框中有:AHB/APB1 或者 AHB/APB2,在ARM体系中,一侧是AHB接口,另一侧是APB接口,而桥的本质是协议转换器。.

注意GPIO直接挂载在AHB总线上,而不是APB1总线。

2、当 Cortex-M 内核访问"普通外设寄存器"时,典型路径是:

Cortex-M 内核

System Bus(S-Bus)

AHB 总线矩阵(Bus Matrix)

AHB1 总线

APB 桥

APB1 或 APB2

具体外设(GPIO / TIM / USART / I2C ...)

相关推荐
深圳市九鼎创展科技33 分钟前
瑞芯微 RK3399 开发板 X3399 评测:高性能 ARM 平台的多面手
linux·arm开发·人工智能·单片机·嵌入式硬件·边缘计算
辰哥单片机设计37 分钟前
STM32项目分享:车辆防盗报警系统
stm32·单片机·嵌入式硬件
風清掦2 小时前
【江科大STM32学习笔记-05】EXTI外部中断11
笔记·stm32·学习
小龙报2 小时前
【51单片机】从 0 到 1 玩转 51 蜂鸣器:分清有源无源,轻松驱动它奏响新年旋律
c语言·数据结构·c++·stm32·单片机·嵌入式硬件·51单片机
范纹杉想快点毕业2 小时前
嵌入式与单片机开发核心学习指南——从思维转变到第一性原理的深度实践
单片机·嵌入式硬件
Industio_触觉智能2 小时前
瑞芯微RK3566开发板规格书,详细参数配置,型号EVB3566-V1,基于RK3566核心板SOM3566邮票孔封装
嵌入式硬件·开发板·rk3568·rk3566·核心板·瑞芯微
czwxkn2 小时前
4STM32(stdl)TIM定时器
stm32·单片机·嵌入式硬件
Love Song残响3 小时前
NVIDIA显卡终极优化指南
stm32·单片机·嵌入式硬件
_OP_CHEN3 小时前
【算法基础篇】(五十七)线性代数之矩阵乘法从入门到实战:手撕模板 + 真题详解
线性代数·算法·矩阵·蓝桥杯·c/c++·矩阵乘法·acm/icpc
qq_672592753 小时前
电源芯片为什么发热
单片机·嵌入式硬件