那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

關于I2C協議介紹

CHANBAEK ? 來源:魚香ROS ? 作者:小魚 ? 2023-07-13 15:04 ? 次閱讀

你好,我是愛吃魚香ROS的小魚。本節主要介紹I2C協議,并將其主要特點拎出來和大家說說。

教程所使用硬件平臺為MicroROS學習板V1.0.0,可點擊閱讀原文購買及查看詳情

圖片

網上關于I2C協議介紹的有很多,但大都非常細致,將高低電平數據協議等等都介紹了,但新手學習時不用關注那么多底層的東西,比起了解通信原理,了解它是什么,怎么用對我們更加重要。

一、I2C是一種總線通訊協議

和之前我們介紹的串口通信類似,I2C也是一種通信協議。但它是一種總線通訊協議,也就是說,一個I2C可以連接多個設備,物理連接上像這樣。

圖片

那它串的設備數量有沒有上限呢?有的,上限是127個。

那為什么我們都是用18和19來驅動OLED和MPU6050呢?原因很簡單,他們都是連在同一跟線上。

上原理圖

圖片

ESP32這種引腳資源匱乏的單片機,引腳的復用就顯得很重要了,這里我們就將OLED和MPU6050都接在同一個I2C上,減少引腳占用。

二、I2C是一種兩線協議

在上幾節我們驅動OLED和IMU的時候,都導入了"Wire.h",這個就是Arudino提供的好的頭文件。我們使用的Wire的定義如下

TwoWire Wire = TwoWire(0);

TwoWire也就是兩線的意思,兩線也就是一個是SCL,一個是SDA

SCL即時鐘線,以一個固定的周期進行電平變換,SDA即數據線,用于數據的傳輸,這樣說有些抽象,小魚用邏輯分析儀 截取了一段OLED初始化時的SCl(GPIO18)和SDA(GPIO19)上的電平變化 ,并分析出其對應的數據。

圖片

再放大一些看

圖片

可以直觀的看到SCL在數據傳輸開始前一直保持高電平,SDA變成了低電平,這意為著數據傳輸的開始,也就是那個綠點的地方。

根據I2C協議規定:SCL處于高電平時,SDA由高到低變化,這種信號是起始信號。

繼續觀察,你會發現,在 傳輸過程中SCL引腳電平在以一個固定的周期來回跳變 ,從機這邊 當檢測到SCL電平跳變后就開始讀取SDA上的的電平,高記為1,低記為0 。所以你可以看到邏輯分析儀檢測到 八個上升箭頭,一共傳輸了八位數據,這八位數據用16進制表示就是0X3C 。

0X3C是什么,就是我們OLED的設備地址,所以這段信號的意思就是,我接下來要給0X3C的設備發數據了,請編號為0X3C的設備準備接收。

這個信號會被0X3C的設備接收和處理,而同一總線上ID非0X3C的接收到數據后就會將其扔掉,這就是I2C支持多個設備的核心原因。

在我們的開發板上,OLED的默認地址為:0X3C,IMU的默認地址為:0x68

附件:OLED初始化時I2C引腳數據圖

圖片

從該表可以看出,數據從905ms開始,到907ms完成了初始化數據的傳輸,下一節我們將按照這個數據傳輸內容編寫代碼,初始化OLED。

三、I2C是一種半雙工協議

上面我們仔細分析了I2C協議,SCL用于周期的變換,SDA用于傳輸數據,所以同一時間,SDA要么用于接收,要么用于發送。所以我們可以得到I2C是一種半雙工協議,同一時間只能進行接收或發送。

四、總結

本節小魚帶你從I2C協議信號入手,詳細介紹了I2C數據的特點,如果你手頭也有邏輯分析工具,也可以嘗試進行分析,開發板設計的也非常人性化,你可以這樣隨手拿幾個杜邦線就可以接入進行測量。

圖片

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

    關注

    10

    文章

    2903

    瀏覽量

    88390
  • 串口通信
    +關注

    關注

    34

    文章

    1627

    瀏覽量

    55728
  • 通訊協議
    +關注

    關注

    10

    文章

    279

    瀏覽量

    20434
  • I2C協議
    +關注

    關注

    0

    文章

    26

    瀏覽量

    8526
  • ROS
    ROS
    +關注

    關注

    1

    文章

    280

    瀏覽量

    17095
