片上總線Wishbone 學習(十)總線周期之塊讀操作

2020-12-14 電子產品世界

圖1Wishbone總線塊操作中CYC_O信號的用法

塊讀操作如圖2所示。塊操作最多能夠在每個時鐘周期進行一次數據讀或者寫,但是主設備和從設備都可以通過插入等待周期控制塊操作的速度。一次塊操作包括多次子操作。每一次子操作都是塊操作的一個階段,完成一次數據讀或者寫。圖10的塊操作由五次讀操作完成,其過程如下:

在時鐘上升沿0,主設備將地址信號ADR_O()、TGA_O()放到總線上,將WE_O置為低表示讀操作,將適當的SEL_O()信號置高通知從設備將數據放在數據總線的適當位置,將CYC_O和TGC_O()置高表示操作正在進行,將STB_O置高表示一次子操作開始。CYC_O和TGC_O()從無效變為有效可以發生在上升沿0以前的任何時刻。

在時鐘上升沿1到達之前,從設備檢測到主設備發起的操作,將適當的數據放到主設備的DAT_I()和TGD_I(),將主設備的ACK_I置高作為對主設備STB_O的響應。

在時鐘上升沿1,主設備發現ACK_I信號為高,將DAT_I()和TGD_I()採樣,完成第一次子操作。主設備將新地址信號ADR_O()、新TGA_O()放到總線上,將新的SEL_O()信號置高通知從設備將數據放在數據總線的適當位置。

在時鐘上升沿2到達之前,從設備檢測到主設備發起的第二次操作,將適當的數據放到主設備的DAT_I()和TGD_I(),繼續將主設備的ACK_I置高。

在時鐘上升沿2,主設備發現ACK_I信號為高,將DAT_I()和TGD_I()採樣,完成第二次子操作。主設備將STB_O信號置低表示插入等待周期。

在時鐘上升沿3到達之前,從設備檢測到STB_O信號為低,將ACK_I置低。

在時鐘上升沿3,主設備發起第三次操作,將新的地址信號ADR_O()、新的TGA_O()放到總線上,將WE_O置為低表示讀操作,將適當的SEL_O()信號置高通知從設備將數據放在數據總線的適當位置,將STB_O置高表示第三次子操作開始。

在時鐘上升沿4到達之前,從設備檢測到主設備發起的第三次子操作,將適當的數據放到主設備的DAT_I()和TGD_I(),將主設備的ACK_I置高作為對主設備STB_O的響應。

圖2Wishbone總線的塊讀操作(異步周期結束方式)

在時鐘上升沿4,主設備發現ACK_I信號為高,將DAT_I()和TGD_I()採樣,完成第三次子操作。主設備同時發起第四次子操作,將新地址信號ADR_O()、新TGA_O()放到總線上,將新的SEL_O()信號置高通知從設備將數據放在數據總線的適當位置。

在時鐘上升沿5到達之前,從設備檢測到主設備發起的第四次子操作,將適當的數據放到主設備的DAT_I()和TGD_I(),將主設備的ACK_I置高作為對主設備STB_O的響應。

在時鐘上升沿5,主設備發現ACK_I信號為高,將DAT_I()和TGD_I()採樣,完成第五次子操作。主設備同時發起第六次子操作,將新地址信號ADR_O()、新TGA_O()放到總線上,將新的SEL_O()信號置高通知從設備將數據放在數據總線的適當位置。

在時鐘上升沿5過後,從設備檢測到主設備發起的第五次子操作,但是由於數據沒有準備好,它在新上升沿到達之前將ACK_I信號置低表示插入等待周期。
上升沿5和6之間被插入了多個等待周期。當從設備準備好數據,在時鐘上升沿6到達之前,將適當的數據放到主設備的DAT_I()和TGD_I(),將主設備的ACK_I置高作為對主設備STB_O的響應。

在時鐘上升沿6,主設備發現ACK_I信號為高,將DAT_I()和TGD_I()採樣,並將STB_O和CYC_O置為低表示整個塊讀操作完成。從設備發現STB_O置低後,也將主設備的ACK_I置低。

同步周期結束方式

圖3Wishbone總線的塊讀操作(同步周期結束方式)

在時鐘上升沿0:

  • Master在[ADR_O()]和[TGA_O()]發出有效的地址
  • Master拉低[WE_O],表明是一個讀周期
  • Master發出有效數據選擇信號[SEL_O()]表明哪些數據是有效的
  • Master發出[CYC_O]和[TGC_O()]表明總線周期的開始
  • Master發出[STB_O]表明操作的開始

注意:Mater必須在時鐘上升沿1或之前發出[CYC_O]和/或[TGC_O()]

