常見的仲裁管理方式如下:
1)鏈?zhǔn)讲樵兎绞剑惺剑?/p>
為減少總線授權(quán)線數(shù)量,采用下圖所示的菊花鏈查詢方式(BS總線忙、BR總線請求、BG總線同意)。
鏈?zhǔn)讲樵兎绞降闹饕攸c(diǎn)是:總線授權(quán)信號BG串行地從一個I/O接口傳送到下一個I/O接口,假如BG到達(dá)的接口無總線請求,則繼續(xù)往下查詢,假如BG到達(dá)的接口有總線請求,BG信號便不再往下查詢,發(fā)出相應(yīng)的BR信號,并置BS信號。這意味著該I/O接口就獲得了總線控制權(quán)。
可見,在查詢鏈中離中央仲裁器最近的設(shè)備具有最高優(yōu)先級,離中央仲裁器越遠(yuǎn),優(yōu)先級越低。因此,鏈?zhǔn)讲樵兪峭ㄟ^接口的優(yōu)先級排隊(duì)電路來實(shí)現(xiàn)的。鏈?zhǔn)讲樵兎绞酱嬖诘膬?yōu)缺點(diǎn)如下:
- 優(yōu)點(diǎn):只用很少幾根線就能按一定優(yōu)先級實(shí)現(xiàn)總線仲裁,并且這種鏈?zhǔn)浇Y(jié)構(gòu)很容易擴(kuò)充設(shè)備。
- 缺點(diǎn):對詢問鏈的電路故障很敏感,如果第n個設(shè)備的接口中有關(guān)的電路有故障,那么第n個以后的設(shè)備都不能進(jìn)行工作。另外查詢鏈的優(yōu)先級是固定的,如果優(yōu)先級高的設(shè)備頻繁出現(xiàn)請求時(shí),那么優(yōu)先級較低的設(shè)備可能長期不能使用總線。
2)計(jì)數(shù)器定時(shí)查詢方式(集中式)
與鏈?zhǔn)讲樵兎绞较啾?,多了一組設(shè)備地址線,少了一根總線同意線BG??偩€控制模塊接到由BR送來的總線請求信號后,在總線未被使用(BS=0)的情況下,由計(jì)數(shù)器開始計(jì)數(shù),按計(jì)數(shù)值向各設(shè)備發(fā)出一組地址信號。當(dāng)某個有總線請求的設(shè)備地址與計(jì)數(shù)值一致時(shí),便獲得總線使用權(quán),此時(shí)終止計(jì)數(shù)查詢。
這種方式的特點(diǎn)是:計(jì)數(shù)可以從“0”開始,此時(shí)設(shè)備的優(yōu)先次序是固定的;計(jì)數(shù)也可以從中止點(diǎn)開始,既是一種循環(huán)方法,此時(shí)設(shè)備使用總線的優(yōu)先級相等。計(jì)數(shù)器的初始值還可由程序設(shè)置,故優(yōu)先次序可以改變。此外對電路故障不如鏈?zhǔn)讲樵兎绞矫舾?,但增加了主控制線數(shù),控制也較復(fù)雜。
3)獨(dú)立請求方式(集中式)
獨(dú)立請求方式如下圖所示。其中每一個共享總線的設(shè)備均有一對總線請求線BRi和總線授權(quán)線BGi。當(dāng)設(shè)備要求使用總線時(shí),便發(fā)出該設(shè)備的請求信號BRi??偩€控制部件中有一排隊(duì)電路,可根據(jù)優(yōu)先次序確定響應(yīng)哪一設(shè)備的請求,給設(shè)備發(fā)相應(yīng)的授權(quán)信號BGi。獨(dú)立請求方式的優(yōu)點(diǎn)是響應(yīng)時(shí)間快,優(yōu)先級次序控制靈活。但其缺點(diǎn)是控制線數(shù)量多。
4)分布仲裁方式(分布式)
分布式仲裁不需要中央仲裁器,每個潛在的主控功能模塊都有自己的仲裁號和仲裁器。當(dāng)它們有總線請求時(shí),把它們唯一的仲裁號發(fā)送到共享的仲裁總線上,每個仲裁器將仲裁總線上得到的號與自己的號進(jìn)行比較。如果仲裁總線上的號大,則就撤銷自己向仲裁總線發(fā)送的仲裁號。最后,獲勝者的仲裁號保留在仲裁總線上,獲得總線控制權(quán)。
2.2.5 總線操作和定時(shí)
操作和定時(shí)主要解決占用總線的一對設(shè)備(主模塊和從模塊)如何進(jìn)行數(shù)據(jù)傳輸?shù)膯栴}??偩€定時(shí)是指總線在雙方交換數(shù)據(jù)的過程中需要時(shí)間上配合關(guān)系的控制,這種控制稱為總線定時(shí),它的實(shí)質(zhì)是一種協(xié)議或規(guī)則。
1)總線傳輸?shù)乃膫€階段
- 申請分配階段:由需要使用總線的主模塊(或主設(shè)備)提出申請,經(jīng)總線仲裁模塊決定將下一傳輸周期的總線使用權(quán)授予某一個申請者。也可將此階段細(xì)分為傳輸請求和總線仲裁兩個階段。
- 尋址階段:獲得使用權(quán)的主模塊通過總線發(fā)出本次要訪問的從模塊的地址及有關(guān)命令,啟動參與本次傳輸?shù)膹哪K。
- 傳輸階段:主模塊和從模塊進(jìn)行數(shù)據(jù)交換,可單向或雙向進(jìn)行數(shù)據(jù)傳送。
- 結(jié)束階段:主模塊的有關(guān)信息均從系統(tǒng)總線上撤除,讓出總線使用權(quán)。
2)總線的定時(shí)
總線的定時(shí)主要分為兩種,同步定時(shí)和異步定時(shí)。
同步定時(shí)方式是指系統(tǒng)采用一個統(tǒng)一的時(shí)鐘信號來協(xié)調(diào)發(fā)送和接收雙方的傳送定時(shí)關(guān)系。若干個時(shí)鐘產(chǎn)生相等的時(shí)間間隔,每個間隔構(gòu)成一個總線周期。在一個總線周期中,發(fā)送方和接收方可進(jìn)行一次數(shù)據(jù)傳送。因?yàn)椴捎媒y(tǒng)一的時(shí)鐘,每個模塊或設(shè)備發(fā)送或接收信息都在固定的總線傳送周期中,一個總線的傳送周期結(jié)束,下一個總線傳送周期開始。同步通信適用于總線長度較短及總線所接模塊的存取時(shí)間比較接近的系統(tǒng)。
- 優(yōu)點(diǎn):傳送速度快,具有較高的傳輸速率,總線控制邏輯簡單。
- 缺點(diǎn):主從模塊屬于強(qiáng)制性同步,不能及時(shí)進(jìn)行數(shù)據(jù)通信的有效性檢驗(yàn),可靠性較差。
在異步定時(shí)方式中,沒有統(tǒng)一的時(shí)鐘,也沒有固定的時(shí)間間隔,完全依靠傳送雙方相互制約的“握手”信號來實(shí)現(xiàn)定時(shí)控制。主模塊提出交換信息的“請求”信號,經(jīng)接口傳送到從模塊。從模塊接到主模塊的請求后,通過接口向主模塊發(fā)出“回答”信號。 - 優(yōu)點(diǎn):總線周期長度可變,能保證兩個工作速度相差很大的部件或設(shè)備之間可靠地進(jìn)行信息交換,自動適應(yīng)時(shí)間的配合。
- 缺點(diǎn):比同步控制方式稍復(fù)雜一些,速度比同步定時(shí)方式慢。
根據(jù)“請求”和“回答”信號的撤銷是否互鎖,分為以下3種類型。不互鎖方式速度最快,可靠性最差,全互鎖方式最可靠,速度最慢。 - 不互鎖方式:主模塊發(fā)出“請求”信號后,不必等到接到從模塊的“回答”信號,而是經(jīng)過一段時(shí)間,便撤銷“請求”信號。而從模塊在接到“請求”信號后,發(fā)出“回答”信號,并經(jīng)過一段時(shí)間,自動撤銷“回答”信號。雙方不存在互鎖關(guān)系。
- 半互鎖方式:主模塊發(fā)出“請求”信號后,必須等接到從模塊的“回答”信號后,才撤銷“請求”信號,有互鎖的關(guān)系。而從模塊在接到“請求”信號后,發(fā)出“回答”信號,但不必等待獲知主模塊的“請求”信號已經(jīng)撤銷,而是隔一段時(shí)間后自動撤銷“回答”信號,不存在互鎖關(guān)系。
- 全互鎖方式:主模塊發(fā)出“請求”信號后,必須等從模塊“回答”后,才撤銷“請求”信號。從模塊發(fā)出“回答”信號,必須待獲知主模塊“請求”信號已撤銷后,再撤銷其“回答”信號。雙方存在互鎖關(guān)系。
2.3 APB總線
2.3.1 APB總線簡介
APB總線屬于AMBA總線協(xié)議系列之一,它用在低帶寬、低性能、低功耗的外圍設(shè)備上,它屬于非流水線結(jié)構(gòu),所有的信號僅在時(shí)鐘上升沿時(shí)產(chǎn)生變化,這就規(guī)范了APB外圍設(shè)備的設(shè)計(jì)流程,增加了可擴(kuò)展性,每個傳輸至少需要兩個時(shí)鐘周期。另外,APB無需等待周期和回應(yīng)信號,只有四個控制信號,控制邏輯簡單。
APB經(jīng)過了幾個版本的演進(jìn)越來越完善,每個版本的差異如下:

