AMBA總線陣營的強(qiáng)大超乎多數(shù)人的想象。AMBA總線是一個在SoC領(lǐng)域使用的事實(shí)上的標(biāo)準(zhǔn)。AMBA總線的最大優(yōu)點(diǎn)是開放的架構(gòu),和因此帶來的免費(fèi)。開放的總線標(biāo)準(zhǔn)使AMBA總線迅速普及,而且更易吸收整個半導(dǎo)體界的成果。
AMBA總線標(biāo)準(zhǔn)提供的AXI,AHB,ASB,APB和ATB總線,不僅使用在ARM處理器系統(tǒng)中,MIPS和PowerPC處理器也開始使用AMBA總線。在接下來的文章中我們重點(diǎn)為大家介紹AHB, AXI總線協(xié)議。
內(nèi)容概括
這次為大家講述的內(nèi)容包括:
AHB介紹
總線互聯(lián)
AHB信號描述
基本傳輸
0****1
AHB介紹
AMBA是為提高性能綜合設(shè)計(jì)的要求而產(chǎn)生的新一代AMBA總線它是支持總線主機(jī)和提供高帶寬的高性能總線。AHB實(shí)現(xiàn)了高性能,高時鐘頻率系統(tǒng)的以下特征要求:突發(fā)傳輸;分塊處理;單周期總線主機(jī)移交;單時鐘沿操作;非三態(tài)執(zhí)行;
AHB 的設(shè)計(jì)可能包含一個或者多個主機(jī),一個典型的系統(tǒng)將至少包含處理器和測試接口。然而,將直接數(shù)據(jù)存取(DMA)或者數(shù)字信號處理器(DSP)包含作總線主機(jī)也很普遍。
典型的 AMBA AHB 系統(tǒng)設(shè)計(jì)包含以下的成分:
AHB 主機(jī) :總線主機(jī)能夠通過提供地址和控制信息發(fā)起讀寫操作。任何時候只允許一個總線主機(jī)處于有效狀態(tài)并能使用總線。
AHB 從機(jī) :總線從機(jī)在給定的地址空間范圍內(nèi)響應(yīng)讀寫操作。總線從機(jī)將成功、失敗或者等待數(shù)據(jù)傳輸?shù)男盘柗祷亟o有效的主機(jī)。
AHB 仲裁器 :總線仲裁器確保每次只有一個總線主機(jī)被允許發(fā)起數(shù)據(jù)傳輸。即使仲裁協(xié)議已經(jīng)固定,任何一種仲裁算法,比如最高優(yōu)先級或者公平訪問都能夠根據(jù)應(yīng)用要求而得到執(zhí)行。AHB 必須只包含一個伸裁器,盡管在單總線主機(jī)系統(tǒng)中這顯得并不重要。
AHB 譯碼器: AHB 譯碼器用來對每次傳輸進(jìn)行地址譯碼并且在傳輸中包含一個從機(jī)選擇信號。所有 AHB 執(zhí)行都必須僅要求有一個中央譯碼器。
02
總線互聯(lián)
AHB總線協(xié)議設(shè)計(jì)使用一個中央多路選擇器互聯(lián)方案。使用該方案所有總線主機(jī)設(shè)備輸出地址和控制信號來指示它們想執(zhí)行的傳輸,同時仲裁器決定哪一個主機(jī)能夠?qū)⑺牡刂泛涂刂菩盘栠B通到所有的從機(jī)。當(dāng)然也需要—個譯碼器來控制讀數(shù)據(jù)和響應(yīng)多路信號選擇器,多路信號選擇器選中米自傳輸中所包含從機(jī)的適當(dāng)信號。圖 1表示了實(shí)現(xiàn)包含三個主機(jī)和四個從機(jī)的AHB設(shè)計(jì)的結(jié)構(gòu)要求。

