资源描述:
《AMBA APB4 与 AMBA3 AHB-Lite 1.0 协议介绍》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、AMBAAPB4与AMBA3AHB-Lite1.0协议介绍2013年09月18日16:09 绝对好文关键词:AMBA,APB4,AHB-Lite作者:AllenZhan[介绍]根据ARM的说法,今天AMBA已经成为了业界事实上的总线标准.本文我们简单对AMBA4中的APBv2.0(也称为APB4),以及AMBA3AHB-Litev1.0进行简单的了解.我们的介绍集中在,我们比较有兴趣的地方.尽管如此,也可能几乎覆盖了协议中几个最重要的部分.[AMBAAPB]AMBAAdvancedMicrocontrollerBusArchitecture,由ARM定义的总线架构(标准),由一个协议家族组成
2、.ARM声称这一标准已经称为事实上的uController业界通用标准.APBTheAdvancedPeripheralBus(APB)是AMBA协议家族中一个组成部分.它被定义为一个low-cost的接口,为了最小能耗与减小接口的复杂性进行的优化设计.被用于连接通用外围,比如timers,inerruptcontrollers,UART是,andIOs.通过system-to-peripheralbusbridge与mainsystembus相连,有助于降低能耗.APB版本当前(2013年9月),最近的APB协议版本是AMBAAPBProtocolSpecificationv2.0.或者因为
3、属于AMBA4家族中的发布协议,一般也被称为APB4.而在第一个版本(APB2)中,APB的基本组元,APBbridge与APBslave被定义.而在APB3中,Readysignal被引入,这意味着增加了操作状态中,增加了waitstate.另外增加了PSLVERR,用于错误报告的signal.最近的APB4,增加了PPROT与PSTRBsignal.APBbridge与APBslave我们可以挂载各种"慢速"的外设在APB上,比如IO,比如UART,比如SPI,etc.它们都作为slave的角色存在.但是,我们想想看,bridge这个role就蛮有意思.它实际上暗示我们,APB不能"单独存
4、在".我们这里所谓不能"单独存在"的意思,是说APB一定不能直接连接在processor上(或者说armcore上).而最可能的,是通过APBbridge而连接在高速的bus上.实际上,在AHB-Lite协议中,我们发现APBbridge被作为AHB-Lite的slave而被定义.DatabusesAPB协议有两个独立的databus,一个用来读data,一个用来写data.因为没有独立的握手信号,所以在两根bus上,同一时刻数据传输不能同时发生.WriteTransfers我们简单对APB的trasfers过程进行分析,比如我们分析writetransferwithnowaitstates:
5、[图例1:Writetransferwithnowaitstates]T0:IdlestateT1:SetupstatewriteaddressPADDR,writedataPWDATAsetupstate仅仅只保持1pcsclockcycle,而在下一个PCLK的上升沿,一定进入Accessstate.T2:AccessstateAPBbridge通过拉高PENABLE,通知slave第二阶段(也就是accessphase)开始.因为是nowaitstates,我们见到了PREADY在此被拉高,表示slave通知bridge,在下一个PCLK的上升沿,本次transfer的过程可以结束.T3
6、:finishtransfer,thenenterIdlestateagainorthenextsetup.PREADY拉低,说明slave通知本次transfer结束.在PREADYunasserted之前,PADDR,PWDATA,以及其他的signals都应该保持有效.从上述时序中,我们了解到,writetransfer看来至少需要3cycles.setup-access-finish而在一个writetransferwithwaitstates时序中,[图例2:Writetransferwithwaitstates]我们见到了,Slave通过unassert的方式(拉低),延迟了2pc
7、scycles(根据图例的例子),这样在T2状态上的拉高动作,被延时到T4进行拉高.也就是Slave通知在T5cycle中结束本次transfer.这就是通过PREADY引入了waitstate后现象,我们注意到,一般的术语被称为"extendthetransfer".OperatingStatesReadTransfer的情形与WriteTransfer类似,这样,我们就基本完备讲述了APBpr