首页 > 其他 > 详细

AHB总线学习

时间:2020-08-24 22:34:33      阅读:417      评论:0      收藏:0      [点我收藏+]

一、AHB-lite总线基础 

AHB-Lite总线解决了高性能集成设计的要求。他是一个总线接口,支持单个总线主机,并提供高带宽操作。AHB支持以下性能:

(1)突发传输

(2)单时钟沿操作

(3)非三态实现

(4)宽数据总线配置

一个典型的AHB系统包括

(1)可支持高带宽传输的主干总线

(2)AHB主机

(3)AHB从机

最常见AHB-lite主机有高性能的CPU和DMA设备等,从机有内存设备,外部存储器接口,以及高带宽的外设。低带宽的外设也可以作为AHB-lite的从机但是必须挂在到APB桥上。如下图所示:

技术分享图片

  如下图所示的是一个具有1个主机3个从机的AHB-lite系统,

技术分享图片

如图所示,该系统的总线互连逻辑包括一个地址解码器、一个多路复用器。解码器将总线传来的地址通过解码选择从机,从机通过多路器将数据反馈给主机。

、AHB-lite接口信号

1、全局信号

HCLK

时钟信号

HRESETN

复位信号

2、主机信号

名字

目的对象

描述

HADDR

从机和解码器

32位的地址总线

HBURST[2:0]

从机

突发传输的类型,具体后面再讲

HMASTLOCK

从机

主机标号,判断当前的传输由哪个主机控制

HPROT

从机

协议类型,标记传输使用协议的额外信息

HSIZE[2:0]

从机

指明一次传输的位宽

HTRANS[1:0]

从机

当前传输的类型,主要包括四种类型

IDLE,BUSY,NONSEQUENTAL, SEQUENTAL(具体后面详细介绍)

HWDATA[31:0]

从机

写数据总线,主机发送到从机的总线

HWRITE

从机

传输方向控制,当为高电平时为写,低电平的时候为读

3、从机信号

名字

目的对象

描述

HRDATA[31:0]

多路复用器

从机发送数据到总机,读数据总线

HREADYOUT

多路复用器

当该信号为高电平时,表明传输已经完成,当该信号为低电平时,传输周期延迟,当前还未结束传输。

HRESP

多路复用器

当为低电平时,该信号指明传输状态是OKEY。

当为高电平时,该信号指明传输状态是ERROR。

4、解码器信号

名称

目的对象

描述

HSELXa

从机

标记哪一个从机被选中,由地址解码产生

三、传输过程

AHB传输的过程:

1、从机获取总线使用权:主机向判决器发送总线请求信号,判决器发送应答后主机可以开始传输。

2、数据传输:主机向从机传输数据,分为两个部分:

  (1)发送地址和控制信号:包括地址,位宽,突发类型等控制信号,仅一个时钟周期

  (2)数据传输:进行数据交换,一个或多个时钟周期

 3、从机应答:主机通过HRESP和HREADY标记完成状态,对于HRESP,有以下状态

  (1)OKEY:标记传输完成,当HRESP为该状态且HREADY拉高时,传输完成

  (2)ERROR:传输有错

  (3)RETRY和SPLIT:标记传输未完成,主设备仍需要占用总线

3.1基本传输

1、地址/控制传输:传输地址信息和控制信息,仅占一个时钟周期

2、数据传输:可能需要多个时钟周期,由信号HREADY决定(拉高才算数据结束)

3.1.1无等待传输

1、读时序

技术分享图片

 2、写时序

技术分享图片

 主要包括三个过程

(1)在第一个时钟上升沿,主机将地址信息和数据信息发送到总线上。(HWRITE为传送方向控制信息,为高是写,为低是读)

(2)在第二个时钟上升沿,从机采集地址和控制信息

(3)在从机采集到地址和控制信息后,主机在下一个时钟上升沿采样从机响应信号HREADY,若为高则传输完成。

3.1.2有等待传输

1、读时序

技术分享图片

 2、写时序

技术分享图片

有等待传输下,数据传输阶段可以扩展,即在HREADY拉高之前,数据传输阶段不结束。要求写数据在HREADY拉高前保持稳定,主机在HREADY拉高后采样读数据。 对于写操作来说,主机保持数据稳态直到扩展的周期,对于读操作来说,从机不需要一直保持,只需要在将要结束传输时提供数据,如图所示。

技术分享图片当数据传输阶段被扩充后,他会对下一个传输阶段造成影响。例如B的读数据扩展造成了C的地址扩展。

3.2 传输类型

HTRANS[1:0]

类型

描述

b00

IDLE

标志主机占有AHB总线,但是没有数据传输发生。从机需要使用OKAY状态回应该类型

b01

BUSY

标志主机占有AHB总线并在进行突发传输,但下一个传输不能立刻发生。从机需要使用OKAY状态回应

b10

NONSEQ

标志主机当前发送的地址和控制信号与上一次传输无关(单次传输就是该状态)

b11

SEQ

标记主机处于突发传输的中间部分,即当前发送的地址和控制信号与上一次地址和控制信号有关

例子如下:

技术分享图片

 第一次传输,开启一次突发传输,因此该地址与上一次传输无关,使用类型NONSEQ。第二次传输,无法立刻进行传输,因此使用BUSY标记延迟一个周期,延迟后可以进行传输,且处于突发传输中,因此地址与上一次地址有关,使用SEQ标记。之后均为猝发传输,均使用SEQ类型

3.3 传输类型

HSIZE[2]

HSIZE[1]

HSIZE[0]

Size

Description

0

0

0

8

Byte

0

0

1

16

Halfword

0

1

0

32

Word

0

1

1

64

Doubleword

1

0

0

128

4-word line

1

0

1

256

