AMBA协议——APB协议

简介

AMBA(Advanced Microcontroller Bus Architecture) 总线是由ARM公司提出的一种开放性的片上总线标准,它独立于处理器和工艺技术,具有高速度低功耗等特点。

系统芯片中各个模块之间需要有接口来连接;
总线作为子系统之间共享的通信链路;

其优点:低成本,方便易用
缺点:容易有性能瓶颈

一、APB协议

APB2 :AMBA 2 APB
APB3 :AMBA 3 APB,比 APB2 多两个信号(PREADY , PSLVERR)
APB4 :AMBA 4 APB,比 APB3 多两个信号(PPROT , PSTRB )
(可参考原文链接:https://blog.csdn.net/qq_43244515/article/details/124968189)

APB(Advanced Peripheral Bus),高级外设总线。APB总线协议是ARM公司提出的AMBA总线结构之一,是一种片上总线结构。从AHB/ASB总线到APB总线需要通过 桥接器(Bridge) 进行互联。
AMBA协议——APB协议_第1张图片
  APB主要用于低带宽的周边外设之间的连接,例如UART、IIC等,它的总线架构不像AHB支持多个主模块,在APB里面没有仲裁器,APB 桥是唯一的主模块。其特点:
  (1)低带宽;高性能;
  (2)非流水作业,至少需要两个时钟周期传输,且数据均在时钟上升沿变化;
  (3)无需等待周期和回应信号;
  (4)控制逻辑简单,只有四个控制信号,且APB上的传输可采用状态机表示。

二、APB总线介绍

应用于慢速外设,如UART、键盘等,不需要AHB总线体系中的Arbiter与Decoder。
Arbiter为仲裁器,决定哪个Master工作。Decoder为译码器,决定Master与哪个Slave进行数据传输。

2.1 接口主要信号

(下图为APB3接口,即为APB2+PREADY信号+PSLVERR信号)
AMBA协议——APB协议_第2张图片

2.2 APB总线传输介绍(时序部分)

2.2.1状态机
AMBA协议——APB协议_第3张图片
AMBA协议——APB协议_第4张图片

从状态机看,APB对每一笔数据的传送,均需花 2 个周期的时间,且 APB 的数据传递不适用在有流水线架构的模块设计中。

2.2.2 APB2 写操作
下图表示APB基本的写操作
AMBA协议——APB协议_第5张图片
在 T1 时,有限状态机进入预设的 IDLE 状态;
在 T2 时,数据地址、读写控制信号和写入的数据会在频率正沿触发时,开始作写的数据传递准备,这个周期也就是刚才所提及SETUP状态。译码电路在此状态会根据数据地址去译码出所要写入APB Slave,此时所对应到 S 的 PSEL 信号将由 0 变 1;
在 T3 时,有限状态机会进入 ENABLE 状态,PENABLE 信号在此状态会被设成 1;
在 T4 频率正沿触发时,PENABLE 信号将由 1 变 0,而 PSEL 信号在若没有其它数据的写入动作时,也将由 1 变 0。为了减少功率的消耗,APB 的数据地址和读写控制信号在下一笔数据传递前,将不会作任何改变。

2.2.3 APB2 读操作
AMBA协议——APB协议_第6张图片

由图中可发现除了写信号是倒过来有效外,APB 读操作时序图和写操作时序图非常相似,在这里我们就不再作详细的解释。
要特别注意的是,在 T3 后,也就是在进入 ENABLE 周期后,APB 从必须要将 M 所要读取的数据准备好,以便 M 可以在 ENABLE 周期末被 T4 正时钟沿触发时正确的将数据读取。

2.2.5 APB3 写操作
AMBA协议——APB协议_第7张图片

  1. 在T0~T1阶段,所有总线处于IDLE状态。
  2. 在T1~T2阶段,第一个时钟周期,处在Setup phase状态。T1时刻,PADDR、PWRITE、PWDATA变化,PSEL拉高,即Master把这些数据发送到总线上。
  3. 在T2~T3阶段,第二个时钟周期,处在Access phase状态。T2时刻,这个时候对应的Slave接收到Master发送过来的地址和写控制命令,此时Slave得知Master要准备发数据过来了,做好准备。
  4. T3时刻,采到 PENABLE 为高电平,但是 PREADY 为低电平,表示Master数据还没准备好。
  5. T5时刻,采到 PENABLE & PREADY 为高电平,表示Master在这一时刻之前一次写操作已经完成,Master回到IDLE状态,而Slave把数据取走。

2.2.5 APB3 读操作
AMBA协议——APB协议_第8张图片

  1. 在T0~T1阶段,所有总线处于IDLE状态。
  2. 在T1~T2阶段,第一个时钟周期,处在Setup phase状态。T1时刻,PADDR、PWRITE、PWDATA变化,PSEL拉高,即Master把这些数据发送到总线上。
  3. 在T2~T3阶段,第二个时钟周期,处在Access phase状态。T2时刻,这个时候对应的Slave接收到Master发送过来的地址和读控制命令,此时Slave得知自己要将这个地址反馈给Master了。
  4. T3时刻,采到 PENABLE 为高电平,但是 PREADY 为低电平,表示Slave数据还没准备好。
  5. T5时刻,采到 PENABLE & PREADY 为高电平,表示Master这一时刻之前一次读操作已经完成,Master回到IDLE状态。

2.2.5 APB4 读写操作

三、APB总线介绍

3.1 Function descripton

apb桥实现了将上游的数据转换成AMBA 3 APB协议发送出去,并接收读到的数据。
AMBA协议——APB协议_第9张图片

3.2 Interface description

  1. 系统工作时钟50Mhz,异步复位。
  2. 采用 APB3 协议标准,无需错误指示。
  3. cmd_i,56bit;[55:48]:r/w;[48:32]:paddr;[31:0]:pwdata。
    AMBA协议——APB协议_第10张图片

参考文献:
https://blog.csdn.net/qq_43244515/article/details/124968189
https://blog.csdn.net/vivid117/article/details/107511746

你可能感兴趣的:(verilog)