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
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgcjgkb
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01