新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 數(shù)字接口——I2C 總線

數(shù)字接口——I2C 總線

作者: 時(shí)間:2011-03-23 來(lái)源:網(wǎng)絡(luò) 收藏

數(shù)字接口——I2C 總線

了解內(nèi)部集成電路總線(一種基本的低成本互聯(lián)方案)的連接和格式。

內(nèi)置集成電路 (I2C) 總線是一種單端、多主控雙線總線,適合在半雙工模式下進(jìn)行高效的內(nèi)部集成電路通信。該總線使用漏極開(kāi)路技術(shù),因此通過(guò)電阻器連接到 VDD 時(shí)就需要兩根信號(hào)線,分別為串行數(shù)據(jù) (SDA) 線和串行時(shí)鐘線 (SCL),如圖 1 所示。

圖 1 I2C 總線

將線路拉低至接地認(rèn)為是邏輯 0,而使線路浮置則為邏輯 1。通常將這用作通道接入方式。當(dāng) SCL 為低電平時(shí),必將發(fā)生邏輯狀態(tài)變化;當(dāng) SSL 為高電平時(shí),若發(fā)生變化則認(rèn)為是 START 和 STOP 條件。盡管系統(tǒng)允許提供更高或更低的電壓,但典型的電源電壓為 3.3V 和 5V。

I2C 通信采用 7 位地址空間(具有 16 個(gè)預(yù)留地址),因此在同一總線上,理論上最多可以和 112 個(gè)節(jié)點(diǎn)通信。但實(shí)際上,節(jié)點(diǎn)數(shù)會(huì)受到總線上規(guī)定的總體總電容 (400 pF) 限制,從而將通信距離限制為幾米。規(guī)定的信號(hào)傳輸速率為 100 kbit/s(標(biāo)準(zhǔn)模式)、400 kbit/s(快速模式)、1 Mbit/s(快速模式Plus,F(xiàn)M+)和 3.4 Mbit/s(高速模式)。

總線上的節(jié)點(diǎn)有主從之分。主節(jié)點(diǎn)負(fù)責(zé)發(fā)布時(shí)鐘和從節(jié)點(diǎn)地址,并且還開(kāi)始和結(jié)束數(shù)據(jù)處理。從節(jié)點(diǎn)負(fù)責(zé)接收時(shí)鐘和地址,并響應(yīng)來(lái)自主節(jié)點(diǎn)的請(qǐng)求。圖 2 顯示了主從節(jié)點(diǎn)之間典型的數(shù)據(jù)傳送示例。

圖 2 完整的數(shù)據(jù)傳輸時(shí)序圖

主節(jié)點(diǎn)通過(guò)創(chuàng)建一個(gè) START 條件發(fā)布一個(gè)數(shù)據(jù)處理,緊接著發(fā)布希望與其進(jìn)行通信的從節(jié)點(diǎn)的 7 位地址。隨后發(fā)送一個(gè)信號(hào)讀寫(xiě)位,表示主節(jié)點(diǎn)是否愿意寫(xiě)入到從節(jié)點(diǎn) (0) 或者自從節(jié)點(diǎn)讀取 (1)。接下來(lái),主節(jié)點(diǎn)將釋放 SDA 線,以允許從節(jié)點(diǎn)對(duì)數(shù)據(jù)接收作出應(yīng)答。

在第 9 個(gè) SCL 時(shí)鐘脈沖的整個(gè)高電平期間,從節(jié)點(diǎn)通過(guò)將 SDA 拉至低電平以回應(yīng)一個(gè)應(yīng)答位 (ACK),之后主節(jié)點(diǎn)一直處于傳輸或接收模式(根據(jù)發(fā)送的讀寫(xiě)位而定),而從節(jié)點(diǎn)則一直處于對(duì)應(yīng)的互補(bǔ)模式(分別為接收或傳輸)。

發(fā)送地址和 8 位數(shù)據(jù)字節(jié)時(shí)首先發(fā)送最高位 (MSB)。當(dāng) SCL 為高電平時(shí),通過(guò) SDA 由高電平向低電平跳變來(lái)指示 START 位。而當(dāng) SCL 為高電平時(shí),則通過(guò) SDA 由低電平向高電平跳變來(lái)產(chǎn)生 STOP 條件。

當(dāng)主節(jié)點(diǎn)寫(xiě)入到從節(jié)點(diǎn)時(shí),它會(huì)在從節(jié)點(diǎn)發(fā)送 ACK 位時(shí)重復(fù)發(fā)送一個(gè)字節(jié)。在這種情況下,主節(jié)點(diǎn)將處于主傳輸模式,而從節(jié)點(diǎn)則處于從接收模式。當(dāng)主節(jié)點(diǎn)自從節(jié)點(diǎn)讀取時(shí),它會(huì)重復(fù)接收自從節(jié)點(diǎn)的字節(jié),同時(shí)對(duì)每個(gè)字節(jié)的接收作出應(yīng)答 (ACK),但最后一個(gè)字節(jié)除外,請(qǐng)參見(jiàn)圖 3。這種情況下,主節(jié)點(diǎn)將處于主接收模式,而從節(jié)點(diǎn)則處于從傳輸模式。

主節(jié)點(diǎn)將以 STOP 位結(jié)束傳輸,或者可能為進(jìn)行下一步傳輸而發(fā)送另一個(gè) START 位以保持總線控制。

圖 3 數(shù)據(jù)傳輸期間傳輸/接收模式的變化情況

當(dāng)寫(xiě)入到從節(jié)點(diǎn)時(shí),主節(jié)點(diǎn)將主要以傳輸模式運(yùn)行,并且只有自從節(jié)點(diǎn)接收應(yīng)答時(shí)才會(huì)更改為接收模式。

當(dāng)自從節(jié)點(diǎn)讀取時(shí),主節(jié)點(diǎn)將以傳輸模式啟動(dòng),然后在發(fā)送 READ 請(qǐng)求(讀寫(xiě)位=1)到從節(jié)點(diǎn)后會(huì)更改為接收模式。從節(jié)點(diǎn)將一直處于對(duì)應(yīng)的互補(bǔ)模式,直至結(jié)束該任務(wù)。

請(qǐng)注意,主節(jié)點(diǎn)將通過(guò)在最后接收的字節(jié)后面跟隨一個(gè)無(wú)應(yīng)答 (NACK) 來(lái)結(jié)束讀取序列。此步驟會(huì)復(fù)位從狀態(tài)機(jī),并允許主節(jié)點(diǎn)發(fā)送 STOP 命令。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