电子说
00 AMBA概述
AMBA (Advanced Microcontroller Bus Architecture)高级微控制器总线架构定义了在设计高性能嵌入式微控制器的一种片上通信标准。主要包含以下四种:
AHB (Advanced High-performance Bus) 高级高性能总线,用于高性能、高时钟频率的系统模块
ASB (Advanced System Bus) 高级系统总线,用于高性能的系统模块[现在使用较少]
APB (Advanced Peripheral Bus) 高级外围总线,用于低功耗外设,可连接任一版本系统总线
AXI (Advanced eXtensible Interface) 高级可拓展接口,高速度、高带宽,管道化互联,单向通道,只需要首地址,读写并行,支持乱序,支持非对齐操作,有效支持初始延迟较高的外设,连线非常多。
***01 ***基本组成
典型的AHB系统主要包含以下四部分:
AHB Master :总线主机能够通过提供地址和控制信号进行读写操作,任何时候只允许一个主机处于有效状态并使用总线。[发起端]
AHB Slave :总线从机在给定的地址空间响应读写操作,并将操作响应返回给有效的主机。[响应端]
AHB Arbiter :总线仲裁器确保每次只有一个总线主机被允许发起数据传输。
AHB Decoder : AHB译码器对每次传输的地址译码并在传输中包含一个从机选择信号。
操作流程:
①Mater向Arbtier发送总线占用请求;
②获得授权的Master进行总线传输
首先发出地址和控制信号:提供地址信息、传输方向等;
其次,译码器根据地址和控制信号选择Slave,确定数据传输路径;
最后进行数据传输。
AHB传输分为两部分:地址周期和数据周期;先地址周期,再数据周期;地址周期单周期,数据周期可多周期。
1.简单传输(无等待)
在第一个时钟上升沿传输控制和地址信号,在第二个时钟上升沿传输数据信号,同时HREADY信号为高表明数据传输完成。
2.等待状态的传输
首先是地址周期,在时钟上升沿时传输地址信号和控制信号;
其次是数据周期,在下一个时钟上升沿开始,如果HREADY信号为高则表明数据传输完成,HREADY信号为低则继续传输。
注意:对于写操作而言,数据在整个扩展周期要保持稳定;读操作则无必要。
3.多重传输
多重传输采用流水线pipeline技术。
如图,第一个周期传输A地址;第二个周期传输A数据和B地址,同时READY为高表明A传输完成;第三个周期传输B数据和C地址,由于READY信号为低,数据传输未完成,需要等待;第四个周期保持地址和控制信号,同时READY信号为高表明B传输完成;由于没有其他操作,第五个周期仅进行C数据传输,同时READY信号为高表明数据传输完成。
传输类型分四种:
空闲IDLE [00]:没有数据传输要求
忙BUSY [01]:表明总线正被占用,下次传输不能立即发生
非连续NONSEQ [10]:表明一个单一传输或一次突发传输的第一个传输
连续SEQ [11]:突发中的剩下传输且地址与前一次传输有关
第一个传输是一次突发传输的开始,为NONSEQ类型;
由于主机不能立刻执行第二次传输,因此未BUSY类型来延时下一次传输开始;
SINGLE单一传输、INCR未指定长度的增量突发、
INCR4、INCR8、INCR16 分别是4拍、8拍和16拍的增量突发
WRAP4、WRAP8、WRAP16 分别是4拍、8拍和16拍的回环突发
注意:突发禁止超过1KB的地址边界
1KB边界限制在AHB中表示burst传输不能跨越1KB边界的约束。该限制旨在防止burst传输从一个slave交叉到另一个slave。在实践中,这意味着如果master必须要进行跨1KB边界的burst传输则必须切分成两次传输
起始地址为0x38, HSIZE=WORD[4byte], 突发类型是4拍回环突发,回环边界地址=回环拍数*SIZE=4*4byte=16byte = 0x10。
由于起始地址不是16的整倍数,因此会产生折回,0x3C的下一个地址按增量为0x40,是16的整数倍,因此需要减去16,即为0x30。
2.INCR4
起始地址为0x38, HSIZE=WORD[4byte],突发类型为4拍增量突发。
地址顺序为0x38 0x3C 0x40 0x44[4次]
3.WRAP8
起始地址0x34, SIZE=WORD=4byte, 突发类型为WRAP8,
回环边界地址=回环拍数*SIZE=8*4=32byte=0x20,当遇到回环边界地址的整数倍时减去回环边界地址。
地址顺序0x34、0x38、0x3C、0x20、0x24、0x28、0x2C、0x30。
4.INCR
对于T1-T3周期,突发类型为INCR, SIZE=halfword=2byte,因此地址依次为0x20、0x22;
对于T3-T8周期,突发类型为INCR, SIZE=WORD=4Byte, 起始地址为0x5C,因此地址依次为0x5C、0x60、0x64。
传输方向HWRITE
HWRITE=H表明写操作,传输方向为MasteràSlave;
HWRITE=L表明读操作,传输方向为SlaveàMaster;
传输大小HSIZE[2:0]
8bit(byte) 、16bit(halfword)、32bit(word)、64bit(2word)、128bit(4word)、256bit(8word)、512bit、1024bit
主机发送地址信息给地址和控制多路选择器,选择器将地址信息发送给所有从机,同时将地址信息发送给译码器,译码器根据地址信息将相应设备的HSEL信号置高。
如果地址不存在则从机提供ERROR响应。
传输完成HREADY
HREADY=1表明传输完成;
HREADY=0表明传输将被扩展,继续传输。
传输响应HRESP
00 OKAY 传输成功完成
01 ERROR 传输发生错误
10 RETRY 重试
11 SPLIT 传输未完成
仅有OKAY信号是单周期给出,其他响应信号至少两个周期。
全部0条评论
快来发表一下你的评论吧 !