【背景】
之前接觸過AMBA,以為只是ARM自家的私有的總線呢。
后來得知,其是個相對通用的總線。
所以去總結一下。
?
AMBA總線
什么是AMBA總線
AMBA,是一種開放的協(xié)議,主要用于SoC內部和ASIC,用于連接各種功能模塊
簡稱AMBA總線
其是ARM最開始設計出來的。
AMBA是相對使用比較廣的片內總線技術,不單單是ARM專有的。
?
AMBA總線的仲裁
很明顯,如果總線上存在多個主模塊,就需要仲裁器來決定如何控制各種主模塊對總線的訪問。
AMAB也不例外。
?
AMBA總線仲裁的相關案例和應用
而對于AMBA總線仲裁的相關應用,之前就接觸過AMS的SoC AS3536中,就有關于對應的優(yōu)先順序的設置:
即,對應的ARB寄存器,可以設置,AHB總線上面的數據的優(yōu)先級
ARMI:ARM的指令 ARMD:ARM的數據 DMAC:DMA控制器 BRIDGE:AHB/APB 橋(Bridge)
可以通過配置,決定他們的優(yōu)先級順序。
另外,還有一個ARB:
暫時沒完全搞懂這兩個寄存器的區(qū)別。。。
?
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 處理器的示例系統(tǒng)也用到AMBA
?
S3C2412也用到AMBA
?
Diamond Core CPU也用到了AMBA
?
?
LEON中也有用AHBA