ARM的AMBA總線,來學(xué)習(xí)一下!
【背景】
之前接觸過AMBA,以為只是ARM自家的私有的總線呢。
后來得知,其是個(gè)相對通用的總線。
所以去總結(jié)一下。
?
AMBA總線 什么是AMBA總線
AMBA,是一種開放的協(xié)議,主要用于SoC內(nèi)部和ASIC,用于連接各種功能模塊
簡稱AMBA總線
其是ARM最開始設(shè)計(jì)出來的。
AMBA是相對使用比較廣的片內(nèi)總線技術(shù),不單單是ARM專有的。
?
AMBA總線的仲裁
很明顯,如果總線上存在多個(gè)主模塊,就需要仲裁器來決定如何控制各種主模塊對總線的訪問。
AMAB也不例外。
?
AMBA總線仲裁的相關(guān)案例和應(yīng)用
而對于AMBA總線仲裁的相關(guān)應(yīng)用,之前就接觸過AMS的SoC AS3536中,就有關(guān)于對應(yīng)的優(yōu)先順序的設(shè)置:
即,對應(yīng)的ARB寄存器,可以設(shè)置,AHB總線上面的數(shù)據(jù)的優(yōu)先級
ARMI:ARM的指令 ARMD:ARM的數(shù)據(jù) DMAC:DMA控制器 BRIDGE:AHB/APB 橋(Bridge)
可以通過配置,決定他們的優(yōu)先級順序。
另外,還有一個(gè)ARB:
暫時(shí)沒完全搞懂這兩個(gè)寄存器的區(qū)別。。。
?
AMBA總線應(yīng)用舉例 SoC AS2525中用到了AMBA
之前接觸過AMS的AS3525,其是基于ARM922TDMI的:
然后第一次得知,其中的片內(nèi)總線用的是AMBA,以為是ARM專有的總線呢。
后來得知,其是相對用的比較廣的片內(nèi)總線,被多家公司所采用的,不單單是ARM。
?
APM86491 SoC中用了AMBA
也是有AHB和APB。
?
Cortex M0+也用AMBA的AHB和APB
?
?
多個(gè)AMBA組件:AXI3/4, ACE, AHB, APB
?
S3C6410中也是用了AMBA
?
ARM Cortex-M0、Cortex-M3 和 Cortex-M4 處理器的示例系統(tǒng)也用到AMBA
?
S3C2412也用到AMBA
?
Diamond Core CPU也用到了AMBA
?
?
LEON中也有用AHBA