新聞中心

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

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

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


  工作方式

  I2C的物理兩線接口由雙向串行時(shí)鐘(SCL)和數(shù)據(jù)(SDA)線組成。I2C支持總線上多個(gè)主從設(shè)備,但一次只能激活一個(gè)主設(shè)備。任何I2C設(shè)備可以連接到總線上,允許任何主設(shè)備與從設(shè)備交換信息。每臺(tái)設(shè)備都使用唯一的地址識(shí)別,可以作為發(fā)射機(jī)或接收機(jī)操作,具體取決于設(shè)備功能。在開始時(shí),I2C只使用7位地址,但隨著時(shí)間推移,它演變成也支持10位地址。它支持三種位速率:100 kbps (標(biāo)準(zhǔn)模式), 400 kbps (快速模式)和3.4 Mbps (高速模式)。最大設(shè)備數(shù)量取決于400 pf的最大容量,或大約支持20-30臺(tái)設(shè)備。I2C標(biāo)準(zhǔn)規(guī)定了下述格式,如圖4所示:


  – Start – 表明設(shè)備控制總線,一條消息將開始傳送
  – Address –7位或10位數(shù)字,表示將要讀取或?qū)懭氲脑O(shè)備地址
  – R/W Bit – 1位,表明是否將從設(shè)備中讀取數(shù)據(jù)或向設(shè)備寫入數(shù)據(jù)
  – Ack – 1位,來自從設(shè)備,確認(rèn)主設(shè)備的操作。通常每個(gè)地址和數(shù)據(jù)字節(jié)有一個(gè)確認(rèn)位,但不總是有確認(rèn)位
  – Data – 從設(shè)備中讀取或?qū)懭朐O(shè)備的字節(jié)的整數(shù)
  – Stop – 表明消息結(jié)束,主設(shè)備已經(jīng)釋放總線

  處理I2C

  通過DPO4EMBD串行觸發(fā)和分析應(yīng)用模塊,DPO4000系列成為處理I2C總線的設(shè)計(jì)人員的強(qiáng)大工具。前面板有兩個(gè)總線按鈕(B1和B2),允許用戶把到示波器的輸入定義為一條總線。I2C總線的設(shè)置菜單如圖5所示。


  通過簡(jiǎn)單地定義時(shí)鐘和數(shù)據(jù)位于哪條通道上及用來確定邏輯1和0的門限,示波器可以理解通過總線傳輸?shù)膮f(xié)議。有了這些知識(shí),示波器可以觸發(fā)任何指定的消息級(jí)信息,然后把得到的采集數(shù)據(jù)解碼成有意義的、容易理解的結(jié)果。邊沿觸發(fā)已經(jīng)過了好多天了,希望您已經(jīng)采集到感興趣的事件,然后逐條消息手動(dòng)解碼消息,找到問題。

  例如,考慮一下圖6中的。I2C總線連接到多臺(tái)設(shè)備上,包括CPU、EEPROM、風(fēng)扇速度控制器、數(shù)模轉(zhuǎn)換器和大量的溫度傳感器。


  這部?jī)x器被退回工程部分析故障,該產(chǎn)品持續(xù)過熱,自動(dòng)關(guān)機(jī)。要檢查的第一件事是風(fēng)扇控制器和風(fēng)扇本身,但似乎一切正常。然后要檢查溫度傳感器是否有問題。風(fēng)扇速度控制器定期輪詢兩個(gè)溫度傳感器(位于儀器中不同的區(qū)域),調(diào)節(jié)風(fēng)扇速度,穩(wěn)定內(nèi)部溫度。您懷疑其中一個(gè)或兩個(gè)溫度傳感器讀數(shù)不正確。為查看傳感器與風(fēng)扇速度控制器之間的交互。我們只需連接到I2C時(shí)鐘和數(shù)據(jù)線,在DPO4000上設(shè)置總線。我們知道,兩個(gè)傳感器在I2C總線上的地址分別是18和19,因此我們決定設(shè)置觸發(fā)事件,查找地址18上的寫入操作(風(fēng)扇速度控制器輪詢傳感器的當(dāng)前溫度)。觸發(fā)的采集結(jié)果如圖7中的屏幕圖所示。


  在這種情況下,通道1 (黃色) 連接到SCLK,通道2 (青色)連接到SDA。紫色波形是我們向示波器中輸入一些簡(jiǎn)單的參數(shù)定義的I2C 總線。顯示器的上方部分顯示了整個(gè)采集。在這種情況下,我們已經(jīng)捕獲了大量的總線空閑時(shí)間,中間是我們放大的突發(fā)活動(dòng)。顯示屏下方的較大部分是縮放窗口。您可以看出,示波器已經(jīng)解碼了經(jīng)過總線的每條消息的內(nèi)容。DPO4000系列上的總線使用表1中的顏色/標(biāo)記,表明消息中的重要部分。


  看一下采集的波形,我們可以看到,示波器觸發(fā)地址18上的寫入操作(如顯示屏左下方所示)。事實(shí)上,風(fēng)扇速度控制器試圖寫入地址18兩次,但在這兩種情況下,在試圖寫入溫度傳感器時(shí)它沒有收到確認(rèn)。然后它檢查地址19上的溫度傳感器,收回希望的信息。因此,為什么第一個(gè)溫度傳感器沒有對(duì)風(fēng)扇控制器作出響應(yīng)呢?看一下電路板上的實(shí)際部件,我們發(fā)現(xiàn)其中一條地址線焊接不當(dāng)。溫度傳感器不能在總線上通信,結(jié)果導(dǎo)致設(shè)備過熱。由于DPO4000系列的 I2C觸發(fā)和總線解碼功能,我們只需幾分鐘時(shí)鐘,就成功地隔離了這個(gè)潛在的難檢問題。

  在圖7所示的實(shí)例中,我們觸發(fā)了寫入操作,但DPO4000強(qiáng)大的I2C觸發(fā)還包括許多其它功能。

  – Start – 在SDA變低、SCL為高時(shí)觸發(fā)。
  – Repeated Start – 在沒有上一個(gè)停止條件下發(fā)生開始條件時(shí)觸發(fā)。這通常是主設(shè)備發(fā)送多條消息、而沒有釋放總線時(shí)發(fā)生的情況。
  – Stop – SDA為高、SCL為高時(shí)觸發(fā)。
  – Missing Ack – 從設(shè)備通常配置成在每個(gè)地址和數(shù)據(jù)字節(jié)后發(fā)送確認(rèn)。在從設(shè)備沒有生成確認(rèn)位的情況下示波器可以觸發(fā)采集。
  – Address – 觸發(fā)用戶指定的地址或任何預(yù)先編程的專用地址,包括全呼、開始字節(jié)、HS模式、EEPROM或CBUS。地址可以是7位或10位地址,以二進(jìn)制或十六進(jìn)制輸入。

 – 數(shù)據(jù) – 觸發(fā)二進(jìn)制或十六進(jìn)制輸入的最多12字節(jié)的用戶指定數(shù)據(jù)值
  – 地址和數(shù)據(jù) – 可以輸入地址數(shù)據(jù)值及讀寫,捕獲確切的感興趣的事件

  這些觸發(fā)可以隔離您感興趣的特定總線業(yè)務(wù),解碼功能則可以即時(shí)查看采集中總線上傳輸?shù)拿織l消息的內(nèi)容。

  SPI

  背景知識(shí)

  串行外設(shè)接口總線(SPI)最初是摩托羅拉在20世紀(jì)80年代末為其68000系列微控制器研制的。由于該總線簡(jiǎn)單、流行,許多其它制造商也已經(jīng)采用這一標(biāo)準(zhǔn)。它現(xiàn)在用于設(shè)計(jì)常用的各種器件中。SPI主要用于微控制器和直接外設(shè)之間。它通常用于蜂窩手機(jī)移動(dòng)電話、PDA和其它移動(dòng)設(shè)備中,在CPU、鍵盤、顯示器和內(nèi)存芯片之間通信。



評(píng)論


相關(guān)推薦

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

關(guān)閉