2.3.2 APB傳輸狀態(tài)圖

狀態(tài)介紹:
- IDLE:APB總線上沒有數(shù)據(jù)傳輸時(shí)的空閑狀態(tài),也是APB的default狀態(tài)。
- SETUP:當(dāng)一個transfer被請求后,APB總線就會切換到該狀態(tài)。
- ACCESS:SETUP只會保持一個時(shí)鐘,在下一個時(shí)鐘上升沿會切換到該狀態(tài)。
狀態(tài)切換過程: - APB總線初始化為IDLE狀態(tài),這時(shí)沒有傳輸操作,也沒有選中slave模塊。
- 當(dāng)有transfer需要進(jìn)行時(shí),PSELx=1,PENABLE=0,APB總線進(jìn)入SETUP狀態(tài),并在SETUP狀態(tài)下停留一個時(shí)鐘周期。當(dāng)下一個PCLK時(shí)鐘上升沿到來時(shí),APB總線進(jìn)入ACCESS狀態(tài)。
- APB總線進(jìn)入ACCESS狀態(tài)時(shí),維持之前在SETUP狀態(tài)的PADDR、PSEL、PWRITE,然后將PENABLE置為1。傳輸也只會在ACCESS狀態(tài)維持一個周期,在經(jīng)過SETUP與ACCESS狀態(tài)之后,傳輸也已經(jīng)完成了。
- 之后如果沒有新的transfer需要進(jìn)行,就進(jìn)入IDLE狀態(tài)等待,如果有連續(xù)的傳輸,則進(jìn)入SETUP狀態(tài)。
2.3.3 APB信號

