【基本知識】I2C接口


1.簡介

  I2C總線是PHILIPS公司推出的一種在電子通信控制領域常用的串行通信總線,是一種簡單、雙向通信、二線制、同步的串行總線,具有連接線少控制簡單通信速率高等優點。用數據線SDA和時鍾線SCL構成通信線路,各器件可並聯到總線上實現數據收發,器件間彼此獨立,通過唯一的總線地址區分。

  I2C標准速率為100kb/s,快速模式500kb/s

  除了發送器和接收器外,在執行數據傳輸時,器件也可以被看作主器件(主機)或從器件(從機)。主器件是用於啟動總線傳送數據,並產生時鍾的器件,此時任何被尋址的器件均被認為是從器件(一主多從)。在總線上主和從、發和收的關系取決於此時的數據傳送方向,而不是恆定的。如果主機要發送數據給從器件,則主機首先尋址從器件,然后主動發送數據至從器件,最后由主機終止數據傳送;如果主機要接收從器件的數據,首先由主器件尋址從器件,然后主機接收從器件發送的數據,最后由主機終止接收過程。在這種情況下,主機負責產生定時時鍾和終止數據傳送。

  I2C總線的接口均為集電極開路(OC)或漏極開路(OD)的形式輸出,其主要是為防止I2C總線上的信號混亂, I2C總線上的輸出端沒有安裝上拉電阻時,只能輸出低電平,如果需要保證I2C總線正常工作,就需要在I2C總線的輸出端加上拉電阻R1和R2。

  所有I2C設備的SDA或是SCL的端口連接到一塊,如果任意一個I2C設備輸出低電平都將控制I2C總線(即總線處於“忙”狀態)即各I2C設備 的時鍾串行線SCL是線“與”的關系,各I2C設備的數據串行線SDA也是線“與”的關系。

2.工作信號

    默認狀態(IDLE):當I2C不工作時,SDA和SCL都處於高電平;

    開始傳輸(START):當 SCL保持為高電平,SDA由高電平變成低電平時表示傳輸開始(簡寫S);

    停止傳輸(STOP):當 SCL保持為高電平,SDA由低電平變成高電平時表示傳輸結束(簡寫SP)。

    再次啟動(REPEATED START):和START完全相同,差別只是第一次Start之后沒有進行STOP,再次啟動Start(簡寫Sr)。用於讀操作

    數據傳輸:數據傳輸時SDA必須在SCL高電平時保持不變,僅可在SCL低電平改變SDA電平。

    應答信號:IIC以八位字節傳輸,發送端每發送一個字節后就會釋放數據線SDA,由接收器反饋一個應答信號(低電平)。為ACK

 

 

3.讀寫操作

  

 

 

4.總線占用

  各I2C設備的時鍾串行線SCL是線“與”的關系,各I2C設備的數據串行線SDA也是線“與”的關系。在正常情況下, I2C總線協議能保證總線正常的讀/寫操作,但是只要總線上任何一個設備拉低了數據串行線SDA或者時鍾線串行SCL(控制總線),其他設備都無法拉高它們,如果有I2C設備不釋放總線,則整個總線上的通信都被暫停,總線被占用。

 

 

 

 

 

 

     

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM