【背景】
之前接触过AMBA,以为只是ARM自家的私有的总线呢。
后来得知,其是个相对通用的总线。
所以去总结一下。
AMBA总线
什么是AMBA总线
AMBA,是一种开放的协议,主要用于SoC内部和ASIC,用于连接各种功能模块
简称AMBA总线
其是ARM最开始设计出来的。
AMBA是相对使用比较广的片内总线技术,不单单是ARM专有的。
AMBA总线的仲裁
很明显,如果总线上存在多个主模块,就需要仲裁器来决定如何控制各种主模块对总线的访问。
AMAB也不例外。
AMBA总线仲裁的相关案例和应用
而对于AMBA总线仲裁的相关应用,之前就接触过AMS的SoC AS3536中,就有关于对应的优先顺序的设置:
即,对应的ARB寄存器,可以设置,AHB总线上面的数据的优先级
- ARMI:ARM的指令
- ARMD:ARM的数据
- DMAC:DMA控制器
- BRIDGE:AHB/APB 桥(Bridge)
可以通过配置,决定他们的优先级顺序。
另外,还有一个ARB:
暂时没完全搞懂这两个寄存器的区别。。。
AMBA总线应用举例
SoC AS2525中用到了AMBA
之前接触过AMS的AS3525,其是基于ARM922TDMI的:
然后第一次得知,其中的片内总线用的是AMBA,以为是ARM专有的总线呢。
后来得知,其是相对用的比较广的片内总线,被多家公司所采用的,不单单是ARM。
APM86491 SoC中用了AMBA
也是有AHB和APB。
Cortex M0+也用AMBA的AHB和APB
多个AMBA组件:AXI3/4, ACE, AHB, APB
S3C6410中也是用了AMBA
ARM Cortex-M0、Cortex-M3 和 Cortex-M4 处理器的示例系统也用到AMBA
S3C2412也用到AMBA
Diamond Core CPU也用到了AMBA
LEON中也有用AHBA
参考资料
Advanced Microcontroller Bus Architecture
http://images.anandtech.com/doci/5326/CatalinaAPM86491.png
AMBA based Subsystems: What does it take to verify them?
转载请注明:在路上 » 【整理】ARM的AMBA总线