AMBA协议笔记(APB)

Chapter 1 概述

APB(Advanced Peripheral Bus),是低功耗减少接口复杂度的优化接口协议。APB接口是低带宽不需高性能流水线的接口协议,同时APB也具有非流水线的协议。

所有信号都只在时钟的上升沿跳变,目的是为了简化设计流程中的APB外设融合每次传输至少需要两个cycles。APB可以与AHB,AXI连接,可以使用APB进行程序级的控制寄存器和外设。

Chapter 2 信号描述
信号 来源 描述
PCLK 系统时钟 时钟。传输发生在时钟上升沿
PRESETn 等效的系统总线 复位信号。低电平有效,通常与系统的复位信号直接连接
PADDR APB桥 地址,APB地址线,位宽最高32bit,由外设驱动
PSELx APB桥 选择信号,APB产生,用来选择外设。该信号表明外设从设备被选择,进行数据传输。每个从设备具都有一个PSELx信号
PENABLE APB桥 使能信号,表示传输的第二个cycle和接下来的cycle传输有效
PWRITE APB桥 方向信号,为高时表示APB写,为低时表示APB读
PWDARA APB桥 写数据,在写cycle由外部设备驱动,最高32bits
PREADY 从接口 就绪信号,表明从设备已就绪,进行接下来的传输
PRDATA 从接口 读数据,在读cycle被选中的从设备驱动此信号,位宽最高32bits
PSLVERR 从接口 表示传输失败,APB从设备不要求支持此信号
Chapter 3 传输

3.1 写传输

  • 没有等待状态的写传输

传输开始时钟上升沿(T1),PADDR,PWRITE,PSEL,PWDATA改变。传输的第一个阶段称为Setup phase。在随后的一个时钟周期,当PENABLE拉高后(T2),表示进入Access Phase(因为是无等待阶段的写操作,所以PREADY默认拉高的)。PADDR,PWRITE,PSEL,PWDATA信号在Access Phase保持不变。在Access Phase结束后表示此次传输完成。

传输完成后PENABLE信号拉低(T3)。如果接下来对同一个外设进行传输,则PSEL信号保持为高(Setup Phase),否则拉低。

  • 有等待阶段的写传输

在Access Phase阶段,从端发送的PREADY可以延长此阶段(T2~T4)。此时,PENABLE为高,当PREADY为低时,各控制信号(PWRITE,PSEL,PENABLE),数据信号(PADDR,PWDATA)保持不变,一直等到PREADY为高时,完成此次传输。当PENABLE为低时,PREADY可以为任意值。

注:推荐PADDR和PWRITE信号保持不变直到下一个传输开始,这有助于降低功耗

3.2 读传输

  • 没有有等待阶段的读

Setup Phase与Write相似,不同的是PWRITE为低,表示APB读,PRDATA为读数据,从从设备接收读数据。在Acess Phase(T2),PENABLE拉高,PREADY拉高,完成握手,然后从设备发送读数据Data1,读传输结束。

  • 有等待阶段的读

与带有等待阶段的写相似,在进入Access Phase时(T2),如果从端PREADY为低,则其他控制信号(PWRITE,PSEL,PENABLE),数据信号(PADDR,PRDATA)保持不变,一直等到PREADY为高(可以延长任意时钟周期),PRDATA接收从从端读取的数据Data1,传输结束。

3.3 错误反馈

可以使用PSLAERR表明APB传输的过程中发生了错误。错误的情形可以发生在读和写过程中。PSLVERR只能在APB传输的第二个cycle拉高,即Access Phase阶段,也就是PSLE,PENABLE,PREADY都为高时

传输收到一个错误时,从设备的状态可能发生或者没有发生变化(如读/写传输过程发生错误,则无法保证读/写的数据正确性,具有不确定性)。也就是说,在一个写传输过程中发生了错误,并不意味着从设备中寄存器的值没有更新。在读传输的过程中发生了错误也可能返回的是非法的读数值。这里并没有要求从设备在读传输发生错误时将数据总线设置为0。

