APB協議


 在APB2協議中,定義了set up stageaccess stage

    定義兩個stage其實就相當於定義兩個時鍾周期。因為APB的slave通常來說對應peripheral的registers,訪問這些slave registers(control,status,write/read data)兩個clock cycle就夠了。對於status register而言是軟件輪詢的方式(每次訪問同樣是兩個clock cycle)

   下圖是一個APB2的讀操作的例子, 因為PWRITE=0. Set up stage在T2時刻(因為PSEL=1, PENABLE=0),access stage在T3時刻(因為PSEL=1,PENABLE=1),讀數據是在T3時刻返回的。

                                                             圖: APB2的讀時序

                                                              圖:APB3的寫時序

    可以看到PREADY信號中的access是被延長了的,在PREADY為低電平的收,外設沒有准備好被寫數據,直到PREADY為高的時候,才能夠寫數據,相應的PSEL和PWDATA都被延長了。

                                                               圖:APB3的讀時序

    APB3是有error信號的,在access的最后一個階段給出,如果有eeror的話,PREADY也PSLVERR都必須為1。對master而言,可以在這幾個信號都為1的時候,去采集PSLVERR信號。

    APB3相較於APB2多了PREADY和PSLVERR兩個信號。上文提到APB2,系統通常是通過軟件的方式去輪詢Peripheral的status register(兩個clock cycle),APB3加了硬件的解決方法,Slave通過PREADY信號直接來告訴master現在Slave已經READY了,可以接受讀寫操作,如果此時不READY,那么master就要wait到它Ready,這樣就不需要軟件時刻去輪詢status register了。對於PSLVERR而言,加入了Slave反饋給master error response功能。

    APB4比APB3多了什么信號PPROT和PSTRB信號。隨着架構的不斷發展以及對系統安全性的重視,在新的系統中通常會有security的要求,那么APB4也需要演進,PPROT信號主要就是為了表示當前的這個訪問/transaction是secure的還是non-secure的,從而和整個系統的security保持一致性。PSTRB的信號的加入,能夠使APB對某個byte進行讀寫操作。因為即使傳輸的是32位的信號,但是可能只有部分byte是有效的,用PSTRB的每一個bit來代表每個32位中的4個byte哪些是有效的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM