I2C總線協(xié)議
I2C總線特點
I2C總線工作原理
總線的構成及信號類型
I2C總線是由數(shù)據(jù)線SDA和時鐘SCL構成的串行總線,可發(fā)送和接收數(shù)據(jù)。在CPU與被控IC之間、IC與IC之間進行雙向傳送,最高傳送速率100kbps。各種被控制電路均并聯(lián)在這條總線上,但就像電話機一樣只有撥通各自的號碼才能工作,所以每個電路和模塊都有唯一的地址,在信息的傳輸過程中,I2C總線上并接的每一模塊電路既是主控器(或被控器),又是發(fā)送器(或接收器),這取決于它所要完成的功能。CPU發(fā)出的控制信號分為地址碼和控制量兩部分,地址碼用來選址,即接通需要控制的電路,確定控制的種類;控制量決定該調(diào)整的類別(如對比度、亮度等)及需要調(diào)整的量。這樣,各控制電路雖然掛在同一條總線上,卻彼此獨立,互不相關。
I2C總線在傳送數(shù)據(jù)過程中共有三種類型信號, 它們分別是:開始信號、結(jié)束信號和應答信號。
開始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。
結(jié)束信號:SCL為高電平時,SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。
應答信號:接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個信號后,等待受控單元發(fā)出一個應答信號,CPU接收到應答信號后,根據(jù)實際情況作出是否繼續(xù)傳遞信號的判斷。若未收到應答信號,由判斷為受控單元出現(xiàn)故障。
這些信號中,起始信號是必需的,結(jié)束信號和應答信號,都可以不要。
目前有很多半導體集成電路上都集成了I2C接口。帶有I2C接口的單片機有:CYGNAL的 C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。很多外圍器件如存儲器、監(jiān)控芯片等也提供I2C接口
I2C 總線是一種用于IC器件之間連接的雙向二線制總線,所謂總線它上面可以掛多個器件,并且通過兩根線連接,占用空間非常的小,總線的長度可長達25英尺,并且能夠以10Kbps的最大傳輸速率支持4個組件。它的另一優(yōu)點是多主控,只要能夠進行接收和發(fā)送的設備都可以成為主控制器,當然多個主控不能同一時間 工作。
I2C總線有兩根信號線,一根為SDA(數(shù)據(jù)線),一根為SCL(時鐘線)。任何時候時鐘信號都是由主控器件產(chǎn)生。
I2C總線操作
控制字節(jié)
在起始條件之后,必須是器件的控制字節(jié),其中高四位為器件類型識別符(不同的芯片類型有不同的定義,EEPROM一般應為1010),接著三位為片選,最后一位為讀寫位,當為1時為讀操作,為0時為寫操作。
寫操作
寫操作分為字節(jié)寫和頁面寫兩種操作,對于頁面寫根據(jù)芯片的一次裝載的字節(jié)不同有所不同。
讀操作
讀操作有三種基本操作:當前地址讀、隨機讀和順序讀。圖4給出的是順序讀的時序圖。應當注意的是:最后一個讀操作的第9個時鐘周期不是“不關心”。為了結(jié)束讀操作,主機必須在第9個周期間發(fā)出停止條件或者在第9個時鐘周期內(nèi)保持SDA為高電平、然后發(fā)出停止條件。
I2C總線應用
舉常I2C器件/I2C Device
1、存儲器類: ATMEL公司的AT24CXX系列EEPROM;
2、I2C總線8位并行IO口擴展芯片PCF8574/JLC1562;
3、I2C接口實時時鐘芯片DS1307/PCF8563/SD2000D/M41T80/ME901/ISL1208/;
4、I2C數(shù)據(jù)采集ADC芯片MCP3221(12bitADC)/ADS1100(16bitADC)/ADS1112(16bitADC)/MAX1238(12bitADC)/MAX1239(12bitADC);
5、I2C接口數(shù)模轉(zhuǎn)換DAC芯片DAC5574(8bitDAC)/DAC6573(10bitDAC)/DAC8571(16bitDAC)/;
6、I2C接口溫度傳感器TMP101/TMP275/DS1621/MAX6625
2、I2C總線8位并行IO口擴展芯片PCF8574/JLC1562;
3、I2C接口實時時鐘芯片DS1307/PCF8563/SD2000D/M41T80/ME901/ISL1208/;
4、I2C數(shù)據(jù)采集ADC芯片MCP3221(12bitADC)/ADS1100(16bitADC)/ADS1112(16bitADC)/MAX1238(12bitADC)/MAX1239(12bitADC);
5、I2C接口數(shù)模轉(zhuǎn)換DAC芯片DAC5574(8bitDAC)/DAC6573(10bitDAC)/DAC8571(16bitDAC)/;
6、I2C接口溫度傳感器TMP101/TMP275/DS1621/MAX6625
USB轉(zhuǎn)I2C專用芯片:USB2I2C
USB2I2C芯片上位機PC端提供簡單易用的USBIOX.DLL動態(tài)庫調(diào)用,可以方便地被VB,VC,Delphi,Labview,BCB等上位機開發(fā)工具調(diào)用。相關例程在USBIO公司網(wǎng)站可以找到。
USB2I2C功能特點:
●全速USB設備接口,兼容USB V2.0。
●外圍元件簡單,只需1個12M晶體和2個電容。
●低成本,可以通過I2C總線直接實現(xiàn)上位機與下位機之間的連接,無需輔助MCU。
●上位機軟件能夠?qū)崿F(xiàn)靈活實現(xiàn)I2C/IIC/TWI總線協(xié)議的各種操作。
●作為I2C總線Host/Master 主機端。
●I2C接口提供SCL和SDA信號線,支持SCL時鐘4種不同傳輸速度:100KHz/400KHz/750KHz。
●采用SSOP-20小型封裝。
評論