【ARM AMBA AHB 入门 3 -- AHB 总线介绍】

news2025/5/11 22:49:40


请阅读【ARM AMBA 总线 文章专栏导读】

文章目录

    • AHB Bus 简介
    • AHB Bus 构成
    • AHB BUS 工作机制
      • AHB 传输阶段
    • AHB Interfaces
      • AHB仲裁信号
    • AHB 数据访问
      • 零等待传输(no waitstatetransfer)
      • 等待传输(transfers with wait states)
      • 多重传送(multipletransfer)--Pipeline
    • AHB 控制信号

AHB Bus 简介

AHB 总线的强大之处在于它可以将微控制器(CPU)、高带宽的片上RAM、高带宽的外部存储器接口、DMA总线Master、各种拥有AHB接口的控制器等等连接起来构成一个独立的完整的SOC系统,不仅如此,还可以通过AHB-APB桥来连接APB总线系统

AHB 可以成为一个完整独立的SOC芯片的骨架。
在这里插入图片描述

AHB Bus 构成

完整的 AHB 总线由四个部分组成:

  • AHB 主设备 Master: 发起一次读/写操作;某一时刻只允许一个主设备使用总线
  • AHB 从设备 Slave: 响应一次读/写操作;通过地址映射来选择使用哪一个从设备;
  • AHB 仲裁器 Arbiter: 允许某一个主设备控制总线;
  • AHB 译码器 Decoder: 通过地址译码来决定选择哪一个从设备。

    在这里插入图片描述

AHB BUS 可以分为三组

  • 写数据总线(HWDATA)
  • 读数据总线(HRDATA)
  • 地址控制总线(HADDR)

AHB BUS 工作机制

有需要占用总线的 Master向 Arbiter 发出请求, Arbiter授权给指定的Master。任一时间周期只有一个 Master 可以接入总线,对其指定的 Slave 进行读写操作。

获得总线授权的 Master开始 AHB 传输, 首先发出地址和控制信号, 提供地址信息、传输方向、带宽和burst类型。总线统一规划 Slave 的地址, 译码器根据地址和控制信号确定哪个 Slave 与Master进行数据通信。数据传输通过数据总线完成。

为避免出现三态总线 AHB 将读写总线分开, 写数据总线用于从 Master 到 Slave 的数据传输, 读数据总线用于从 Slave 到 Master 的数据传输。

每笔传输包括一个地址和控制周期, 一个或多个数据周期。地址和控制周期不能被扩展, 因此 Slave 必须在一个周期内采样地址信号

数据周期可以通过 HREADY 信号扩展, 但 HREADY 为低时给传输加入一个等待状态以使 Slave获得额外的时间来提供或采样数据, 另外 Slave 通过响应信号 HRESP 反映传输状态。

AHB支 持批量式数据传送, 可以自动递增地址。递增地址方式分为: 持续递增与回绕传送。

一般情况下 Master 完成完整的 burst 传输, Arbiter 才会授权给其他的 Master 接入总线, 然而为避免过大的判决延迟, Arbiter也可能打断断burst传输。在这种情况下Master 必须再次接入总线以进行中断的 burst 剩余部分的传输。

AHB 传输阶段

AHB的传送模式包含二个阶段。第一阶段为地址的传递, 另一阶段为数据的传递。

  • 地址传输阶段: (address phase):一个时钟周期
  • 数据传输阶段: (data phase):一个或多个时钟周期(以HREADY信号控制周期数目)

AHB Interfaces

在这里插入图片描述
在实际的传输过程中,一般作为 AHB 总线的 Slave 设备都有 2 根 hrready信号, 一个为 input 类型(hready_in), 另一个为 outpute 型 (hready_out)。在 AHB 总线协议中,如果 Master 设备发起读写操作的时候,Slave设备不能及时响应的话,由Slave设备把 hready_out 信号拉低来拖延 Data Phaze 周期。

