0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

聊聊AMBA總線-APB

jf_78858299 ? 來源:IC解惑君 ? 作者:木飛 ? 2023-05-04 11:40 ? 次閱讀

1 - APB引言:

首先考慮一下以下的場景:

有一個水果店,只賣三種水果,分別是草莓、藍(lán)莓和蘋果。水果店按照客人購買量進(jìn)行 水果的進(jìn)貨 。 廠商根據(jù)水果店的要求 ,提供對應(yīng)數(shù)量的水果并 運送到水果店 。

每次交易如下:

水果店根據(jù)需求使用****大喇叭廣播 自己的訂單需求 ,說出想要訂貨的數(shù)量, 對應(yīng)廠商提供水果上門 ,水果店簽收。

使用這條水果運輸總線類比AMBA總線的APB****總線:

概念1: 主機(Master)

訂單的發(fā)起只能由 水果店發(fā)起 ,所以水果店在這條水果運輸總線里面運輸水果占有主動地位。

類比:

在APB總線里面,數(shù)據(jù)的傳輸只能由主機發(fā)起,其他部分響應(yīng)主機操作。

概念2:從機(Slave)

當(dāng)水果店發(fā)起訂單之后,和訂單匹配的廠家需要 提供對應(yīng)的水果送到水果店 。這里面的廠家 只能根據(jù)要求送水果 ,自己不能隨便向水果店送水果(沒有主動的權(quán)限)。

類比:

在APB總線里面,數(shù)據(jù)的回復(fù)由從機完成,從機 只能完成主機發(fā)起的操作 ,自己不能發(fā)起操作然后完成操作。

概念3:單主機(Single Master)

在這條水果運輸總線里面,當(dāng)前只有一個水果店,也只有這個水果店可以發(fā)起訂單需求,所以在 這條水果運輸總線里面,只有一個主機(按上圖來說)。

類比:

在APB總線里面, 有且只有一個主機可以連接到APB總線接口 ,其他的只能連接從機(外設(shè)),所以 APB總線只支持單主機模式

概念4:總線協(xié)議(Bus Protocol)

在這條水果運輸總線里面,水果店按照自己的需求,發(fā)起訂單,廠商提供水果,水果店確認(rèn)收到 這一個完整的流程以及順序被稱為水果總線在傳輸水果的協(xié)議。

類比:

在APB總線里面,主機先發(fā)起要訪問的外設(shè)地址,外設(shè)根據(jù)要求返回數(shù)據(jù),主機收到數(shù)據(jù),這一個完整的流程被稱為APB總線協(xié)議。

所以我們可以根據(jù)上面得出 單主機 總線的正式概念

總線是被總線上所有的部件所共享的一組通路(連線),對于單主機來說,如果該主機想要與其中的外設(shè)部件進(jìn)行通信(獲得數(shù)據(jù)),需要將地址(廠商名字)、數(shù)據(jù)(水果)、命令(進(jìn)貨還是退貨)放到總線上,其他的從機部件對總線上的數(shù)據(jù)進(jìn)行偵聽,檢查地址數(shù)據(jù)和命令的是否與自己相關(guān),然后 相關(guān)部件做出響應(yīng) 。

概念5: 命令總線、數(shù)據(jù)總線、地址總線

在這條水果運輸總線里面,水果店按照自己的需求,使用大喇叭發(fā)出進(jìn)貨還是退貨(命令)、哪個廠家(地址)、退貨的水果或者進(jìn)貨的水果(數(shù)據(jù))。

類比:

在APB總線中,有地址線(PADDR),命令線(PWRITE、PENABLE、PESEL)和數(shù)據(jù)線(PRDATA、PWDATA)。

PS:舉的例子和APB不是一一完全對應(yīng),但是表達(dá)的意思相同

2 - APB總線協(xié)議詳解:

2-1 APB在SOC內(nèi)使用的部分:

如圖:

CPU CPU是操作的發(fā)起者,CPU發(fā)起讀寫外設(shè)數(shù)據(jù)的操作。

APB_Interconnect :根據(jù)上文所說的總線協(xié)議和傳輸信號的要求,構(gòu)建出來的設(shè)計實體,該實體接收CPU發(fā)出的數(shù)據(jù)和指令,然后廣播到每一個外設(shè)部件。

