当前位置: 首页 > news >正文

AMBA总线协议(3)——AHB(一)

目录

一、前言

二、什么是AHB总线

1、概述

2、一个典型的基于AHB总线的微处理器架构

3、基本的 AHB 传送特性       

三、AMBA AHB总线互联       

 四、小结


一、前言

        在之前的文章中我们初步的了解了一下AMBA总线中AHB,APB,AXI的信号线及其功能,从本文开始我们将正式开始学习AMBA总线的细节,本文着重介绍AHB协议,了解什么是AHB协议,其功能与互联方式。

二、什么是AHB总线

1、概述

        AHB 主要用于高性能模块(如 CPU、DMA 和 DSP 等)之间的连接,作为 SoC 的片上系统总线,它包括以下一些特性:突发传输;分块处理;单周期总线主机移交;单时钟沿操作;非三态执行;更宽的数据总线架构(64 位或者 128 位)。

        AHB 系统由主模块、从模块和基础结构(Infrastructure)3 部分组成,整个 AHB 总线上的传送都由主模块发出,由从模块负责回应。

组件描述
AHB主机AHB 总线可以有多个主机,通常有CPU,测试接口,DMA或者DSP
AHB从机外挂内存接口,APB桥,内部RAM,其他一些外围设备通常也能作为从机
APB低带宽的外围设备通常挂在APB上
基础结构仲裁器(arbiter)
主模块到从模块的多路器
从模块到主模块的多路器
译码器(decoder)
虚拟从模块(dummy S)
虚拟主模块(dummy M)所组成。

2、一个典型的基于AHB总线的微处理器架构

        下图就是一个典型的基于AHB总线的微处理器架构

        其中包含了二个主要的总线 高效能总线 (AHB) 和外围总线 (APB)。 AHB 主要是针对高效率、高频宽及快速系统模块所设计的总线,它可以连接如微处理器、芯片上或芯片外的内存模块和直接内存存取机制等高效率模块,此总线持别适合用于可合成和自动测试技术上的设计程序中。
AMBA 中的 APB 主要用在低速且低功率的外围,可针对外围作功率消耗及复杂接口的最佳化。由上图可知,负责 AMBA AHB 和 APB 之间的沟通管道为一桥梁(bridge),APB bridge 主要负责总线数据的栓取、译码及传送。
下表给出了AHB总线与APB总线的特性比较:
AMBA 高级高性能总线 AHBAMBA 高级外设总线

(1)高性能

(2)流水线操作

(3)猝发传输

(4)多个总线主设备

(5)分割交易

(1)低功耗

(2)锁存的地址和控制

(3)简单的接口

(4)适合很多外设

          AMBA 的主要目标是要让使用者能在最快的时间内完成一个以嵌入式微处理器为平台的系统设计它还可以让(具有重复使用特性的)外设及系统宏组件轻易被整合进(全客户、标准组件和逻辑数组为技术的)设计流程中;且让模块化的设计很容易的被整合进一个以微处理器为平台的系统开发环境。在 AMBA 的规格中亦提供一个测试控制接口,使得 AHB 和 APB 可透过外在的系统测试样品来作测试,因此也减轻了功能测试时的工作。

        简单说就是AMBA总线可以让用户快速设计属于自己的系统(一般是芯片),并且可轻易通过AMBA总线实现外设的挂载。

3、基本的 AHB 传送特性       

AHB 以仲裁器来控制多任务器以连接在其上的主机与从机。 在 AHB 总线上,其操作顺序一般如下:
(1)主机要求总线使用
(2)仲裁器响应允许信号
(3)从机送出地址与控制信号
        一次传送包括给出地址、控制信号周期(address, control)与数据周期(data cycle)。地址与控制信号周期最少需要一个周期,但是会因为数据的原因多出几个周期。数据周期可以通过HREADY 信号来延迟。拉起 HREADY 代表此次传送已经 OK。
