AHB协议详细介绍/时序/信号名

AHB学习总结

总线概述

作者:阿锋聊数字

AMBA的AHB总线是一个高性能总线,它可以包括masters, interconnects 和 slaves 。

它主要支持:

  1. 突发传输
  2. 单时钟边沿操作
  3. 非三态的
  4. 数据位宽可配置,64, 128, 256, 512, 和 1024 bits

多数的AHB Slave设备包括,memory设备、外部memory接口和高性能外设。如果你想连接低速设备,可以考虑使用低速总线,例如APB总线。

AHB总线还支持多Master的设计,你可以使用interconnect组件连接多个主,interconnect组件提供了仲裁器和路由机制。

​ 下图举例了一个一主三从的互联结构,图中未展示所有信号。

在这里插入图片描述

Master

在这里插入图片描述

Slave

在这里插入图片描述

信号描述

传输

基本传输

带读写等待的传输,下图中master 发起的操作因为slave暂时无法接收而有一个周期的等待,这个等待动作由Slave到Master的HREADY信号体现。注意当HREADY拉低时,Master必须锁定HADDRHREADY拉高。

在这里插入图片描述

传输类型

传输类型通过信号**HTRANS[1:0]**指示,共支持4中传输类型。

IDLE ['b00] 空闲状态,表示当前总线上没有数据传输。

BUSY ['b01] 忙状态允许在burst过程中插入一些空闲cycle,此时master可能没有准备好下面要传输的数据。

NONSEQ ['b10] 表示一个单拍传输或一个burst传输的帧头

SEQ ['b10] 表示一个burst传输的剩余传输

下面举例,方便理解各个传输类型的作用。这是一个INCR(长度未指定,一直自增)的传输

第1拍:burst传输的帧头,必须使用NONSEQ类型

第2拍:Master未准备好后续的数据,发出BUSY类型,此时Slave应当等待

第3-4拍:此时burst传输恢复正常了,使用SEQ类型表示此次操作的剩余传输

第5拍:HREADY拉低表示Slave暂时没有准备好,Master应当保持地址和控制字段不变

第6拍:HREADY拉高表示Slave告知Master传输可以继续。

在这里插入图片描述

锁定传输/Locked transfers

​ 如果Master想用锁定这个访问,可以通过拉高HMASTLOCK信号来实现,该信号向任何从机表明当前传输序列是不可分割的,因此必须在处理任何其他传输之前处理。

​ 锁定传输通常用于维护信号量的完整性,确保从机在微处理器SWP指令的读和写阶段之间不执行其他操作。

在这里插入图片描述

传输大小

​ **HSIZE[2:0]**指示了传输大小

HSIZE的表示的数据大小应当小于等于数据总线的大小。例如,当数据位宽为32bit时,HSIZE指示的大小应为8bits、16bits或32bits。即HSIZE的值应当小于等于‘b010

使用Hsize结合HBURST 决定wrapping bursts 的地址边界,例如:

​ 当HBURST指示为当前是Wrap8、HSIZE指示当前为Word/32bits传输时,

Wraping bursts的地址边界为:8*4Byte=32;即0x20.

HSIZE的时序应与Haddr的相同,但特殊的是,HSIZE的值应在一次传输过程中保持不变。

突发传输/Burst operation

​ 支持4、8、16拍突发传输,未定义长度的突发传输和单拍传输。

​ 自增突发传输访问的是连续的位置,在传输过程中每次传输的地址基于先前的地址自增。

在这里插入图片描述

突发操作/Burst operation

​ TODO

等待传输/Waited transfers

​ 如果需要更多的时间完成采样,Slave可以使用HREADYOUT 插入等待状态。在等待传输过程中,Master发出的传输类型和地址信号的改变是受限的。

在等待过程中改变传输类型
  • IDLE transfer

​ 在等待传输过程中,Master被允许从将传输状态从IDLE 修改为NONSEQ 。当HTRANS 的传输类型修改为NONSEQ后,应当保持不变,直到HREADY拉高。

在这里插入图片描述

  • BUSY transfer, fixed length burst

    在固定长度的等待传输中,Master被允许将传输状态从BUSY修改为SEQ。如果HTRANS 修改为SEQ后,应当保持不变,直到HREADY拉高。
    在这里插入图片描述

  • BUSY transfer, undefined length burst

    在不定长度(INRC)的等待传输中,Master被允许从BUSY状态切换到任意其他类型的传输。发送SEQ类型继续传输,亦或是发送IDLE或NONSEQ类型终止传输。

在这里插入图片描述

在等待阶段修改地址

当Slave发出等待状态后,Master被允许修改一次地址,描述如下:

  • 在IDLE传输中

  • 在收到ERROR回复后

    • During an IDLE transfer

      在等待传输中,Master被允许将传输类型从IDLE修改为NONSEQ ,修改后地址应当保持,直到HREADY 拉高。

在这里插入图片描述

- After an ERROR response  

  在等待传输中,如果Slave通过**HRESP** 返回了ERROR状态,Master被允许在**HREADY** 为低时修改地址。

在这里插入图片描述

保护控制/Protection control

存储器类型/Memory types

安全传输/Secure transfers

总线互联/Bus Interconnection

互联组件提供了系统中的主设备和从设备的连接。

在一个单一的主设备系统中,只需要一个Decoder和一个Multiplexor。

在多主的系统中需要在主从之间提供仲裁和信号路由。

互联

译码器/Decoder

在这里插入图片描述

排他传输/Exclusive Transfers

AHB总线的优缺点

优点

1、总线协议相对简单,开销小;

2、支持突发传输,最快时,每个周期都可完成一次操作load/store;

3、支持一些与指令强相关的处理,但不是很多;

缺点

1、不支持乱序传输:由于协议规定了Address Phase和Data Phase鄙必须是对齐传输,如果一个Slave响应慢,则后续操作命令也将被阻塞;

AHB总线的优缺点

优点

1、总线协议相对简单,开销小;

2、支持突发传输,最快时,每个周期都可完成一次操作load/store;

3、支持一些与指令强相关的处理,但不是很多;

缺点

1、不支持乱序传输:由于协议规定了Address Phase和Data Phase鄙必须是对齐传输,如果一个Slave响应慢,则后续操作命令也将被阻塞;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值