2.3.4 APB寫傳輸
寫傳輸包括兩種類型:無等待狀態(tài)和有等待狀態(tài)。
1)無等待狀態(tài)的寫傳輸

地址、寫入信號、寫入數(shù)據(jù)和選擇信號都在時(shí)鐘上升沿時(shí)改變。在T1時(shí)刻,把要訪問的地址、命令和數(shù)據(jù)全部放到APB總線上,開始一個寫傳輸,在時(shí)鐘的上升沿會寫地址PADDR、寫數(shù)據(jù)PWDATA、使能寫信號PWRITE,然后使能選擇PSEL信號,選擇從設(shè)備。這個時(shí)鐘周期對應(yīng)的階段叫做SETUP。
在T2時(shí)刻,在PCLK的上升沿,使能PENABLE以及PREADY信號,從設(shè)備發(fā)現(xiàn)自己的PSEL信號為高,就知道主設(shè)備選擇它來處理數(shù)據(jù)的寫操作,此時(shí)從設(shè)備內(nèi)部準(zhǔn)備號處理數(shù)據(jù)的準(zhǔn)備動作。PENABLE的使能代表著ACCESS傳輸階段的開始。在下一個PCLK的上升沿,PREADY信號的改變表明從設(shè)備完成了這筆傳輸。
在T3傳輸結(jié)束時(shí)刻到來前,PADDR、寫數(shù)據(jù)PWDATA和控制信號保持有效,直到T3時(shí)刻PCLK的上升沿到來才會結(jié)束ACCESS階段,從設(shè)備完成總線上數(shù)據(jù)采樣并進(jìn)行內(nèi)部數(shù)據(jù)處理。在傳輸結(jié)束的時(shí)候,如果沒有其他的相同的外設(shè)傳輸發(fā)起,PENABLE和PSEL信號會被清除。
2)有等待狀態(tài)的寫傳輸

