AHB协议解读

news2024/11/16 0:50:51

1.定义

AHB或者ASB系统总线在需要做大量数据传送的模块之间提供了高带宽的接口。同时,外围总线APB在AHB或者ASB和低带宽的外围设备之间提供了通信的桥梁。所以APB是AHB或者ASB的二级扩展总线

2.拓扑结构

2.1 Master:

可以是CPU、DMA控制器、外设控制器等。Master通过AHB总线向slave发送传输请求,请求读取或者写入slave的寄存器或内存地址。当master发送请求时,首先必须等待Arbiter的确认,如果得到许可,就可以访问总线并发起传输。通过hgrant信号线来知道自己是否被Arbiter选择

2.2 Slave

负责处理master的AHB传输请求。可以是内存、外设、寄存器等。Slave通过AHB总线接受master的传输请求,并根据请求类型,响应master执行读取或者写入操作。通过hslectx信号线来知道自己是否被master选中

2.3 Arbiter

负责协调多个master之间的竞争,以决定哪个master能够获得总线控制权

2.4 Decoder

负责讲master的地址映射到对应的slave设备或内存地址。通过解析master请求的地址信息,将其转换为slave的地址或内存地址,并将请求发送给相应的slave设备或内存地址

3.主要特性:

3.1 Burst传输:

3.2 Split事务处理

必须master和slave同时支持split才行

3.3 单一时钟沿操作

3.4 无需三态门的实现方式

三态门是为了避免同一时刻多个设备对同一根信号线进行驱动

3.5 更宽的数据总线配置

3.6 流水线操作

在时序图上直观表现出来是地址比数据早一拍

3.7 可以支持多个总线主设备

4.术语

5.AHB构成

6.AHB信号列表

6.1 HADDR[31:0]

AHB地址位,用于传输主设备发送给从设备的地址信息

6.2 HBURST[2:0]

表明是单次传输还是burst传输

6.3 HMASTLOCK

用来锁定主设备,实现master之间的互斥控制。当一个master获得总线访问权并开始进行数据传输时,可以使用该信号线防止其他master在此期间访问总线

6.4 HPROT[3:0]

用来确保从设备只能被授权主设备访问。在AHB协议中,每个主设备都被分配一个唯一的HPROT值,从设备可以根据这个保护类型来判断是否允许主设备进行访问

6.5 HSIZE[2:0]

AHB中指示数据传输的大小的信号

6.6 HTRANS[1:0]

指示当前这一次传输中的这一拍由master向slave发起的数据传输类型。

6.7 HWDATA[31:0]与HWRITE

HWDATA[31:0]: AHB的数据位,用于传输主设备发送给从设备的数据信息

HWRITE: 指示数据传输方向,为1 时表示写操作,为0时表示读操作

6.8 HRDATA[31:0]

AHB的读数据位,用于传输从设备发送给主设备的数据信息

6.9 HRESP[1:0]

从端为主端提供有关传输状态的附加信息

7.APB信号列表

8.控制信号:传送状态HTRANS[1:0]

9.控制信号:批量传送HBURST[1:0]

最常用的是000,SINGLE类型传输

10.批量式传输时序图

传输到地址0x64之后,接下来传输的地址是0x30

11.传送方向HWRITE

12.传送大小HSIZE[2:0]

当进行包围突发传输时,回绕地址必须对齐到特定的边界。这个边界由 HSIZE 和 HBURST 共同决定。具体来说,对齐的边界是 (突发长度) × (传输大小)

13. 传输完成HREADY

14.burst size与burst length、hsize

Burst length是指一次连续传输中数据的数量,通常以数据总线宽度为单位计算。例如,当数据总线宽度为32位时,burst length为4表示一次连续传输可以传输4个32位的数据。

Burst size是指数据的大小位宽,以字节为单位。

举例: 32个字节可以分为32 * 8位, 这里 Burst Size 是 8位(1 BYTE), Burst Length是 32.

地址边界的计算方式是突发(Burts)中的拍数(Beats)与传输(Transfer)大小(Size)的乘积,其中,拍数由HBURST控制,传输大小由HSIZE控制。例如,一个4byte大小的4拍循环突发(4-beats wrapping burst of word)以16byte为边界进行边界跳转,若起始地址为0x34,则它的四个transfer地址分别为0x34、0x38、0x3c和0x30

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

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

相关文章

国内外AI大语言模型推荐分享 除了Chatgpt 你会选择哪个模型?

当前AI技术飞速发展,Ai已经成为许多人日常工作和生活中不可或缺的工具,特别是以大语言模型为首的人工智能,它能够与我们进行自然语言对话,支持多种应用场景,如技术问答、代码生成、内容创作等,而且适用于各…

js入门经典学习小结

