首页 > 其他分享 >AMBA2 关于APB

AMBA2 关于APB

时间:2023-06-17 12:22:11浏览次数:50  
标签:AHB PREADY 传输 从机 关于 信号 APB AMBA2


  • 注:波形图片来自于AMBA2 APB Protocol SPEC.

1. APB的用处

  • APB不支持流水线设计,不支持突发传输。
  • APB和AHB一样,有数据总线和地址总线,读写使用PWRITE和HWRITE控制,不能同时读写数据。
  • 主要应用在低带宽需求的接口,在SOC中,一般用作连接低速外设(I2C,I2S.UART等)以及作为IP的配置接口。常使用AHB2APB/AXI2APB Bridge作为转接桥将APB挂载在系统上。

2. APB协议历史

  • APB2:主要定义了基本的总线接口,没有握手协议,只有基本的读写传输。
  • APB3:增加PREADY,PSLVERR信号,两个信号是从机向主机发起的,表示从机传输状态,完成/错误;PREADY可以像AHB一样为从机插入等待时间。AHB的HREADY信号详解见这篇博客
  • APB4:增加PPROT,PSTRB信号,观察了AHB、APB和AXI都是只有写选通,没有读选通。至于为什么没有读选通我也不是很理解,AXI的选通信号见这篇博客
  • APB5:增加PWAKEUP,PxUSER(A/W/R/B),Parity等信号
    • PWAKEUP:实现低功耗的控制,可以控制时钟只在传输时开启。
    • Parity:可以针对地址,数据以及控制信号,发送数据一端根据要传输的信号使用parity generation模块产生校验码,接收数据一端使用parity check模块对接收到的数据与校验码进行校验。

3. APB传输

3.1 状态转移

  • APB首先待在IDLE状态,当需要一个传输时,APB首先会进入SETUP阶段,根据要传输地址拉高PSEL信号,只在SETUP待一个周期,之后会无条件跳到ACCESS中。
  • 在ACCESS状态,PENABLE信号拉高,开始传输,PREADY = 0,表示slave还没有准备好接收或者被读出数据,会让它一直处于ACCESS状态;
    • 直到PREADY信号被拉高,表示当前传输已完成,因为APB不支持突发传输,一次只能传输一个数据,所以如果后面还有数据要传输,会跳到SETUP状态,如果没有则会跳到IDLE状态。
  • 从状态转移图可以看到每次传输都需要两个周期,理论上完全可以一个周期给出写地址和写数据完成传输,需要两个周期和PENABLE信号是历史遗留问题,具体解释可以看这篇回答

