Chinaunix首页 | 论坛 | 博客
  • 博客访问: 505881
  • 博文数量: 257
  • 博客积分: 1666
  • 博客等级: 上尉
  • 技术积分: 1535
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-02 23:02
文章分类

全部博文(257)

文章存档

2013年(2)

2012年(255)

分类: Delphi

2012-05-08 10:48:52

                                         

一:背景介绍

ARM公司定义了AMBA(Advanced Microcontroller Bus Architecture)总线规范,它是一组针对基于ARM核的、片上系统之间通信而设计的标准协议因为ARM处理器的广泛使用而拥有众多第三方支持,被ARM公司90%以上的合作伙伴采用。

AMBA总线规范中,定义了AHB APB ASB3种总线。最初的AMBA总线是ASBAPB。在它的第二个版本中,ARM引入了AHB
  (l)AHBAdvanced High Performace Bus,用于高性能系统模块的连接,支持突发模式数据传输和事务分割;
  (2)ASBAdvanced System Bus,也用于高性能系统模块的连接,支持突发模式数据传输,这是较老的系统总线格式,后来由AHB总线替代;
  (3)APBAdvanced PeriPheral Bus,用于较低性能外设的简单连接,一般是接在AHBASB系统总线上的第二级总线。

 

1 典型的基于AMBA总线的系统[1]

一个以AMBA 为架构的SOC,图1是个典型的系统架构,一般来说包含了high-performance system bus – AHB以及low speed, low power peripheral bus - APB System bus 是负责连接例如ARM 之类的embedded processor 以及DMA controlleron-chip memory 和其他 interface,或其他需要high bandwidth的模块。而peripheral bus 则是用来连接系统的外围慢速模块,其协议规则相对AHB来说较为简单,它以AHB之间则通过Bridge 相连,期望能減少system bus loading

 

 

 

二:结构以及仲裁原理

1 .AHB  Bus

AHB System是由MasterSlaveInfrastructure 三部分所组成。整个AHB bus上的传输都是由master 所发出,由slave 负责回应。而infrastructure 则由arbiter master to slave multiplexorslave to master multiplexordecoderdummy slavedummy master 所组成。

 

AHB总线互联结构图2

AHB支持多主设备,所以需要仲裁器。AHB总线上最多可以有16个主模块和任意多个从模块,如果主模块数目大于16,则需再加一层结构(具体参阅ARM公司推出的Multi-layer AHB规范)

AHB Arbitration的机制简述如下:

master 想要access bus 时候,master HBUSREQ signalbus request drive high(每个master 都有自己的HBUSREQ 信号),同一个时间可能有多个master 都想要access bus,因此arbiter HCLK rising edge sample 各个master HBUSREQ 信号后,需要决定哪个发出request master 有最高的priority(虽然仲裁规范是AMBA总线规范中的一部分,但具体使用的算法由设计工程师自行决定,AHB 并没有规定priority algorithm,其中两个最常用的算法是固定优先级算法和循环制算法),然后将此master HGRANT(bus grant signalarbiter给出) 信号drive high,表示他可以access bus 了。若原本已有master access busarbiter会把原本master HGRANT 信号给drive LOW 表示他已经丧失access 的权利。

master 正在进行fixed-length burst transfer (固定长度的突发连续传输)时候,如果有更高priority master 发出了requestarbiter 可以等待burst 完成后再將bus grant 给新的master,也可以在burst进行中就中断原来 master bus 拥有权(ownership),让更高priority master access bus。而被中断的master就需要重新发出request,等待下一次Grant bus时候继续完成burst了。

master想要进行的连续 transfer是不可以中断的 (比如在access shared memory 时候),则master 可以在request 时候,同时将HLOCK drive high,告诉arbiter我要进行的是不可被中断的transfer,则当master 获得access bus权力后 arbiter将不会把bus release给其它master,直到master自行将HLOCK drive LOWarbiter才会进行arbitration 的动作2

 

       2APB  Bus

APB 协议什么简单,APB 主要是用在连接low-bandwidth外围设备上,例如UART等。它的bus架构不像AHBMulti-Master,在APB里面唯一的的master就是APB Bridge(AHB Bus 相接),因此不需要arbiter以及request/grant信号。其特性包括:两个时钟周期传输;无需等待周期和回应信号;控制逻辑简单,只有四个控制信号。

 

3  APB

APB 桥既是APB总线上唯一的主模块,也是AHB系统总线上的从模块。其主要功能是锁存来自AHB系统总线的地址、数据和控制信号,并提供二级译码以产生APB外围设备的选择信号,从而实现AHB协议到APB协议的转换。

 

;参考文献:

1  AMBA™ Specification  (Rev 2.0)             

2  Introfuction  to AMBA     Bus System           吴欣龙    工程院/系统晶片技术中心工程师

3  http://blog.163.com/meteora_wzh/blog/static/369626752007102752315710/     

 

 

阅读(1634) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~