ARM中的总线用于不同部件之间的通信。有两种不同类型的设备连接到总线:ARM处理器,它是总线的主设备,拥有对总线的仲裁权,可以通过同一总线主动发起数据传输请求;外围器件,是总线的从设备,在总线上是被动的,只能对主设备发出的一个传输请求做出反应。
ARM的总线结构称为AMBA(高级微控制总线结构),是ARM推出的开放式总线结构,是目前流行的一种工业标准偏上结构。AMBA2.0规范包含四个部分:AHB、ASB、APB和Test Methodology,主要应用的是AHB、APB。
AHB主要用于高性能模块如CPU、DMA和DSP等之间的连接,作为SoC的偏上总线系统,它包括以下一些特性:
Single-Clock edge operation
Non-Tristate implementation
Burst transfers
Split transaction(分段传输)
Multiple bus master
可配置32位~128位总线宽度;支持字节、半字和字的传输。AHB系统Master、Slave和Infrastructure三部分组成。整个AHB上的传输都是由Master发出,由Slave负责回应。而Infrastructure由7部分组成:Arbiter、Master-To-Slave Multiplexer、Slave-To-Master Multiplexer、Decoder、Dummy Slave、Dummy Master。
由于AHB支持多个Master,因此需要Arbiter来仲裁;Decoder负责地址译码;Dummy Slave是虚拟Slave;Dummy Master是虚拟Master。
APB是外设总线,主要用于低带宽的片内周边外设之间的连接,如UART等,它的总线结构不想AHB支持多个Master,在APB里面,唯一的Master就是APB桥,因此不需要仲裁。
在AHB和APB之间,有AHB-APB桥,这是为了解决高性能器件和片内低带宽外设之家的匹配问题;AHB和片外总线之间,有一个AHB-外侨,这是为了解决片内高性能器件和片外设备之间的带宽不匹配。
另详细可参考:
《Introduction to AMBA Bus System》
《ARM amba总线介绍》http://blog.chinaunix.net/u2/60011/showart_1071564.html
ARM中的总线