APB总线介绍

APB总线介绍

Ref: https://www.cnblogs.com/xianyuIC/p/17279209.html

Introduction

APB是最简单的AMBA总线,功耗很低,它多用于低速外围设备和访问寄存器。相比AHB和AXI,有几个很不一样的点:

最快只能背靠背(back to back)传输,至少2个周期传输一个数据,PSEL起来然后PENABLE起来。(背靠背传输,即连续传输,这笔传输传完,紧挨着下一个Cycle就可以开始下一笔传输)

不能Pipeline传输、Burst传输、Outstanding传输,数据有效时,其地址必然是当前数据的对应地址。(pipeline传输,即流水式传输,指当前传输的结束Cycle可以是下一笔传输的起始Cycle,起到无缝衔接)(burst传输,即只需指定起始地址和突发长度,即可自动对后面连续地址进行操作,无需提供连续地址)(outstanding传输,即不需要等待读写数据完成,即可继续提供下一笔传输的命令和地址)

不能读写同时传输,因为其读写地址是共用的。(AHB也不能读写同时传输)

不能仲裁,因为是单主多从协议。典型的APB协议包括唯一的APB桥作为Master,而所有的APB模块都是APB slave。

Interface

APB4.0相比APB3.0,多了pstrob和pprot两个信号:

Pslverr:

APB Transfer

APB Write without wait

T1时,写传输开始于地址PADDR、写数据PWDATA、写信号PWRITE、选择信号PSEL,寄存在PCLK上升沿。这称为写传输的起始阶段。T2时,使能信号PENABLE和准备信号PREADY寄存在PCLK上升沿。PENABLE表示传输的访问阶段的开始。PREADY表示Slave可以在PCLK的下一个上升边完成传输。地址PADDR、写数据PWDATA和控制信号都保持有效,直到传输在访问阶段的T3完成结束。使能信号PENABLE在传输结束时被撤销;选择信号PSEL也被撤销,除非在此传输之后立即有另一个传输到同一Slave。

Burst Write

Write with wait

Read without wait

Burst Read

Read with wait

Back to back

传输序列以一个写操作开始,之后跟随着一个读操作,然后是一个写操作,之后是一个读操作事实上,在基于处理器的设计中,一个写传输后跟随着一个读传输并不经常发生,因为处理器将在两个传输之间执行指令预取,并且指令存储器不太可能挂接在APB总线上。

FSM Design

相关阅读