2021-2027全球与中国语音生物识别解决方案市场调研及可行性研究报告

python 面向对象的初识

  返回  

AMBA总线概述——AHB、APB、AXI

2021/8/21 17:04:58 浏览:

参考: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-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信号拉高后再拉高,否则容易产生死锁现象。

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号