但是在Pipeline操作的时候,本次操作 data phaze是下一次操作的 address phaze, 所以作为 Slave设备在响应Master设备的时候, 必须先判断一下Master设备对上一次其它Slave设备的操作是否已经完成。如果完成,则响应主设备的操作;如果没有有完成,则等待完成, 然后才响应操作。hready_in 就是 Slave 设备用来判断Masteer设备是否对其它Slave设备的操作已经完成的信号。

AHB仲裁信号

在这里插入图片描述

AHB 数据访问

零等待传输(no waitstatetransfer)

在这里插入图片描述

  • 第一个周期的上升沿, master 驱动地址和控制信号;
  • 第二个周期的上升沿, slave 采样地址和控制信号,并将 HREADY 拉高;
    • 如果是写操作, master 会在第二个周期的上升沿传输要写入的数据;
    • 如果是读操作, slave 会在 HREADY 信号拉高后将读取的数据写写入总线;
  • 第三个周期的上升沿,
    • 如果是写操作, master获取 HREADY 高信号,表明slave已成功接收数据,操作成功;
    • 如果是读操作, master 获取 HREADY 高信号,表明此时的读数据有效并且接收下来,操作成功。
      需要注意,HREADY信号在数据有效期间必须为高, 并且延续到第三个周期的上升沿之后, 确保 master 的正确采样。

等待传输(transfers with wait states)

传送完成时间因等待而延迟,这是由于寻址到较慢的S单元所造/成。当HREADY被S拉低时,会发生等待状态。需要延迟传送的周期时, 就会在数据期间将HREADY拉低,此时地址与数据都必须延伸。有等待状态的AHB传递,下图中可看到在数据草式时, 时序必须多花二个周期的延迟等待时间(HREADY为0), S才能正常的接收收到M写的数据或准备好M欲读取的数据。
在这里插入图片描述
slave 可以及时处理 master 请求,但也可能存在 slave太慢不能立即处理的情况。这时需要让master 稍微等一等, 需要 slave 插入一些等待的状态。如上图所示, HREADY 信号在第二和第三周期拉低,意在告诉 master, slave 不能立即处理,需要 master等待2个周期。在这
里需要注意2点:

  • 如果是写操作, master需要在等待期间保持写数据不变, 直到本次传输完成;
  • 如果是读操作, slave不需要一开始就给出数据,仅当HREADY拉高后才给出有效数据。

多重传送(multipletransfer)–Pipeline

一次完整的数据传送会有多个传送周期, 如下图下一笔地址可与上一笔数据同时在总线上, 时序图的说明如下:
在这里插入图片描述
下图是对上图的补充:
在这里插入图片描述
扩展数据周期的一个负效应是必需延长相应的下一笔传输的地址周期。A和C为零等待传输,B加入了一个等待周期,因此相应的C地址期要进行扩展。

  • 第一个周期,master发起一个操作A,并驱动地址和控制信号;
  • 第二个周期,slave收到了来自总线的请求,将HREADY信号拉高;
  • 第二个周期上升沿后,master发现有操作B需要执行,并且检查到上一周期的HREADY为高,则发起第二个操作B;
  • 第三个周期,master获取HREADY信号为高,表示操作A已经经完成
  • 第三个周期上升沿后,master发现有操作C需要执行,并且检查到上一周期的HREADY为高,则发起第三个操作C;
  • 第三个周期上升沿后,slave由于繁忙插入了一个等待状态,将HREADY拉低;
  • 第四个周期,master获取HREADY信号为低,知道slave希望等待于是master保持和上一拍一样的信号;
  • 第四个周期,slave处理完了事务,将HREADY信号拉高,表示可以继续处理;
  • 第五个周期,master获取HREADY信号为高,知道slave已经可以处理B操作;
  • 第五个周期上升沿后,B操作完成;
  • 第六个周期上升沿后,C操作完成。

注意:
HREADY在一定程度上表示了slave的pipeline能力,在AHB中是2个pipe,也就是总线上最多存在2个未处理完的transfer。只有当总线上
未完成的transfer少于2个时,master才能发起操作。

