一、AMBA簡介1、AMBA (Advanced Microprocessor Bus Architecture): 2、AHB (Advanced High-Performance Bus):主要用于單片機(jī)中的系統(tǒng)總線。 3、APB (Advanced Peripheral Bus):用于低帶寬的外設(shè)之間的連接。 4、ATB (Advanced Trace Bus):用于在芯片間傳輸 trace 數(shù)據(jù)。 5、ACE (AXI Coherency Extensions):用于智能手機(jī)中的 big.LITTLE? 系統(tǒng)。 6、AXI (Advanced eXtensible Interface):用得最多的 AMBA 接口,在復(fù)雜的片上系統(tǒng)中至多連接100個主、從模塊。 7、CHI (Coherent Hub Interface):用于許多服務(wù)器與網(wǎng)絡(luò)應(yīng)用程序所需要的高可擴(kuò)展性的片上系統(tǒng)。 二、AMBA 5 AHB 接口1、概覽: 大多數(shù)掛在總線上的模塊(包括CPU)只是單一屬性的功能模塊:主模塊或者從模塊。主模塊是向從模塊發(fā)出讀寫操作的模塊,如CPU、DSP等;從模塊是接受命令并做出反應(yīng)的模塊,如片上的RAM,AHB/APB 橋等。另外,還有一些模塊同時具有兩種屬性,例如直接存儲器存取(DMA)在被編程時是從模塊,但在系統(tǒng)讀傳輸數(shù)據(jù)時必須是主模塊。 在高性能、高時鐘頻率的系統(tǒng)中AMBA AHB具有以下四個特點(diǎn): 大部分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ù)返回給主模塊。 在使用一個在不同主模塊和對應(yīng)從模塊之間提供仲裁和路由信號的連接組件的情況下,AHB也支持多個主模塊的設(shè)計。具體請參考Multi-layer AHB規(guī)范。 2、AHB接口各部分說明: 在系統(tǒng)中從模塊用于響應(yīng)主模塊的初始化操作。從模塊根據(jù)從譯碼器發(fā)出的HSELx選擇信號響應(yīng)總線中的傳輸指令。 連接組件負(fù)責(zé)連接系統(tǒng)中的主模塊和從模塊。單個主模塊的系統(tǒng)僅僅需要使用一個譯碼器和多路復(fù)用器。而多個主模塊的系統(tǒng)需要在不同主模塊和對應(yīng)從模塊之間提供仲裁和路由信號。包括地址、控制以及寫數(shù)據(jù)信號的路由。 3、AHB接口工作過程: 寫數(shù)據(jù)總線將數(shù)據(jù)從主模塊搬運(yùn)到從模塊,讀數(shù)據(jù)總線將數(shù)據(jù)從從模塊搬回主模塊。 每次傳輸包含以下兩個階段: 由于從模塊無法延長地址傳輸階段的時間,因此所有從模塊必須在規(guī)定時間內(nèi)完成地址的采集。但是從模塊可以使用HREADY信號向主模塊請求延長數(shù)據(jù)傳輸階段的時間。當(dāng)該HREADY信號為低電平的時候,傳輸過程將被插入等待狀態(tài),這樣從模塊就有額外的時間可以提供或者采集數(shù)據(jù)。 從模塊使用HRESP信號表明傳輸成功或者是失敗。 4、AHB總線上各個信號的說明: HRESETn:復(fù)位信號,由復(fù)位控制器產(chǎn)生。低電平有效,復(fù)位整個系統(tǒng)和總線。 b. 主模塊信號(由主模塊產(chǎn)生的信號): 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ù)用器): 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)生的信號): e. 多路復(fù)用器信號(由多路復(fù)用器信號產(chǎn)生的信號): AHB總線的具體傳輸方式以及時序等更多信息請閱讀官方文檔,這里不做贅述。 三、AMBA 3 APB接口1、概覽: 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)換圖: SETUP:當(dāng)要傳輸數(shù)據(jù)時總線必須轉(zhuǎn)換為SETUP狀態(tài),此時對應(yīng)的選擇信號PSELx被APB總線橋置1??偩€僅僅保持SETUP狀態(tài)一個時鐘周期,然后在下一個時鐘信號的上升沿跳變到ACCESS狀態(tài)。 ACCESS:使能信號PENABLE在ACCESS狀態(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總線各個信號的說明: 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、概覽: Figure 1展示了一個基本的多層次概念的方框圖: 多層次系統(tǒng)最簡單的實(shí)現(xiàn)方式是每個主模塊都有自己的AHB層次(AHB 在這個互連矩陣內(nèi): 如果兩個層次同時訪問同一個從模塊,那么互連矩陣內(nèi)的仲裁器將決定哪個層次享有更高的優(yōu)先級。那個未取得訪問權(quán)限的層次需要使用HREADY信號進(jìn)入等待狀態(tài),直到取得訪問權(quán)限,等待的同時該層次的輸入級(Input Stage)將保存一份流水線地址和控制信息的備份。 每個從模塊都有自己的仲裁器,并且可以使用不同的仲裁方案,比如: 互連矩陣的輸入輸出端口的數(shù)量可以根據(jù)系統(tǒng)需求靈活變動。 2、高級選項(xiàng): b. 多端口從模塊: 3、一個多層次AHB系統(tǒng)示例: 本文參考鏈接: |
|