您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 综合/其它 > 6-AMBA总线(6学时)
(AdvancedHigh-performanceBus)ASB(AdvancedSystemBus)APB(AdvancedPeripheralBus)和APBAMBA3.0AMBAAdvancedeXtensibleInterface(AXI)系统处理器和其它主设备/从设备都是可以替换的高速总线,高性能流水线操作可支持多个总线主设备(最多16个)支持burst传输总线带宽:8、16、32、64、128bits上升沿触发操作对于一个新设计建议使用AHB传输总线带宽:8、16、32bits三态、双向总线(不适于做DFT)下降沿或者上升沿触发低速总线、低功耗接口简单在Bridge中锁存地址信号和控制信号适用于多种外设上升沿触发主设备(master)初始化一次读/写操作某一时刻只允许一个主设备使用总线uP、DMA、DSP、LCDC…AHB从设备(slave)响应一次读/写操作通过地址映射来选择使用哪一个从设备外部存储器控制器EMI、APBbridge、UART、…AHB仲裁器(arbiter)允许某一个主设备控制总线在AMBA协议中没有定义仲裁算法AHB译码器(decoder)通过地址译码来决定选择哪一个从设备可以锁存所有的地址、数据和控制信号进行二级译码来产生APB从设备选择信号APB总线上的所有其他模块都是APB从设备不是流水线方式接口是零功耗例:DMA例:DMAStep0:CPU检查DMA的状态以确认是否可用While(1){Read(0x30004,&status)if(status==0)break;}例:DMAStep1:CPU设置(sourceaddress)、(destinationaddress)(size)Write(0x30008,0x10000)Write(0x3000C,0x20000)Write(0x30010,0x100)Step2:启动DMAWrite(0x30000,0x1)例:DMAStep3:DMA把数据从memory1传送到memory2例:DMAStep4:DMA向CPU发出中断请求Step5:CPU检查DMA的状态Read(0x30004,&status)传输发起一个请求给仲裁器驱动地址和控制信号允许某个主设备控制总线仅选中的从设备响应地址/控制信号拉高HREADY信号,总线传输完成(APB)DefaultSlave0x0000_00000xFFFF_FFFFcaseHADDRiswhen….=HSELebi=‘1’;when….=HSELsram=‘1’;when….=HSELapb=‘1’;whenothers=HSELdefault=‘1’;endcase;DecoderlogicSlave2(InternalMemory)Default_SlavelogiccaseHTRANSiswhenIDLE|BUSY=HRESP=OKAY;whenothers=HRESP=ERROR;endcase;Slave1(External)0xCFFF_FFFF0xC000_00000x5000_FFFF0x5000_00000x3FFF_FFFF0x0000_0000[31:0]32位系统地址总线HWDATA[31:0]写数据总线,从主设备写到从设备HRDATA[31:0]读数据总线,从从设备读到主设备信号(续)HTRANS指出当前传输的状态NONSEQ、SEQ、IDLE、BUSYHSIZE指出当前传输的大小HBURST指出传输的burst类型HRESP从设备发给主设备的总线传输状态OKAY、ERROR、RETRY、SPLITHREADY高:从设备指出传输结束低电平:从设备需延长传输周期传输两个阶段地址周期,只有一个cycle数据周期,由HREADY信号决定需要几个cycle流水线传送先是地址周期,然后是数据周期’treadytoreceivedata,howtodo?基本AHB传输(续)一次无需等待状态的简单传输:slaveshouldn’tinsertmorethan16waitcycles!!!基本AHB传输(续)需要两个等待周期的简单传输基本AHB传输(续):SingleTransferIncrementingtransferwithunspecifiedlength(INCR)4-beat8-beat16-beatSlavehasknowthatmasterneed4data,A/A+4/A+8/A+12Duringbursttransfer,ifslavenotready,thenhready=0;butifmasterisnotready,howtodo?基本AHB传输(续)[1:0]:当前传输的状态IDLE、BUSY、NONSEQ、SEQ00:IDLE主设备占用总线,但没进行传输两次burst传输中间主设备发IDLE01:BUSY主设备占用总线,但是在burst传输过程中还没有准备好进行下一次传输一次burst传输中间主设备发BUSY传输类型(续)10:NOSEQ表明一次单个数据的传输或者一次burst传输的第一个数据地址和控制信号与上一次传输无关11:SEQ表明burst传输接下来的数据地址和上一次传输的地址是相关的高电平:写低电平:读HSIZE[2:0]000:8bits100:128bits001:16bits101:256bits010:32bits110:512bits011:64bits111:1024bits最大值受总线的配置所限制通常使用32bits(010)控制信号(续)HPROT[3:0]HPROT[0]:OPCODE/DATAHPROT[1]:USER/PRIVILGEDHPROT[2]:Bufferable/Non-BufferableHPROT[3]:Cacheable/Non-Cacheable[1:0]IDLEBUSYNONSEQSEQHBURST[2:0]SINGLEINCRWRAP[4|8|16]INCR[4|8|16]HSIZE[2:0]ByteHalfwordWordDoubleword...HPROT[3:0]0-data/opcode1-privileged/user2-bufferable3-cacheableHADDRmustbealignedtoamultipleofdatasizeasgivenbyHSIZE(1)AMBA简介AMBA2.0:AHB、ASB、APBAHB的组成部分AHBmaster、AHBslave、AHBarbiter、AHBdecoderAPB的组成部分AHB2APBbridge、APBslaveAHB信号HCLK、HRESETn、HADDR、HTRANS、HWRITE、HSIZE、HBURST、HWDATA、HSELx、HRDATA、HREADY、HRESP(2)AHB传输的两个阶段地址周期、数据周期当前传输的状态HTRANSIDLE、BUSY、NOSEQ、SEQ猝发传输类型HBURSTSINGLE、INCR(如何开始一次新的INCR传输?)Burst传输不可跨越1K边界HSEL:由AHBdecoder通过地址映射给出AHBslave响应信号:HREADY传输完成、HRESP传输响应(OK、ERROR、RETRY)AHBslave短时间无法响应?长时间无法响应?、8beat、16beat
本文标题:6-AMBA总线(6学时)
链接地址:https://www.777doc.com/doc-4886693 .html