作者丨鼎陽(yáng)科技 張一慧
01
IIC信號(hào)概述
IIC(Inter-Integrated Circuit)信號(hào)的基本原理主要涉及集成電路之間的串行通信。IIC通信協(xié)議是一種簡(jiǎn)單且高效的通信接口標(biāo)準(zhǔn),廣泛應(yīng)用于各種電子設(shè)備、傳感器、顯示器等領(lǐng)域。
IIC通信原理的核心在于其主從模式和兩條總線線路:串行數(shù)據(jù)線(SDA)和串行時(shí)鐘線(SCL)。
主設(shè)備負(fù)責(zé)發(fā)送起始和停止信號(hào),并控制通信的時(shí)序,而從設(shè)備則根據(jù)主設(shè)備的控制來(lái)響應(yīng)。在通信開(kāi)始前,主設(shè)備會(huì)發(fā)送起始信號(hào),標(biāo)志著通信的開(kāi)始;通信結(jié)束后,主設(shè)備會(huì)發(fā)送停止信號(hào)。
SDA線路用于傳輸實(shí)際的數(shù)據(jù)信息,而SCL線路則用于同步通信的時(shí)鐘信號(hào)。當(dāng)總線空閑時(shí),SDA和SCL線均為高電平。連到總線上的任一器件輸出的低電平,都將使總線的信號(hào)變低,即各器件的SDA及SCL都是線“與”關(guān)系。
在進(jìn)行數(shù)據(jù)傳送時(shí),IIC總線遵循特定的規(guī)則。時(shí)鐘信號(hào)為高電平期間,數(shù)據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定;只有在時(shí)鐘線上的信號(hào)是低電平時(shí),數(shù)據(jù)線上的電平才允許變化。這種機(jī)制確保了數(shù)據(jù)的穩(wěn)定性和準(zhǔn)確性。
總的來(lái)說(shuō),IIC信號(hào)的基本原理是通過(guò)主從模式、兩條總線線路以及特定的通信規(guī)則來(lái)實(shí)現(xiàn)集成電路之間的串行通信。這種通信方式簡(jiǎn)單、高效且靈活,適用于各種應(yīng)用場(chǎng)景。
02 示波器測(cè)量IIC信號(hào)原理
示波器測(cè)量IIC信號(hào)的原理主要是基于IIC信號(hào)的時(shí)序和波形特征進(jìn)行捕捉、分析和解碼。
首先,IIC是一種串行通信總線,它通過(guò)兩根線——時(shí)鐘線SCL和數(shù)據(jù)線SDA——進(jìn)行數(shù)據(jù)的傳輸。在IIC通信中,主設(shè)備負(fù)責(zé)控制通信的起始和停止,以及時(shí)鐘信號(hào)的產(chǎn)生,而從設(shè)備則根據(jù)主設(shè)備的控制進(jìn)行數(shù)據(jù)的發(fā)送或接收。
示波器作為一種電子測(cè)量?jī)x器,能夠捕捉并顯示電信號(hào)隨時(shí)間變化的波形。在測(cè)量IIC信號(hào)時(shí),示波器會(huì)連接到IIC總線的SCL和SDA線上,實(shí)時(shí)捕捉這兩根線上的電壓變化。
示波器測(cè)量IIC信號(hào)的關(guān)鍵在于準(zhǔn)確捕捉信號(hào)的起始、數(shù)據(jù)位和結(jié)束等關(guān)鍵時(shí)序點(diǎn)。IIC信號(hào)的起始由SCL為高電平、SDA由高變低表示,而結(jié)束則由SCL為高電平、SDA由低變高表示。在數(shù)據(jù)傳輸過(guò)程中,SDA線上的電平變化代表著二進(jìn)制數(shù)據(jù)的變化,而SCL線則提供了數(shù)據(jù)變化的同步時(shí)鐘。
示波器通過(guò)內(nèi)部的采樣和觸發(fā)機(jī)制,可以精確捕捉到這些時(shí)序點(diǎn),并將捕捉到的信號(hào)波形顯示在屏幕上。此外,現(xiàn)代示波器通常還具備解碼功能,能夠自動(dòng)識(shí)別IIC信號(hào)的格式,并將其解碼為可讀的數(shù)據(jù)格式,方便用戶進(jìn)行分析和調(diào)試。
需要注意的是,示波器的測(cè)量精度和可靠性受到多種因素的影響,包括示波器的帶寬、采樣率、觸發(fā)設(shè)置等。因此,在進(jìn)行IIC信號(hào)測(cè)量時(shí),需要選擇合適的示波器,并正確設(shè)置其參數(shù),以確保測(cè)量結(jié)果的準(zhǔn)確性和可靠性。
03 解碼不正確時(shí)應(yīng)該怎么做?
如下圖,使用SDS2074X Plus進(jìn)行IIC解碼時(shí),發(fā)現(xiàn)解碼后的數(shù)據(jù)值不正確,這段數(shù)據(jù)應(yīng)是00000001,但是機(jī)器解析出來(lái)是00000011:
相同的數(shù)據(jù)在邏輯分析儀上解出來(lái)是這樣的:
問(wèn)題及解決方案
從上圖可以看出,在箭頭所指處,示波器采集到的數(shù)據(jù)剛好是在臨界點(diǎn)的數(shù)據(jù)高電平處,所以示波器判定為1 。
但這個(gè)數(shù)據(jù)點(diǎn)的采集和我們數(shù)字通道的閾值也有一定的關(guān)系,比較電平不一樣,繪制出來(lái)的數(shù)字通道波形也會(huì)有差別,解碼的結(jié)果可能就不一樣了。因此在這種情況下,可以更改數(shù)字通道閾值。
通過(guò)將閾值調(diào)高,示波器成功解碼出了正確的數(shù)據(jù)結(jié)果,閾值會(huì)影響sda的時(shí)序,在高閾值情況下,sda跳變比scl晚,解碼出來(lái)便是0,觸發(fā)閾值不一樣的情況下,sda可能會(huì)超前scl跳變,此時(shí)解碼出來(lái)便是1。
總結(jié)
示波器在解碼IIC信號(hào)時(shí)出現(xiàn)誤差,可能是由多種因素引起的。以下是一些建議的排查步驟和解決方法:
1. 檢查硬件連接
- 確保I2C設(shè)備的連接正確無(wú)誤,包括SDA(數(shù)據(jù)線)和SCL(時(shí)鐘線)的接線。
- 檢查是否存在短路或斷路的情況。
- 確保使用的線纜和連接器質(zhì)量良好,沒(méi)有損壞。
2. 檢查示波器設(shè)置
- 確保示波器的采樣率和帶寬設(shè)置足夠高,以捕獲I2C信號(hào)的高頻成分。
- 檢查觸發(fā)設(shè)置,確保能夠穩(wěn)定地觸發(fā)到I2C信號(hào)的開(kāi)始或特定事件。
- 調(diào)整垂直和水平縮放,以便更好地觀察信號(hào)細(xì)節(jié)。
3. 檢查信號(hào)質(zhì)量
- 使用示波器觀察I2C信號(hào)的波形,檢查是否存在噪聲、畸變或不穩(wěn)定的情況。
- 如果信號(hào)質(zhì)量不佳,考慮使用信號(hào)濾波器或調(diào)整信號(hào)源的輸出質(zhì)量。
4.檢查I2C設(shè)備的工作狀態(tài):
- 確保I2C設(shè)備正常上電且處于工作狀態(tài)。
- 檢查設(shè)備的時(shí)鐘頻率和數(shù)據(jù)速率是否與示波器的設(shè)置相匹配。
5.檢查解碼軟件或算法:
- 如果示波器使用軟件解碼I2C信號(hào),確保軟件版本是最新的,并且與示波器硬件兼容。
6.嘗試其他方法:
- 如果示波器解碼仍然存在問(wèn)題,可以嘗試使用邏輯分析儀或其他專門(mén)的I2C調(diào)試工具來(lái)捕獲和分析信號(hào)。
綜上所述,解決示波器解碼I2C信號(hào)誤差的問(wèn)題需要綜合考慮硬件連接、示波器設(shè)置、信號(hào)質(zhì)量、設(shè)備工作狀態(tài)以及解碼軟件或算法等多個(gè)方面。通過(guò)逐步排查和嘗試不同的解決方法,通??梢哉业絾?wèn)題的根源并解決它。
-END-