APB协议简介
APB : Advanced Peripheral Bus
版本历史
| 版本 | 商用名 | 日期 | 新增功能点 | 新增信号 |
|---|---|---|---|---|
| Issue A | APB2 | 1998 | 初始版本 | PCLK、PADDR、PWRITE、PSEL、PENABLE、PWDATA、PRDATA |
| Issue B | APB3 | 2003 | 新增Wait State & Error Reporting | 新增PREADY、PSLVERR |
| Issue C | APB4 | 2010 | 新增保护属性 & Write Strobe | 新增PPROT、PSTRB |
| Issue D | APB5 | 2017 | 低功耗唤醒 + 用户信号 + 奇偶校验 | PWAKEUP、PUSER[]、PPARITY |
| Issue E | APB5-E | 2020 | 追加 RME(Realm Management Extension) | 信号无新增,但PPROT/PUSER 可携带 Realm 属性 |
APB信号
| 信号名 | description |
|---|---|
| PCLK | 时钟信号,除了PRESETn外,所有信号都在PCLK上升沿跳变 |
| PRESETn | 异步复位信号 |
| PADDR | 地址信号 |
| PSELx | 从机选中使能信号 |
| PENABLE | inidcates the second and subsequent cycles of an APB transfer |
| PWRITE | 读写控制位 |
| PWDATA | 写数据 |
| PRDATA | 读数据 |
| PSTRB | 写数据有效标志,每bit对应PWDATA的1byte |
| PREADY | used to extend an APB transfer by the completer |
| PSLVERR | 拉高表示当前transfer存在错误 |
| PNSE | Extension to protection type |
| PPROT | 定义protection type |
| PWAKE | wake-up信号 |
| PxUSER | user attribute |
PADDR
APB协议允许PADDR非对齐到data width,但是具体如何处理非对齐的地址,由具体设计决定,可以支持非对齐、或者转成对齐地址、或者PSLVERR
PSLVERR
- PSLVERR在PSEL & PENABLE & PREADY都拉高时有效
PWDATA & PRDATA
- 两者位宽必须一致
- SETUP节点,如果是write,PWDATA就必须有效
PNSE
| PNSE | PPROT[1] | Physical address space |
|---|---|---|
| 0 | 0 | Secure |
| 0 | 1 | Non-secure |
| 1 | 0 | Root |
| 1 | 1 | Realm |
PPROT[2:0]
| PPROT | Description |
|---|---|
| PPROT[0] | Normal or Privileged |
| PPROT[1] | Secure or Non-secure |
| PPROT[2] | 指令还是数据 |

PWAKEUP
- 由请求节点发出,用来表示APB接口是否activity
- PWAKEUP可用来gate对应的power和clk,PWAKEUP不能有毛刺(可以寄存器输出)
- PWAKEUP与PCLK为同步设计,可以在任意时刻拉高(不管PSEL拉高还是拉低),建议在拉高PSEL之前拉高PWAKEUP,不阻塞trans
- 建议没有trans时,拉低PWAKEUP
User signal
- 实际应用中,主机、从机可能需要传输一些user自定义信号,信号如何使用由具体设计决定
- APB定义了4个user信号
- 主机发出
-- PAUSER:request attribute
-- PWUSER:write data attribute - 从机发出
-- PRUSER:read data attribute
-- PBUSER:response attribute
Transfer
write trans with no wait states

write trans with wait states
- PSEL拉高时,进入SETUP phase,此时PADDR、PWRITE、PWDATA必须valid
- PENABLE拉高时,进入ACCESS phase,持续到PREADY拉高,Access phase阶段,以下信号必须stable
-- PADDR
-- PWRITE
-- PSEL
-- PENABLE
-- PWDATA
-- PSTRB
-- PPROT
-- PAUSER
-- PWUSER

write with pslverr

read trans with no wait states
- 协议规定:Read trans中,PSTRB必须保持为0

read trans with wait states

read trans with pslverr

状态机

parity protection

信号约束


浙公网安备 33010602011771号