1.AMBA
AMBA(Advanced Microcontroller Bus Architecture)高级微控制器总线结构,定义了用于设计高性能嵌入式微控制器的片上通信标准。
AMBA规范中定义了三种不同的总线:
(1)高级高性能总线(Advanced High-performance Bus,AHB)
(2)高级系统总线(Advanced High-performance Bus,ASB)
(3)高级外围总线(Advanced Peripheral Bus,APB)
其中ASB使用较少,大家通常使用AHB+APB。下面给出一种经典的基于AMBA的微控制器系统。
在这里,可以把Bridge认为是一个从设备。
2.AHB
AHB总线有以下特性:
(1)高性能
(2)流水线操作
(3)多个总线主机
(4)突发传输
(5)拆分事务
(6)单周期总线主切换
(7)单时钟沿操作
(8)非三态实现
(9)更宽的数据总线配置(64/128位)
AHB总线由以下四部分组成,如下图所示:
(1)AHB master:总线主控器能够通过提供地址和控制信息来启动读写操作。任何时候都只允许一个总线主机主动使用总线。
(2)AHB slave:总线从机在给定的地址空间范围内对读或写操作作出响应。总线从设备向发送请求的主设备发回数据传输成功、失败或等待的信号。
(3)AHB arbiter:总线仲裁器确保一次只允许一个总线主机启动数据传输。
(4)AHB decoder:AHB译码器用于对每次传输的地址进行译码,并为参与传输的从设备提供选择信号。
下面给出AHB总线的信号列表(这里不再给出翻译,可自行理解):
下面对AHB总线的传输进行讲解。
2.1基础传输
AHB传输由两个不同的部分组成,分别是一个时钟周期的寻址阶段和一个或多个时钟周期的数据阶段。数据阶段的时钟周期数由从机给出的HREADY信号决定,只有从机准备好了,一次传输才能结束。不过,AMBA协议建议从机的等待状态不要超过16个时钟周期,以防止任何单个访问在大量时钟周期内锁定总线。
下面给出一个传输图,可以发现当HREADY置1时,传输才结束。
那么当从机一直准备好时,主机就可以实现两级流水线式的传输操作,即在地址A传输DATA时,地址B已经可以传输地址了。
主要的传输方式,即HTRANS[1:0]信号有以下四种情形。其中普通传输可以认为是单次BRUST传输,因此单次传输的HTRANS为NONSEQ。
2.2突发传输
AMBA AHB协议中定义了4、8和16拍突发,以及未定义长度的突发和单次传输,突发传输包括增量和回环。下面给出HBURST[2:0]信号的所有情况。要注意的是,这些突发传输都不能跨越1KB的地址边界。
如果总线主控器因为失去了对总线的所有权而无法完成突发,那么它必须在下一次访问总线时适当地重建突发。例如,如果主机只完成了四拍突发中的一拍,那么它必须使用未定义长度的突发来执行剩余的三次传输。
下面给出一些突发传输时序图。
(1)普通的增量突发
(2)四拍的增量突发
(3)四拍的回环突发
(4)八拍的回环突发和增量突发(十六拍和八拍差不多)
(5)未定义长度的增量突发(注意传输的是字还是半字)
2.3从机反馈
从机除了HREADY信号,还需要反馈HRESP信号,下面给出HRESP信号的描述。
更多关于AHB总线的内容请在ARM官网上寻找