AHB 支持批量式数据传送,可以自动递增地址。递增地址方式分为:持续递增(incrementing without wrapping at address boundary),另一种为回绕传送 (wrapping at address boundary.)。
在 AHB 上写数据总线将数据送到 从机,由读数据总线将数据送到 主机
从机以 HRESP[1:0]信号表示传送的状态:
(1)HRESP[1:0] = 00 (OKAY):当此信号再加上拉高的 HREADY(OKAY+高 HREADY)就表示此次的传送已完成。
(2)HRESP[1:0] = 01 (ERROR):传送失败。
(3)HRESP[1:0] = 10 (RETRY) and HRESP[1:0] = 11 (SPLIT):当数据传送无法立刻完成时,主机会继续尝试完成数据的传送。
这部分可以说是AHB传输的核心内容,这里让大家有一个初步的概念,在下一篇文章中会详细解释AMBA AHB的传输操作。

三、AMBA AHB总线互联       

        AMBA AHB 总线协议设计使用一个中央多路选择器互联方案。使用该方案所有总线主机设备输出地址和控制信号来指示它们想执行的传输。同时仲裁器决定哪一个主机能够将它的地址和控制信号连通到所有的从机。当然也需要一个译码器来控制读数据和响应多路信号选择器,多路信号选择器选中来自传输中所包含从机的适当信号。

 四、小结

         在本文中对于AMBA AHB做了一个简单的介绍,AHB 主要用于高性能模块(如 CPU、DMA 和 DSP 等)之间的连接,是Soc所经常采用的一种总线协议,AHB可以支持多主机多从机结构。设备之间的互联使用一个中央多路选择器互联方案。在后续的文章中我们将讲述AMBA AHB传输的详细操作。

http://www.lryc.cn/news/132894.html

相关文章:

  • Git commit与pull的先后顺序
  • HarmonyOS/OpenHarmony应用开发-ArkTS语言渲染控制ForEach循环渲染
  • Powered by Paraverse | 平行云助力彼真科技打造演出“新物种”
  • 企微配置回调服务
  • 机器人远程控制软件设计
  • 面试题-React(二):React中的虚拟DOM是什么?
  • 分布式链路追踪——Dapper, a Large-Scale Distributed Systems Tracing Infrastructure
  • 【IEEE会议】第二届IEEE云计算、大数据应用与软件工程国际学术会议 (CBASE2023)
  • Streamlit项目:基于讯飞星火认知大模型开发Web智能对话应用
  • [Vue]解决npm run dev报错node:internal/modules/cjs/loader:1031 throw err;
  • nginx反向代理后实现nginx和apache两种web服务器能够记录客户端的真实IP地址
  • 【仿写tomcat】四、解析http请求信息,响应给前端,HttpServletRequest、HttpServletResponse的简单实现
  • FL Studio21.1中文完整版Win/Mac
  • 基于Mysql+Vue+Django的协同过滤和内容推荐算法的智能音乐推荐系统——深度学习算法应用(含全部工程源码)+数据集
  • Python Web开发 Django 简介
  • HAproxy搭建web集群
  • 临时用工小程序:一款便捷的用工管理软件
  • Android Studio 之 Android 中使用 HanLP 进行句子段落的分词处理(包括词的属性处理)的简单整理
  • CSDN编程题-每日一练(2023-08-20)
  • 大数据:NumPy进阶应用详解
  • new String创建几个对象
  • 【路由协议】使用按需路由协议和数据包注入的即时网络模拟传递率(PDR)、总消耗能量和节点消耗能量以及延迟研究(Matlab代码实现)
  • c#实现依赖注入
  • 算法通关村十一关 | 位运算实现加法和乘法
  • C++笔记之条件变量(Condition Variable)与cv.wait 和 cv.wait_for的使用
  • Dubbo之DubboBootstrap源码解析
  • SpringBoot + Vue 微人事 项目 (第八天)
  • 人工智能引领图文扫描新趋势
  • ChatGPT在智能城市规划和交通优化中的应用如何?
  • 探索Perfetto:开源性能追踪工具的未来之光