一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

淺析AMBA規(guī)范以及AMBA 5 AHB接口和AMBA 3 APB接口

 waston 2018-01-30


一、AMBA簡介

1、AMBA (Advanced Microprocessor Bus Architecture):
ARM? AMBA? 協(xié)議是用于連接和管理片上系統(tǒng) (SoC) 中功能模塊的開放標(biāo)準(zhǔn)和片上互連規(guī)范。它有助于首次開發(fā)帶有大量控制器和外設(shè)的多處理器設(shè)計。AMBA 基于 CHI?、ACE?、AXI?、AHB?、APB? 和 ATB? 等規(guī)范為 SoC 模塊定義了共同的框架結(jié)構(gòu),這有助于設(shè)計的重復(fù)使用。

2、AHB (Advanced High-Performance Bus):主要用于單片機(jī)中的系統(tǒng)總線。
主要用于Cortex-M家族的處理器。

3、APB (Advanced Peripheral Bus):用于低帶寬的外設(shè)之間的連接。

4、ATB (Advanced Trace Bus):用于在芯片間傳輸 trace 數(shù)據(jù)。

5、ACE (AXI Coherency Extensions):用于智能手機(jī)中的 big.LITTLE? 系統(tǒng)。
主要用于Cortex-A15、Cortex-A17、Cortex-A7架構(gòu)的處理器。

6、AXI (Advanced eXtensible Interface):用得最多的 AMBA 接口,在復(fù)雜的片上系統(tǒng)中至多連接100個主、從模塊。
主要用于Cortex-A、Cortex-R、Mali v500、Mali T760系列的處理器。

7、CHI (Coherent Hub Interface):用于許多服務(wù)器與網(wǎng)絡(luò)應(yīng)用程序所需要的高可擴(kuò)展性的片上系統(tǒng)。
主要用于Cortex-A72、Cortex-A57、Cortex-A53架構(gòu)的處理器。

二、AMBA 5 AHB 接口

1、概覽:
AMBA AHB總線接口適用于高性能的綜合設(shè)計。它定義了主模塊(Cortex?-M 內(nèi)核、DMA 存儲器、DMA 外設(shè)、以太網(wǎng) DMA、USB OTG HS DMA等)、連接組件從模塊(內(nèi)部 Flash、內(nèi)部 SRAM、AHB-APB 總線橋、APB 外設(shè)、FSMC等)之間的接口。

大多數(shù)掛在總線上的模塊(包括CPU)只是單一屬性的功能模塊:主模塊或者從模塊。主模塊是向從模塊發(fā)出讀寫操作的模塊,如CPU、DSP等;從模塊是接受命令并做出反應(yīng)的模塊,如片上的RAM,AHB/APB 橋等。另外,還有一些模塊同時具有兩種屬性,例如直接存儲器存取(DMA)在被編程時是從模塊,但在系統(tǒng)讀傳輸數(shù)據(jù)時必須是主模塊。

在高性能、高時鐘頻率的系統(tǒng)中AMBA AHB具有以下四個特點(diǎn):
a. 突發(fā)傳輸;
b. 單個時鐘邊沿操作;
c. 非三態(tài)的實(shí)現(xiàn)方式;
d. 64、128、256、512和1024位帶寬可調(diào)的數(shù)據(jù)總線。
*注:突發(fā)傳輸(Burst)是指在同一行中相鄰的存儲單元連續(xù)進(jìn)行數(shù)據(jù)傳輸?shù)姆绞?,連續(xù)傳輸?shù)闹芷跀?shù)就是突發(fā)長度(Burst Lengths,簡稱BL)。

大部分AHB從模塊是內(nèi)部存儲器、外部存儲器接口和高帶寬外設(shè)。雖然低帶寬的外設(shè)也能作為AHB的從模塊,但是從系統(tǒng)性能的角度來考慮,它們應(yīng)該位于AMBA APB總線上。橋接AHB和APB總線使用作為AHB從模塊的APB橋。

