STM32学习笔记之常用总线(原理篇)

news2025/3/22 20:30:08

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载注明出处

单片机总线是连接单片机各部件的 “桥梁”,是数据、地址和控制信息传输的通道

分类总线类型功能描述特点宽度传输速率
系统总线数据总线在CPU、存储器、I/O接口等部件间传输数据双向传输8位、16位、32位等-
地址总线指定数据来源或去向的地址单向传输,由CPU发出地址信号8位、16位、32位等-
控制总线传输控制信号,协调各部件操作双向传输,包含CPU发出的控制信号和部件反馈的状态信号根据控制信号数量而定-
片内串行总线内部I²C总线连接片内I²C接口设备,实现设备间通信和数据交换二线制同步串行,支持多主设备,通过设备地址识别-标准模式100kbps、快速模式400kbps、高速模式3.4Mbps
内部SPI总线连接片内高速外设,实现高速数据传输高速、全双工、同步串行,支持多从设备-较快,能满足高速数据交换需求
AMBA总线架构APB总线连接GPIO、定时器、看门狗等低速外设结构简单、成本低,单周期数据传输通常32位-
AHB总线连接高性能系统模块,如CPU、DMA控制器等高速传输,支持突发传输;多主设备支持;低延迟常见32位或64位

顺便介绍下AHB到APB的桥,AHB2APBx
1、AHB 和 APB 具有不同的协议和特性。AHB2APBx 桥能够将 AHB 的协议转换为 APB 的协议,使得连接在 APB 上的设备能够与连接在 AHB 上的高性能模块进行通信。

2、在系统架构中,所有的 APB 设备都通过 AHB2APBx 桥与 AHB 总线相连。这意味着无论是 UART、I2C 等各种不同类型的 APB 外设,都可以通过这个桥接器挂接到 AHB 总线上,从而实现与其他高性能模块(如 CPU、DMA 等)的通信,使得整个系统的架构更加清晰和灵活,方便了不同速度和功能的模块之间的协同工作。以 STM32 芯片为例,在其架构中就存在 AHB2APBx 桥,它将 APB1 和 APB2 总线上的各种外设(如定时器、串口等)与 AHB 总线连接起来,实现了内核与这些外设之间的通信。

其次,APB1和APB2的速率通常是不一样的
在一些单片机(如 STM32 系列)中,APB1 通常用于挂载低速外设,其时钟频率相对较低,一般为 36MHz。而 APB2 则用于挂载高速外设,它的时钟频率相对较高,通常为 72MHz。这样的设计是为了满足不同外设对时钟频率的不同要求,以优化系统性能和功耗。
在这里插入图片描述

ICode、DCode、System Bus都是AHB总线系统中的一部分,通过总线矩阵(Bus matrix)等结构与其他AHB总线组件相连,实现数据的高效传输和系统的协调工作。例如,在Cortex-M3微控制器中,这些总线通过一个多级的AHB总线构架相互连接,共同构成了系统的数据传输通道。

总线名称功能与角色地址范围总线宽度遵循协议
ICodeICode总线负责从存储器中获取指令并将其传输给CPU执行0x0000_0000 - 0x1FFF_FFFF32 位AHB-Lite 总线协议
DCodeDCode总线则根据指令的需求,负责将指令所需的数据从存储器传输到CPU进行处理0x0000_0000 - 0x1FFF_FFFF32 位AHB-Lite 总线协议
System BusSystem Bus则承担着更广泛的数据传输任务,确保系统各部分之间的数据交互顺畅0x2000_0000 - 0xDFFF_FFFF 和 0xE010_0000 - 0xFFFF_FFFF32 位AHB-Lite 总线协议

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2319765.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构】栈(Stack)、队列(Queue)、双端队列(Deque) —— 有码有图有真相

目录 栈和队列 1. 栈(Stack) 1.1 概念 1.2 栈的使用(原始方法) 1.3 栈的模拟实现 【小结】 2. 栈的应用场景 1、改变元素的序列 2、将递归转化为循环 3、逆波兰表达式求值 4、括号匹配 5、出栈入栈次序匹配 6、最小栈…

OpenCV中的矩阵操作

OpenCV中的矩阵操作主要围绕Mat类展开,涵盖创建、访问、运算及变换等。 1. 创建矩阵 ‌零矩阵/单位矩阵‌: Mat zeros Mat::zeros(3, 3, CV_32F); // 3x3浮点零矩阵 Mat eye Mat::eye(3, 3, CV_32F); // 3x3单位矩阵 自定义初始化‌&#xff1a…

OAK相机入门(一):深度测距原理

文章目录 1. 测距参数介绍2. 测距原理3. 总结 官方文档 Configuring Stereo Depth 1. 测距参数介绍 理论范围:0.2-35m 推荐范文:不低于0.5m 存储类型:uint16,0代表没有数据,或者测不到 2. 测距原理 通过视差进行测距…

Powershell WSL .wslconfig 实现与宿主机的网络互通

前言.wslconfig .wslconfig 用于在 WSL 2 上运行的所有已安装发行版中配置全局设置 wsl 2 网络模式介绍 Bridged (外部): 桥接模式将虚拟机的网络连接直接桥接到物理网络适配器上Mirrored (镜像): 镜像模式并不是一个标准的 Hyper-V 网络类型,但它通常指的是在网络适配器级…

Vue:Vue2和Vue3创建项目的几种常用方式以及区别