如上時(shí)序圖,展示了從設(shè)備怎么使用PREADY信號擴(kuò)展傳輸。在ACCESS階段,當(dāng)PENABLE被置位,從設(shè)備通過拉低PREADY來擴(kuò)展傳輸。在PREADY保持低電平時(shí),如下信號保持不變,比如:PADDR、PWRITE、PSEL、PENABLE、PWDATA、PSTRB、PPORT。當(dāng)PENABLE被置低,PREADY狀態(tài)不確定,這確保具有兩個固定時(shí)鐘周期訪問的外設(shè)能保持PREADY高。建議地址和寫信號在傳輸結(jié)束后,保持穩(wěn)定不做快速變化,直到另外一個訪問產(chǎn)生。這會減少不必要的功耗消耗。
2.3.5 APB讀傳輸
讀傳輸也包括兩種類型:無等待狀態(tài)和有等待傳輸。
1)無等待狀態(tài)的讀傳輸

如上時(shí)序圖,展示了一個讀傳輸。主設(shè)備在T1時(shí)刻把所要訪問的地址,命令全部放到APB總線上,沿著組成APB的接口傳播到從設(shè)備接口處。在T2時(shí)刻,從機(jī)發(fā)現(xiàn)自己的PSEL信號為高,就知道主機(jī)需要它內(nèi)部的數(shù)據(jù)(PWRITE ==0),此時(shí)從機(jī)內(nèi)部準(zhǔn)備好返回?cái)?shù)據(jù),并把返回的數(shù)據(jù)放在數(shù)據(jù)總線上,在T3時(shí)刻,主機(jī)完成總線上數(shù)據(jù)采樣得到需要的數(shù)據(jù)。
2)有等待狀態(tài)的讀傳輸

上時(shí)序圖顯示了信號是如何擴(kuò)展傳輸?shù)?。如果在Access phase期間PREADY信號拉低,則傳輸被擴(kuò)展。但下述信號不變:
- 地址:PADDR
- 寫信號:PWRITE
- 選擇信號:PSEL
- 使能信號:PENABLE.
圖中顯示了如何使用PREADY信號來添加兩個周期,也可以添加數(shù)個周期。
2.3.6 APB錯誤響應(yīng)
使用PSLVERR來表明APB傳輸?shù)腻e誤狀態(tài)。在讀或者寫傳輸?shù)臅r(shí)候都有可能產(chǎn)生錯誤狀態(tài)。使用PSLVERR來指示APB傳輸錯誤。當(dāng)PSEL、PENABLE以及PREADY 都為高時(shí),PSLVERR才在最后一個周期進(jìn)行判斷。當(dāng)任何一個PSEL、 PENABLE或者PREADY為低時(shí),你可以將PSLVERR拉低,這是推薦,并不是強(qiáng)制要求。收到一個錯誤后,可能或不可能改變外圍器件的狀態(tài)。這是外設(shè)的特性,兩者都是可以接受。當(dāng)一個寫傳輸收到一個錯誤,這并不是說外設(shè)的寄存器沒有被主設(shè)備更新。當(dāng)收到一個讀傳輸?shù)腻e誤,這意味著返回的是無效的數(shù)據(jù)。沒必要在讀傳輸失敗的時(shí)候,通過總線返回0。APB外圍設(shè)備不要求必須支持PSLVERR引腳,當(dāng)不使用該引腳時(shí),應(yīng)被置低。
1)寫傳輸失敗

上圖顯示了一個寫傳輸失敗的時(shí)序圖。在PSEL、PENABLE以及PREADY 都為高時(shí),PSLVERR在最后一個周期進(jìn)行判斷,上圖顯示PSLVERR返回了一個錯誤。
2)讀傳輸失敗

一個讀傳輸可能是以總線返回錯誤結(jié)束,這表明當(dāng)前這筆讀傳輸返回的數(shù)據(jù)是無效的。上圖顯示了一個讀傳輸失敗的時(shí)序圖。
-
ARM
+關(guān)注
關(guān)注
135文章
9582瀏覽量
393454 -
總線
+關(guān)注
關(guān)注
10文章
3055瀏覽量
91849 -
AMBA
+關(guān)注
關(guān)注
0文章
70瀏覽量
16109
發(fā)布評論請先 登錄
AMBA AHB總線與APB總線資料合集
I2C總線的工作原理與應(yīng)用
AMBA總線IP核的設(shè)計(jì)
ARM體系的特點(diǎn)與ARM的技術(shù)的簡介及AMBA總線的分析
AMBA 3.0 AXI總線接口協(xié)議的研究與應(yīng)用
基于AMBA總線介紹?
深度解讀AMBA、AHB、APB、AXI總線介紹及對比
介紹AMBA2.0總線
AMBA總線知識之AHB(上)
AMBA總線知識之AHB(下)
深度分析AMBA總線工作原理2
評論