Figure 1-1展示了一個由一個主模塊和三個從模塊組成的AHB總線系統(tǒng)。這個總線的連接邏輯由一個地址譯碼器和一個由從到主的多路復(fù)用器組成。譯碼器根據(jù)從主模塊輸出的地址選擇對應(yīng)的從模塊,并且使多路復(fù)用器挑選出對應(yīng)從模塊輸出的數(shù)據(jù)返回給主模塊。
Figure 1-1 AHB block diagram
*注:Figure 1-1僅僅展示了主要的地址和數(shù)據(jù)總線以及一般情況下的數(shù)據(jù)路由,不是所有的信號都被展示出來了。

在使用一個在不同主模塊和對應(yīng)從模塊之間提供仲裁和路由信號的連接組件的情況下,AHB也支持多個主模塊的設(shè)計。具體請參考Multi-layer AHB規(guī)范。

2、AHB接口各部分說明:
主模塊提供了用于初始化讀寫操作的地址和控制信息。Figure 1-2展示了主模塊的接口:
Figure 1-2 Master interface
*注:Figure 1-2沒有展示在AHB5協(xié)議中新增加的信號。

在系統(tǒng)中從模塊用于響應(yīng)主模塊的初始化操作。從模塊根據(jù)從譯碼器發(fā)出的HSELx選擇信號響應(yīng)總線中的傳輸指令。
從模塊返回如下兩個信號給主模塊:
a. 完成傳輸或者繼續(xù)傳輸;
b. 傳輸成功或者傳輸失敗。
Figure 1-3展示了從模塊的接口:
Figure 1-3 Slave interface
*注:Figure 1-3沒有展示在AHB5協(xié)議中新增加的信號。

連接組件負(fù)責(zé)連接系統(tǒng)中的主模塊和從模塊。單個主模塊的系統(tǒng)僅僅需要使用一個譯碼器和多路復(fù)用器。而多個主模塊的系統(tǒng)需要在不同主模塊和對應(yīng)從模塊之間提供仲裁和路由信號。包括地址、控制以及寫數(shù)據(jù)信號的路由。

3、AHB接口工作過程:
主模塊通過驅(qū)動地址和控制信號啟動整個傳輸過程。這些信號提供傳輸?shù)牡刂贰⒎较蚝臀粚捫畔?,以及表明該次傳輸為突發(fā)傳輸模式中的哪一種??梢杂幸韵氯N傳輸模式:
a. 單次傳輸;
b. 沒有地址邊界的遞增突發(fā)傳輸(incrementing bursts);
c. 有特定地址邊界的包裝突發(fā)傳輸(wrapping bursts)。

寫數(shù)據(jù)總線將數(shù)據(jù)從主模塊搬運(yùn)到從模塊,讀數(shù)據(jù)總線將數(shù)據(jù)從從模塊搬回主模塊。

每次傳輸包含以下兩個階段:
地址傳輸階段:一個地址和控制信號的時鐘周期;
數(shù)據(jù)傳輸階段:一個或多個數(shù)據(jù)傳輸?shù)臅r鐘周期。

由于從模塊無法延長地址傳輸階段的時間,因此所有從模塊必須在規(guī)定時間內(nèi)完成地址的采集。但是從模塊可以使用HREADY信號向主模塊請求延長數(shù)據(jù)傳輸階段的時間。當(dāng)該HREADY信號為低電平的時候,傳輸過程將被插入等待狀態(tài),這樣從模塊就有額外的時間可以提供或者采集數(shù)據(jù)。

從模塊使用HRESP信號表明傳輸成功或者是失敗。

4、AHB總線上各個信號的說明:
a. 全局信號:
HCLK:時鐘信號,由時鐘源產(chǎn)生。所有信號均在HCLK信號的上升沿傳輸。

HRESETn:復(fù)位信號,由復(fù)位控制器產(chǎn)生。低電平有效,復(fù)位整個系統(tǒng)和總線。

