實(shí)際工程項(xiàng)目中,有很多地方都會(huì)用到I2C總線(xiàn)通信,比如說(shuō)24C02存儲(chǔ)、傳感器接口等,能使用I2C這項(xiàng)技能,就成為了我們工程師日常必備的武器,那么我們就來(lái)詳細(xì)的說(shuō)說(shuō)I2C。
I2C是一種簡(jiǎn)單的雙向二線(xiàn)制同步串行總線(xiàn)。只需要兩根線(xiàn)即可在連接于總線(xiàn)上的器件之間傳送信息,一根SCL時(shí)鐘線(xiàn),一根就是SDA數(shù)據(jù)。需要注意的是SDA它是一個(gè)雙向傳輸?shù)木€(xiàn),主機(jī)向從機(jī)發(fā)送信號(hào)通過(guò)SDA把數(shù)據(jù)送出去,從機(jī)向主機(jī)發(fā)送信號(hào)也是從SDA線(xiàn)把數(shù)據(jù)送出來(lái)。
I2C也可以一個(gè)一,也可以一對(duì)多,每個(gè)連接到總線(xiàn)的外圍設(shè)備都有一個(gè)獨(dú)立的地址,主機(jī)可以通過(guò)該地址來(lái)訪(fǎng)問(wèn)不同設(shè)備。主機(jī)可通過(guò)SDA線(xiàn)發(fā)送設(shè)備地址查找從機(jī)。
因?yàn)镮2C 通信IO口輸出結(jié)構(gòu)都是配置為漏極開(kāi)路或集電極開(kāi)路輸出。所以時(shí)鐘線(xiàn)和數(shù)據(jù)線(xiàn)必須外部都接上拉電阻,當(dāng)一對(duì)多輸出的時(shí)候,很多GPIO口會(huì)連接在同一根線(xiàn)上,可能會(huì)存在某個(gè)GPIO輸出高電平,另一個(gè)GPIO輸出低電平的情況。如果使用推挽輸出,你會(huì)發(fā)現(xiàn)這個(gè)GPIO的VCC和另一個(gè)GPIO的GND接在了一起,也就是短路了。如果換成開(kāi)漏輸出VCC和GND之間多了個(gè)電阻,這樣電路就是安全的。
上拉電阻一般取值在1K-10K之間,上拉電阻的取值和通信速率會(huì)有一定的關(guān)系,如果上拉電阻的取值太大,那么信號(hào)的上升沿、下降沿就會(huì)很緩,會(huì)影響通信速率,這個(gè)具體的看應(yīng)用的通信速率去測(cè)試波形,如果取的太小了,功耗很大,取的太大了,信號(hào)的上升沿就會(huì)慢,影響通信速率。
一般情況下I2C標(biāo)準(zhǔn)模式最高傳輸速率100Kbit/s,高速模式最高傳輸速率400Kbit,當(dāng)然也有用軟件模擬I2C的時(shí)序來(lái)進(jìn)行通信的,這個(gè)速率就需要自己去掌控測(cè)試了,說(shuō)白了就是我們對(duì)著時(shí)序圖,抄一個(gè)同樣的波形出來(lái)。只要遵守同樣的約定,按照時(shí)序圖對(duì)應(yīng)管腳拉高拉低就可以讀寫(xiě)數(shù)據(jù)了。
在標(biāo)準(zhǔn)協(xié)議中區(qū)分啟動(dòng)、停止、應(yīng)答、等動(dòng)作,下面我們來(lái)一起學(xué)習(xí)一下I2C的標(biāo)準(zhǔn)協(xié)議。
當(dāng)檢測(cè)到SDA線(xiàn)上為下降沿,SLC線(xiàn)上為高電平,就表示收到了啟動(dòng)信號(hào),當(dāng)檢測(cè)到SDA線(xiàn)上為上升沿,SLC線(xiàn)上為高電平,就表示收到了停止信號(hào)。
收到啟動(dòng)信號(hào)之后就可以開(kāi)始數(shù)據(jù)傳輸,收到停止信號(hào)表示幀數(shù)據(jù)傳輸完畢。在傳輸過(guò)程中,時(shí)鐘線(xiàn)SCL為高電平的時(shí)候,數(shù)據(jù)線(xiàn)SDA必須保持穩(wěn)定,不能改變電平狀態(tài),這樣才能有效傳輸,在時(shí)鐘線(xiàn)SCL為低電平的時(shí)候,數(shù)據(jù)線(xiàn)SDA可以改變狀態(tài),即:在SCL為高電平的時(shí)候,數(shù)據(jù)線(xiàn)SDA如果為高,那么傳送的就是1,如果SDA為低,那么傳送的就是0,在SCL為低電平的時(shí)候,你可以改變數(shù)據(jù)可以把數(shù)據(jù)變?yōu)?/1(圖中紅框交叉就表示數(shù)據(jù)的改變,從1變?yōu)? 從0變?yōu)?所以有了一個(gè)上升沿或者一個(gè)下降沿)。
在SCL的第9個(gè)時(shí)鐘位,對(duì)應(yīng)的SDA數(shù)據(jù)為應(yīng)答數(shù)據(jù),應(yīng)答數(shù)據(jù)是有方向的,可以是主設(shè)備應(yīng)答,可以是從設(shè)備應(yīng)答,應(yīng)答不是固定的,可以是低電平為應(yīng)答,也可以是高電平應(yīng)答,高應(yīng)答或者低應(yīng)答是由通信協(xié)議決定的,只要約定一個(gè)信號(hào)作為應(yīng)答就可以了,主機(jī)給從機(jī)發(fā)送數(shù)據(jù),從機(jī)接到了應(yīng)答主機(jī),從機(jī)給主機(jī)發(fā)送數(shù)據(jù),主機(jī)接到了,主機(jī)就要應(yīng)答,這樣就形成了一個(gè)閉環(huán)。
以上就是一個(gè)標(biāo)準(zhǔn)的IIC通信標(biāo)準(zhǔn)規(guī)范,你清楚了嗎?
責(zé)任編輯:haq
-
通信
+關(guān)注
關(guān)注
18文章
6206瀏覽量
137813 -
總線(xiàn)
+關(guān)注
關(guān)注
10文章
2959瀏覽量
89754 -
I2C
+關(guān)注
關(guān)注
28文章
1541瀏覽量
127834
原文標(biāo)題:你知道I2C為什么要接上拉嗎?
文章出處:【微信號(hào):gh_e7f294a514ca,微信公眾號(hào):?jiǎn)纹瑱C(jī)匠人】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
歐洲電信標(biāo)準(zhǔn)化協(xié)會(huì)一行到訪(fǎng)中汽中心
智多晶eSPI_Slave IP介紹

