AMBA总线APB、AHB、AXI(详细)总结附实例便于快速掌握

news2024/11/26 21:29:22

目录

    • 一、简介
    • 二、具体内容
      • 2.1 APB
      • 2.2 AHB
      • 2.3 AXI
    • 三、总线对比
      • 3.1 总体对比
      • 3.2 部分功能差异
    • 四、其他相关链接
      • 1、PCI总线及发展历程总结
      • 2、SPI协议详细总结附实例图文讲解通信过程
      • 3、I2C总线内容总结分享

一、简介

本文主要介绍APB、AHB和AXI总线的相关内容,同时对比三种总线的差异,附图和应用场景方便读者快速掌握。

二、具体内容

AMBA总线的系统架构:其中APB总线是AHB总线的扩展,方便外设连接到系统总线上,AHB和APB之间有一个转接桥来进行连接。
在这里插入图片描述

对于AMBA协议,APB的信号都是以P开头,AHB的信号都是以H开头,而AXI的信号都是以A开头。

2.1 APB

APB的全称为Advanced Peripheral Bus高级外围总线,是一种优化的,低功耗的,精简接口总线,可以技术多种不同慢速外设;主要应用在低带宽的外设上,如UART、 I2C和SPI,除了连接低速外设之外,APB总线还广泛用于配置各种IP的寄存器(这些IP预留用户控制信号,由软件进行配置,这个时候就可以选择使用APB总线来配置这些寄存器)。
APB协议不支持流水线设计,它主要应用在低带宽设计需求的接口中,高性能带宽需求可以使用AXI总线。APB协议的实现与时钟沿对齐,以简化外设接口的设计。每次传输至少需要消耗两个时钟周期。
总结特点如下:
1、低成本;
2、低功耗;
3、低带宽;
4、无流水线结构;
5、所有信号的跳变仅与时钟上升沿相关;
6、每次传输至少需要两个时钟周期。

2.2 AHB

AHB (Advanced High-performance Bus) 高级高性能总线,用于高性能、高时钟频率的系统模块,典型的应用如ARM核与系统内部的高速RAM、NAND FLASH、DMA、Bridge的连接。
AHB总线强大之处在于它可以将微控制器(CPU)、高带宽的片上RAM、高带宽的外部存储器接口、DMA总线控制器,以及各种AHB接口的控制器等连接起来构成一个独立的完整SOC系统,还可以通过AHB-APB桥来连接APB总线系统。
AHB 系统由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。基础结构则由仲裁器(arbiter)、主模块到从模块的Mux、从模块到主模块的Mux、译码器(decoder)、虚拟从模块(dummy Slave)、虚拟主模块(dummy Master)所组成。具体结构如下图所示。
在这里插入图片描述

AHB总线具有两级流水操作,包括地址周期和数据周期的两级流水线处理。第一个周期读地址,第二个周期写数据,用流水线操作处理,在第二个周期写数据的同时读另一个地址,这样在下一个周期就可以直接写数据,读地址写数据同时进行,这样两周期的操作在流水线开始后每周期都能写一个数据。
在这里插入图片描述

总结特点如下:
1、Burst传输;
2、Split事务处理;
3、单周期master移交;
4、单一时钟沿操作;
5、无三态;
6、更宽的数据总线配置(64/128);
7、流水线操作;
8、可支持多个总线主设备(最多16个)。

2.3 AXI

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

AMBA版本AXI版本ACE版本
AMBA3AXI3\
AMBA4AXI4、AXI4-LiteACE、ACE-Lite
AMBA5AXI5、AXI5-LiteACE5、ACE5-Lite、ACE5-LiteDVM

多个master和slave连接在一起构成的典型系统如下:
在这里插入图片描述

总结特点如下:
1、地址/控制操作与数据操作分离;
2、使用byte strobes (字节选通) 信号实现非对齐数据传输;
3、使用burst传输 (突发传输) 时只需要发送首地址,便可以发送一段数据读数据和写数据通道独立,从而支持DMA (low-cost Direct Memory Access);
4、支持outstanding功能,可以发送多个地址进行读写;
5、支持out-of-order传输;
6、Permits easy addition of register stages to provide timing closure。

三、总线对比

3.1 总体对比

总线功能通道主从设备数据操作
APBAPB是高级外围总线单通道总线,不支持读写并行单主设备多从设备,主设备就是APB桥,不具有仲裁机制不支持
AHBAHB是先进的高性能总线单通道总线,不支持读写并行多主/从设备,且通过仲裁机制实现总线控制权的分配支持突发传输
AXIAXI是先进的可扩展接口多通道总线,总共分为五个通道,能够实现读写并行多主/从设备,且通过仲裁机制实现总线控制权的分配;支持突发传输,数据非对齐操作

3.2 部分功能差异

具体内容详细说明:
1、AHB突发传输与AXI突发传输的区别:
AHB协议需要一次突发传输的所有地址,地址与数据锁定对应关系,后一次突发传输必须在前次传输完成才能进行;
AXI只需要一次突发的首地址,可以连续发送多个突发传输首地址而无需等待前次突发传输完成,并且多个数据可以交错传递,此特征大大提高了总线的利用率;

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

四、其他相关链接

1、PCI总线及发展历程总结

2、SPI协议详细总结附实例图文讲解通信过程

3、I2C总线内容总结分享

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

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

相关文章

初级篇—第一章初识数据库

文章目录 为什么要使用数据库数据库与数据库管理系统数据库的相关概念数据库与数据库管理系统的关系 常用的数据库为什么如此多的厂商要选用MySQL?MySQL的目录 RDBMS 与 非RDBMS关系型数据库(RDBMS)非关系型数据库(非RDBMS) 关系型数据库设计规则表、记录、字段表的…