b. 主模塊信號(由主模塊產(chǎn)生的信號):
HADDR[31:0]:32位系統(tǒng)地址總線,該信號發(fā)送至從模塊和譯碼器。

HBURST[2:0]:單次傳輸或者突發(fā)傳輸類型,該信號發(fā)送至從模塊。支持4次、8次或者16次的突發(fā)長度。支持遞增突發(fā)傳輸(incrementing bursts)和包裝突發(fā)傳輸(wrapping bursts),并且支持未定義長度的遞增突發(fā)傳輸。

HMASTLOCK:主模塊鎖定,該信號發(fā)送至從模塊。如果為高電平則代表當(dāng)前傳輸?shù)男盘枮楸绘i定傳輸序列的一部分。該信號與地址和控制信號同步更新。

HPROT[3:0]:保護(hù)控制信號,該信號發(fā)送至從模塊。提供了額外的如何處理系統(tǒng)中總線上的存取指令的信息。該信號表明總線上傳輸?shù)氖谦@取操作碼的指令還是存取數(shù)據(jù)的指令,以及傳輸?shù)氖翘貦?quán)模式下的存取指令還是用戶模式下的存取指令。

HPROT[6:4]HPROT信號的三位擴(kuò)展,增加了擴(kuò)展的存儲器類型,該信號發(fā)送至從模塊。該信號擴(kuò)展僅僅在AHB5協(xié)議中的Extended_Memory_Types選項(xiàng)為True的時候被支持。

HSIZE[2:0]:表明傳輸數(shù)據(jù)的大小,該信號發(fā)送至從模塊??梢詾橐粋€字節(jié)、半字或者一個字,最大不允許超過1024位。

HNONSEC:表明當(dāng)前處于非安全傳輸模式還是安全傳輸模式,該信號發(fā)送至從模塊和譯碼器。該信號僅僅在AHB5協(xié)議中的Secure_Transfers選項(xiàng)為True的時候被支持。

HEXCL:獨(dú)立傳輸模式,該信號發(fā)送至獨(dú)立存取監(jiān)視器(Exclusive Access Monitor)。表明當(dāng)前傳輸?shù)臄?shù)據(jù)為獨(dú)立存取序列的一部分。該信號僅僅在AHB5協(xié)議中的Exclusive_Transfers選項(xiàng)為True的時候被支持。

HMASTER[3:0]:主模塊標(biāo)識符,該信號發(fā)送至獨(dú)立存取監(jiān)視器以及從模塊。如果主模塊具有多個獨(dú)立存取能力的線程,則主模塊生成該信號。為確保每個主模塊有唯一的標(biāo)識符,連接器可以修改該信號。該信號僅僅在AHB5協(xié)議中的Exclusive_Transfers選項(xiàng)為True的時候被支持。

HTRANS[1:0]:表明當(dāng)前的傳輸類型,該信號發(fā)送至從模塊??梢匀DLE、BUSY、NONSEQUENTIAL、SEQUENTIAL四種類型。

HWDATA[31:0]:主模塊向從模塊進(jìn)行寫操作期間寫數(shù)據(jù)總線傳輸?shù)臄?shù)據(jù),該信號發(fā)送至從模塊。寫數(shù)據(jù)總線的位寬不一定為32,可以為其他值。不過建議數(shù)據(jù)總線位寬最少為32位,這樣可以操作更高的帶寬。

HWRITE:表明傳輸?shù)姆较?,該信號發(fā)送至從模塊。高電平表示寫操作,低電平表示讀操作。該信號與地址信號同步更新。但是在突發(fā)傳輸模式時,該信號必須保持不變。

