AHB 协议学习之 transfer

学习摘自数字芯片实验室

Basic transfers

AHB-Lite的一个transfer包括两个阶段

Address :持续单个HCLK周期,除非被前一个总线传输扩展。

Data :可能需要几个HCLK周期。由HREADY信号控制完成传输所需的时钟周期数。

HWRITE控制来自Master数据传输的方向:

•HWRITE为HIGH时,表示写传输,主设备广播(broadcasts)数据到写数据总线HWDATA [31:0]上

•HWRITE为LOW,时,表示读传输,slave必须产生读数据总线上的数据HRDATA [31:0]

最简单的传输是没有等待状态的传输,由一个地址周期和一个数据周期组成。下图显示了一个简单的读传输和一个简单的写传输。
在这里插入图片描述
在这里插入图片描述
在没有等待状态的简单传输中:

1.master在HCLK上升沿之后将地址和控制信号驱动到总线上。

2.slave在下一次HCLK上升时对地址和控制信息进行采样。

3.slave对地址和控制信号采样后,驱动合适的HREADY响应。这个响应在第三个HCLK上升沿被由master采样。

任何传输的地址阶段都发生在上次传输的数据阶段。地址和数据的重叠是AHB总线流水线的基础,在实现高性能的同时为slave提供足够的时间来提供对传输的响应。

slave可以插入等待状态任何传输,以便获得足够的时间来完成传输。

下图显示了具有2个等待状态的读传输和具有1个等待状态的写传输。

在这里插入图片描述

对于写操作,master在整个扩展周期内保持数据稳定。
对于读操作,slave在传输完成的时候才需要提供有效数据。

当以这种方式扩展数据传输时,它会扩展下一次传输的地址阶段。下图显示了三次传输,地址C被上次传输扩展了。

在这里插入图片描述

对应于地址A和C的传输是零等待传输

•到地址B的传输有一个等待状态

•B传输的数据阶段会扩展C传输的地址阶段。

Transfer typest

传输可以分为四种类型,由HTRANS [1:0]控制。

b00 :IDLE表示不需要进行数据传输。建议在master终止锁定传输后使用IDLE传输。
b01 :BUSY 传输用于在burst传输中插入idle周期,表示master正在继续burst传输,但下一次传输不能立即发生。
当master使用BUSY传输时,此时的地址和控制信号必须为burst传输中下一个传输的地址和控制信号。

只有未定义长度的burst传输才能将BUSY传输作为burst传输的最后一个周期。

slave必须始终给BUSY传输提供零等待OKAY响应,并且不做任何操作。

b10 :NONSEQ表示单次传输或burst传输的第一次传输。

NONSEQ传输的地址和控制信号与先前的传输无关。

总线上的single传输被视为长度为1的burst传输,因此传输类型是NONSEQUENTIAL。

b11 :SEQUENTIAL传输的地址与之前的传输有关。控制信息与之前的传输相同。其地址等于之前传输的地址加上传输大小HSIZE [2:0](以字节为单位)。在wrapping burst传输的情况下,地址会在地址边界处wrap。

下图显示了NONSEQ,BUSY和SEQ传输类型的使用。

在这里插入图片描述

在上图中:

T0-T1 4-beat读传输以NONSEQ传输开始。

T1-T2 master无法执行第二拍传输,插入BUSY传输以延迟第二拍的开始。slave提供第一拍的数据。

T2-T3 master开始第二拍传输,所以HTASNS[1:0]为SEQ。此时master忽略slave提供的任何数据。

T3-T4 master执行第三拍传输。slave提供第二拍的读数据。

T4-T5 master执行最后一拍传输,slave无法完成上次传输并使用HREADY插入一个等待状态。

T5-T6 slave提供第三拍的读数据。

T6-T7 slave提供最后一拍的读数据。

Locked transfers

如果master需要锁定访问,则必须置位HMASTLOCK信号,向slave指示当前传输是不可分割的。下图显示了HMASTLOCK信号。

在这里插入图片描述

建议master在锁定传输后插入IDLE。

大多数slave都不需要HMASTLOCK,但是如果slave可以被多个master访问,则必须实现HMASTLOCK信号。

Transfer size

HSIZE [2:0]表示数据传输的大小,如下表所示:

在这里插入图片描述
HSIZE设置的传输大小必须小于或等于数据总线的宽度。

例如,对于32位数据总线,HSIZE必须仅使用值b000,b001或b010。

将HSIZE与HBURST结合使用,以确定wrapping bursts的地址边界。

HSIZE信号与地址总线具有完全相同的时序。但是,HSIZE在burst传输过程中必须保持不变。

发布了32 篇原创文章 · 获赞 2 · 访问量 1511

猜你喜欢

转载自blog.csdn.net/qq_36248682/article/details/105350081