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