AMBA协议笔记(APB)
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)相关推荐
- AMBA协议介绍(1)——APB协议
系列文章目录 AMBA协议介绍(1)--APB协议 AMBA协议介绍(2)--AHB协议 AMBA协议介绍(3)--AXI协议 目录 AMBA协议介绍 AMBA协议介绍(1)--APB协议 前言 一. ...
- AMBA协议—APB协议2.0/3.0
1.APB 2.0 1.1APB 2信号列表 这里需要区分Master和Slave的区别,Master是总机,Slave是从机,一个总机下可以有n个从机,所有的数据传输都是master来控制的,sla ...
- AMBA协议之AXI协议——中文翻译
AMBA协议之AXI协议--中文翻译 本规范的编写是为了帮助那些想要熟悉高级微控制器总线架构(AMBA)和设计与AXI协议兼容的系统和模块的硬件和软件工程师. 文章目录 AMBA协议之AXI协议--中 ...
- 【手撕AHB-APB Bridge】~ AMBA总线 之 APB
本章目录: 前言 一. 引入 二. APB总览 1. APB信号 2. APB的读写时序图 2.1 APB写操作的时序图 2.2 APB读操作的时序图 三. 地址映射关系 四.实现方式 五. 数据流向 ...
- 趣谈网络协议笔记-二(第十九讲)
趣谈网络协议笔记-二(第十九讲) HttpDNS:网络世界的地址簿也会指错路 自勉 勿谓言之不预也 -- 向为祖国牺牲的先烈致敬! 引用 dns缓存刷新时间是多久?dns本地缓存时间介绍 - 东大网管 ...
- 趣谈网络协议笔记-二(第十八讲)
趣谈网络协议笔记-二(第十八讲) DNS协议:网络世界的地址簿 自勉 勿谓言之不预也 -- 向为祖国牺牲的先烈致敬! 正文 DNS用于域名解析,但也不仅仅是用于域名解析,不仅仅是将域名转换成IP. 在 ...
- 趣谈网络协议笔记-二(第十七讲)
趣谈网络协议笔记-二(第十七讲) P2P协议:我下小电影,99%急死你 自勉 逃离舒适区! 正文 一. P2P协议 整个篇章讲的就是这两个协议之间的区别.P2P协议就是迅雷下载数据时所用的协议, 众所 ...
- 趣谈网络协议笔记-二(第十六讲上)
趣谈网络协议笔记-二(第十六讲上) 流媒体协议:如何在直播里看到美女帅哥? 自勉 给岁月以文明,而不是给文明以岁月!--<三体> 在触不到的獠牙上点火--就像不必仰望那星星就能够解决--就 ...
- 趣谈网络协议笔记-二(第十三讲)
趣谈网络协议笔记-二(第十三讲) 套接字Socket:Talk is cheap, show me the code 前言 这只是笔记,是为了整理刘超大神的极客时间专栏的只是而存在的! 经常会在网络上 ...
最新文章
- XML PUBLISHER输出excel禁止自动将数字格式化处理
- python实现自顶向下,自底向上
- Machine Learning - Andrew Ng on Coursera (Week 1)
- postgresql语句
- leetcode 461. 汉明距离(Java版)
- 分组,采样和批处理– Java 8中的自定义收集器
- 最好的android one手机,最高配置的Android One手机登场 LG推出G7 One与G7 F
- 剑指offer面试题[14]-调整数组顺序使奇数位于偶数前面
- UDP实现简单的超时重传
- 老卫带你学---keras中文文档
- 端口映射器与端口映射软件的区别及内网发布网站到外网的使用
- Ubuntu下WPS 快捷键、使用方法总结
- java题库管理考试管理源码,基于jsp的题库管理系统-JavaEE实现题库管理系统 - java项目源码...
- Stroke:利用人类遗传学理解缺血性卒中预后的机制
- MYSQL时间函数之NOW()
- 给WordPress加个评论关闭时间提示
- 基于python的智能风扇设计_基于单片机的智能风扇的设计与实现
- 通达信接口官网与量化交易有联系吗?
- Mac ubuntu安装无线驱动
- 小梅哥FPGA学习笔记——串口发送模块