之前文章為大家介紹了AHB的基本結(jié)構(gòu),信號(hào)以及基本傳輸,這次續(xù)上次文章,繼續(xù)為大家介紹AHB總線
內(nèi)容概括
這次為大家講述的內(nèi)容包括:
AHB傳輸類型
突發(fā)操作
仲裁
01
AHB傳輸類型
每個(gè)傳輸都可以分類為四個(gè)不同類型之一,如HTRANS[1:0]信號(hào)所示狀態(tài),詳解如下:
| HTRANS[1:0] | 傳輸類型 | Description |
|---|---|---|
| 00 | IDLE | 主設(shè)備占用總線,但沒進(jìn)行傳輸兩次突發(fā)傳輸中間主設(shè)備可發(fā)IDLE。此時(shí)就算從機(jī)被使能,也不會(huì)從總線上獲取任何的數(shù)據(jù)信號(hào)。如果此時(shí)從機(jī)被選中,那么每一個(gè)IDLE周期從機(jī)都要通過HRESP[1:0]返回一個(gè)OKAY響應(yīng) |
| 01 | BUSY | 主設(shè)備占用總線,但是在突發(fā)傳輸過程中還沒有準(zhǔn)備好進(jìn)行下一次傳輸。一次突發(fā)傳輸中間主設(shè)備可發(fā)BUSY這時(shí)從機(jī)不會(huì)從總線上收取數(shù)據(jù)而是等待,并且通過HRESP[1:0]返回一個(gè)OKAY響應(yīng)。需要注意的是,這個(gè)傳輸需要給出下一拍的地址和控制信號(hào),盡管從機(jī)不會(huì)去采樣。 |
| 10 | NONSEQ | 表明一次單個(gè)數(shù)據(jù)的傳輸或者一次突發(fā)傳輸?shù)牡谝粋€(gè)數(shù)據(jù)地址和控制信號(hào)與上一次傳輸無關(guān) |
| 11 | SEQ | 突發(fā)傳輸中剩下的傳輸是連續(xù)傳輸并且地址是和前一次傳輸有關(guān)的。控制信息和前一次傳輸一樣。地址等于前一次傳輸?shù)牡刂芳由蟼鬏敶笮。ㄗ止?jié))。在回環(huán)突發(fā)的情況下傳輸?shù)刂吩诘刂愤吔缣幓丨h(huán),回環(huán)值等于傳輸大小乘以傳輸?shù)拇螖?shù)(4、 8 或者 16 其中之一)。 |
圖2 表示了一組用到不同傳輸類型: 
圖2
- 第一個(gè)傳輸是一次突發(fā)的開始所以傳輸類型為非連續(xù);
- 主機(jī)不能立刻執(zhí)行突發(fā)的第二次傳輸所以主機(jī)使用了忙傳輸來延時(shí)下一次傳輸?shù)拈_始。在這個(gè)例子中主機(jī)在它準(zhǔn)備還突發(fā)的下一次傳輸之前僅請(qǐng)求了一個(gè)忙周期,下一次傳輸?shù)耐瓿蓻]有等狀態(tài);
- 主機(jī)立刻執(zhí)行突發(fā)的第三次傳輸,但是這時(shí)從機(jī)不能完成(傳輸)并用 HREADY來插入一個(gè)等待狀態(tài);
- 突發(fā)的最后一個(gè)傳輸以無等待狀態(tài)完成;
02
突發(fā)操作
AMBA AHB 協(xié)議定義了四、八和十六拍突發(fā),也有未定長(zhǎng)度的突發(fā)和信號(hào)傳輸。協(xié)議支持增量和回環(huán)操作:
**增量突發(fā)**訪問連續(xù)地址并且突發(fā)中的每次傳輸?shù)刂穬H是前一次地址的一個(gè)增量;對(duì)于 **回環(huán)突發(fā)** ,如果傳輸?shù)钠鹗嫉刂凡⑽春屯话l(fā)(x 拍)中字節(jié)總數(shù)對(duì)齊那么突發(fā)傳輸?shù)刂穼⒃谶_(dá)到邊界處回環(huán)。例如,一個(gè)四拍回環(huán)突發(fā)的字(4 字節(jié))訪問將在16 字節(jié)邊界回環(huán)。因此,如果傳輸?shù)钠鹗嫉刂肥?0x34,那么它將包含四個(gè)到地址
0x34、 0x38、 0x3C 和 0x30;
突發(fā)信息通過使用 HBURST[2:0]并且 8 種可能的類型在中定義如下:
| HBURST[2:0] | 類型 | 描述 |
|---|---|---|
| 000 | SINGLE | 單一傳輸 |
| 001 | INCR | 未指定長(zhǎng)度的增量突發(fā) |
| 010 | WRAP4 | 4拍回環(huán)突發(fā) |
| 011 | INCR4 | 4拍增量突發(fā) |
| 100 | WRAP8 | 8拍回環(huán)突發(fā) |
| 101 | INCR8 | 8拍增量突發(fā) |
| 110 | WRAP16 | 16拍回環(huán)突發(fā) |
| 111 | INCR16 | 16拍增量突發(fā) |
突發(fā)禁止超過 1KB 的地址邊界。 因此重要的是主機(jī)不要嘗試發(fā)起一個(gè)將要超過這個(gè)邊界的定長(zhǎng)增量突發(fā)。將執(zhí)行單個(gè)傳輸時(shí)使用未指定長(zhǎng)度的增量突發(fā)理解為長(zhǎng)度為一的突發(fā)比較合理。
一個(gè)增量突發(fā)可以是任何長(zhǎng)度,但是(長(zhǎng)度)上限由地址不能超過 1KB 邊界這個(gè)事實(shí)限定了。
注:突發(fā)大小表示突發(fā)的節(jié)拍數(shù)量,并不是一次突發(fā)傳輸?shù)膶?shí)際字節(jié)數(shù)量。一次突發(fā)傳輸?shù)臄?shù)據(jù)總量可以用節(jié)拍數(shù)乘以每拍數(shù)據(jù)的字節(jié)數(shù)來計(jì)算,每拍字節(jié)數(shù)由 HSIZE[2:0]指示。所有突發(fā)傳輸必須將地址邊界和傳輸大小對(duì)齊。例如,字傳輸必須對(duì)齊到字地址邊界(也就是 A[1:0] = 00),半字傳輸必須對(duì)齊到半字地址邊界(也就是 A[0] = 0)。
當(dāng)一個(gè)突發(fā)不允許完成的特定情況下,對(duì)任一從機(jī)設(shè)計(jì)而言,如果突發(fā)提前終止那么利用突發(fā)信息能夠采取正確的動(dòng)作顯得很重要。從機(jī)能夠通過監(jiān)控 HTRANS 信號(hào)決定一個(gè)突發(fā)何時(shí)提前終止并且確保在突發(fā)開始之后每次傳輸有連續(xù)或者忙的標(biāo)記。如果產(chǎn)生一個(gè)非連續(xù)或者空閑傳輸那么這表明一個(gè)新的突發(fā)已經(jīng)開始因此前一次突發(fā)一定已經(jīng)終止。
如果總線主機(jī)因?yàn)槭?duì)總線的占有而不能完成一次突發(fā)那么它必須在下一次獲取訪問總線時(shí)正確地重建突發(fā)。例如,如果一個(gè)主機(jī)僅完成了一個(gè)四拍突發(fā)的一拍那么它必須用一個(gè)未定長(zhǎng)度突發(fā)來執(zhí)行剩下的三拍突發(fā)。
下圖表示了一個(gè)四拍回環(huán)突發(fā)并且第一次傳輸伴隨一個(gè)附加等待狀態(tài)。

