AMBA、AHB、APB总线

* AMBA (Advanced Microcontroller Bus Architecture) 高级微处理器总线架构
* AHB (Advanced High-performance Bus) 高级高性能总线
* ASB (Advanced System Bus) 高级系统总线
* APB (Advanced Peripheral Bus) 高级外围总线
* AXI (Advanced eXtensible Interface) 高级可拓展接口

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

AMBA片上总线
AMBA 2.0规范包括四个部分:AHB、ASB、APB、AXI。AHB的相互连接采用了传统的带有主模块和从模块的共享总线,接口与互连功能分离,这对芯片上模块之间的互连具有重要意义。AMBA已不仅是一种总线,更是一种带有接口模块的互连体系。一个典型的基于AMBA总线的系统框图如图3所示:

大多数挂在总线上的模块(包括处理器)只是单一属性的功能模块:主模块或者从模块。主模块是向从模块发出读写操作的模块,如CPU,DSP等;从模块是接受命令并做出反应的模块,如片上的RAM,AHB/APB 桥等。另外,还有一些模块同时具有两种属性,例如直接存储器存取(DMA)在被编程时是从模块,但在系统读传输数据时必须是主模块。如果总线上存在多个主模块,就需要仲裁器来决定如何控制各种主模块对总线的访问。虽然仲裁规范是AMBA总线规范中的一部分,但具体使用的算法由RTL 设计工程师决定,其中两个最常用的算法是固定优先级算法和循环制算法。AHB总线上最多可以有16个主模块和任意多个从模块,如果主模块数目大于16,则需再加一层结构(具体参阅ARM公司推出的Multi-layer AHB规范)。APB 桥既是APB总线上唯一的主模块,也是AHB系统总线上的从模块。其主要功能是锁存来自AHB系统总线的地址、数据和控制信号,并提供二级译码以产生 APB外围设备的选择信号,从而实现AHB协议到APB协议的转换。

AHB简介
AHB主要用于高性能、高时钟跑频率模块(如CPU、DMA和DSP等)之间的连接,作为SoC的片上系统总线,它包括以下一些特性:单个时钟边沿操作;非三态的实现方式;支持突发传输;支持分段传输;支持多个主控制器;可配置32位~128位总线宽度;支持字节、半字节和字的传输。AHB 系统由主模块、从模块和基础结构(Infrastructure)三部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。基础结构则由仲裁器(arbiter)、主模块到从模块的多路器、从模块到主模块的多路器、译码器(decoder)、虚拟从模块(dummy Slave)、虚拟主模块(dummyMaster)所组成。Master:能够发起读写操作,提供地址和控制信号,同一时间只有1个Master会被激活。
【Master】:能够发起读写操作,提供地址和控制信号,同一时间只有1个Master会被激活。Slave:在给定的地址范围内对读写操作作响应,并对Master返回成功、失败或等待等状态。
Arbiter】:负责保证总线上一次只有1个Master在工作。仲裁协议是规定的,但是仲裁算法可以根据应用决定。
Decoder】:负责对地址进行解码,并提供片选信号到各Slave。
其互连结构如图1所示:

它主要支持的特性是:
  * 数据突发传输(burst transfer )
  * 数据分割传输(split transaction )
  * 流水线方式
  * 一个周期内完成总线主设备(master )对总线控制权的交接
  * 单时钟沿操作
  * 内部无三态实现
  * 更宽的数据总线宽度(最低32位,最高可达1024位,但推荐不要超过256位)

APB简介
APB主要用于低带宽的周边外设之间的连接,例如UART、1284等,它的总线架构不像AHB支持多个主模块,在APB里面唯一的主模块就是APB 桥。其特性包括:两个时钟周期传输;无需等待周期和回应信号;控制逻辑简单,只有四个控制信号。APB上的传输可以用如图2所示的状态图来说明。

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

