参考:https://blog.csdn.net/burningCky/article/details/109630018

https://blog.csdn.net/bleauchat/article/details/96891619?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162951776716780262570363%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162951776716780262570363&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-2-96891619.first_rank_v2_pc_rank_v29&utm_term=AXI&spm=1018.2226.3001.4187

一、AMBA概述

概念:

AMBA (Advanced Microcontroller Bus Architecture) 高级处理器总线架构

AHB (Advanced High-performance Bus) 高级高性能总线

ASB (Advanced System Bus) 高级系统总线

APB (Advanced Peripheral Bus) 高级外围总线

AXI (Advanced eXtensible Interface) 高级可拓展接口

适用场景:

AHB主要是针对高效率、高频宽及快速系统模块所设计的总线,它可以连接如微处理器、芯片上或芯片外的内存模块和DMA等高效率模块。

APB主要用在低速且低功率的外围,可针对外围设备作功率消耗及复杂接口的最佳化。 APB在AHB和低带宽的外围设备之间提供了通信的桥梁,所以APB是AHB或ASB的二级拓展总线。

AXI:高速度、高带宽,管道化互联,单向通道,只需要首地址,读写并行,支持乱序,支持非对齐操作,有效支持初始延迟较高的外设,连线非常多。

二、AHB总线

Master:能够发起读写操作,提供地址和控制信号,同一时间只有1个Master会被激活。

Slave:在给定的地址范围内对读写操作作响应,并对Master返回成功、失败或者等待等状态。

Arbiter:负责保证总线上一次只有1个Master在工作。仲裁协议是规定的,但是仲裁算法可以根据应用决定。

Decoder:负责对地址进行解码,并提供片选信号到各Slave。

每个AHB都需要1个仲裁器和1个中央解码器。

AHB基本信号

HADDR:32位系统地址总线

HTRANS:M指示传输状态,NONSEQ、SEQ、IDLE、BUSY

HWRITE:传输方向1-写,0-读

HSIZE:传输单位

HBURST:传输的burst类型

HWDATA:写数据总线,从M写到S

HREADY:S应答M是否读写操作传输完成,1-传输完成,0-需延长传输周期。需要注意的是HREADY作为总线上的信号,它是M和S的输入;同时每个S需要输出自HREADY。所以对于S会有两个HREADY信号,一个来自总线的输入,一个自己给到多路器的输出。

HRESP:S应答当前传输状态,OKAY、ERROR、RETRY、SPLIT。

HRDATA:读数据总线,从S读到M。

AHB基本传输

两个阶段

地址周期(AP),只有一个cycle

数据周期(DP),由HREADY信号决定需要几个cycle

流水线传送

先是地址周期,然后是数据周期

AHB突发传输与AXI突发传输的特点

AHB协议需要一次突发传输的所有地址,地址与数据锁定对应关系,后一次突发传输必须在前次传输完成才能进行。

AXI只需要一次突发的首地址,可以连续发送多个突发传输首地址而无需等待前次突发传输完成,并且多个数据可以交错传递,此特征大大提高了总线的利用率。

AHB总线与AXI总线均适用于高性能、高带宽的SoC系统,但AXI具有更好的灵活性,而且能够读写通道并行发送,互不影响;更重要的是,AXI总线支持乱序传输,能够有效地利用总线的带宽,平衡内部系统。因此SoC系统中,均以AXI总线为主总线,通过桥连接AHB总线与APB总线,这样能够增加SoC系统的灵活性,更加合理地把不同特征IP分配到总线上。

三、APB总线

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

1.1、介绍

APB是AMBA 3协议系列的一部分。 它提供了一种低成本接口,该接口经过了优化,可最大程度降低功耗并降低接口复杂性。 APB可以连接到任何低带宽且不需要流水线总线接口的高性能的外围设备。 APB是非流水线协议。

所有信号跳变仅与时钟的上升沿相关,从而能够将APB外设轻松集成到任何设计流程中。 每次传输至少需要两个周期。

APB协议的特点:

