APB協議學習

APB(Advanced Peripheral Bus)

1、APB的概述與特點

APB主要用于低帶寬的周邊外設之間的連接,例如UART、1284等,它的總線架構不像AHB支持多個主模塊,在APB里面唯一的主模塊就是APB 橋。其特性包括:兩個時鐘周期傳輸;無需等待周期和回應信號;控制邏輯簡單,只有四個控制信號。

2、APB的組成部分

3、 APB的數據傳輸

APB上的傳輸可以用如下圖所示的狀態圖來說明。

?

  1. 系統初始化為IDLE狀態,此時沒有傳輸操作,也沒有選中任何從模塊。
  2. 當有傳輸要進行時,PSELx=1,PENABLE=0,系統進入SETUP狀態,并只會在SETUP 狀態停留一個周期。當PCLK的下一個上升沿時到來時,系統進入ENABLE 狀態。
  3. 系統進入ENABLE狀態時,維持之前在SETUP 狀態的PADDR、PSEL、PWRITE不變,并將PENABLE置為1。傳輸也只會在ENABLE狀態維持一個周期,在經過SETUP與ENABLE狀態之后就已完成。
  4. 之后如果沒有傳輸要進行,就進入IDLE狀態等待;如果有連續的傳輸,則進入SETUP狀態。

4、傳輸時序

4.1、Write

寫傳輸分為不帶等待信號的寫,和帶等待信號的寫:

無等待狀態

下圖顯示了一個基本的無等待狀態的寫傳輸。



  1. T1 時刻 APB 將地址信息 PADDR 和寫的數據 PWDATA 準備好,拉高 PWRITE 表示進入寫,同時拉高 PSEL,從 IDLE 進入 SETUP
  2. T2 時刻也就是下一個時鐘周期拉高 PENABLE,使得狀態進入 ACCESS
  3. T3 時刻檢測到 PREADY 被拉高,也就是說 Slave 已經正確接收到數據,傳輸完成;PENABLE 拉低,PSEL 拉低

有等待狀態

下圖展示了?PREADY?信號是如何擴展了從器件的傳輸。

  1. T1 時刻 APB 將地址信息 PADDR 和寫的數據 PWDATA 準備好,同時拉高 PSEL,從 IDLE 進入 SETUP
  2. T2 時刻也就是下一個時鐘周期拉高 PENABLE,使得狀態進入 ACCESS
  3. T3 時刻檢測到 PREADY 為 0,也就是說 Slave 還沒有接收完數據,所以在此刻,PADDR 地址信號、PWRITE 數據方向信號、PSEL 片選信號、PENABLE 使能信號以及PWDATA 數據必須保持,以便 Slave 能夠繼續采樣。
  4. T4 時刻 PREADY 依然 為 0,所以還是保持不變
  5. T5 時刻,PREADY 為 1,說明 Slave 已經正確接收到數據,傳輸完成;PENABLE 拉低,PSEL 拉低

注意:即便是傳輸結束了,Address 和 data 信號也不會立即改變,直到下一次傳輸才會刷新新的地址和數據信號,這樣做的原因是減少功耗;

4.2、Read

讀數據和寫的流程幾乎差不多,也分為了等待和非等待

無等待狀態
同非等待寫一樣,圖示如下:

  1. T1 時刻 APB 將地址信息 PADDR 準備好,拉低 PWRITE 表示進入讀,同時拉高 PSEL,從 IDLE 進入 SETUP
  2. T2 時刻也就是下一個時鐘周期拉高 PENABLE,使得狀態進入 ACCESS
  3. T3 時刻檢測到 PREADY 被拉高,也就是說 Slave 已經完成收據發送,PRDATA 上就是來自 Slave 的數據,傳輸完成;PENABLE 拉低,PSEL 拉低

有等待狀態
加等待的讀時序如下:

時序過程和上述一樣,只不過 PREADY 被拉低了兩個周期,真正從 Slave 讀的數據到 T5 時刻才真正有效;這里不在多說;

