AMBA總線學習(1)
(1)AMBA總線簡介
1)AMBA常用的系統(tǒng)總線:AHB,ASB,APB,AXI總線
AHB:高級高速總線
ASB:高級系統(tǒng)總線
APB:高級外設總線
2)一個Soc和外部的外設不可能每一個外設都和Soc建立一個地址線和數(shù)據(jù)線
3)總線:可以理解成一種高速公路,Soc只需要定義一下接口,所有的外設都可以使用這條總線接口
4)添加外設的時候不需要和Soc添加地址線和數(shù)據(jù)線
5)當外設使用總線和Soc傳輸數(shù)據(jù)的時候,其對總線在這個時間段有占用期

AHB總線:(高速總線)
(1)最多支持16個總線主設備,AHB接入的都是高速總線。支持突發(fā)傳輸
(2)上升沿觸發(fā)(電容充電快,上升沿觸發(fā)的時候建立時間和保持時間好控制)
(3)主機可以有多個設備(CPU、DMA、DSP),但不能同時訪問總線
(4)高速存儲器、AHBAPB橋是最常見的AHB叢機
APB總線:(慢速總線)
(1)搭載低速外設(UART、SPI、IIC、Timer),接口很簡單,不支持突發(fā)傳輸
(2)上升沿觸發(fā),原理和AHB總線一致,低功耗,作為AHB總線的二級總線
(3)APB只有叢機(UART、SPI、IIC、Timer),主機都是AHB的橋接器
(2)AHB總線總體結(jié)構
1)主機的高4bit數(shù)據(jù),反應的AHB主機的ID號,最大支持16個AHB主機
2)使用仲裁器處理不同主機的請求,當某一個主機被授予權重之后,數(shù)據(jù)選擇器選擇對應的AHB主機地址和AHB主機數(shù)據(jù)。選擇到的地址與數(shù)據(jù),同時傳輸給所有的AHB從機

3)仲裁器控制數(shù)據(jù)選擇器選擇到主機地址HADDR之后,通過HADDR的pages數(shù)據(jù),輸入給譯碼器,生成對應的從機選擇,S_HSELx信號拉高之后,對應的從機就被選擇。

4)即仲裁器控制選擇哪一個主機,得到HADDR,又可以從HADDR的數(shù)據(jù)中,通過譯碼器得到HSELx控制對應的從機
5)同樣,讀取數(shù)據(jù)的時候,HADDR也可以控制讀取數(shù)據(jù)選擇器,將對應從機的讀取數(shù)據(jù)讀取到主機。
(2)AHB總線信號
全局信號:HCLK,HRESETn
寫數(shù)據(jù)信號:
AHB主機信號

AXI/AHB/APB的總線地址都是32bit,
1)輸出給數(shù)據(jù)選擇器
O_HADDR[31:0]:31位的總線地址
O_HWDATA[31:0]:[1023:0]最大
O_HSIZE[2:0]:和AXI作用類似
O_HTRANS[1:0]:不連續(xù),連續(xù),空閑和忙(傳輸模式)
O_HWRITE:高表示不寫數(shù)據(jù),低表示讀數(shù)據(jù)
O_HBURST:突發(fā)類型,四個/八個/十六個/增量/回環(huán)傳輸
O_HPROT:保護控制
2)從機輸入
I_HRDATA[31:0]:[1023:0]最大
I_HRESP[1:0]:傳輸響應給傳輸狀態(tài)提供了附加信息。提供四種不同的響應:OKEY、ERROR、RETRY和SPLIT。
I_HREADY:為高時表示總線上的傳輸已經(jīng)完成。在擴展傳輸時該信號可能會被拉低。
3)和仲裁器交互
O_HBUSREQx:主機發(fā)送仲裁請求
O_HLOCKx:主機鎖定優(yōu)先級信號
I_HGRANTx:仲裁器授予輸入信號
仲裁器信號