TNC 連接器:標(biāo)準(zhǔn)規(guī)范構(gòu)建射頻連接基石

提升焊接可靠性!PCB焊盤(pán)設(shè)計(jì)標(biāo)準(zhǔn)與規(guī)范詳解
電壓互感器的標(biāo)準(zhǔn)和規(guī)范
SMA連接器的國(guó)家標(biāo)準(zhǔn)規(guī)范

MHMF082L32N-MINAS A6 系列 標(biāo)準(zhǔn)規(guī)格書(shū) 松下

FMR52-AAECAABPCJK+AK四線(xiàn)制雷達(dá)料位計(jì)信號(hào)檢測(cè)標(biāo)準(zhǔn)規(guī)范
北美運(yùn)營(yíng)商PTCRB認(rèn)證測(cè)試標(biāo)準(zhǔn)詳解

物聯(lián)網(wǎng)設(shè)備的標(biāo)準(zhǔn)與規(guī)范
MHMF042L32N-MINAS A6 系列 標(biāo)準(zhǔn)規(guī)格書(shū) 松下

MHMF041L32N-MINAS A6 系列 標(biāo)準(zhǔn)規(guī)格書(shū) 松下

移動(dòng)電源的測(cè)試方法與測(cè)試標(biāo)準(zhǔn)規(guī)范

MHMF022L32N-MINAS A6 系列 標(biāo)準(zhǔn)規(guī)格書(shū) 松下

MHMF021L32N-MINAS A6 系列 標(biāo)準(zhǔn)規(guī)格書(shū) 松下

評(píng)論