在時鐘上升沿1:

  • Slave檢測到主設備發起的操作,發出[ACK_I]
  • Slave在[DAT_O]和[TGD_O()]發出有效的數據
  • Slave發出[ACK_I]應答[STB_O],表明數據有效,可以讀取數據了
  • Master發現[ACK_I],準備鎖存[DAT_I]和[TGD_I()]

在時鐘上升沿2:

  • Master鎖存[DAT_I]和[TGD_I()]
  • Master拉低[STB_O]插入等待周期(-WSS-)

在時鐘上升沿3:

  • Master在[ADR_O()]和[TGA_O()]發出有效的地址
  • Master拉低[WE_O],表明是一個讀周期
  • Master發出有效數據選擇信號[SEL_O()]表明哪些數據是有效的
  • Master發出[STB_O]表明操作的開始

在時鐘上升沿4:

  • Slave檢測到主設備發起的操作,發出[ACK_I]
  • Slave在[DAT_O]和[TGD_O()]發出有效的數據

在時鐘上升沿5:

  • Master鎖存[DAT_I]和[TGD_I()]
  • Master拉低[STB_O]和[CYC_O],結束總線周期

相關焦點

  • AHB總線協議
    1.1 AHB總線的架構AHB總線的強大之處在於它可以將微控制器(CPU)、高帶寬的片上RAM、高帶寬的外部存儲器接口、DMA總線master、各種擁有AHB接口的控制器等等連接起來構成一個獨立的完整的SOC系統,不僅如此,還可以通過AHB-APB橋來連接APB總線系統。AHB可以成為一個完整獨立的SOC晶片的骨架。
  • 總線的分類和區別
    因此在微型計算機二十多年的發展過程中,總線結構也不斷地發展變化。總線結構已成為微機性能的重要指標之一。 一、總線分類 1. 片內總線和片外總線 片內總線是CPU內部的寄存器、算術邏輯部件、控制部件以及總線接口部件之間的公共信息通道。 片外總線則泛指CPU與外部器件之間的公共信息通道。 我們通常所說的總線大多是指片外總線。
  • PIC單片機之I2C總線
    大家好,通過前一期的學習,我們已經對ICD2 仿真燒寫器和增強型PIC 實驗板的使用方法及學習方式有所了解與熟悉,學會了如何用單片機來控制發光管、繼電器、蜂鳴器、按鍵、數碼管、RS232 串口、步進電機、溫度傳感器等資源,體會到了學習板的易用性與易學性,看了前幾期實例,當你實驗成功後一定很興奮,很有成就感吧!
  • 詞彙解讀時鐘周期、機器周期、指令周期、總線周期,看完此文不許說分不清了!
    例如,取指令、存儲器讀、存儲器寫等,這每一項工作稱為一個基本操作,完成一個基本操作所需要的時間稱為機器周期。一般情況下,一個機器周期由若干個S周期(狀態周期)組成。8051系列單片機的一個機器周期由6個S周期(狀態周期)組成。
  • 系統總線是什麼_系統總線分為哪三類
    系統總線結合數據總線的功能來搭載信息,地址總線來決定將信息送往何處,控制總線來決定如何動作。雖然系統總線於1970年代至1980年代廣受歡迎,但是現代的計算機卻使用不同的分離總線來做更多特定需求用途。
  • 並行總線是什麼?(並行總線協議介紹)
    採用並行傳送方式在 微型計算機與外部設備之間進行數據傳送的接口叫並行接口,它有2個主要特點;一是同時並行傳送的二進位數就是數據寬度;二是在計算機與外設之間採用應答式的聯絡信號來協調雙方的數據傳送操作,這種聯絡信號又稱為握手信號。
  • LONWORKS現場總線技術與RS485總線技術的優劣
    什麼是現場總線 現場總線是應用在生產現場,銜接智能現場設備和自動化控制系統的數字式、雙向傳輸、多分支機構的通信網絡。 現場總線可採用多種介質(多種有線和無線方式)傳送數位訊號,在兩根導線上可掛接多至幾十個自控設備,能節省大量線纜、槽架、連接件,減少系統設計、安裝、維護的工作量。
  • 總線的含義是什麼?又有什麼特性?
    奔騰電腦就城要在這種PCI總線上才能更快地奔馳起來。PCI總線,已成為當前電腦的主要潮流。 總線特性: 由於總線是連接各個部件的一組信號線。通過信號線上的信號表示信息,通過約定不同信號的先後次序即可約定操作如何實現。
  • spi與i2c總線有什麼區別
    也是所有基於SPI的設備共有的,它們是SDI(數據輸入)、SDO(數據輸出)、SCLK(時鐘)、CS(片選)。   1.3 總線數據傳輸起始和結束條件   I2C總線SCL高電平時SDA出現由高到低的跳變,標誌總線上數據傳輸的開始條件   I2C總線SCL高電平時SDA出現由低到高的跳變,標誌總線上數據傳輸的結束條件
  • 乾貨 | 手把手教你學習各種總線技術
    在設計過程中,見得最多的應該是從CPU地址總線來選用外部存儲器的存儲地址。地址總線的位數往往決定了存儲器存儲空間的大小,比如地址總線為16位,則其最大可存儲空間為216(64KB)。數據總線是用於傳送數據信息,它又有單向傳輸和雙向傳輸數據總線之分,雙向傳輸數據總線通常採用雙向三態形式的總線。數據總線的位數通常與微處理的字長相一致。
  • I2C總線要點總結
    導致 NACK 產生的條件有五個:總線上沒有報文中所包含地址的接收器,因此沒有設備響應應答。接收器無法執行接收或發送操作,比如它正在執行某些實時功能,並且尚未準備好與主機進行通信。在傳輸過程中,接收器收到應用協議不理解的數據或命令。
  • 串行總線的選擇原則
    以前,µC的外設是以存儲器映射方式與數據和地址總線連接的。對地址線解碼以獲得片選信號,從而在有限的地址範圍內為每個外設分配唯一的地址。數據是在單根線上傳輸(在「高」和「低」之間轉換),還是在一對差分線上傳輸(兩根線按相反的方向同時轉換其電壓)。 通信線路的兩端均使用匹配電阻實現阻抗匹配(通常用於差分信號傳輸),還是不匹配或僅在一端匹配(通常用於單端總線)。  表1以矩陣的形式展示了各種通用總線系統之間的差異。16種可能組合中只有4種通用類型為大家所熟知。
  • 一文讀懂總線技術
    總線的數據傳輸流程1、申請佔用總線需要使用總線的總線主設備(如CPU、DMA控制器等)向總線仲裁機構提出佔用總線的請求,經總線仲裁機構判定,若滿足響應條件,則發出響應信號,並把下一個總線傳送周期的總線控制權授予申請者。
  • 數據總線與字長、地址總線與尋址
    字長總是8的整數倍,通常PC機的字長(即數據總線位數)為16位(早期),32位和64位。64位PC機比32位PC機優越的原因就在於它在一次操作中能處理的數字大,能處理的數字越大,它的運算能力越強,則操作的次數就越少,從而系統的效率也就越高。比如如果有兩個48位的數相加,32位的CPU會先計算低32位,再計算高16位;如果是64位CPU,則可以直接計算,這樣處理的速度就變快了。
  • CAN、I2S、I2C、SPI、SSP總線對比
    什麼是CAN總線?這就保證不會出現象在RS-485網絡中,當系統有錯誤,出現多節點同時向總線發送數據時,導致總線呈現短路,從而損壞某些節點的現象。而且CAN節點在錯誤嚴重的情況下具有自動關閉輸出功能,以使總線上其他節點的操作不受影響,從而保證不會出現象在網絡中,因個別節點出現問題,使得總線處於「死鎖」狀態。
  • Linux驅動之I2C總線
    對struct i2c_board_info的操作本質就是間接的在操作i2c_client。實現在平臺代碼中初始化分配i2c_board_infoVimarch/arm/mach-s5pv210/mach-cw21.c 在頭文件的後面添加分配i2c_board_info的分配初始化。
  • 總線仲裁的名詞解釋_總線仲裁分類
    為了防止多個處理機同時控制總線,就要在總線上設立一個處理上述總線競爭的機構,按優先級次序,合理地分配資源,這就是總線仲裁問題。用硬體來實現總線分配的邏輯電路稱為總線仲裁器(Bus Arbiter)。它的任務是響應總線請求,通過對分配過程的正確控制,達到最佳使用總線。
  • 5分鐘了解單片機數據、地址、控制總線結構!
    為了節約晶片引腳,採用P0 口復用方式,除了作為數據總線外,在ALE 信號時序匹配下,通過外置的數據鎖存器,在總線訪問前半周期從P0口送出低8位地址,後半周期從P0 口送出8 位數據。 高8位地址則通過P2 口送出。
  • 探析CAN總線在駕駛系統中的重要作用
    CAN總線目前已廣泛應用在汽車電子領域,在整個自動駕駛駕駛系統中也有著十分重要的作用,自動駕駛汽車上的某些傳感器(如雷達、Mobileye)的信號傳遞也是通過CAN實現的。本文就帶大家了解一下CAN總線。
  • 乾貨總結:I2C總線詳細要點
    導致 NACK 產生的條件有五個:總線上沒有報文中所包含地址的接收器,因此沒有設備響應應答。接收器無法執行接收或發送操作,比如它正在執行某些實時功能,並且尚未準備好與主機進行通信。在傳輸過程中,接收器收到應用協議不理解的數據或命令。