AMBA总线——APB学习日志

 

APB信号输入输出

APB概况

APB是AMBA协议中的其中一员,其具备低功耗,接口简单等特点。由于其不具备AXI高性能特点(如: out of order, out standing, read interleave的三大特点), APB一般只是用来配置和访问Slave里面的寄存器的。而Slave往往指的是低宽带的外围设备如I2C, UART, SPI等。

APB master的信号输出和输入信号的概况;输出端一共是6个控制信号和1个数据传输信号。输入端是Slave过来的两个两个信号,以及PCLK和PRESETn,当读数据的时候会有一个PRDATA信号。

APB信号的简单介绍。

APB的每个信号的功能简单介绍如表格所示,具体的每个控制信号有那些种类可以对照协议文档进行设置。

img

介绍两个握手信号PEABLE和PREADY的特点。

  • PREADY和PENABLE: 当进行with no wait states传输的时候,PENABLE是当PREADY拉高的时候才拉高;而with wait states时,是在PSELx拉高的下一个周期拉高PENABLE从而等待PREADY拉高。 并且当这两个信号同时拉高的时候才开始进行数据传输(写入或读出数据)。
  • PSEL和PREADY以及PENABLE: 当三者同时为高持续一个周期后,三个信号同时拉低。
  • 除PENABLE外的其他控制信号是同时在时钟的上升沿位置指定信号值。

一个时序图的例子

with wait states的一个APB信号传输时序图。

  • 在T1位置,master输出的信号中除了PENABLE外,其他的所有信号开始指定特定值。这里指定PADDR为Addr1; PWRITE为低表示表示读取数据。 PSEL拉高,表示选定Slave.(这里默认就一个slave了)
  • 然后在PSEL拉高后的下一个时钟上升沿拉高PENABLE的电平,此时PREADY为低,等待到T4的时候PREADY拉高,此时PENABLE和PREADY同时为高,开始读取数据Data1. 并在下一个时钟上升沿的时候同时拉低PSEL,PENABLE,PREADY释放控制权。

本文原创,错误之处在所难免!盼指出!