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