AHB
AMBA™ Specification (Rev 2.0)
AHB 是新一代 AMBA 总线,旨在满足高性能可综合设计的要求。 它是一种高性能的系统总线,支持多个总线主控器并提供高带宽操作。
AMBA AHB 实现了高性能,高时钟频率系统所需的功能,包括:
- 突发传输(Burst transfers)
- 分段传输(Split transfers)
- 单周期总线主设备交接(single-cycle bus master handover)
- 单时钟边沿操作(single-clock edge operation)
- 非三态实现方式(non-tristate implemention)
- 广泛的数据总线配置(wider data bus configurations)64/128 bits
可以在较高级别的总线和当前的 ASB/APB 之间进行有效的桥接,以确保可以轻松集成任何现有设计。
AMBA AHB 设计可能包含一个或多个总线主控,通常一个系统将至少包含处理器和测试接口。 但是,直接存储器访问(DMA)或数字信号处理器(DSP)被包含为总线主设备也很常见。
外部存储器接口、APB 桥和任何内部存储器是最常见的 AHB 从设备。 系统中的任何其他外围设备也可以作为 AHB 从设备。 但是,低带宽外围设备通常位于 APB 上。
典型的 AMBA AHB 系统设计包含以下组件:
- AHB master: 总线主设备能够通过提供地址和控制信息来启动读取和写入操作。 一次只能允许一个总线主设备主动使用该总线。
- AHB slave: 总线从设备响应给定地址空间范围内的读取或写入操作。 总线从设备将数据传输成功,失败或等待的信号发送回活动的主设备。
- AHB arbiter: 总线仲裁器可确保一次只允许一个总线主设备启动数据传输。 即使仲裁协议是固定的,也可以根据应用要求实现任何仲裁算法,例如最高优先级或公平访问。AHB 仅包含一个仲裁器,尽管在单主设备总线系统中这是微不足道的。
- AHB decoder: AHB 译码器用于解码每个传输的地址,并为传输中涉及的从设备提供选择信号。在所有 AHB 实现中都需要一个集中式解码器。
AHB 信号前缀
H
表示是一个 AHB 信号。 例如, HREADY
是用于指示 AHB 传输的数据部分可以完成的信号。 高电平有效。
AHB 信号列表
AMBA AHB 信号
名称 | 来源 | 描述 |
---|---|---|
HCLK Bus clock | 时钟源 | 此时钟对所有总线传输进行计时。 所有信号时序都与 HCLK 的上升沿有关。 |
HRESETn Reset | 复位控制器 | 总线复位信号为低电平有效,用于复位系统和总线。 这是唯一的低电平有效信号。 |
HADDR[31:0] Address bus | Master | 32-bit 系统地址总线。 |
HTRANS[1:0] Transfer type | Master | 指示当前传输的类型,可以是 NONSEQUENTIAL,SEQUENTIAL,IDLE 或 BUSY。 |
HWRITE Transfer direction | Master | 当高电平时,此信号指示写传输,而当低电平时,指示读传输。 |
HSIZE[2:0] Transfer size | Master | 指示传输的大小,通常为字节(8位),半字(16位)或字(32位)。 该协议允许更大的传输大小,最大为1024位。 |
HBURST[2:0] Burst type | Master | 指示传输是否构成突发的一部分。 支持四个,八个和十六个拍子突发,并且该突发可以递增或环绕。 |
HPROT[3:0] Protection control | Master | 保护控制信号提供有关总线访问的其他信息,并且主要供希望实现某种级别保护的任何模块使用。信号指示传输是操作码提取还是数据访问,以及传输是特权模式访问还是用户模式访问。 对于带有内存管理单元的总线主控器,这些信号还指示当前访问是可缓存还是可缓存。 |
HWDATA[31:0] Write data bus | Master | 在写操作期间,写数据总线用于将数据从主机传输到总线从机。 建议最小数据总线宽度为32位。 然而,这可以容易地扩展以允许更高的带宽操作。 |
HSELx Slave select | Decoder | 每个 AHB 从机都有其自己的从机选择信号,该信号表示当前传输是针对所选从机的。 该信号只是地址总线的组合解码。 |
HRDATA[31:0] Read data bus | Slave | 读取数据总线用于在读取操作期间将数据从总线从设备传输到总线主设备。 建议最小数据总线宽度为32位。 然而,这可以容易地扩展以允许更高的带宽操作。 |
HREADY Transfer done | Slave | 当 HREADY 信号为HIGH时,表明总线上的传输已完成。 可以将该信号驱动为低电平以扩展传输。注意:总线上的从设备都需要HREADY,因为两者输入和输出信号。 |
HRESP[1:0] Transfer response | Slave | 传输响应提供有关传输状态的其他信息。 提供了四种不同的响应,即 OKAY,ERROR,RETRY 和 SPLIT。 |
AMBA AHB 还具有支持多个总线主设备操作所需的许多信号。 这些仲裁信号中有许多是专用的点对点连接,下表中,后缀 x
表示信号来自模块X。例如,系统中将有许多 HBUSREQx
信号,例如 HBUSREQarm
, HBUSREQdma
和 HBUSREQtic
。
名称 | 来源 | 描述 |
---|---|---|
HBUSREQx Bus request | Master | 从总线主控器 x 到总线仲裁器的信号,指示总线主控器需要总线。系统中每个总线主机都有一个 HBUSREQx 信号,最多 16 个总线主机。 |
HLOCKx Locked transfers | Master | 当该信号为高电平时,表明主机要求锁定访问总线,并且在该信号为低电平之前,不应准许其他任何主机访问总线。 |
HGRANTx Bus grant | Arbiter | 该信号表明总线主机 x 当前是最高优先级的主机。 当 HREADY 为 HIGH 时,地址/控制信号的所有权在传输结束时发生变化,因此,当 HREADY 和 HGRANTx 均为 HIGH 时,主机可以访问总线。 |
HMASTER[3:0] Master number | Arbiter | 来自仲裁器的这些信号指示当前正在执行哪个总线主机,并被支持 SPLIT 传输的从机用来确定哪个主机正在尝试访问。 HMASTER 的时序与地址和控制信号的时序对齐。 |
HMASTLOCK Locked sequence | Arbiter | 指示当前的主机正在执行锁定的传输序列。 该信号与 HMASTER 信号具有相同的时序。 |
HSPLITx[15:0] Split completion request | Slave (SPLIT capable) | 从机使用此16位分段总线向仲裁器指示应允许哪些总线主机重新尝试分段事务。 该分段总线的每一位对应一个总线主控。 |