<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > I2C總線(xiàn)測試和分析

I2C總線(xiàn)測試和分析

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

1、I2C總線(xiàn)簡(jiǎn)介

I2C((Inter-Integrated Circuit bus))總線(xiàn)是一種由飛利浦公司開(kāi)發(fā)的串行總線(xiàn),產(chǎn)生于上個(gè)世紀80年代,最初為音頻和視頻設備開(kāi)發(fā),現已廣泛應用到通信、計算機、工業(yè)控制、多媒體等多個(gè)行業(yè),主要作為設備管理承載使用。它由兩條串行線(xiàn)(一條地址線(xiàn)和一條時(shí)鐘線(xiàn))構成總線(xiàn)網(wǎng)絡(luò ),用于連接微控制器及低速的外圍設備通信。I2C總線(xiàn)包括一個(gè)兩端接口,通過(guò)一個(gè)帶有緩沖區的接口,數據可以被I2C發(fā)送或接受。利用I2C技術(shù)可以對連接在總線(xiàn)的所有部件進(jìn)行集中管理,可隨時(shí)監控風(fēng)扇、內存、硬盤(pán)、網(wǎng)絡(luò )、系統溫度等多個(gè)參數,增加了系統的安全性,方便了管理。主要的優(yōu)點(diǎn)是其簡(jiǎn)單性和有效性。圖1是 I2C總線(xiàn)架構示意圖。

圖1 I2C 總線(xiàn)架構

I2C總線(xiàn)是由數據線(xiàn)SDA和時(shí)鐘SCL構成的串行總線(xiàn),可發(fā)送和接收數據。在CPU與被控IC之間、IC與IC之間進(jìn)行雙向傳送,傳送速率從100kbps到最高3.4Mbps。各種被控制電路均并聯(lián)在這條總線(xiàn)上,但就像電話(huà)機一樣只有撥通各自的號碼才能工作,所以每個(gè)電路和模塊都有唯一的地址,地址碼用來(lái)選址,即接通需要控制的IC部件,確定總線(xiàn)上哪個(gè)部件需要接收數據;同時(shí)發(fā)送端設備(CPU或外設)還要發(fā)出“讀”或“寫(xiě)”的操作指示,以及具體的消息內容。I2C協(xié)議的報文內容可分成以下幾部分:

* 開(kāi)始位--Start Bit

* 地址 -- Address :7 或 10比特

* 讀/寫(xiě)標志位-- Read/Write Bit:

指示數據方向

讀 = 數據從從設備讀到主設備

寫(xiě) = 數據從主設備寫(xiě)到從設備

* 確認位 -- Acknowledge Bit

* 字節數據 -- Data Byte(s)

除EEPROM數據讀/寫(xiě)外,通常數據長(cháng)度都=4

* 重啟動(dòng)位 -- ReStart Bit

出現在組合的讀/寫(xiě)消息內容中

* 停止位 -- Stop Bit

下圖2是7位和10位兩種地址長(cháng)度的 I2C協(xié)議幀結構。

圖2 7位和10位兩種地址長(cháng)度的 I2C協(xié)議幀結構

2、I2C總線(xiàn)的需求

工程師對I2C總線(xiàn)和分析的需求主要涵蓋以下三個(gè)方面:

2.1了解總線(xiàn)正在發(fā)生什么

軟件工程師設計了I2C主控設備發(fā)出的消息內容,但硬件工程師需要確定消息是不是被準確無(wú)誤的傳送到物理線(xiàn)路上,需要了解總線(xiàn)上真正在發(fā)生什么。傳統的使用示波器的方式是先用探頭把信號捕獲下來(lái),然后根據電平特點(diǎn)轉換成“1”或“0”,然后再去對比I2C協(xié)議,將其還原成有意義的消息幀。這種方式費時(shí)費力,對工程師的業(yè)務(wù)能力要求很高,而且儀器使用效率很低。工程師需要儀器能提供一種自動(dòng)化的方式,直接將采集到的波形翻譯成容易識別的內容,再根據不用類(lèi)別工程師的需求,以不同的方式動(dòng)態(tài)顯示在儀器屏幕上。比如硬件工程師可能希望以二進(jìn)制的方式查看I2C消息內容,底層驅動(dòng)工程師希望以16進(jìn)制方式分析波形,而應用軟件工程師則希望以ASCII文本的方式去了解總線(xiàn)上實(shí)際運行的數據內容

2.2調試總線(xiàn)上有故障的節點(diǎn)

I2C是由多個(gè)節點(diǎn)組成的總線(xiàn)網(wǎng)絡(luò ),每一個(gè)節點(diǎn)都用唯一的地址符加以識別。主控設備發(fā)出的消息會(huì )被總線(xiàn)上所有節點(diǎn)接收到,但只有目標地址和本節點(diǎn)匹配的消息才會(huì )被該節點(diǎn)送入上層軟件接口處理,因此當某個(gè)特點(diǎn)的節點(diǎn)出了故障,或我們僅對該節點(diǎn)收發(fā)的數據感興趣時(shí),我們希望僅觀(guān)測到目標地址為該節點(diǎn)的 I2C消息幀,而忽略其他地址節點(diǎn)的信息。

