新聞中心

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

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

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


  工作方式

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


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


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

  處理SPI

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


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


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


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

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



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