4.3、Error Respond

在讀和寫的過程,可能出現錯誤,錯誤通過 PSLVERR 信號來指明;

APB外圍設備不要求必須支持PSLVERR引腳,當不使用該引腳時,應被置低

寫失敗后時序
下面這個是寫失敗后的時序:

可以看到,在寫失敗后,PSLERR 信號被拉高了

讀失敗后時序
下面這個是讀失敗后的時序:

讀失敗后,PRDATA 上的數據不再有效

5、對比

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253750.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253750.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253750.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

私有協議棧開發

通信協議從廣義上區分,可以分為公有協議和私有協議。由于私有協議的靈活性,它往往會在某個公司或者組織內部使用,按需定制,也因為如此,升級起來會非常方便,靈活性好。絕大多數的私有協議傳輸層都基于TCP/IP…

制作NFS

最近學習NFS,用本地測試. 以下是我的測試過程 環境 ubuntu 10.4 vm 7.1 終端 ifconfig 得到 ubuntu資料 INET ADDR 192.168.0.4 BCAST 192.168.0.255 MASK 255.255.255.0 一 安裝NFS $ sudo apt-get install nfs-kernel-server $ sudo apt-get install nfs…

【筆記篇】C#筆記2

返回目錄:目錄請戳這里~ C#數組 基本概念不提。。int[] a; bool[] b new bool[10]; float[] c {0.5, 57.0, 233.3, 12345.67 }; double[] d new double[/*3*/]{233.33, 1926.0817, 4396.0 }; 然后數組和指針有很大的不同。。。 Array類不會用…… 有多維數組和…

SFB 項目經驗-51-某上市企業2千人Exchange 2013升級2016高可用之傷01

SFB 項目經驗-51-某上市企業2千人Exchange 2013升級2016高可用之傷01(帶病撰寫項目實戰筆記)問題描述:2000人企業使用Exchange 2013郵件服務器標準版,n年!1)問題1:標準版僅支持5個郵箱數據庫。2&#xff09…

數字圖像處理——2D降噪

圖像降噪處理主要分為2D(空域)與3D降噪(時域/多幀),而2D降噪由于相關的實現算法豐富,效果各異,有著豐富的研究價值。理解2D降噪算法的流程,也對其他的增強算法有很大的幫助&#xff…

項目開發(Require + E.js)

最近在做的幾個項目,分別用了不同的框架跟方式,有個H5的項目,用了vue框架, 這個項目我還沒有正式加入進去, 等手頭的這個項目完成就可以去搞vue了, 現在手頭的這個項目是一個招聘的項目, 用到了…

五個常用的Linux監控腳本代碼

