AHB总线协议

article/2025/10/14 0:23:46

文章目录

  • 1.说明
  • 2.简介
  • 3. SOC中的AHB
  • 4.完整的AHB架构
  • 5.AHB接口信号列表
  • 6.htrans[1:0]/hsize[2:0]/hburst[2:0]/hresp[1:0]信号解读
    • 1.htrans[1:0]
    • 2.hsize[2:0]
    • 3.hburst[2:0]
    • 4. hresp[1:0]
  • 7.基本传输
    • 1. 没有等待的读写操作
    • 2.有等待的传输
    • 3. 多个流水传输
    • 3.WRAP4的传输
  • 8. hready_out 与 hready_in;
  • 8.问题求教

1.说明

该文参考链接:
参考原文1

这里对这篇文章做下笔记,以及加上一些自己的理解;如有需要,可联系删除;

2.简介

AHB总线规范是AMBA总线规范的一部分,AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计采用,它规定了AHB (Advanced High-performance Bus)、ASB (Advanced System Bus)、APB (Advanced Peripheral Bus)。AHB用于高性能、高时钟频率的系统结构,典型的应用如ARM核与系统内部的高速RAM、NAND FLASH、DMA、Bridge的连接。APB用于连接外部设备,对性能要求不高,而考虑低功耗问题。ASB是AHB的一种替代方案。

3. SOC中的AHB

AHB总线的强大之处在于它可以将微控制器(CPU)、高带宽的片上RAM、高带宽的外部存储器接口、DMA总线master、各种拥有AHB接口的控制器等等连接起来构成一个独立的完整的SOC系统,不仅如此,还可以通过AHB-APB桥来连接APB总线系统。AHB可以成为一个完整独立的SOC芯片的骨架。
Alt

4.完整的AHB架构

Alt

  • 只允许一个master进行总线占用;
  • arbiter需要正确的仲裁master请求,送给相应的slave,有关仲裁的知识可以看我下面的这篇文章哦;
    仲裁那些事
  • decoder接受slave送回的读数据以及其它信号,正确的送回给相应的master;

5.AHB接口信号列表

接口名方向描述
hclksysterm系统时钟
hresetnsysterm系统复位
haddr[31:0]master->slave读写地址
htrans[1:0]m->s传输类型NONSEQ/SEQ/IDLE/BUSY
hwritem->smaster读写指示 0为读,1为写
hsize[2:0]m->s每次传输的大小指示
hburst[2:0]m->s传输burst指示
hprot[3:0]m->s保护类型该信号一般不用,就没看了
hwdata[31:0]m->s写数据
hrdata[31:0]s->mslave返回读数据
hreadys->mslave在读操作下,为读数据有效指示,写操作下,表示可以接收数据了;
hresp[1:0]s->mslave指示当前传输状态
hselm->smaster选择slave指示

6.htrans[1:0]/hsize[2:0]/hburst[2:0]/hresp[1:0]信号解读

1.htrans[1:0]

htrans[1:0]传输类型描述
2’b00IDLE主设备占用总线,但没进行传输两次burst传输中间主设备可发IDLE此时就算slave被使能,不会从总线上获取任何的数据信号。如果此时salve被选中,那么每一个IDLE周期slave都要通过HRESP[1:0]返回一个OKAY响应
2’b01BUSY主设备占用总线,但是在burst传输过程中还没有准备好进行下一次传输一次burst传输中间主设备可发BUSY这时slave不会从总线上收取数据而是等待,并且通过HRESP[1:0]返回一个OKAY响应。需要注意的是,这个transfer需要给出下一拍的地址和控制信号,尽管slave不会去采样。
2’b10NONSEQ表明一次单个数据的传输或者一次burst传输的第一个数据地址和控制信号与上一次传输无关。也就是新一次传输的头一个
2’b11SEQburst传输接下来的数据地址和上一次传输的地址是相关的,这时总线上的控制信号应当与之前的保持一致,地址视情况递增或者回环。NONSEQ后面紧跟着的就是SEQ;

2.hsize[2:0]

hsize[2:0]传输大小
0008bits
00116bits
01032bits
01164bits
100128bits
101256bits
110512bits
1111024bits

3.hburst[2:0]

注意burst操作不可跨1k(1024)边界

hburst[2:0]类型描述
000SINGLE单个传输
001INCR地增传输
010WRAP4回环传输4个
011INCR4递增的传递4个
100WRAP8回环传输8个
101INCR8递增传输8个
110WRAP16回环传输16个
111INCR16递增传输16个

4. hresp[1:0]

hresp[1:0]代表类型描述
00OKAY传输成功
01ERROR传输错误
10RETRY请求再次传输
11SPLIT请求主设备分离一次传输 (这里需要再理解下)

7.基本传输

1. 没有等待的读写操作

在这里插入图片描述

  1. master第一个时钟周期发起读写操作,将控制信号及地址信号给到slave;
  2. 若为写操作,master则在第二拍给出写数据,同时slave将hready拉高代表可以接收数据,则传输结束;注意slave给出hready信号就会给出hresp一系列信号等;

2.有等待的传输

在这里插入图片描述
slave可以及时处理master请求,但也可能存在slave太慢不能立即处理的情况。这时需要让master稍微等一等,需要slave插入一些等待的状态。如下图所示,HREADY信号在第二和第三周期拉低,意在告诉master,slave不能立即处理,需要master等待2个周期。在这里需要注意2点:
如果是写操作,master需要在等待期间保持写数据不变,直到本次传输完成;
如果是读操作,slave不需要一开始就给出数据,仅当HREADY拉高后才给出有效数据。

3. 多个流水传输

在这里插入图片描述
T1,master传入地址和控制信号,因为是新的burst开始,transfer的类型是NONSEQ;
T2,由于master不能在第二个周期里处理第二拍,所以master使用BUSY transfer来为自己延长一个周期的时间。注意,虽然是延长了一个周期,但是master需要给出第二个transfer的地址和控制信号;
T3,slave采集到了master发来的BUSY,知道master需要等待一拍,所以slave会忽略这个BUSY transfer;
T3,master发起了第二个transfer,因为是同一个burst的第二个transfer,所以transfer的类型是SEQ;
T5,slave将HREADY信号拉低,告诉master需要等待一个周期;
T8时刻完成最后一个transfer。
需要注意的 虽然slave会忽略掉BUSY transfer,但是master也需要给出下一拍的地址和控制信号。
(直接复制过来了,还是建议看看原文哈)

这里每个传输至少两拍,可以流水传输;slave没有等待的话就很顺,有需要等待的话,注意数据在slave没有准备好的情况下,master需要保持相关的数据不动;

3.WRAP4的传输

在这里插入图片描述
这里不同的点就是连续了4个传输;

8. hready_out 与 hready_in;

in与out的概念是相对slave来说的,对于slave是一个in信号,还是一个out信号;

  • hready_in:总线master侧的信号,用于表示上一笔传输结束,总线准备好开始一次新的传输,主要是用于切换slave时用,让后一个slave(2)的数据始终保持在前一个slave(1)的后面,不会因为slave1的延时导致总线混乱;
  • hready_out:总线slave侧信号,表示slave可以接收数据;

一篇不错的文章,作为参考

8.问题求教

这里有几个疑惑希望有大佬可以解答一下:

  1. 如果已经指定为WRAP4了,那master还需要按SINGLE方式去计算地址给到地址接口么;
  2. 是不是只有在数据接口足够大的时候才可以配置相关的hsize;如图中数据位宽为32bits,那么我hsize的一个可配置的范围是否只能是0-2;不能再多了?

http://chatgpt.dhexx.cn/article/V0yCmtYt.shtml

相关文章

AMBA AHB介绍

AMBA AHB介绍 AHB是为提出高性能可综合设计的要求而产生的新一代AMBA总线。它是一种支持多总线主机和提供高带宽操作的高性能总线。 AMBA AHB实现了高性能,高时钟频率系统的以下特征要求: 突发传输分块处理单周期总线主机移交非三态执行更宽的数据总线…

qspi AHB总线学习 - 01

经过几天的学习发现如果不了解AHB总线有些知识get不到,下面是转 qixin_william的博客 http://blog.163.com/qixin_william/blog/static/240217035201491133626819/ 一、AHB的基本介绍 AHB是ARM退出的AMBA总线系列中的其中一种,它是一种高性能的pipe系统总…

AMBA5 AHB协议规范(AHB5,AHB-Lite)中文版-第五章 从机响应信号

第五章 从机响应信号 介绍从机响应信号。它包括以下部分: – 从机传输响应on page 5-56. 5.1 Slave transfer responses 在主机开始传输后,控制传输的进展。在传输开始后,主机不能取消传输。 对于支持AHB5 Exclusive_Transfers属性的组件,…

AHB总线学习汇总

博客不是写书,基本的背景也不做什么介绍了,了解的人是不会介意这些东西的。 一、AHB的基本介绍 AHB是ARM退出的AMBA总线系列中的其中一种,它是一种高性能的pipe系统总线。 1. AHB总线有一下特性: a.Burst 传输 b.Split 事务处理…

AHB协议相关

AHB协议相关 Created: November 9, 2021 7:19 PM Tags: AMBA 🍀简介 AHB(Advanced High Performance Bus)总线规范是AMBA(Advanced Microcontroller Bus Architecture) V2.0总线规范的一部分,AMBA总线规范是ARM公司提出的总线规范,被大多数…

AHB协议

文章目录 什么是AHB总线协议AHB总线组成AHB信号描述AHB传输Bust传输 AMBA高级处理器总线架构,不同的速率要求构成了高性能SOC设计的通信标准: AHB高级高性能总线APB高级外围总线AXI高级可拓展接口 什么是AHB总线协议 AHB:主要是针对高速率、高频宽及快…

AHB 协议学习

