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