一、AMBA概述
? ? AMBA (Advanced Microcontroller Bus Architecture) 高級(jí)處理器總線架構(gòu)
? ? AHB (Advanced High-performance Bus) 高級(jí)高性能總線
? ? ASB (Advanced System Bus) 高級(jí)系統(tǒng)總線
? ? APB (Advanced Peripheral Bus) 高級(jí)外圍總線
? ? AXI (Advanced eXtensible Interface) 高級(jí)可拓展接口
? ? 這些內(nèi)容加起來(lái)就定義出一套為了高性能SoC而設(shè)計(jì)的片上通信的標(biāo)準(zhǔn)。
? ? AHB主要是針對(duì)高效率、高頻寬及快速系統(tǒng)模塊所設(shè)計(jì)的總線,它可以連接如微處理器、芯片上或芯片外的內(nèi)存模塊和DMA等高效率模塊。
? ? APB主要用在低速且低功率的外圍,可針對(duì)外圍設(shè)備作功率消耗及復(fù)雜接口的最佳化。APB在AHB和低帶寬的外圍設(shè)備之間提供了通信的橋梁,所以APB是AHB或ASB的二級(jí)拓展總線。
AXI:高速度、高帶寬,管道化互聯(lián),單向通道,只需要首地址,讀寫(xiě)并行,支持亂序,支持非對(duì)齊操作,有效支持初始延遲較高的外設(shè),連線非常多。
幾種AMBA總線的性能對(duì)比分析

Master:能夠發(fā)起讀寫(xiě)操作,提供地址和控制信號(hào),同一時(shí)間只有1個(gè)Master會(huì)被激活。
Slave:在給定的地址范圍內(nèi)對(duì)讀寫(xiě)操作作響應(yīng),并對(duì)Master返回成功、失敗或者等待等狀態(tài)。
Arbiter:負(fù)責(zé)保證總線上一次只有1個(gè)Master在工作。仲裁協(xié)議是規(guī)定的,但是仲裁算法可以根據(jù)應(yīng)用決定。
Decoder:負(fù)責(zé)對(duì)地址進(jìn)行解碼,并提供片選信號(hào)到各Slave。
每個(gè)AHB都需要1個(gè)仲裁器和1個(gè)中央解碼器。
HADDR:32位系統(tǒng)地址總線
HTRANS:M指示傳輸狀態(tài),NONSEQ、SEQ、IDLE、BUSY
HWRITE:傳輸方向1-寫(xiě),0-讀
HSIZE:傳輸單位
HBURST:傳輸?shù)腷urst類型
HWDATA:寫(xiě)數(shù)據(jù)總線,從M寫(xiě)到S
HREADY:S應(yīng)答M是否讀寫(xiě)操作傳輸完成,1-傳輸完成,0-需延長(zhǎng)傳輸周期。需要注意的是HREADY作為總線上的信號(hào),它是M和S的輸入;同時(shí)每個(gè)S需要輸出自HREADY。所以對(duì)于S會(huì)有兩個(gè)HREADY信號(hào),一個(gè)來(lái)自總線的輸入,一個(gè)自己給到多路器的輸出。
HRESP:S應(yīng)答當(dāng)前傳輸狀態(tài),OKAY、ERROR、RETRY、SPLIT。
HRDATA:讀數(shù)據(jù)總線,從S讀到M。
兩個(gè)階段
地址周期(AP),只有一個(gè)cycle
數(shù)據(jù)周期(DP),由HREADY信號(hào)決定需要幾個(gè)cycle
流水線傳送
先是地址周期,然后是數(shù)據(jù)周期
AHB突發(fā)傳輸與AXI突發(fā)傳輸?shù)奶攸c(diǎn)
? ? AHB協(xié)議需要一次突發(fā)傳輸?shù)乃械刂?,地址與數(shù)據(jù)鎖定對(duì)應(yīng)關(guān)系,后一次突發(fā)傳輸必須在前次傳輸完成才能進(jìn)行。
? ? AXI只需要一次突發(fā)的首地址,可以連續(xù)發(fā)送多個(gè)突發(fā)傳輸首地址而無(wú)需等待前次突發(fā)傳輸完成,并且多個(gè)數(shù)據(jù)可以交錯(cuò)傳遞,此特征大大提高了總線的利用率。
? ? AHB總線與AXI總線均適用于高性能、高帶寬的SoC系統(tǒng),但AXI具有更好的靈活性,而且能夠讀寫(xiě)通道并行發(fā)送,互不影響;更重要的是,AXI總線支持亂序傳輸,能夠有效地利用總線的帶寬,平衡內(nèi)部系統(tǒng)。因此SoC系統(tǒng)中,均以AXI總線為主總線,通過(guò)橋連接AHB總線與APB總線,這樣能夠增加SoC系統(tǒng)的靈活性,更加合理地把不同特征IP分配到總線上。
主要應(yīng)用在低帶寬的外設(shè)上,如UART、 I2C,它的架構(gòu)不像AHB總線是多主設(shè)備的架構(gòu),APB總線的唯一主設(shè)備是APB橋(與AXI或APB相連),因此不需要仲裁一些Request/grant信號(hào)。APB的協(xié)議也十分簡(jiǎn)單,甚至不是流水的操作,固定兩個(gè)時(shí)鐘周期完成一次讀或?qū)懙牟僮?。其特性包括:兩個(gè)時(shí)鐘周期傳輸,無(wú)需等待周期和回應(yīng)信號(hào),控制邏輯簡(jiǎn)單,只有四個(gè)控制信號(hào)。APB上的傳輸可用如圖所示的狀態(tài)圖來(lái)說(shuō)明。
1、系統(tǒng)初始化為IDLE狀態(tài),此時(shí)沒(méi)有傳輸操作,也沒(méi)有選中任何從模塊。
2、當(dāng)有傳輸要進(jìn)行時(shí),PSELx=1,,PENABLE=0,系統(tǒng)進(jìn)入SETUP狀態(tài),并只會(huì)在SETUP狀態(tài)停留一個(gè)周期。當(dāng)PCLK的下一個(gè)上升沿到來(lái)時(shí),系統(tǒng)進(jìn)入ENABLE狀態(tài)。
3、系統(tǒng)進(jìn)入ENABLE狀態(tài)時(shí),維持之前在SETUP狀態(tài)的PADDR、PSEL、PWRITE不變,并將PENABLE置為1。傳輸也只會(huì)在ENABLE狀態(tài)維持一個(gè)周期,在經(jīng)過(guò)SETUP與ENABLE狀態(tài)之后就已完成。之后如果沒(méi)有傳輸要進(jìn)行,就進(jìn)入IDLE狀態(tài)等待;如果有連續(xù)的傳輸,則進(jìn)入SETUP狀態(tài)。
原文鏈接? https://blog.csdn.net/ivy_reny/article/details/56274412