MCU系统架构——总线——统一编址

两个设备

总线主设备:能主动发起总线访问请求硬件单元,如ARM_CPU,DMA。

总线从设备:被动响应总线主设备访问请求的硬件单元。

总线矩阵

简单理解:它是一个多路复用的高速交换枢纽,可以同时连接多个总线主机(CPU 内核、DMA、以太网控制器等)和多个总线从机(Flash、RAM、外设寄存器)。

总线矩阵的一些特性

1 支持并行访问

什么是并行访问呢?比如说总线主设备A访问总线从设备B的同时,总线主设备C也可以访问总线从设备D。

2 支持动态优先级调度

当总线主设备A和B都要访问C时,会进行智能仲裁来决定访问顺序。

3 支持专用路径直连

如CPU与Flash之间联系非常频繁,就专门架设 I_code总线。

参考手册中的总线图

I-Code

即Instrution Code指令代码,有时也叫Instrution -Bus 即指令总线。专门负责从程序存储器(一般是Flash中)读取指令,然后交给CPU执行。

D-Code

即Data-Code,全称数据代码总线,负责从Flash中读取常量数据

这里补充一下:Flash中存储的都是不可修改的数据和指令,因为Flash本就不支持任意擦除修改。

为什么I-Code直接与Flash相连而D-Code没有

因为D-Code在极端条件下会访问内存

System

系统总线,负责处理前两条线管不了的事情,比如访问外设,内存等等。

APB2

高级外设总线,核心作用是为对速度敏感的外设提供一条独立与慢速总线的通道

APB1

提供一条 " 低速,低功耗" 的总线通道,链接速度不敏感的外设。

AHB

高级高性能总线,是MCU内部的总线主干。以最高频率和带宽链接CPU,DMA和内存等核心模块。

其实I-Code , D-Code, system也符合AHB高级高性能总线的标准。

桥1和桥2

叫做速度适配器或协议转换器,就像变速箱。

为什么要有这个桥呢?

因为不是所有设备都是同时工作的,每个设备的工作速度也不尽相同,所以我们需要速度可调。

STM32程序的执行过程

1编译生成二进制可执行文件

2 烧录,把生成的二进制可执行文件下载到单片机中,通过一定的方式放到STM32内置的Flash中

3运行:CPU通过I-Code从Flash中读取指令;

CPU通过D-Code从Flash中读取常量数据;

代码中的变量放在SRAM中,CPU通过system来读写这些变量。(特殊情况下会通过D-Code读取)。

总线

很多人以为总线就是一根线,其实总线包括数据总线,地址总线,控制总线。如下图

统一编址

从 CPU 的角度看,访问内存和访问片上外设没有本质区别,都是读或写操作。 因此,我们只需要给内存的每个存储单元,以及每个片上外设的寄存器,都分配一个唯一的、不重叠的地址。这样,CPU 就可以通过不同的地址来访问不同的目标。

从 C 语言角度,就可以直接使用指针,访问任意位置,可以访问内存,也可以直接访问片上外设,这个叫做统一编址

相关推荐
可乐鸡翅好好吃2 小时前
通讯协议--硬件模拟和软件模拟
stm32·嵌入式硬件
Zw-awa2 小时前
STM32F103C8T6 最小系统板:从型号差异到启动方式
stm32
新思维软件2 小时前
基于边缘计算与多模态感知的服药依从性系统|X604261
嵌入式硬件·物联网开发
朝发如雪11 小时前
快速掌握单片机基础(3)(PWM)(通信协议基础)(串口通信时序与参数)(电气特性与电平标准)(51单片机UART寄存器配置)(串口应用层协议)
单片机
天空'之城13 小时前
单片机基础核心知识点汇总(四十)
单片机·嵌入式硬件
smartpi_ai13 小时前
离线语音模块误识别问题全面解决方案:命令词设计、防误触与灵敏度调优指南
人工智能·单片机·语音识别
LCG元13 小时前
STM32F103 驱动 HX711 称重实战:DOUT 就绪时序、增益切换陷阱与两点标定精度实测
stm32·单片机·嵌入式硬件
染予13 小时前
代码中相关C语言知识点总结
stm32
优信电子14 小时前
STM32 驱动 DHT30 测量环境温湿度(兼容SHT30):从时序解析到完整代码实战
stm32·嵌入式·传感器·sht30·温湿度·环境测量·dht30