0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

I2C總線協(xié)議操作介紹

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2022-02-09 14:08 ? 次閱讀

I2C 總線在物理連接上非常簡單,分別由SDA(串行數(shù)據(jù)線)和SCL(串行時鐘線)及上拉電阻組成。通信原理是通過對SCL和SDA線高低電平時序的控制,來 產(chǎn)生I2C總線協(xié)議所需要的信號進行數(shù)據(jù)的傳遞。在總線空閑狀態(tài)時,這兩根線一般被上面所接的上拉電阻拉高,保持著高電平。

I2C總線特征

I2C總線上的每一個設(shè)備都可以作為主設(shè)備或者從設(shè)備,而且每一個設(shè)備都會對應(yīng)一個唯一的地址(可以從I2C器件的數(shù)據(jù)手冊得知),主從設(shè)備之間就通過這 個地址來確定與哪個器件進行通信,在通常的應(yīng)用中,我們把CPU帶I2C總線接口的模塊作為主設(shè)備,把掛接在總線上的其他設(shè)備都作為從設(shè)備。

I2C總線上可掛接的設(shè)備數(shù)量受總線的最大電容400pF 限制,如果所掛接的是相同型號的器件,則還受器件地址位的限制。

I2C總線數(shù)據(jù)傳輸速率在標(biāo)準(zhǔn)模式下可達100kbit/s,快速模式下可達400kbit/s,高速模式下可達3.4Mbit/s。一般通過I2C總線接口可編程時鐘來實現(xiàn)傳輸速率的調(diào)整,同時也跟所接的上拉電阻的阻值有關(guān)。

I2C總線上的主設(shè)備與從設(shè)備之間以字節(jié)(8位)為單位進行雙向的數(shù)據(jù)傳輸。

I2C總線協(xié)議

I2C協(xié)議規(guī)定,總線上數(shù)據(jù)的傳輸必須以一個起始信號作為開始條件,以一個結(jié)束信號作為傳輸?shù)耐V箺l件。起始和結(jié)束信號總是由主設(shè)備產(chǎn)生??偩€在空閑狀態(tài) 時,SCL和SDA都保持著高電平,當(dāng)SCL為高電平而SDA由高到低的跳變,表示產(chǎn)生一個起始條件;當(dāng)SCL為高而SDA由低到高的跳變,表示產(chǎn)生一個 停止條件。在起始條件產(chǎn)生后,總線處于忙狀態(tài),由本次數(shù)據(jù)傳輸?shù)闹鲝脑O(shè)備獨占,其他I2C器件無法訪問總線;而在停止條件產(chǎn)生后,本次數(shù)據(jù)傳輸?shù)闹鲝脑O(shè)備 將釋放總線,總線再次處于空閑狀態(tài)。如圖所示:

在了解起始條件和停止條件后,我們再來看看在這個過程中數(shù)據(jù)的傳輸是如何進行的。前面我們已經(jīng)提到過,數(shù)據(jù)傳輸以字節(jié)為單位。主設(shè)備在SCL線上產(chǎn)生每個 時鐘脈沖的過程中將在SDA線上傳輸一個數(shù)據(jù)位,當(dāng)一個字節(jié)按數(shù)據(jù)位從高位到低位的順序傳輸完后,緊接著從設(shè)備將拉低SDA線,回傳給主設(shè)備一個應(yīng)答位, 此時才認為一個字節(jié)真正的被傳輸完成。當(dāng)然,并不是所有的字節(jié)傳輸都必須有一個應(yīng)答位,比如:當(dāng)從設(shè)備不能再接收主設(shè)備發(fā)送的數(shù)據(jù)時,從設(shè)備將回傳一個否 定應(yīng)答位。數(shù)據(jù)傳輸?shù)倪^程如圖所示:

在前面我們還提到過,I2C總線上的每一個設(shè)備都對應(yīng)一個唯一的地址,主從設(shè)備之間的數(shù)據(jù)傳輸是建立在地址的基礎(chǔ)上,也就是說,主設(shè)備在傳輸有效數(shù)據(jù)之前 要先指定從設(shè)備的地址,地址指定的過程和上面數(shù)據(jù)傳輸?shù)倪^程一樣,只不過大多數(shù)從設(shè)備的地址是7位的,然后協(xié)議規(guī)定再給地址添加一個最低位用來表示接下來 數(shù)據(jù)傳輸?shù)姆较颍?表示主設(shè)備向從設(shè)備寫數(shù)據(jù),1表示主設(shè)備向從設(shè)備讀數(shù)據(jù)。如圖所示:

I2C總線操作

對I2C總線的操作實際就是主從設(shè)備之間的讀寫操作。大致可分為以下三種操作情況:

第一,主設(shè)備往從設(shè)備中寫數(shù)據(jù)。數(shù)據(jù)傳輸格式如下:

100052882-107398-5.png

第二,主設(shè)備從從設(shè)備中讀數(shù)據(jù)。數(shù)據(jù)傳輸格式如下:

100052882-107399-6.png

第三,主設(shè)備往從設(shè)備中寫數(shù)據(jù),然后重啟起始條件,緊接著從從設(shè)備中讀取數(shù)據(jù);或者是主設(shè)備從從設(shè)備中讀數(shù)據(jù),然后重啟起始條件,緊接著主設(shè)備往從設(shè)備中寫數(shù)據(jù)。這種操作在單個主設(shè)備系統(tǒng)中,重復(fù)的開啟起始條件機制要比用STOP終止傳輸后又再次開啟總線更有效率。數(shù)據(jù)傳輸格式如下:

100052882-107400-7.png

審核編輯:何安

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • I2C總線
    +關(guān)注

    關(guān)注

    8

    文章

    391

    瀏覽量

    60944