低成本
低功耗
低带宽
无流水线
所有信号都是时钟上升沿有效
进行一次数据传输至少需要两个周期

1.2、APB信号列表

APB协议里面就是说的怎么进行数据传输,首先协议里面定义了很多端口,我们先来看看APB2协议里这些端口的定义。

##1.3、 APB传输时序

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

1、系统初始化为IDLE状态,此时没有传输操作,也没有选中任何从模块。

2、当有传输要进行时,PSELx=1,,PENABLE=0,系统进入SETUP状态,并只会在SETUP状态停留一个周期。当PCLK的下一个上升沿到来时,系统进入ENABLE状态。

3、系统进入ENABLE状态时,维持之前在SETUP状态的PADDR、PSEL、PWRITE不变,并将PENABLE置为1。传输也只会在ENABLE状态维持一个周期,在经过SETUP与ENABLE状态之后就已完成。之后如果没有传输要进行,就进入IDLE状态等待;如果有连续的传输,则进入SETUP状态。

读操作

接下来我们进入主题,研究下APB是具体怎么规定读操作的:master从slave读取数据

从这张图我们看出几点:

  • 所有的数据都是在PCLK上升沿跳变的
  • T0-T1:初始状态,准备开始数据传输
  • T1时刻:master向总线上发送了地址,这个地址是slave的地址;并且把PWRITE拉低,说明这次数据传输是一次读数据。PSEL拉高,APB协议里可能是有一个master,多个slave,当PADDR将地址发到总线上后,PSEL选择哪一个slave也就定了。
  • T1-T2时刻:保持现状不变,这个时候slave收到了mater的地址,读写控制,salve得知自己要讲这个地址对应的数据发送到master,所以它会做好准备。
  • T3时刻:PENABLE也就是使能信号拉高,这个时候也就是master通知slave进行PRDATA的传输

总结一下:一开始我们就说到,APB数据传输至少需要两个周期,也就是T1-T3。其实很简单,第一个周期做准备工作(把PADDR,PWRITE,PSEL发送到总线),第二个周期进行传输读或写的data(PENABLE拉高,表面当前时刻,数据有效,是master想要的数据!)

要特别注意的是,在 T3 后,也就是在进入 ENABLE 周期后,APB 从必须要将 M 所要读取的数据准备好,以便 M 可以在 ENABLE 周期末被 T4 正时钟沿触发时正确的将数据读取。

写操作

我们看看写操作,和读操作很类似

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

四、AXI总线

AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA3.0中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。AMBA4.0将其修改升级为AXI4.0。

AXI总线分类

AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-stream。

  • AXI4:高性能存储映射接口,支持长度最大256的突发传输,突传时仅需指定一个目的地址;
  • AXI4-Lite:简化版的AXI4,属于存储映射接口,用于较少数据量的存储映射通信;
  • AXI4-Stream:用于高速数据流传输,非存储映射接口,数据传输时不需要指定地址,突发长度不受限制。

AXI协议特点

AMBA AXI协议支持支持高性能、高频率系统设计。

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

关键特点

(1)分离的地址/控制、数据相位
(2)使用字节选通,支持非对齐的数据传输
(3)基于burst传输,只需传输首地址
(4)读、写数据通道分离,能提供低功耗DMA
(5)支持多种寻址方式
(6)支持乱序传输
(7)易于添加寄存器级来进行时序收敛

AXI读写架构

AXI协议是基于burst的传输,并且定义了以下5个独立的传输通道:读地址通道、读数据通道、写地址通道、写数据通道、写响应通道。每一个独立的通道都包含一组信息信号、VALID信号和READY信号,用于提供双向的握手机制。

  • 读/写地址通道:读、写传输每个都有自己的地址通道,对应的地址通道承载着对应传输的地址控制信息。
  • 读数据通道和写数据通道都包含一个LAST信号,用于表示传输的最后一个数据。读数据通道和写数据通道都包含各自的地址通道,地址通道携带了请求所需的地址和信息。
  • 读数据通道:读数据通道由从机发送给主机,包含了读数据和读响应的信息,读响应的信号用于表示读传输是否操作完成。
  • 写数据通道:写数据通道由主机发送给从机,包含了写数据,然后通过WSTRB信号表示当前数据的哪个字节有效。
  • 写响应通道:slave使用写响应通道对写传输进行响应。所有的写传输需要写响应通道的完成信号。