**SLAVE:對APB_interconnect輸出數(shù)據(jù)和指令進(jìn)行響應(yīng)。

**

Q1 : 是否可以不需要APB_interconnect,APB_Interconect的作用是什么?

如上圖,當(dāng)CPU只有一個外設(shè),那么直接可以和外設(shè)相連,不需要APB_Interconect。此時CPU的發(fā)出的指令和操作只會發(fā)給URT0,不需要地址來仲裁。如下圖:

但是當(dāng)CPU需要連接多個外設(shè)的時候(CPU只管發(fā)出地址和命令),根據(jù) CPU地址范圍分配表

(1)APB_Interconect對每一個外設(shè)設(shè)置地址,然后APB_Interconect根據(jù)CPU發(fā)出的地址,選中對應(yīng)地址的外設(shè),把CPU的地址和指令傳輸?shù)皆撏庠O(shè) [地址路由仲裁]。

結(jié)論: 是否需要APB_interconnect根據(jù)應(yīng)用而定 ,如果只是單個的外設(shè)連接CPU(很少出現(xiàn)),可以直接連接CPU和外設(shè)通過APB總線。不需要APB_Interconect, 但是當(dāng)外設(shè)數(shù)目變多 ,自然而然的就引入了 不同外設(shè)的區(qū)分, 所以當(dāng)多個外設(shè)的時候,需要引入APB_Interconect來做這些相關(guān)的處理。

用水果店類比:水果店用大喇叭發(fā)出訂單,所有的水果廠家進(jìn)行偵聽,然后響應(yīng)訂單,**或者假如水果廠家沒有偵聽裝置,可以在水果店和水果廠家之間加一個Interconect,**這個Interconect的作用是當(dāng)收到某一個廠家的名字時,根據(jù) 廠家名字和地址的關(guān)系 ,把需求 單獨發(fā)送給對應(yīng)的廠家,專門通知供應(yīng)廠家 (也就是選中外設(shè))。

2-2 APB總線接口: (AMBA APB 2.0)

系統(tǒng)信號
PCLK
PRESETN
地址總線
PADDR
命令總線
PSELx
PENABLE
PWRITE
數(shù)據(jù)總線
PRDATA
PWDATA

根據(jù)上圖,結(jié)合之前的類比和概念我們基本就可以知道APB該怎么運行。

2-3 APB Bridge示意接口(APB_Interconect)

根據(jù)AMBA APB手冊,截取APB Bridge接口

圖左邊的接口System Bus Slave Interface,連接APB 主機(即上面的CPU),這個接口也是APB完整的接口,包含上面舉例的信號。圖右邊和左下面的接口連接多個SLAVE, 其中PSELn有多個 ,每個對應(yīng)不同的SLAVE。其他信號對于SLAVE是一致的,因為PSELn已經(jīng)可以選中不同的SLAVE來接收傳輸?shù)墓蚕硇盘柫恕?/p>

2-4 APB BUS時序圖(AMBA APB 2.0手冊)

寫傳輸:

如上時序圖,主機在T2時刻把所要訪問的 地址,命令和數(shù)據(jù)全部放到APB總線上 ,沿著組成APB的接口的金屬線 傳播到從機接口處 。在T3時刻, 從機發(fā)現(xiàn)自己的PSEL信號為高 ,就知道 主機選擇它來處理數(shù)據(jù)的寫操作 ,此時從機內(nèi)部準(zhǔn)備好處理數(shù)據(jù)的準(zhǔn)備動作,在T4時刻,從機 完成總線上數(shù)據(jù)采樣并進(jìn)行內(nèi)部數(shù)據(jù)處理 。

WriteEnable = PSEL & (!PENABLE) & PWRTIE ;
或者
WriteEnable = PSEL & PENABLE & PWRTIE ;


always @ (posedge PCLK or negedge PRESETn)
begin
  if(~PRESETn)
  begin
    reg_paddr  <= 'h0 ;
    reg_pwdata <= 'h0 ;
  end
  else if(WriteEnable)
  bein
    reg_paddr  <= PADDR ;
    reg_pwdata <= PWDATA ;   
  end