AHB 控制信号

见下篇文章:【ARM AMBA AHB 入门 3.1 – AHB控制信号】

推荐阅读
https://blog.csdn.net/weixin_46022434/article/details/104987905

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

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

相关文章

多模态大模型中的视觉分词器(Tokenizer)前沿研究介绍

文章目录 引言MAETok背景方法介绍高斯混合模型(GMM)分析模型架构 实验分析总结 FlexTok背景方法介绍模型架构 实验分析总结 Emu3背景方法介绍模型架构训练细节 实验分析总结 InternVL2.5背景方法介绍模型架构 实验分析总结 LLAVA-MINI背景方法介绍出发点…

sqli-labs靶场第二关——数字型

一:查找注入类型: 输入 ?id1--与第一关的差别:报错; 说明不是字符型 渐进测试:?id1--,结果正常,说明是数字型 二:判断列数和回显位 ?id1 order by 3-- 正常, 说明有三列&am…

[模型选择与调优]机器学习-part4

七 模型选择与调优 1 交叉验证 (1) 保留交叉验证HoldOut HoldOut Cross-validation(Train-Test Split) 在这种交叉验证技术中,整个数据集被随机地划分为训练集和验证集。根据经验法则,整个数据集的近70%被用作训练集&#xff…

【计算机网络-数据链路层】以太网、MAC地址、MTU与ARP协议

📚 博主的专栏 🐧 Linux | 🖥️ C | 📊 数据结构 | 💡C 算法 | 🅒 C 语言 | 🌐 计算机网络 上篇文章:传输层-TCP协议TCP核心机制与可靠性保障 下篇文章: 网络…

Kafka 与 RabbitMQ、RocketMQ 有何不同?

一、不同的诞生背景,塑造了不同的“性格” 名称 背景与目标 产品定位 Kafka 为了解决 LinkedIn 的日志收集瓶颈,强调吞吐与持久化 更像一个“可持久化的分布式日志系统” RabbitMQ 出自金融通信协议 AMQP 的实现,强调协议标准与广泛适…

【MATLAB源码-第277期】基于matlab的AF中继系统仿真,AF和直传误码率对比、不同中继位置误码率对比、信道容量、中继功率分配以及终端概率。

操作环境: MATLAB 2022a 1、算法描述 在AF(放大转发)中继通信系统中,信号的传输质量和效率受到多个因素的影响,理解这些因素对于系统的优化至关重要。AF中继通信的基本架构由发射端、中继节点和接收端组成。发射端负…

webRtc之指定摄像头设备绿屏问题

摘要:最近发现,在使用navigator.mediaDevices.getUserMedia({ deviceId: ‘xxx’}),指定设备的时候,video播放总是绿屏,发现关闭浏览器硬件加速不会出现,但显然这不是一个最好的方案; 播放后张这样 修复后 上代码 指定…

2023年03月青少年软件编程(图形化)等级考试四级编程题

求和 1.准备工作 (1)保留舞台中的小猫角色和白色背景。 2.功能实现 (1)计算1~100中,可以被3整除的数之和; (2)说出被3整除的数之和。 标准答案: 参考程序&…

ensp的华为小实验

1.先进行子网划分 2.进行接口的IP地址配置和ospf的简易配置,先做到全网小通 3.进行ospf优化 对区域所有区域域间路由器进行一个汇总 对区域1进行优化 对区域2.3进行nssa设置 4.对ISP的路由进行协议配置 最后ping通5.5.5.5

ragflow报错:KeyError: ‘\n “序号“‘

环境: ragflowv 0.17.2 问题描述: ragflow报错:KeyError: ‘\n “序号”’ **1. 推荐表(输出json格式)** [{"},{},{"},{} ]raceback (most recent call last): May 08 20:06:09 VM-0-2-ubuntu ragflow-s…

FHE与后量子密码学

