Advanced Microcontroller Bus Architecture,片上总线标准
AHB主设备master
AHB从设备slave
AHB仲裁器arbiter
AHB译码器decoder
AHB2APB Bridge
APB总线上的所有其他模块都是APB从设备
其他问题
Name | Source | Description |
---|---|---|
HCLK | Clock source | Bus clock |
HRESETn | Reset Controller | Reset |
HADDR[31:0] | Master | Address bus |
HTRANS[1:0] | Master | Transfer type(IDLE、BUSY、SEQ、NONSEQ) |
HWRITE | Master | Transfer direction |
HPROT[3:0] | Master | Protection control(很少用) |
HWDATA[31:0] | Master | Write data bus |
HSELx | Decoder | Slave select |
HRDATA[31:0] | Slave | Read data bus |
HREADY | Slave | Transfer done |
HRESP[1:0] | Slave | Transfer sesponse(Status) |
HRESETn
HADDR[31:0]
HWDATA[31:0]
HRDATA[31:0]
HTRANS:指出当前传输的status
HSIZE:指出当前传输的大小
HBURST:指出传输的 burst 类型
HRESP
HREADY
两个阶段
流水线pipeline
HWRITE:读写控制
HSIZE[2:0]
HPROT
AHB Slave短时间无法响应则HREADY拉低
AHB Slave长时间无法响应则发出Retry信号
WRAP4:到 0x10(16)的倍数就回环
WRAP8:到 0x20(32)的倍数就回环
WRAP16:到 0x40(64)的倍数就回环
Name | Source | Description | 说明 |
---|---|---|---|
HBUSREQx | Master | Bus request | 每个Master都会发出 |
HLOCKx | Master | Locked transfers | 锁定此次传输 |
HGRANTx | Arbiter | Bus grant | 指出Master x可访问总线 |
HMASTER[3:0] | Arbiter | Master number | Master的ID |
HMASTLOCK | Arbiter | Locked sequence | Master正在进行锁定 |
HSPLITx[15:0] | Slave(SPLIT-capable) | Split completion request | 选择哪个master允许重试 |
- 对于固定长度的burst传输,不必持续请求总线
- 对于未定义长度的burst传输,主设备应该持续送出HBUSREQ信号,直到开始最后一次传输
- 如果没有主设备请求总线,则给缺省主设备grant信号,且HTRANS=IDLE
- 建议主设备在锁定总线传输结束之后插入IDLE传输,以重新仲裁优先级。
AHB是机动车道,APB可以看成是非机动车道
慢速设备也可以走AHB机动车道
为了不影响AHB的效率
Name | Description |
---|---|
PCLK | Bus clock |
PRESETn | APB reset |
PADDR[31:0] | APB address bus |
PSELx | APB select |
PENABLE | APB strobe |
PWRITE | APB transfer direction |
PRDATA[31:0] | APB read data bus |
PWDATA[31:0] | APB write data bus |
原文:https://www.cnblogs.com/xianyufpga/p/15013543.html