最新国产AV资源网_亚洲熟女AV天堂五月天_中文字幕丶东京热_中文字幕乱码免费高清视频

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

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

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


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

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


02
空閑開始/應答/結(jié)束信號

2.1 空閑

  I2C總線總線的SDA和SCL兩條信號線同時處于高電平時,規(guī)定為總線的空閑狀態(tài)。此時各個器件的輸出級場效應管均處在截止狀態(tài),即釋放總線,由兩條信號線各自的上拉電阻把電平拉高。

2.2 開始和結(jié)束

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

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

2.3 應答

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




03
I2C讀寫

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

3.1 寫過程

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

1.發(fā)送起始位

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

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

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

5.發(fā)送停止位

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


3.2 讀過程

       讀過程相對來講會復雜一些,需要先寫(寫要讀的寄存器)再讀。并且讀的時候由主設備發(fā)送ACK

     1.發(fā)送起始位

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

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

     4.重新開始,restart

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

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

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

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


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

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

歡迎登錄盛圖科技

歡迎注冊盛圖科技

已有賬號,立即登錄