<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > AHB總線(xiàn)協(xié)議

AHB總線(xiàn)協(xié)議

作者: 時(shí)間:2018-07-25 來(lái)源:網(wǎng)絡(luò ) 收藏

1. 簡(jiǎn)介

本文引用地址:http://dyxdggzs.com/article/201807/383796.htm

AHB總線(xiàn)規范是AMBA總線(xiàn)規范的一部分,AMBA總線(xiàn)規范是ARM公司提出的總線(xiàn)規范,被大多數SoC設計采用,它規定了AHB (Advanced High-performance Bus)、ASB (Advanced System Bus)、APB (Advanced Peripheral Bus)。AHB用于高性能、高時(shí)鐘頻率的系統結構,典型的應用如ARM核與系統內部的高速RAM、NAND FLASH、DMA、Bridge的連接。APB用于連接外部設備,對性能要求不高,而考慮低功耗問(wèn)題。ASB是AHB的一種替代方案。

1.1 AHB總線(xiàn)的架構

AHB總線(xiàn)的強大之處在于它可以將(CPU)、高帶寬的片上RAM、高帶寬的外部存儲器接口、DMA總線(xiàn)master、各種擁有AHB接口的器等等連接起來(lái)構成一個(gè)獨立的完整的SOC系統,不僅如此,還可以通過(guò)AHB-APB橋來(lái)連接APB總線(xiàn)系統。AHB可以成為一個(gè)完整獨立的SOC芯片的骨架。

下圖是一個(gè)典型的AHB系統總線(xiàn)的結構示意圖

1.2 AHB基本特性

Burst傳輸

Split事務(wù)處理

單周期master移交

單一時(shí)鐘沿操作

無(wú)三態(tài)

更寬的數據總線(xiàn)配置(64/128)

流水線(xiàn)操作

可支持多個(gè)總線(xiàn)主設備(最多16個(gè))

2. AHB總線(xiàn)的組成

AHB總線(xiàn)由Master、Slave和Infrastructure構成。Infrastructure由arbiter、數據多路、地址多路、譯碼器構成。

主設備Master

發(fā)起一次讀/寫(xiě)操作

某一時(shí)刻只允許一個(gè)主設備使用總線(xiàn)

從設備Slave

響應一次讀/寫(xiě)操作

通過(guò)地址映射來(lái)選擇使用哪一個(gè)從設備

仲裁器arbiter

允許某一個(gè)主設備控制總線(xiàn)

譯碼器decoder

通過(guò)地址譯碼決定選擇哪一個(gè)從設備

總線(xiàn)可以分為三組

寫(xiě)數據總線(xiàn)(HWDATA)

讀數據總線(xiàn)(HRDATA)

地址控制總線(xiàn)(HADDR)

3. 信號描述

NameSourceToDescription
HCLKclock source各module總線(xiàn)時(shí)鐘,上升沿采樣
HRESETnreset controller各module總線(xiàn)復位,低電平有效
HADDR[31:0]Masterdecoder
mux to slave
arbiter
32位系統地址總線(xiàn)
HTRANS[1:0]Mastermux to slave當前傳輸類(lèi)型NONSEQ, SEQ, IDLE, BUSY
HWRITEMastermux to slave1為寫(xiě),0為讀
HSIZE[2:0]Mastermux to slave每一個(gè)transfer傳輸的數據大小,以字節為單位,最高支持1024位
HBURST[2:0]Mastermux to slaveburst類(lèi)型,支持4、8、16 burst,incrementing/wrapping
HPROT[3:0]Mastermux to slave保護控制信號,需要slave帶保護功能,一般不用
HWDATA[31:0]Mastermux to slave寫(xiě)數據總線(xiàn),Master到Slave
HRDATA[31:0]Slavemux to master讀數據總線(xiàn),Slave到Master
HREADYSlavemux to master
arbiter
高:Slave指出傳輸結束
低:Slave需延長(cháng)傳輸周期
HRESP[1:0]Slavemux to master
arbiter
Slave發(fā)給Master的總線(xiàn)傳輸狀態(tài)OKAY, ERROR, RETRY, SPLIT
HSELxDecoderslaveslave選擇信號

AHB仲裁信號