简介 js是解释型语言,虽然名字有java,但和java,c等编译型语言不同,它是解释型的,类似perl,py 历史 90年代最早js 1.0版本是网景navigator2引入的 然后欧洲计算机制造商协会(ECMA&#xff09…

链上数字供应链高级研修班举办 隆道总裁吴树贵分享供应链数字化实践

8月8日-8月9日,链上数字产业研究院联合中国物流与采购联合会举办的“链上数字供应链高级研修班”在上海开班,隆道公司总裁吴树贵作为培训讲师出席,并系统地分享了供应链理论及数字化转型创新实践经验。 “链上数字供应链高级研修班”旨在贯彻…

TCP详解(一)报文详情/MSS/MTU

本文旨在介绍TCP的报文格式详情和传输层、链路层的字节数限制 1 TCP 协议的报文格式 TCP 报文段包括协议首部和数据两部分,协议首部的固定部分是 20 个字节,头部是固定部分,后面是选项部分。 1.1 端口号 16位源端口:发送方主机…

笔记:在WPF中如何控件级全局事件和应用程序级全局事件

一、目的:在WPF中如何控件级全局事件和应用程序级全局事件 二、实现 应用程序级全局事件 //注册应用程序级全局事件 EventManager.RegisterClassHandler(typeof(Button), Button.ClickEvent, new RoutedEventHandler(ic_event_Click)); 如上代码既会注册全局Butt…

Linux--C语言之循环结构

文章目录 一、循环结构(一)循环的概念(二)循环的类型(三)循环的构成(四)当型循环的实现while死循环 (五)for...总结死循环 (七)循环实…

数据结构:链式二叉树(2)

目录 前言 一、节点个数 1.1 二叉树的节点个数 1.2 二叉树叶子节点个数 1.3 二叉树第k层节点个数 二、查找值为x的节点 三、判断二叉树是否为完全二叉树 前言 上一篇 链式二叉树(1),主要是讲了了一些链式二叉树的实现基础以及链式二叉…

day28 代码随想录 | 贪心 买卖股票 跳跃游戏 K次取反

买卖股票的最佳时机 II 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。返回 你能获得的 …

测绘工程项目管理系统,为测绘企业量身定制!测绘项目一体化管理

在日益复杂的测绘工程项目管理领域,高效、精准的信息化管理成为提升工作效率、降低运营成本的关键。企智汇软件,作为一款专为勘察、设计、监测、测绘等多元化工程项目量身打造的管理系统,正逐步成为行业内的佼佼者。 企智汇测绘管理系统深度…

Java FX 学习

声明:参考视频 一. Stage与Scene 舞台与场景:JavaFX应用程序将Ul容器定义为舞台(Stage)与场景(Scene)Stage类是顶级容器,它对应于窗体,其内容由Scene决定。Scene类是所有可视化内容…

运维监控体系实践与探索

在当今的数字化时代,运维工作作为企业IT服务的核心,面临着前所未有的挑战与机遇。随着业务规模的扩大和技术栈的复杂化,如何确保系统稳定运行、高效响应,成为运维团队亟需解决的问题。监控体系作为运维工作的基石,其建…

Python+selenium基于PO模式的Web自动化测试框架详解

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 一、什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主…

分布式锁 分布式锁解决了什么问题 如何实现 看门狗机制是什么

分布式锁的基本概念 在 Redis 中实现分布式锁的常用方式是通过 SETNX 命令(SET with NX option)来设置一个键(key),这个键代表锁。如果 key 不存在,SETNX 会设置成功,并返回 1,表示…

【LinuxPython】linux中通过源码方式安装python环境

python环境安装直接看第二部分即可。 文章目录 1.背景2.python安装3.包环境复制 1.背景 部署一个线上任务时,相同的代码本地开发机正常产出数据,线上产出数据为0,排查到原因是: ...File "/home/disk1/wangdeyong/venv/pyth…

linux搭建zabbix

zabbix简介 Zabbix是一个监控系统,它可以帮助我们实时检查设备的状态,比如服务器、网络设备等。当设备出现问题时,它会及时通知我们,让我们可以采取措施来解决。同时,它还可以把收集到的数据转化成图表和报告&#xf…

ITL-Internet Technology Letters

文章目录 一、期刊简介二、征稿信息三、投稿须知四、咨询 一、期刊简介 Internet Technology Letters本期旨在涵盖所有用于提高物联网性能的新兴或现代学习算法。在此背景下,我们打算收集有关物联网学习进展的研究论文。强烈鼓励与机器学习、计算智能、概率学习、统…

树和图()

预备知识(可以不看): 无向图可以理解为是特殊的有向图 1. 图的遍历(因为树可以理解为是特殊的图,因此这里不考虑树的遍历,只考虑图的遍历) 给定一个具体的图,便于分析 下面是树的结构…

Servlet——个人笔记

Servlet——个人笔记 文章目录 [toc]Servlet简介Servlet命名Servlet由来实现过程 Servlet 相对 CGI 的优势简要说说什么是CGI Servlet 在IDEA中开发流程Servlet注解方式配置WebServlet注解源码WebServlet注解使用 Servlet常见容器Servlet 生命周期简介测试 Servlet 方法init()…

交叉编译util-linux

参考文章:https://www.cnblogs.com/wanglouxiaozi/p/17836701.html 1、下载源码 https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/2、编译 解压压缩包: sudo tar xvf util-linux-2.39.2.tar.gz执行autogen.sh生成configure ./aut…

解锁眼部舒压新境界:WT2605C-AT-L009眼部按摩仪蓝牙语音方案,手机APP控制,让护眼更轻松!

一、开发背景: 随着科技的飞速发展和人们生活品质的提升,眼部按摩仪作为一种能够缓解眼部疲劳、改善眼部血液循环的健康产品,越来越受到消费者的青睐。在众多眼部按摩仪中,采用WT2605C-AT-L009蓝牙模块的应用方案,不仅…