APB是AMBA協議的一部分。

APB可連接任何低帶寬,無需高性能流水線介面的外設。 APB是非流水線協議。

所有信號的轉換僅在時鐘的上升沿發生,以便能夠輕鬆地將APB外設集成到其他設計流程中。

APB每次傳輸至少需要兩個周期。

可以使用APB來訪問外圍設備的寄存器。

APB包括用於擴展APB傳輸的PREADY信號和用於指示傳輸失敗的PSLVERR信號。

在APB協議中有兩種類型的寫傳輸:無等待傳輸和有等待傳輸。

無等待寫傳輸:

在時鐘的第一個上升沿,是Setup階段,地址信號PADDR,數據信號PWDATA,寫信號PWRITE,選擇信號PSEL開始改變。

在隨後的時鐘沿之後,使能信號PENABLE拉高,表示進行Access階段

地址信號PADDR,數據信號PWDATA,寫信號PWRITE,選擇信號PSEL在整個Access階段都保持有效。APB寫傳輸在Access階段結束時完成。

使能信號PENABLE在傳輸結束時拉低。 選擇信號PSELx也拉低,除非後面緊接著另一個對該外設的傳輸。

有等待寫傳輸:

在Access階段,可以通過拉低PREADY來延長傳輸。

這可確保對某些外設進行多周期訪問。

建議在傳輸後不立即更改地址信號和寫信號,在另一次訪問之前保持穩定。 這降低了功耗

無等待讀傳輸:

上圖顯示了無等待讀傳輸。APB slave必須在讀傳輸結束之前提供數據。

有等待讀傳輸:

上圖顯示了PREADY信號如何擴展讀傳輸。 如果在Access階段PREADY拉低,則寫傳輸會延長。

下圖是AMBA APB的工作流程

IDLE - 這是APB的默認狀態。

Setup - 當需要傳輸時,匯流排進入SETUP狀態,其中相應的選擇信號PSELx被置位。 匯流排僅在一個時鐘周期內保持SETUP狀態,並始終在時鐘的下一個上升沿移至ACCESS狀態。

ACCESS - 使能信號PENABLE在ACCESS狀態下被置位。 在從SETUP到ACCESS狀態的轉換期間,PADDR,PWRITE,PSELx和PWDATA信號必須保持穩定。 從ACCESS狀態退出由來自APB slave的PREADY信號控制

如果APB slave將PREADY保持為低電平,則匯流排保持在ACCESS狀態。

如果APB slave將PREADY驅動為高電平,則退出ACCESS狀態。如果不再需要傳輸,則匯流排返回IDLE狀態。否則,如果緊跟著另一次傳輸,則匯流排直接移動到SETUP狀態。

推薦閱讀:

相关文章