APB总结
一、简介
APB提供了一个低功耗的接口,并降低了接口的复杂性。APB接口用在低带宽和不需要高性能总线的外围设备上。APB是非流水线结构,所有的信号仅与时钟上升沿相关,这样就可以简化APB外围设备的设计流程,每个传输至少耗用两个周期。
二、信号列表
信号名 | 来源 | 描述 |
---|---|---|
PCLK | 时钟源 | 时钟 |
PRESETn | 系统 | 复位,低有效 |
PADDR | APB桥 | 地址总线,最大32位 |
PSELx | APB桥 | 选择 |
PENABLE | APB桥 | 使能,该信号指示APB的第二个周期及以后的阶段 |
PWRITE | APB桥 | 读写方向,高为写,低为读 |
PWDATA | APB桥 | 写数据,最高32位 |
PSTRB | APB桥 | 写掩码,PSTRB[n]对应PWDATA[(8n + 7):(8n)]。读传输不必 |
PPROT | APB桥 | 保护类型。有normal,privileged,secure三种保护类型 |
PREADY | 从机 | 准备。从设备利用该信号进行拓展APB传输 |
PRDATA | 从机 | 读数据,最高32位 |
PSLVERR | 从机 | 传输失败 |
三、传输
3.1 写传输
写传输有两种,一种等待模式,一种非等待模式
3.1.1 非等待模式
T1时刻为设置阶段。选择信号PSEL
置位,意味着PADDR
、PWRITE
、PWDATA
有效。
T2时刻为访问阶段。当PENABLE
被置位后,表示传输进行中。PREADY
标志传输完成。在传输完成前,PADDR
、PWDATA
以及其他控制信号必须保持稳定。
传输结束后,如果没有紧接着对该外设的下次传输,则PENABLE
拉低,PSEL
也拉低。
3.1.2 等待模式
等待模式展示了从设备如何利用PREADY
信号延长传输。在访问阶段,当PENABLE
为高电平时,可以通过驱动 PREADY 为低电平来延长传输。以下信号在附加循环中保持不变:PADDR
PWRITE
PSEL
PWDATA
PENABLE
。
当 PENABLE
低电平时,PREADY
可以取任何值。这确保了固定两周期访问的外设可以将 PREADY 连接到高电平。 Note:建议在传输后不要立即更改地址和写入信号,而是保持稳定直到发生另一次访问。这降低了功耗。
3.2 写掩码
高有效,一位对应一个字节
3.3 读传输
读也分两种,等待模式和非等待模式。
3.3.1 非等待模式
类似写传输。从设备必须在读取传输结束之前提供数据。
3.3.2 等待模式
类似写传输,
以下信号在附加循环中保持不变:PADDR
PWRITE
PSEL
PENABLE
(比写传输少了一个WDATA
)。
3.4 错误响应
可以使用 PSLVERR
来指示 APB 传输的错误情况。读取和写入事务都可能发生错误情况。
PSLVERR
仅在 APB 传输的最后一个周期内有效,此时PSEL
、PENABLE
和 PREADY
均为高电平。 建议(但不是必须)在未采样时将 PSLVERR
驱动为低电平。即当PSEL
、PENABLE
或 PREADY
中的任何一个为低时。收到错误的事务可能会也可能不会改变外围设备的状态。这是特定于外设的,两者都可以接受。
当写事务收到错误时,这并不意味着外设内的寄存器尚未更新。收到错误的读取事务可能会返回无效数据,对于读取错误,外设不需要将数据总线驱动为全0。
APB 外设不需要支持 PSLVERR 引脚。如果外设不包括该引脚,则APB桥的相应输入被连接到低电平。
3.4.1 写错误
3.4.2 读错误
3.4.3 PSLVERR映射
当不同协议桥接时,
从AXI到APB: PSLVERR -> RRESP读/BRESP写
从AHB到APB: PSLVERR -> HRESP
3.5 保护机制支持
为了支持复杂的系统设计,系统中的互连和其他设备通常需要针对非法传输的保护机制。APB由PPROT[2:0]
支持。
PPROT | 保护 | 描述 | 备注 |
---|---|---|---|
PPROT[0] | normal或privileged | privileged等级更高 | 低为normal,高为privileged |
PPROT[1] | secure或non-secure | 提供需求更大的保护等级区分度 | 低为secure,高为non-secure |
PPROT[2] | data或instruction | 指示类型,但仅作为提示,不一定准确 | 低为data,高为non-instruction |
提示:PPROT的主要用途是作为安全和非安全传输的指示。使用PPROT[2]和PPROT[0]的不同解释是可以自定义的。
四、操作状态
状态机通过以下状态运行:
-
IDLE :APB 的初始状态。
-
SETUP :当需要传输时,总线进入 SETUP 状态,此时相应的选择信号
PSELx
被置位。总线只在一个时钟周期内保持在 SETUP 状态,并且总是在时钟的下一个上升沿移动到 ACCESS 状态。 -
ACCESS :使能信号
PENABLE
在 ACCESS 状态下有效。地址、写、选择和写数据信号在从 SETUP 到 ACCESS 状态的转换期间必须保持稳定。退出 ACCESS 状态由从机的PREADY
信号控制:- 如果
PREADY
被从设备保持为低电平,则外围总线保持在ACCESS状态。 - 如果
PREADY
被从设备驱动为高电平,则退出 ACCESS 状态,如果不需要更多传输,则总线返回 IDLE 状态。或者,如果另一个传输紧随其后,则总线直接移动到 SETUP 状态。
- 如果