01前文
本文主要进行学习总结,为他人提供参考和学习,也为了记录自己的学习知识进行总结,并且望有错误之处,请各位技术大佬们提出修正,互相进步,也便认识自己的不足之处,查漏补缺。
02前情提要
在说总线架构之前,要了解一些知识点,AMBA是什么、总线、矩阵的作用,了解了这些才能明白总线为何这样走,为何要有矩阵。
1、AMBA
AMBA是ARM公司提出的一种开放性的SoC总线标准,现在已经广泛的应用于RISC的内核上了。
定义了一种多总线系统,包括系统总线和等级稍低的外设总线。
利用AMBA定义的一款总线架构:
AHB (Advanced High-performance Bus) 高级高性能总线
ASB (Advanced System Bus) 高级系统总线
APB (Advanced Peripheral Bus) 高级外围总线
AXI (Advanced eXtensible Interface) 高级可拓展接口
其中 AHB速度高,可连接芯片,或者搭载快速高效率的模块如内存,DMA。
APB频率较低,可由AHB经BUS-BRIDGE桥接而来,常用于搭载较低速度需求的外围设备,被称为外围总线。
AXI:属于AMBA3.0标准的产物,其中STM32F7中就采用了AXI总线,相对于AHB不仅频率高,数据宽度范围广和大,且数据和地址通道分离。
AHB和APB之间是通过Bridge(桥接器)连接起来的。
2总线桥接
众所周知,一个系统中的各个模块之间相互通信是通过总线,总线的作用,就是把数据和地址从设备A搬运到设备B上,
如果说设备A和设备B具有一致性,那么设备A和设备B可以直接挂在同一个总线上,并直接解读总线上的数据。
但是,如果设备A和设备B不具有一致性,那么设备A和设备B就必须挂在两条不同的总线上,这时候我们就需要一个“翻译”,把设备A上的总线上的数据和地址转换成设备B可以解析的格式,然后放到设备B的总线上。
3矩阵
矩阵的作用是按照访问关系将主从设备间连接起来。因此,多个从设备可以类似于并行地访问主设备,例如当多个从设备访问一个主设备时,那么如何工作?一个时刻只能有一个从设备访问主设备,因此当多个从设备访问同一个主设备时需要有优先级的参与。
矩阵内部有仲裁器,可根据优先级对每个从设备进行优先级判断来操作。
重点来了噢!
跟上图中的走线脚步一起前进
系统架构
主系统架构基于 2 个子系统:
一个 AXI 转 multi-AHB 总线桥,用于将 AXI4 协议转换为 AHB-Lite 协议:
① 一个连接到内嵌 flash 的 AXI 转 64 位 AHB 总线桥(图中标记为红色)
② 3 个连接到 AHB 总线矩阵的 AXI 转 32 位 AHB 总线桥(途中标记为蓝色)
一个 multi-AHB 总线矩阵
multi-AHB 总线矩阵将所有主控总线和被控总线互连,它包括:
– 32 位 multi-AHB 总线矩阵 (图中32位总线矩阵:方框)
– 64 位 multi-AHB 总线矩阵(图中用紫色圈出的部分):它将来自 CPU 的 64 位 AHB 总线(图中黄线路径)(通过 AXI 转 AHB 总线桥)和来自 GP DMA 与外设 DMA(增至 64 位)的 32 位 AHB 总线连接到内部flash。
multi-AHB 总线矩阵可连接:十二个总线主控器:(以下部分可参照图2来走线:图一不太好理解)
– 3x32 位 AHB 总线以及 64 位 Cortex®-M7 AXI 主控总线通过 AXI-AHB 总线桥分为 4 个总线主控器
– 连接到内嵌 flash 的 1x64 位 AHB 总线
–Cortex® -M7 AHB 外设总线
–DMA1 存储器总线
–DMA2 存储器总线
–DMA2 外设总线
– 以太网 DMA 总线
– USB OTG HS DMA 总线
–LCD 控制器 DMA 总线
– Chrom-Art 加速器™ (DMA2D) 存储器总线
八个总线从控制器:
–AHB 总线上的内嵌 Flash(用于 Flash 读/写访问、代码执行和数据访问) –Cortex®-M7 AHBS 从接口(仅用于 DTCM RAM 的 DMA 数据传输)
–主 SRAM1 (240 KB)
– 辅助 SRAM2 (16 KB)
–AHB1 外设(包括 AHB-APB 总线桥和 APB 外设)
–AHB2 外设(包括 AHB-APB 总线桥和 APB 外设)
–FMC – Quad SPI
结尾
总线架构需要了解的就这么多,我们只需要知道总线的作用,以及它大概连接的逻辑,怎样走线的,呃,这个词语也不是很专业。总得来说,知道有哪些东西在你的单片机上,如何运作的就差不多啦!如果想具体知道每一个设备是如何来连接运作的,可以单独查询。