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