AMBA、AHB、APB、AXI总线介绍及对比

news2025/1/20 19:14:13

link

一、AMBA概述

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

定义了高性能嵌入式微控制器的通信标准,可以将RISC处理器(精简指令集处理器)集成在其他IP芯核和外设中,它是有效连接IP核的“数字胶”,并且是ARM复用策略的重要组件;它不是芯片与外设之间的接口,而是ARM内核与芯片上其他元件进行通信的接口。比如Xilinx公司的Zynq芯片,就是ARM与FPGA之间的连接通路 .主要包括:

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

ASB (Advanced System Bus) 高级系统总线----用的很少

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

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

这些内容加起来就定义出一套为了高性能SoC而设计的片上通信的标准;

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

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

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

几种AMBA总线的性能对比分析:



AHB与AXI、APB的区别与联系

AHB是先进的高性能总线,AXI是先进的可扩展接口,APB是高级外围总线;

AHB和APB都是单通道总线,不支持读写并行;而AXI是多通道总线,总共分为五个通道,能够实现读写并行;

AHB和AXI都是多主/从设备,且通过仲裁机制实现总线控制权的分配;而APB是单主设备多从设备,其主设备就是APB桥,不具有仲裁机制;

在数据操作方面,AHB和AXI支持突发传输,APB不支持;此外,AXI支持数据的非对齐操作,AHB不支持;

二、AHB总线

AHB总线强大之处在于它可以将微控制器(CPU)、高带宽的片上RAM、高带宽的外部存储器接口、DMA总线控制器,以及各种AHB接口的控制器等连接起来构成一个独立的完整SOC系统,还可以通过AHB-APB桥来连接APB总线系统。主要包括以下四个部分:

Master AHB主控制器:主控制器可以通过地址和控制信息,可以进行初始化,读,写操作,同一时间只有1个Master会被激活;

Slave AHB从设备:从设备通常是指在其地址空间内,响应主控制器发出的读写控制操作的被动设备,并对Master返回成功、失败或者等待等状态,完成数据的传输控制;

Arbiter AHB仲裁器:仲裁器根据用户的配置,确保在总线上同一时间只有一个主控制器拥有总线控制权限,从而保证总线上一次只有1个Master在工作;AHB总线只能存在一个仲裁器;

Decoder AHB译码器:负责对地址进行解码,并提供片选信号到各Slave;AHB总线只能有一个译码器;

每个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总线

APB是一种优化的,低功耗的,精简接口总线,可以技术多种不同慢速外设;主要应用在低带宽的外设上,如UART、 I2C,它的架构不像AHB总线是多主设备的架构,APB总线的唯一主设备是APB桥(与AXI或APB相连),因此不需要仲裁一些Request/grant信号。

APB总线协议包含一个APB桥,它用来将AHB,ASB总线上的控制信号转化为APB从设备控制器上可用信号。APB总线上所有的外设都是从设备,这些从设备有以下特点:
a 接收有效的地址和控制访问
b 当APB上的外设处于非活动状态时,可以将这些外设处于0功耗状态
c 译码器可以通过选通信号,提供输出时序(非锁定接口)
d 访问时可执行数据写入

APB的协议也十分简单,甚至不是流水的操作,固定两个时钟周期完成一次读或写的操作。其特性包括:两个时钟周期传输,无需等待周期和回应信号,控制逻辑简单,只有四个控制信号。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状态;



  • 写传输
  • 读传输



四、ASB总线

ASB总线主要用于高性能系统模块。ASB是可用于AHB不需要的高性能特性的芯片设计上可选的系统总线。ASB也支持高性能处理器,片上内存,片外内存提供接口和慢速外设。高性能,数据传输,多总线主控制器,突发连续传输。ASB总线是位于APB总线架构之上的用于高性能的总线协议,它有如下特点:
a 突发连续传输
b 单管道数据传输
c 多总线主控制器

五、基于AMBA的片上系统



