ARM中的總線用于不同部件之間的通信。有兩種不同類型的設(shè)備連接到總線:ARM處理器,它是總線的主設(shè)備,擁有對(duì)總線的仲裁權(quán),可以通過(guò)同一總線主動(dòng)發(fā)起數(shù)據(jù)傳輸請(qǐng)求;外圍器件,是總線的從設(shè)備,在總線上是被動(dòng)的,只能對(duì)主設(shè)備發(fā)出的一個(gè)傳輸請(qǐng)求做出反應(yīng)。
ARM的總線結(jié)構(gòu)稱為AMBA(高級(jí)微控制總線結(jié)構(gòu)),是ARM推出的開(kāi)放式總線結(jié)構(gòu),是目前流行的一種工業(yè)標(biāo)準(zhǔn)偏上結(jié)構(gòu)。AMBA2.0規(guī)范包含四個(gè)部分:AHB、ASB、APB和Test Methodology,主要應(yīng)用的是AHB、APB。
AHB主要用于高性能模塊如CPU、DMA和DSP等之間的連接,作為SoC的偏上總線系統(tǒng),它包括以下一些特性:
Single-Clock edge operation
Non-Tristate implementation
Burst transfers
Split transaction(分段傳輸)
Multiple bus master
可配置32位~128位總線寬度;支持字節(jié)、半字和字的傳輸。AHB系統(tǒng)Master、Slave和Infrastructure三部分組成。整個(gè)AHB上的傳輸都是由Master發(fā)出,由Slave負(fù)責(zé)回應(yīng)。而Infrastructure由7部分組成:Arbiter、Master-To-Slave Multiplexer、Slave-To-Master Multiplexer、Decoder、Dummy Slave、Dummy Master。
由于AHB支持多個(gè)Master,因此需要Arbiter來(lái)仲裁;Decoder負(fù)責(zé)地址譯碼;Dummy Slave是虛擬Slave;Dummy Master是虛擬Master。
APB是外設(shè)總線,主要用于低帶寬的片內(nèi)周邊外設(shè)之間的連接,如UART等,它的總線結(jié)構(gòu)不想AHB支持多個(gè)Master,在APB里面,唯一的Master就是APB橋,因此不需要仲裁。
在AHB和APB之間,有AHB-APB橋,這是為了解決高性能器件和片內(nèi)低帶寬外設(shè)之家的匹配問(wèn)題;AHB和片外總線之間,有一個(gè)AHB-外僑,這是為了解決片內(nèi)高性能器件和片外設(shè)備之間的帶寬不匹配。
另詳細(xì)可參考:
《Introduction to AMBA Bus System》
《ARM amba總線介紹》http://blog.chinaunix.net/u2/60011/showart_1071564.html