简介

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

系统芯片中各个模块之间需要有接口来连接;
总线作为子系统之间共享的通信链路;

其优点:低成本,方便易用
缺点:容易有性能瓶颈

一、APB协议

APB2 :AMBA 2 APB
APB3 :AMBA 3 APB,比 APB2 多两个信号(PREADY , PSLVERR)
APB4 :AMBA 4 APB,比 APB3 多两个信号(PPROT , PSTRB )
(可参考原文链接:https://blog.csdn.net/qq_43244515/article/details/124968189)

APB(Advanced Peripheral Bus),高级外设总线。APB总线协议是ARM公司提出的AMBA总线结构之一,是一种片上总线结构。从AHB/ASB总线到APB总线需要通过 桥接器(Bridge) 进行互联。

  APB主要用于低带宽的周边外设之间的连接,例如UART、IIC等,它的总线架构不像AHB支持多个主模块,在APB里面没有仲裁器,APB 桥是唯一的主模块。其特点:
  (1)低带宽;高性能;
  (2)非流水作业,至少需要两个时钟周期传输,且数据均在时钟上升沿变化;
  (3)无需等待周期和回应信号;
  (4)控制逻辑简单,只有四个控制信号,且APB上的传输可采用状态机表示。

二、APB总线介绍

应用于慢速外设,如UART、键盘等,不需要AHB总线体系中的Arbiter与Decoder。
Arbiter为仲裁器,决定哪个Master工作。Decoder为译码器,决定Master与哪个Slave进行数据传输。

2.1 接口主要信号

(下图为APB3接口,即为APB2+PREADY信号+PSLVERR信号)

2.2 APB总线传输介绍(时序部分)

2.2.1状态机

从状态机看,APB对每一笔数据的传送,均需花 2 个周期的时间,且 APB 的数据传递不适用在有流水线架构的模块设计中。

2.2.2 APB2 写操作
下图表示APB基本的写操作

在 T1 时,有限状态机进入预设的 IDLE 状态;
在 T2 时,数据地址、读写控制信号和写入的数据会在频率正沿触发时,开始作写的数据传递准备,这个周期也就是刚才所提及SETUP状态。译码电路在此状态会根据数据地址去译码出所要写入APB Slave,此时所对应到 S 的 PSEL 信号将由 0 变 1;
在 T3 时,有限状态机会进入 ENABLE 状态,PENABLE 信号在此状态会被设成 1;
在 T4 频率正沿触发时,PENABLE 信号将由 1 变 0,而 PSEL 信号在若没有其它数据的写入动作时,也将由 1 变 0。为了减少功率的消耗,APB 的数据地址和读写控制信号在下一笔数据传递前,将不会作任何改变。

2.2.3 APB2 读操作

由图中可发现除了写信号是倒过来有效外,APB 读操作时序图和写操作时序图非常相似,在这里我们就不再作详细的解释。
要特别注意的是,在 T3 后,也就是在进入 ENABLE 周期后,APB 从必须要将 M 所要读取的数据准备好,以便 M 可以在 ENABLE 周期末被 T4 正时钟沿触发时正确的将数据读取。

2.2.5 APB3 写操作

  1. 在T0~T1阶段,所有总线处于IDLE状态。
  2. 在T1~T2阶段,第一个时钟周期,处在Setup phase状态。T1时刻,PADDR、PWRITE、PWDATA变化,PSEL拉高,即Master把这些数据发送到总线上。
  3. 在T2~T3阶段,第二个时钟周期,处在Access phase状态。T2时刻,这个时候对应的Slave接收到Master发送过来的地址和写控制命令,此时Slave得知Master要准备发数据过来了,做好准备。
  4. T3时刻,采到 PENABLE 为高电平,但是 PREADY 为低电平,表示Master数据还没准备好。
  5. T5时刻,采到 PENABLE & PREADY 为高电平,表示Master在这一时刻之前一次写操作已经完成,Master回到IDLE状态,而Slave把数据取走。

2.2.5 APB3 读操作

  1. 在T0~T1阶段,所有总线处于IDLE状态。
  2. 在T1~T2阶段,第一个时钟周期,处在Setup phase状态。T1时刻,PADDR、PWRITE、PWDATA变化,PSEL拉高,即Master把这些数据发送到总线上。
  3. 在T2~T3阶段,第二个时钟周期,处在Access phase状态。T2时刻,这个时候对应的Slave接收到Master发送过来的地址和读控制命令,此时Slave得知自己要将这个地址反馈给Master了。
  4. T3时刻,采到 PENABLE 为高电平,但是 PREADY 为低电平,表示Slave数据还没准备好。
  5. T5时刻,采到 PENABLE & PREADY 为高电平,表示Master这一时刻之前一次读操作已经完成,Master回到IDLE状态。

2.2.5 APB4 读写操作

三、APB总线介绍

3.1 Function descripton

apb桥实现了将上游的数据转换成AMBA 3 APB协议发送出去,并接收读到的数据。

3.2 Interface description

  1. 系统工作时钟50Mhz,异步复位。
  2. 采用 APB3 协议标准,无需错误指示。
  3. cmd_i,56bit;[55:48]:r/w;[48:32]:paddr;[31:0]:pwdata。

参考文献:
https://blog.csdn.net/qq_43244515/article/details/124968189
https://blog.csdn.net/vivid117/article/details/107511746

AMBA协议——APB协议相关推荐

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

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

  2. 05【Verilog实战】AMBA 3 APB接口设计(附源码RTL/TB)

    官方手册:点击下载 脚  本:makefile 工  具:vcs & verdi 写在前面 这个专栏的内容记录的是个人学习过程,博文中贴出来的代码是调试前的代码,方便bug重现. 调试后的程序 ...

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

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

  4. AMBA总线---APB总线协议

    APB(Advanced Peripheral Bus)是AMBA总线体系的一部分.相较于AMBA总线体系中的其他总线,APB总线具有低功耗,低复杂度的特征.APB总线主要应用于对性能要求不太高的低带 ...

  5. 【读书笔记】AMBA 2 AHB、AMBA 3 AHB(AHB_Lite)和AMBA 5 AHB协议比较

    1.牛客算是一个Verilog宝藏刷题网站了,网站提供在线仿真环境,不用自己找题(点击直达),<刷题记录>专栏,持续打卡中- 2.官方手册:AMBA系列官方协议规范文档,点击下载 更详细的 ...

  6. [AMBA]AHB总线协议简介

    AHB总线协议简介 一.简介 AHB 总线规范是AMBA总线规范的一部分,AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计采用,它规定了AHB (Advanced High-perfor ...

  7. APB协议及APB_Slave设计

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

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

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

  9. 浅析AMBA规范以及AMBA 5 AHB接口和AMBA 3 APB接口

    官方文档: ARM® AMBA® 5 AHB Protocol.pdf AMBA™ 3 APB Protocol.pdf Multi-layer AHB.pdf 一.AMBA简介 1.AMBA (Ad ...

最新文章

  1. 你在过度测试你的软件吗?
  2. 网络编程(原始套接字)
  3. IDC 和浪潮联合发布了《2020-2021 中国人工智能计算力发展评估报告 》
  4. 为什么不懂技术的人可以做产品经理?
  5. sock 文件方式控制宿主机_docker的容器可视化工具portainer
  6. 90. php 命名空间
  7. 穿越迷宫的函数c语言,数据结构课外实践题库(26页)-原创力文档
  8. 国内外知名PT站点最全汇总,含各站内截图及站点链接【转载】
  9. CTF题库实验吧 py的交易
  10. 微服务架构开发实战:什么是微服务的熔断机制和熔断的意义
  11. Micron:DDR2 SDRAM与SODIMM
  12. SpringBoot2学习笔记
  13. Java对Excel表格的操作
  14. 深入剖析优惠券核心架构设计
  15. CGB2105-Day03
  16. 硅谷归来,七大感触——You Only Live Once
  17. 前嗅ForeSpider教程:采集360问答
  18. 技术 | 关于整流电路总结
  19. (二)快速图像风格转换
  20. Lightroom Classic 12.0下载安装教程LRc12.0一键下载安装

热门文章

  1. 【历史上的今天】8 月 13 日:甲骨文起诉谷歌;微软发布 IE3
  2. HTTP里的MIME 什么是MIME?
  3. 【森林SOU】BT搜索神器
  4. 汇编课设(电子钢琴:源代码)
  5. 校招季到来,你可能需要这一份求职作战计划!
  6. 一文读懂澳洲医疗:白菜价的药物怎么领?
  7. MySQL拼接函数使用介绍
  8. 用vmware player 16 虚拟机共享网络
  9. ARMv7-A,ARMv7-R和ARMv7-M之间有什么区别?
  10. python从excel读彩票数据统计分析,用matplotlib.pyplot做可视图在程序窗口显示,并可动态切换Canvas的可视图,窗口里还添加了菜单和Button按钮工具栏,按钮换图