【ARM AMBA AHB 入门 3.1 -- AHB控制信号】

AHB控制信号

传送状态HTRANS[1:0]

在AHB总线上, Master (M) 的传送状态可由HTRANS[1:0]来表示,这两位所代表的意义如下
在这里插入图片描述

批量传送HBURST[2:0]

批量传送是以群组为单位的传送方式,主要依地址的给法来区分:

  • 递增传送(incrementing burst),会依上一笔的地址来递增。
  • 回绕传送(wrapping burst),如: 回绕长度=4; 每4个字节要对齐在16字节的范围内。如果第一个地址 = 0x64,则传送的顺序为 0x68、0x6C、0x60。

每次传送数据的大小由HBURST[2:0]定义:
在这里插入图片描述

  • AHB从设备通常支持 SINGLE,INCR,INCR4,WRAP8, INCR8 和 INCR16。
  • AHB对传送范围规定不可超过1KB, 递增传送的大小可为任意数目, 但是不可超过1KB的范围

传送方向HWRITE

HWRITE:表示传送方向(依读或写的动作来决定传送信号的)方向)

  • HWRITE拉高时(写),M必须对写入动作初始化,数据会由M放到HWDATA[31:0]总线上。
  • HWRITE拉低时(读),M会对读取动作初始化,被寻址到的S会将数据放到HRDATA[31:0]总线上。

传送大小HSIZE[2:0]

传送数据大小由HSIZE[2:0]信号控制,表示每次传送的字节数目。
在这里插入图片描述
HSIZE[2:0]HBURST[2:0]两个信号可合起来定义回绕地址的范围。
例如:HSIZE[2:0]=32位,HBURST[2:0]长度为4字节,则回绕地地址须对齐在16字节
通常的AHB从设备是32位数据线,所以它支持8位,16位和32位3种大小。

保护控制HPROT[3:0]

HPROT[3:0]为总线协议保护信号用来定义存取的型态与特性,并非所有的M都会传送出HPROT[3:0],所以除非S有需要否则不会使用 到HPROT[3:0]信号。一般来讲该信号很少用到。

响应信号 HRESP[1:0]

Master 发起一笔传输后, slave 可以决定这笔传输的进程, 而 Master 不能取消已经发出的传输。Slave 通过HREADY信号反映传输是否否完成,通过HRESP[1:0]反映传输的状态。

  • Slave 可以如下方式完成一笔传输:
    • 立即完成一笔传输;
    • 延迟一个或几个周期完成传输;
    • 传输失败返回error;
    • 延迟传输,释放总线。

  • 传输完成标志 HREADY:

    • HREADY为高时传输完成,
    • HREADY为低时传输需要延迟。

  • 传输响应标志 HRESP[1:0]:

    • 00:OKAY-传输完成
    • 01:ERROR-传输错误
    • 10:RETRY一传输未完成,请求主设备重新开始一个传输,artpiter会继续使用通常的优先级
    • 11:SPLIT 一传输未完成,请求主设备分离一次传输, Arbiter 会调整优先级方案以便其他请求总线的主设备可以访问总线
  • 地址译码
    地址译码器用于为总线上每个slave提供选择信号HSELx,选择信号号是通过组合逻辑对地址码译码产生的。只有当前的数据传输完成后(HREADY为高), slave才会采样地址和控制信号以及HSELx。在一定条件下可能会出现这样的情况:产生HSELx 号而 HREADY为低,在当前传输后slave会改变。在这里插入图片描述

每个slave最小的地址空间为1KB,所有的master的burst传输上限也是1KB,如此设计保证了不会出现地址越界问题。当一个设计不会用到所有的地址空间时,可能出现访问到一个不存在的地址的情请况,这就需要增加一个附加的默认slave (default slave)来为上面的情况提供一个响应。

当SEQ或NONSEQ传输访问到一个不存在的地址,默认slave应该提供ERROR响应;当IDLE或BUSY传输访问到个不存在的地址,默认slave会响应OKAY。地址译码器会带有实现默试slave的功能。

  • 仲裁
    仲裁机制保证了任意时刻只有一个master可以接入总线。arbiter快定哪个发出接入请求的master可以接入总线,这通过优先级算法 实现。AHB规范并没有给出优先级算法,设计者需要根据具体的系统要求定义。一般情况下arbiter不会中断一个burst传输,将总线接入权让给其他master。当然未定义长度的burst传输是可以打断的,这要看优先级算法是如何规定的。如果一笔burst被打断,master再度获得接入权限时,会传递剩余的部分。如一笔长度为INCR8的传输在传递3beat后被打断,master再次获得接入授权后,会继续传输剩余的5beat,剩余部分可以由一个SINGLE和一个INCR4组成, 或诸一个INCR。
    • HBUSREQx:master向arbiter发出接入请求的信号。
    • HLOCKX:指示是否要进行不可中断的传输,这一信号与HBUSREQx同时由master向arbiter发出。
    • HGRANTx:arbiter产生指示master获得授权,当HGRANTx信号为高同时HREADY为高时,master可以向总线传输地址信号。
    • HMASTER[3:0]:arbiter产生指示哪个master获得授权,这一信号用于地址控制多路来选择哪个master接入总线。
    • HMASTERLOCK:arbiter产生指示当前传输是否为锁定序列传输。
    • HSPLIT:供支持SPLIT传输使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

主公讲 ARM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值