小窥APB协议SPEC (2)

1、写传输

无等待状态的写传输
在这里插入图片描述
Setup阶段出现在图中的T1,PSEL拉高时意味着PADDR,PWRITE和PWDATA必须有效。
Access阶段出现在图中的T2,PENABLE拉高。PREADY若拉高表示写数据将在T3被接收。PADDR,PWDATA和任何其他控制信号,必须在传输完成前保持稳定。
传输结束后,PENABLE拉低。PSEL也拉低,除非相同的外设还有下一次传输。

有等待状态的写传输:
在这里插入图片描述
在Access阶段,当PENABLE为高电平,Completer通过拉低PREADY来扩展传输。在PREADY为低电平期间,下列信号要保持不变。
地址信号,PADDR
传输方向信号,PWRITE
选中信号,PSELx
使能信号,Enable
写数据信号,PWDATA
写选通信号,PSTRB
保护类型信号,PPROT
用户请求信号,PAUSER
用户写数据信号,PWUSER

2、读传输
无等待状态的读传输
在这里插入图片描述
有等待信号的读传输
在这里插入图片描述
3、错误响应
PSLVERR用于表示APB传输时的错误状态。错误情况在读事务和写事务中都有可能出现。
PSLVERR只在APB传输的最后一个周期被认为是有效的,即PSEL,PENABLE和PREADY均为高电平时。
接收到错误事务可能改变外设状态也可能不改变。当一次写事务收到错误响应,并不表示外设的寄存器没被更新。
读事务收到一个错误可以返回无效数据。并不要求外设返回全0数据。Requester在读传输中收到错误响应也可能使用数据,Completer不能根据错误响应来阻止读取PRDATA的值。
Completer可能不支持PSLVERR,若Completer没有这个接口,Requester的这个接口应该保持低电平。

错误的写传输
在这里插入图片描述
错误的读传输
在这里插入图片描述
当桥接时:
从AXI到APB:APB的错误信号PSLVERR映射给RRESP(读)和BRESP(写)
从AHB到APB:APB的错误信号PSLVERR映射给HRESP(读和写)。

4、保护单元支持
为支持复杂系统设计,有必要为互连组件和系统中的其他设备提供保护而不是非法事务。对于APB接口,这种保护由PPROT[2:0]信号提供。
在这里插入图片描述
PPROT[0]为高表示优先存取,为低表示普通存取。
PPROT[1]为高表示非安全存取,为低表示安全存取。
PPROT[2]为高表示指令存取,为低表示数据存取。

Requester无PPROT信号,而Completer有是不兼容的,除非保护信号固定是正确的。

5、唤醒信号
唤醒信号,PWAKEUP用于表示APB接口上的任何行为。PWAKEUP提供了一个可被路由至一个时钟控制器无glitch信号,或者类似的使能被连接的组件的电源和时钟的元件。该信号只能在APB5协议接口中被添加。

PWAKEUP信号
在这里插入图片描述
PWAKEUP对于PCLK是同步的,但一定会被另一个时钟域异步采样。这要求PWAKEUP是无glitch的,可以来自寄存器输出或者一个无glitch或门树。

PWAKEUP允许在PSELx拉高之前,之中,之后拉高。

Completer允许在PREADY拉高前等待PWAKEUP被拉高。在存在PWAKEUP接口但从未拉高的情况下,接口可以死锁。

若PWAKEUP和PSELx在同一个周期中拉高,PWAKEUP必须保持拉高到PREADY拉高。

建议PWAKEUP至少在PSELx拉高前一个周期拉高,防止一个新事务接收的延迟。

建议不再有传输时再拉低PWAKEUP。

建议Completer和Requester一同门控。否则Completer可能会错过setup阶段。

APB操作状态机:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值