圖1 多路選擇器互聯(lián)
0****3
AHB信號描述
| 名稱 | 來源 | 描述 |
|---|---|---|
| HCLK總線時鐘 | 時鐘源 | 時鐘為所有總線傳輸提供時基。所有信號時序都和HCLK的上升沿相關(guān)。 |
| HRESETn復(fù)位 | 復(fù)位控制器 | 總線復(fù)位信號,低電平有效,用來復(fù)位系統(tǒng)和總線。這是唯一低電平有效的信號。 |
| HADDR[31:0]地址總線 | 主機(jī) | 32位地址總線 |
| HTRANS[1:0]傳輸類型 | 主機(jī) | 表示當(dāng)前傳輸?shù)念愋停梢允沁B續(xù),不連續(xù),空閑和忙 |
| HWRITE傳輸方向 | 主機(jī) | 該信號為高表示一個寫傳輸,為低表示一個讀傳輸 |
| HSIZE[2:0]傳輸大小 | 主機(jī) | 表示傳輸?shù)拇笮。槐硎?…7,分別對應(yīng)8bits(byte), 16bits(halfword),32bits(word),64bits, 128bits,256bits, 512bits,1024bits |
| HBURST[2:0]突發(fā)類型 | 主機(jī) | 表示傳輸是否組成了突發(fā)的一部分。支持4個,8個,16個節(jié)拍的突發(fā)傳輸,突發(fā)傳輸可以使增量或回環(huán)。 |
| HPROT[3:0]保護(hù)控制 | 主機(jī) | 提供總線訪問的附加信息,主要是給那些希望執(zhí)行某種保護(hù)級別的模塊使用的。這個信號指示當(dāng)前傳輸是否為預(yù)取指令或者數(shù)據(jù)傳輸,同時也表示傳輸是保護(hù)模式訪問還是用戶模式訪問。對帶存儲器管理單元的總線主機(jī)而言這些信號也用來指示當(dāng)前傳輸是高速緩存的(cache)還是緩沖的(buffer)。 |
| HWDATA[31:0]寫總線數(shù)據(jù) | 主機(jī) | 寫數(shù)據(jù)總線用來在寫操作期間從主機(jī)到總線從機(jī)傳輸數(shù)據(jù)。建議最小的數(shù)據(jù)總線寬度為 32 位。在要求高帶寬運(yùn)行時擴(kuò)展(數(shù)據(jù)總線)還是很容易的。 |
| HSELx從機(jī)選擇 | 譯碼器 | 每個 AHB 從機(jī)都有自己獨(dú)立的從機(jī)選擇信號并且用該信號來表示當(dāng)前傳輸是否是打算送給選中的從機(jī)。該信號是地址總線的簡單組合譯碼。 |
| HRDATA[31:0]讀數(shù)據(jù)總線 | 從機(jī) | 讀數(shù)據(jù)總線用來在讀操作期間從總線從機(jī)向總線主機(jī)傳輸數(shù)據(jù)。建議最小的數(shù)據(jù)總線寬度為 32 位。在要求高帶寬運(yùn)行時擴(kuò)展(數(shù)據(jù)總線)還是很容易的。 |
| HREDAY傳輸完成 | 從機(jī) | 當(dāng) HREADY 為高時表示總線上的傳輸已經(jīng)完成。在擴(kuò)展傳輸時該信號可能會被拉低。注意:總線上的從機(jī)要求 HREADY 作為輸入輸出信號。 |
| HRESP[1:0]傳輸響應(yīng) | 從機(jī) | 傳輸響應(yīng)給傳輸狀態(tài)提供了附加信息。提供四種不同的響應(yīng):OKEY、 ERROR、 RETRY 和 SPLIT。 |
0****4
基本傳輸
一筆傳輸由如下兩部分組成:
地址階段 :一個周期
數(shù)據(jù)階段 :一個或多個周期,由HBURST信號決定需要幾個有效周期,可以由HREADY發(fā)出請求延長一個周期。
01
沒有等待狀態(tài)的single transfer
-
第一個周期的上升沿,主機(jī)將地址信息和控制信息發(fā)送到總線上;
-
第二個周期的上升沿,從機(jī)采樣地址和控制信號,并將HREADY拉高;如果是寫操作,主機(jī)會在第二個周期的上升沿過后傳輸要寫入的數(shù)據(jù);如果是讀操作,從機(jī)會在HREADY信號拉高后將讀取的數(shù)據(jù)寫入總線;
-
第三個周期的上升沿,如果是寫操作,主機(jī)獲取HREADY高信號,表明從機(jī)已成功接收數(shù)據(jù),操作成功;如果是讀操作,主機(jī)獲取HREADY高信號,表明此時的讀數(shù)據(jù)有效并且接收下來,操作成功。需要注意,HREADY信號在數(shù)據(jù)有效期間必須為高,并且延續(xù)到第三個周期的上升沿之后,確保主機(jī)的正確采樣。

