一、 I2C接口簡介
I2C最早是Philips公司開發(fā)的一款簡單的雙向總線,實(shí)現(xiàn)有效的IC控制。把這個(gè)總線寫成Inter IC 簡稱IIC或I2C(PS:說白了2就是兩個(gè)“I”的意思。)
I2C總線一些特征:
1、 只有兩根線分別是串行數(shù)據(jù)線(SDA),串行時(shí)鐘線(SCL)。
2、 每個(gè)連接到總線的器件有唯一一個(gè)地址。
3、 總線中可以存在一個(gè)主機(jī)多個(gè)從機(jī)的模式,也存在多個(gè)主機(jī)的模式(實(shí)際應(yīng)用非常少,本文不做累述)。
4、 使用串行8位雙向數(shù)據(jù)傳輸方式。有標(biāo)準(zhǔn)模式(Standard mode)傳輸速度達(dá)100kbit/s;快速模式(Fast mode)傳輸速度達(dá)400kbit/s;超快速模式(Fast mode Plus)傳輸速度達(dá)1Mbit/s;高速模式(High speed mode)傳輸速度達(dá)3.4Mbit/s。通常多用到標(biāo)準(zhǔn)模式。
5、 總線上的設(shè)備數(shù)量只受到總線電容(Bus capacitance)小于400pf的限制。
6、 可以使用普通GPIO口模擬I2C,但要需要將GPIO配置成OD模式(開漏模式)
二、I2C位傳輸規(guī)則
1、起始信號(hào)&停止信號(hào)
起始條件:當(dāng)SCL為高電平時(shí),SDA從高電平向低電平切換。
停止信號(hào):當(dāng)SCL為高電平時(shí),SDA從低電平向高電平切換
2、數(shù)據(jù)的有效性
I2C信號(hào)為電平采樣信號(hào)(其他很多協(xié)議都是信號(hào)沿采樣,如SPI)。規(guī)定SDA上的數(shù)據(jù)在SCL高電平周期內(nèi)保持穩(wěn)定,在SCL低電平周期內(nèi)允許變化。
3、響應(yīng)時(shí)鐘信號(hào)(ACK)
數(shù)據(jù)傳輸必須帶響應(yīng) 相關(guān)的響應(yīng)時(shí)鐘脈沖由主機(jī)產(chǎn)生 在響應(yīng)的時(shí)鐘脈沖期間發(fā)送器釋放SDA線(高)。
在響應(yīng)的時(shí)鐘脈沖期間接收器必須將SDA 線拉低使它在這個(gè)時(shí)鐘脈沖的高電平期間保持穩(wěn)定的低電平。
通常,被尋址的接收器在接收到的每個(gè)字節(jié)后,必須產(chǎn)生一個(gè)響應(yīng)。
當(dāng)從機(jī)不能響應(yīng)從機(jī)地址時(shí),例如它正在執(zhí)行一些實(shí)時(shí)函數(shù)不能接收或發(fā)送。從機(jī)必須使數(shù)據(jù)線保持高電平,主機(jī)然后產(chǎn)生一個(gè)停止條件終止傳輸或者產(chǎn)生重復(fù)起始條件開始的傳輸。
如果從機(jī)接收器響應(yīng)了從機(jī)地址但是在傳輸了一段時(shí)間后不能接收更多數(shù)據(jù)字節(jié),主機(jī)必須再一次終止傳輸,這個(gè)情況用從機(jī)在第一個(gè)字節(jié)后沒有產(chǎn)生響應(yīng)來表示,從機(jī)使數(shù)據(jù)線保持高電平,主機(jī)產(chǎn)生一個(gè)停止或重復(fù)起始條件。
4、地址格式
在發(fā)送起始信號(hào)后,主機(jī)會(huì)發(fā)送一個(gè)從機(jī)地址,這個(gè)地址共有7位。緊接著第8位(R/ W)“0”表示“寫”,“1”表示請(qǐng)求數(shù)據(jù)“讀”。
第一個(gè)字節(jié)的頭7位組成了從機(jī)地址最低位(LSB)是第 8 位,它決定了報(bào)文的方向
第一個(gè)字節(jié)的最低位是“0”表示主機(jī)會(huì)寫信息到被選中的從機(jī)“1”表示主機(jī)會(huì)向從機(jī)讀信息
當(dāng)發(fā)送了一個(gè)地址后,系統(tǒng)中的每個(gè)器件都在起始條件后將頭7位與它自己的地址比較 如果一樣,器件認(rèn)為它被主機(jī)尋址,至于從機(jī)是接收數(shù)據(jù)還是發(fā)送數(shù)據(jù)都由 R/ W 位決定。
三、I2C電氣特性標(biāo)準(zhǔn)
I2C通訊的時(shí)候需要注意時(shí)序是否滿足條件,特別注意建立時(shí)間,保持時(shí)間等時(shí)序。如出現(xiàn)問題需要測(cè)試波形與表格中的電氣特性進(jìn)行詳細(xì)對(duì)比。
文章來源:http://www.zghlxwxcb.cn/news/detail-467142.html
四、I2C上拉電阻選擇
1、SDA和SCL都是雙向的線路,都是通過一個(gè)電流源或者上拉電阻接到電源電壓,這個(gè)電流源的最大值為3mA。
2、開漏狀態(tài)下有3mA的反向電流,SDA,SCL的低電平的最大值為VOL(max)=0.4V。(I2C協(xié)議中可以看到)
通過上述既可以得到:
3、最大上拉電阻的受到上升時(shí)間和負(fù)載電容的響應(yīng),具體的計(jì)算公式見下,具體的tr可在電氣特性表中找到
所以說有些人說I2C的標(biāo)準(zhǔn)上拉電阻是2.2K是不正確的。文章來源地址http://www.zghlxwxcb.cn/news/detail-467142.html
到了這里,關(guān)于【科普貼】I2C接口詳解——偏硬件解析的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!