AMBA总线(一)
发展史
- AMBA 1.0
- AMBA 2.0
- AMBA 3.0
- AMBA Advanced eXtensible Interface (AXI)
简介
AHB
- 高速总线,高性能
- 流水线操作
- 可支持多个总线主设备(最多16个)
- 支持burst传输
- 总线带宽:8、16、32、64、128bits
- 上升沿触发操作
- 对于一个新设计建议使用AHB
AHB 组成
- AHB 主设备(master)
- 初始化一次读/写操作
- 某一时刻只允许一个主设备使用总线
- uP、DMA、DSP、LCDC …
- AHB从设备(slave)
- 响应一次读/写操作
- 通过地址映射来选择使用哪一个从设备
- 外部存储器控制器EMI、APB bridge、UART、 …
- AHB仲裁器(arbiter)
- 允许某一个主设备控制总线
- 在AMBA协议中没有定义仲裁算法
- AHB译码器(decoder)
ASB
- 高速总线
- 流水线操作
- 支持多个总线主设备
- 支持burst传输
- 总线带宽:8、16、32bits
- 三态、双向总线
- (不适于做DFT)
- 下降沿或者上升沿触发
APB
- 低速总线、低功耗
- 接口简单
- 在Bridge中锁存地址信号和控制信号
- 适用于多种外设
- 上升沿触发
APB 组成
- AHB2APB Bridge
- 可以锁存所有的地址、数据和控制信号
- 进行二级译码来产生APB从设备选择信号
- APB总线上的所有其他模块都是APB从设备
AHB
AHB总线互联
基本信号
- HRESETn
- HADDR[31:0]
- HWDATA[31:0]
- HRDATA[31:0]
- HTRANS
- 指出当前传输的状态
- NONSEQ、SEQ、IDLE、BUSY
- HSIZE
- HBURST
指出传输的burst类型
- HRESP
- 从设备发给主设备的总线传输状态
- OKAY、ERROR、RETRY、SPLIT
- HREADY
- 高:从设备指出传输结束
- 低电平:从设备需延长传输周期
AHB基本传输
- 两个阶段
- 地址周期,只有一个cycle
- 数据周期,由HREADY信号决定需要几个cycle
- 流水线传送
一次无需等待状态的简单传输
如果slave没有准备好?
需要两个等待周期的简单传输
根据传输规则,slave不能插入超过16个等待周期!
流水线传输
- HBURST指定了传输burst的类型,分为:
- Single Transfer
- 增量传输,不指定长度
- 4-拍
- 8-拍
- 16-拍
如果传输过程中从设备忙碌,可以通过HREADY信号控制,但是如果主设备忙碌呢? -- 通过HTRANS控制
传输类型
- HTRANS[1:0]:控制传输类型
- 四种类型:IDLE、BUSY、NONSEQ、SEQ
- 00:IDLE
- 主设备占用总线,但没进行传输
- 两次burst传输中间主设备可发IDLE
- 01:BUSY
- 主设备占用总线,但是在burst传输过程中还没有准备好进行下一次传输
- 一次burst传输中间主设备可发BUSY
- 10:NOSEQ
- 表明一次单个数据的传输或者一次burst传输的第一个数据地址和控制信号与上一次传输无关
- 11:SEQ
- 表明burst传输接下来的数据地址和上一次传输的地址是相关的
其他信号
-
HWRITE
-
HSIZE[2:0]
- 000:8bits 100:128bits
- 001:16bits 101:256bits
- 010:32bits 110:513bits
- 011:64bits 111:1024bits
- 最大值受总线的配置所限制
- 通常使用32bits(010)
- HADDR的地址必须由HSIZE作为最小单位。
-
HPROT[3:0]
- HPROT[0]: OPCODE/DATA
- HPROT[1]: USER/PRIVILGED
- HPROT[2]: Bufferable/Non-Bufferable
- HPROT[3]: Cacheable/Non-Cacheable
AHB 突发传输
地址计算示例
根据HSIZE和HBURST来计算地址
例:起始地址是0x48,HSEZE=010(32bits)
Burst类型: INCR8
Burst类型: WRAP8
Burst类型:INCR4
Burst类型:WRAP4
Burst类型:未定义长度的
LDM(Load Multiple instruction) AHB Activity
多指令加载:
Burst 传输不能超过1k边界
地址译码
-
HSELx:选择从设备
-
由地址译码器来提供选择信号
-
一个从设备应该至少占用1KB的存储空间
-
需要一个额外的缺省从设备来映射其他的存储地址
通过地址译码来片选从设备
从设备响应
-
所访问的从设备必须响应这次传输
-
从设备可能返回的响应:
- 完成这次传输
- 插入等待状态(HREADY信号)
- 发出错误信号表示这次传输失败
- 分离传输,使得总线可用于其他传输(SPLIT)
从设备的响应信号
总线的流水特性需要从设备两个周期的响应。可以使得主设备有足够的时间处理下一次传输。
Retry 响应
可以看到,主设备在从设备忙时发送了两次传输,Retry信号跨了两个周期,第二个周期后总线开始新的一次传输。
Locked 传输
-
被锁的传输序列不能被打断
-
HLOCK信号表示下一次的传输时被锁传输
-
ARM 处理器只在 SWP 指令中使用HLOCK
总线传输的其他细节放到第二部分。
总线协议 -- AMBA总线(一)
原文:https://www.cnblogs.com/lyc-seu/p/12674520.html