STM32总线架构笔记

2019-11-15来源: eefocus关键字:STM32  总线架构  仲裁器

前文


本文参考多篇文章进行学习总结,仅用于个人的学习,旨在为他人提供参考和学习,也为了记录自己的学习知识进行总结,并且望有错误之处,请各位技术大佬指出修正,互相进步。如有侵权之处,请马上联系我删除。


学习参考的来源:

原文:https://blog.csdn.net/ivy_reny/article/details/56274412 作者:ivy_reny 来源:CSDN

原文:http://www.elecfans.com/emb/danpianji/20180613694692.html 作者:未知 来源:电子发烧友


1.AMBA


AMBA是一种SOC(System of Chip)总线标准,有AMBA1.0 / 2.0 /3.0标准。

利用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不仅频率高,数据宽度范围广和大,且数据和地址通道分离。


2.总线的作用


芯片的读取模块、内存操作、模块间的通信等,是通过总线来完成的。

其中:

地址总线:可用来传输地址值

数据总线:可用来传输数据值

在这里插入图片描述

如图设备A和设备B通信,A发送数据到总线上,B可以通过总线读取A数据。

可以看出A设备和B设备属于同一条总线,可以对数据和地址直接解读。

那么如果多个设备都属于同条总线,如何区分不同设备数据是否接收?

不知是否可以认为是通过数据和地址的结合来识别是哪个设备间的通信。

在这里插入图片描述

如图是AB在同一条总线上,CD是另一条总线上,那么如果A/B要和C/D通信呢?地址和数据是否可以直接解读?

不可以,需要一个总线桥接充当翻译。

在这里插入图片描述

如图m3中的总线架构。

M3内核中FLASH和SRAM(Optional)部分由指令总线/数据总线 经 总线矩阵连接到内核,而AHB与内核间的联系属于系统总线,AHB总线上有SRAM,外部内存控制器等其他设备,最后可看出经AHB—APB桥接到APB总线,而APB上搭了其他的外设如IO、UART。。。。


3. M7总线架构

在这里插入图片描述

M7总线架构可分为多个域:D0/D1/D2域。

其中

在这里插入图片描述

ASIBs:从接口,用来连接主设备

AMIBs:主接口,用来连接从设备

主设备如CPU/DMA/LTDC,可进行启动总线操作,即实际的读写操作;而该响应该操作的就是从设备,也就是主设备可访问从设备。

以D1域为例可看出:

从设备为AHB3/FLASHA等,主设备为LTDC,DMA2D等。


访问权限: 主设备可访问从设备

如:

D1域的DMA2D 可经过 64矩阵 访问 FLASHA;

D2域的USB1 可经过 AHB矩阵访问 SRAM1;

D1域的DMA2D 可经过 D1-TO-D2 AHB BUS访问D2域的主设备;

D2域的DMA2 可经过 D1-TO-D2 AHB BUS访问D1域的主设备;

(具体方法要看矩阵里面的点表示连接,且记住主设备访问从设备)


3.1 矩阵


矩阵的作用是按照访问关系将主从设备间连接起来。

因此,多个从设备可以类似于并行地访问主设备,例如当多个从设备访问一个主设备时,那么如何工作?

一个时刻只能有一个从设备访问主设备,因此当多个从设备访问同一个主设备时需要有优先级的参与。

矩阵内部有仲裁器,可根据优先级对每个从设备进行优先级判断来操作。

关键字:STM32  总线架构  仲裁器 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic480154.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:一文看懂ARM Cortex-M处理器
下一篇:stm32 总线与内存分布

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

