用ARM芯片開發(fā)的看過來!今天來總結(jié)下AMBA總線
之前接觸過AMBA,以為只是ARM自家的私有的總線呢,后來得知,這是個(gè)相對(duì)通用的總線,所以來總結(jié)學(xué)習(xí)一下。
什么是AMBA總線
AMBA,是一種開放的協(xié)議,主要用于SoC內(nèi)部和ASIC,用于連接各種功能模塊,簡稱AMBA總線。
其是ARM最開始設(shè)計(jì)出來的。AMBA是相對(duì)使用比較廣的片內(nèi)總線技術(shù),不單單是ARM專有的。
AMBA總線的仲裁
很明顯,如果總線上存在多個(gè)主模塊,就需要仲裁器來決定如何控制各種主模塊對(duì)總線的訪問。
AMAB也不例外。
AMBA總線仲裁的相關(guān)案例和應(yīng)用
而對(duì)于AMBA總線仲裁的相關(guān)應(yīng)用,之前接觸過AMS的SoC AS3536中,就有關(guān)于對(duì)應(yīng)的優(yōu)先順序的設(shè)置:
即,對(duì)應(yīng)的ARB寄存器,可以設(shè)置,AHB總線上面的數(shù)據(jù)的優(yōu)先級(jí)。
ARMI:ARM的指令
ARMD:ARM的數(shù)據(jù)
DMAC:DMA控制器
BRIDGE:AHB/APB 橋(Bridge)
可以通過配置,決定他們的優(yōu)先級(jí)順序。
另外,還有一個(gè)ARB:
這兩個(gè)寄存器有啥區(qū)別?有待再學(xué)習(xí)。
AMBA總線應(yīng)用舉例
SoC AS2525中用到了AMBA
AMS的AS3525是基于ARM922TDMI的:
第一次得知,其中的片內(nèi)總線用的是AMBA,以為是ARM專有的總線呢。
后來才知道,AMBA是相對(duì)用的比較廣的片內(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
(本文轉(zhuǎn)自網(wǎng)絡(luò),感謝原作者的辛苦分享)
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場,如有問題,請聯(lián)系我們,謝謝!