图1-1 读架构

图1-2 写架构

握手机制

所有的五个通道都是通过相同的VALID/READY握手处理来传输地址、数据和控制信息
双向握手的机制意味着主机和从机之间传输数据时,都可以控制传输的速率

只有当VALID和READY同时为高电平时,传输才会发生。

  • 信息源端使用VALID信号表示当前通道地址、数据和控制信息什么时候有效,
  • 目的端使用READY信号表示什么时候可以接收信息。


VALID和READY的先后关系具有三种情况:

  • VALID先有效,等待READY有效后完成传输(VALID一旦有效后在传输完成前不可取消)
  • READY先有效,等待VALID有效后完成传输(READY可以在VALID有效前撤销)
  • VALID和READY同时有效,立刻完成传输

此外,需要注意的是允许READY信号等待VALID信号再有效,即即使从机准备好,也可以不提供READY信号,等到主机发送VALID信号再提供READY信号。对应的VALID信号不允许等待READY信号,即不允许VALID等待READY信号拉高后再拉高,否则容易产生死锁现象。

总线接口介绍

  • AXI4 总线和 AXI4-Lite 总线具有相同的组成部分:
    (1)读地址通道,包含 ARVALID, ARADDR, ARREADY 信号。
    (2)写地址通道,包含 AWVALID,AWADDR, AWREADY 信号。
    (3)读数据通道,包含 RVALID, RDATA, RREADY, RRESP 信号。
    (4)写数据通道,包含 WVALID, WDATA,WSTRB, WREADY 信号。
    (5)应答通道,包含 BVALID, BRESP, BREADY 信号。
    (6)系统通道,包含:ACLK,ARESETN 信号。

  • AXI4-Stream 总线的组成:
    (1)ACLK 信号:总线时钟,上升沿有效。
    (2)ARESETN 信号:总线复位,低电平有效。
    (3)TREADY 信号:从机告诉主机做好传输准备。
    (4)TDATA 信号:数据,可选宽度 32,64,128,256bit。
    (5)TSTRB 信号:每一 bit 对应 TDATA 的一个有效字节,宽度为 TDATA/8。
    (6)TLAST 信号:主机告诉从机该次传输为突发传输的结尾。
    (7)TVALID 信号:主机告诉从机数据本次传输有效。
    (8)TUSER 信号 :用户定义信号,宽度为 128bit。

五、ZYNQ与AXI4

ZYNQ的外部总线接口

  • ZYNQ支持AXI4-Lite,AXI4和AXI4-Stream三种总线协议,但PS和PL之间的接口(AXI-GP、AXI-HP、AXI-ACP)只支持AXI4和AXI4-Lite这两种协议。因此AXI4-Stream与它们互联时,需要进行协议转换。

  • ZYNQ 有 ARM+FPGA的架构,它们之间通过3种AXI4总线进行通信。
    (1)AXI-GP接口(4 个):是通用的 AXI 接口,包括两个 32 位主设备接口和两个 32 位从设备接口,使用该接口可以访问 PS 中的片内外设。
    (2)AXI-HP接口(4 个):是高性能带宽的标准的接口,PL 模块作为主设备连接(从下图中箭头可以看出)。主要用于 PL 访问 PS 上的存储器(DDR和OCM)。
    (3)AXI-ACP接口(1 个):是 ARM 多核架构下定义的一种接口,用来管理 DMA之类的不带缓存的 AXI 外设,PS 端是 Slave 接口。

