(一)AHB 总线的架构
总线周期:就是总线时钟的频率,对于AMBA AHB 或者APB 协议总线周期定义为从一个上升沿到临界的上升沿的变化区间。
总线传输:AHB 总线传输是数据目标的读写操作,可能会持续一个或者多个总线周期,而总线的传输在收到从机的ready信号终止,总线位宽为8、16、32、64、128bits。
猝发传输:定义了一个或多个数据传输,由主线总机发起,在地址空间增加时,每次传输增加的步长,由总线传输的大小决定。
(二)AHB总线特点
- 高速总线,高性能
- 流水线操作
- 支持多个总线主设备(最多16个)
- 支持single、burst传输
- 总线位宽8、16、32、64、128bits
- 上升沿触发
(三)AHB总线结构
(1)AHB主设备(master)
- 初始化一次读/写操作
- 某一时刻只允许一个主设备使用总线
- uP、DMA、DSP、LCDC
(2)AHB从设备(slave) - 响应一次读/写操作
- 外部存储器控制器EMI、APB bridge
(3)AHB仲裁器(arbiter)
允许某一个主设备控制总线(没有定义仲裁算法)
(4)AHB译码器
通过地址译码来决定选择哪一个从设备
(四)AHB总线信号
- HCLK/HRESETn(时钟与复位信号)
- HSEL(指明当前被访问的从设备,来自译码器)
- HADDR[31:0] (32位系统地址总线)
- HWDATA[31:0] (写数据总线,从主设备写到从设备)
- HRDATA[31:0] (读数据总线,从从设备读到主设备)
- HTRANS (传输的状态有:NONSEQ、SEQ、IDLE、BUSY)
- HSIZE(传输的数据宽度 8 、16 、32)
- HBURST(传输的burst类型,single,incr4/8/16,wrap4/8/16)
- HRESP(从设备发给主设备的总线传输状态:OKAY、ERROR、RETRY、SPLIT)
- HREADY(高-从设备传输结束;低-从设备需延迟传输周期)
(五)AHB基本传输
1、地址周期(地址与控制信号),只有一个cycle
2、数据周期(读周期/写周期),由HREADY信号决定需要几个cycle
(1)没有等待的single transfer
第一个周期的上升沿,主机将地址信息和控制信息发送到总线上
第二个周期的上升沿,从机采样地址和控制信号,并将HREADY拉高;如果是写操作,主机会在第二个周期的上升沿后写入数据;如果是读操作,从机会在HREADY信号拉高后将读取的数据写入总线。
第三个周期的上升沿,主机获取HREADY高信号,如果是写操作,表明从机已经接收数据;如果是读操作,表明读数据有效并接收。(HREADY在数据有效器件必须为高,并且保存至第三个周期的上升沿之后)
(2)两个等待周期的single transfer
从机有时候存在太慢不能不处理的情况,需要插入等待状态,HREADY信号早第二和第三周期拉低,需要主机等待两个周期。如果是写操作,主机需要在等待期间保持写数据不变,直到本次传输完成;如果是读操作,从机只需在READY信号拉高后,给出数据即可。
(3)流水线AHB传输