I2C(Inter Integrated Circuit)雙向二線制串行總線,是由飛利浦公司制定的。I2C總線是一個多主機(jī)的總線,使用串行數(shù)據(jù)線(SDA)和串行時鐘線(SCL)在總線上傳遞信息。每個器件都有一個唯一的識別地址,而且都可以作為一個發(fā)送器或接收器。當(dāng)連接在I2C總線上的多個主機(jī)器件同時傳輸數(shù)據(jù)時,通過仲裁來避免沖突。SDA和SCL都是雙向線路,通過一個電流源或上拉電阻連接到電源。器件輸出級必須是漏極開路或集電極開路,當(dāng)總線空閑時,兩條線路處于高電平,執(zhí)行線與的功能。
Actel公司免費(fèi)提供I2C IP核——Core I2C。Core I2C是基于APB總線形式的,它的優(yōu)點(diǎn)是可以連接到Core 8051或者是Cortex M1處理器上,方便用戶進(jìn)行SoC設(shè)計,本文將主要介紹Core I2C的原理與應(yīng)用。
1. Core I2C介紹
(1)I2C協(xié)議簡介
I2C總線協(xié)議定義如下:只有在總線處于“非忙”狀態(tài)時,才能開始數(shù)據(jù)傳輸。在數(shù)據(jù)傳輸期間,只要時鐘線為高電平,數(shù)據(jù)線都必須保持穩(wěn)定,否則數(shù)據(jù)線上的任何變化都被當(dāng)作“啟動”或“停止”信號。圖1所示為總線狀態(tài)的定義。
來源:電子產(chǎn)品世界