一:背景介绍ARM公司定义了AMBA(AdvancedMicrocontrollerBusArchitecture)总线规范,它是一组针对基于ARM核的、片上系统之间通信而设计的标准协议。因为ARM处理器的广泛使用而拥有众多第三方支持,被ARM公司90%以上的合作伙伴采用。在AMBA总线规范中,定义了AHB,APB,ASB这3种总线。最初的AMBA总线是ASB和APB。在它的第二个版本中,ARM引入了AHB。(l)AHB:AdvancedHighPerformaceBus,用于高性能系统模块的连接,支持突发模式数据传输和事务分割; (2)ASB:AdvancedSystemBus,也用于高性能系统模块的连接,支持突发模式数据传输,这是较老的系统总线格式,后来由AHB总线替代; (3)APB:AdvancedPeriPheralBus,用于较低性能外设的简单连接,一般是接在AHB或ASB系统总线上的第二级总线。图1典型的基于AMBA总线的系统[1]一个以AMBA为架构的SOC,图1是个典型的系统架构,一般来说包含了high-performance的systembus–AHB以及lowspeed,lowpower的peripheralbus-APB。Systembus是负责连接例如ARM之类的embeddedprocessor以及DMAcontroller,on-chipmemory和其他interface,或其他需要highbandwidth的模块。而peripheralbus则是用来连接系统的外围慢速模块,其协议规则相对AHB来说较为简单,它以AHB之间则通过Bridge相连,期望能減少systembus的loading。二:,Slave,Infrastructure三部分所组成。整个AHBbus上的传输都是由master所发出,由slave负责回应。而infrastructure则由arbiter,mastertoslavemultiplexor,slavetomastermultiplexor,decoder,dummyslave,dummymaster所组成。AHB总线互联结构图【2】AHB支持多主设备,所以需要仲裁器。AHB总线上最多可以有16个主模块和任意多个从模块,如果主模块数目大于16,则需再加一层结构(具体参阅ARM公司推出的Multi-layerAHB规范)。AHBArbitration的机制简述如下:essbus时候,master将HBUSREQsignal(busrequest)给drivehigh(每个master都有自己的HBUSREQ信号),essbus,因此arbiter在HCLK的risingedge去sample各个master的HBUSREQ信号后,需要决定哪个发出request的master有最高的priority(虽然仲裁规范是AMBA总线规范中的一部分,但具体使用的算法由设计工程师自行决定,AHB并没有规定priorityalgorithm,其中两个最常用的算法是固定优先级算法和循环制算法),然后将此master的HGRANT(busgrantsignal由arbiter给出)信号drivehigh,essbus了。(essbus,arbite
AMBA总线介绍 来自淘豆网www.taodocs.com转载请标明出处.