• 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哪些是有效的。

  • 相关阅读:
    eclipse中设置自动生成的author,date等注释
    【转】科大校长给数学系学弟学妹的忠告&本科数学参考书
    Eclipse的properties文件中文乱码解决方法
    log4j快速入门
    启动tomcat出现Removing obsolete files from server... Could not clean server of obsolete ……错误
    eclipse构建及运行maven web项目
    Eclipse+Maven创建webapp项目
    linux中通过lsof恢复删除的文件,前题是fd被占用。
    IP工具类-自己动手做个ip解析器
    第4章 集合类
  • 原文地址:https://www.cnblogs.com/yiwenbo/p/10019105.html
Copyright © 2020-2023  润新知