简析stm32启动过程
说明:本文是杰杰以前保存下来的,出处已经不知道在哪了,应该是各大论坛中,当然转这种文章,到处都有。今天我就把它重写一遍。基于原作者的内容添加一些内容(源码)讲解。杰杰水平有限,出错在所难免,还望各位大神指点一二。startup_stm32f10x_cl.s互联型的STM32F105xx,STM32F107xxstartup_stm32f10x_hd.s 大容量的STM32F101xx,STM32F102xx,STM32F103xxstartup_stm32f10x_hd_vl.s 大容量的STM32F100xxstartup_stm32f10x_ld.s 小容量的STM32F101xx,STM32
发表于 2019-12-14
简析stm32启动过程
【干货】老外的GitHub整理的stm32f4驱动库
昨晚在github发现了一个老外自己整理的封装库,有很多,比如一些通讯啊啥的,一些显示屏驱动等等目录STM32F4Libraries and projectsHere are listed all libraries for STM32F4 devices.Libraries are designed to work with STM32F4xx series of MCU. Every project hereis created with Keil uVision, but tested with GCC compiler too (Coocox). Eachproject includes 4 targets
发表于 2019-12-14
【干货】老外的GitHub整理的stm32f4驱动库
基于Linux的kfifo移植到STM32(支持os的互斥访问)
关于kfifokfifo是内核里面的一个First In First Out数据结构,它采用环形循环队列的数据结构来实现;它提供一个无边界的字节流服务,最重要的一点是,它使用并行无锁编程技术,即当它用于只有一个入队线程和一个出队线程的场情时,两个线程可以并发操作,而不需要任何加锁行为,就可以保证kfifo的线程安全。具体什么是环形缓冲区,请看我以前的文章说明关于kfifo的相关概念我不会介绍,有兴趣可以看他的相关文档,我只将其实现过程移植重写,移植到适用stm32开发板上,并且按照我个人习惯重新命名,RingBuff->意为环形缓冲区RingBuff_t环形缓冲区的结构体成员变量,具体含义看注释。buffer: 用于存放
发表于 2019-12-14
STM32之重定向printf
学习stm32,打交道最多的莫过于串口通讯了,但是官方的串口发送库太恶心了,完全不好用甚是还念C语言的printf,想输出什么就有什么,现在,一步步来做个重定向,让你的stm32可以跟C语言一样能想看什么就看什么:首先:添加printf的头文件 :#include <stdio.h>    //当时学C语言最熟悉的stdio.h其次:改写int fputc(int ch, FILE *f)函数int fputc(int ch, FILE *f);int fputc(int ch, FILE *f){USART_SendData(USARTx, (uint8_t) ch);while
发表于 2019-12-14
STM8L051F3_02_EXTI应用
本章介绍STM8L051F3的EXTI相关知识,内容分为以下几部分:EXTI简介KEY外部中断检测1、EXTI简介EXTI也是属于GPIO的知识点,应用比较广泛。STM8L051F3每个I/O口在输入模式下都能配置为中断,在这个配置下,一个信号沿或电平输入到I/O口上将产生一个中断请求。外部中断只有在端口的输入模式下才有效。可通过配置寄存器Px_CR2相应的位来独立地使能或禁能某个端口的外部中断功能。另外,可通过ADC_TDRH和ADC_TDRL寄存器来禁用施密特触发器节省功耗。2、KEY外部中断检测2.1 KEY的外部中断配置本小节介绍将GPIO配置为外部中断输入模式,并通过KEY(PC4)来触发一个外部中断信号,然后产生中
发表于 2019-12-14
STM8L051之通过ADC1与DMA读取内部参考电压
stm8L051芯片内部的参考电压与电源电压有一定的关系这在芯片供电电压变化的情况下,测量外部ADC电压输入提供一个确定的参考电压。这里提前厘清下:该内部参考电压VREFINT 并非ADC 的参考电压,ADC 的参考电压依然是VDD。即使VDD 有所波动,这个VREFINT 电压恒定不变,对于ADC 电路而言,它只是个测试点。 对于某固定的ADC 参考电压情况下,所有被测电压点的AD转换值与该点电压值保持同一比例关系,换句话说,对于ADC参考电压固定情况下,各点的电压与ADC值与成线性关系。下面图形是芯片分别在3个不同参考电压的示意图,这里参考电压接VDD。下面三根斜线分别是VDD 为2.8V、3.2V、3.6V 时的
发表于 2019-12-14
STM8L051之通过ADC1与DMA读取内部参考电压
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved