一、AMBA概述
AMBA (Advanced Microcontroller Bus Architecture) 高級微處理器總線架構定義了高性能嵌入式微控制器的通信標準,可以將RISC處理器(精簡指令集處理器)集成在其他IP芯核和外設中,它是有效連接IP核的“數字膠”,并且是ARM復用策略的重要組件;它不是芯片與外設之間的接口,而是ARM內核與芯片上其他元件進行通信的接口。比如Xilinx公司的Zynq芯片,就是ARM與FPGA之間的連接通路 .主要包括:
AHB (Advanced High-performance Bus) 高級高性能總線
ASB (Advanced System Bus) 高級系統總線----用的很少
APB (Advanced Peripheral Bus) 高級外圍總線
AXI (Advanced eXtensible Interface) 高級可拓展接口
這些內容加起來就定義出一套為了高性能SoC而設計的片上通信的標準;
AHB主要是針對高效率、高頻寬及快速系統模塊所設計的總線,它可以連接如微處理器、芯片上或芯片外的內存模塊和DMA等高效率模塊;
APB主要用在低速且低功率的外圍,可針對外圍設備作功率消耗及復雜接口的最佳化;APB在AHB和低帶寬的外圍設備之間提供了通信的橋梁,所以APB是AHB或ASB的二級拓展總線 ;
AXI:高速度、高帶寬,管道化互聯,單向通道,只需要首地址,讀寫并行,支持亂序,支持非對齊操作,有效支持初始延遲較高的外設,連線非常多;
幾種AMBA總線的性能對比分析:
AHB與AXI、APB的區別與聯系
AHB是先進的高性能總線,AXI是先進的可擴展接口,APB是高級外圍總線;
AHB和APB都是單通道總線,不支持讀寫并行;而AXI是多通道總線,總共分為五個通道,能夠實現讀寫并行;
AHB和AXI都是多主/從設備,且通過仲裁機制實現總線控制權的分配;而APB是單主設備多從設備,其主設備就是APB橋,不具有仲裁機制;
在數據操作方面,AHB和AXI支持突發傳輸,APB不支持;此外,AXI支持數據的非對齊操作,AHB不支持;
二、AHB總線
AHB總線強大之處在于它可以將微控制器(CPU)、高帶寬的片上RAM、高帶寬的外部存儲器接口、DMA總線控制器,以及各種AHB接口的控制器等連接起來構成一個獨立的完整SOC系統,還可以通過AHB-APB橋來連接APB總線系統。主要包括以下四個部分:
Master AHB主控制器:主控制器可以通過地址和控制信息,可以進行初始化,讀,寫操作,同一時間只有1個Master會被激活;
Slave AHB從設備:從設備通常是指在其地址空間內,響應主控制器發出的讀寫控制操作的被動設備,并對Master返回成功、失敗或者等待等狀態,完成數據的傳輸控制;
Arbiter AHB仲裁器:仲裁器根據用戶的配置,確保在總線上同一時間只有一個主控制器擁有總線控制權限,從而保證總線上一次只有1個Master在工作;AHB總線只能存在一個仲裁器;
Decoder AHB譯碼器:負責對地址進行解碼,并提供片選信號到各Slave;AHB總線只能有一個譯碼器;
每個AHB都需要1個仲裁器和1個中央解碼器,且有且僅有一個!
*AHB基本信號 *
HADDR:32位系統地址總線;
HTRANS:M指示傳輸狀態,NONSEQ、SEQ、IDLE、BUSY;
HWRITE:傳輸方向1-寫,0-讀;
HSIZE:傳輸單位;
HBURST:傳輸的burst類型;
HWDATA:寫數據總線,從M寫到S;
HREADY:S應答M是否讀寫操作傳輸完成,1-傳輸完成,0-需延長傳輸周期。需要注意的是HREADY作為總線上的信號,它是M和S的輸入;同時每個S需要輸出自HREADY。所以對于S會有兩個HREADY信號,一個來自總線的輸入,一個自己給到多路器的輸出;
HRESP:S應答當前傳輸狀態,OKAY、ERROR、RETRY、SPLIT;
HRDATA:讀數據總線,從S讀到M;
*AHB基本傳輸 *
兩個階段
地址周期(AP),只有一個cycle
數據周期(DP),由HREADY信號決定需要幾個cycle
流水線傳送
先是地址周期,然后是數據周期
AHB突發傳輸與AXI突發傳輸的特點
AHB協議需要一次突發傳輸的所有地址,地址與數據鎖定對應關系,后一次突發傳輸必須在前次傳輸完成才能進行;
AXI只需要一次突發的首地址,可以連續發送多個突發傳輸首地址而無需等待前次突發傳輸完成,并且多個數據可以交錯傳遞,此特征大大提高了總線的利用率;
AHB總線與AXI總線均適用于高性能、高帶寬的SoC系統,但AXI具有更好的靈活性,而且能夠讀寫通道并行發送,互不影響;更重要的是,AXI總線支持亂序傳輸,能夠有效地利用總線的帶寬,平衡內部系統。因此SoC系統中,均以AXI總線為主總線,通過橋連接AHB總線與APB總線,這樣能夠增加SoC系統的靈活性,更加合理地把不同特征IP分配到總線上;
三、APB總線
APB是一種優化的,低功耗的,精簡接口總線,可以技術多種不同慢速外設;主要應用在低帶寬的外設上,如UART、 I2C,它的架構不像AHB總線是多主設備的架構,APB總線的唯一主設備是APB橋(與AXI或APB相連),因此不需要仲裁一些Request/grant信號。
APB總線協議包含一個APB橋,它用來將AHB,ASB總線上的控制信號轉化為APB從設備控制器上可用信號。APB總線上所有的外設都是從設備,這些從設備有以下特點:
a 接收有效的地址和控制訪問
b 當APB上的外設處于非活動狀態時,可以將這些外設處于0功耗狀態
c 譯碼器可以通過選通信號,提供輸出時序(非鎖定接口)
d 訪問時可執行數據寫入
APB的協議也十分簡單,甚至不是流水的操作,固定兩個時鐘周期完成一次讀或寫的操作。其特性包括:兩個時鐘周期傳輸,無需等待周期和回應信號,控制邏輯簡單,只有四個控制信號。APB上的傳輸可用如圖所示的狀態圖來說明:
1、系統初始化為IDLE狀態,此時沒有傳輸操作,也沒有選中任何從模塊;
2、當有傳輸要進行時,PSELx=1,,PENABLE=0,系統進入SETUP狀態,并只會在SETUP狀態停留一個周期。當PCLK的下一個上升沿到來時,系統進入ENABLE狀態;
3、系統進入ENABLE狀態時,維持之前在SETUP狀態的PADDR、PSEL、PWRITE不變,并將PENABLE置為1。傳輸也只會在ENABLE狀態維持一個周期,在經過SETUP與ENABLE狀態之后就已完成。之后如果沒有傳輸要進行,就進入IDLE狀態等待;如果有連續的傳輸,則進入SETUP狀態;
- 寫傳輸
- 讀傳輸
四、ASB總線
ASB總線主要用于高性能系統模塊。ASB是可用于AHB不需要的高性能特性的芯片設計上可選的系統總線。ASB也支持高性能處理器,片上內存,片外內存提供接口和慢速外設。高性能,數據傳輸,多總線主控制器,突發連續傳輸。ASB總線是位于APB總線架構之上的用于高性能的總線協議,它有如下特點:
a 突發連續傳輸
b 單管道數據傳輸
c 多總線主控制器
五、基于AMBA的片上系統
大多數掛在總線上的模塊(包括處理器)只是單一屬性的功能模塊:主模塊或者從模塊。主模塊是向從模塊發出讀寫操作的模塊,如CPU,DSP等;從模塊是接受命令并做出反應的模塊,如片上的RAM,AHB/APB 橋等。另外,還有一些模塊同時具有兩種屬性,例如直接存儲器存取(DMA)在被編程時是從模塊,但在系統讀傳輸數據時必須是主模塊。
如果總線上存在多個主模塊,就需要仲裁器來決定如何控制各種主模塊對總線的訪問。雖然仲裁規范是AMBA總線規范中的一部分,但具體使用的算法由RTL設計工程師決定,其中兩個最常用的算法是固定優先級算法和循環制算法。AHB總線上最多可以有16個主模塊和任意多個從模塊,如果主模塊數目大于16,則需再加一層結構(具體參閱ARM公司推出的Multi-layer AHB規范)。
APB 橋既是APB總線上唯一的主模塊,也是AHB系統總線上的從模塊。其主要功能是鎖存來自AHB系統總線的地址、數據和控制信號,并提供二級譯碼以產生APB外圍設備的選擇信號,從而實現AHB協議到APB協議的轉換。
-
處理器
+關注
關注
68文章
19286瀏覽量
229853 -
Xilinx
+關注
關注
71文章
2167瀏覽量
121429 -
總線
+關注
關注
10文章
2881瀏覽量
88090 -
AMBA
+關注
關注
0文章
68瀏覽量
14991 -
RISC
+關注
關注
6文章
462瀏覽量
83734
發布評論請先 登錄
相關推薦
評論