1、阶段学习汇报 AMBA总线协议XXX1目录 1.AMBA总线简介 2.AMBA AHB 3.AMBA APB21.AMBA 总线简介 1.1 AMBA总线概述高级微控制器总线体系(Advanced Microcontroller Bus Architecture)规范定义了在设计高性能嵌入式微控制器时的一种片上通信标准 根据AMBA标准定义了三种不同的总线 高级高性能总线(Advanced High-performance Bus)高级系统总线(Advanced System Bus)高级外设总线(Advanced Peripheral Bus)3 1.1.1 高级高性能总线(AHB)用于高性
2、能、高时钟频率的系统模块。1.1.2 高级系统总线(ASB)用于高性能的系统模块之间。在并不要求AHB的高性能特征的地方使用。1.1.3 高级外设总线(APB)用于低功耗外设。41.2 AMBA规范的目的 促进带一个或多个CPU(或信号处理器)的嵌入式微控制器产品的第一时间开发 技术上独立并高复用度的外设和系统宏单元能在多在多样的的IC工序之工序之间方便的移植方便的移植,以及适用于完整定制、标准宏单元和门列阵技术 鼓励标准系统设计以提高处理器的独立性,提供高级cache CPU的发展路线图和外设库的发展 降低硅的下部构造要求以支持用在操作和生产测试时有效的片上和片外通信5 AMBA是为了推出o
3、n-chip bus的规范,一开始AMBA1.0只有ASB和APB,为了节省面积,bus协议都是tristate的bus;到2.0的AHB,为了方便设计者(tristate bus需要花更多精力注意timing),改用Mux结构,并增加了新特性。61.3 基于AMBA的典型微控制器 基于AMBA的微控制器,包含一个高性能系统中枢总线(AHB或ASB)和外设总线APB。System bus负责连接ARM之类的embedded processor,DMA controller,on-chip memory和其他interface,或其他需要high bandwidth的元件。Peripheral
4、bus则用来连接系统的周边元件,该协议相对AHB要简单很多。与AHB之间通过桥接器(Bridge)相连。7 一个典型的AMBA系统如下图82.AMBA AHB AHB是为了提出高性能可综合设计的要求而产生的新一代AMBA总线。它的一些特性包括单时钟沿操作(Single-clock edge operation)非三态执行(Non-tristate implementation)突发传输(Burst transfers)分块处理(Split transaction)多主机(Multiple bus master)92.1 概述 AHB System 由Master,Slave,Infrastru
5、cture三部分组成。所有的传输(transfer)都是由master发出,由slave回应。而infrastructure则由arbiter,master to slave mux,slave to master mux,decoder,dummy slave,dummy master组成。10 为了支持multiple master,需要arbiter来仲裁;decoder负责位解码,从multiple slave中选择要回应transfer的slave。两个mux则负责bus的routing(以不适用tristate bus)。如下图11 Bus上传输的信号有七种:clock,arbit
6、ration,address,control signal,write data,read data,response signal 除了clock和arbitration之外,其他的信号都会经过mux。经过master to slave mux的信号为:address,control signal,write data经过slave to master mux的为:read data,response signal12NameSourceDescriptionHCLKClock sourceBus clock.All signal timings are related to the ris
7、ing edge of HCLKHRESETnReset controllerActive LOW.HADDR31:0Master32-bit system busHTRANS1:0MasterCurrent transfer typeHWRITEMasterH:write.L:readHSIZE2:0MasterSize of transferHBURST2:0MasterIndicate if the transfer forms part of a burstHPROT3:0MasterImplement some level of protectionHWDATA31:0MasterW
8、rite data bus13NameSourceDescriptionHSELxDecoderSlave select signalHRDATA31:0SlaveRead data busHREADYSlaveH:transfer done;L:extending transferHRESP1:0SlaveTransfer responseHBUSREQxMasterBus requestHLOCKxMasterLocked transferHGRANTxArbiterBus grant signal HMASTER3:0ArbiterIndicate granted master numb
9、erHMASTLOCKArbiterLocked sequenceHSPLITx15:0SlaveSplit completion request142.2 Basic transfer 在AHB bus上,一次完整的transfer可分为两个阶段:address phase和data phaseaddress phase 传送 address,control signaldata phase 传送 wrtie/read data,response signal.如图15 transfer 在 data phase 时若无法在1个clock cycle内完成,slave可用HREADY信号延长
10、transfer。参考下图,当HREADY为Low时,表示transfer尚未结束,为High是则表示transfer结束。16 由于一次transfer需要两个phase,为了增加总线的performance,AHB将多次transfer pipeline。当前transfer的data phase与下一次transfer的address phase是重叠的。172.3 Control signal AHB上的control signal分5类HTRANS1:0:Transfer typeHBURST2:0:Burst typeHPORT3:0:Protection controlHSIZE
11、2:0:Transfer size HWRITE:Transfer direction182.3.1 Transfer type(HTRANS1:0)IDLE(00)指示slave忽略目前的transfer BUSY(01)burst transfer时,若master无法及时将数据准备好,发出BUSY通知slave NONSEQ(10)指示目前transfer的address和control signal和之前的transfer不一样 SEQ(11)指示目前transfer的address和control signal和之前的transfer一样,通常用在busrt transfer中192
12、02.3.2 Burst type(HBURST2:0)AHB支持8种burst type21 HBURST=010(WRAP4)22 HBURST=011(INCR4)23 HBURST=100(WRAP8)24 HBURST=101(INCR8)252.3.3 Transfer direction(HWRITE)HWRTIE=HIGH master在data phase将数据置于write data bus HWDATA31:0上,传输给slave HWRTIE=LOW slave在data phase将数据置于read data bus HRDATA31:0上,传输给master 262
13、3.4 Transfer size(HSIZE2:0)272.3.5 Protection control(HPROT3:0)让master提供额外的protection information。Slave在设计时尽量不使用HPROT信号282.4 Slave response 在transfer结束时,slave可以用HRESP1:0告诉master结束的状态。AHB中transfer结束时的状态可分为4种:OKAY,ERROR,RETRY,SPLIT OKAY表示transfer成功 ERROR表示transfer失败 RETRY和SPLIT则是用于当slave判断目前的transfer
14、需要很多个bus cycle才能完成,为了避免当前的transfer将bus一直占有,回应RETRY/SPLIT response给master,表示说目前的transfer并未完成,master需要重新发出相同的transfer再试一次。而arbiter可以将bus释放给其他有需要的master29RETRY和SPLIT的区别 RETRY:arbiter内master的优先权不变。拥有高优先权的master发出request时,bus还是由高优先权的master获得 SPLIT:当arbiter观察到master收到SPLIT response时,则该master的优先权mask起来,使其无
15、法获得bus。若所有master都收到SPLIT,则arbiter把bus交给dummy master(只会发出IDLE transfer)。当发出SPLIT response的slave处理完transfer之后,会发出HSPLIT信号给arbiter,将master的优先权unmask。30 SPLIT能让低优先权的master在合理的情况下,取得bus的所有权,让AHB有更好的设计。缺点是,是设计更加复杂。4个response中,OKAY需要1个cycle,其他三个response都需要2个cycle。312.5 Arbitration 当master想要access bus时,将HBU
16、SREQ置高,arbiter在HHCLK的上升沿采样各个master的HBUSREQ信号后,将拥有最高优先权的master的HGRANT信号置高,使其能够access bus。当master正在进行burst transfer,如果有更高优先权的master发出了request,arbiter可以等待当前burst完成后再将bus grant给新的master,也可以中断当前的transfer,将bus交给优先级更高的master。被中断的master需重新发出request,等到下次被grant bus是继续完成burst transfer。32 当arbiter决定在当前burst结束后,
17、转移bus的所有权,arbiter会在倒数第二个transfer的address被sample之后,改变HRANT信号,所有新的HGRANT信号会跟最后一个transfer的address一起在同一个时间被sample33 RETRY/SPLIT response时,其第二个cycle必须是IDLE transfer以便让arbiter去改变bus owner。下图介绍HGRANT如何利用IDLE transfer的cycle变化343.AMBA APB APB主要用在连接低带宽的外设时。APB里唯一的master就是APB bridge(与AHB bus相连)。因此,不需要arbiter,以
18、及一些request/grant信号。特性Always two-cycle transferNo wait cycle&response signal353.1 APB概述 APB上的transfer如下图中的state diagram一开始为IDLE state,此时没有transfer,也没有slave被选择当有transfer要进行时,PSELx=1,PENABLE=0,进入SETUP state,且只停留一个cycle。进入ENABLE state时,之前在SETUP state的PADDR,PSEL,PWRTIE皆保持不变,只有PENABLE被置H。Transfer也只在ENABLE
19、保持一个cycle,若之后没有其他的transfer则又进入IDLE。36NameDescriptionPCLKBus clock.PRESETnAPB reset.Active LOWPADDR31:0APB address busPSELxIndicates that the slave device is selected.PENABLEIndicates the second cycle of an APB transferPWRITETransfer direction.H for write access,L for read accessPRDATARead data busPW
20、DATAWrite data bus373.2 Write transfer T2-T4为一个APB的write transfer。T2-T3为SETUP cycle T3-T4为ENABLE cycle 整个transfer过程当中,address/control/data信号都维持不变。Transfer结束之后,PENABLE一定会变L。为了节省能量,若接下来无其他transfer,address/write信号维持不变。383.3 Read transfer 除了PWRITE为L之外,其他的address/select等信号与write transfer时一样。在read transfer时,slave必须在ENABLE cycle给APB bridge提供data,以便在T4时采样。393.4 APB slave与APB bridge 在设计APB slave时,可以选择在以下两种情况latch write data当PSEL=H时的任何一个cycle当PSEL=H时,PENABLE的上升沿 对于read data,则可以在PWRITE=L,而PSEL,PENABLE均为H时,去drive read data bus。40谢谢谢谢!41
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818