0****3
仲裁
仲裁機(jī)制被用來確保任意時(shí)刻只有一個(gè)主機(jī)能夠訪問總線。仲裁器的功能是檢測(cè)許多不同的使用總線的請(qǐng)求和決定當(dāng)前請(qǐng)求總線的主機(jī)中哪—個(gè)的優(yōu)先級(jí)最高。仲裁器也接收來自從機(jī)需要完成 SPIIT 傳輸?shù)恼?qǐng)求。
任何沒有能力執(zhí)行 SPLIT 傳輸?shù)膹臋C(jī)不需要了解仲裁的過程,除非它們需要檢測(cè)因?yàn)榭偩€所有權(quán)改變而導(dǎo)致突發(fā)傳輸不能完成的情況。
以下給出對(duì)每個(gè)仲裁信號(hào)的簡(jiǎn)短描述:
HBUSREQx 被總線主機(jī)用來請(qǐng)求訪問總線的總線請(qǐng)求信號(hào)。每個(gè)總線主機(jī)都有自己的連接到仲裁器的 HBUSREQx 信號(hào)并且任何一個(gè)系統(tǒng)中都可以有高達(dá)16個(gè)獨(dú)立的總線主機(jī)。
**HLOCKx **由主機(jī)在請(qǐng)求總線的同時(shí)時(shí)斷言的鎖定信號(hào)。這提示仲裁器主機(jī)正在執(zhí)行一系列不可分割的傳輸并且一旦鎖定傳輸?shù)牡谝粋€(gè)傳輸,己經(jīng)開始仲裁器不能授子任何其他主機(jī)訪問總線。HLOCKx必須在涉及到的地址被尋址到之前至少斷言一個(gè)周期,以防止仲裁器改變授子信號(hào)。
**HGRANTx **授子信號(hào)由仲裁器產(chǎn)生并且表示相關(guān)主機(jī)是當(dāng)前請(qǐng)求總線的主機(jī)中優(yōu)先級(jí)最高的主機(jī),(優(yōu)先)考慮鎖定傳輸和 SPLIT 傳輸。主機(jī)在 HGRANTx 為高時(shí)獲取地址總線的所有權(quán)并且在HCLK 的上升沿 HREADY 為高電平。
**HIVIASTER[3:0] **仲裁器使用 HMASTER[3:0]信號(hào)表示哪一個(gè)主機(jī)當(dāng)前被授子總線并且該信號(hào)可被用來控制中央地址和控制多路選擇器。有SFLIT 傳輸能力的從機(jī)也可以請(qǐng)求主機(jī)的序號(hào)以便它們能夠提示仲裁器哪個(gè)主機(jī)能夠完成一個(gè)SFLIT 傳輸。
HMASTLOCK仲裁器通過斷言 HVASTLOCK 信號(hào)指示當(dāng)前傳輸是一個(gè)鎖定序列的一部分,該信號(hào)和地址以及控制信號(hào)有相同的時(shí)序。
HSPLIT [15: 0] 這16位有完整分塊能力的總線被有分塊(SFLIT)能力的從機(jī)用來指示哪個(gè)總線主機(jī)能夠完成一個(gè) SPLIT 傳輸。仲裁器需要這些信息以便于授子主機(jī)訪問總線完成傳輸。
-
半導(dǎo)體
+關(guān)注
關(guān)注
339文章
30725瀏覽量
264005 -
soc
+關(guān)注
關(guān)注
40文章
4576瀏覽量
229101 -
AMBA總線
+關(guān)注
關(guān)注
0文章
35瀏覽量
10163
發(fā)布評(píng)論請(qǐng)先 登錄
基于AMBA-AHB總線的SDRAM控制器設(shè)計(jì)方案
ARM總線協(xié)議AMBA中AHB、APB的區(qū)別與聯(lián)系
AMBA、APB、AHB簡(jiǎn)介
AMBA AHB總線與APB總線資料合集
AMBA中的AHB總線協(xié)議詳解
總線概述之AMBA總線
數(shù)字IC驗(yàn)證:ARM總線協(xié)議AMBA中AHB、APB的簡(jiǎn)介、區(qū)別與聯(lián)系
STM32菜鳥學(xué)習(xí)手冊(cè)——AMBA、APB、AHB簡(jiǎn)介
AMBA協(xié)議之AHB介紹
聊聊AMBA總線-AHB
AMBA總線知識(shí)之AHB(上)
AMBA總線知識(shí)之AHB(下)
評(píng)論