• APB协议


     在APB2协议中,定义了set up stageaccess stage

        定义两个stage其实就相当于定义两个时钟周期。因为APB的slave通常来说对应peripheral的registers,访问这些slave registers(control,status,write/read data)两个clock cycle就够了。对于status register而言是软件轮询的方式(每次访问同样是两个clock cycle)

       下图是一个APB2的读操作的例子, 因为PWRITE=0. Set up stage在T2时刻(因为PSEL=1, PENABLE=0),access stage在T3时刻(因为PSEL=1,PENABLE=1),读数据是在T3时刻返回的。

                                                                 图: APB2的读时序

                                                                  图:APB3的写时序

        可以看到PREADY信号中的access是被延长了的,在PREADY为低电平的收,外设没有准备好被写数据,直到PREADY为高的时候,才能够写数据,相应的PSEL和PWDATA都被延长了。

                                                                   图:APB3的读时序

        APB3是有error信号的,在access的最后一个阶段给出,如果有eeror的话,PREADY也PSLVERR都必须为1。对master而言,可以在这几个信号都为1的时候,去采集PSLVERR信号。

        APB3相较于APB2多了PREADY和PSLVERR两个信号。上文提到APB2,系统通常是通过软件的方式去轮询Peripheral的status register(两个clock cycle),APB3加了硬件的解决方法,Slave通过PREADY信号直接来告诉master现在Slave已经READY了,可以接受读写操作,如果此时不READY,那么master就要wait到它Ready,这样就不需要软件时刻去轮询status register了。对于PSLVERR而言,加入了Slave反馈给master error response功能。

        APB4比APB3多了什么信号PPROT和PSTRB信号。随着架构的不断发展以及对系统安全性的重视,在新的系统中通常会有security的要求,那么APB4也需要演进,PPROT信号主要就是为了表示当前的这个访问/transaction是secure的还是non-secure的,从而和整个系统的security保持一致性。PSTRB的信号的加入,能够使APB对某个byte进行读写操作。因为即使传输的是32位的信号,但是可能只有部分byte是有效的,用PSTRB的每一个bit来代表每个32位中的4个byte哪些是有效的。

  • 相关阅读:
    【杂谈】压行技巧(压代码)
    【UVA】11464 Even Parity(枚举子集)
    【POJ】2373 Dividing the Path(单调队列优化dp)
    【POJ】2329 Nearest number
    【BZOJ】1833: [ZJOI2010] count 数字计数(数位dp)
    【BZOJ】2809: [Apio2012]dispatching(左偏树)
    【BZOJ】2342: [Shoi2011]双倍回文(Manacher)
    【BZOJ】1912: [Apio2010]patrol 巡逻(树的直径)
    【BZOJ】1911: [Apio2010]特别行动队(斜率优化dp)
    【BZOJ】1913: [Apio2010]signaling 信号覆盖(计算几何+计数)
  • 原文地址:https://www.cnblogs.com/yiwenbo/p/10019105.html
Copyright © 2020-2023  润新知