02
slave插入等待狀態(tài)的single transfer
從機(jī)可以及時處理主機(jī)請求,但也可能存在從機(jī)太慢不能立即處理的情況。這時需要讓主機(jī)稍微等一等,需要從機(jī)插入一些等待的狀態(tài)。如下圖所示,HREADY信號在第二和第三周期拉低,意在告訴主機(jī),從機(jī)不能立即處理,需要主機(jī)等待2個周期。在這里需要注意2點(diǎn):
如果是寫操作,主機(jī)要在等待期間保持寫數(shù)據(jù)不變,直到本次傳輸完成;如果是讀操作,從機(jī)不需要一開始就給出數(shù)據(jù),僅當(dāng)HREADY拉高后才給出有效數(shù)據(jù)。

03
多個single transfer的pipeline操作
擴(kuò)展數(shù)據(jù)周期的一個負(fù)效應(yīng)是必需延長相應(yīng)的下一筆傳輸?shù)牡刂分芷凇和C為零等待傳輸,B加入了一個等待周期,因此相應(yīng)的C地址周期要進(jìn)行擴(kuò)展。
- 第一個周期,主機(jī)發(fā)起一個操作A,并驅(qū)動地址和控制信號;
- 第二個周期,從機(jī)收到了來自總線的請求,將HREADY信號拉高;
- 第二個周期上升沿后,主機(jī)發(fā)現(xiàn)有操作B需要執(zhí)行,并且檢查到上一周期的HREADY為高,則發(fā)起第二個操作B;
- 第三個周期,主機(jī)獲取HREADY信號為高,表示操作A已經(jīng)完成;
- 第三個周期上升沿后,主機(jī)發(fā)現(xiàn)有操作C需要執(zhí)行,并且檢查到上一周期的HREADY為高,則發(fā)起第三個操作C;
- 第三個周期上升沿后,從機(jī)由于繁忙插入了一個等待狀態(tài),將HREADY拉低;
- 第四個周期,主機(jī)獲取HREADY信號為低,知道從機(jī)希望等待,于是主機(jī)保持和上一拍一樣的信號;
- 第四個周期,從機(jī)處理完了事務(wù),將HREADY信號拉高,表示可以繼續(xù)處理;
- 第五個周期,主機(jī)獲取HREADY信號為高,知道從機(jī)已經(jīng)可以處理B操作;
- 第五個周期上升沿后,B操作完成;
- 第六個周期上升沿后,C操作完成。
需要注意幾點(diǎn):
HREADY在一定程度上表示了從機(jī)的pipeline能力,在AHB中是2個pipe,也就是總線上最多存在2個未處理完的transfer。只有當(dāng)總線上未完成的transfer少于2個時,主機(jī)才能發(fā)起操作。

-
半導(dǎo)體
+關(guān)注
關(guān)注
339文章
30725瀏覽量
264011 -
soc
+關(guān)注
關(guān)注
40文章
4576瀏覽量
229102 -
總線
+關(guān)注
關(guān)注
10文章
3040瀏覽量
91657 -
AMBA
+關(guān)注
關(guān)注
0文章
70瀏覽量
16026
發(fā)布評論請先 登錄
基于AMBA-AHB總線的SDRAM控制器設(shè)計(jì)方案
ARM總線協(xié)議AMBA中AHB、APB的區(qū)別與聯(lián)系
AMBA、APB、AHB簡介
AMBA AHB總線與APB總線資料合集
AMBA中的AHB總線協(xié)議詳解
基于AMBA片上總線的片上系統(tǒng)
總線概述之AMBA總線
數(shù)字IC驗(yàn)證:ARM總線協(xié)議AMBA中AHB、APB的簡介、區(qū)別與聯(lián)系
STM32菜鳥學(xué)習(xí)手冊——AMBA、APB、AHB簡介
AMBA協(xié)議之AHB介紹
聊聊AMBA總線-AHB
AMBA總線知識之AHB(下)
AMBA總線知識之AHB(上)
評論