工程師可能還面臨這樣一種情況:我不清楚I2C總線(xiàn)上有無(wú)故障節點(diǎn),或不清楚是哪個(gè)節點(diǎn)收發(fā)數據有誤,但我希望一旦總線(xiàn)上有出錯狀態(tài)時(shí),我能立即定位到故障來(lái)源。

2.3分析EEPROM內存單元的有效性

EERPOM是在各類(lèi)系統單板上廣泛使用的存儲器件,主要作用是存儲系統上電時(shí)需要導入的信息,比如主內存地址、容量、模式,CPU初始化狀態(tài)等,EEPROM器件一般都采用I2C總線(xiàn)與CPU建立通信傳遞數據。當讀寫(xiě)EEPROM配置信息出錯的情況下,我們就不僅僅需要知道是哪片EEPROM出問(wèn)題,更有意義的是要深入到器件內部,定位具體是哪個(gè)地址單元出了問(wèn)題,是讀數據過(guò)程中有問(wèn)題還是寫(xiě)數據過(guò)程中有問(wèn)題。

3、力科示波器充分滿(mǎn)足工程師 I2C總線(xiàn)的需求

廣大工程師用戶(hù)日益需要能處理各種通用測量任務(wù)、同時(shí)又能滿(mǎn)足分析 I2C總線(xiàn)等低速串行總線(xiàn)的專(zhuān)用需求、且符合有限預算的解決方案,力科基于Windows操作系統的全系列示波器產(chǎn)品滿(mǎn)足了這些需求,這些系列包括WaveSurfer Xs、WaveRunner Xi、WavePro 7Zi和WaveMaster 8Zi,這些產(chǎn)品一個(gè)很重要的的應用方面就是調試串行總線(xiàn)。示波器不僅要能測量信號電平、頻率等常規項目,還要能提供專(zhuān)門(mén)的軟件包以更深入分析和調試I2C總線(xiàn)。

  力科 I2C測試軟件包主要包括三大功能,完全涵蓋了嵌入式開(kāi)發(fā)工程師分析I2C的以上需求,分別是總線(xiàn)協(xié)議解碼、總線(xiàn)觸發(fā)和EEPROM內存單元調試。

3、1總線(xiàn)觸發(fā)

在力科示波器界面下進(jìn)入菜單項“Trigger”->”Serial Data”->”I2C”,彈出的界面中允許用戶(hù)按照特定的模式去觸發(fā)I2C消息幀,如下圖3所示。比如你只關(guān)心地址為0x20節點(diǎn)上讀寫(xiě)的數據,那就可以設置以”地址”方式觸發(fā);或者你希望看到所有幀長(cháng)度為4的I2C消息,那就可以設置以“幀長(cháng)度”為觸發(fā)方式;更復雜的情況是既要隔離特定地址的消息,還要隔離該地址節點(diǎn)上接收到的特定數據內容,那就可以設置”地址+數據”。

“No Ack”觸發(fā)方式提供給用戶(hù)專(zhuān)門(mén)捕獲總線(xiàn)出錯狀態(tài),通過(guò)這種方式,工程師可以快速定位到有故障的節點(diǎn)和出錯狀態(tài)。

圖3 力科示波器 I2C軟件包設置觸發(fā)界面

3、1總線(xiàn)協(xié)議解碼

在力科示波器界面下進(jìn)入菜單項“Analysis”->”Serial Decode”->”I2C”,用戶(hù)對總線(xiàn)正在傳輸的數據內容進(jìn)行實(shí)時(shí)解碼,解碼后的內容能選擇以“二進(jìn)制”、“十六進(jìn)制”和“ASCII”三種方式直接顯示在波形上方。由于I2C消息由多個(gè)協(xié)議字段組成,因此解碼時(shí)軟件會(huì )自動(dòng)地把不同的協(xié)議字段以不同的顏色框加以標準,比如地址字段是紅色框,而數據字段則對應成藍色框,如下圖4所示

圖4 I2C總線(xiàn)解碼

一種更直觀(guān)的方式以表格化形式列出全部捕獲到消息幀的所有協(xié)議字段,然后用戶(hù)可以根據需要單獨方法顯示表格中特定的消息幀,如下圖5所示。

圖5 表格顯示 I2C協(xié)議幀結構數據

3、3EERPOM調試

力科I2C軟件包專(zhuān)門(mén)提供 EERPOM內存單元地址的觸發(fā)方式,以滿(mǎn)足工程師升入調試EEPROM器件的需求。在這種情形下,不僅需要設置器件作為 I2C節點(diǎn)的地址符,還要設置器件內部某個(gè)具體內存單元的地址。完成這些設置后,觸發(fā)顯示在示波器屏幕上的波形即使該內存單元上讀寫(xiě)的數據內容。如下圖6所示。

圖6 I2C軟件包調試EEPROM界面



關(guān)鍵詞: 測試 測試測量

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>