NameSourceToDescription
HBUSREQxMasterarbitermaster給仲裁器的請求獲得總線(xiàn)使用權的請求信號,最多支持16個(gè)master
HLOCKxMasterarbiter如果一個(gè)master希望自己在傳輸期間不希望丟掉總線(xiàn),則需要向仲裁器發(fā)送這個(gè)鎖定信號
HGRANTxarbitermaster授權信號,當前bus master x的優(yōu)先級最高。當HREADY和HGRANTx同時(shí)為高時(shí),master獲取系統總線(xiàn)的權利
HMASTER [3:0]arbiter具有split功能的slave仲裁器為每一個(gè)master分配的ID,指出哪個(gè)主設備正在進(jìn)行傳輸,提供進(jìn)行split的信息
HMASTLOCKarbiter具有split功能的slave表示當前的master正在執行Locked操作。這個(gè)信號和HMASTER有這相同的時(shí)序
HSPLITx[15:0]slavearbiter從設備用這個(gè)信號告訴仲裁器哪個(gè)主設備運行重新嘗試一次split傳輸,每一位對應一個(gè)主設備

4. 總線(xiàn)操作

有需要占用總線(xiàn)的Master向arbiter發(fā)出請求,arbiter授權給指定的master。任一時(shí)間周期只有一個(gè)master可以接入總線(xiàn),對其指定的slave進(jìn)行讀寫(xiě)操作。

獲得授權的總線(xiàn)開(kāi)始AHB傳輸,首先發(fā)出地址和控制信號,提供地址信息、傳輸方向、帶寬和burst類(lèi)型??偩€(xiàn)統一規劃slave的地址,譯碼器根據地址和控制信號確定哪個(gè)slave與master進(jìn)行數據通信。數據傳輸通過(guò)數據總線(xiàn)完成。為避免出現三態(tài)總線(xiàn),AHB將讀寫(xiě)總線(xiàn)分開(kāi),寫(xiě)數據總線(xiàn)用于從master到slave的數據傳輸,讀數據總線(xiàn)用于從slave到master的數據傳輸。每筆傳輸包括一個(gè)地址和控制周期,一個(gè)或多個(gè)數據周期。地址和控制周期不能被擴展,因此slave必須在一個(gè)周期內采樣地址信號。數據周期可以通過(guò)HREADY信號擴展,但HREADY為低時(shí)給傳輸加入一個(gè)等待狀態(tài)以使slave獲得額外的時(shí)間來(lái)提供或采樣數據,另外slave通過(guò)響應信號HRESP反映傳輸狀態(tài)。

一般情況下master完成完整的burst傳輸,arbiter才會(huì )授權給其他的master接入總線(xiàn),然而為避免過(guò)大的判決延遲,arbiter也可能打斷burst傳輸。在這種情況下master必須再次接入總線(xiàn)以進(jìn)行中斷的burst剩余部分的傳輸。

5. 基本傳輸

一筆傳輸由如下兩部分組成:

地址階段:一個(gè)周期

數據階段:一個(gè)或多個(gè)周期,由HBURST信號決定需要幾個(gè)有效周期,可以由HREADY發(fā)出請求延長(cháng)一個(gè)周期。

5.1 沒(méi)有等待狀態(tài)的single transfer

第一個(gè)周期的上升沿,master驅動(dòng)地址和控制信號;

第二個(gè)周期的上升沿,slave采樣地址和控制信號,并將HREADY拉高;

如果是寫(xiě)操作,master會(huì )在第二個(gè)周期的上升沿傳輸要寫(xiě)入的數據;

如果是讀操作,slave會(huì )在HREADY信號拉高后將讀取的數據寫(xiě)入總線(xiàn);

第三個(gè)周期的上升沿,

如果是寫(xiě)操作,master獲取HREADY高信號,表明slave已成功接收數據,操作成功;

如果是讀操作,master獲取HREADY高信號,表明此時(shí)的讀數據有效并且接收下來(lái),操作成功。

需要注意,HREADY信號在數據有效期間必須為高,并且延續到第三個(gè)周期的上升沿之后,確保master的正確采樣。

5.2 slave插入等待狀態(tài)的single transfer

slave可以及時(shí)處理master請求,但也可能存在slave太慢不能立即處理的情況。這時(shí)需要讓master稍微等一等,需要slave插入一些等待的狀態(tài)。如下圖所示,HREADY信號在第二和第三周期拉低,意在告訴master,slave不能立即處理,需要master等待2個(gè)周期。在這里需要注意2點(diǎn):

如果是寫(xiě)操作,master需要在等待期間保持寫(xiě)數據不變,直到本次傳輸完成;

如果是讀操作,slave不需要一開(kāi)始就給出數據,僅當HREADY拉高后才給出有效數據。

5.3 多個(gè)single transfer的pipeline操作


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 微控制器 控制

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>