高級外設(shè)總線 (APB) 接口:架構(gòu)、協(xié)議與應(yīng)用解析(下)
一、APB 協(xié)議詳解
讀操作流程
APB 讀操作的具體步驟如下:
SETUP 階段:主設(shè)備驅(qū)動 PADDR 信號指定要讀取的地址,驅(qū)動 PSELx 信號選擇目標(biāo)從設(shè)備,并將 PWRITE 信號置低表示讀操作。此時 PENABLE 信號保持低電平。
ENABLE 階段:主設(shè)備將 PENABLE 信號置高,啟動讀操作。從設(shè)備檢測到 PENABLE 信號有效后,將讀取的數(shù)據(jù)驅(qū)動到 PRDATA 總線上,并將 PREADY 信號置高表示數(shù)據(jù)就緒。
數(shù)據(jù)采集:主設(shè)備在檢測到 PREADY 信號有效后,從 PRDATA 總線上采集數(shù)據(jù),完成讀操作。
寫操作流程
APB 寫操作的步驟如下:
SETUP 階段:主設(shè)備驅(qū)動 PADDR 信號指定要寫入的地址,驅(qū)動 PSELx 信號選擇目標(biāo)從設(shè)備,將 PWRITE 信號置高表示寫操作,并將寫入的數(shù)據(jù)驅(qū)動到 PWDATA 總線上。此時 PENABLE 信號保持低電平。
ENABLE 階段:主設(shè)備將 PENABLE 信號置高,啟動寫操作。從設(shè)備檢測到 PENABLE 信號有效后,讀取 PWDATA 總線上的數(shù)據(jù),并將 PREADY 信號置高表示寫操作完成。
操作完成:主設(shè)備在檢測到 PREADY 信號有效后,認(rèn)為寫操作已完成,可以開始下一個傳輸周期。
等待狀態(tài)處理
當(dāng)從設(shè)備需要更多時間來完成操作時 (如訪問慢速存儲器),可以通過拉低 PREADY 信號來插入等待狀態(tài)。主設(shè)備在 ENABLE 階段會持續(xù)監(jiān)測 PREADY 信號,只有當(dāng) PREADY 信號有效時才會完成當(dāng)前傳輸周期。這種機(jī)制使 APB 能夠適應(yīng)不同速度的外設(shè),提高了總線的靈活性。
錯誤處理
APB 協(xié)議定義了 PSLVERR 信號用于指示傳輸過程中是否發(fā)生錯誤。當(dāng)從設(shè)備檢測到錯誤條件時 (如訪問非法地址),可以將 PSLVERR 信號置高。主設(shè)備在檢測到 PSLVERR 信號有效后,可以采取相應(yīng)的錯誤處理措施,如重試操作或報告錯誤。
二、APB 與其他 AMBA 總線的比較
APB vs AHB
設(shè)計目標(biāo):APB 專為低速外設(shè)設(shè)計,強(qiáng)調(diào)簡單性和低功耗;AHB (Advanced High-performance Bus) 則針對高性能應(yīng)用,支持高速數(shù)據(jù)傳輸和突發(fā)傳輸。
傳輸機(jī)制:APB 采用兩階段傳輸機(jī)制,而 AHB 采用多周期傳輸機(jī)制,支持更復(fù)雜的傳輸模式。
信號復(fù)雜度:APB 的信號集相對簡單,而 AHB 的信號集更復(fù)雜,包括更多的控制信號和狀態(tài)信號。
應(yīng)用場景:APB 適用于連接 UART、GPIO 等低速外設(shè);AHB 適用于連接 CPU、內(nèi)存控制器、高速外設(shè)等。
APB vs AXI
設(shè)計目標(biāo):AXI (Advanced eXtensible Interface) 是 AMBA 4.0 規(guī)范中引入的新一代總線協(xié)議,專為高性能、高帶寬應(yīng)用設(shè)計,支持亂序傳輸和非阻塞事務(wù);APB 則保持了簡單性和低功耗的特點(diǎn)。
傳輸方式:AXI 采用分離的地址和數(shù)據(jù)通道,支持并發(fā)傳輸;APB 則采用共享總線結(jié)構(gòu),地址和數(shù)據(jù)在同一總線上分時傳輸。
性能:AXI 的性能遠(yuǎn)高于 APB,適合用于高速數(shù)據(jù)傳輸和復(fù)雜系統(tǒng);APB 則適用于對性能要求不高的低速外設(shè)。
APB 的優(yōu)勢與局限性
優(yōu)勢:結(jié)構(gòu)簡單,實(shí)現(xiàn)成本低;功耗低,適合電池供電的嵌入式系統(tǒng);易于理解和使用,降低了開發(fā)難度。
局限性:傳輸效率較低,不適合高速數(shù)據(jù)傳輸;不支持并發(fā)傳輸和亂序處理,難以滿足復(fù)雜系統(tǒng)的需求。