bash中 2>&1 & 的解釋 1、首先,bash中0,1,2三個數字分別代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即標準輸入(一般是鍵盤),標準輸出(一般是顯示屏,準…

AHB協議學習

1. 簡介 AHB(Advanced High Performance Bus)總線規范是AMBA(Advanced Microcontroller Bus Architecture) V2.0總線規范的一部分,AMBA總線規范是ARM公司提出的總線規范,被大多數SoC設計采用,它規定了AHB (Advanced High-performance Bus)、A…

jquery lazy load

LazyLoad是一個Js編寫的Jq插件,它可以延遲加載頁面中的圖片,在瀏覽器可視范圍中的圖片會被加載。如何使用&#xff1a;LazyLoad依賴于Jquery&#xff0c;在html的結尾處 ,就是在</body>前。<script type"text/javascript" src"jquery.js"><…

linux內核中的循環緩沖區

Linux內核中的循環緩沖區&#xff08;circular buffer&#xff09;為解決某些特殊情況下的競爭問題提供了一種免鎖的方法。這種特殊的情況就是當生產者和消費者都只有一個&#xff0c;而在其它情況下使用它也是必須要加鎖的。 循環緩沖區定義在include/linux/kfifo.h中&#xf…

js的規范寫法ES5(自己以后按照這樣寫)

1、引號的使用&#xff0c;單引號 優先&#xff08;如果不是引號嵌套&#xff0c;不要使用雙引號&#xff09; 正常情況&#xff1a;console.log(hello there) 雙引號轉碼&#xff1a; $("<div classbox>") 2、空格的使用問題&#xff1a;&#xff08…

刪除本地git的遠程分支和遠程刪除git服務器的分支

在項目中使用git管理代碼后&#xff0c;有些時候會創建很多不同名稱的分支&#xff0c;以此區分各個分支代碼功能。 而隨著代碼的合并&#xff0c;以前的分支就可能不再需要保存了&#xff0c;所以就要對沒有用的分支進行刪除&#xff0c;包括緊急回滾時從中抽取某一個版本記錄…

數字圖像處理——引導濾波

一、概述 引導濾波是由何愷明等人于2010年發表在ECCV的文章《Guided Image Filtering》中提出的&#xff0c;后續于2013年發表。引導過濾器根據局部線性模型原理&#xff0c;通過考慮引導圖像的內容來計算過濾輸出&#xff0c;引導圖像可以是輸入圖像本身或另一個不同的圖像。具…

Ubuntu 18.04換國內源

2019獨角獸企業重金招聘Python工程師標準>>> 參考文檔&#xff1a; https://blog.csdn.net/zhangjiahao14/article/details/80554616 https://blog.csdn.net/xiangxianghehe/article/details/80112149 1.復制源文件備份&#xff0c;以防萬一 我們要修改的文件是sour…

video4linux簡介

Video4linux&#xff08;簡稱V4L),是linux中關于視頻設備的內核驅動,現在已有Video4linux2&#xff0c;還未加入linux內核&#xff0c;使用需自己下載補丁。在Linux中&#xff0c;視頻設備是設備文件&#xff0c;可以像訪問普通文件一樣對其進行讀寫&#xff0c;攝像頭在/dev/v…

動態DPC算法學習

造成壞點的原因 感光元件芯片自身工藝技術瑕疵造成;光線采集存在缺陷;制造商產品差異;壞點分類 hot pixel: 固定保持較高的像素值,一般呈現為畫面高亮的點;dead pixel: 固定保持較低的像素值,一般在畫面中呈現為暗點;noise pixel:信號強度隨光照呈現的變化規律不符合正…

windows 郵槽mailslot 在服務程序內建立后客戶端無權限訪問(GetLastError() == 5)的問題...

郵槽創建在服務程序內&#xff0c;可以創建成功&#xff0c; 但外部客戶端連接時 m_hMailslot CreateFile("\\\\.\\mailslot\\zdpMailslot",GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);GetLastError返回錯誤 5 &#xff0c;無權…

遞歸下降分析

對于給定的文法G[E] : E→ET|E-T|TT→T*F| T/F|FF→(E)|i 消除左遞歸后的文法是&#xff1a;E→TE E→TE|-TE|∑ T→FT T→*FT|/FT|∑ F→(E)|i 是否是LL(1)文法&#xff1f; select(E→TE)first(TE){(,i}select(E→TE)first(TE){}select(E→-TE)first(-TE){-}select(E→∑)fol…

SYS簡介

"sysfs is a ram-based filesystem initially based on ramfs. It provides a means to export kernel data structures, their attributes, and the linkages between them to userspace.” --- documentation/filesystems/sysfs.txt 可以先把documentation/filesystems/…

數字后端——布圖規劃

布圖規劃&#xff08;floorplan&#xff09;與布局&#xff08;place&#xff09;在芯片設計中占據著重要的地位&#xff0c;它的合理與否直接關系到芯片的時序收斂、布線通暢、電源穩定以及良品率。所以在整個芯片設計中&#xff0c;從布圖規劃到完成布局一般需要占據整個物理…