力扣:117. 填充每个节点的下一个右侧节点指针 II(Python3)

题目: 给定一个二叉树: struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL 。 初始状态下,所…

Springboot+vue的在线试题题库管理系统(有报告),Javaee项目,springboot vue前后端分离项目。

演示视频: Springbootvue的在线试题题库管理系统(有报告),Javaee项目,springboot vue前后端分离项目。 项目介绍: 本文设计了一个基于Springbootvue的前后端分离的在线试题题库管理系统,采用M&…

代码随想录算法训练营第五十二天 | 300. 最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

1. 最长递增子序列 300. 最长递增子序列 - 力扣(LeetCode) dp[i] 取决于 i 之前所有的dp class Solution {public int lengthOfLIS(int[] nums) {// dp[i] 第 0 - i 位的递增子序列长度int length nums.length;int[] dp new int[length];Arrays.fil…

基于 jasypt 实现spring boot 配置文件脱敏

前言 在项目构建过程中,保护敏感信息的安全性至关重要,为了提高系统的安全性能,我们采用了Jasypt来对配置文件中的敏感信息进行加密处理,以确保系统的机密信息不被轻易泄露。 步骤 添加Maven依赖 首先,我们需要添加…

秋招校招,什么是群面?

时间已经来到十月份,我们也迎来了秋季招聘的高峰期。一般来说,企业为了提高面试的速度,一般都会让我们进行群面。可是,很多人不懂得“群面”的意思,由此导致自己在面试环节丢分。今天,就跟着小编一起来了解…

Maven下载源码出现:Cannot download sources Sources not found for org.springframwork...

Maven下载源码出现:Cannot download sources Sources not found for org.springframwork… 最近重装了IDEA再次查看源码时发现总是报错,网上找了很多,发现解决方法都是在项目终端执行如下命令: mvn dependency:resolve -Dclassi…

【面试经典150 | 矩阵】矩阵置零

文章目录 写在前面Tag题目来源题目解读解题思路方法一: O ( m n ) O(mn) O(mn) 空间复杂度方法二: O ( m n ) O(mn) O(mn) 空间复杂度方法三:仅使用2个额外变量的常量空间复杂度 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算…

网络工程师对口的岗位是什么

大家好,我是网络工程师成长日记实验室的郑老师,您现在正在查看的是网络工程师成长日记专栏,记录网络工程师日常生活的点点滴滴 网络工程师可以从事哪些职位呢?其实网络工程师最对应的最对口的这个岗位就是高级网络工程师、系统集成…

Centos一键安装、切换各版本JDK

查看服务中的安装的jdk rpm -qa | grep java获取jdk各版本信息 yum -y list java*查看指定版本 yum -y list java*|grep 1.8安装jdk yum install java-11-openjdk当服务器中有多个版本jdk,切换指定jdk版本 alternatives --config java按照提示输入编号即可切换&…

古诗词学习鉴赏APP设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

【Java基础】抽象类和接口的使用

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【JavaSE_primary】 本专栏旨在分享学习JavaSE的一点学习心得,欢迎大家在评论区讨论💌 目录 一、抽象类抽象类概念…

头条号热点采集工具-头条号热文采集软件

有一种魔法,能让信息传遍大地,让新闻在互联网上迅速传播,引发关注和讨论,那就是头条热点。无论你是一名自媒体创作者,还是一个信息追踪者,头条热点都是你不能忽视的宝贵资源。然而,如何获取这些…

Linux关于gittee的远端仓库的连接和git三板斧

目录 1.网页操作 2.Linux操作 查看Linux系统中是否安装git指令 安装git指令 链接远端仓库 设置 .gitignore文件 3.git三板斧 1.网页操作 首先我们要在gittee建立一个仓库 这是我自己的勾选方案,大家可以参考一下。 这个方案勾选最下面的三个选项才有&#x…

博物馆门票预约APP的设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

【Unity3D日常开发】Unity3D的Resources不同目录的加载分析

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 xdm,国庆节快乐呀,无聊学习一会&#x…

Spring Cloud Loadbalancer 实现客户端负载均衡

针对 ribbon 负载均衡组件&#xff0c; 官方提出的替换解决方案是 Spring Cloud Loadbalancer。本次主要通过学习示例介绍了 Spring Cloud Loadbalancer 的基础使用。 1&#xff0c;引入pom <dependency><groupId>org.springframework.cloud</groupId><…

【LeetCode刷题笔记】一维数组

1.两数之和 解题思路&#xff1a; 哈希 &#xff0c;每次循环将 元素值 和对应 下标 放入 map 中&#xff0c;每次更新 map 之前先判断一下&#xff0c;如果 map 中已经包含 target - nums[i] 的 key &#xff0c;则找到答案&#xff0c;返回 当前下标 和之前的 key 对应的 下…

Unity自用工具:基于种子与地块概率的开放世界2D地图生成

public class BuildingGen : MonoBehaviour {public int[] Building;//存储要生成的地块代码public int[] Probability;//存储概率public double seed;public int width 100;public int height 100;public float noiseScale 0.1f; //噪声缩放倍数private int[,] frequencyM…

大模型 Decoder 的生成策略

本文将介绍以下内容&#xff1a; IntroductionGreedy Searchbeam searchSamplingTop-K SamplingTop-p (nucleus) sampling总结 一、Introduction 1、简介 近年来&#xff0c;由于在数百万个网页数据上训练的大型基于 Transformer 的语言模型的兴起&#xff0c;开放式语言生…