系列文章合集:AMBA总线协议(0)——目录与传送门

目录

一、前言

二、什么是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 高级高性能总线 AHB AMBA 高级外设总线

(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传输的详细操作。