1、对APB总线的理解
之前,说了片上互联总线,但是光有总线可是不行的,还需要片上总线协议支持才行,因为有了协议,才能对寄存器准确无误的进行操作。
说到片上总线协议,那可就多了,如ARM公司所用的AMBA总线,Silicore公司的wisbone总线,altera的avalon总线等。关于这些总线的知识,可以自行百度之。
片上总线协议,看着似乎很高级,其实就是一个约定双方通信的方式。有了这个通信的方式,双方就可以准确无误快速的进行通信了。
以下以ARM公司的AMBA总线为例说明,因为只对这个总线有研究过。不过只要对一种片上总线有了解,学习其他的片上总线很容易就学会了。
AMBA现在主要是有3种总线协议
AHB
APB
AXI
目前xilinx的zynq芯片使用的片上互联总线协议就是AXI4,比较高级的总线协议。
下面以APB总线来说明,因为这个协议是3个里面最简单的一个。
之前,有提出一个问题,CPU对寄存器操作,只能是在一个时钟内操作,但是如果对某些寄存器的操作需要若干个时钟周期呢,就需要将流水线暂停,直到对寄存器操作完成后,再开启流水线,执行之后的指令,但是CPU怎么知道什么时候流水线暂停,什么时候流水线开启了,就要借助APB协议了。
先来看看APB协议的接口:
原作者:卢骏
更多回帖