ASB简介
ASB 总线适用于连接高性能的系统模块。它的读/写数据总线采用的是同一条双向数据总线,可以在某些高速且不必要使用AHB 总线的场合作为系统总线,可以支持处理器、片上存储器和片外处理器接口及与低功耗外部宏单元之间的连接。同AHB相比,它数据宽度要小一些,它支持的典型数据宽度为8位、16位、32位。它的主要特征如下:
  * 流水线方式
  * 数据突发传送
  * 多总线主设备
  * 内部有三态实现

AXI简介
AXI是高级扩展接口,在AMBA 3.0中提出,AMBA 4.0将其修改升级为AXI 4.0。AMBA 4.0包括AXI 4.0、AXI 4.0-lite、ACE 4.0、AXI 4.0-stream。AXI 4.0-lite是AXI的简化版本,ACE 4.0是AXI缓存一致性扩展接口,AXI 4.0-stream是ARM公司和Xilinx公司一起提出,主要用在FPGA进行以数据为主导的大量数据的传输应用。

关于AXI协议
  * AMBA AXI协议支持支持高性能、高频率系统设计。
  * 适合高带宽低延时设计
  * 无需复杂的桥就能实现高频操作
       * 能满足大部分器件的接口要求
       * 适合高初始延时的存储控制器
       * 提供互联架构的灵活性与独立性
       * 向下兼容已有的AHB和APB接口

 关键特点:
       * 分离的地址/控制、数据相位
       * 使用字节线来支持非对齐的数据传输
       * 使用基于burst的传输,只需传输首地址
       * 分离的读、写数据通道,能提供低功耗DMA
       * 支持多种寻址方式
       * 支持乱序传输
       * 允许容易的添加寄存器级来进行时序收敛

2 AXI架构
AXI协议是基于突发burst的传输,并且定义了以下5个独立的传输通道:读地址通道、读数据通道、写地址通道、写数据通道、写响应通道。地址通道携带控制消息用于描述被传输的数据属性,数据传输使用写通道来实现“主”到“从”的传输,“从”使用写响应通道来完成一次写传输;读通道用来实现数据从“从”到“主”的传输。
图 1-1 读架构

图 1-2 写架构

AXI是基于VALID/READY的握手机制数据传输协议,传输源端使用VALID表明地址/控制信号、数据是有效的,目的端使用READY表明自己能够接受信息。
       * 读/写地址通道:读、写传输每个都有自己的地址通道,对应的地址通道承载着对应传输的地址控制信息。
       * 读数据通道:读数据通道承载着读数据和读响应信号包括数据总线和指示读传输完成的读响应信号。
       * 写数据通道:写数据通道的数据信息被认为是缓冲(buffered)了的,“主”无需等待“从”对上次写传输的确认即可发起一次新的写传输。写通道包括数据总线(8/16...1024bit)和字节线(用于指示8bit 数据信号的有效性)。
       * 写响应通道:“从”使用写响应通道对写传输进行响应。所有的写传输需要写响应通道的完成信号。

图 1-3 接口与互联

AXI协议提供单一的接口定义,能用在下述三种接口之间:master/interconnect、slave/interconnect、master/slave。可以使用以下几种典型的系统拓扑架构:
       * 共享地址与数据总线
       * 共享地址总线,多数据总线
       * multilayer多层,多地址总线,多数据总线
在大多数系统中,地址通道的带宽要求没有数据通道高,因此可以使用共享地址总线,多数据总线结构来对系统性能和互联复杂度进行平衡。

寄存器片(Register Slices):每个AXI通道使用单一方向传输信息,并且各个通道直接没有任何固定关系。因此可以可以在任何通道任何点插入寄存器片,当然这会导致额外的周期延迟。使用寄存器片可以实现周期延迟(cycles of latency)和最大操作频率的折中;使用寄存器片可以分割低速外设的长路径

总结:

参见:
“https://blog.csdn.net/ivy_reny/article/details/56274412”
“http://www.cnblogs.com/lkiller/p/4773235.html”

