AMBA总线协议(1)——概述

目录

一、AMBA总线简介

[二、基于AMBA 的典型微控制器](#二、基于AMBA 的典型微控制器)

三、AHB介绍

1、概述

2、典型结构

[(1) AHB 主机(AHB Master)](#(1) AHB 主机(AHB Master))

[(2)AHB 从机(AHB Slave)](#(2)AHB 从机(AHB Slave))

[(3)AHB 仲裁器(AHB Arbiter)](#(3)AHB 仲裁器(AHB Arbiter))

[(4)AHB 译码器(AHB Decoder)](#(4)AHB 译码器(AHB Decoder))

四、APB介绍

1、概述

2、典型结构

五、AXI介绍

1、概述

2、AXI接口的三种类型

3、AXI的工作方式

4、握手机制

六、小结

一、AMBA总线简介

Arm高级微控制器总线架构(Advanced Microcontroller Bus Architecture,AMBA)是一种开放式标准片上互联规范,用于连接和管理片上系统(System on Chip,Soc)中的功能块。

AMBA是一种广泛用于Soc设计的架构,可在芯片总线中找到。AMBA规范标准用于设计高级嵌入式微控制器。AMBA的主要目的是提供技术独立性并鼓励模块化系统设计。更进一步说,它强烈鼓励开发可重复使用的外设,同时最大限度地减少硅基础设备。

简而言之,它是鼓励每个人用来在其芯片中将块连接在一起的接口。

下表有AMBA的7个主要的接口及其相关说明

|---------------|---------------------------|----------------------------------|
| 接口名字 | 功能 | 相关处理器 |
| 高级系统总线(ASB) | 现在过时了,不用管 | ------ |
| 高级外设总线(APB) | 简单,容易,用于外设 | ------ |
| 高级高性能总线(AHB) | 在Cortex-M设计中用得很多 | Cortex-M系列 |
| 高级可拓展接口(AXI) | 最普遍,现在到了AXI4 | Cortex-A、Cortex-R |
| 高级跟踪总线(ATB) | 用于在芯片周围移动跟踪数据 | ------ |
| AXI一致性拓展(ACE) | 用于智能手机,平板电脑等的big.LITTLE系统 | Cortex-A15、Cortex-A17、Cortex-A7 |
| 相关集线器接口(CHI) | 最高性能,用于网络与服务器 | Cortex-A72、Cortex-A57、Cortex-A53 |

这里我们主要关注的是APB,AHB和AXI接口。

二、基于AMBA 的典型微控制器

基于AMBA的微控制器典型地由一个高性能系统中枢总线(AMBA AHB或者AMBA ASB)组成,能够支持外部存储器带宽,包括CPU,片上存储器和其他直接数据存取(DMA)设备。这条总线为上述单元之间大多数的传输提供高带宽接口。在这条高性能总线上也有一个桥接器以连接低带宽的APB,而在APB上连接着大多数的系统外设 。AMBA APB 作为主总线高性能通道的二级总线,提供基本外设宏单元之间的通信接口。

三、AHB介绍

1、概述

AHB是高性能高时钟频率的系统模块,是系统的主干,它直接链接了CPU,片上内存,DMA和外部内存接口。AHB分为主和从两端,它支持多个主的链接,例如CPU,DSP和DMA等,并能进行高带宽的操作。

AHB 总线可以包含多个主设备: 通常有 CPU,测试接口,DMA 或者 DSP。

AHB 的从设备通常包括:外挂内存接口,APB 桥,内部 RAM。其它一些外围设备通常也能作为从设备。但是低带宽的外围设备通常挂在 APB 上。

2、典型结构

典型的 AMBA AHB 系统设计包含以下的成分:

(1) AHB 主机(AHB Master**)**

总线主机能够通过提供地址和控制信息发起读写操作。任何时候只允许一个总线主机处于有效状态并能使用总线。

(2)AHB 从机(AHB Slave**)**

总线从机在给定的地址空间范围内响应读写操作。总线从机将成功、失败或者等待数据传输的信号返回给有效的主机。

(3)AHB 仲裁器(AHB Arbiter**)**

总线仲裁器确保每次只有一个总线主机被允许发起数据传输。即使仲裁协议已经固定,任何一种仲裁算法,比如最高优先级或者公平访问都能够根据应用要求而得到执行。 AHB 必须只包含一个仲裁器,尽管在单总线主机系统中这显得并不重要。

(4)AHB 译码器(AHB Decoder**)**

AHB 译码器用来对每次传输进行地址译码并且在传输中包含一个从机选择信号.所有 AHB 执行都必须仅要求有一个中央译码器。

四、APB介绍

1、概述

AMBA APB 表现为一个局部二级总线,封装为****AHB 或者 ASB 的一个外设。作为 AMBA 总线的一层,APB 总线是为了功耗最小化和减低接口复杂度而设计的。APB 总线应该用于低带宽和不需要高性能流水线总线接口的外设。APB 总线上的所有信号都在正时钟沿发生变化,这个特性决定了 APB 可以更容易地整合到各种设计流程里。

2、典型结构

典型的 AMBA APB 工具包含单个 APB 桥,需要它来将 AHB 或者 ASB 传输转变成适合于 APB 从设备的形式。APB 桥提供所有地址、数据和控制信号的锁存,也提供一个二级译码以产生 APB 外设的从机选择信号。所有 APB 模块均是 APB 从机。

五、AXI介绍

1、概述

AXI(高级可扩展接口),是ARM AMBA的一部分,是一种面向高性能、高带宽、低延迟的片内总线。它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持显著传输访问和乱序访问,并更加容易就行时序收敛。AXI 是 AMBA 中一个新的高性能协议。AXI 技术丰富了现有的 AMBA 标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。

2、AXI接口的三种类型

(1)AXI4(AXI4-Full):用于高性能的存储映射需求

(2)AXI4-Lite:简化版的AXI4接口,用于低吞吐率存储映射的通信

(3)AXI4-Stream(ST):用于高速的流数据通信

3、AXI的工作方式

AXI4和AXI4-Lite包含5个独立的通道:

(1)读地址通道

(2)读数据通道

(3)写地址通道

(4)写数据通道

(5)写响应通道

每一个独立的通道都包含一组信息信号:VALID信号和READY信号,用于提供双向的握手机制。

信息的源端使用VALID信号表示当前通道地址、数据和控制信息什么什么时候有效,目的端使用READY信号表示什么时候可以接受信息,读数据通道和写数据通道都包含一个LAST信号,用来表示传输的最后一个数据。

读数据通道和写数据通道都包含各自的地址通道,地址通道携带了请求所需的地址和信息。

读数据通道由从机发送给主机,包含了读数据和读响应的信息,读响应的信号用于表示读数据是否操作完成。

写数据通道由主机发送给从机,包含了写数据,然后通过WSTRB信号表示当前数据的哪个字节有效。

写响应通道由从机发送给主机,包含了写响应信号,用于表示当前写操作是否完成。

4、握手机制

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

六、小结

本文是对于AMBA总线的一个简单概述,我们主要关注的是其中的AHB,APB,AXI协议,很多概念在本文中只是简单的涉及,没有进行具体展开,所有读者可能有些部分无法理解,这是正常的,随着学习的深入我们会对于细节逐渐展开,在这里我们首先要明确AHB是高性能总线,用于CPU等高性能系统,APB可以理解成AHB的一个外设,作为局部二级总线存在。AXI经常用于外设的拓展使用。

相关推荐
drinow7 小时前
【纸飞机串口调试工具】预设曲线名称
arm开发·驱动开发·单片机·mcu·dsp开发·fpga·iot
fei_sun15 小时前
【Verilog】第三章作业
fpga开发·verilog
hexiaoyan82715 小时前
FMCJ456-14bit 2通道3/2.6/2GS/s ADC +16bit 2通道12.6GS/s DAC FMC AD/DA子卡
fpga开发·fmc子卡·软件无线电·异构加速服务器·fmc子板·ad da子卡
ThreeYear_s17 小时前
FPGA学习-FFT变换-解决频率低信号进行FFT运算的取点问题
学习·fpga开发
Water_Sounds19 小时前
【FPGA开发】Vivado自定义封装IP核,绑定总线
fpga开发
FPGA_Linuxer20 小时前
基于RFSOC实现LFMCW雷达测距测速
fpga开发
skaiuijing1 天前
Sparrow系列拓展篇:消息队列和互斥锁等IPC机制的设计
c语言·开发语言·算法·操作系统·arm
今朝无言1 天前
Tri Mode Ethernet MAC IP核详解
网络·网络协议·tcp/ip·fpga开发
水饺编程1 天前
【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-32
linux·嵌入式硬件·fpga开发·硬件架构
北京太速科技股份有限公司1 天前
太速科技-232-基于FMC的2收2发TLK2711子卡
科技·fpga开发