c. 從模塊信號(由從模塊產(chǎn)生的信號,全部發(fā)送至多路復(fù)用器):
HRDATA[31:0]:在讀操作期間被選中的從模塊向連接多路復(fù)用器的讀數(shù)據(jù)總線發(fā)送的數(shù)據(jù)。然后多路復(fù)用器將數(shù)據(jù)傳輸給主模塊。讀數(shù)據(jù)總線的位寬不一定為32,可以為其他值。不過建議數(shù)據(jù)總線位寬最少為32位,這樣可以操作更高的帶寬。

HREADYOUT:如果為高電平則表明傳輸結(jié)束,如果為低電平則表明繼續(xù)傳輸。

HRESP:傳輸響應(yīng)信號,通過多路復(fù)用器之后向主模塊提供額外的傳輸狀態(tài)信息。如果為低電平則表明傳輸狀態(tài)為OKAY,如果為高電平則表明傳輸狀態(tài)為ERROR。

HEXOKAY:表明獨(dú)立傳輸是否成功的信號。該信號僅僅在AHB5協(xié)議中的Exclusive_Transfers選項(xiàng)為True的時候被支持。

d. 譯碼器信號(由譯碼器產(chǎn)生的信號):
HSELx:在系統(tǒng)中字母“x”必須被替換為每個從模塊唯一的標(biāo)識符,例如“HSEL_S1”、“HSEL_S2”和“HSEL_Memory”,該信號發(fā)送至從模塊。每一個從模塊有它自己的選擇信號HSELx。該信號表明當(dāng)前傳輸?shù)男盘柺轻槍Ρ贿x中的從模塊。當(dāng)一個從模塊剛剛被選中,它必須先檢查HREADY信號以確定之前的總線傳輸已經(jīng)完成。然后從模塊才能相應(yīng)當(dāng)前的傳輸信號。HSELx信號與地址總線的譯碼器相結(jié)合。

e. 多路復(fù)用器信號(由多路復(fù)用器信號產(chǎn)生的信號):
HRDATA[31:0]:被譯碼器所選中的讀數(shù)據(jù)總線,該信號發(fā)送至主模塊。
HREADY:如果為高電平則表明之前主模塊和所有從模塊之間的傳輸已經(jīng)完成,該信號發(fā)送至主模塊和從模塊。
HRESP:被譯碼器選中的傳輸信號的相應(yīng),該信號發(fā)送至主模塊。
HEXOKAY:表明被譯碼器選中的獨(dú)立傳輸是否成功的信號,該信號發(fā)送至主模塊。
*注:由于HRDATA[31:0]HRESPHEXOKAY三個信號經(jīng)過多路復(fù)用器之后信號的名稱并沒有改變,所以有關(guān)這三個信號更多的描述請參考上面的有關(guān)從模塊信號的描述。

AHB總線的具體傳輸方式以及時序等更多信息請閱讀官方文檔,這里不做贅述。

三、AMBA 3 APB接口

1、概覽:
APB是AMBA 3協(xié)議族的一部分。它提供了一個降低了復(fù)雜度并且為低功耗而優(yōu)化過的接口。

APB可以連接任何低帶寬的并且不需要高性能的流水線的總線接口的外設(shè)。APB是一個不包含流水線的協(xié)議。

APB總線橋既是APB總線上唯一的主模塊,也是AHB系統(tǒng)總線上的從模塊。其主要功能是鎖存來自AHB系統(tǒng)總線的地址、數(shù)據(jù)和控制信號,并提供二級譯碼以產(chǎn)生APB外圍設(shè)備的選擇信號,從而實(shí)現(xiàn)AHB協(xié)議到APB協(xié)議的轉(zhuǎn)換。

所有狀態(tài)轉(zhuǎn)換僅在時鐘信號的上升沿觸發(fā),這使得在程序設(shè)計流程中使能一個集成在APB中的外設(shè)是非常容易的。每次數(shù)據(jù)傳輸至少占用兩個時鐘周期。

APB可連接AHB-Lite和AXI接口。你可以使用它來存取外設(shè)的可編程控制寄存器。

