Felix

技术源于积累,成功始于执着! 个人邮箱:justlxy@mail.dhu.edu.cn QQ:1576109464

AMBA学习笔记——AMBA v2.0概述

0
阅读(4225)

AMBA的全称是Advanced Microcontroller Bus Architecture。它的协议包含了3个部分,分别阐述了3种不同功能的总线结构,包括:

※ AHB - 高效能系统总线 Advanced High-performance Bus (AHB)
※ ASB - 系统总线 Advanced System Bus (ASB)
※ APB - 外设总线 Advanced Peripheral Bus (APB)

ASB总线与AHB总线都是系统总线,区别在于ASB总线并没有AHB总线的高效传送特性。当系统不需要AHB总线的高性能的时候,设计者可以选择ASB总线。但就目前的应用来说,很少有使用ASB总线的,所以本文主要讨论的将是AHB总线、APB总线,以及AHB2APB桥等内容。

一个典型的基于 AMBA 总线的 SOC 系统架构如下图所示,这种SoC架构以AHB或者ASB系统总线为主干,挂上CPU,片上内存,和其它DMA设备。AHB或者ASB系统总线在需要做大量数据传送的模块之间提供了高带宽的接口。同时,外围总线APB在AHB或者ASB和低带宽的外围设备之间提供了通信的桥梁。所以APB是AHB或者ASB的二级扩展总线。

blob.png

几个关于AMBA的常用术语如下:

※ Bus Cycle,总线周期,指一个总线时钟周期:AHB/APB 是时钟正沿,ASB 是时钟负沿。所有总线信号的时序是基于Bus Cycle。 

※ Bus Transfer,总线传输,ASB/AHB 总线传输是指对数据目标的读或写操作,由相应被选中的从机应答完成来结束。ASB/AHB 总线传输需要 1 个或多个时钟周期(加等待周期);APB 的总线传输至少需要 2 个时钟周期。

※ Burst Operation,批量操作,是指由主机发起的批量数据传输操作。需要注意的是,APB总线不支持Burst。

AHB、ASB和APB的主要特性比较如下:

blob.png

AHB是高性能高时钟频率的系统总线,是系统的主干,它直接连接了CPU,片上内存,DMA和外部内存接口。 AHB分为主机和从机两端,它支持多个主机的链接,例如CPU,DSP和DMA等,并能进行高带宽的操作。AHB的从机通常包括:外挂内存接口,AHB2APB桥,内部RAM等。AHB的主要组成部分的功能描述如下:

※ AHB Master: 主机可初始化读写操作,提供地址和控制信号,但同一时间有且只有1个主机会被激活(取得总线控制权)。

※ AHB Slave: 从机对读写操作在一定的地址范围内作出响应,并向主机返回成功,失败或者等待等状态。

※ AHB Arbiter: 仲裁器主要负责保证总线上同时只有1个主机在工作。AMAB只规定了仲裁器的框架,但是仲裁算法可以根据具体的应用决定,比如Highest Priority或者Fair Access算法等。只有一个主机的AHB上可以省去仲裁器。
※ AHB Decoder: 负责对地址进行解码,并提供片选信号到各从设备。每个 AHB 总线都需要 1 个中央解码器。

作为AMBA总线的一层,APB总线是为了功耗最小化和减低接口复杂度而设计的。APB总线应该用于低带宽和不需要高性能流水线总线接口的外设。APB总线上的所有信号都在正时钟沿发生变化,这个特性决定了APB可以更容易地被整合到各种设计流程里。    

AHB接口信号描述

注:AHB的信号前缀均为H,描述部分中的M表示主机(Master),S表示从机(Slave)。

blob.png

APB接口信号描述

注:APB信号的前缀均为P。

blob.png