30秒輕松搞定I2C、SPI、MDIO時序分析
簡單來說,時序(timing)就是通信總線各信號有效的先后順序及配合關(guān)系,因而為了確保產(chǎn)品的穩(wěn)定,需要對器件的總線通信時序進(jìn)行一致性測試。
1、I2C
I2C總線只需要兩條線,一條SDA數(shù)據(jù)線,一條SCL時鐘線,根據(jù)這兩條線的高低電平、上升沿、下降沿就可以實現(xiàn)主機(jī)與I2C設(shè)備的通訊,其中有:
- 傳輸開始條件:SCL處于高電平,SDA下降沿時;
- 傳輸接收條件:SCL處于高電平,SDA上升沿時;
- 傳輸數(shù)據(jù):開始傳輸后,SCL處于高電平時,SDA的數(shù)據(jù)為所傳輸?shù)臄?shù)據(jù);
- 回應(yīng): 當(dāng)傳輸完一個字節(jié)后,I2C設(shè)備需要回應(yīng)一個ACK,這樣主機(jī)才繼續(xù)發(fā)送;因此回應(yīng)信號是在傳輸完8bit后的下一個數(shù)據(jù)位(SDA值),當(dāng)SDA為0表示有回應(yīng),為1表示沒回應(yīng)。
2、SPI
SPI總線有四種工作方式:
- {POL,PHA}={0,0}:時鐘空閑時為低電平,上升沿采樣;
- {POL,PHA}={0,1}:時鐘空閑時為低電平,下降沿采樣;
- {POL,PHA}={1,0}:時鐘空閑時為高電平,下降沿采樣;
- {POL,PHA}={1,1}:時鐘空閑時為高電平,上升沿采樣;
SPI接口在內(nèi)部硬件實際上是兩個簡單的移位寄存器,傳輸?shù)臄?shù)據(jù)為8位,在主器件產(chǎn)生的從器件使能信號和移位脈沖下,按位傳輸,高位在前,低位在后。如下圖所示,在SCLK的下降沿上數(shù)據(jù)改變,上升沿一位數(shù)據(jù)被存入移位寄存器。
3、MDIO
MDIO接口(Management Data Input/Output Interface),最早在IEEE 802.3的第22卷定義,后來在第45卷又定義了增強(qiáng)版本的MDIO,其主要被應(yīng)用于以太網(wǎng)的MAC和PHY層之間,用于MAC層器件通過讀寫寄存器來實現(xiàn)對PHY層器件的操作與管理。
MDIO接口包括兩條線,MDIO和MDC,其中MDIO是雙向數(shù)據(jù)線,而MDC是由STA驅(qū)動的時鐘線。MDIO接口只是會在MDC時鐘的上升沿進(jìn)行采樣,而并不在意MDC時鐘的頻率(類似于I2C接口)。當(dāng)MDIO由STA輸出時,需要滿足建立時間、保持時間均大于10ns。當(dāng)MDIO由PHY輸出時,需要滿足輸出延遲不超過300ns。
ZDS5054Pro示波器最多支持四十多種通信協(xié)議解碼,擁有512Mpts的存儲深度,可以一次解碼長時間通信報文,同時可自動分析MDIO、I2C、SPI、CAN等協(xié)議的通信時序。以SPI為例,ZDS5054Pro系列可以對SPI的信號進(jìn)行解碼,還可以設(shè)定以下時序參數(shù)的閾值,看每一幀信號是否符合時序要求。
整個解析到出結(jié)果的過程不超過30秒,在進(jìn)行測試后,位于STATUS一欄,則會顯示各項測量項目是否通過,并且能夠生成測試報告。