常見的仲裁管理方式如下:
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)請求時,那么優(yōu)先級較低的設(shè)備可能長期不能使用總線。
2)計(jì)數(shù)器定時查詢方式(集中式)
與鏈?zhǔn)讲樵兎绞较啾龋嗔艘唤M設(shè)備地址線,少了一根總線同意線BG??偩€控制模塊接到由BR送來的總線請求信號后,在總線未被使用(BS=0)的情況下,由計(jì)數(shù)器開始計(jì)數(shù),按計(jì)數(shù)值向各設(shè)備發(fā)出一組地址信號。當(dāng)某個有總線請求的設(shè)備地址與計(jì)數(shù)值一致時,便獲得總線使用權(quán),此時終止計(jì)數(shù)查詢。
這種方式的特點(diǎn)是:計(jì)數(shù)可以從“0”開始,此時設(shè)備的優(yōu)先次序是固定的;計(jì)數(shù)也可以從中止點(diǎn)開始,既是一種循環(huán)方法,此時設(shè)備使用總線的優(yōu)先級相等。計(jì)數(shù)器的初始值還可由程序設(shè)置,故優(yōu)先次序可以改變。此外對電路故障不如鏈?zhǔn)讲樵兎绞矫舾校黾恿酥骺刂凭€數(shù),控制也較復(fù)雜。
3)獨(dú)立請求方式(集中式)
獨(dú)立請求方式如下圖所示。其中每一個共享總線的設(shè)備均有一對總線請求線BRi和總線授權(quán)線BGi。當(dāng)設(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)時間快,優(yōu)先級次序控制靈活。但其缺點(diǎn)是控制線數(shù)量多。
4)分布仲裁方式(分布式)
分布式仲裁不需要中央仲裁器,每個潛在的主控功能模塊都有自己的仲裁號和仲裁器。當(dāng)它們有總線請求時,把它們唯一的仲裁號發(fā)送到共享的仲裁總線上,每個仲裁器將仲裁總線上得到的號與自己的號進(jìn)行比較。如果仲裁總線上的號大,則就撤銷自己向仲裁總線發(fā)送的仲裁號。最后,獲勝者的仲裁號保留在仲裁總線上,獲得總線控制權(quán)。
2.2.5 總線操作和定時
操作和定時主要解決占用總線的一對設(shè)備(主模塊和從模塊)如何進(jìn)行數(shù)據(jù)傳輸?shù)膯栴}。總線定時是指總線在雙方交換數(shù)據(jù)的過程中需要時間上配合關(guān)系的控制,這種控制稱為總線定時,它的實(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)總線的定時
總線的定時主要分為兩種,同步定時和異步定時。
同步定時方式是指系統(tǒng)采用一個統(tǒng)一的時鐘信號來協(xié)調(diào)發(fā)送和接收雙方的傳送定時關(guān)系。若干個時鐘產(chǎn)生相等的時間間隔,每個間隔構(gòu)成一個總線周期。在一個總線周期中,發(fā)送方和接收方可進(jìn)行一次數(shù)據(jù)傳送。因?yàn)椴捎媒y(tǒng)一的時鐘,每個模塊或設(shè)備發(fā)送或接收信息都在固定的總線傳送周期中,一個總線的傳送周期結(jié)束,下一個總線傳送周期開始。同步通信適用于總線長度較短及總線所接模塊的存取時間比較接近的系統(tǒng)。
- 優(yōu)點(diǎn):傳送速度快,具有較高的傳輸速率,總線控制邏輯簡單。
- 缺點(diǎn):主從模塊屬于強(qiáng)制性同步,不能及時進(jìn)行數(shù)據(jù)通信的有效性檢驗(yàn),可靠性較差。
在異步定時方式中,沒有統(tǒng)一的時鐘,也沒有固定的時間間隔,完全依靠傳送雙方相互制約的“握手”信號來實(shí)現(xiàn)定時控制。主模塊提出交換信息的“請求”信號,經(jīng)接口傳送到從模塊。從模塊接到主模塊的請求后,通過接口向主模塊發(fā)出“回答”信號。 - 優(yōu)點(diǎn):總線周期長度可變,能保證兩個工作速度相差很大的部件或設(shè)備之間可靠地進(jìn)行信息交換,自動適應(yīng)時間的配合。
- 缺點(diǎn):比同步控制方式稍復(fù)雜一些,速度比同步定時方式慢。
根據(jù)“請求”和“回答”信號的撤銷是否互鎖,分為以下3種類型。不互鎖方式速度最快,可靠性最差,全互鎖方式最可靠,速度最慢。 - 不互鎖方式:主模塊發(fā)出“請求”信號后,不必等到接到從模塊的“回答”信號,而是經(jīng)過一段時間,便撤銷“請求”信號。而從模塊在接到“請求”信號后,發(fā)出“回答”信號,并經(jīng)過一段時間,自動撤銷“回答”信號。雙方不存在互鎖關(guān)系。
- 半互鎖方式:主模塊發(fā)出“請求”信號后,必須等接到從模塊的“回答”信號后,才撤銷“請求”信號,有互鎖的關(guān)系。而從模塊在接到“請求”信號后,發(fā)出“回答”信號,但不必等待獲知主模塊的“請求”信號已經(jīng)撤銷,而是隔一段時間后自動撤銷“回答”信號,不存在互鎖關(guān)系。
- 全互鎖方式:主模塊發(fā)出“請求”信號后,必須等從模塊“回答”后,才撤銷“請求”信號。從模塊發(fā)出“回答”信號,必須待獲知主模塊“請求”信號已撤銷后,再撤銷其“回答”信號。雙方存在互鎖關(guān)系。
2.3 APB總線
2.3.1 APB總線簡介
APB總線屬于AMBA總線協(xié)議系列之一,它用在低帶寬、低性能、低功耗的外圍設(shè)備上,它屬于非流水線結(jié)構(gòu),所有的信號僅在時鐘上升沿時產(chǎn)生變化,這就規(guī)范了APB外圍設(shè)備的設(shè)計(jì)流程,增加了可擴(kuò)展性,每個傳輸至少需要兩個時鐘周期。另外,APB無需等待周期和回應(yīng)信號,只有四個控制信號,控制邏輯簡單。
APB經(jīng)過了幾個版本的演進(jìn)越來越完善,每個版本的差異如下:
2.3.2 APB傳輸狀態(tài)圖
狀態(tài)介紹:
- IDLE:APB總線上沒有數(shù)據(jù)傳輸時的空閑狀態(tài),也是APB的default狀態(tài)。
- SETUP:當(dāng)一個transfer被請求后,APB總線就會切換到該狀態(tài)。
- ACCESS:SETUP只會保持一個時鐘,在下一個時鐘上升沿會切換到該狀態(tài)。
狀態(tài)切換過程: - APB總線初始化為IDLE狀態(tài),這時沒有傳輸操作,也沒有選中slave模塊。
- 當(dāng)有transfer需要進(jìn)行時,PSELx=1,PENABLE=0,APB總線進(jìn)入SETUP狀態(tài),并在SETUP狀態(tài)下停留一個時鐘周期。當(dāng)下一個PCLK時鐘上升沿到來時,APB總線進(jìn)入ACCESS狀態(tài)。
- APB總線進(jìn)入ACCESS狀態(tài)時,維持之前在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ù)和選擇信號都在時鐘上升沿時改變。在T1時刻,把要訪問的地址、命令和數(shù)據(jù)全部放到APB總線上,開始一個寫傳輸,在時鐘的上升沿會寫地址PADDR、寫數(shù)據(jù)PWDATA、使能寫信號PWRITE,然后使能選擇PSEL信號,選擇從設(shè)備。這個時鐘周期對應(yīng)的階段叫做SETUP。
在T2時刻,在PCLK的上升沿,使能PENABLE以及PREADY信號,從設(shè)備發(fā)現(xiàn)自己的PSEL信號為高,就知道主設(shè)備選擇它來處理數(shù)據(jù)的寫操作,此時從設(shè)備內(nèi)部準(zhǔn)備號處理數(shù)據(jù)的準(zhǔn)備動作。PENABLE的使能代表著ACCESS傳輸階段的開始。在下一個PCLK的上升沿,PREADY信號的改變表明從設(shè)備完成了這筆傳輸。
在T3傳輸結(jié)束時刻到來前,PADDR、寫數(shù)據(jù)PWDATA和控制信號保持有效,直到T3時刻PCLK的上升沿到來才會結(jié)束ACCESS階段,從設(shè)備完成總線上數(shù)據(jù)采樣并進(jìn)行內(nèi)部數(shù)據(jù)處理。在傳輸結(jié)束的時候,如果沒有其他的相同的外設(shè)傳輸發(fā)起,PENABLE和PSEL信號會被清除。
2)有等待狀態(tài)的寫傳輸
如上時序圖,展示了從設(shè)備怎么使用PREADY信號擴(kuò)展傳輸。在ACCESS階段,當(dāng)PENABLE被置位,從設(shè)備通過拉低PREADY來擴(kuò)展傳輸。在PREADY保持低電平時,如下信號保持不變,比如:PADDR、PWRITE、PSEL、PENABLE、PWDATA、PSTRB、PPORT。當(dāng)PENABLE被置低,PREADY狀態(tài)不確定,這確保具有兩個固定時鐘周期訪問的外設(shè)能保持PREADY高。建議地址和寫信號在傳輸結(jié)束后,保持穩(wěn)定不做快速變化,直到另外一個訪問產(chǎn)生。這會減少不必要的功耗消耗。
2.3.5 APB讀傳輸
讀傳輸也包括兩種類型:無等待狀態(tài)和有等待傳輸。
1)無等待狀態(tài)的讀傳輸
如上時序圖,展示了一個讀傳輸。主設(shè)備在T1時刻把所要訪問的地址,命令全部放到APB總線上,沿著組成APB的接口傳播到從設(shè)備接口處。在T2時刻,從機(jī)發(fā)現(xiàn)自己的PSEL信號為高,就知道主機(jī)需要它內(nèi)部的數(shù)據(jù)(PWRITE ==0),此時從機(jī)內(nèi)部準(zhǔn)備好返回?cái)?shù)據(jù),并把返回的數(shù)據(jù)放在數(shù)據(jù)總線上,在T3時刻,主機(jī)完成總線上數(shù)據(jù)采樣得到需要的數(shù)據(jù)。
2)有等待狀態(tài)的讀傳輸
上時序圖顯示了信號是如何擴(kuò)展傳輸?shù)摹H绻贏ccess phase期間PREADY信號拉低,則傳輸被擴(kuò)展。但下述信號不變:
- 地址:PADDR
- 寫信號:PWRITE
- 選擇信號:PSEL
- 使能信號:PENABLE.
圖中顯示了如何使用PREADY信號來添加兩個周期,也可以添加數(shù)個周期。
2.3.6 APB錯誤響應(yīng)
使用PSLVERR來表明APB傳輸?shù)腻e誤狀態(tài)。在讀或者寫傳輸?shù)臅r候都有可能產(chǎn)生錯誤狀態(tài)。使用PSLVERR來指示APB傳輸錯誤。當(dāng)PSEL、PENABLE以及PREADY 都為高時,PSLVERR才在最后一個周期進(jìn)行判斷。當(dāng)任何一個PSEL、 PENABLE或者PREADY為低時,你可以將PSLVERR拉低,這是推薦,并不是強(qiáng)制要求。收到一個錯誤后,可能或不可能改變外圍器件的狀態(tài)。這是外設(shè)的特性,兩者都是可以接受。當(dāng)一個寫傳輸收到一個錯誤,這并不是說外設(shè)的寄存器沒有被主設(shè)備更新。當(dāng)收到一個讀傳輸?shù)腻e誤,這意味著返回的是無效的數(shù)據(jù)。沒必要在讀傳輸失敗的時候,通過總線返回0。APB外圍設(shè)備不要求必須支持PSLVERR引腳,當(dāng)不使用該引腳時,應(yīng)被置低。
1)寫傳輸失敗
上圖顯示了一個寫傳輸失敗的時序圖。在PSEL、PENABLE以及PREADY 都為高時,PSLVERR在最后一個周期進(jìn)行判斷,上圖顯示PSLVERR返回了一個錯誤。
2)讀傳輸失敗
一個讀傳輸可能是以總線返回錯誤結(jié)束,這表明當(dāng)前這筆讀傳輸返回的數(shù)據(jù)是無效的。上圖顯示了一個讀傳輸失敗的時序圖。
-
ARM
+關(guān)注
關(guān)注
134文章
9270瀏覽量
373641 -
總線
+關(guān)注
關(guān)注
10文章
2936瀏覽量
89164 -
AMBA
+關(guān)注
關(guān)注
0文章
70瀏覽量
15270
發(fā)布評論請先 登錄
相關(guān)推薦
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(下)

評論