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] 指令还是数据

image


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

image


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
    image

write with pslverr

image

read trans with no wait states

  • 协议规定:Read trans中,PSTRB必须保持为0
    image

read trans with wait states

image


read trans with pslverr

image


状态机

image


parity protection

image


信号约束

image


posted @ 2025-11-19 19:36  刘朝锋  阅读(60)  评论(0)    收藏  举报