新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 調(diào)試嵌入式系統(tǒng)設(shè)計中的低速串行總線

調(diào)試嵌入式系統(tǒng)設(shè)計中的低速串行總線

作者: 時間:2012-06-02 來源:網(wǎng)絡(luò) 收藏


  工作方式

  SPI (串行外設(shè)接口)總線是一種主/從結(jié)構(gòu)的4線串行通信總線。4個信號是時鐘(SCLK), 主輸出/從輸入(MOSI), 主輸入/從輸出(MISO)和從選擇(SS)。在兩臺設(shè)備通信時,一臺設(shè)備稱為“主設(shè)備”,另一臺設(shè)備稱為“從設(shè)備”。主設(shè)備驅(qū)動串行時鐘。它同時收發(fā)數(shù)據(jù),因此是一種全雙工協(xié)議。SPI使用SS線路指明與哪臺設(shè)備傳送數(shù)據(jù),而不是總線上的每臺設(shè)備都有一個唯一的地址。這樣,總線上的每臺唯一的設(shè)備都需要從主設(shè)備提供自己的SS信號。如果有3臺從設(shè)備,那么主設(shè)備有3條SS引線,每條引線都連接到每臺從設(shè)備上,如圖8所示。


  在圖8中,每臺從設(shè)備只與主設(shè)備通話。但是,SPI可以串聯(lián)多臺從設(shè)備,每臺從設(shè)備依次進行操作,然后把結(jié)果發(fā)回主設(shè)備,如圖9所示。因此您可以看到,SPI實現(xiàn)方案沒有“標(biāo)準(zhǔn)”。在某些情況下,在不要求從設(shè)備向回到主設(shè)備通信時,MISO信號可以完全省略。


  在SPI數(shù)據(jù)傳送發(fā)生時,8位數(shù)據(jù)字移出MOSI,不同的8位數(shù)據(jù)字移入MISO。這可以視為16位循環(huán)位移寄存器。在傳送發(fā)生時,這個16位位移寄存器位移8個位置,從而在主設(shè)備和從設(shè)備之間交換8位數(shù)據(jù)。一對寄存器 - 時鐘極性(CPOL)和時鐘相位(CPHA)決定著驅(qū)動數(shù)據(jù)的時鐘邊沿。每個寄存器有兩種可能的狀態(tài),支持四種可能的組合,所有這些組合互不兼容。因此,主/從設(shè)備對必須使用相同的參數(shù)值進行通信。如果使用多個固定在不同配置的從設(shè)備,那么每次需要與不同的從設(shè)備通信時,主設(shè)備必須重新進行配置。

  處理SPI

  DPO4EMBD串行觸發(fā)和分析應(yīng)用模塊還可以為SPI總線實現(xiàn)類似的功能。我們可以再次使用前面板B1或B2按鈕,簡單地輸入總線基本參數(shù),包括SCLK, SS, MOSI和MISO位于哪條通道上、門限和極性,來定義一條SPI總線 (參見圖10)。


  例如,考慮一下圖11中的。一條SPI總線連接到一個合成器、一個DAC及某個I/O上。合成器連接到VCO上,VCO為其余系統(tǒng)提供一個2.5 GHz時鐘。假設(shè)在啟動時,由CPU應(yīng)該對合成器編程。但是不知道哪里出了問題,在VCO固定在軌道上生成在產(chǎn)生3 GHz的信號時,發(fā)生了某個問題。調(diào)試這個問題的第一步是考察CPU和合成器之間的信號,確定存在信號,沒有物理連接問題,但我們找不到發(fā)生了什么問題。然后,我們決定看一下SPI總線上傳送的合成器編程使用的實際信息。為捕獲這些信息,我們把示波器設(shè)成在合成器Slave Select信號激活時觸發(fā)采集,并對DUT通電,捕獲啟動編程命令。采集結(jié)果如圖12所示。


  通道1 (黃色)是SCLK,通道2 (青色)是MOSI,通道3 (洋紅色)是SS。為確定我們是否對設(shè)備正確編程,我們看一下合成器的產(chǎn)品資料??偩€上的前三個消息假設(shè)是初始化合成器、加載分路器比率、鎖存數(shù)據(jù)。根據(jù)技術(shù)數(shù)據(jù),前三個傳送中最后半個字節(jié)(一個十六進制字符)應(yīng)該分別是3, 0和1,但我們看到的是0, 0和0。在消息末尾全是0時,我們認(rèn)識到,我們在SPI中犯了一個最常見的錯誤,即在軟件中以相反的順序在每個24位字中對各個位編程。在迅速改變軟件配置后,得到下面的采集,VCO正確鎖定在2.5 GHz,如圖13所示。


  在上面的實例中,我們使用簡單的SS Active觸發(fā)。DPO4000系列中完整的SPI觸發(fā)功能包括下述類型:

  – SS Active – 在從設(shè)備選擇行對從設(shè)備變真時觸發(fā)。
  – MOSI – 在從主設(shè)備到從設(shè)備用戶指定最多16個字節(jié)時觸發(fā)。
  – MISO – 在從設(shè)備到主設(shè)備用戶指定最多16個字節(jié)時觸發(fā)。
  – MOSI/MISO – 在主設(shè)備到從設(shè)備及從設(shè)備到主設(shè)備用戶指定最多16個字節(jié)時觸發(fā)。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