最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【整理】ARM的AMBA总线

ARM crifan 10889浏览 0评论

【背景】

之前接触过AMBA,以为只是ARM自家的私有的总线呢。

后来得知,其是个相对通用的总线。

所以去总结一下。

 

AMBA总线

什么是AMBA总线

AMBA,是一种开放的协议,主要用于SoC内部和ASIC,用于连接各种功能模块

简称AMBA总线

其是ARM最开始设计出来的。

AMBA是相对使用比较广的片内总线技术,不单单是ARM专有的。

 

AMBA总线的仲裁

很明显,如果总线上存在多个主模块,就需要仲裁器来决定如何控制各种主模块对总线的访问。

AMAB也不例外。

 

AMBA总线仲裁的相关案例和应用

而对于AMBA总线仲裁的相关应用,之前就接触过AMS的SoC AS3536中,就有关于对应的优先顺序的设置:

as3536 aro reg definition

即,对应的ARB寄存器,可以设置,AHB总线上面的数据的优先级

  • ARMI:ARM的指令
  • ARMD:ARM的数据
  • DMAC:DMA控制器
  • BRIDGE:AHB/APB 桥(Bridge)

可以通过配置,决定他们的优先级顺序。

另外,还有一个ARB:

as3536 arb register definition

暂时没完全搞懂这两个寄存器的区别。。。

 

AMBA总线应用举例

SoC AS2525中用到了AMBA

之前接触过AMS的AS3525,其是基于ARM922TDMI的:

AS3525 soc use amba

然后第一次得知,其中的片内总线用的是AMBA,以为是ARM专有的总线呢。

后来得知,其是相对用的比较广的片内总线,被多家公司所采用的,不单单是ARM。

 

APM86491 SoC中用了AMBA

APM86491 SoC use amba

也是有AHB和APB。

 

Cortex M0+也用AMBA的AHB和APB

Cortex M0  also use AMBA AHB APB

 

 

多个AMBA组件:AXI3/4, ACE, AHB, APB

multile amba componet AXI3 4 ACE AHB APB

 

S3C6410中也是用了AMBA

Samsung S3C6410 ECM block diagram

 

ARM Cortex-M0、Cortex-M3 和 Cortex-M4 处理器的示例系统也用到AMBA

ARM Cortex-M0 Cortex-M3 Cortex-M4 use amba

 

S3C2412也用到AMBA

S3C2412 also use amba

 

Diamond Core CPU也用到了AMBA

Diamond Core CPU also use amba

 

 

LEON中也有用AHBA

LEON Architecture Overview use amba

 

 

参考资料

Advanced Microcontroller Bus Architecture

AS3525_Datasheet_v1_13.pdf

AS3525_PB_1v0.pdf

AMBA、AHB、APB总线简介

APM86491 SoC

Google 搜:AHB apb

http://images.anandtech.com/doci/5326/CatalinaAPM86491.png

Cortex M0+

AMBA based Subsystems: What does it take to verify them?

s3c6410芯片

ECM-S3C6410 Series

S3C2412

Diamond Core CPU

leon3

Hardware IP: LEON core

转载请注明:在路上 » 【整理】ARM的AMBA总线

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
83 queries in 0.280 seconds, using 22.11MB memory