1)和AHB主機交互
I_HBUSREQx:主機發(fā)送仲裁請求
I_HLOCKx:主機鎖定優(yōu)先級信號
O_HGRANTx:仲裁器授予輸入信號
2)每一個主機輸入進來的地址信號與數(shù)據(jù)信號,選擇其中一組輸出
I_HADDRx[31:0]:31位的總線地址
I_HWDATAx[31:0]:[1023:0]最大
I_HSIZEx[2:0]:和AXI作用類似
I_HTRANSx[1:0]:不連續(xù),連續(xù),空閑和忙(傳輸模式)
I_HWRITEx:高表示不寫數(shù)據(jù),低表示讀數(shù)據(jù)
I_HBURSTx:突發(fā)類型,四個/八個/十六個/增量/回環(huán)傳輸
//以下信號輸出給從機
O_HADDR:
O_HWDATA:
O_HSIZE[2:0]:
O_HTRANS[1:0]:
O_HWRITE:
O_HBURST:
3)每一個從機輸入進來的數(shù)據(jù)信號和有效信號,選擇其中一組輸出
I_HRDATAx[31:0]
I_HREADY
I_HRESP[1:0]
O_HRDATAx[31:0]
O_HREADY
O_HRESP[1:0]
4)根據(jù)仲裁器內(nèi)部的仲裁結(jié)果,將選中哪一個AHB主機的ID輸出
O_HMASTER[3:0]
O_HMASTLOCK
譯碼器信號

O_HSELx:每個AHB從機都有自己獨立的從機選擇信號并且用該信號來表示當前傳輸是否是打算送給選中的從機。該信號是地址總線的簡單組合譯碼。
寫地址和寫數(shù)據(jù)由仲裁其控制選中哪一個
AHB從機結(jié)構

(3)AHB總線信號傳輸時序
1)仲裁器授予主機訪問總線權力
2)任何訪問操作都需要HREADY信號高的時候才能繼續(xù)操作


3)總線移交時序,總線具體的時序移交需要看HMASTER是否改變。
4)當檢測到HGRANT信號改變時,即準備移交總線權,只有當HMASTER改變,總線才移交完成。

5)AHB傳輸模式:
1,AHB的傳輸屬于先輸出地址,再輸出數(shù)據(jù),輸出數(shù)據(jù)的過程中需要HREADY信號為高電平
主機在HCLK的上升沿之后將地址和控制信號驅(qū)動到總線上
然后在時鐘的下一個上升沿從機采樣地址和控制信息
在從機采樣了地址和控制信號后能夠開始驅(qū)動適當?shù)捻憫?/p>
并且該響應被總線主機在第三個時鐘的上升沿采樣。

一般來說HREADY信號拉低,其地址信號也不改變,數(shù)據(jù)滯后地址太久

2,多重數(shù)據(jù)傳輸
傳輸三個無關的地址A,B,C的數(shù)據(jù),其中B地址的數(shù)據(jù)存在等待狀態(tài),會造成C的地址擴展

AHB傳輸數(shù)據(jù)模式:空閑/忙/非連續(xù)/連續(xù)
連續(xù)傳輸?shù)牡刂肥呛颓耙粋€地址有關的/非連續(xù)傳輸和前一個地址無關

地址忙的狀態(tài)的時候,數(shù)據(jù)端是不需要傳輸數(shù)據(jù)的

AHB突發(fā)傳輸模式:
AMBA總線支持4拍,8拍和16拍的突發(fā)傳輸。
AHB的突發(fā)長度不可以超過1KB
AXI4的突發(fā)長度不可以超過4KB


四拍回環(huán)突發(fā)傳輸,如果單個數(shù)據(jù)位寬為4字節(jié),那么數(shù)據(jù)會在16字節(jié)處回環(huán)

四拍增量突發(fā)傳輸,如果單個數(shù)據(jù)位寬為4字節(jié),即連續(xù)突發(fā)16個字節(jié)的數(shù)據(jù)為止

同樣的八拍增量突發(fā)和回環(huán)突發(fā),其地址也是看是否在32字節(jié)出回頭

下面的增量突發(fā)的數(shù)據(jù)位寬是半字,16bit

