簡介
AHB=Advanced High Performance Bus,譯作高級高性能匯流排。如同USB(Universal Serial Bus)一樣,也是一種匯流排接口。
AHB主要用於高性能模組(如CPU、DMA和DSP等)之間的連線,作為SoC的片上系統匯流排,它包括以下一些特性:單個時鐘邊沿操作;非三態的實現方式;支持突發傳輸;支持分段傳輸;支持多個主控制器;可配置32位~128位匯流排寬度;支持位元組、半字和字的傳輸。AHB 系統由主模組、從模組和基礎結構(Infrastructure)3部分組成,整個AHB匯流排上的傳輸都由主模組發出,由從模組負責回應。基礎結構則由仲裁器(arbiter)、主模組到從模組的多路器、從模組到主模組的多路器、解碼器(decoder)、虛擬從模組(dummy Slave)、虛擬主模組(dummy Master)所組成。其互連結構如圖1所示。針對Soc設計中IP復用問題提出了一種新的解決辦法。傳統的方法是將特定功能模組的非標準接口標準化為AHB主/從設備接口。本文提出了一種新的基於ARM的Soc通用平台設計暫存器匯流排標準接口,這種設計使整個系統的結構清晰,增強系統的通用性與系統中功能模組的可移植性。
AMBA
AMBA 2.0規範包括四個部分:AHB、ASB、APB和Test Methodology。AHB的相互連線採用了傳統的帶有主模組和從模組的共享匯流排,接口與互連功能分離,這對晶片上模組之間的互連具有重要意義。AMBA已不僅是一種匯流排,更是一種帶有接口模組的互連體系。
APB
APB主要用於低頻寬的周邊外設之間的連線,例如UART、1284等,它的匯流排架構不像AHB支持多個主模組,在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狀態。
轉換
大多數掛在匯流排上的模組(包括處理器)只是單一屬性的功能模組:主模組或者從模組。主模組是向從模組發出讀寫操作的模組,如CPU,DSP等;從模組是接受命令並做出反應的模組,如片上的RAM,AHB/APB 橋等。另外,還有一些模組同時具有兩種屬性,例如直接存儲器存取(DMA)在被編程時是從模組,但在系統讀傳輸數據時必須是主模組。如果匯流排上存在多個主模組,就需要仲裁器來決定如何控制各種主模組對匯流排的訪問。雖然仲裁規範是AMBA匯流排規範中的一部分,但具體使用的算法由RTL設計工程師決定,其中兩個最常用的算法是固定優先權算法和循環制算法。AHB匯流排上最多可以有16個主模組和任意多個從模組,如果主模組數目大於16,則需再加一層結構(具體參閱ARM公司推出的Multi-layer AHB規範)。APB 橋既是APB匯流排上唯一的主模組,也是AHB系統匯流排上的從模組。其主要功能是鎖存來自AHB系統匯流排的地址、數據和控制信號,並提供二級解碼以產生APB外圍設備的選擇信號,從而實現AHB協定到APB協定的轉換。