收藏 人收藏

    評論

    相關(guān)推薦

    I2C總線上拉電阻阻值如何確定?

    導(dǎo)讀I2C總線在產(chǎn)品設(shè)計中被廣泛應(yīng)用,盡管其結(jié)構(gòu)簡單,但經(jīng)常發(fā)生上拉電阻設(shè)計不合理的問題。本文將對I2C上拉電阻的選擇進行簡要分析。一根信號線上,通過電阻連接一個固定的高電平VCC,信號線初始、空閑
    的頭像 發(fā)表于 12-27 11:34 ?505次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>總線</b>上拉電阻阻值如何確定?

    I2C總線為什么要接上拉電阻

    I2C為什么要接上拉電阻?因為它是開漏輸出。 為什么是開漏輸出? I2C協(xié)議支持多個主設(shè)備與多個從設(shè)備在一條總線上,如果不用開漏輸出,而用推挽輸出,會出現(xiàn)主設(shè)備之間短路的情況。所以
    的頭像 發(fā)表于 11-20 10:07 ?474次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>總線</b>為什么要接上拉電阻

    RISC V的I2C操作

    ?雙向IO,需設(shè)置為弱上拉。I2C對應(yīng)的三態(tài)門的OE信號:需要賦值為I2C SDA/SCL的write信號;rtl中的表述如下:主要原因在于:i2c的通信過程中,當(dāng)總線空閑時,兩根線均
    的頭像 發(fā)表于 11-01 11:06 ?206次閱讀

    I2C協(xié)議的基礎(chǔ)知識

    本文從I2C協(xié)議的概述開始,描述協(xié)議的歷史、不同速度模式、物理層和數(shù)據(jù)幀結(jié)構(gòu),最后介紹I2C混合電壓系統(tǒng)中電平兼容性以及上拉電阻大小計算。
    的頭像 發(fā)表于 10-22 15:51 ?509次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>協(xié)議</b>的基礎(chǔ)知識

    詳解I2C總線與SPI總線的區(qū)別

    I2C(Inter-Integrated Circuit)表示集成電路互連,是一種用于線路板內(nèi)部芯片之間通信的總線。
    的頭像 發(fā)表于 10-16 15:16 ?4455次閱讀
    詳解<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>與SPI<b class='flag-5'>總線</b>的區(qū)別

    了解I2C總線

    電子發(fā)燒友網(wǎng)站提供《了解I2C總線.pdf》資料免費下載
    發(fā)表于 10-08 11:13 ?2次下載
    了解<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>

    I2C總線上拉電阻計算

    電子發(fā)燒友網(wǎng)站提供《I2C總線上拉電阻計算.pdf》資料免費下載
    發(fā)表于 10-08 09:54 ?1次下載
    <b class='flag-5'>I2C</b><b class='flag-5'>總線</b>上拉電阻計算

    I2C總線的技術(shù)特性介紹

    在現(xiàn)代電子技術(shù)領(lǐng)域,通信協(xié)議是構(gòu)建智能設(shè)備互聯(lián)互通的基石。I2C總線作為其中的一種重要協(xié)議,由飛利浦公司研發(fā),它以其簡潔高效的通信方式廣泛應(yīng)用于電子設(shè)備之間的短距離數(shù)據(jù)傳輸。
    的頭像 發(fā)表于 09-09 17:11 ?329次閱讀

    簡單認識I2C通信協(xié)議

    I2C(Inter-Integrated Circuit)通信協(xié)議是由飛利浦公司(現(xiàn)為恩智浦半導(dǎo)體)開發(fā)的一種簡單、雙向二線制同步串行總線協(xié)議。自1982年發(fā)布以來,
    的頭像 發(fā)表于 07-25 18:06 ?1473次閱讀

    I2C總線協(xié)議的工作原理和尋址格式

    等特點,在嵌入式系統(tǒng)設(shè)計中得到了廣泛應(yīng)用。本文將詳細介紹I2C總線協(xié)議的工作原理和尋址格式,幫助讀者深入理解該協(xié)議
    的頭像 發(fā)表于 05-27 15:47 ?1775次閱讀

    什么是I2C協(xié)議 I2C總線的控制邏輯

    在實際使用過程中,I2C比較容易出現(xiàn)的一個問題就是死鎖 ,死鎖在I2C中主要表現(xiàn)為:I2C死鎖時表現(xiàn)為SCL為高,SDA一直為低。
    發(fā)表于 03-12 09:17 ?1073次閱讀
    什么是<b class='flag-5'>I2C</b><b class='flag-5'>協(xié)議</b> <b class='flag-5'>I2C</b><b class='flag-5'>總線</b>的控制邏輯

    詳解I2C接口協(xié)議

    I2C總線是由荷蘭皇家飛利浦Philips公司(現(xiàn)恩智浦NXP半導(dǎo)體)開發(fā)的一種簡單的雙向兩線制總線協(xié)議標(biāo)準(zhǔn)。
    發(fā)表于 03-07 10:22 ?2137次閱讀
    詳解<b class='flag-5'>I2C</b>接口<b class='flag-5'>協(xié)議</b>

    藍牙串口通訊總線——I2C/SPI/UART

    Sensor、Touch、藍牙模塊、WIFI模塊等也都兼容這三種通信協(xié)議的1種以上。那么這三條通信總線有什么區(qū)別呢?工業(yè)物聯(lián)網(wǎng)無線通信專業(yè)廠商為您一一細說—— I2C:半雙工、同步、串行傳輸,物理上只有兩根線(SDA/SCL);
    的頭像 發(fā)表于 01-22 09:41 ?1661次閱讀
    藍牙串口通訊<b class='flag-5'>總線</b>——<b class='flag-5'>I2C</b>/SPI/UART