系列文章目录

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

AMBA协议介绍(2)——AHB协议

AMBA协议介绍(3)——AXI协议


目录

AMBA协议介绍

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

前言

一、v1.0什么是APB协议?

二、APB协议的传输时序

1.写传输包括无等待状态和有等待状态

2.读传输包括无等待状态和有等待状态

3.传输失败的例子

总结



前言

      AMBA(Advanced Microcontroller Bus Architecture),是一种开放的协议,主要用于SoC内部和ASIC,用于连接各种功能模块。简称AMBA总线,最早由ARM设计推出。AMBA是相对使用比较广的片内总线技术,已成为一种流行的工业标准片上结构,如今不单单是ARM专有的。

AMBA总线可以将RISC处理器集成在其他IP芯核和外设中,它是有效连接IP核的“数字胶”,并且是ARM复用策略的重要组件。它不是芯片与外设之间的接口,而是内核与芯片上其他元件进行通信的接口。

首先,让我们按照它的发布版本来认识一下它。

1.AMBA版本1规范定义:ASB( Advanced System Bus)与 APB(Advanced Peripheral Bus);

2.AMBA版本2规范定义:AHB(Advanced High-performance Bus)、ASB( Advanced System Bus)与 APB(Advanced Peripheral Bus);

3.AMBA版本3规范定义:AXI v1.0(Advanced Extensible Interface)、AHB-Lite v1.0(Advanced High-performance Bus Lite)、 APB v1.0(Advanced Peripheral Bus)与ATB v1.0(Advanced Trace Bus);

4.AMBA版本4规范定义:ACE(AXI Coherency Extensions)、ACE-Lite(AXI Coherency Extensions Lite)、AXI4(Advanced Extensible Interface 4) 、AXI4-Lite(Advanced Extensible Interface 4 Lite)、AXI4-Stream v1.0(Advanced Extensible Interface 4 Stream)、APB v2.0(Advanced Peripheral Bus)与ATB v1.1(Advanced Trace Bus);

随着深亚微米工艺技术日益成熟,集成电路芯片的规模越来越大。数字IC从基于时序驱动的设计方法,发展到基于IP复用的设计方法,并在SOC设计中得到了广泛应用。在基于IP复用的SoC设计中,片上总线设计是最关键的问题。为此,业界出现了很多片上总线标准。其中,由ARM公司推出的AMBA片上总线受到了广大IP开发商和SoC系统集成者的青睐,已成为一种流行的工业标准片上结构。

AMBA协议的演进

  • AMBA 1只有ASB和APB协议;
  • AMBA 2引入AHB协议用于高速数据传输;
  • AMBA 3,为适应高吞吐量传输和调试引入AXI和ATB,增加高级可扩展接口,而AHB协议缩减为AHB-lite,APB协议增加了PREADY和PSLVERR,ASB由于设计复杂而不再使用;
  • AMBA 4,AXI得到了增强,引入QOS和long burst的支持,根据应用不同可选AXI4,AXI4-lite,AXI4-stream,同时为满足复杂SOC的操作一致性引入ACE和ACE-lite协议,APB和ATB也同时得到增强,比如APB加入了PPROT和PSTRB,另外为改善总线数据传输引入QVN协议;
  • 适应更加复杂的高速NOC设计,引入环形总线协议,推出的AMBA CHI协议。

一、v1.0什么是APB协议?

V1.0 ASB、APB是第一代AMBA协议的一部分。APB(Advanced Peripheral Bus) 高级外设总线主要应用在低带宽的外设上,如UART、 I2C,它的架构不像AHB总线是多主设备的架构,APB总线的唯一主设备是APB桥(与AXI或APB相连),因此不需要仲裁一些Request/grant信号。APB的协议也十分简单,甚至不是流水的操作,固定两个时钟周期完成一次读或写的操作。其特性包括:两个时钟周期传输,无需等待周期和回应信号,控制逻辑简单,只有四个控制信号。传输可用如下状态图表示,

  • 系统初始化为IDLE状态,此时没有传输操作,也没有选中任何从模块。
  • 当有传输要进行时,PSELx=1,PENABLE=0,系统进入SETUP状态,并只会在SETUP 状态停留一个周期。当PCLK的下一个上升沿时到来时,系统进入ENABLE 状态。
  • 系统进入ENABLE状态时,维持之前在SETUP 状态的PADDR、PSEL、PWRITE不变,并将PENABLE置为1。传输也只会在ENABLE状态维持一个周期,在经过SETUP与ENABLE状态之后就已完成。之后如果没有传输要进行,就进入IDLE状态等待;如果有连续的传输,则进入SETUP状态。

二、APB协议的传输时序

1.写传输包括无等待状态和有等待状态

无等待状态地址、写入数据、写入信号和选择信号都在时钟上升沿后改变。第一个时钟周期叫做Setup phase。 下一个时钟沿后使能信号PENABLE被置位,表示Access phase就位。地址、数据和控制信号在Access phase期间有效。传输在该周期后结束。使能信号PENABLE, 在传输结束后清空。 选择信号PSELx同样被置低,除非紧接着下一传输开始。有等待状态右图当PENABLE为高,传输可以通过拉低PREADY来扩展传输。

2.读传输包括无等待状态和有等待状态

无等待状态从器件必须在读传输结束前提供数据。有等待状态在Access phase期间PREADY信号拉低,则传输被扩展。

3.传输失败的例子

