2.4 AHB總線
2.4.1 AHB總線簡介
AHB是一種高性能、高時鐘頻率的AMBA總線協(xié)議。主要用于連接RAM、DMA、Bridge等高速設(shè)備。主要支持如下特性:burst傳輸、Split事務(wù)處理、單周期master移交、流水線操作、支持多個總線主設(shè)備。
AHB總線的強大之處在于它可以將微控制器CPU、高帶寬的片上RAM、高帶寬的外部存儲器接口、DMA總線master、各種擁有AHB接口的控制器等連接起來,構(gòu)成一個獨立的完成SOC系統(tǒng)。不僅如此,還可以通過AHB-APB橋來連接APB總線系統(tǒng)。AHB可以成為一個完成的SOC芯片的骨架
2.4.2 AHB的組成
完整的AHB總線由四個部分構(gòu)成:
- AHB主設(shè)備Master:總線主設(shè)備能夠通過提供地址和信息發(fā)起讀寫操作,任何時候,只允許一個總線主設(shè)備處于有效狀態(tài),并使用總線。
- AHB從設(shè)備Slave:從設(shè)備在給定的地址空間范圍內(nèi)響應(yīng)讀寫操作,總線從設(shè)備將成功、失敗或者等待數(shù)據(jù)傳輸?shù)?a target="_blank">信號返回給有效的主設(shè)備。
- AHB仲裁器Arbiter:總線仲裁器確保每次只有一個總線主機被允許發(fā)起數(shù)據(jù)傳輸。即使仲裁協(xié)議已經(jīng)固定,任何一種仲裁算法,比如最高優(yōu)先級或者公平訪問都能根據(jù)應(yīng)用要求而得到執(zhí)行。AHB必須只包含一個仲裁器,盡管在單總線主設(shè)備系統(tǒng)中這顯得并不重要。
- AHB譯碼器Decoder:AHB譯碼器用來對每次傳輸進行地址譯碼,并且在傳輸中包含一個從設(shè)備選擇信號。
每個AHB都需要一個仲裁器和一個解碼器,并且分別有且只有一個。
總線可分為三組: - 寫數(shù)據(jù)總線(HWDATA)
- 讀數(shù)據(jù)總線(HRDATA)
- 地址控制總線(HADDR)
2.4.3 AHB總線操作
主設(shè)備通過驅(qū)動地址和控制信號開始一次傳輸。這些信號提供了地址、方向、傳輸?shù)奈粚挘绻麄鬏數(shù)念愋褪氢Оl(fā),那么會指示出傳輸?shù)念愋汀鬏數(shù)念愋涂梢允牵?/p>
- 單次傳輸(Single)。
- 遞增猝發(fā)(Incrementing burst),即在地址邊界處不進行包裝(地址不進行回繞)。
- 包裝猝發(fā)(Warpping burst),及到達地址邊界處重新包裝下一次傳輸?shù)牡刂罚ǖ刂坊乩@)。
寫操作數(shù)據(jù)由主設(shè)備到從設(shè)備,讀數(shù)據(jù)數(shù)據(jù)由從設(shè)備到主設(shè)備。每次傳輸都包含兩個階段: - 地址階段(Address phase),地址和控制周期。
- 數(shù)據(jù)階段(Data phase),數(shù)據(jù)周期是一個或多個周期。
從設(shè)備不能請求Address phase進行延長,所以所有的從設(shè)備必須具備在Address phase周期采樣地址的能力。但是從設(shè)備可以請求主設(shè)備延長Data phase,通過控制HREADY。HREADY信號為低時,從設(shè)備可以在傳輸中插入等待狀態(tài),使得從設(shè)備具有額外的時間提供和采樣數(shù)據(jù)。最后從設(shè)備使用HRESP表明傳輸?shù)某晒?失敗。
2.4.4 AHB信號
從上面的表可以看出,為了克服APB的缺點,從而支持多主機模式。提升效率操作,在總線接口數(shù)量上做了增加,并且位寬也做了提升。
2.4.5 AHB傳輸
1)AHB傳輸過程
AHB傳輸分為以下幾個部分:
- 主模塊獲取總線使用權(quán):主模塊向仲裁器發(fā)送總線請求信號,仲裁器發(fā)送應(yīng)答后主模塊可以開始傳輸。
- 數(shù)據(jù)傳輸:主模塊向從模塊傳輸數(shù)據(jù),分為如下兩個部分:
- 發(fā)送地址和控制信號:包括地址、位寬、突發(fā)類型(增量突發(fā)和回卷突發(fā))等控制新高,僅一個時鐘周期。
- 數(shù)據(jù)傳輸:進行數(shù)據(jù)交換,一個或多個時鐘周期。
- 從模塊應(yīng)答:從模塊通過HRESP和HREADY 標記完成狀態(tài),對于HRESP,有以下狀態(tài):
- OKAY:標記傳輸完成,當HRESP為該狀態(tài)且HREADY拉高時,傳輸完成。
- ERROR:標記傳輸出錯
- RETRY和SPLIT:標記傳輸未完成,主模塊仍需要占用總線。
前面已介紹一個基本的傳輸包括兩個階段: - 地址:持續(xù)一個系統(tǒng)時鐘HCLK周期,除非被上一個傳輸延長
- 數(shù)據(jù):可能需要數(shù)個系統(tǒng)時鐘HCLK周期,使用HREADY信號來控制完成一次傳輸所需要的時鐘周期。
HWRITE:控制數(shù)據(jù)的方向。當為高時,表明進行一次寫傳輸,數(shù)據(jù)由主模塊端發(fā)送,從模塊端接收。當為低時,表明進行一次讀傳輸,從模塊端產(chǎn)生讀數(shù)據(jù),主模塊端接收讀數(shù)據(jù)。
2)無等待狀態(tài)
上圖是沒有等待狀態(tài)的簡單傳輸?shù)臅r序圖,所以此傳輸包含一個地址周期和一個數(shù)據(jù)周期。3.1為讀傳輸,3.2為寫傳輸。在這個沒有等待狀態(tài)的傳輸中:
- 主模塊端在第一個時鐘HCLK上升沿將地址和控制信號到總線。
- 從模塊端在接下來的一個時鐘HCLK上升沿進行地址和控制信號采樣。
- 在從模塊端對地址和控制信號采樣結(jié)束后,從模塊端可以驅(qū)動HEADYOUT信號及數(shù)據(jù)作為回應(yīng)。該信號及數(shù)據(jù)由主模塊端在傳輸?shù)牡谌齻€時鐘HCLK上升沿進行采樣。
這個例子說明了地址和數(shù)據(jù)階段在不同的時鐘周期是如何傳輸?shù)摹H我庖淮蝹鬏數(shù)牡刂冯A段發(fā)生在上一次傳輸?shù)臄?shù)據(jù)階段(重合,即當前傳輸?shù)牡刂冯A段和前一次傳輸?shù)臄?shù)據(jù)階段重合)。address與data的重合是進行總線流水線處理的基礎(chǔ),此特性允許總線高性能操作,同時也為從模塊端發(fā)送反饋信息提供了充足的時間。
2)有等待狀態(tài)傳輸
從模塊端可以插入等待階段到任意一個傳輸中從而延長完成傳輸?shù)臅r間。每個從模塊端具有一個HREADYOUT信號,該信號為從模塊端在data phase階段驅(qū)動。互聯(lián)結(jié)構(gòu)需要將每個從模塊端的HREADYOUT信號聯(lián)合起來產(chǎn)生一個HREADY信號,HREADY信號用來控制上述延長傳輸完成時間的過程。
如上圖是具有等待階段的時序圖。3.3是帶有兩個等待周期的讀傳輸,3.4是帶有一個等待周期的寫傳輸。有等待傳輸下,數(shù)據(jù)傳輸階段可以擴展,即在HREADY拉高之前,數(shù)據(jù)傳輸階段不結(jié)束。要求寫數(shù)據(jù)在HREADY拉高前保持穩(wěn)定,主模塊在HRAEADY拉高后采樣讀數(shù)據(jù)。對于寫操作,在HREADY為低的等待階段內(nèi),主模塊端需要將寫數(shù)據(jù)DATA保持不變,直到寫操作完成。對于讀操作,從模塊端只需要在HREADY為高的周期內(nèi)提供有效數(shù)據(jù)即可。
當傳輸由具有等待階段通過延長address階段進行延長時,那么對接下來的傳輸具有副作用。3.5是包含地址不相關(guān)的3次傳輸,A,B和帶有一個等待周期的C傳輸。
在上述時序圖中:
- 傳輸A和傳輸C是0等待傳輸。
- 傳輸B具有一個等待周期的address phase。
- 延長傳輸B的數(shù)據(jù)phase對下一次傳輸C的address phase會相應(yīng)的拉長。
2.4.6 傳輸類型
1)傳輸類型
傳輸類型使用端口HTRANS標記,有以下取值:
- IDLE(0b00):標志主模塊占有AHB總線,但是沒有數(shù)據(jù)傳輸發(fā)生。從模塊需要使用OKAY狀態(tài)回應(yīng)該類型
- BUSY(0b 01):標志主模塊占有AHB總線并在進行突發(fā)傳輸,但下一個傳輸不能立刻發(fā)生。從模塊需要使用OKAY狀態(tài)回應(yīng)
- NONSEQ(0b 10):標志主模塊當前發(fā)送的地址和控制信號與上一次傳輸無關(guān)(單次傳輸就是該狀態(tài))
- SEQ(0b 11):標記主模塊處于突發(fā)傳輸?shù)闹虚g部分,即當前發(fā)送的地址和控制信號與上一次地址和控制信號有關(guān)
2)突發(fā)類型
突發(fā)傳輸分為兩類:
- 增量突發(fā):傳輸過程中傳輸?shù)刂愤f增。下一次傳輸?shù)牡刂肥巧弦淮蔚刂芳由弦粋€增量。
- 回卷突發(fā):猝發(fā)的地址范圍被限制在一個固定范圍之內(nèi),傳輸?shù)刂愤f增,若是超出則回到地址范圍的開始的地址。例如從0x34進行增量為4,范圍為16的回卷突發(fā),地址順序為0x34、0x38、0x3c,0x30
突發(fā)類型使用字段HBURST標記,含義如下表所示:
注意一次突發(fā)傳輸不能跨越1kB的地址區(qū)間,且傳輸?shù)钠鹗嫉刂繁仨毰c數(shù)據(jù)類型對應(yīng),例如傳輸字數(shù)據(jù)的二進制起始地址必須滿足后兩位為00。
3)突發(fā)終止
從機通過監(jiān)控HTRANS發(fā)現(xiàn)突發(fā)傳輸?shù)慕K止:
- 若下一個HTRANS標記為BUSY或SEQ:突發(fā)傳輸未終止
- 若下一個HTRANS標記為NONSEQ或IDLE:上一次突發(fā)傳輸已經(jīng)終止
若突發(fā)傳輸是提前終止的,如總線控制權(quán)被剝奪,那么主機需要在可以進行傳輸時重建突發(fā)傳輸。例如一個4拍傳輸僅發(fā)送了一拍就終止,主機需要使用INCR類型的突發(fā)構(gòu)建3拍傳輸以重建。
4)傳輸?shù)睦?/p>
- T0~T1:由非連續(xù)序列性的傳輸啟動的4拍讀。
- T1~T2:主模塊端不能進行傳輸,在第二個周期,所以插入了一個BUSY傳輸來延時第二次傳輸。此周期從模塊端返回第一個周期主模塊端發(fā)送讀地址的讀數(shù)據(jù)。
- T2~T3:主模塊端準備好進行第二次傳輸,發(fā)送一個SEQ傳輸。主模塊端此周期將會忽略讀數(shù)據(jù)總線上由任何從模塊端返回的讀數(shù)據(jù)(因前一個周期為BUSY傳輸)。
- T3~T4:主模塊端進行了第三次傳輸。發(fā)送了一個SEQ傳輸,此時讀數(shù)據(jù)返回主模塊端發(fā)起的第二次SEQ讀讀數(shù)據(jù)。
- T4~T5:主模塊端進行最后一次傳輸。此時在第一個周期內(nèi)HREADY信號為低,從模塊不能將前一次SEQ讀的數(shù)據(jù)返回,所以將延遲上一次SEQ傳輸?shù)腄ATA Phase,也就是當前傳輸?shù)腁DDRESS phase。
- T5~T6:從模塊端返回第T3、T4周期發(fā)送的SEQ讀數(shù)據(jù)。
- T6~T7:無傳輸命令,返回T4、T6發(fā)送的讀數(shù)據(jù)。
-
ARM
+關(guān)注
關(guān)注
134文章
9169瀏覽量
369239 -
總線
+關(guān)注
關(guān)注
10文章
2903瀏覽量
88400 -
AMBA
+關(guān)注
關(guān)注
0文章
69瀏覽量
15043
發(fā)布評論請先 登錄
相關(guān)推薦
AMBA AHB總線與APB總線資料合集
AMBA總線IP核的設(shè)計
![<b class='flag-5'>AMBA</b><b class='flag-5'>總線</b>IP核的設(shè)計](https://file.elecfans.com/web2/M00/49/0C/pYYBAGKhtDWAB2M-AAARKAaIUa8249.jpg)
ARM體系的特點與ARM的技術(shù)的簡介及AMBA總線的分析
![ARM體系的特點與ARM的技術(shù)的簡介及<b class='flag-5'>AMBA</b><b class='flag-5'>總線</b>的<b class='flag-5'>分析</b>](https://file.elecfans.com/web1/M00/AE/5D/pIYBAF3VA8uAEw6TAABTKAXqIso005.png)
AMBA3.0 AXI總線接口協(xié)議的研究與應(yīng)用
![<b class='flag-5'>AMBA</b>3.0 AXI<b class='flag-5'>總線</b>接口協(xié)議的研究與應(yīng)用](https://file.elecfans.com/web1/M00/E7/AC/pIYBAGBhMzWATPvhAADTZlyIoVY735.jpg)
AMBA 3.0 AXI總線接口協(xié)議的研究與應(yīng)用
基于AMBA總線介紹?
![基于<b class='flag-5'>AMBA</b><b class='flag-5'>總線</b>介紹?](https://file.elecfans.com/web1/M00/EF/AD/o4YBAGCkr-uAervDAAAXwov_MB4547.png)
深度解讀AMBA、AHB、APB、AXI總線介紹及對比
介紹AMBA2.0總線
![介紹<b class='flag-5'>AMBA</b>2.0<b class='flag-5'>總線</b>](https://file.elecfans.com/web2/M00/13/8C/pYYBAGE1daWAf3iyAAAXwov_MB4198.png)
AMBA總線—apb簡介
![<b class='flag-5'>AMBA</b><b class='flag-5'>總線</b>—apb簡介](https://file1.elecfans.com/web2/M00/89/33/wKgaomR9ilCAWIaUAADlXetuG4k103.jpg)
評論