end


TODO:
外設(shè)內(nèi)部處理數(shù)據(jù)

讀傳輸:

如上時序圖,主機在T2時刻把所要訪問的 地址,命令和數(shù)據(jù)全部放到APB總線上 ,沿著組成APB的接口的金屬線 傳播到從機接口處 。在T3時刻, 從機發(fā)現(xiàn)自己的PSEL信號為高 ,就知道 主機需要它內(nèi)部的數(shù)據(jù)(PWRITE ==0) ,此時從機內(nèi)部準(zhǔn)備好 返回數(shù)據(jù)并把返回的數(shù)據(jù)放在數(shù)據(jù)總線上 ,在T4時刻,主機 完成總線上數(shù)據(jù)采樣得到需要的數(shù)據(jù)

ReadEnable = PSEL & (!PENABLE) & (!PWRTIE)
always @ (posedge PCLK or negedge PRESETn)
begin
  if(~PRESETn)
  begin
    reg_paddr  <= 'h0 ;
    reg_prdata <= 'h0 ;
  end
  else if(ReadEnable)
  bein
    reg_paddr  <= PADDR ;
    reg_prdata <= 外設(shè)內(nèi)部產(chǎn)生的數(shù)據(jù) ;   
  end
end
assign PRDATA = reg_prdata ;

2-5 APB BUS的優(yōu)缺點:

優(yōu)點:設(shè)計簡單,時序簡單,用在不需要高性能總線的外設(shè)上。

**缺點:每個數(shù)據(jù)的傳輸都需要兩個時鐘周期,這樣的話,APB BUS滿載的帶寬也只有50%,帶寬利用率不高。