AMBA、AHB、APB、AXI总线相关推荐

  1. AMBA 系列之 AXI 总线协议

    目录 0.绪论 1.简介 1.1 AXI协议特点 1.2 AXI 读写架构 1.3 接口和互联 1.4 复位 2. 信号描述 2.1 全局信号 2.2 写地址通道信号 2.3 写数据通道信号 2.4 ...

  2. AMBA 系列之 AXI 总线协议初探

    目录 0.绪论 1.简介 1.1 AXI协议特点 1.2 AXI 读写架构 1.3 接口和互联 1.4 复位 2. 信号描述 2.1 全局信号 2.2 写地址通道信号 2.3 写数据通道信号 2.4 ...

  3. 深度解读AMBA、AHB、APB、AXI总线

    什么是AMBA? 现如今,集成电路芯片的规模越来越大.数字IC从基于时序驱动的设计方法,发展到基于IP复用的设计方法,并在SoC设计中得到了广泛应用.在基于IP复用的SoC设计中,片上总线设计是最关键 ...

  4. AMBA:AXI/AHB/APB学习笔记

    AMBA.AXI.AHB.APB学习笔记 AMBA总线:各模块之间的连接 AHB 特性: 组成部分: AXI APB AMBA总线:各模块之间的连接 advanced microcontroller ...

  5. 浅析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 ...

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

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

  7. AMBA AHB总线协议详细说明(AHB5协议)

    一. AHB总线介绍 AHB总线用于性能要求较高的系统互连,比如内部memory.高带宽的外设.GMAC.eMMC/SD等,其仍然为分时独占式总线,也就是说一个时间点总线只会完成一个传输事件.下图是一 ...

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

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

  9. AXI总线技术简介——ZYNQ PS和PL的互联技术

    AXI总线技术简介--ZYNQ PS和PL的互联技术 1.AXI总线介绍 2.AXI协议通道介绍 3.ZYNQ芯片内部的AXI总线 4.常用AXI接口IP介绍 5. 多个AXI接口互联交互 1.AXI ...

  10. AXI总线核心解读---基于官方文档

    AXI总线 何处使用AXI ZYNQ异构芯片,内部总线使用的AXI总线 纯FPGA的IP接口也要用 高速接口,DDR(AXI.传统)等模块都有涉及到 什么是AXI总线 AXI的三种形式: AXI-FU ...

最新文章

  1. vrp车辆路径问题 php,蚁群算法在车辆路径问题(VRP)中的应用.ppt
  2. 找到所有小于N的素数
  3. samba服务的搭建
  4. BZOJ.2738.矩阵乘法(整体二分 二维树状数组)
  5. oracle中触发器的语法,Oracle 触发器语法及实例
  6. 蓝牙耳机自动接听软件_使用蓝牙耳机接听Skype呼叫
  7. Qt Designer怎样加入资源文件
  8. Python基础应用-摄氏温度换算
  9. WPS中设置一级、二级、三级标题以及正文和目录
  10. C#查看打印机状态(缺纸)
  11. 泊松分布(一种离散分布)
  12. 段式存储、页式存储及段页式存 详解
  13. 第四讲 比值、根值和积分审敛法
  14. 阿里云Linux服务器部署JDK8实战教程
  15. 实现Vibrator测试功能,短震动,长震动,频率震动,取消震动
  16. 多任务学习(MTL)--学习笔记
  17. Unity实战之牧师与魔鬼(动作分离版)
  18. “35岁危机”不再,算法岗应届生平均月薪超3.2万,人工智能行业掀抢人大战!...
  19. 【啃书】《智能优化算法及其MATLAB实例》例9.3运用BP网络预测数据
  20. 最近成了叨客 - 注册了饭否,叽歪网

热门文章

  1. java--Hibernate添加数据save
  2. linux 定时执行shell脚本 定时任务
  3. Start – Modern minimalist OpenCart 2.X 自适应主题模板 ABC
  4. Android应用性能优化之使用SparseArray替代HashMap(转)
  5. github上关于机器学习的awesome项目(资源大全)
  6. 【通信原理】【实验】实验三: 数字调制解调实验2ASK--2FSK--2PSK思路(GZHU)
  7. 【tensorflow】tf-tf.where(condition, x, y, name)
  8. telnet 以及 win10 开放端口
  9. linux fedora kde桌面设置全局显示字体大小
  10. Go gin其他数据类型渲染