APB从设备并没有要求支持PSLVERR管脚(信号),这对于现有的和新的APB设计通用。(此特性非强制实现

写传输

在上述的写传输过程中,Access Phase阶段,T3时,PREADY拉高,同时从设备将PSLVERR拉高,表明此次传输发生错误。此时Addr1的数据可能为Data1也可能不是Data1,具有不确定性。

读传输

在读传输的Access Phase阶段,T4周期内,PREADY拉高,从设备发送PSLVERR为高,表明此次读传输发生错误,PRDATA读到的数据可能是非法值(不确定性)。

PSLVERR的映射关系

PSLEERR与AHB,AXI协议中错误信号存在映射关系[后续补充]。

Chapter 4 操作状态

状态机包括以下几种状态:

IDLE:APB的默认状态。

SETUP:当有传输需求总线进入SETUP状态(PSELx拉高,选中要进行传输的从设备,进入SETUP状态)。总线总是保持SETUP状态一个周期,然后在下个始终在后期上升沿进入ACCESS状态。

ACCESS:PENABLE拉高时,进入ACCESS状态。在总线由SETUP到ACCESS过程中,PADDR,PWRITE,PSEL,PWDATA必须保持不变。离开ACCESS状态是由从设备PREADY进行控制

  • 如果PREADY为低,则从设备总线保持ACCESS状态。(PSELx==1,PENABLE==1,PREADY==0)
  • 如果PREADY为高,则退出ACCESS状态。如果接下来有传输,则总线直接进入SETUP状态。如果接下来没有传输,则进入IDLE状态。

参考资料:AMBA 3 APB Protocol v1.0 Specification

AMBA协议笔记(APB)相关推荐

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

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

  2. AMBA协议—APB协议2.0/3.0

    1.APB 2.0 1.1APB 2信号列表 这里需要区分Master和Slave的区别,Master是总机,Slave是从机,一个总机下可以有n个从机,所有的数据传输都是master来控制的,sla ...

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

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

  4. 【手撕AHB-APB Bridge】~ AMBA总线 之 APB

    本章目录: 前言 一. 引入 二. APB总览 1. APB信号 2. APB的读写时序图 2.1 APB写操作的时序图 2.2 APB读操作的时序图 三. 地址映射关系 四.实现方式 五. 数据流向 ...

  5. 趣谈网络协议笔记-二(第十九讲)

    趣谈网络协议笔记-二(第十九讲) HttpDNS:网络世界的地址簿也会指错路 自勉 勿谓言之不预也 -- 向为祖国牺牲的先烈致敬! 引用 dns缓存刷新时间是多久?dns本地缓存时间介绍 - 东大网管 ...

  6. 趣谈网络协议笔记-二(第十八讲)

    趣谈网络协议笔记-二(第十八讲) DNS协议:网络世界的地址簿 自勉 勿谓言之不预也 -- 向为祖国牺牲的先烈致敬! 正文 DNS用于域名解析,但也不仅仅是用于域名解析,不仅仅是将域名转换成IP. 在 ...

  7. 趣谈网络协议笔记-二(第十七讲)

    趣谈网络协议笔记-二(第十七讲) P2P协议:我下小电影,99%急死你 自勉 逃离舒适区! 正文 一. P2P协议 整个篇章讲的就是这两个协议之间的区别.P2P协议就是迅雷下载数据时所用的协议, 众所 ...

  8. 趣谈网络协议笔记-二(第十六讲上)

    趣谈网络协议笔记-二(第十六讲上) 流媒体协议:如何在直播里看到美女帅哥? 自勉 给岁月以文明,而不是给文明以岁月!--<三体> 在触不到的獠牙上点火--就像不必仰望那星星就能够解决--就 ...

  9. 趣谈网络协议笔记-二(第十三讲)

    趣谈网络协议笔记-二(第十三讲) 套接字Socket:Talk is cheap, show me the code 前言 这只是笔记,是为了整理刘超大神的极客时间专栏的只是而存在的! 经常会在网络上 ...

最新文章

  1. XML PUBLISHER输出excel禁止自动将数字格式化处理
  2. python实现自顶向下,自底向上
  3. Machine Learning - Andrew Ng on Coursera (Week 1)
  4. postgresql语句
  5. leetcode 461. 汉明距离(Java版)
  6. 分组,采样和批处理– Java 8中的自定义收集器
  7. 最好的android one手机,最高配置的Android One手机登场 LG推出G7 One与G7 F
  8. 剑指offer面试题[14]-调整数组顺序使奇数位于偶数前面
  9. UDP实现简单的超时重传
  10. 老卫带你学---keras中文文档
  11. 端口映射器与端口映射软件的区别及内网发布网站到外网的使用
  12. Ubuntu下WPS 快捷键、使用方法总结
  13. java题库管理考试管理源码,基于jsp的题库管理系统-JavaEE实现题库管理系统 - java项目源码...
  14. Stroke:利用人类遗传学理解缺血性卒中预后的机制
  15. MYSQL时间函数之NOW()
  16. 给WordPress加个评论关闭时间提示
  17. 基于python的智能风扇设计_基于单片机的智能风扇的设计与实现
  18. 通达信接口官网与量化交易有联系吗?
  19. Mac ubuntu安装无线驱动
  20. 小梅哥FPGA学习笔记——串口发送模块

热门文章

  1. OSChina 周六乱弹 —— 女友是啥子哟?生命的最大负载?
  2. AD之PCB各层说明
  3. 求c语言学习的教程网站
  4. 【全国大学生电子设计大赛】2021-04-26
  5. NYOJ--1237最大岛屿
  6. BT和eMule下载协议的比较和分析
  7. flexbison编写语法分析器
  8. cai课件 计算机辅助创新,浅谈cai课件制作的几个问题
  9. 常用商务邮箱:常用商务邮箱注册
  10. GAN(生成对抗网络)入门