<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

面試遇到再不怕了:IIC協議

朱老師物聯網大講堂 ? 2024-04-29 08:10 ? 次閱讀

I2C(Inter-Integrated Circuit),有時也稱為IIC或TWI(Two-Wire Interface),是一種用于低速度串行通信的總線協議,主要用于連接微控制器與其外圍設備,如傳感器、EEPROM、RTC(實時時鐘)等。I2C 由飛利浦半導體(現今的恩智浦半導體)在1980年代初期開發。

I2C 通信僅需兩根線:

SDA(Serial Data):數據線,用于數據的雙向傳輸。

SCL(Serial Clock):時鐘線,用于同步信號。

I2C 協議的特點包括:

主從架構:

在I2C總線上,任何設備都可以是主設備或從設備。主設備負責生成時鐘信號和控制總線,而從設備接收主設備的指令。通常,微控制器充當主設備的角色。

支持多主設備和多從設備:

I2C 總線允許多個主設備和多個從設備共存,每個設備都有唯一的地址。在多主模式下,各主設備需要通過一定的仲裁機制來協調對總線的訪問。

地址和數據傳輸:

在I2C通信中,數據傳輸是通過發送設備地址加讀寫位開始的,隨后跟隨的是數據傳輸。如果有多個從設備,主設備通過地址來指定與之通信的從設備。

同步:

I2C是一種同步協議,意味著數據的傳輸是由時鐘信號(SCL線)來控制的。

I2C 協議的優點是簡單、成本低且靈活,只需兩根線就能連接多個設備。不足之處是速度相比SPI和UART較慢,且總線長度有限制,隨著連接的設備數量增加,可能會影響通信速度和可靠性。

e734825e-05bc-11ef-9118-92fbcf53809c.pnge74733b8-05bc-11ef-9118-92fbcf53809c.png

一、IIC的通信流程

e75acc98-05bc-11ef-9118-92fbcf53809c.png

e76b5c84-05bc-11ef-9118-92fbcf53809c.png

啟動信號:

通信開始時,主設備發出啟動信號。這通過將數據線(SDA)從高電平拉低,而時鐘線(SCL)保持在高電平來實現。這個動作通知所有從設備主設備即將開始通信。

發送設備地址及讀寫位:

緊接著啟動信號,主設備發送從設備的地址以及操作位(讀/寫)到數據線上。每個從設備都有一個唯一的地址。讀寫位決定了操作是讀數據(通常設為1)還是寫數據(通常設為0)。

從設備應答:

地址和讀寫位發送完畢后,被尋址的從設備需要通過發送一個應答信號(ACK)來響應。應答信號是在數據線(SDA)上產生一個低電平信號,同時時鐘線(SCL)為高電平。

數據傳輸:

成功建立連接和從設備應答之后,數據可以開始傳輸。數據是按字節傳輸的,每傳輸完一個字節后,接收方(無論是主設備還是從設備)都需要發送一個應答信號(ACK)。

停止信號:

數據傳輸完成后,主設備發出一個停止信號來終止通信。這通過將數據線(SDA)從低電平拉高,而時鐘線(SCL)保持在高電平來實現,標志著一次I2C交流的結束。

e734825e-05bc-11ef-9118-92fbcf53809c.pnge74733b8-05bc-11ef-9118-92fbcf53809c.png

二、發送1bit數據的流程

e7a904da-05bc-11ef-9118-92fbcf53809c.png

主設備首先確保時鐘線SCL處于高電平狀態。

然后,主設備會將要發送的比特數據設置在數據線SDA上。如果發送的是‘1’比特,SDA線會被設置為高電平;如果發送的是‘0’比特,SDA線會被設置為低電平。SDA線上的數據必須在SCL線的一個時鐘脈沖開始之前穩定。

在數據線SDA穩定后,主設備通過將時鐘線SCL從高電平拉低到低電平,來通知從設備數據線上的數據可以被讀取。從設備在SCL線為高電平的時候讀取SDA線上的數據。

完成這個數據位的傳輸后,主設備通常會將時鐘線SCL恢復到高電平,準備發送下一個比特或產生一個停止條件以結束通信。

重要的是,在SCL線為高電平期間,數據線SDA上的數據必須保持穩定,因為任何在SCL高電平時的SDA變化都可能被視為控制信號(例如啟動或停止條件)。

e734825e-05bc-11ef-9118-92fbcf53809c.pnge74733b8-05bc-11ef-9118-92fbcf53809c.png

三、IIC需要外接上拉電阻

e75acc98-05bc-11ef-9118-92fbcf53809c.png

e7ffdaa8-05bc-11ef-9118-92fbcf53809c.png

e8222018-05bc-11ef-9118-92fbcf53809c.png

I2C總線的設計是開漏(open-drain)或開集(open-collector)輸出,這意味著連接到總線的設備能夠將總線拉低到地(GND),但是不能將總線推高至電源電壓(Vcc)。

上拉電阻的作用主要包括以下幾點:

提供拉高電平:

設備將總線釋放時,上拉電阻將SDA和SCL線拉高到正邏輯電平(通常是Vcc),確保線路在非驅動狀態時為高電平。

限制電流

當總線設備將SDA或SCL線拉低時,上拉電阻起到限流的作用,防止電流過大導致設備損壞。

防止總線沖突:

