AMBA總線陣營的強大超乎多數人的想象。AMBA總線是一個在SoC領域使用的事實上的標準。AMBA總線的最大優點是開放的架構,和因此帶來的免費。開放的總線標準使AMBA總線迅速普及,而且更易吸收整個半導體界的成果。
AMBA總線標準提供的AXI,AHB,ASB,APB和ATB總線,不僅使用在ARM處理器系統中,MIPS和PowerPC處理器也開始使用AMBA總線。在接下來的文章中我們重點為大家介紹AHB, AXI總線協議。
內容概括
這次為大家講述的內容包括:
AHB介紹
總線互聯
AHB信號描述
基本傳輸
0****1
AHB介紹
AMBA是為提高性能綜合設計的要求而產生的新一代AMBA總線它是支持總線主機和提供高帶寬的高性能總線。AHB實現了高性能,高時鐘頻率系統的以下特征要求:突發傳輸;分塊處理;單周期總線主機移交;單時鐘沿操作;非三態執行;
AHB 的設計可能包含一個或者多個主機,一個典型的系統將至少包含處理器和測試接口。然而,將直接數據存取(DMA)或者數字信號處理器(DSP)包含作總線主機也很普遍。
典型的 AMBA AHB 系統設計包含以下的成分:
AHB 主機 :總線主機能夠通過提供地址和控制信息發起讀寫操作。任何時候只允許一個總線主機處于有效狀態并能使用總線。
AHB 從機 :總線從機在給定的地址空間范圍內響應讀寫操作。總線從機將成功、失敗或者等待數據傳輸的信號返回給有效的主機。
AHB 仲裁器 :總線仲裁器確保每次只有一個總線主機被允許發起數據傳輸。即使仲裁協議已經固定,任何一種仲裁算法,比如最高優先級或者公平訪問都能夠根據應用要求而得到執行。AHB 必須只包含一個伸裁器,盡管在單總線主機系統中這顯得并不重要。
AHB 譯碼器: AHB 譯碼器用來對每次傳輸進行地址譯碼并且在傳輸中包含一個從機選擇信號。所有 AHB 執行都必須僅要求有一個中央譯碼器。
02
總線互聯
AHB總線協議設計使用一個中央多路選擇器互聯方案。使用該方案所有總線主機設備輸出地址和控制信號來指示它們想執行的傳輸,同時仲裁器決定哪一個主機能夠將它的地址和控制信號連通到所有的從機。當然也需要—個譯碼器來控制讀數據和響應多路信號選擇器,多路信號選擇器選中米自傳輸中所包含從機的適當信號。圖 1表示了實現包含三個主機和四個從機的AHB設計的結構要求。
圖1 多路選擇器互聯
0****3
AHB信號描述
名稱 | 來源 | 描述 |
---|---|---|
HCLK總線時鐘 | 時鐘源 | 時鐘為所有總線傳輸提供時基。所有信號時序都和HCLK的上升沿相關。 |
HRESETn復位 | 復位控制器 | 總線復位信號,低電平有效,用來復位系統和總線。這是唯一低電平有效的信號。 |
HADDR[31:0]地址總線 | 主機 | 32位地址總線 |
HTRANS[1:0]傳輸類型 | 主機 | 表示當前傳輸的類型,可以是連續,不連續,空閑和忙 |
HWRITE傳輸方向 | 主機 | 該信號為高表示一個寫傳輸,為低表示一個讀傳輸 |
HSIZE[2:0]傳輸大小 | 主機 | 表示傳輸的大小,三位表示0…7,分別對應8bits(byte), 16bits(halfword),32bits(word),64bits, 128bits,256bits, 512bits,1024bits |
HBURST[2:0]突發類型 | 主機 | 表示傳輸是否組成了突發的一部分。支持4個,8個,16個節拍的突發傳輸,突發傳輸可以使增量或回環。 |
HPROT[3:0]保護控制 | 主機 | 提供總線訪問的附加信息,主要是給那些希望執行某種保護級別的模塊使用的。這個信號指示當前傳輸是否為預取指令或者數據傳輸,同時也表示傳輸是保護模式訪問還是用戶模式訪問。對帶存儲器管理單元的總線主機而言這些信號也用來指示當前傳輸是高速緩存的(cache)還是緩沖的(buffer)。 |
HWDATA[31:0]寫總線數據 | 主機 | 寫數據總線用來在寫操作期間從主機到總線從機傳輸數據。建議最小的數據總線寬度為 32 位。在要求高帶寬運行時擴展(數據總線)還是很容易的。 |
HSELx從機選擇 | 譯碼器 | 每個 AHB 從機都有自己獨立的從機選擇信號并且用該信號來表示當前傳輸是否是打算送給選中的從機。該信號是地址總線的簡單組合譯碼。 |
HRDATA[31:0]讀數據總線 | 從機 | 讀數據總線用來在讀操作期間從總線從機向總線主機傳輸數據。建議最小的數據總線寬度為 32 位。在要求高帶寬運行時擴展(數據總線)還是很容易的。 |
HREDAY傳輸完成 | 從機 | 當 HREADY 為高時表示總線上的傳輸已經完成。在擴展傳輸時該信號可能會被拉低。注意:總線上的從機要求 HREADY 作為輸入輸出信號。 |
HRESP[1:0]傳輸響應 | 從機 | 傳輸響應給傳輸狀態提供了附加信息。提供四種不同的響應:OKEY、 ERROR、 RETRY 和 SPLIT。 |
0****4
基本傳輸
一筆傳輸由如下兩部分組成:
地址階段 :一個周期
數據階段 :一個或多個周期,由HBURST信號決定需要幾個有效周期,可以由HREADY發出請求延長一個周期。
01
沒有等待狀態的single transfer
-
第一個周期的上升沿,主機將地址信息和控制信息發送到總線上;
-
第二個周期的上升沿,從機采樣地址和控制信號,并將HREADY拉高;如果是寫操作,主機會在第二個周期的上升沿過后傳輸要寫入的數據;如果是讀操作,從機會在HREADY信號拉高后將讀取的數據寫入總線;
-
第三個周期的上升沿,如果是寫操作,主機獲取HREADY高信號,表明從機已成功接收數據,操作成功;如果是讀操作,主機獲取HREADY高信號,表明此時的讀數據有效并且接收下來,操作成功。需要注意,HREADY信號在數據有效期間必須為高,并且延續到第三個周期的上升沿之后,確保主機的正確采樣。
02
slave插入等待狀態的single transfer
從機可以及時處理主機請求,但也可能存在從機太慢不能立即處理的情況。這時需要讓主機稍微等一等,需要從機插入一些等待的狀態。如下圖所示,HREADY信號在第二和第三周期拉低,意在告訴主機,從機不能立即處理,需要主機等待2個周期。在這里需要注意2點:
如果是寫操作,主機要在等待期間保持寫數據不變,直到本次傳輸完成;如果是讀操作,從機不需要一開始就給出數據,僅當HREADY拉高后才給出有效數據。
03
多個single transfer的pipeline操作
擴展數據周期的一個負效應是必需延長相應的下一筆傳輸的地址周期。A和C為零等待傳輸,B加入了一個等待周期,因此相應的C地址周期要進行擴展。
- 第一個周期,主機發起一個操作A,并驅動地址和控制信號;
- 第二個周期,從機收到了來自總線的請求,將HREADY信號拉高;
- 第二個周期上升沿后,主機發現有操作B需要執行,并且檢查到上一周期的HREADY為高,則發起第二個操作B;
- 第三個周期,主機獲取HREADY信號為高,表示操作A已經完成;
- 第三個周期上升沿后,主機發現有操作C需要執行,并且檢查到上一周期的HREADY為高,則發起第三個操作C;
- 第三個周期上升沿后,從機由于繁忙插入了一個等待狀態,將HREADY拉低;
- 第四個周期,主機獲取HREADY信號為低,知道從機希望等待,于是主機保持和上一拍一樣的信號;
- 第四個周期,從機處理完了事務,將HREADY信號拉高,表示可以繼續處理;
- 第五個周期,主機獲取HREADY信號為高,知道從機已經可以處理B操作;
- 第五個周期上升沿后,B操作完成;
- 第六個周期上升沿后,C操作完成。
需要注意幾點:
HREADY在一定程度上表示了從機的pipeline能力,在AHB中是2個pipe,也就是總線上最多存在2個未處理完的transfer。只有當總線上未完成的transfer少于2個時,主機才能發起操作。
-
半導體
+關注
關注
335文章
28012瀏覽量
225458 -
soc
+關注
關注
38文章
4243瀏覽量
219898 -
總線
+關注
關注
10文章
2914瀏覽量
88693 -
AMBA
+關注
關注
0文章
70瀏覽量
15128
發布評論請先 登錄
相關推薦
基于AMBA-AHB總線的SDRAM控制器設計方案

ARM總線協議AMBA中AHB、APB的區別與聯系
AMBA AHB總線與APB總線資料合集
總線概述之AMBA總線

數字IC驗證:ARM總線協議AMBA中AHB、APB的簡介、區別與聯系

STM32菜鳥學習手冊——AMBA、APB、AHB簡介

AMBA協議之AHB介紹

評論