文章目录 AHB 协议学习一、 AHB 协议 信号二、 AHB 协议 传输2.1 a read transfer with two wait states2.2 a write transfer with one wait states2.3 transfer with HTRANS(控制信号)**2.4 transfer :Eight-beat incrementing burst, INCR…

AMBA5 AHB协议规范(AHB5,AHB-Lite)中文版-第三章 传输

第三章 Transfers 本章描述读写传输。它包括以下部分: – 基本传输 on page 3-28. – 传输类型 on page 3-30. – 锁定传输 on page 3-32. – 传输大小 on page 3-33. – 突发操作 on page 3-34. – 等待传输 on page 3-39. – 保护控制 on page 3-44. – 内存类型 on page 3-…

AMBA 系列之 AHB 协议

目录 1. 简介 1.1 AHB总线的架构 1.2 AHB基本特性 2. AHB总线的组成 3. 信号描述 3.1 AHB Slave 接口 3.2 AHB Master 接口 3.3 AHB Arbiter 接口 3.4 AHB Decoder 接口 4. 总线操作 5. 基本传输 5.1 没有等待状态的单次传输(Single Transfer&#xff0…

AHB总线

大部分的总结在csdn里面都有。这里只是总结自己理解的。 AHB基本特性有: Burst传输(一共有Hburst[2 : 0]的类型),single,incr,wrap4,incr4,wrap8,incr8,wra…

AMBA5 AHB协议规范(AHB5,AHB-Lite)中文版-第一章 引言

ARM AMBA 5 AHB 协议规范 AHB5, AHB-Lite 发行信息 变更历史 日期版本保密性更改2006/6/26A非保密First release for v1.02015/6/25B.a保密Update for AMBA 5 AHB Protocol Specification2015/10/30B.b非保密Confidential to Non-Confidential Release Contents ARM AMBA 5 A…

AHB协议详解

AHB总线 AHB总线在AMBA2中就已经定义,AHB总线一开始主要是作为系统高速总线使用,适用于高性能,低功耗的系统设计。目前因为AXI总线作为高速总线的优势更加明显,AHB会用在相对低速的系统设计中。基本排序就是APB适用于低速设计&am…

AHB学习笔记

1.AHB概述 AHB总线是一种专为高性能同步传输设计的总线,层次高于APB总线,支持以下特性: 突发传输拆分事务主设备单时钟周期传输单时钟沿操作非三态实现宽数据总线配置(64/128bit) 1.1.典型AHB系统 典型的AHB系统包括以…

AHB协议学习

AHB协议总结 AHB协议学习1. AHB简介2. AHB的接口信号2.1 Global signals2.2 Master signals2.3 slave signals2.4 decoder signals2.5 multiplexor signals 3. 传输4. Decoder5. Multiplexor6. 大小端Endianness:7. Exclusive transfer AHB协议学习 1. AHB简介 AH…

AHB总线介绍【1】

1.简介 AHB总线规范是amba总线的一部分,全称是Advanced high performance bus。AMBA总线常用的有AXI,AHB,APB。APB 的全称:Advanced Peripheral Bus 作为 AMBA 总线的一层,APB 总线是为了功耗最小化和减低接口复杂度而…

AMBA总线—AHB总线协议详解

文章目录 一、AMBA总线介绍1.1.AMBA发展史1.2.典型的AMBA系统 二、AHB总线(宏观构造)2.1.AHB总线组成2.2.AHB总线组成互连2.3.AHB操作概述2.4.AHB基本传输阶段 三、AHB总线传输(时序)3.1.AHB信号描述(重要)…

Docker详解之EXPOSE

EXPOSE <端口1> [<端口2>...] 大家都知道以上代码是Dockerfile中来声明端口的命令&#xff0c;但是你真的了解过它吗&#xff1f;现在我带大家来深入了解我们的EXPOSE命令。 首先&#xff0c;我们最应该明确的一点就是&#xff0c;EXPOSE命令只是声明了容器应该打…

Network: use `--host` to expose

vite启动后提示&#xff1a; Network: use --host to expose&#xff0c;且无法通过网络IP访问服务 你遇到的问题是不是跟下图这样&#xff1a; 此问题的原因 当 局域网 中另一台设备需要访问该服务时&#xff0c;必须通过本机 IP 端口 访问。 尝试访问后&#xff0c;发现找…

AE(Auto Expose)自动曝光

AE Auto Expose自动曝光 1.作者&#xff1a;一隅生 自动曝光就是相机根据光线条件自动确定曝光量。 从根本测光原理上分可分两种&#xff1a;入射式和反射式。入射式就是测量照射到相机上的光线的亮度来确定曝光组合&#xff0c;这是一种简单粗略的控制&#xff0c;多用于低档相…

简单的聊一聊 Vue3.2 中新出的 expose 是做啥用的?

随着Vue 3.2的发布&#xff0c;一个新的组合工具提供给我们&#xff0c;叫做 expose。 你是否曾经创建过一个需要向模板提供一些方法和属性的组件&#xff0c;但又希望这些方法对组件是私有的&#xff0c;不能被父类调用&#xff1f; 如果你在开发一个开源的组件或库&#xff0…