多個設備可能會同時嘗試控制總線。由于開漏設計,任何設備都可以安全地將總線拉低而不會對其他設備造成傷害。上拉電阻確保了在這種情況下不會出現短路。

增強信號完整性:

上拉電阻也有助于維護信號的完整性,減少因為長線路或者其他電氣特性引起的信號退化。

選擇合適的上拉電阻值是很重要的。電阻值太大,電流太小,導致總線拉高速度變慢,影響通信速率;電阻值太小,可能導致電流過大,浪費功率,且拉低總線時可能會對設備造成損害。通常,上拉電阻的選擇取決于總線容量(總線上設備的數量和總線長度)和系統工作的電源電壓。常見的電阻值范圍從1.8kΩ到10kΩ不等。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    15239

    瀏覽量

    171222
  • I2C
    I2C
    +關注

    關注

    28

    文章

    1348

    瀏覽量

    120879
  • IIC協議
    +關注

    關注

    0

    文章

    15

    瀏覽量

    3863
收藏 人收藏

    評論

    相關推薦

    FPGA實現IIC協議的設計

    今天給大家帶來的是IIC通信,IIC協議應用非常廣泛,例如與MPU6050進行通信,配置OV5640攝像頭、驅動OLED屏幕等等,都需要使用到IIC
    的頭像 發表于 03-04 10:49 ?581次閱讀
    FPGA實現<b class='flag-5'>IIC</b><b class='flag-5'>協議</b>的設計

    STM32的IIC協議

    今天在使用STM32讀取6050數據時發現了一個問題,為什么戰艦,野火的視頻中都使用模擬的IIC協議,而不使用自動的IIC協議???經過多方查詢了解到STM32為了規避飛利浦專利的問題
    發表于 11-20 22:09

    什么是IIC和SPI總線協議?

    通信協議非常適合近距離低速芯片間通信。Philips(for IIC)和Motorola(for SPI) 出于不同背景和市場需求制定了這兩種標準通信協議。
    發表于 10-21 07:25

    STM32的IIC協議簡介

    文章目錄(一)IIC協議簡介(二)物理層和協議層簡介(三)IIC物理層:3.1、物理層的特點(四)IIC
    發表于 01-05 06:13

    IIC協議軟件模擬方法

    關于iic協議和對AT24C16進行讀寫數據的代碼解讀認識IIC協議IIC協議軟件模擬方法功能快
    發表于 02-09 07:00

    IIC協議的相關資料下載

    關于MPU6050學習的一些總結之二IIC協議前言一、IIC總線前言在查閱并了解了MPU6050的芯片手冊后,已經對MPU6050有了大致的了解。那么接下來如何使MPU6050工作并且讀取內部寄存器
    發表于 02-10 06:02

    IIC協議是如何進行通信的呢

    IIC協議是什么?IIC協議用來干什么?IIC協議是如何進行通信的呢?
    發表于 02-10 07:07

    如何使用代碼實現的IIC協議

    1. 綜述  由上篇博客可知道IIC協議如何用代碼實現,本篇博客就不涉及協議內容,只講解如何使用?! ”敬蔚膶嶒瀭鞲袨椋篋S3231(時鐘模塊),對于時鐘模塊的具體信息我也就不多介紹,大家可以自行度
    發表于 02-21 06:36

    IIC總線協議

    IIC總線協議,感興趣的小伙伴們可以看看。
    發表于 07-26 16:29 ?57次下載

    IIC總線協議中文版

    IIC協議的介紹,中文版,易懂,可以在里面了解到IIC是何物,如何使用以及定義
    發表于 08-09 15:08 ?0次下載

    支付寶宣布電子結婚證,出門辦事忘帶證件也不怕了

    此前,支付寶宣布,已有5省市上線電子結婚證。福建、江西、江蘇、浙江、重慶5省市首批支持,出門辦事忘帶證件也不怕了。
    的頭像 發表于 08-20 10:41 ?2805次閱讀

    IIC協議超詳細解釋(適合小白入門)

    以下內容,將解釋以下幾個問題1.IIC協議是什么?2.IIC協議用來干什么?3.IIC協議的通信
    發表于 12-07 14:21 ?5次下載
    <b class='flag-5'>IIC</b><b class='flag-5'>協議</b>超詳細解釋(適合小白入門)

    振弦采集模塊的通訊協議IIC

    振弦采集模塊的通訊協議IICIIC 通訊協議本身即是基于設備地址和寄存器的物理層通訊協議, VMXXX 使用
    的頭像 發表于 11-17 10:02 ?557次閱讀
    振弦采集模塊的通訊<b class='flag-5'>協議</b>( <b class='flag-5'>IIC</b>)

    什么是IIC協議

    IIC協議最早1982年由飛利浦公司設計開發,是一種兩線制(SDA + SCL)的串行通行方式,提供了主從機之間通行的一種方案,在今天也是被廣泛的應用在很多的產品設備上。
    的頭像 發表于 02-10 10:53 ?3008次閱讀
    什么是<b class='flag-5'>IIC</b><b class='flag-5'>協議</b>

    IIC通訊協議的電路設計

    前面我們概述過一些常見的通訊協議,本文著重講講關于IIC協議。
    的頭像 發表于 04-19 11:00 ?1339次閱讀
    <b class='flag-5'>IIC</b>通訊<b class='flag-5'>協議</b>的電路設計
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>