收藏 人收藏

    評論

    相關推薦

    I2C協議介紹

    文章目錄I2C 調查標準I2C協議介紹I2C時序介紹起始信號停止信號重啟信號總線閑信號總線忙信號
    發表于 01-20 08:04

    I2C總線協議及其應用(圖)

    I2C總線協議及其應用
    發表于 06-01 20:22 ?7044次閱讀

    什么是i2c總線

    什么是i2c總線  下載請點擊: i2c總線協議中文版 
    發表于 11-05 09:26 ?2945次閱讀

    I2C總線協議及其應用

    I2C總線協議及其應用 一、I2C總線介紹: ---- 由于大規模集成電路技術的發展,在單個芯片集成CPU以及組成一個單獨工作系統
    發表于 02-08 11:23 ?1582次閱讀
    <b class='flag-5'>I2C</b>總線<b class='flag-5'>協議</b>及其應用

    I2C最新協議標準

    I2C最新協議標準,詳細介紹了IIC信號要求,供大家參考,
    發表于 12-22 17:59 ?13次下載

    I2C通信協議應該如何學習

    我最近剛做完I2C通信協議的編寫與調試,下面介紹一下我從一開始理解夏老師的程序,修改程序,直到下板調試整個的學習過程,希望對大家學習 I2C 有一定的幫助。一、 分析源代碼學習
    發表于 04-28 08:00 ?22次下載
    <b class='flag-5'>I2C</b>通信<b class='flag-5'>協議</b>應該如何學習

    STM32學習之I2C協議(讀寫EEPROM)

    關于STM32學習分享第七章 I2C協議(讀寫EEPROM)文章目錄關于STM32學習分享前言二、代碼1.i2c.c2.i2c.h3.main.c
    發表于 11-30 15:21 ?32次下載
    STM32學習之<b class='flag-5'>I2C</b><b class='flag-5'>協議</b>(讀寫EEPROM)

    MPU6050的I2C通信協議

    不同硬件有不同的I2C協議
    發表于 12-06 12:21 ?3次下載
    MPU6050的<b class='flag-5'>I2C</b>通信<b class='flag-5'>協議</b>

    嵌入式內核及驅動開發-09IIC子系統框架使用(I2C協議和時序,I2C驅動框架,I2C從設備驅動開發,MPU6050硬件連接

    文章目錄I2c協議和時序I2c介紹I2c硬件連接I2c總線的信號
    發表于 12-06 14:06 ?17次下載
    嵌入式內核及驅動開發-09IIC子系統框架使用(<b class='flag-5'>I2C</b><b class='flag-5'>協議</b>和時序,<b class='flag-5'>I2C</b>驅動框架,<b class='flag-5'>I2C</b>從設備驅動開發,MPU6050硬件連接

    硬件I2C與模擬I2C

    配置;而軟件I2C是沒有寄存器這個概念的。 軟件I2C一般是使用GPIO管腳,用軟件控制SCL,SDA線輸出高低電平,模擬i2c協議的時序。例如下面這段
    發表于 12-28 19:14 ?81次下載
    硬件<b class='flag-5'>I2C</b>與模擬<b class='flag-5'>I2C</b>

    一文看懂I2C協議

    電子行業最常用的3種串行通訊協議:UART、SPI和I2C。前面介紹了串口通訊協議及其FPGA實現,SPI協議。本篇文章
    發表于 01-25 18:32 ?40次下載
    一文看懂<b class='flag-5'>I2C</b><b class='flag-5'>協議</b>

    I2C通信協議:了解I2C Primer、 PMBus和SMBus

    I2C,即Inter-Integrated Circuit,是一種常用的串行通信協議,用于在器件之間——特別是兩個或兩個以上不同電路之間建立通信。I2C Primer是最常用的I2C
    的頭像 發表于 06-15 15:29 ?6067次閱讀
    <b class='flag-5'>I2C</b>通信<b class='flag-5'>協議</b>:了解<b class='flag-5'>I2C</b> Primer、 PMBus和SMBus

    使用I2C協議點亮OLED

    你好,我是愛吃魚香ROS的小魚。本節我們就嘗試直接使用I2C協議來點亮OLED,因為主要測試I2C協議,所以對于復雜的顯示處理部分小魚就略過了,畢竟有方便的開源庫使用,我們也不用那么糾
    的頭像 發表于 07-15 16:47 ?2073次閱讀
    使用<b class='flag-5'>I2C</b><b class='flag-5'>協議</b>點亮OLED

    I2C串行總線協議是什么?I2C總線有哪些優點?

    I2C串行總線協議是什么?I2C總線有哪些優點? I2C(Inter-Integrated Circuit)是一種串行總線協議,由Phili
    的頭像 發表于 09-12 11:18 ?1810次閱讀

    I2C協議的基礎知識

    本文從I2C協議的概述開始,描述協議的歷史、不同速度模式、物理層和數據幀結構,最后介紹I2C混合電壓系統中電平兼容性以及上拉電阻大小計算。
    的頭像 發表于 10-22 15:51 ?686次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>協議</b>的基礎知識
    株洲县| 百家乐官网桌定制| 全讯网123| 摩纳哥百家乐的玩法技巧和规则| 澳门百家乐登陆网址| 百家乐官网追号软件| 百家乐官网任你博赌场娱乐网规则 | 迪士尼百家乐官网的玩法技巧和规则| 百家乐官网大西洋城v| 百家乐官网10个人| 百家乐官网平台开户哪里优惠多 | 百家乐破解赌戏玩| 百家乐技巧-百家乐开户指定代理网址| 澳门百家乐打法百家乐破解方法| 至尊百家乐20111110| 黄金城百家乐游戏| 百家乐破解辅助| 百家乐赢钱战略| 百家乐技巧发布| 百家乐登封代理| 利记百家乐现金网| 百家乐视频游戏帐号| 百家乐电脑上怎么赌| 澳门百家乐官方网址| 什么是百家乐赌博| 狮威百家乐娱乐场| 斗地主百家乐的玩法技巧和规则| 皇冠百家乐的玩法技巧和规则| 皇家百家乐出租平台| 骰子百家乐的玩法技巧和规则| 百家乐老千| 新全讯网carrui| 老虎机的规律| 大发888官网游| 新世纪娱乐城信誉怎么样| 豪门国际| 小金县| 真人百家乐官网是骗局| 百家乐官网视频游戏世界| 邯郸百家乐官网园真钱区| 百家乐官网扑克发牌器|