AMBA3APB协议规范ARM®西安XGY20101AMBA3APB协议规范关于该规范该规范使用于AMBA3APB协议,引用自AMBA3(不适用AMBA2或更早版本)使用范围该规范用来帮助硬件或软件工程师设计使用APB协议的系统或模块使用该规范该规范按照以下章节进行组织:Chapter1简介Chapter2传输Chapter3操作状态Chapter4信号描述目录第一章简介......................................................................................................................................................................21.1关于AMBA3APB............................................................................................................................................21.2AMBA3APB协议规范v1.0修改..................................................................................................................2第二章传输......................................................................................................................................................................32.1写传输................................................................................................................................................................32.1.1无等待状态.............................................................................................................................................32.1.2有等待状态.............................................................................................................................................32.2读传输................................................................................................................................................................42.2.1无等待状态.............................................................................................................................................42.2.2有等待状态.............................................................................................................................................42.3错误响应............................................................................................................................................................52.3.1写传输.....................................................................................................................................................52.3.2写传输.....................................................................................................................................................62.3.3PSLVERR映射......................................................................................................................................6第三章操作状态..............................................................................................................................................................73.1操作状态............................................................................................................................................................7第四章信号描述..............................................................................................................................................................84.1AMBA3APB信号............................................................................................................................................8AMBA3APB协议规范ARM®西安XGY20102第一章简介1.1关于AMBA3APBAPB属于AMBA3协议系列,它提供了一个低功耗的接口,并降低了接口的复杂性。APB接口用在低带宽和不需要高性能总线的外围设备上。APB是非流水线结构,所有的信号仅与时钟上升沿相关,这样就可以简化APB外围设备的设计流程,每个传输至少耗用两个周期。APB可以与AMBA高级高性能总线(AHB-Lite)和AMBA高级可扩展接口(AXI)连接。1.2AMBA3APB协议规范v1.0修改该版本包括:•一个准备好信号PREADY,来扩展APB传输•一个错误信号PSLVERR,来指示传输失败AMBA3APB协议规范ARM®西安XGY20103第二章传输2.1写传输写传输包括两种类型:•无等待状态•有等待状态2.1.1无等待状态图2-1显示了一个基本的无等待状态的写传输。图2-1无等待的写传输地址、写入数据、写入信号和选择信号都在时钟上升沿后改变。第一个时钟周期叫做Setupphase。下一个时钟沿后使能信号PENABLE被置位,表示Accessphase就位。地址、数据和控制信号在Accessphase期间有效。传输在该周期后结束。使能信号PENABLE,在传输结束后清空。选择信号PSELx同样被置低,除非紧接着下一传输开始。2.1.2有等待状态图2-2展示了PREADY信号是如何扩展了从器件的传输。在Accessphase期间,当PENABLE为高,传输可以通过拉低PREADY来扩展传输。下述信号仍旧不变:•地址:PADDR•写信号:PWRITE•选择信号:PSEL•使能信号:PENABLE•写入的数据:PWDATA.AMBA3APB协议规范ARM®西安XGY20104图2-2具有等待状态的写传输当PENABLE为低的时候,PREADY可以为任何值。确保外围器件有固定的两个周期来使PREADY为高提示:推荐地址和写信号在传输结束后不要立即更改,保持当前状态直到下一个传输,这样可以降低功耗。2.2读传输读传输包括以下两种类型:•无等待状态•有等待状态2.2.1无等待状态图2-3显示了一个读传输。从器件必须在读传输结束前提供数据。图2-3无等待状态读传输2.2.2有等待状态图2-4显示了信号是如何扩展传输的。如果在Accessphase期间PREADY信号拉低,则传输被扩展。但下述信号AMBA3APB协议规范ARM®西安XGY20105不变:•地址:PADDR•写信号:PWRITE•选择信号:PSEL•使能信号:PENABLE.图2-4显示了如何使用PREADY信号来添加两个周期,你也可以添加数个周期。图2-4具有等待状态的读传输2.3错误响应你可以使用PSLVERR来指示APB传输错误。当PSEL,PENABLE以及PREADY都为高时,PSLVERR才在最后一个周期进行判断。当任何一个PSEL,PENABLE或者PREADY为低时,你可以将PSLVERR拉低,这是推荐,并不是强制要求。事物处理收到一个错误后,可能或不可能改变外围器件的状态。APB外围设备不要求必须支持PSLVERR引脚,当不使用该引脚时,应被置低。2.3.1写传输图2-5是一个写传输失败的例子。图2-5写传输失败的例子AMBA3APB协议规范ARM®西安XGY201062.3.2写传输写传输同样可以使用错误响应,图2-6便是一个错误响应的例子图2-6读传输失败的例子2.3.3PSLVERR映射从AHB桥接到APBPSLVERR被映射到HRESP=ERROR(PSLVERR-HRESP[0])AMBA3APB协议规范ARM®西安XGY20107第三章操作状态3.1操作状态图3-1显示了APB的操作流程图3-1状态图状态机按照下面的状态执行:IDLE这是默认的APB状态SETUP当传输被请求时,总线进入SETUP状态,选择信号PSELx,被置位。总线仅在SETUP状态停留一个时钟周期,并在下一个时钟周期进入ACCESS状态ACCESS使能信号PENABLE,在ACCESS状态中置位。在传输从SETUP状态到ACCESS状态转变的过程中address,write,select和writedata信号必须保持不变。从ACCESS状态退出,由从器件的PREADY信号控制:•如果PREADY为低,保持ACCESS状态。•如果PREADY为高,则退出ACCESS状态,如果此时没有其它传输请求,总线返回IDLE状态,否则进入SETUP状态。AMBA3APB协议规范ARM®西安XGY20108第四章信号描述4.1AMBA3APB信号表4-1列举了APB信号描述表4-1APB信号描述信号来源描述PCLK时钟源时钟———