大多数挂在总线上的模块(包括处理器)只是单一属性的功能模块:主模块或者从模块。主模块是向从模块发出读写操作的模块,如CPU,DSP等;从模块是接受命令并做出反应的模块,如片上的RAM,AHB/APB 桥等。另外,还有一些模块同时具有两种属性,例如直接存储器存取(DMA)在被编程时是从模块,但在系统读传输数据时必须是主模块。

  如果总线上存在多个主模块,就需要仲裁器来决定如何控制各种主模块对总线的访问。虽然仲裁规范是AMBA总线规范中的一部分,但具体使用的算法由RTL设计工程师决定,其中两个最常用的算法是固定优先级算法和循环制算法。AHB总线上最多可以有16个主模块和任意多个从模块,如果主模块数目大于16,则需再加一层结构(具体参阅ARM公司推出的Multi-layer AHB规范)。

  APB 桥既是APB总线上唯一的主模块,也是AHB系统总线上的从模块。其主要功能是锁存来自AHB系统总线的地址、数据和控制信号,并提供二级译码以产生APB外围设备的选择信号,从而实现AHB协议到APB协议的转换。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/105915.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

或许是市面上最强的 Mock 工具

背景 在开发过程中,由于后端与前端并行开发,或者前端需要等待后台开发,难以保证对接效率,同时即使用开发好的 API 对接,也有可能一个 API 不通就阻塞了整个软件的对接工作。同时对软件的敏感度也很高,一不…

冯·诺依曼:计算机硬件与软件Computer

计算机硬件与软件 计算机(Computer):俗称电脑,是一种能接收和存储信息,并按照存储在其内部的程序对海量数据进行自动、高速地处理,然后把处理结果输出的现代化智能电子设备 冯诺依曼体系结构: …

cubeIDE开发, STM32移植GuiLite图形库开发要点

