AMBA协议学习一之APB协议
作者:互联网
引言
本文针对AMBA3家族中的APH协议。
APB协议是一种低成本的协议,它提供低功耗且复杂度最低的精简接口。对于任何外设而言,APB接口不需要流水线总线接口的高性能并且具有低带宽的特性。APB接口兼容AHB-Lite与AXI协议。
传输
APB协议具有三种传输方式:
- Write transfer
- Read transfer
- Error response
首先介绍写传输
Write transfer
写传输分为2类,一类是无等待阶段写传输,另一类是有等待阶段写传输。
No wait states
无等待阶段写传输的时序如下:
先看后文中对于各信号的解释:
第一个时钟周期称之为setup阶段,给出地址,写信号拉高,同时选通信号拉高。下一时钟周期声明使能信号即PENABLE,表明进入访问阶段,在此阶段地址,数据和控制信号都要保持有效。时钟周期结束表示传输完成。
使能信号PENABLE在传输结束时刻撤除,PSEL如果没有紧接着一次传输的话也会在结束时拉低
With wait states
这种模式的传输是从机可以通过控制PREADY信号进行扩展, 在访问阶段当PENABLE高有效时,将PREADY信号拉低数个周期,保持相应信号不变。时序如下所示:
Read transfer
读传输与写传输一样具有两个模式
No wait states
读传输的时序如下图所示:可以看出这里PWRITE拉低,意味着读指令,因此在一定程度上精简了接口,不需要多个通道来分别指示读写。从机必须要在读传输结束前提供数据。
With wait states
具有等待阶段的读传输如下图所示:相应的地址信号、写信号、选通信号和使能信号都在额外的时钟周期保持了不变。这里PREADY在使用前延迟了2个时钟周期,实际设计中可以任意设置延迟时间。
Error response
在APB读写传输中都可能出现传输错误,因此PSLVERR信号标志了错误的传输情况。该信号仅在APB传输的最后一个时钟周期有效,即PSEL/PENABLE/PREADY都高有效时有效。
该协议建议非采样时刻将该信号置0,即PSEL/PENABLE/PREADY任意一信号为0时。
但是APB外设不是一定需要支持该信号引脚的,当外设不支持时将该信号拉低。
下图表示写传输时出错的时序:
Mapping of PSLVERR
当存在桥接时,存在两种映射情况
AXI to APB:一个APB的错误映射为RRESP/BRESP,即读传输错误映射为RRESP[1]而写传输错误映射为BRESP[1]。
AHB to APB:一个APB的错误映射为HRESP,即读/写传输错误均映射为HRESP[0]。
操作状态
APB的操作活动如下所示:
该状态机一共3个状态,当存在传输需求时进入SETUP状态,此时拉高PSEL信号,该总线在此阶段只保持1个时钟周期并在下一个时钟上升沿到来时进入ACCESS状态。当进入ACCESS状态后即拉高PENABLE信号,当状态由SETUP进入ACCESS状态时地址信号、写信号、选通信号和写数据信号都要保持稳定。
从ACCESS状态跳变到其他状态是由PREADY信号控制的,如果PREADY信号保持为低则状态保持在ACCESS不变,若从机将PREADY信号拉高则推出ACCESS状态,并且当没有传输请求时回到IDLE状态,但是如果有另一个请求,则直接跳转至SETUP状态。
参考文献
标签:状态,一之,PREADY,传输,信号,APB,AMBA,时钟 来源: https://www.cnblogs.com/Achilles7/p/16036471.html