APB总线协议简介
前言:APB 3.0属于AMBA 3 协议系列,它提供了一个低功耗的接口,并降低了接口的复杂性。APB接口用在低带宽和不需要高性能总线的外围设备上。APB是非流水线结构,所有的信号仅与时钟上升沿相关,这样就可以简化APB外围设备的设计流程,每个传输至少耗用两个周期。
APB可以与AMBA高级高性能总线(AHB-Lite) 和AMBA 高级可扩展接口(AXI)连接。該版本新增了2個信號,一个准备好信号PREADY, 来扩展APB传输;一个错误信号PSLVERR, 来指示传输失败。
1、Interface
信号 | 来源 | 描述 |
PCLK | 时钟源 | 时钟 |
PRESETn | 系统总线 复位 | APB复位信号低有效。该信号一般直接与系统总线复位信号相连 |
PSELx | APB bridge | 选择信号 |
PENABLE | APB bridge | 使能信号 |
PWRITE | APB bridge | 讀寫方向選擇,高时为写,低时为读 |
PWDATA | APB bridge | 写入的数据,最高32位 |
PREADY | Slave | interface 准备好,从器件利用该信号来扩展APB传输,主要是增加延時 |
PRDATA | Slave | interface 读取的数据。最高可达32位 |
PSLVERR | Slave | interface 传输失败 |
2、Status
Status | Description |
IDLE | 这是默认的APB状态 |
SETUP | 当传输被请求时,总线进入SETUP状态,选择信号PSELx,被置位。总线仅在SETUP 状态停留一个时钟周期,并在下一个时钟周期进入ACCESS状态 |
ACCESS | 使能信号PENABLE, 在ACCESS状态中置位。在传输从SETUP状态到ACCESS状态转变的过程中address, write, select和write data信号必须保持不变。从ACCESS状态退出,由从器件的PREADY 信号控制: • 如果PREADY 为低,保持ACCESS状态。 |
3、寫傳輸
寫傳輸分為2種狀態,有等待狀態和無等待狀態。
(1)無等待狀態:地址、写入数据、写入信号和选择信号都在时钟上升沿后改变。第一个时钟周期叫做Setup phase。下一个时钟沿后使能信号PENABLE被置位,表示Access phase就位。地址、数据和控制信号在Access phase期间有效。传输在该周期后结束。使能信号PENABLE, 在传输结束后清空。选择信号PSELx同样被置低,除非紧接着下一传输开始。
(2)有等待狀態:通過PREADY 信号扩展到器件的传输時間。在Access phase期间,当PENABLE为高,传输可以通过拉低PREADY来扩展传输。当PENABLE为低的时候,PREADY可以为任何值。确保外围器件有固定的两个周期来使PREADY为高。推荐地址和写信号在传输结束后不要立即更改,保持当前状态直到下一个传输,这样可以降低功耗。
4、讀傳輸
(1)无等待读传输
(2)有等待写传输
5、錯誤響應