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

目录

一、AMBA总线简介

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

 三、AHB介绍

1、概述

2、典型结构

(1) AHB 主机(AHB Master)

(2)AHB 从机(AHB Slave)

(3)AHB 仲裁器(AHB Arbiter)

(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)最普遍,现在到了AXI4Cortex-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分为主和从两端,它支持多个主的链接,例如CPUDSPDMA等,并能进行高带宽的操作。

        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经常用于外设的拓展使用。

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

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

相关文章

机器人远程控制软件设计

机器人远程控制软件设计 That’s all.

【前端】vscode javascript 代码片段失效问题解决

1. 文件--首选项--用户代码片段-vue.json : 添加 // { // // Place your global snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and // // description. Add comma separated ids of the languages where the snippet is app…

iShot Pro for Mac 2.3.9最新中文版

iShot Pro是一款非常优秀的Mac截图软件,软件非常易于操作,主页面还设置了学习教程,可以轻松玩转软件所有功能,并且功能非常强大,不仅可以实现多种截图方式,还可以进行标注、贴图、取色、录屏、录音、OCR识别…

QT 基本对话框

包括&#xff1a; 1.标准文件对话框 dialog.h #ifndef DIALOG_H #define DIALOG_H#include <QDialog> #include <QTextCodec> #include <QLabel> #include <QLineEdit> #include <QPushButton> #include <QGridLayout> #include <QFr…

开源的密码学工具库:openssl安装在docker容器环境Linux(ubuntu18.04)

OpenSSL&#xff08;Open Secure Socket Layer&#xff09;是一个开源的密码学工具库&#xff0c;它提供了一系列的加密、解密、认证和通信安全相关的功能。OpenSSL 最初是为了支持安全的网络通信而设计的&#xff0c;但后来它的功能逐渐扩展到了许多不同的领域&#xff0c;包括…

详细整合Spring+SpringMVC+MyBatis+logback(SSM)项目

整体目录结构 表结构 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.a…

Zabbix-6.4.4 邮箱告警SMS告警配置

目录 ​------------------------- # 邮箱告警 ---------------------------------- 1.安装mailx与postfix软件包 2.修改mailx配置文件 3. 创建文件夹 4. 编写mail-send.sh脚本 5. 将该脚本赋予执行权限 6. 进入web界面进行设置—> Alerts —> Media Types 7. 添…

【Java从0到1学习】09 正则表达式

1. 正则表达式概述 在编写处理字符串的程序或网页时&#xff0c;经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说&#xff0c;正则表达式就是记录文本规则的代码。 正则表达式&#xff0c;又称正规表示法、常规表示法&#xff…

Redis基础概念和数据类型详解

目录 1.什么是Redis&#xff1f; 2.为什么要使用Redis&#xff1f; 3.Redis为什么这么快&#xff1f; 4.Redis的使用场景有哪些&#xff1f; 5.Redis的基本数据类型 5.1 5种基础数据类型 5.1.1 String字符串 5.1.2 List列表 5.1.3 Set集合 5.1.4 Hash散列 5.1.5 Zset有序集…

第8章:集成学习

个体与集成 同质&#xff1a;相同的基学习器&#xff0c;实现容易&#xff0c;但是很难保证差异性。异质&#xff1a;不同的基学习器&#xff0c;实现复杂&#xff0c;不同模型之间本来就存在差异性&#xff0c;但是很难直接比较不同模型的输出&#xff0c;需要复杂的配准方法。…

HTML浪漫动态表白代码+音乐(附源码)(二)

一. 前言 七夕马上就要到了&#xff0c;为了帮助大家高效表白&#xff0c;下面再给大家加几款实用的HTML浪漫表白代码(附源码)背景音乐&#xff0c;可用于520&#xff0c;情人节&#xff0c;生日&#xff0c;求爱表白等场景&#xff0c;可直接使用。 来吧&#xff0c;展示&am…

gor工具http流量复制、流量回放,生产运维生气

gor是一款流量复制回放工具&#xff0c;gor工具的官网&#xff1a;https://goreplay.org/ 1、对某个端口的http流量进行打印 ./gor --input-raw :8000 --output-stdout 2、对流量实时转发&#xff0c;把81端口流量转发到192.168.3.221:80端口 ./gor --input-raw :81--output-ht…

第一百三十一天学习记录:数据结构与算法基础:栈和队列(下)(王卓教学视频)

队列的表示和操作的实现 循环顺序队列是一种使用数组来实现的队列结构&#xff0c;其中头指针和尾指针表示队列的头部和尾部位置。 当队列为空时&#xff0c;头指针和尾指针都指向同一个位置&#xff0c;即数组的第一个位置。这是因为在空队列中&#xff0c;没有任何元素可以作…

【算法刷题之数组篇(1)】

目录 1.leetcode-59. 螺旋矩阵 II&#xff08;题2.题3相当于二分变形&#xff09;2.leetcode-33. 搜索旋转排序数组3.leetcode-81. 搜索旋转排序数组 II(与题目2对比理解)&#xff08;题4和题5都是排序双指针&#xff09;4.leetcode-15. 三数之和5.leetcode-18. 四数之和6.leet…

系统卡死问题分析

CPU模式 CPU Frequency Scaling (CPUFREQ) Introduction CPU频率调节设备驱动程序的功能。该驱动程序允许在运行过程中更改CPU的时钟频率。一旦CPU频率被更改,必要的电源供应电压也会根据设备树脚本(DTS)中定义的电压值进行变化。通过降低时钟速度,这种方法可以减少功耗…

第2步---MySQL卸载和图形化工具展示

第2步---MySQL卸载和图形化工具展示 1.MySQL的卸载 2.MySQL的图形化工具 2.1常见的图形化工具 SQLyog&#xff1a;简单。SQLyog首页、文档和下载 - MySQL 客户端工具 - OSCHINA - 中文开源技术交流社区 Mysql Workbench &#xff1a;MySQL :: MySQL Workbench DataGrip&…

PHP-MD5注入

0x00 前言 有些零散的知识未曾关注过&#xff0c;偶然捡起反而更加欢喜。 0x01 md5 注入绕过 md5函数有两个参数&#xff0c;第一个参数是要进行md5的值&#xff0c;第二个值默认为false&#xff0c;如果为true则返回16位原始二进制格式的字符串。意思就是会将md5后的结果当…

什么是BEM命名规范?为什么要使用BEM命名规范?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ BEM命名规范⭐ 为什么使用BEM命名规范&#xff1f;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为…

市面上那里有稳定L2股票行情数据接口?

随着市场的发展和技术的进步&#xff0c;level2股票行情数据接口已经成为股票交易软件的标准配置之一。虽然这些券商软件的功能在很大程度上相似&#xff0c;但它们仍然有自己的特点和优势。 例如&#xff1a;通过股票交易所以其专业的研究报告和丰富的信息服务而受到广泛关注&…

登陆接口的的Filter过滤

目录 一、概述 二、基本操作 三、登陆检查接口 一、概述 什么是Filter&#xff1f; Filter表示过滤器&#xff0c;是 JavaWeb三大组件(Servlet、Filter、Listener)之一。 过滤器可以把对资源的请求拦截下来&#xff0c;从而实现一些特殊的功能 使用了过滤器之后&#xff0…