Figure 3-1展示了APB總線的狀態(tài)轉(zhuǎn)換圖:
Figure 3-1 State diagram
這個狀態(tài)機(jī)有以下三種狀態(tài):
IDLE:APB的默認(rèn)狀態(tài)。如果APB總線橋沒有數(shù)據(jù)需要傳輸,則APB總線一直保持這個狀態(tài)。

SETUP:當(dāng)要傳輸數(shù)據(jù)時總線必須轉(zhuǎn)換為SETUP狀態(tài),此時對應(yīng)的選擇信號PSELx被APB總線橋置1??偩€僅僅保持SETUP狀態(tài)一個時鐘周期,然后在下一個時鐘信號的上升沿跳變到ACCESS狀態(tài)。

ACCESS:使能信號PENABLEACCESS狀態(tài)下被APB總線橋置1。在SETUP狀態(tài)轉(zhuǎn)變?yōu)?strong>ACCESS狀態(tài)的期間地址、寫、選擇和寫數(shù)據(jù)的信號必須保持穩(wěn)定。退出ACCESS狀態(tài)是由從模塊發(fā)出的PREADY信號控制的。如果從模塊使PREADY信號保持低電平,則下一個時鐘周期保持ACCESS狀態(tài)。如果從模塊使PREADY信號保持高電平,在沒有數(shù)據(jù)需要繼續(xù)傳輸?shù)那闆r下APB總線退出ACCESS狀態(tài)進(jìn)入IDLE狀態(tài),在需要繼續(xù)傳輸數(shù)據(jù)的情況下APB總線直接進(jìn)入SETUP狀態(tài)。是否需要繼續(xù)傳輸數(shù)據(jù)由APB總線橋控制。

2、APB總線各個信號的說明:
PCLK:時鐘信號,由時鐘源產(chǎn)生。APB總線的狀態(tài)轉(zhuǎn)換僅在PCLK信號的上升沿觸發(fā)。

PRESETn:復(fù)位信號,與系統(tǒng)總線的復(fù)位信號相同。APB總線的復(fù)位信號是低電平有效。這個信號一般與系統(tǒng)總線的復(fù)位信號直接相連。

PADDR:地址信號,由APB總線橋產(chǎn)生。這是APB接口的地址總線,最大32位寬。

PSELx:選擇信號,由APB總線橋產(chǎn)生。每一個外設(shè)(從模塊)都有一個選擇信號,它代表著對應(yīng)從模塊被選中,并且需要傳輸數(shù)據(jù)。

PENABLE:使能信號,由APB總線橋產(chǎn)生。它代表著APB總線將在下一個時鐘信號的上升沿傳輸數(shù)據(jù)。

PWRITE:方向信號,由APB總線橋產(chǎn)生。高電平代表著寫數(shù)據(jù),低電平代表著讀數(shù)據(jù)。

PWDATA:寫數(shù)據(jù)信號,由APB總線橋產(chǎn)生。在PWRITE信號為高電平的時候被寫入的數(shù)據(jù),最大32位寬。

PREADY:準(zhǔn)備信號,由從模塊產(chǎn)生。這個信號代表從模塊的讀寫操作已經(jīng)完成。

PRDATA:讀數(shù)據(jù)信號,由從模塊產(chǎn)生。在PWRITE信號為低電平的時候讀出的數(shù)據(jù),最大32位寬。

PSLVERR:錯誤信號,由從模塊產(chǎn)生。從模塊不強(qiáng)制要求具有PSLVERR信號引腳,此時APB總線橋的PSLVERR信號引腳需要接低電平。

APB總線具體的讀寫數(shù)據(jù)以及錯誤響應(yīng)的時序請閱讀官方文檔,這里不做贅述。

四、附:Multi-layer AHB方案

1、概覽:
Multi-layer AHB是一個基于AHB協(xié)議的互連方案。它使系統(tǒng)中的多個主模塊能夠平行訪問多個從模塊,這歸功于一個更為復(fù)雜的互連矩陣(interconnect matrix)。

