- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AMBA协议总结
基于AMBA的微控制器结构基于AMBA的微控制器典型地由一个高性能系统中枢总线(AHB或者ASB)组成,能够支持外部存储器带宽,包括CPU\片上存储器和其他直接数据存取(DMA)设备。这条总线为上述单元之间大多数的传输提供高带宽接口。在这条高性能总线上也有一个桥接器以连接低带宽的APB,而在APB上连接着大多数的系统外设。图 1 基于AMBA的典型微控制器AHB总线架构图 2 AHB结构框图AHB系统设计包括以下的成分:AHB主机 总线主机能够通过提供地址和控制信息发起读写操作。任何时候只允许一个总线主机处于有效状态并能使用总线。AHB从机总线从机在给定的地址空间范围内响应读写操作。总线从机将成功、失败或者等待数据传输的信号返回给有效的主机。AHB仲裁器总线仲裁器确保每次只有一个总线主机被允许发起数据传输。即使仲裁协议已经固定,任何一种仲裁算法,比如最高优先级或者公平访问都能根据应用要求而得到执行。地址、写数据总线多路选择器地址、写数据总线多路选择器根据Hmaster总线仲裁结果进行主机地址、写数据的选通输出。AHB译码器AHB译码器用来对每次传输进行地址译码并且在传输中包含一个从机选择信号。所有AHB执行都必须仅要求有一个中央译码器,从而进行从机的选通。读数据、响应总线多路选择器读数据、响应总线多路选择器根据Hsel信号从机选通信号,进行读数据和响应信号的选通输出。APB桥APB桥是AMBA APB中的唯一总线主机。另外,APB桥也是AHB总线中的一个从机。其实现AHB总线到APB总线的转换。本设计支持模式Hburst中支持单一传输、未定长度增量突发、定长增量突发,不支持回环突发模式。Hresp不支持Retry、Split模式。仲裁中,不支持未定长增量突发提前终止。传输数据大小支持字节、半字、字传输。不支持保护控制Hprot[3:0]。不支持锁定传输Hlock。可配置参数表 1 AHB可配置参数可配置参数说明ARM_SIZE传输数据位宽ARM_BURST传输模式ARM_INCRNUM非定长突发长度MASTER0_2Master地址SLAVE0_2Slave地址PSLAVE0_2Pslave地址注:Haddr[31:28],AHB slave地址。Haddr[27:24],APB slave地址。AMBA AHB总线分模块AHB总线Wrapper表 2 AHB Master写Wrapper接口信号名方向作用Clk输入提供AHB时钟Arm_reqx输入Master请求总线信号Arm_en输出总线授予,请求主机发送地址数据Arm_wdata输入提供传输数据Arm_addr输入传输地址Arm_write输入对/写请求信号注:Arm_addr和Arm_data相位相同。表 3 AHB Slave Wrapper接口信号名方向作用Ram_addr输出Slave与外部的地址Ram_wdata输出Slave与外部的写数据Ram_write输出Slave与外部的写使能Ram_read输出Slave与外部的读使能Ram_rdata输入Slave与外部的读数据注:Ram_addr和Ram_wdata相位相同。Ram_rdata晚于Ram_addr一个时钟周期。AHB主机典型的一个AMBA系统设计者应该使用预先设计的总线主机因此就不需要关注总线主机接口的细节。图 3 AHB主机接口图 4 AHB主机传输时序AHB主机状态跳转流程:主机模块设计中,主要包括以下几个状态:空闲Idle,总线请求Req,非连续传输Nonseq,连续传输Seq,非定长突发Nonfix。主机在Req状态向Arbiter进行总线请求,在收到Arbiter的Hgrantx信号,且当前Hready为高时跳转到Nonseq进行Single数据传输;在Nonseq状态下判断Burst模式,如为定长突发,跳转至Seq,若为非定长突发,跳转至Nonfix;Seq下进行突发长度计数,计够则跳转Idle,Seq下地址输出对Hready进行判断,当采样到Hready为高时,进行地址的自加,在Seq下不需进行总线请求;Nonseq下进行非定长突发传输,Nonseq下地址的自加需要判断Hready和Hgrantx_reg需要一直进行总线请求。注:AHB总线上地址和数据遵从流水线传输,数据晚于地址一个时钟周期。在地址输出之后的一个周期,如果Hready为高,则进行数据的输出。注:在对APB bridge进行读操作时,因为Haddr有效后第二个时钟才会有数据输出,和AHB下第一个时钟输出数据不一致,故需要特别考虑。注:在突发模式下进行计数时,应在Hready为高时进行计数加1.注:在状态跳转中需要判断Hready信号,因为总线上地址和数据的跳变需要在Hready为高时才能进行。传输类型Htrans[1:
文档评论(0)