APB(Advanced Peripheral Bus),从扩展名可以看出,其主要是用作访问外设(如UART,I2C,SPI等)的一类总线,功能也比较简单,一次只能发一笔读命令或者一笔写命令,不能burst传输。APB2.0的读写时序如下:

APB2.0写时序

APB2.0读写混合时序

每一笔读写命令均在两个cycle内完成,PSEL拉高是第一拍,PENABLE拉高是第二拍,如果没有后续操作,下一个cycle,PSEL和PENABLE均要拉低。master和slave之间不存在握手环节,即master不关注操作是否已经被slave执行。挂在总线上的slave IP必须满足这样的要求:

1、对于写操作,检测到PSEL拉高或者PENABLE拉高后需要把写数据和写地址采集下来,并且保证所有被采集下来的命令都会被执行;

2、对于读操作,在检测到PSEL拉高后必须将读地址采集下来,并在下一个cycle返回读数据,中间不能有延迟。

所有使用APB2.0的IP都必须满足以上两点要求,否则无法使用此协议。

除此之外还存在一个问题,即master无法得知此笔操作是否被slave正确执行了,例如你向slave的一个只读寄存器发了一笔写命令,很显然,这个操作是不会被slave执行的,但是master如果不通过一些其它操作是无法知晓这件事情的(怎样可以知晓呢,大家可以自己想一下)。

为了解决上述问题,APB3.0协议应运而生。

其实解决上述问题很简单,APB3.0里增加了两个信号PREADY和PSLVERR。

其中PREADY用于和master进行握手,即如果slave能及时接收并处理master的命令,则PREADY拉高同时执行命令即可,否则可以通过拉低PREADY信号告知master,自己目前还无法处理这笔命令,master看到PREADY为低后就得到了这一信息,相应地,其会一直保持总线上的命令信息不变且一直有效,直到slave能够接收并处理此命令为止。

除此之外slave还可以通过PSLVERR信号告知此笔命令是否被正确执行了,如果没有被正确执行,则拉高PSLVERR告知master有错误发生。

APB3.0协议下的读写时序如下:

APB3.0读写时序

上图中包含了两笔读命令RC0(read command 0)、RC1以及一笔写命令WC0,其中RC0和WC0均通过PREADY信号延迟了一拍,两笔命令均被执行成功;RC1没有延迟,但是slave返回了PSLVERR,来表明这笔读命令有错误发生。

可以看出虽然只增加了两个信号,但是协议的灵活性得到了大大的提升。

而且APB3.0可以向下兼容APB2.0,只需要将PREADY和PSLVERR信号分别tie为1和0即可。

AMBA协议(二) APB协议相关推荐

  1. AMBA协议介绍(1)——APB协议

    系列文章目录 AMBA协议介绍(1)--APB协议 AMBA协议介绍(2)--AHB协议 AMBA协议介绍(3)--AXI协议 目录 AMBA协议介绍 AMBA协议介绍(1)--APB协议 前言 一. ...

  2. AMBA协议——APB协议

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

  3. AMBA协议之AXI协议——中文翻译

    AMBA协议之AXI协议--中文翻译 本规范的编写是为了帮助那些想要熟悉高级微控制器总线架构(AMBA)和设计与AXI协议兼容的系统和模块的硬件和软件工程师. 文章目录 AMBA协议之AXI协议--中 ...

  4. APB协议及APB_Slave设计

    一.APB协议 原文: 翻译: APB协议是一个低成本的接口,经过了优化,降低了功耗和接口复杂性.APB接口是简单,同步,无流水线的协议.每次传输花费至少两个周期完成. APB接口设计是为了访问外围设 ...

  5. AMBA总线—AHB总线协议详解

    文章目录 一.AMBA总线介绍 1.1.AMBA发展史 1.2.典型的AMBA系统 二.AHB总线(宏观构造) 2.1.AHB总线组成 2.2.AHB总线组成互连 2.3.AHB操作概述 2.4.AH ...

  6. APB协议UVM验证环境的搭建

    APB协议UVM验证环境的搭建 一.编译文件 只需编译这两个文件即可 apb_pkg.sv 里面包含了"apb.svh",即编译apb_pkg.sv这个文件的同时,也会编译所需要的 ...

  7. 存储基础知识二 主要协议SCSI、FC、iSCSI

    一.SCSI SCSI是小型计算机系统接口(Small Computer System Interface)的简称,于1979首次提出,是为小型机研制的一种接口技术,现在已完全普及到了小型机,高低端服 ...

  8. 一篇文章带你熟悉 TCP/IP 协议(网络协议篇二)

    涤生_Woo 2017年11月11日阅读 15544 关注 一篇文章带你熟悉 TCP/IP 协议(网络协议篇二) 同样的,本文篇幅也比较长,先来一张思维导图,带大家过一遍. 一图看完本文 一. 计算机 ...

  9. HTTP协议 (二) 基本认证

    HTTP协议 (二) 基本认证 http协议是无状态的, 浏览器和web服务器之间可以通过cookie来身份识别. 桌面应用程序(比如新浪桌面客户端, skydrive客户端)跟Web服务器之间是如何 ...

  10. 实验十二 HTTP 协议分析实验

    实验十二 HTTP 协议分析实验 1.HTTP 协议简介 HTTP是超文本传输协议 (Hyper Text Transfer Protocol)的缩写,用于WWW 服务. (1)HTTP的工作原理 H ...

最新文章

  1. usaco Healthy Holsteins
  2. 直播APP常用动画效果
  3. 使用JavaScript在文本框中的Enter键上触发按钮单击
  4. [SCOI 2010]传送带
  5. Java开发人员的十大戒律
  6. HashMap 中的一个“坑”!
  7. div+css 单行或者多行超出文本,数字,字母长度自动省略
  8. 机器学习-吴恩达-笔记-8-支持向量机
  9. 【完全开源】博客园客户端UWP版(上篇)
  10. NOIP模拟赛20161016R1
  11. Android屏幕尺寸详解
  12. java队列和栈 共同_java 栈和队列的模拟--java
  13. CentOS 5 全功能WWW服务器搭建全教程 V3.0 【转】
  14. ACTION_DATE_CHANGED不响应
  15. 【转】Foobar 2000设置replay gain
  16. 08蚂蚁-互联网安全架构——1.XSS攻击,SQL注入攻击,Http请求防盗链,CSRF请求攻击,忘记密码暴力破解,上传文件漏洞
  17. 基于一定微信生态的小程序是否反之又形成了微信互联网?
  18. Minecraft空岛服开服
  19. AMD公司2020财年第三季度收益电话会议
  20. 不看你就亏了,最新最全的腾讯,阿里、百度、美团等大厂都在用的Redis实战

热门文章

  1. 创新PCB快速制作技术研讨会 助力电子设计研发
  2. GIPHY软件实现快速制作gif动图
  3. linux怎么查看硬件信息详解
  4. kali制作钓鱼wifi
  5. 使用Horizon构建Dashboard
  6. MindMapper荧光笔功能该怎么进行使用
  7. 机器学习基本库之Matplotlib
  8. 高斯滤波、双边滤波、邻域滤波、非局部均值滤波(NL-means) 笔记
  9. java random函数用法_JAVA的Random类的用法详解
  10. C# 如何遍历 TreeNode 所有节点