使用PSLVERR来指示APB传输错误。当PSELPENABLE以及PREADY 都为高时,PSLVERR才在最后一个周期进行判断。 当任何一个PSELPENABLE或者PREADY为低时,你可以将PSLVERR拉低,这是推荐,并不是强制要求。 收到一个错误后,可能或不可能改变外围器件的状态。 APB外围设备不要求必须支持PSLVERR引脚,当不使用该引脚时,应被置低。

上图1为写传输失败最后一个传输周期,PSLVERR信号拉高,上图2为读传输失败,没有读出数据。

       AXI桥接到APB: AXI的RRESP/BRESP = APB的SLVERR(read: PSLVERR -> RRESP[1], write: PSLVERR -> BRESP[1])

      AHB桥接到APBPSLVERR被映射到HRESP = ERROR(PSLVERR -> HRESP[0])


总结

APB主要用于低带宽的周边外设之间的连接,例如UART、1284等,它的总线架构不像AHB支持多个主模块,在APB里面唯一的主模块就是APB 桥。

APB总线协议包含一个APB桥,它用来将AHB,ASB总线上的控制信号转化为APB从设备控制器上可用信号。APB总线上所有的外设都是从设备,这些从设备有以下特点:

a 接收有效的地址和控制访问

b 当APB上的外设处于非活动状态时,可以将这些外设处于0功耗状态

c 译码器可以通过选通信号,提供输出时序(非锁定接口)

d 访问时可执行数据写入

其特性包括:两个时钟周期传输;无需等待周期和回应信号;控制逻辑简单,只有四个控制信号。APB上的传输可以用简单的状态图来说明。

AMBA协议介绍(1)——APB协议相关推荐

  1. 【SMS】SMS协议介绍之SMS协议架构

    今天主要介绍SMS协议的协议架构,以供参考和学习. 图:SMS协议架构 SMS协议分为SM-AL(应用层).SM-TL(传输层).SM-RL(中继层)和SM-LL(低层)等四层结构. SM-AL层主要 ...

  2. SPI的模拟应用——OLED以及时钟模块的应用(一)SPI协议介绍及利用协议实现两机通信(51单片机)

    链接:https://pan.baidu.com/s/1g8jkENjO8v4eXq0bN0acEw?pwd=45c8  提取码:45c8 目录 一. 什么是SPI 1-1 SPI简介 1-2 SPI ...

  3. Wi-Fi Display协议介绍

    Wi-Fi Display协议介绍 Wi-Fi Display协议介绍 1.WFD架构 2.Source/Sink端 3.AV数据流模型 4.Session模型 5.WFD连接拓扑结构 5.1 WiF ...

  4. 华为数通笔记-组播协议介绍之PIM

    PIM PIM(Protocol Independent Multicast,协议无关组播)协议的主要作用就是构建组播分发树.PIM独立于单播路由,但是他的工作依赖于单播路由选择协议的信息(单播路由表 ...

  5. PELCO-D与PELCO-P协议介绍

    摘自http://guojun0681.blog.163.com/blog/static/10051312008920104153565/ PELCO-D与PELCO-P协议介绍 一般控制协议都由硬件 ...

  6. 网络层协议介绍 三次握手四次断开

    1 IP数据包格式 2 ICMP协议介绍 3 ARP协议介绍 4 ARP攻击原理 网络层的功能: 1定义了基于IP协议的逻地址(ipv4  ipv6) 2连接不同的媒介类型 3选择数据通过网络的最佳路 ...

  7. AMBA协议——APB协议

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

  8. AMBA协议笔记(APB)

    AMBA协议笔记(APB) Chapter 1 概述 APB(Advanced Peripheral Bus),是低功耗和减少接口复杂度的优化接口协议.APB接口是低带宽,不需高性能流水线的接口协议, ...

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

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

最新文章

  1. SQL_Case When 嵌套
  2. R语言使用magick包的image_write函数将已有图像以任何指定的格式导出保存到磁盘上(例如将原文将从png转化为jpeg)
  3. 详解.NET中容易混淆的委托与接口
  4. dubbo中log4j检查(开发环境中建议设置为false)
  5. JavaScript随笔一篇
  6. 如何实现rtsp h265 转 rtmp (rtsp hevc 转 rtmp)并转发到CDN或自建服务器
  7. 图论学习四之Disjoint set union并查集
  8. Paradigm此前投资Uniswap的资金价值或超30亿美元
  9. 开发平台(Platform Builder 和 Embedded Visual C++)简介
  10. python产品缺陷检测_3 Kaggle钢材表面缺陷检测竞赛的探索与实践-阿里云开发者社区...
  11. 常见GIS工具软件介绍
  12. 图片随意命名可能被广告拦截插件拦截
  13. (机器学习)C均值算法(K-Means)之误差平方和推导
  14. 注意力、自注意力和多头注意力
  15. 文本挖掘与matlab,文本挖掘与数据挖掘:发现差异
  16. zigbee学习之zigbee应用框架
  17. 哈工大2021春软件构造实验总结
  18. 渗透工程师测试的流程步骤
  19. Construct2 第一次制作的小游戏
  20. 【解决方案】国标视频平台EasyGBS如何搭建应急管理与安全生产平台

热门文章

  1. Flutter系列之TextField限制数字输入
  2. JSVM实现可伸缩视频编码(SVC)
  3. linux搜索log文件的内容
  4. python编写脚本教程_python脚本编写教程gee引擎解密工具
  5. java 生成随机编码_Java生成随机编码
  6. 当年谷歌为什么退出中国?
  7. 消防工程师 第二篇 建筑防火 5.1 防火分区
  8. 【考研】汤家凤数学规划
  9. mysql查看表存不存在
  10. CUDA 学习(CUDA实战 第四章)