高級外設(shè)總線 (APB) 接口:架構(gòu)、協(xié)議與應(yīng)用解析(上)
一、APB 接口的基本概念
高級外設(shè)總線 (Advanced Peripheral Bus, APB) 是 ARM 公司開發(fā)的一種片上總線協(xié)議,屬于 AMBA (Advanced Microcontroller Bus Architecture) 總線家族的一部分。APB 專為低帶寬、低功耗的外設(shè)設(shè)計,旨在提供一種簡單、高效的方式來連接微控制器中的低速外設(shè),如 UART、GPIO、定時器等。與 AMBA 家族中的其他總線 (如 AHB、AXI) 相比,APB 的設(shè)計更為簡化,降低了系統(tǒng)的復(fù)雜性和功耗,非常適合對成本和功耗敏感的嵌入式系統(tǒng)應(yīng)用。
APB 的歷史發(fā)展
APB 最初作為 AMBA 1.0 規(guī)范的一部分被引入,旨在為 ARM 處理器提供一種連接低速外設(shè)的標(biāo)準(zhǔn)方法。隨著嵌入式系統(tǒng)的發(fā)展和需求變化,APB 經(jīng)歷了多次修訂和改進(jìn),目前最新版本是 AMBA 5.0 規(guī)范中的 APB5。每個新版本都在保持原有簡單性的基礎(chǔ)上,增加了一些新特性,如更好的電源管理支持、錯誤檢測機(jī)制等,以適應(yīng)不斷變化的應(yīng)用需求。
APB 在系統(tǒng)中的位置
在典型的嵌入式系統(tǒng)中,APB 通常作為二級總線存在,通過橋接器與系統(tǒng)中的主總線 (如 AHB 或 AXI) 相連。主處理器通過主總線訪問高速設(shè)備,而低速外設(shè)則連接到 APB 總線上,這種分層設(shè)計使系統(tǒng)能夠同時滿足高速和低速設(shè)備的需求,優(yōu)化了系統(tǒng)性能和資源利用。
二、APB 接口的架構(gòu)設(shè)計
基本組成部分
APB 接口主要由以下幾個部分組成:
APB 主設(shè)備:通常是系統(tǒng)中的處理器或 DMA 控制器,負(fù)責(zé)發(fā)起對從設(shè)備的讀寫操作。
APB 從設(shè)備:連接到 APB 總線上的各種外設(shè),如 UART、GPIO、ADC 等,負(fù)責(zé)響應(yīng)主設(shè)備的請求。
APB 橋接器:用于連接主總線 (如 AHB 或 AXI) 和 APB 總線的組件,負(fù)責(zé)協(xié)議轉(zhuǎn)換和數(shù)據(jù)傳輸。
互連結(jié)構(gòu):包括地址線、數(shù)據(jù)線和控制信號,用于在主設(shè)備和從設(shè)備之間傳輸數(shù)據(jù)和控制信息。
信號定義
APB 總線定義了一組標(biāo)準(zhǔn)信號,這些信號分為以下幾類:
地址和控制信號
PADDR [31:0]:32 位地址線,用于傳輸主設(shè)備要訪問的從設(shè)備地址。
PSELx:從設(shè)備選擇信號,每個從設(shè)備有一個獨(dú)立的 PSEL 信號,由主設(shè)備驅(qū)動。
PENABLE:使能信號,指示當(dāng)前傳輸周期是否有效。
PWRITE:寫控制信號,高電平表示寫操作,低電平表示讀操作。
PPROT [2:0]:保護(hù)類型信號,用于指示傳輸?shù)奶貦?quán)級別和安全屬性。
數(shù)據(jù)信號
PWDATA [31:0]:32 位寫數(shù)據(jù)線,用于主設(shè)備向從設(shè)備寫入數(shù)據(jù)。
PRDATA [31:0]:32 位讀數(shù)據(jù)線,用于從設(shè)備向主設(shè)備返回讀取的數(shù)據(jù)。
狀態(tài)信號
PREADY:就緒信號,由從設(shè)備驅(qū)動,表示當(dāng)前傳輸是否完成。
PSLVERR:從設(shè)備錯誤信號,指示傳輸過程中是否發(fā)生錯誤。
傳輸機(jī)制
APB 采用兩階段傳輸機(jī)制,包括 SETUP 階段和 ENABLE 階段:
SETUP 階段:主設(shè)備驅(qū)動 PADDR、PSELx、PWRITE 等信號,指示要訪問的從設(shè)備地址、操作類型等信息。此時 PENABLE 信號為低電平。
ENABLE 階段:主設(shè)備將 PENABLE 信號置高,從設(shè)備根據(jù) PADDR 和 PWRITE 信號執(zhí)行相應(yīng)的讀寫操作,并在 PREADY 信號有效時返回數(shù)據(jù)或狀態(tài)。
這種兩階段傳輸機(jī)制簡化了總線控制邏輯,降低了硬件實(shí)現(xiàn)成本,但也限制了 APB 的傳輸效率,使其更適合低速外設(shè)的連接。