Figure 1展示了一個基本的多層次概念的方框圖:
Figure 1 Basic multi-layer concept

多層次系統(tǒng)最簡單的實(shí)現(xiàn)方式是每個主模塊都有自己的AHB層次(AHB
layer),并且使用互連矩陣連接從模塊,如Figure 2所示:
Figure 2 Multi-layer interconnect topology

在這個互連矩陣內(nèi):
a. 每個層次都有自己的用于選擇從模塊的譯碼級(Decode stage);
b. 多路復(fù)用器為從模塊選擇合適的主模塊。

如果兩個層次同時訪問同一個從模塊,那么互連矩陣內(nèi)的仲裁器將決定哪個層次享有更高的優(yōu)先級。那個未取得訪問權(quán)限的層次需要使用HREADY信號進(jìn)入等待狀態(tài),直到取得訪問權(quán)限,等待的同時該層次的輸入級(Input Stage)將保存一份流水線地址和控制信息的備份。

每個從模塊都有自己的仲裁器,并且可以使用不同的仲裁方案,比如:
a. 循環(huán)制算法:每一次傳輸或者突發(fā)傳輸后換一個輸入層次;
b. 固定優(yōu)先級算法:仲裁器使用一個固定的優(yōu)先級表,高優(yōu)先級的層次總是優(yōu)先于低優(yōu)先級的層次取得訪問權(quán)限。

互連矩陣的輸入輸出端口的數(shù)量可以根據(jù)系統(tǒng)需求靈活變動。

2、高級選項(xiàng):
a. 多種總線組態(tài):
Figure 3 Local slaves

Figure 4 Multiple slaves on one slave port

Figure 5 Multiple masters on one layer

Figure 6 Separate AHB subsystems

b. 多端口從模塊:
Figure 7 Multi-port slaves

3、一個多層次AHB系統(tǒng)示例:
Figure 8 Example multi-layer AHB system

本文參考鏈接:
AMBA總線袁勁松新浪博客
【博客大賽】AHB重點(diǎn)難點(diǎn)總結(jié)-絕對值得你看 - sunyzz的博客 - EDN China博客
Duanxx的STM32學(xué)習(xí):stm32的總線AMBA、AHB、APB - 系統(tǒng)其他欄目 - 紅黑聯(lián)盟
AMBA 開放規(guī)格 - ARM
AMBA Protocol – Architecture – ARM Developer

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产日韩精品激情在线观看| 成年男女午夜久久久精品| 国产av熟女一区二区三区蜜桃| 午夜精品国产一区在线观看| 99久久精品国产麻豆| 久久天堂夜夜一本婷婷| 久久99国产精品果冻传媒| 东京不热免费观看日本| 日韩一区二区三区18| 国产亚洲系列91精品| 成人精品网一区二区三区| 午夜色午夜视频之日本| av国产熟妇露脸在线观看| 精品少妇人妻av免费看| 国产亚洲不卡一区二区| 亚洲性日韩精品一区二区| 中文字幕区自拍偷拍区| 在线免费视频你懂的观看| 欧美激情区一区二区三区| 精品一区二区三区人妻视频| 草草草草在线观看视频| 欧美日韩国产成人高潮| 好吊一区二区三区在线看| 国产欧洲亚洲日产一区二区| 欧美日韩国产自拍亚洲| 粉嫩内射av一区二区| 欧美精品久久99九九| 国产一区二区三区草莓av| 亚洲精品国产福利在线| 欧美亚洲综合另类色妞| 东京热加勒比一区二区三区 | 懂色一区二区三区四区| 高潮日韩福利在线观看| 欧美日韩精品久久第一页| 台湾综合熟女一区二区| 邻居人妻人公侵犯人妻视频| 国产欧美日韩一级小黄片| 在线免费观看黄色美女| 欧美熟妇喷浆一区二区| 日本不卡一本二本三区| 最近日韩在线免费黄片|