APB协议的几种状态

APB(Advanced Peripheral Bus) 作为高级外设总线是AMBA协议之一,也是最基本的总线协议。按照ARM官方定义,APB是一种低成本的接口协议,可以实现低功耗以及精简的接口设计,降低接口设计的复杂度。

APB协议不支持流水线设计,它主要应用在低带宽设计需求的接口中,高性能带宽需求可以使用AXI总线。APB协议的实现与时钟沿对齐,以简化外设接口的设计。每次传输至少需要消耗两个时钟周期

在SOC设计中,APB一般作为IP的配置接口,包括低速IP如I2C,UART,I2S等,也包括DDR,PCIe,Ethernet等高速IP,可以方便的实现CPU对外设IP的寄存器配置。系统中一般会实现一个AXI2APB或者AHB2APB的转换桥将APB口挂载在系统上。

对于这种简单的接口,我们一般不会特别关注它的状态是如何跳转的,但是有时候面试官会考察。

APB传输:

 

IDLE:APB的默认状态,此时没有数据传输,PSEL,PENABLE,均为default 0

SETUP:当需要进行一个传输的时候,APB首先进入到这个状态;PSELx信号首先拉高,总线仅仅在SETUP状态停留一个时钟周期,然后接着在下一个时钟上升沿进入ACCESS状态。

ACCESS:在SETUP状态转换到ACCESS,PENABLE信号被拉高;在SETUP状态转换到ACCESS状态这段时间里,address ,write,select,和write data信号必须保持稳定。

ACCESS状态的跳转取决于slave输出的PREADY信号状态:

1)如果PREADY为0,表示slave还没有准备接收传输的数据,或者没有准备好输出的数据,会让其继续处于ACCESS状态。

2)如果PREADY为1,表示slave已完成数据,可以跳转到其他状态,如果后面有连续的数据传输则直接跳转到SETUP,如果没有传输,直接回到IDLE;

with no wait state

 

 

 slave可以通过pready拉低,来延长slave的响应时间。此时需要注意,其他信号需要保持不变。

通过PSTRB[n]控制PWDATA[(8*n+7):8*n]的数据写有效。可以方便的实现部分数据控制;

Error response

 APB协议可以通过PSLVERR信号表示对应传输错误,只不过在APB协议中error只有1bit表示所有的错误,具体的协议实现如下:

 需要注意的是,PSLVERR是与PREADY信号同时返回的,只有这样master才能正确采样得到的错误信号,在salve内部处理之前需要将PREADY拉低等待内部检测是否有错误发生。

APB还增加了安全属性:Protection transaction

PPROT[2:0]可以实现APB传输的保护控制:

PPROT[0]表示不同优先级的传输,可实现salve对不同优先级数据的特殊处理操作;

PPROT[1]表示对不同安全属性的数据传输,对secure和non_secure的数据进行数据处理;

PPROT[2]表示此时传输是数据还是指令传输; 

USER SIGNAL

APB信号增加了USER信号,可针对地址,读写数据,响应增加USER信号,可以用来传输用户自定信号,增加协议的灵活性。信号的有无,以及位宽可以用户自定义。

APB协议还有PARITY protection, 和PWAKEUP信号;不常用,这里不做过多介绍;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值