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