I2C總線是由Philips公司開發(fā)的一種簡單、雙向二線制同步串行總線。它只需要兩根線即可在連接于總線上的器件之間傳送信息。主器件用于啟動總線傳送數(shù)據(jù),并產(chǎn)生時鐘以開放傳送的器件,此時任何被尋址的器件均被認為是從器件.在總線上主和從、發(fā)和收的關系不是恒定的,而取決于此時數(shù)據(jù)傳送方向。如果主機要發(fā)送數(shù)據(jù)給從器件,則主機首先尋址從器件,然后主動發(fā)送數(shù)據(jù)至從器件,最后由主機終止數(shù)據(jù)傳送;如果主機要接收從器件的數(shù)據(jù),首先由主器件尋址從器件.然后主機接收從器件發(fā)送的數(shù)據(jù),最后由主機終止接收過程。在這種情況下.主機負責產(chǎn)生定時時鐘和終止數(shù)據(jù)傳送。
I2C工作原理SDA(串行數(shù)據(jù)線)和SCL(串行時鐘線)都是雙向I/O線,接口電路為開漏輸出.需通過上拉電阻接電源VCC.當總線空閑時.兩根線都是高電平,連接總線的外同器件都是CMOS器件,輸出級也是開漏電路.在總線上消耗的電流很小,因此,總線上擴展的器件數(shù)量主要由電容負載來決定,因為每個器件的總線接口都有一定的等效電容.而線路中電容會影響總線傳輸速度.當電容過大時,有可能造成傳輸錯誤.所以,其負載能力為400pF,因此可以估算出總線允許長度和所接器件數(shù)量。
主器件用于啟動總線傳送數(shù)據(jù),并產(chǎn)生時鐘以開放傳送的器件,此時任何被尋址的器件均被認為是從器件.在總線上主和從、發(fā)和收的關系不是恒定的,而取決于此時數(shù)據(jù)傳送方向。如果主機要發(fā)送數(shù)據(jù)給從器件,則主機首先尋址從器件,然后主動發(fā)送數(shù)據(jù)至從器件,最后由主機終止數(shù)據(jù)傳送;如果主機要接收從器件的數(shù)據(jù),首先由主器件尋址從器件.然后主機接收從器件發(fā)送的數(shù)據(jù),最后由主機終止接收過程。在這種情況下.主機負責產(chǎn)生定時時鐘和終止數(shù)據(jù)傳送。
2C總線特點(1)在硬件上,12C總線只需要一根數(shù)據(jù)線和一根時鐘線兩根線,總線接口已經(jīng)集成在芯片內(nèi)部,不需要特殊的接口電路,而且片上接口電路的濾波器可以濾去總線數(shù)據(jù)上的毛刺.因此I2C總線簡化了硬件電路PCB布線,降低了系統(tǒng)成本,提高了系統(tǒng)可靠性。因為12C芯片除了這兩根線和少量中斷線,與系統(tǒng)再沒有連接的線,用戶常用IC可以很容易形成標準化和模塊化,便于重復利用。
?。?)I2C總線是一個真正的多主機總線,如果兩個或多個主機同時初始化數(shù)據(jù)傳輸,可以通過沖突檢測和仲裁防止數(shù)據(jù)破壞,每個連接到總線上的器件都有唯一的地址,任何器件既可以作為主機也可以作為從機,但同一時刻只允許有一個主機。數(shù)據(jù)傳輸和地址設定由軟件設定,非常靈活??偩€上的器件增加和刪除不影響其他器件正常工作。
?。?)I2C總線可以通過外部連線進行在線檢測,便于系統(tǒng)故障診斷和調(diào)試,故障可以立即被尋址,軟件也利于標準化和模塊化,縮短開發(fā)時問。
?。?)連接到相同總線上的IC數(shù)量只受總線最大電容的限制,串行的8位雙向數(shù)據(jù)傳輸位速率在標準模式下可達100Kbit/s,快速模式下可達400Kbit/s,高速模式下可達3.4Mbit/s。
(5)總線具有極低的電流消耗.抗高噪聲干擾,增加總線驅(qū)動器可以使總線電容擴大10倍,傳輸距離達到15m;兼容不同電壓等級的器件,工作溫度范圍寬。