**

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 主機
    +關(guān)注

    關(guān)注

    0

    文章

    1000

    瀏覽量

    35193
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2894

    瀏覽量

    88227
  • apb2
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    1476
收藏 人收藏

    評論

    相關(guān)推薦

    什么是APB協(xié)議/總線APB總線入門

    上一篇文章簡單講解了什么是AMBA總線,簡單來說,AMBA總線是一系列協(xié)議。定義了適用于不同場景的總線家族。今天我們就來將
    的頭像 發(fā)表于 01-02 11:37 ?3856次閱讀
    什么是<b class='flag-5'>APB</b>協(xié)議/<b class='flag-5'>總線</b>?<b class='flag-5'>APB</b><b class='flag-5'>總線</b>入門

    ARM總線協(xié)議AMBA中AHB、APB的區(qū)別與聯(lián)系

    , ASB, APB);Qchannel文章目錄1 AMBA總線2 AHB2.1 一個典型的基于AHB的微控制器2.2 AHB總線互聯(lián)結(jié)構(gòu):中心選擇器連接master與slave2.3
    發(fā)表于 02-09 07:46

    AMBA、APB、AHB簡介

    STM32菜鳥學(xué)習(xí)手冊——1、AMBA、APB、AHB簡介芯片上總線標(biāo)準(zhǔn)種類繁多,而由ARM公司推出的AMBA片上總線受到了廣大IP開發(fā)商和
    發(fā)表于 02-17 07:18

    AMBA AHB總線APB總線資料合集

    使用的是 SystemVerilog 描述。2、AMBA APB總線信號接口介紹前面分析了AHB總線協(xié)議。接下來分析APB
    發(fā)表于 04-07 10:03

    AMBA中的APB總線協(xié)議詳解

    1、漫談AMBA總線-APB首先考慮一下以下的場景:概念1: 主機(Master)訂單的發(fā)起只能由水果店發(fā)起,所以水果店在這條水果運輸總線里面運輸水果占有主動地位。類比:在
    發(fā)表于 06-07 16:14

    基于AMBA APB總線NandFlash控制器的設(shè)計

    介紹了基于AMBA APB總線NandFlash控制器的設(shè)計,首先簡單介紹了NandFlash的一些特點,然后詳細(xì)介紹了NandFlash控制器的整體框架、具體功能及其內(nèi)部的數(shù)據(jù)通路。該控制器通過ModelSim進(jìn)行了仿
    發(fā)表于 11-03 15:22 ?54次下載

    APB總線的應(yīng)用框圖及接口信號

    APB(AdvancedPeripheralBus)是AMBA(AdvancedMicrocontrollerBusArcheticture)總線體系的一部分。相較于AMBA
    發(fā)表于 11-17 11:54 ?1.3w次閱讀
    <b class='flag-5'>APB</b><b class='flag-5'>總線</b>的應(yīng)用框圖及接口信號

    基于AMBA總線介紹?

    1.1.AMBA發(fā)展史 AMAB1.0 AMBA2.0 AMBA3.0 AMBA4.0 AMBA1.0:ASB協(xié)議和
    的頭像 發(fā)表于 05-19 14:22 ?2139次閱讀
    基于<b class='flag-5'>AMBA</b><b class='flag-5'>總線</b>介紹?

    淺述AMBA-APB總線

    1 APB介紹 高級外設(shè)總線APB) 是高級微控制器總線架構(gòu) (AMBA) 協(xié)議系列的一部分。它定義了一個低成本接口,該接口針對最低功耗
    的頭像 發(fā)表于 07-23 10:04 ?2307次閱讀
    淺述<b class='flag-5'>AMBA-APB</b><b class='flag-5'>總線</b>

    介紹AMBA2.0總線

    1.1.AMBA發(fā)展史 AMAB1.0 AMBA2.0 AMBA3.0 AMBA4.0 AMBA1.0:ASB協(xié)議和
    的頭像 發(fā)表于 09-06 09:53 ?3198次閱讀
    介紹<b class='flag-5'>AMBA</b>2.0<b class='flag-5'>總線</b>

    數(shù)字IC驗證:ARM總線協(xié)議AMBA中AHB、APB的簡介、區(qū)別與聯(lián)系

    , ASB, APB);Qchannel文章目錄1 AMBA總線2 AHB2.1 一個典型的基于AHB的微控制器2.2 AHB總線互聯(lián)結(jié)構(gòu):中心選擇器連接master與slave2.3
    發(fā)表于 12-05 15:36 ?16次下載
    數(shù)字IC驗證:ARM<b class='flag-5'>總線</b>協(xié)議<b class='flag-5'>AMBA</b>中AHB、<b class='flag-5'>APB</b>的簡介、區(qū)別與聯(lián)系

    STM32菜鳥學(xué)習(xí)手冊——AMBA、APB、AHB簡介

    STM32菜鳥學(xué)習(xí)手冊——1、AMBAAPB、AHB簡介芯片上總線標(biāo)準(zhǔn)種類繁多,而由ARM公司推出的AMBA片上總線受到了廣大IP開發(fā)商和
    發(fā)表于 12-22 19:09 ?16次下載
    STM32菜鳥學(xué)習(xí)手冊——<b class='flag-5'>AMBA</b>、<b class='flag-5'>APB</b>、AHB簡介

    聊聊AMBA 是如何演變的?

    Arm 在 1990 年代后期推出了 AMBA。第一批 AMBA 總線是高級系統(tǒng)總線 (ASB:Advanced System Bus) 和高級外圍
    的頭像 發(fā)表于 05-04 11:00 ?1185次閱讀
    <b class='flag-5'>聊聊</b><b class='flag-5'>AMBA</b> 是如何演變的?

    AMBA總線那些事之APB

    之前老李問過大家想看哪方面的知識,有不少同學(xué)提議老李寫寫總線,特別是AMBA總線,所以老李決定從這期開始開始一個AMBA總線介紹的系列文章
    的頭像 發(fā)表于 05-04 14:53 ?2489次閱讀
    <b class='flag-5'>AMBA</b><b class='flag-5'>總線</b>那些事之<b class='flag-5'>APB</b>

    AMBA總線apb簡介

    APB(Advanced Peripheral Bus),外圍總線的意思。該總線協(xié)議是ARM公司提出的AMBA總線結(jié)構(gòu)之一,幾乎已成為一種標(biāo)
    發(fā)表于 06-05 15:10 ?2078次閱讀
    <b class='flag-5'>AMBA</b><b class='flag-5'>總線</b>—<b class='flag-5'>apb</b>簡介