前言 Vue.js 和 Element UI 都是用 JavaScript 编写的。 1、Vue.js 是一个渐进式 JavaScript 框架。2、Element UI 是基于 Vue.js 的组件库。3、JavaScript 是这两个项目的主要编程语言。 而Element Plus是基于TypeScript开发的。 一、Vue2 1、基于vuecli工具创建 vue2 …

IRF拆除

冗余口、冗余组、备份组、虚墙、MAD检测、被控制器纳管、转换为安全策略 黑洞路由的定义: 有来无回的路由。 对设备拆除IRF操作流程。 1、关闭主框的业务口(对设备的接口使用shutdown),关闭MAD检测口(BFD/NQA/MAD)&…

强化学习(赵世钰版)-学习笔记(8.值函数方法)

本章是算法与方法的第四章,是TD算法的拓展,本质上是将状态值与行为值的表征方式,从离散的表格形式,拓展到了连续的函数形式。 表格形式的优点是直观,便于分析,缺点是数据量较大或者连续性状态或者行为空间时…

STM32F4与串口屏通信

淘晶池串口屏操作指令集 那我们就来谈一谈串口屏与STM32F4嵌入式板子的通信 第一,串口屏传输数据给F4板子 这时,我们就该来谈一谈prints函数和printh函数的用法 prints att,length att:变量名称 length:长度(0为自动长度) printh hex hex:需要发送的…

车载以太网网络测试-20【传输层-DOIP协议-3】

1 摘要 本文继续对ISO 13400-2定义的节点管理报文进行介绍,主要对路由激活请求/响应报文以及在线检查请求/响应报文的作用、帧结构以及示例进行介绍。 上文回顾: 车载以太网网络测试-19【传输层-DOIP协议-2】 在进行详细介绍之前,还是先回顾…

`chromadb` 是什么

chromadb 是什么 chromadb 是一个开源的向量数据库,它专门用于存储、索引和查询向量数据。在处理自然语言处理(NLP)、计算机视觉等领域的任务时,通常会将文本、图像等数据转换为向量表示,而 chromadb 可以高效地管理这些向量,帮助开发者快速找到与查询向量最相似的向量数…

关于“碰一碰发视频”系统的技术开发文档框架

以下是关于“碰一碰发视频”系统的技术开发文档框架,涵盖核心功能、技术选型、开发流程和关键模块设计,帮助您快速搭建一站式解决方案 --- 随着短视频平台的兴起,用户的创作与分享需求日益增长。而如何让视频分享更加便捷、有趣&#xff0c…

vue3之写一个aichat---已聊天组件部分功能

渲染聊天数据 这个不必多说,直接从stores/chat中取出聊天列表数据渲染就好,因为前面添加的消息都是按照用户消息、AI助手消息这样添加的,效果如图 但是需要注意每条助手消息的状态,需要根据状态显示不同的图标或不显示图标&…

基于STC89C51的太阳自动跟踪系统的设计与实现—单片机控制步进电机实现太阳跟踪控制(仿真+程序+原理图+PCB+文档)

摘 要 随着我国经济的飞速发展,促使各种能源使用入不敷出,尤其是最主要的能源,煤炭石油资源不断消耗与短缺,因此人类寻找其他替代能源的脚步正在加快。而太阳能则具有无污染﹑可再生﹑储量大等优点,且分布范围广&…

第五: redis 安装 / find 查找目录

redis 安装的 两种方式: mac上安装redis的两种方法_如何在mac上安装redis-CSDN博客 首先可以先看一下brew的常用命令如下: brew search ** //查找某个软件包 brew list //列出已经安装的软件的包 brew install ** //安装某个软件包,默认安装的是…

Springboot 项目如何输出优雅的日志

我们先看效果图: 我个人比较喜欢这种格式的日志输出,对其完整; 这种格式其实就是默认的,不需要大家配置任何的 logback-spring 文件和xml中配置日志level 没有做任何多余的配置;

Linux——进程(5)进程地址空间

先看一个程序和现象 预期现象是,子进程和父进程相互独立,子进程的gval是100,101,102....而父进程一直都是100. 结果我们并不意外,只是我们发现,父子进程的gval的地址是一样的,这有点颠覆我们的认…

代码随想录_动态规划

代码随想录 动态规划 509.斐波那契数 509. 斐波那契数 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1) 1 F(n…

星越L_陡坡缓降使用讲解

目录 1.陡坡缓降 1.陡坡缓降 中控屏下滑-点击陡坡缓降功能 35km/h以下时生效。35km/h-60km/h该功能暂停 60km/h以上该功能关闭

XSS跨站脚本攻击漏洞(Cross Site Scripting)

前提概要 本文章主要用于分享XSS跨站脚本攻击漏洞基础学习,以下是对XSS跨站脚本攻击漏洞的一些个人解析,请大家结合参考其他文章中的相关信息进行归纳和补充。 XSS跨站脚本攻击漏洞描述 跨站脚本攻击(XSS)漏洞是一种常见且危害较…

html5基于Canvas的经典打砖块游戏开发实践

基于Canvas的经典打砖块游戏开发实践 这里写目录标题 基于Canvas的经典打砖块游戏开发实践项目介绍技术栈核心功能实现1. 游戏初始化2. 游戏对象设计3. 碰撞检测系统4. 动画系统5. 用户界面设计 性能优化1. 渲染优化2. 内存管理 项目亮点技术难点突破项目总结 项目介绍 在这个…