APB(Advanced Peripheral Bus)协议规范

4596 / 2025-12-04 03:11:46 新服预约

APB(Advanced Peripheral Bus)协议规范

参考:ARM (IHI 0024D) AMBA APB Protocol Specification

文章目录

APB(Advanced Peripheral Bus)协议规范

一. 介绍

1.1 关于APB协议

二. 信号描述

2.1 AMBA APB 信号

2.1.1 地址总线

2.1.2 数据总线

三. 传输

3.1 写传输

3.1.1 无等待状态

3.1.2 有等待状态

3.2 写选通

3.2.1 PSTRB的存在和兼容性

3.3 读传输

3.3.1 无等待状态

3.3.2 有等待状态

3.4 错误响应

3.4.1 写传输

3.4.2 读传输

3.4.3 PSLVERR的映射

3.5 保护单元支持

3.5.1 PPROT的存在和兼容性

3.6 唤醒信号

3.6.1 介绍

3.6.2 PWAKEUP信号

3.7 用户信号

3.7.1 介绍

3.7.2 信号

3.7.3 用户信号建议

四. 运行状态

4.1 运行状态

五. 接口奇偶保护

5.1 使用奇偶校验的保护

5.2 接口保护的配置

5.3 奇偶校验

5.4 错误检测行为

5.5 奇偶校验信号

附录A. 信号有效性

附录B. 信号列表

一. 介绍

1.1 关于APB协议

APB协议是一种低成本接口,针对最低功耗和降低的接口复杂性进行了优化。APB接口不是流水线式的,而是一种简单的同步协议。每次传输至少需要两个周期才能完成。

APB接口设计用于访问外围设备的可编程控制寄存器。 APB外设通常使用APB桥连接到主存储器系统。例如,从AXI到APB的桥可以用于将多个APB外围设备连接到AXI存储系统。

APB传输由APB桥发起。APB桥也可以称为请求者。 外围接口响应请求。APB外围设备也可以称为完成者。 本规范将使用请求者和完成者。

二. 信号描述

2.1 AMBA APB 信号

本节描述了APB接口信号。APB接口上的一些信号具有固定的宽度,一些信号可以采用多种宽度。当宽度不固定时,使用属性进行描述。如果属性值为零,这意味着信号不在接口上。表2-1描述了APB协议接口信号。

2.1.1 地址总线

APB接口有一个地址总线PADDR,用于读写传输。

PADDR表示一个字节地址。允许PADDR相对于数据宽度不对齐,但是结果是不可预测的。例如,完成者可能使用未对齐的地址、对齐的地址或发出错误响应信号。

2.1.2 数据总线

APB协议有两条独立的数据总线,一条用于读取数据,一条用于写入数据。总线可以是8、16或32位宽。读写数据总线必须具有相同的宽度。

数据传输不能同时发生,因为读数据和写数据总线没有各自的握手信号。

三. 传输

3.1 写传输

本节介绍以下类型的写传输:

无等待状态

有等待状态

本节显示的所有信号都是在PCLK上升沿采样的。

3.1.1 无等待状态

图3-1显示了没有等待状态的基本写传输。 在图3-1中,写传输的设置阶段发生在T1。选择信号PSEL被置位,这意味着PADDR、PWRITE和PWDATA必须有效。

写入传输的访问阶段如T2所示,其中PENABLE被置位。PREADY由完成者在PCLK上升沿置位,表示写数据将在T3被接受。PADDR、PWDATA和任何其他控制信号必须保持稳定,直到传输完成。

传输结束时,PENABLE被取消置位。PSEL也被取消了资格,除非向同一外围设备进行另一次传输。

3.1.2 有等待状态

图3-2显示了Completer如何使用PREADY扩展传输。 在访问阶段,当PENABLE为高时,完成者通过将PREADY为低来延长传输。当PREADY保持低电平时,以下信号保持不变:

地址信号,PADDR

方向信号,PWRITE

选择信号,PSELx

使能信号,PENABLE

写数据信号,PWDATA

写选通信号,PSTRB

保护类型信号,PPROT

用户请求属性,PAUSER

用户写数据属性,PWUSER

当PENABLE为低时,PREADY可以取任何值。这确保了具有固定两个周期访问的外设可以将PREADY拉高。

3.2 写选通

PSTRB支持写数据总线上的稀疏数据传输。每个PSTRB对应于写数据总线的1个字节。当置位为高电平时,PSTRB指示写数据总线的相应字节通道包含有效信息。

写数据总线的每8位有一个写选通,因此PSTRB[n]对应于PWDATA[(8n + 7):(8n)]。

图3-3显示了32位数据总线上的这种关系。