AHB总线介绍【1】

1.简介

AHB总线规范是amba总线的一部分,全称是Advanced high performance bus。AMBA总线常用的有AXI,AHB,APB。APB 的全称:Advanced Peripheral Bus 作为 AMBA 总线的一层,APB 总线是为了功耗最小化和减低接口复杂度而设计的。APB 总线应该用于低带宽和不需要高性能流水线总线接口的外设。APB 总线上的所有信号都在正时钟沿发生变化,这个特性决定了 APB 可以更容易地整合到各种设计流程里。

以amba总线的SOC架构,以AHB系统为主干,挂上CPU,内存和DMA设备。

AHB系统总线可以给大量数据传输的模块之间提供高带宽的接口。

APB主要是提供给低速外设连接总线的桥梁。

AHB总线结构

2. AHB的特性包括:

2.1 Burst 传输

2.2 Split 传输

2.3 单时钟周期总线Master移交

2.4 单时钟沿操作

2.5 非3态电路(这个是为啥我也不清楚)

2.6 更宽的数据线宽度(64或128位)

AHB被推荐用于所有新设计,不仅因为它提供了更高的带宽解决方案,还因为单时钟边缘协议导致与典型ASIC开发期间使用的设计自动化工具更平滑地集成。

3.AHB总线互联结构

结构功能描述
AHB 主提供读写操作,提供地址和控制信号,同一时间只有 1 个主会被激活
AHB 从对读写操作在一定的地址范围内作出响应,并对主返回成功,失败或者等待等状态即hresp
AHB
Arbiter
仲裁器主要负责让总线上同时只有 1 个主在工作。
AHB
Decoder
负责对地址进行解码,即AHB给与的地址信息,并提供片选信号到slave。每个 AHB 总线都需要 1 个中decoder


4.AHB总线信号

Name

Source

Description

HCLK

时钟源

所有的总线时钟对应时钟的上升沿

HRESETn

复位控制

低有效的复位时钟

HADDR[31:0]

MASTER

给予总线地址

HWRITE

MASTER

1:写

0:读

HTRANS[1:0]

MASTER

00:IDLE

01:BUSY

10:NONSEQ

11:SEQ

HSIEZ

MASTER

单次传输的数据量Byte, half_word,word。注意:32位的总线只能最大是word(即32bit)。这个单次传输最大可以达到1024bit。

HBURST[2:0]

MASTER

就是看increment还是wrap

HPROT[3:0]

MASTER

保护信号

HWDATA[31:0]

MASTER

写入数据

HRDATA[31:0]

SLAVE

读的数据

HSEL

Decoder

片选信号

HREADY

SLAVE

Hready为高,表示是否传输完成

HRESP

SLVAE

一个传输的状态:OKAY,ERROR,RETRY,SPLIT

 5.点对点信号

Name    

Source   

Description

HBUSREQx

MASTER

表明是哪个master请求总线。最多16个

HLOCKx

MASTER

Master向arbiter发出的总线占用请求信号。Arbiter同意后,必须要保证hlockx为low时,才可以获得ARBITER授权来访问

HGRANTx

ARBITER

只有在HGRANT和HREADY都有效的时候,MASTER才能访问总线

HMASTER[3:0]

ARBITER

这些来自仲裁器的信号表明当前哪个总线主正在执行传输,支持SPLIT传输的从服务器使用这些信号来确定哪个总线主正在尝试访问。HMASTER的时间与地址和控制信号的时间保持一致。

HMASTLOCK

ARBITER

锁定正在传输的传输序列

HSPLITx[15:0]

SLAVE

从机用这 16 位的分块总线来指示仲裁器总线主机应该允许重试一个分块传输

 

 6.HREADY信号

heady信号是slave回复主,表示读写操作是否完成的信号,可以通过拉低来延长传输。

注意:HREADY会有两个,一个是总线给的输入hready_in,一个是SLAVE给出的hready_out。

这个示意图是指在传输过程中,在需要延迟传送的周期,会把HREADY拉低(数据的周期),此时地址和数据都需要保持。

因为是流水线的设计,本次操作data 对应下一个address ,所以作为Slave必须先判断一下Master对上一次其它Slave设备的操作是否已经完成。如果完成,则响应主设备的操作;如果没有完成,则等待完成,然后才响应操作。

7.HTRANS

HTRANS[1:0]
00IDLESlave忽略掉此时的传输
01BUSY表示master正在处理数据,slave需要忽略掉此时的传输
10NONSEQ表明当前是单笔的数据,或者是Burst的第一笔数据
11SEQ是Burst传输的剩余数据

T1:标明是busrt传输,这是burst的第一笔数据。

T2:HTANS是busy状态,表明当前传输延迟。

T3:继续传输,但是此时是没有数据的,所以是空白

T4:slave传输发现没法完成,拉低了Hready,

T5:master收到 延迟的信息,在T6时刻,随着hready拉高而受到数据。

8.HBURST

 这个递增和回绕是指的地址,递增就是随着上一地址增加,回绕就是数据传输到一个边界内返回。这个边界是由hsize和hburst共同决定的。注意边界不能超过1KB。

1. 在 T1 正沿触发时,第一个传送地址 0x68 送出, NONSEQ 表示这是第一笔的传送; WARP4 表明是4个数据要回绕地址。
S 在 T3 时,回传一笔数据。注意地址 0x60 为一延伸周期,其数据在 T6 正沿才被接收到 (对读而言)或写入 S (对写而言)。

这个图就是T1-T3是一笔传输,T3-T6是一笔传输。

第一笔传输从0x68开始,16位传输,第二笔是32Bit,从0x108开始。

  • 12
    点赞
  • 116
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值