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