3.2 传输具体分析

  • 写传输
    • 从机没有wait状态
      • T1阶段,地址和数据都已经准备好,PWRITE和PSEL信号都已拉高,IDLE进入SETUP阶段;
      • T2阶段,拉高PENABLE信号,表示数据开始传输,SETUP进入ACCESS阶段;
      • T3阶段,检测PREADY被拉高了,说明传输已经完成,并将PENABLE拉低,后面没有数据传输了,再将PSEL信号拉低。
    • 从机插入wait状态
      • T1、T2阶段和没有wait相同,区别在于拉低了PREADY信号,表示从机没有准备好传输,停留在ACCESS状态,插入等待时间。
  • 读传输
    • 从机没有wait状态
      • 与写状态传输相似,PREADY拉高,说明从机被读取的数据已经准备好了。
    • 从机插入wait状态
      (url){:height="50%" width="50%"}`
  • 从机的错误传输响应
    • 从机返回PSLVERR信号表示对应的传输错误,该信号在APB中只有1bit。
    • 写传输错误
    • 读传输错误
    • 需要注意,PSLVERR信号是和Ready信号同时返回的。
    • APB SLVERR和AXI/AHB之间转接桥处理
      • APB - AXI:将PSLVERR信号映射成AXI的RRESP/BRESP信号中的SLVERR信号,AXI RESP信号解释可见这篇博客.
      • APB - AHB:将PSLVERR信号映射成AHB的HRESP信号中的ERROR信号,AHB HRESP信号解释可见这篇博客.

标签:AHB,PREADY,传输,从机,关于,信号,APB,AMBA2
From: https://www.cnblogs.com/qianbinbin/p/17487336.html

相关文章

  • 关于Cookie Session 和Token,以及应用场景
    关于Cookie和Session(面试经常问)共同之处:cookie和session都是用来跟踪浏览器用户身份的会话方式。关于会话在日常生活中,从拨通电话到挂断电话之间的一连串的你问我答的过程就是一个会话。Web应用中的会话过程类似于生活中的打电话过程,它指的是一个客户端(浏览器)与Web服务器之间连......
  • 关于js单线程的问题
    为什么说js是单线程?为了搞清楚这个问题,我们需要先了解这几个问题:什么是线程?什么是进程?他们之间的关系?什么是任务队列(EventQueue),任务分类(宏任务、微任务)?什么是事件循环?为什么说js是单线程?为什么js要是单线程?接下来我们一起来看一下:什么是线程?什么是进程?他......
  • 关于vue2路由跳转问题记录
    1.vue路由间跳转和新开窗口的方式(query,params)路由间跳转配置:query方式:参数会在url中显示this.$router.push({path:'路由地址',query:{msg:'helloworld'}})params方式:传参数据不会在导航栏中显示,需要配合路由的name属性使用。this.$......
  • 关于安规标准中的过电压等级
    参照IEC(国际电工委员会)的标准:I级别是低压低能量级别,并带保护装置,一般指电子设备的内部电压;II级是低压高能量级别,从主供电电路分支出来的,家里照明电路220V电压属于此类;III级是指高压高能量级别,指固定安装的主供电电路,一般指380V三相电压 过电压定义:用数字表示的瞬态过电压条......
  • 关于DVWA靶场高难度命令执行的代码审计
    需要的环境:dvwa使用的工具:PHP手册high难度源代码:<?phpif(isset($_POST['Submit'])){//Getinput$target=trim($_REQUEST['ip']);//Setblacklist$substitutions=array('&'=>'',......
  • 【JS错题总结】关于上下文
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><script>functionfunc1(){console.log(1,this.value)}......
  • 关于display:flex;justify-content: space-between;的最后一个元素无法左对齐的问题解
    1.问题:当使用v-for遍历一个数组,当数字长度不是要进行左右对齐的数字的倍数*(以3为例),无法进行左对齐的问题 解决方法:1.使用watch监听这个数组的长度的变化,判断这个数组的长度是否3%2是不是等于0,如果是为则这个数字追加一个空对象,代码如下:watch:{rowsForm:{......
  • 关于github.com 报告 fatal: unable to connect to github.com: 无法执行git clone h
    1.通过pinggithub.com,获取其ip地址2.获取其ip后,在系统文件中添加该ip地址 3.保存后,通过在原目标地址上添加gitclone.com拉取:如下所示。gitclonehttps://github.com/xxxx.git-> gitclonehttps://gitclone.com/github.com/xxxx.git ......
  • 关于vue 使用setInterval定时器关闭失效的问题 原因为事件传播
    /****data.isPlay为显示那个按钮**startHandle开始定时器setInterval**pauseHandle,stopHandle理解为关闭定时器就好了clearInterval**/<viewclass="btn"@click.stop="startHandle"><viewclass="btn-statusbtn-play"><view......
  • 今天的工作记录一下:关于centos关了防火墙却依然不能访问的问题
    今天的工作记录一下:关于centos关了防火墙却依然不能访问的问题问题在进行docker部署实验时,完成Zrlog部署之后需要进行测试,在Centos7.9内部的浏览器能访问,但是在外面的浏览器结果无法连接,尝试关闭防火墙,还是不行。猜测:猜测关闭防火墙并没有放行tomcat映射的端口,所以通过搜索引擎......