午夜网站国产欧美_加勒比视频亚洲无码_91亚洲人人在字幕国产_18禁止美女爆乳免费网站_被消防员c哭高h野外糙汉动漫_午夜精品视频在线无码_gogowww人体大胆裸体午液_2021自拍偷区亚洲综合第一页_国产欧美一区二区精品性色超碰_99國產精品無碼

Hi,您好,歡迎來(lái)到西安盛圖軟件科技有限公司!

【技術(shù)論壇】I2C協(xié)議分析

發(fā)布時(shí)間:2021-11-25 15:32:35


I2C協(xié)議分析
01
I2C協(xié)議簡(jiǎn)介

       IIC(Inter-IntegratedCircuit)總線是一種由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。它是由數(shù)據(jù)線SDA和時(shí)鐘SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。在CPU與被控IC之間、IC與IC之間進(jìn)行雙向傳送,高速IIC總線一般可達(dá)400kbps以上。由于只有一根數(shù)據(jù)線SDA,所以I2C協(xié)議是半雙工的。I2C設(shè)備有主設(shè)備和從設(shè)備,時(shí)鐘由主設(shè)備提供。


02
空閑開始/應(yīng)答/結(jié)束信號(hào)

2.1 空閑

  I2C總線總線的SDA和SCL兩條信號(hào)線同時(shí)處于高電平時(shí),規(guī)定為總線的空閑狀態(tài)。此時(shí)各個(gè)器件的輸出級(jí)場(chǎng)效應(yīng)管均處在截止?fàn)顟B(tài),即釋放總線,由兩條信號(hào)線各自的上拉電阻把電平拉高。

2.2 開始和結(jié)束

開始信號(hào):SCL為高電平時(shí),SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。
 結(jié)束信號(hào):SCL為高電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。

       從上面這副圖中我們可以看到,在開始條件之前,以及停止條件之后,SDA和SCL都是高,這就是I2C總線的空閑狀態(tài)。在SCL為高的情況下,SDA的變化就會(huì)引起通信狀態(tài)的變化(開始或停止)。而在正常數(shù)據(jù)通信數(shù)據(jù)發(fā)生變化時(shí),必須保持SCL為低。

2.3 應(yīng)答

       發(fā)送方在發(fā)送完8bit數(shù)據(jù)后,在第9個(gè)時(shí)鐘期間釋放數(shù)據(jù)線,等待接收方的應(yīng)答信號(hào)。接收方此時(shí)應(yīng)給出應(yīng)答(ACK)或非應(yīng)答信號(hào)(NAK),SCL被拉低表示為應(yīng)答信號(hào),SCL置高為NAK信號(hào)。注意應(yīng)答信號(hào)由接收方發(fā)出(可能為主,也可能為從,主從和發(fā)送接收不要混淆)。接收器在第9個(gè)時(shí)鐘脈沖之前的低電平期間將SDA線拉低,并且確保在該時(shí)鐘的高電平期間為穩(wěn)定的低電平。如果接收器是主控器,則在它收到最后一個(gè)字節(jié)后,發(fā)送一個(gè)NACK信號(hào),以通知被控發(fā)送器結(jié)束數(shù)據(jù)發(fā)送,并釋放SDA線,以便主控接收器發(fā)送一個(gè)停止信號(hào)P。




03
I2C讀寫

不論是讀還是寫,都是由主設(shè)備發(fā)起和結(jié)束的。也就是由主設(shè)備產(chǎn)生開始和結(jié)束條件。I2C設(shè)備地址為8bit,其中最低位為讀寫位,0為寫,1為讀。實(shí)際地址位為7bit。

3.1 寫過程

可以總結(jié)為以下過程:

1.發(fā)送起始位

2.發(fā)送設(shè)備地址信息

3.發(fā)送寄存器信息

4.發(fā)送數(shù)據(jù)信息

5.發(fā)送停止位

上述過程省略了等待應(yīng)答,每發(fā)送一個(gè)字節(jié)數(shù)據(jù)都會(huì)等待應(yīng)答。


3.2 讀過程

       讀過程相對(duì)來(lái)講會(huì)復(fù)雜一些,需要先寫(寫要讀的寄存器)再讀。并且讀的時(shí)候由主設(shè)備發(fā)送ACK

     1.發(fā)送起始位

     2.發(fā)送設(shè)備地址信息(寫)

     3.發(fā)送要讀的寄存器信息

     4.重新開始,restart

     5.發(fā)送設(shè)備地址信息(讀)

     6.讀取數(shù)據(jù)

     7.接收完畢,發(fā)送NAK

      8.發(fā)送停止信號(hào)


以上就是關(guān)于I2C協(xié)議的相關(guān)知識(shí),希望能對(duì)大家有所幫助!

上一篇:純干貨!GPIO八大工作模式介紹
下一篇:什么是平衡二叉樹(中)

歡迎登錄盛圖科技

歡迎注冊(cè)盛圖科技

已有賬號(hào),立即登錄