快速理解APB接口特点和使用方式

APB简介

APB(Advanced Peripheral Bus),外围总线,是一种常见的总线协议。APB属于AMBA 3 协议系列,它提供了一个低功耗的接口, 并降低了接口的复杂性。 APB接口用在低带宽和不需要高性能总线的外围设备上。 APB是非流水线结构,所有的信号仅与时钟上升沿相关,这样就可以简化APB外围设备的设计流程,每个传输至少耗用两个周期。APB可以与AMBA高级高性能总线(AHB-Lite) 和AMBA 高级可扩展接口 (AXI)连接。

​APB主要用于低带宽的周边外设之间的连接,它的总线架构不像AHB支持多个主模块,在APB里面唯一的主模块就是APB 桥。其特性包括:

  1. 可工作在高频下。
  2. 协议简单:无复杂的时序;读写只需要两个时钟周期传输;无需等待周期和回应信号。
  3. 控制逻辑简单,只有四个控制信号。
  4. 同步总线:总线上所有的transaction(读写操作)都依赖于时钟的上升沿。
  5. 一主多从:一般情况下,APB挂在AHB总线系统下,通过AHB-APB  Bridge将事务在AHB总线系统之间进行转化,此时Bridgre即为APB的master,其他的外围设备均为slave。
  6. 接口简单:相对应AXI、AHB来说,接口比较简单。
  7. 低功耗。
  8. 可连接多种外围设备:I2C、SPI、Timer、Keypad、UART。

 APB状态说明

APB上的传输可以用状态图来说明。

快速理解APB接口特点和使用方式_第1张图片

IDLE

系统初始化后为IDLE状态,此时没有传输操作,也没有选中任何从模块。

SETUP

当有传输要进行时,PSELx=1,PENABLE=0,系统进入SETUP状态,并只会在SETUP 状态停留一个周期。当PCLK的下一个上升沿时到来时,系统进入ENABLE 状态。

ACCESS

系统进入ACCESS状态后,维持之前在SETUP 状态的PADDR、PSEL、PWRITE不变,并将PENABLE置为1。如果ready信号有效,传输也只会在ENABLE状态维持一个周期,在经过SETUP与ACCESS状态之后就已完成。之后如果没有传输要进行,就进入IDLE状态等待;如果有连续的传输,则进入SETUP状态。

信号描述

下面给出了APB的信号。APB的支持最大32-bit的数据位宽。APB协议有两个独立的数据通道,读通道和写通道,由于APB的两个通道没有自己的handshake信号(vaild/ ready),因此两个通道不会同时使用。

  • PCLK:时钟;
  • PRESETn:复位信号,该信号一般直接与系统总线复位信号相连;
  • PADDR:地址总线。最大可达32bit,由外围总钱桥单元驱动。
  • PSEl:选择信号。
  • PENABLE:使能信号。
  • PWRITE:高时为写,低时为读。
  • PWDATA:写数据。最高为32bit。
  • PREADY:指示slave准备好信号。
  • PRDATA:从slave读取的数据。最高32bit。
  • PSLVERR:从slave传出的,指示传输失败信号。

除了上表的信号外,APB还有两个信号接口:

  • PPROT: 保护类型,分为 normal, privileged, secure, data/instruction 访问。
  • PSTRRB: 写选通信号,指示哪个字节是有效的数据,PSTRB与PWDATA之间的关系为PSTRB[n] <--> PWDATA[(8n+7):(8n)。

APB读写时序

APB的读时序有两种,一种是没有PREADY反压,另外一种有PREADY反压。

1.无反压

在PENABLE有效后一拍完成数据写。

快速理解APB接口特点和使用方式_第2张图片

2.有ready反压

在PENABEL有效后,需要等待PREADY有效,在PREADY有效时完成数据写。

快速理解APB接口特点和使用方式_第3张图片

读和写比较类似,就不在画时序。

你可能感兴趣的:(ASIC设计,APB,接口,芯片设计)