简介:
APB是AMBA3协议家族的一部分。它提供了一个低成本的接口,以实现最小的功耗和降低接口复杂性。APB接口连接到任何低带宽的外设,并且不需要流水线总线接口的高性能。APB有非流水线协议。所有的信号转换都只与时钟的上升边缘相关,以使APB外设易于集成到任何设计流程中。每次转移至少需要两个周期。
APB接口介绍:
APB状态介绍:
IDLE:这是APB的默认状态。
SETUP:当需要进入SETUP状态时,PSELx拉高,总线只在一个时钟周期内保持处于设置状态,并且在时钟的下一个上升沿移动到访问状态。
ACCESS: PENABLE拉高,从SETUP到ACCESS过程中,地址,写入,选择和写入数据信号必须保持稳定。从访问状态的退出由slave的PREADY信号控制:如果PREADY被slave保持为低,则外围总线仍处于访问状态。如果PREADY由slave高驱动,则ACCESS状态将退出,如果不需要更多的传输,总线将返回到IDLE状态。或者,如果出现另一个传输,总线直接移动到SETUP状态。
写入传输:
1.没有等待状态
写传输开始从地址、写数据和选择信号都在时钟上升沿后开始,传输的第一个时钟周期称为设置状态(Setup);第二阶段为访问状态(Access),地址、数据和控制信号在整个访问阶段都保持有效,该转移在这个周期结束时完成。
2.有等待
保持不变的信号:
• address, PADDR
• write signal, PWRITE
• select signal, PSEL
• enable signal, PENABLE
• write data, PWDATA.
建议在传输后不要立即更改地址和写信号,而是保持稳定,直到发生另一次访问。这降低了功耗。
读传输
1.无等待:
slave必须在读传输结束前提供数据
2.有等待:
如果在访问阶段PREADY被驱动为低,则传输被扩展。
保持不变的信号:
• address, PADDR
• write signal, PWRITE
• select signal, PSEL
• enable signal, PENABLE.
错误响应(Error response)
可以使用pslverr来指示APB传输中的错误条件。在读传输和写传输上都可能出现错误条件。
Pslverr只被认为在APB传输的最后一个周期中有效,此时的PSEL、PSEL和PREADY都是拉高
写:
读: