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 ...)

相关推荐
ACP广源盛1392462567320 分钟前
GSV2231@ACP# 增强型 8K MST 多屏扩展芯片
大数据·人工智能·分布式·嵌入式硬件
国科安芯12 小时前
航天器多路并联大功率电源系统设计与ASP4644均流特性分析
单片机·嵌入式硬件·fpga开发·安全性测试
茯苓gao14 小时前
嵌入式开发笔记:CANopen相关移位运算与通信协议术语详解
网络·嵌入式硬件·学习·信息与通信
phoenix@Capricornus15 小时前
单位球面在线性变换下的像以及线性变换诱导的加权 2-范数的等值面(To 战老师)
线性代数·机器学习·矩阵
梁朝辉17 小时前
STM32H750VBT6中ADCINP与INN什么区别
stm32·单片机·嵌入式硬件
省四收割者18 小时前
一文详解信号完整性(1)
python·嵌入式硬件·数学建模·信息与通信·信号处理·智能硬件
崇山峻岭之间19 小时前
单片机无感FOC驱动之ADC
单片机·嵌入式硬件
Ligocious19 小时前
1.点亮一颗小小的LED
单片机·嵌入式硬件
Ivanqhz21 小时前
注意力机制
线性代数·算法·矩阵·哈希算法·dnn
KaifuZeng1 天前
通信与接口协议面试八、CAN通信
单片机·嵌入式硬件·面试·通信与接口协议