当前位置: 首页 > ops >正文

APB协议解读及历代协议对比

AMBA协议英文合集免积分下载,来源ARM官方网站

APB(Advanced Peripheral Bus,高级外围总线)协议是ARM公司中AMBA(Advanced Microcontroller Bus Architecture,高级微控制器总线)协议的一种。作为AMBA最基础的总线,APB经历AMBA2、AMBA3、AMBA4、AMBA5四代,其中每一代在前一代的基础上都有新增,最新的APB5是向下兼容。现在我们所说的APB总线一般是指APB3。APB使用的目的是实现与外围低功耗设备,低速设备进行数据传输。在APB总线中,唯一的M为APB Bridge,其他的一些低速低功率的外围设备均为Slave。
2.1 APB2
2.1.1 APB2信号描述
在这里插入图片描述
在这里插入图片描述

信号描述
PCLK总线时钟,APB协议里所有数据传输均在PCLK上升沿进行
PRESETn复位,低电平有效
PSELx选通信号,APB Bridge会给每个Slave分配一个PSELx信号
PENABLE使能为高时,数据有效
PWRITE读写控制,高为写,低为读
PWDATA写数据, APB Bridge驱动总线,可以8/16/32位
PRDATA读数据,Slave驱动总线,可以8/16/32位

2.1.2 写传输
所有数据在PCLK上升沿跳变。
T0-T1:初始状态;
T1-T2:(Setup Phase)Master把地址PADDR和读写控制PWRITE放在总线上,当PWRITE=1时为写。PSEL=1选通某Slave,并且把所要写的数据DATA1放在总线上;
T2-T3:(Access Phase)当PENABLE=1时,Master把DATA1写入该Slave;
T3:数据传输结束,回到初始状态,PENABLE=0,PSEL=0(除非继续传输),PADDR和PWRITE保持状态不变,等待下一次传输再改变,有助于降低功耗。

图2.1写传输时序

2.1.3 读传输
所有数据在PCLK上升沿跳变。
T0-T1:初始状态;
T1-T2:(Setup Phase)Master把地址PADDR和读写控制PWRITE放在总线上,当PWRITE=0时为读。PSEL=1选通某Slave;
T2-T3:(Access Phase)当PENABLE=1时,Master读取DATA1;
T3:数据传输结束,回到初始状态
在这里插入图片描述
图2.2读传输时序

2.2 APB3
2.2.1 APB3新增信号描述

信号描述
PREADY准备,Slave使用该信号延迟APB数据传输
PSLVERR错误反馈,Slave非必要支持该信号,不支持时置为低电平

2.2.2 等待传输
当PSEL,PENABLE,PREADY均为高电平时,写/读传输数据。

(a)
(b)
图2.3 (a)无等待和(b)有等待写传输时序

在这里插入图片描述
在这里插入图片描述
图2.4 (a)无等待和(b)有等待读传输时序

2.2.3 错误响应
PSLVERR只在APB传输的最后一个周期有效, 也就是说当PSEL,PENABLE和PREADY均为1时是有效的,在其他时间是无效的。建议当PSEL,PENABLE和PREADY任何一个为0时,驱动PSLVERR为0。接收到错误的事务可能改变了Slave的状态,也可能没有。当写事务收到错误反馈时,并不意味着Slave寄存器没有更新。接收到错误的读取事务可以返回无效数据,Slave无需将数据总线驱动为全0来处理读取错误。当一些APB模块不支持PSLVERR时,可以将APB Bridge上这个pin接0。
在这里插入图片描述
图2.5 写错误响应
在这里插入图片描述
图2.6 读错误响应
PSLVERR在系统中的连接映射关系,PSLVERR需要连接到AXI的RRESP/BRESP或者AHB的HRESP信号。
在这里插入图片描述

2.3 APB4
2.3.1 APB4新增信号描述

信号描述
PSTRB[3:0]写选通信号,32位APB数据总线需4个PSTRB,每个对应一个字节
PPROT[2:0]读写保护,指示事务正常、特权或安全保护级别,数据访问还是指令访问

2.3.2 写选通
当写数据位宽低于设计的数据位宽时,可以通过PSTRB[n]=1指定哪个字节有效,n=0,1,2,3,PSTRB[n]对应PWDATA[(8n + 7):(8n)],这使得APB稀疏数据传输成为可能。但是读传输必须满足4个PSTRB[n]=0。
在这里插入图片描述

2.3.3 读写保护
为了支持复杂的系统设计,通常需要系统中的互连和其他设备提供防止非法交易的保护。对于APB接口,这种保护由PPROT[2:0]信号提供。

PPROT[2:0]保护模式
[0]1=特权模式;0=正常模式
[1]1=非安全模式;0=安全模式
[2]1=指定模式;0=数据模式

2.4 APB5
2.4.1 APB5新增信号描述

信号描述
PWAKEUP唤醒,与APB接口相关的的行为
PAUSER用户请求属性,建议最大128bits宽度
PWUSER用户写数据属性,建议最大DATA/2宽度
PRUSER用户读数据属性,建议最大DATA/2宽度
PBUSER用户响应属性,建议最大16bits宽度

2.4.2 唤醒信号

  1. 与PCLK同步,适用于不同时钟域异步采样;
  2. 可在PSELx前、中、后有效,但建议PREADY在PSELx提前1至少一个周期有效;
  3. Slave可以在PREADY有效之前接收PWAKEUP有效信号,如果PWAKEUP从未有效,Slave可能死锁;
  4. 当PWAKEUP和PSELx在同一个周期为高电平,PWAKEUP必须保持有效直至PREADY有效;
  5. 建议在无进一步传输时,使PWAKEUP无效;
  6. 没有传输时,PWAKEUP可以先有效再无效,协议允许但不建议;
  7. 建议Mater和Slave同时设置门控时钟

2.4.3 用户信号
在这里插入图片描述

2.5 状态转换
在这里插入图片描述

http://www.xdnf.cn/news/11364.html

相关文章:

  • System.currentTimeMillis()用法以及计算方式
  • 医学案例|配对样本t检验
  • Java IO流操作(FileInputStream、ByteArrayInputStream、ObjectInputStream)
  • flash 小游戏大全
  • Android studio ListView应用设计
  • Linux修改文件名的三种方法分享
  • 虚拟局域网技术
  • LT9211 单路LVDS转双路LVDS,成熟方案,提供技术支持
  • jQuery-ui插件datepicker的参数使用详解
  • 请你记住这3款国产软件,免费又实用,它们值得收藏
  • 数据结构--抽象数据类型三元组Triplet的表示和实现
  • 网络安全行业名词_失陷主机(1)
  • DBeaver工具-虚谷数据库各级备份恢复
  • 宝塔 Linux centos Workerman换域名步骤
  • Java基础知识自学指南(一)Java快速入门
  • gentoo基本安装过程
  • 51单片机之逻辑运算指令ANL、ORL、XRL等
  • Android开发基础——ListView
  • 73种网页常用js代码
  • ico图标和制作网站(比特虫)
  • 太阳 仰角和方位角(Elevation and Azimuth)
  • log4net的使用
  • 一文教你认清领域模型和数据模型
  • 关闭Windows自动更新的6种方法
  • jqGrid的常用属性和方法
  • Java报表工具 JasperReports iReport
  • Cool Edit Pro是什么?Cool Edit Pro怎么用?
  • linux container框架,深度解析Containers--系统架构
  • 中间件之搜索和数据分析组件Elasticsearch
  • Struts与Struts2的区别