一、GuiLite GuiLite图形库,仅4千行C代码,0依赖,单一头文件库(GuiLite.h)的跨平台开源GUI库,支持支持的操作系统有iOS/macOS/WatchOS,Android,Linux(ARM/x86-64&a…

Filter过滤器 | 过滤器的使用以及实现原理、责任链设计模式改造oa项目

目录 一:过滤器的使用以及实现原理 (1)当前的oa项目还存在什么缺陷? (2)Filter是什么,有什么用,执行原理是什么? (3)过滤器怎么写&#xff1f…

蓝桥杯:作物杂交 (DFS)

目录 题目描述 输入描述 输出描述 输入输出样例 输入 输出 样例说明 思路(DFS): AC代码(Java): 题目链接 题目描述 作物杂交是作物栽培中重要的一步。已知有 N种作物 (编号 1 至 N ),第…

[第十二届蓝桥杯/java/算法]B——空间

🧑‍🎓个人介绍:大二软件生,现学JAVA、Linux、MySQL、算法 💻博客主页:渡过晚枫渡过晚枫 👓系列专栏:[编程神域 C语言],[java/初学者],[蓝桥杯] &#x1f4d6…

python爬虫技术如何挣钱?教你爬虫月入三万!

前言 爬虫技术挣钱方法1:接外包爬虫项目 这是网络爬虫最通常的的挣钱方式,通过外包网站,熟人关系接一个个中小规模的爬虫项目,一般向甲方提供数据抓取,数据结构化,数据清洗等服务。 各位新入行的猿人看官大多都会先尝…

SpringBoot中的Aop用法

目录什么是AopAop概述相关注解相关概念实例1PointCut 表达式详解executionwithinthistargetargs:annotation:args:逻辑运算符实例2环绕通知什么是Aop 主要介绍springboot中aop的使用,用过Spring框架的都知道,aop是spring框架的两大核心功能之一&#xf…

「实操」适配 NebulaGraph 新版本与压测实践

本文来自邦盛科技-知识图谱团队-繁凡,本文以 NebulaGraph v3.1.0 为例。 前言 NebulaGraph v3.1 版本已经发布有一段时间了,但是我们的项目之前是基于 v2.6.1 版本开发的,由于一直在做功能相关的工作,所以一直没有对图库进行升级…

一个简单的步骤让你的 Python 代码更干净

说起来容易做起来难,我们都知道代码可读性非常重要,但是写的时候总是随心所欲,不考虑类型提示、import 排序、PEP8 规范。今天分享一个小技巧,通过一个简单的步骤就可以让你的 Python 代码更干净。 这就是 pre-commit&#xff1a…

pyQt5和pySide2 环境配置以及部分问题解决方案

首先介绍需要安装的内容: 1、Qt 2、python3.7.5(查找资料过程中有注意到说是3.8及3.8以上版本Qt可能不兼容)【记得勾选添加到环境变量中选项】 3、pip(主要用来下载使用) 4、pySide2、PyQt5、pyqt5-tools 5、如果有使…

vue 前端国际化方案

方案介绍: 1.使用i18n(使用步骤可百度,要注意版本问题) 2.整合ele-ui的国际化方案(百度,几行添加一下即可) 3.数据信息的配置(重头戏,以下详细介绍)excel转j…

中科院高分区盘点:1区新刊,影响因子即将突破7分(含IEEE)

高分新刊——计算机领域 1区人工智能类SCI&EI 【出版社】IEEE 【自引率】4.30%(低) 【国人占比】13.40% 【期刊简介】IF:6.5-7.0,JCR1区,中科院3区 【检索情况】SCI&EI 双检,正刊 【参考周期】3-5个月左…

Hierarchical Fusion Model (2019 ACL)三种模态的层次融合

论文题目(Title):Multi-Modal Sarcasm Detection in Twitter with Hierarchical Fusion Model 研究问题(Question):主要研究了推特中由文本和图像组成的推文的多模态讽刺检测 研究动机(Motiva…

二肽Phe-Pro,7669-65-0,FP

Substrate for skin fibroblast prolidase.皮肤成纤维细胞prolida酶的底物。 编号: 131185中文名称: 二肽Phe-Pro英文名: Phe-ProCAS号: 7669-65-0单字母: H2N-FP-OH三字母: H2N-Phe-Pro-COOH氨基酸个数: 2分子式: C14H18N2O3平均分子量: 262.3精确分子量: 262.13等电点(PI): 6…

【学习笔记02】vue指令学习

目录 一、常用的指令 (一)v-bind 1、绑定样式 2、$event (二)v-on 1、v-on修饰符 2、按键修饰符 3、案例:Todolist (三)v-model 1、 v-model和v-bind的区别 2、案例:数…

wy的leetcode刷题记录_Day60

wy的leetcode刷题记录_Day60 声明 本文章的所有题目信息都来源于leetcode 如有侵权请联系我删掉! 时间:2022-12-21 前言 这几天身体不舒服,现在重新开始更新。 目录wy的leetcode刷题记录_Day60声明前言1753. 移除石子的最大得分题目介绍思路代码收获…

Java 异常(Exceptions)

目录 1、什么是异常? 2、捕获并处理异常 try-with-resources 语句 3、通过方法抛出异常 自定义异常 1、什么是异常? 定义:异常是在程序执行过程中发生的一种事件,它会中断程序指令的正常流程。 当方法中发生错误时&#xff0…

2022年我国止血药行业市场规模不断增长 激活凝血因子活性药是主流产品

根据观研报告网发布的《中国止血药市场现状深度研究与发展前景分析报告(2022-2029年)》显示,止血药主要是指凡能够制止体内外出血的药物,主要适用于各部位出血病症,如咯血、衄血、吐血、尿血、便血、崩漏、紫癜及创伤出…

记录一次使用 Ubuntu 编译 Wakaama 踩坑过程

1. 背景 公司项目需要使用 LwM2M 协议,由于是个相对冷门的小众协议,客户端模拟器几乎没有,只有 Eclipse Wakaama 相对来说功能齐全、易用,但是这个软件没有编译好的程序包,只能从 Github 拉取源码手动编译运行。 不知道…