AMBA总线概述——AHB、APB、AXI相关推荐

  1. AMBA总线协议AHB、APB、AXI对比分析

    一.AMBA概述 AMBA (Advanced Microcontroller Bus Architecture) 高级处理器总线架构 AHB (Advanced High-performance B ...

  2. AMBA总线协议AHB、APB

    一.什么是AMBA总线 AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计采用,它规定了AHB (Advanced High-performance Bus).ASB (Advanced ...

  3. AMBA总线协议 之 APB总线协议

    AMBA总线协议概念: AMBA(Advanced Microcontroller Bus Architecture) 总线是由ARM公司提出的一种开放性的片上总线标准,它独立于处理器和工艺技术,具有 ...

  4. 【手撕AHB-APB Bridge】~ AMBA总线 之 AHB

    本章目录: 一. 引入 二. AHB总览 1. AHB的组成部分 2. AHB的信号 3. AHB传输的两个阶段 4. AHB的传输 4.1 AHB的基本传输 4.2 AHB的Pipeline传输 4 ...

  5. AMBA总线协议-ahb总线互联结构结合协议的理解

    总线互联结构(以4*4的总线互联结构为例,其中对于master来说优先级3>2>0>1 ,其中2是dummy master,1是defalult master):1.结构中最多可以有 ...

  6. AMBA总线协议(包含AHB与APB)

    文章目录 一.AMBA总线概述 二. AHB协议 2.1 AHB组成 2.2 AHB基本信号 2.3 AHB传输 2.3.1 AHB一次无需等待状态的简单传输 2.3.2 AHB需要两个等待周期的简单 ...

  7. 【手撕AHB-APB Bridge】~ AMBA总线 之 APB

    本章目录: 前言 一. 引入 二. APB总览 1. APB信号 2. APB的读写时序图 2.1 APB写操作的时序图 2.2 APB读操作的时序图 三. 地址映射关系 四.实现方式 五. 数据流向 ...

  8. AMBA总线协议的学习-AHB,ASB,APB三种总线以及AXI接口

    一.AMBA概述 AMBA (Advanced Microcontroller Bus Architecture) 高级处理器总线架构 AHB (Advanced High-performance B ...

  9. AHB、APB、AXI三种协议对比分析(AMBA总线)

    一.AMBA概述  AMBA (Advanced Microcontroller Bus Architecture) 高级处理器总线架构  AHB (Advanced High-performance ...

最新文章

  1. 如何给你的web项目加入log4net支持
  2. 第19天学习Java的笔记-String字符串
  3. 五笔常用字、难拆字 拆解图文版
  4. SQL Server 2012 无人值守安装(加入新实例)
  5. 每日一“酷”之string
  6. visualboyadvance滤镜_研究VisualBoyAdvance的请进
  7. 微信公众号H5网页调用微信支付
  8. 解决“虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本”的问题。
  9. python简单代码解决生活小问题①
  10. 视频教程-C/C++黑客编程入门教学视频-C/C++
  11. 把多个EXCEL文件汇总到一个EXCEL中
  12. python如何编写温度转换_用python写温度转换
  13. 如何在windows开启UAC(用户账号控制)的情况下优雅的管理程序的权限申请方案(一)
  14. php工具能自动出代码的,打造自己的PHP半自动化代码审计工具
  15. 网易滑块识别-通用滑块识别
  16. Vue最常见的面试题以及答案
  17. Day8--复数和复变函数之拉普拉斯变换及反变换和Z变换及反变换
  18. 14 EXCEL仪表盘制作1
  19. Deep Feedback Network for Recommendation用于推荐系统的深度反馈网络
  20. 上手体验华为AI平台ModelArts

热门文章

  1. ubuntu 命令行卸载并清理软件(卸载的很干净)
  2. html时间戳转日期
  3. mysql between and 日期
  4. ciscn_2019_n_7(exit_hook)、wdb_2018_1st_babyheap(fsop的例子)
  5. WPS文字表格外计算功能配合书签使用公式轻松实现
  6. 警惕,新增1本,被剔除1本,最新12月SCIE SSCI期刊目录更新
  7. C sort 排序函数用法
  8. 如何在计算机中打开显卡,windows系统如何打开显卡的硬件加速呢?
  9. ARM GICv3中断控制器
  10. 006输出9行内容,第1行输出1,第2行输出12,第3行输出123,以此类推,第9行输出123456789。