APB协议详解与3.0-4.0-5.0对比

APB协议详解与3.0-4.0-5.0对比

AMBA 总线中APB总线作为使用最多也最为基础的总线,本文主要总结介绍APB总线的优缺点,以及目前使用最广的APB3.0与4.0使用的对比。与5.0的介绍

APB总线介绍

AMBA,是一种开放的协议,主要用于SoC内部和ASIC,用于连接各种功能模块

在这里插入图片描述

大多数挂在总线上的模块(包括处理器)只是单一属性的功能模块:主模块或者从模块。主模块是向从模块发出读写操作的模块,如CPU,DSP等;从模块是接受命令并做出反应的模块,如片上的RAM,AHB/APB 桥等。另外,还有一些模块同时具有两种属性,例如直接存储器存取(DMA)在被编程时是从模块,但在系统读传输数据时必须是主模块。如果总线上存在多个主模块,就需要仲裁器来决定如何控制各种主模块对总线的访问。虽然仲裁规范是AMBA总线规范中的一部分,但具体使用的算法由RTL设计工程师决定,其中两个最常用的算法是固定优先级算法和循环制算法。AHB总线上最多可以有16个主模块和任意多个从模块,如果主模块数目大于16,则需再加一层结构(具体参阅ARM公司推出的Multi-layer AHB规范)。**APB 桥既是APB总线上唯一的主模块,也是AHB系统总线上的从模块。**其主要功能是锁存来自AHB系统总线的地址、数据和控制信号,并提供二级译码以产生APB外围设备的选择信号,从而实现AHB协议到APB协议的转换

APB简介(外围总线)

在这里插入图片描述

在这里插入图片描述

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

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

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

在这里插入图片描述

以上是APB总线最简单基础的一次数据传输(没有等待和报错)

APB3.0新增PREADY和PSLVER信号,PREADY用于表示APB传输的完成,APB_Slave通过PREADY信号直接来告诉master现在APB_Slave已经READY了,可以接受读写操作,如果此时不READY,那么master就要wait到它Ready,这样就不需要软件时刻去轮询status register了。

对于PSLVERR而言,加入了Slave反馈给master error response功能。pslverr信号只在APB传输的最后一个周期有效,此时psel,penable,pready信号都为高。若pslverr信号置高表示此次传输失败,但是并不表示此次写寄存器失败,寄存器的值还是可能更新。若是读数据,也并不意味着rdate一定全是0.

AMBA3.0增加pready后:ACCESS状态的跳转取决于slave 输出的PREADY信号状态:

pready与pslver为slave输出信号。

1)如果 PREADY 为 0,表示slave还没有准备好接收数据,会让其继续处于 ACCESS 状态;

2)如果PREADY 为 1,表示slave已完成数据,可以跳转到其他状态。如果后面有连续的数据传输则直接跳转到 SETUP,如果没有传输,直接回到 IDLE;

在这里插入图片描述

关于pslverr的应用图。

在这里插入图片描述
在这里插入图片描述

**From AXI to APB :**An APB error on PSLVERR is mapped back to RRESP for reads and BRESP for writes.
**From AHB to APB:**An APB error on PSLVERR is mapped back to HRESP for reads and writes.

**APB4增加了PPROT(Transaction protection),PSTRB(Sparse data transfer)。**这两个信号都是可选信号。

PPROT信号主要可实现安全和非安全的数据传输,可实现系统在不同安全属性的控制传输,保证系统的安全性。

在这里插入图片描述

PPROT[0]表示不同优先级的传输,可实现salve对不通优先级数据的特殊处理操作。

PPROT[1]表示对不同安全属性的数据传输,对Secure和Non-secure的数据进行数据处理,Non-secure不能更改secure属性的区域。

PPROT[2]用来指示此时传输的是数据还是指令。

PSTRB信号用于实现一笔写数据传输中wdate[31:0]的数据有效位。

在这里插入图片描述

For read transfers, the Requester must drive all bits of PSTRB LOW

APB5增加了wake-up,user,pairty protection和check信号

wake-up用于实现低功耗的控制,通过控制时钟只在传输的时候开启,减少动态功耗的消耗。用于指示组件是否支持唤醒信号

user则增加了用户自定义信号
在这里插入图片描述

pairty protection和check信号主要针对安全系统设计中的保护功能。以支持安全传输与安全验证。

解决方案主要有奇偶校验或者SECDED算法等。

AMBA5中提供了奇偶校验的解决方案。具体使用可由用户自己决定。

奇偶校验信号的每一位最多覆盖8bit数据。下表展示了一些APB信号和对应的check 信号。

在这里插入图片描述

APB 总线特点总结

APB总线只有一个master,其他的都是slave。

APB 总线传输是对数据目标的读写操作,总是至少需要 2个总线周期

可工作在高频下

协议简单:无复杂的时序;只有四个控制信号。(PSEL,Pwriter,Penable,Pread)

同步总线:总线上所有的transaction(读写操作)都依赖于时钟的上升沿;

一主多从:一般情况下,APB挂在AHB总线系统下,通过AHB-APB Bridge将事务在AHB总线系统之间进行转化,此时Bridgre即为APB的master,其他的外围设备均为slave。 ****

APB主要用于低带宽的周边外设之间的连接,例如UART、I2C等,

IHI0024D_amba_apb_protocol_spec.pdf

  • 4
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值