ARM AMBA总线介绍

转自:https://blog.csdn.net/u013246792/article/details/79840729

 

一、AMBA 简介

       随着深亚微米工艺技术日益成熟,集成电路芯片的规模越来越大。数字 IC 从基于时序驱动的设计方法,发展到基于 IP 复用的设计方法,并在 SoC 设计中得到了广泛应用。在基于 IP 复用的 SoC 设计中,片上总线设计是最关键的问题。为此,业界出现了很多片上总线标准。其中,由 ARM 公司推出的 AMBA 片上总线受到了广大 IP 开发商和 SoC 系统集成者的青睐,已成为一种流行的工业标准片上结构。AMBA 规范主要包括了 AHB (Advanced High performance Bus) 系统总线和 APB (Advanced Peripheral Bus) 外围总线。

       AMBA (Advanced Microcontroller Bus Architecture) 总线是 ARM 研发的一种特殊的机制,可以将 RISC 处理器集成在其他 IP 芯核和外设中,它是有效连接 IP 核的 “数字胶”,并且是 ARM 复用策略的重要组件。它不是芯片与外设之间的接口,而是 ARM 内核与芯片上其他元件进行通信的接口。

       AMBA 2.0 版本 标准定义了三组总线:

AHB (AMBA高性能总线):用于高性能。高数据吞吐部件,如 CPU、DMA、DSP 之间的连接。

ASB (AMBA系统总线):用作处理器与外设之间的互连,将被 AHB 取代。

APB (AMBA外设总线): 为系统的低速外部设备提供低功耗的简易互连。

系统总线和外设总线之间的桥接器提供 AHB/ASB 部件与 APB 部件之间的访问代理与缓冲。

       AMBA 2.0 规范包括四个部分:AHB、ASB、APB 和 Test Methodology。AHB 的相互连接采用了传统的带有主模块和从模块的共享总线,接口与互连功能分离,这对芯片上模块之间的互连具有重要意义。AMBA已不仅是一种总线,更是一种带有接口模块的互连体系。 

二、AHB简介

       AHB 主要用于高性能模块 (如 CPU、DMA 和 DSP 等) 之间的连接。作为 SoC 的片上系统总线,它包括以下一些特性:单个时钟边沿操作;非三态的实现方式;支持突发传输;支持分段传输;支持多个主控制器;可配置 32 位 ~ 128 位总线宽度;支持字节、半字节和字的传输。AHB 系统由主模块、从模块和基础结构 (Infrastructure) 三部分组成,整个 AHB 总线上的传输都由主模块发出,由从模块负责回应。基础结构则由仲裁器 (arbiter) 、主模块到从模块的多路器、从模块到主模块的多路器、译码器(decoder)、虚拟从模块(dummy Slave)、虚拟主模块(dummy Master)所组成。其互连结构下图所示:

三、APB简介

       APB 主要用于低带宽的周边外设之间的连接,例如 UART、IIC 等,它的总线架构不像 AHB 支持多个主模块,在 APB 里面唯一的主模块就是 APB 桥。其特性包括:两个时钟周期传输;无需等待周期和回应信号;控制逻辑简单,只有四个控制信号。APB 上的传输可以用下面的状态图来说明。

1、系统初始化为 IDLE 状态,此时没有传输操作,也没有选中任何从模块。

2、当有传输要进行时,PSELx=1,PENABLE=0,系统进入 SETUP 状态,并只会在 SETUP 状态停留一个周期。当 PCLK 的下一个上升沿时到来时,系统进入 ENABLE 状态。

3、系统进入 ENABLE 状态时,维持之前在 SETUP 状态的 PADDR、PSEL、PWRITE 不变,并将 PENABLE 置为 1。传输也只会在 ENABLE 状态维持一个周期,在经过 SETUP 与 ENABLE 状态之后就已完成。之后如果没有传输要进行,就进入 IDLE 状态等待;如果有连续的传输,则进入 SETUP 状态。

四、ASB简介

       AMBA 2.0 规范中的 ASB 总线适用于连接高性能的系统模块。它的读/写数据总线采用的是同一条双向数据总线,可以在某些高速且不必要使用 AHB 总线的场合作为系统总线,可以支持处理器、片上存储器和片外处理器接口及与低功耗外部宏单元之间的连接。

五、总结

       一个典型的基于AMBA总线的系统框图如下图所示:

大多数挂在总线上的模块 (包括处理器) 只是单一属性的功能模块:主模块或者从模块。主模块是向从模块发出读写操作的模块,如 CPU,DSP 等;从模块是接受命令并做出反应的模块,如片上的 RAM,AHB/APB 桥等。另外,还有一些模块同时具有两种属性,例如直接存储器存取 (DMA) 在被编程时是从模块,但在系统读传输数据时必须是主模块。如果总线上存在多个主模块,就需要仲裁器来决定如何控制各种主模块对总线的访问。虽然仲裁规范是 AMBA 总线规范中的一部分,但具体使用的算法由 RTL 设计工程师决定,其中两个最常用的算法是固定优先级算法和循环制算法。AHB 总线上最多可以有 16 个主模块和任意多个从模块,如果主模块数目大于 16,则需再加一层结构(具体参阅 ARM 公司推出的 Multi-layer AHB 规范)。APB 桥既是 APB 总线上唯一的主模块,也是 AHB 系统总线上的从模块。其主要功能是锁存来自 AHB 系统总线的地址、数据和控制信号,并提供二级译码以产生 APB 外围设备的选择信号,从而实现 AHB 协议到 APB 协议的转换。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值