8-word line

1

1

0

512

-

1

1

1

1024

-

注意:传输位宽一定要小于或者等于数据总线的位宽,例如32bit的数据位宽,HSIZE必须只能试着用b000,b001,b010。

3.3 突发传输

突发传输有4、8、16、、无定义长度传输以及单个数据传输。

传输分为两大类:

  增量突发:传输过程中传输地址递增。下一次传输的地址是上一次地址加上一个增量

  回卷突发:猝发的地址范围被限制在一个固定范围之内,传输地址递增,若是超出则回到地址范围的开始的地址。例如从0x34进行增量为4,范围为16的回卷猝发,地址顺序为0x34、0x38、0x3c,0x30

HBURST[2:0]

类型

描述

000

SINGLE

单个传输

001

INCR

无限制长度的增量突发传输

010

WRAP4

4拍回卷突发

011

INCR4

4拍增量突发

100

WRAP8

8拍回卷突发

101

INCR8

4拍增量突发

110

WRAP16

16拍回卷突发

111

INCR16

16拍增量突发

  注意一次猝发传输不能跨越1kB的地址区间,且传输的起始地址必须与数据类型对应,例如传输字数据的二进制起始地址必须满足后两位为00。

3.3 .1 突发终止

 1、在未定义传输长度的情况,也就是无限制长度传输

  • 若下一个HTRANS标记为BUSY或SEQ:猝发传输未终止
  • 若下一个HTRANS标记为NONSEQ或IDLE:上一次猝发传输已经终止

2、在定义了固定长度的突发后,不允许主机发送一个BUSY信号结束传输。

3、在单个突发的时候,不允许使用BUSY信号结束突发。

4、若猝发传输是提前终止的,如总线控制权被剥夺,那么主机需要在可以进行传输时重建猝发传输。例如一个4拍传输仅发送了一拍就终止,主机需要使用INCR类型的猝发构建3拍传输以重建。

5、突发也可以被以下两种方式结束

  (1)从机发送error响应

  (2)多系统。。。(这个这里不讲,需要时在添加)

3.3 .2 例子讲解

1、4拍回卷突发

技术分享图片

   因为传输方式是突发为4拍回卷突发且位宽是Word也就是32位的。所以地址回卷为16byte的边界(4×4byte)

2、4拍增量突发

技术分享图片

 3、无定义长度突发

技术分享图片

第一个突发执行写操作,包含两个halfword的突发从地址ox20开始,地址按照两个字增加,第二个突发执行读操作,,包含三个word的传输,地址开始为0X5C,并且按照4个字节地址增加。

3.4等待传输中的问题

从机使用HREADY去插入等待状态如果他们需要更多的时间去提供或者抓取数据,在这个等待过程中主机可以在一定的约束下改变传输的类型和地址。

3.4 .1 在等待过程中传输类型改变

当从机请求等待状态时,主机禁止改变传输类型,除非以下几种情况

  (1)当前处于IDLE传输中

  (2)BUSY传输中,固定的突发长度

  (3)BUSY传输中,没有定义传输的长度

  (4)从机反馈ERROR

1、IDLE传输

技术分享图片

在等待期间主机可以从IDLE状态下改变为NONSEQ状态。当传输类型变为NONSEQ状态,HTRANS信号必须一直保持这个状态直到HREADY变为高电平。(IDLE状态下不传送数据,所以在HREADY拉低的情况下,地址可以一直改变,直到变为不是IDLE的状态)如上图所示,主机给地址Z设置的传输状态是IDLE,在HREADY拉低后,主机该改变了传输状态为NONSEQ并且初始化了INCR4无限制突发方式给地址B。在HREADY为低电平的时候,主机一直保持为HTRANS不变。

2、BUSY传输

技术分享图片

 

 在等待传输期间,对于一个固定长度的突发来说,主句被允许将传输状态由BUSY变为SEQ。当HTRANS变为SEQ时,主机必须保持这个信号一直不变,知道HREADY变为高电平。

3、从机反馈错误

技术分享图片

 

 在T3-T4时,从机响应error信号,此时主机将传输类型修改为IDLE,并且修改了地址。

四、从机响应信号

HRESP信号解析

HRESP

反馈

描述

0

OKEY

传输完全成功,或者请求额外的周期完成从机传输数据,此时这个信号代表了当前传输成功或者依然进行中。

1

ERROE

在传输攻错中发生了一个错误。对于HREADY在第二个周期中被断言的错误条件,需要两个周期响应。

下表中表明了一个完成的传输响应是由HRESP信号与HREADY信号组成的。

HRESP

HREADY

 

0

1

0

处于传输中

传输成功

1

错误响应,第一个时钟周期

错误,第二个时钟周期

这里我们分析下最后一种情况,

虽然OKAY响应可以在一个周期内给出,但错误响应需要两个周期。为了启动错误响应,从驱动器HRESP高表示错误,而驱动HREADY低延长一个额外的周期传输。在下一个循环中,HREADY被驱动到高位以结束传输,HRESP被驱动到高位以指示错误。

由于总线的流水线特性,所以需要两个周期的响应。当一个slave开始发出一个错误响应时,下面的传输地址已经被广播到总线上了。两个周期的响应为主服务器提供了足够的时间来取消下一次访问,并在下一次传输开始之前使HTRANS[1:0]空闲。

技术分享图片

 在T2-T3时从机发出了一个错误信号,这是第一个错误周期,此时HREADY处于低电平。在T3到T4时,此时从机再次发出了一个错误周期,这是最后一个错误响应,此时HREADY拉高。此时主机改变了传输状态为IDLE,这样取消了B地址上传送的数据。

AHB总线学习

原文:https://www.cnblogs.com/tedymafpga/p/13542818.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!