00 AMBA概述
AMBA (Advanced Microcontroller Bus Architecture)高級微控制器總線架構(gòu)定義了在設計高性能嵌入式微控制器的一種片上通信標準。主要包含以下四種:
AHB (Advanced High-performance Bus) 高級高性能總線,用于高性能、高時鐘頻率的系統(tǒng)模塊
ASB (Advanced System Bus) 高級系統(tǒng)總線,用于高性能的系統(tǒng)模塊[現(xiàn)在使用較少]
APB (Advanced Peripheral Bus) 高級外圍總線,用于低功耗外設,可連接任一版本系統(tǒng)總線
AXI (Advanced eXtensible Interface) 高級可拓展接口,高速度、高帶寬,管道化互聯(lián),單向通道,只需要首地址,讀寫并行,支持亂序,支持非對齊操作,有效支持初始延遲較高的外設,連線非常多。
***01 ***基本組成
典型的AHB系統(tǒng)主要包含以下四部分:
AHB Master :總線主機能夠通過提供地址和控制信號進行讀寫操作,任何時候只允許一個主機處于有效狀態(tài)并使用總線。[發(fā)起端]
AHB Slave :總線從機在給定的地址空間響應讀寫操作,并將操作響應返回給有效的主機。[響應端]
AHB Arbiter :總線仲裁器確保每次只有一個總線主機被允許發(fā)起數(shù)據(jù)傳輸。
AHB Decoder : AHB譯碼器對每次傳輸?shù)牡刂纷g碼并在傳輸中包含一個從機選擇信號。
操作流程:
①Mater向Arbtier發(fā)送總線占用請求;
②獲得授權(quán)的Master進行總線傳輸
首先發(fā)出地址和控制信號:提供地址信息、傳輸方向等;
其次,譯碼器根據(jù)地址和控制信號選擇Slave,確定數(shù)據(jù)傳輸路徑;
最后進行數(shù)據(jù)傳輸。
02 ** 基本傳輸**
AHB傳輸分為兩部分:地址周期和數(shù)據(jù)周期;先地址周期,再數(shù)據(jù)周期;地址周期單周期,數(shù)據(jù)周期可多周期。
1.簡單傳輸(無等待)
在第一個時鐘上升沿傳輸控制和地址信號,在第二個時鐘上升沿傳輸數(shù)據(jù)信號,同時HREADY信號為高表明數(shù)據(jù)傳輸完成。
2.等待狀態(tài)的傳輸
首先是地址周期,在時鐘上升沿時傳輸?shù)刂沸盘柡涂刂菩盘枺?/p>
其次是數(shù)據(jù)周期,在下一個時鐘上升沿開始,如果HREADY信號為高則表明數(shù)據(jù)傳輸完成,HREADY信號為低則繼續(xù)傳輸。
注意:對于寫操作而言,數(shù)據(jù)在整個擴展周期要保持穩(wěn)定;讀操作則無必要。
3.多重傳輸
多重傳輸采用流水線pipeline技術。
如圖,第一個周期傳輸A地址;第二個周期傳輸A數(shù)據(jù)和B地址,同時READY為高表明A傳輸完成;第三個周期傳輸B數(shù)據(jù)和C地址,由于READY信號為低,數(shù)據(jù)傳輸未完成,需要等待;第四個周期保持地址和控制信號,同時READY信號為高表明B傳輸完成;由于沒有其他操作,第五個周期僅進行C數(shù)據(jù)傳輸,同時READY信號為高表明數(shù)據(jù)傳輸完成。
03 ** 傳輸類型HTRANS**
傳輸類型分四種:
空閑IDLE [00]:沒有數(shù)據(jù)傳輸要求
忙BUSY [01]:表明總線正被占用,下次傳輸不能立即發(fā)生
非連續(xù)NONSEQ [10]:表明一個單一傳輸或一次突發(fā)傳輸?shù)牡谝粋€傳輸
連續(xù)SEQ [11]:突發(fā)中的剩下傳輸且地址與前一次傳輸有關
第一個傳輸是一次突發(fā)傳輸?shù)拈_始,為NONSEQ類型;
由于主機不能立刻執(zhí)行第二次傳輸,因此未BUSY類型來延時下一次傳輸開始;
04 ** 突發(fā)類型HBURST**
突發(fā)類型分八種:
SINGLE單一傳輸、INCR未指定長度的增量突發(fā)、
INCR4、INCR8、INCR16 分別是4拍、8拍和16拍的增量突發(fā)
WRAP4、WRAP8、WRAP16 分別是4拍、8拍和16拍的回環(huán)突發(fā)
注意:突發(fā)禁止超過1KB的地址邊界
1KB邊界限制在AHB中表示burst傳輸不能跨越1KB邊界的約束。該限制旨在防止burst傳輸從一個slave交叉到另一個slave。在實踐中,這意味著如果master必須要進行跨1KB邊界的burst傳輸則必須切分成兩次傳輸
- WRAP4
起始地址為0x38, HSIZE=WORD[4byte], 突發(fā)類型是4拍回環(huán)突發(fā),回環(huán)邊界地址=回環(huán)拍數(shù)*SIZE=4*4byte=16byte = 0x10。
由于起始地址不是16的整倍數(shù),因此會產(chǎn)生折回,0x3C的下一個地址按增量為0x40,是16的整數(shù)倍,因此需要減去16,即為0x30。
2.INCR4
起始地址為0x38, HSIZE=WORD[4byte],突發(fā)類型為4拍增量突發(fā)。
地址順序為0x38 0x3C 0x40 0x44[4次]
3.WRAP8
起始地址0x34, SIZE=WORD=4byte, 突發(fā)類型為WRAP8,
回環(huán)邊界地址=回環(huán)拍數(shù)*SIZE=8*4=32byte=0x20,當遇到回環(huán)邊界地址的整數(shù)倍時減去回環(huán)邊界地址。
地址順序0x34、0x38、0x3C、0x20、0x24、0x28、0x2C、0x30。
4.INCR
對于T1-T3周期,突發(fā)類型為INCR, SIZE=halfword=2byte,因此地址依次為0x20、0x22;
對于T3-T8周期,突發(fā)類型為INCR, SIZE=WORD=4Byte, 起始地址為0x5C,因此地址依次為0x5C、0x60、0x64。
05 ** 控制信號**
傳輸方向HWRITE
HWRITE=H表明寫操作,傳輸方向為MasteràSlave;
HWRITE=L表明讀操作,傳輸方向為SlaveàMaster;
傳輸大小HSIZE[2:0]
8bit(byte) 、16bit(halfword)、32bit(word)、64bit(2word)、128bit(4word)、256bit(8word)、512bit、1024bit
06 地址譯碼
主機發(fā)送地址信息給地址和控制多路選擇器,選擇器將地址信息發(fā)送給所有從機,同時將地址信息發(fā)送給譯碼器,譯碼器根據(jù)地址信息將相應設備的HSEL信號置高。
如果地址不存在則從機提供ERROR響應。
07 ** 從機傳輸響應**
傳輸完成HREADY
HREADY=1表明傳輸完成;
HREADY=0表明傳輸將被擴展,繼續(xù)傳輸。
傳輸響應HRESP
00 OKAY 傳輸成功完成
01 ERROR 傳輸發(fā)生錯誤
10 RETRY 重試
11 SPLIT 傳輸未完成
僅有OKAY信號是單周期給出,其他響應信號至少兩個周期。
08 ** 接口框圖**
主機接口框圖
從機接口框圖
仲裁器接口框圖
譯碼器接口框圖
-
AMBA
+關注
關注
0文章
70瀏覽量
15327 -
AHB
+關注
關注
0文章
26瀏覽量
10121 -
嵌入式微控制器
+關注
關注
1文章
12瀏覽量
2729
發(fā)布評論請先 登錄
ARM總線協(xié)議AMBA中AHB、APB的區(qū)別與聯(lián)系
AMBA、APB、AHB簡介
AMBA AHB總線與APB總線資料合集
AMBA中的AHB總線協(xié)議詳解
在Arm AMBA協(xié)議集中AHB-lite可否使用
Arm AMBA協(xié)議集中AHB與AXI相比訪問DDR效率帶寬會差很大
Arm AMBA協(xié)議集中ahb2.0和3.0必須要有dummy master和default slave嗎?
請問一下Arm AMBA協(xié)議集中,axi burst 和ahb burst的區(qū)別是什么?
AMBA CHI協(xié)議介紹
數(shù)字IC驗證:ARM總線協(xié)議AMBA中AHB、APB的簡介、區(qū)別與聯(lián)系

AMBA AHB協(xié)議的burst termination簡析

評論