1. 引言 近年来,关于 后量子密码学(PQC, Post-Quantum Cryptography) 的讨论愈发热烈。这是因为安全专家担心,一旦有人成功研发出量子计算机,会发生什么可怕的事情。由于 Shor 算法的存在,量子计算机将能够…

CSS: 选择器与三大特性

标签选择器 标签选择器就是选择一些HTML的不同标签&#xff0c;由于它们的标签需求不同&#xff0c;所以CSS需要设置标签去选择它们&#xff0c;为满足它们的需求给予对应的属性 基础选择器 标签选择器 <!DOCTYPE html> <head><title>HOME</title>…

M0基础篇之ADC

本节课使用到的例程 一、Single模式例程基本配置的解释 在例程中我们只使用到了PA25这一个通道&#xff0c;因此我们使用的是Single这个模式&#xff0c;也就是我们在配置模式的时候使用的是单一转换。 进行多个通道的测量我们可以使用Sequence这个模式。 二、Single模式例程基…

OSPF综合实验实验报告

OSPF综合实验实验报告 一、实验拓扑 二、实验要求 1.R5为ISP&#xff0c;其上只能配置IP地址&#xff1b;R4作为企业边界路由器&#xff0c; 出口公网地址需要通过PPP协议获取&#xff0c;并进行chap认证 2&#xff0c;整个OSPF环境IP基于172.16.0.0/16划分&#xff1b; 3&…

vue3+ant design vue + Sortable实现多级表格列拖动

1、最近遇到个需求&#xff0c;需使用vue3ant design vue Sortable实现多级表格的表头允许用户拖拽移动。即当用户拖拽一级表头时&#xff0c;其对应的子级表头及数据应同步移动&#xff0c;并且只允许一级非固定表头允许拖拽。 2、代码 <a-table:data-source"rowDat…

基于开源链动2+1模式AI智能名片S2B2C商城小程序的分销价格管控机制研究

摘要&#xff1a;本文聚焦开源链动21模式AI智能名片S2B2C商城小程序在分销体系中的价格管控机制&#xff0c;通过解析其技术架构与商业模式&#xff0c;揭示平台如何通过"去中心化裂变中心化管控"双轨机制实现价格统一。研究显示&#xff0c;该模式通过区块链存证技术…

阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化

作者&#xff1a;裘文成&#xff08;翊韬&#xff09; 摘要 随着企业全球化业务的扩展&#xff0c;如何高效、经济且可靠地将分布在海外各地的应用与基础设施日志统一采集至阿里云日志服务 (SLS) 进行分析与监控&#xff0c;已成为关键挑战。 本文聚焦于阿里云高性能日志采集…

体育培训的实验室管理痛点 质检LIMS如何重构体育检测价值链

在竞技体育与全民健身并行的时代背景下&#xff0c;体育培训机构正面临双重挑战&#xff1a;既要通过科学训练提升学员竞技水平&#xff0c;又需严格把控运动安全风险。作为实验室数字化管理的核心工具&#xff0c;质检LIMS系统凭借其标准化流程管控与智能化数据分析能力&#…

设计模式【cpp实现版本】

文章目录 设计模式1.单例模式代码设计1.饿汉式单例模式2.懒汉式单例模式 2.简单工厂和工厂方法1.简单工厂2.工厂方法 3.抽象工厂模式4.代理模式5.装饰器模式6.适配器模式7.观察者模式 设计模式 1.单例模式代码设计 ​ 为什么需要单例模式&#xff0c;在我们的项目设计中&…

阿维塔汽车CAN总线数据适配技术解析与免破线数据采集实践

在智能电动汽车快速迭代的背景下&#xff0c;阿维塔凭借其高度集成的电子电气架构成为行业焦点。昨天我们经过实测&#xff0c;适配了该车型CAN总线数据适配的核心技术&#xff0c;从硬件接口定位、无损伤接线方案到关键动力系统数据解码进行系统性剖析&#xff0c;为智能诊断、…