99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

關(guān)于I2C協(xié)議介紹

CHANBAEK ? 來(lái)源:魚香ROS ? 作者:小魚 ? 2023-07-13 15:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

你好,我是愛吃魚香ROS的小魚。本節(jié)主要介紹I2C協(xié)議,并將其主要特點(diǎn)拎出來(lái)和大家說(shuō)說(shuō)。

教程所使用硬件平臺(tái)為MicroROS學(xué)習(xí)板V1.0.0,可點(diǎn)擊閱讀原文購(gòu)買及查看詳情

圖片

網(wǎng)上關(guān)于I2C協(xié)議介紹的有很多,但大都非常細(xì)致,將高低電平數(shù)據(jù)協(xié)議等等都介紹了,但新手學(xué)習(xí)時(shí)不用關(guān)注那么多底層的東西,比起了解通信原理,了解它是什么,怎么用對(duì)我們更加重要。

一、I2C是一種總線通訊協(xié)議

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

圖片

那它串的設(shè)備數(shù)量有沒有上限呢?有的,上限是127個(gè)。

那為什么我們都是用18和19來(lái)驅(qū)動(dòng)OLED和MPU6050呢?原因很簡(jiǎn)單,他們都是連在同一跟線上。

上原理圖

圖片

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

二、I2C是一種兩線協(xié)議

在上幾節(jié)我們驅(qū)動(dòng)OLED和IMU的時(shí)候,都導(dǎo)入了"Wire.h",這個(gè)就是Arudino提供的好的頭文件。我們使用的Wire的定義如下

TwoWire Wire = TwoWire(0);

TwoWire也就是兩線的意思,兩線也就是一個(gè)是SCL,一個(gè)是SDA

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

圖片

再放大一些看

圖片

可以直觀的看到SCL在數(shù)據(jù)傳輸開始前一直保持高電平,SDA變成了低電平,這意為著數(shù)據(jù)傳輸?shù)拈_始,也就是那個(gè)綠點(diǎn)的地方。

根據(jù)I2C協(xié)議規(guī)定:SCL處于高電平時(shí),SDA由高到低變化,這種信號(hào)是起始信號(hào)。

繼續(xù)觀察,你會(huì)發(fā)現(xiàn),在 傳輸過(guò)程中SCL引腳電平在以一個(gè)固定的周期來(lái)回跳變 ,從機(jī)這邊 當(dāng)檢測(cè)到SCL電平跳變后就開始讀取SDA上的的電平,高記為1,低記為0 。所以你可以看到邏輯分析儀檢測(cè)到 八個(gè)上升箭頭,一共傳輸了八位數(shù)據(jù),這八位數(shù)據(jù)用16進(jìn)制表示就是0X3C 。

0X3C是什么,就是我們OLED的設(shè)備地址,所以這段信號(hào)的意思就是,我接下來(lái)要給0X3C的設(shè)備發(fā)數(shù)據(jù)了,請(qǐng)編號(hào)為0X3C的設(shè)備準(zhǔn)備接收。

這個(gè)信號(hào)會(huì)被0X3C的設(shè)備接收和處理,而同一總線上ID非0X3C的接收到數(shù)據(jù)后就會(huì)將其扔掉,這就是I2C支持多個(gè)設(shè)備的核心原因。

在我們的開發(fā)板上,OLED的默認(rèn)地址為:0X3C,IMU的默認(rèn)地址為:0x68

附件:OLED初始化時(shí)I2C引腳數(shù)據(jù)圖

圖片

從該表可以看出,數(shù)據(jù)從905ms開始,到907ms完成了初始化數(shù)據(jù)的傳輸,下一節(jié)我們將按照這個(gè)數(shù)據(jù)傳輸內(nèi)容編寫代碼,初始化OLED。

三、I2C是一種半雙工協(xié)議

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

四、總結(jié)

本節(jié)小魚帶你從I2C協(xié)議信號(hào)入手,詳細(xì)介紹了I2C數(shù)據(jù)的特點(diǎn),如果你手頭也有邏輯分析工具,也可以嘗試進(jìn)行分析,開發(fā)板設(shè)計(jì)的也非常人性化,你可以這樣隨手拿幾個(gè)杜邦線就可以接入進(jìn)行測(cè)量。

圖片

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

    關(guān)注

    10

    文章

    2959

    瀏覽量

    89721
  • 串口通信
    +關(guān)注

    關(guān)注

    34

    文章

    1639

    瀏覽量

    56793
  • 通訊協(xié)議
    +關(guān)注

    關(guān)注

    10

    文章

    289

    瀏覽量

    20843
  • I2C協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    8805
  • ROS
    ROS
    +關(guān)注

    關(guān)注

    1

    文章

    288

    瀏覽量

    17731
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    I2C協(xié)議介紹

    文章目錄I2C 調(diào)查標(biāo)準(zhǔn)I2C協(xié)議介紹I2C時(shí)序介紹起始信號(hào)停止信號(hào)重啟信號(hào)總線閑信號(hào)總線忙信號(hào)
    發(fā)表于 01-20 08:04

    I2C總線協(xié)議及其應(yīng)用(圖)

    I2C總線協(xié)議及其應(yīng)用
    發(fā)表于 06-01 20:22 ?7133次閱讀

    什么是i2c總線

    什么是i2c總線  下載請(qǐng)點(diǎn)擊: i2c總線協(xié)議中文版 
    發(fā)表于 11-05 09:26 ?3060次閱讀

    I2C總線協(xié)議及其應(yīng)用

    I2C總線協(xié)議及其應(yīng)用 一、I2C總線介紹: ---- 由于大規(guī)模集成電路技術(shù)的發(fā)展,在單個(gè)芯片集成CPU以及組成一個(gè)單獨(dú)工作系統(tǒng)
    發(fā)表于 02-08 11:23 ?1656次閱讀
    <b class='flag-5'>I2C</b>總線<b class='flag-5'>協(xié)議</b>及其應(yīng)用

    I2C最新協(xié)議標(biāo)準(zhǔn)

    I2C最新協(xié)議標(biāo)準(zhǔn),詳細(xì)介紹了IIC信號(hào)要求,供大家參考,
    發(fā)表于 12-22 17:59 ?17次下載

    I2C通信協(xié)議應(yīng)該如何學(xué)習(xí)

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

    STM32學(xué)習(xí)之I2C協(xié)議(讀寫EEPROM)

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

    MPU6050的I2C通信協(xié)議

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

    嵌入式內(nèi)核及驅(qū)動(dòng)開發(fā)-09IIC子系統(tǒng)框架使用(I2C協(xié)議和時(shí)序,I2C驅(qū)動(dòng)框架,I2C從設(shè)備驅(qū)動(dòng)開發(fā),MPU6050硬件連接

    文章目錄I2c協(xié)議和時(shí)序I2c介紹I2c硬件連接I2c總線的信號(hào)
    發(fā)表于 12-06 14:06 ?17次下載
    嵌入式內(nèi)核及驅(qū)動(dòng)開發(fā)-09IIC子系統(tǒng)框架使用(<b class='flag-5'>I2C</b><b class='flag-5'>協(xié)議</b>和時(shí)序,<b class='flag-5'>I2C</b>驅(qū)動(dòng)框架,<b class='flag-5'>I2C</b>從設(shè)備驅(qū)動(dòng)開發(fā),MPU6050硬件連接

    硬件I2C與模擬I2C

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

    一文看懂I2C協(xié)議

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

    I2C通信協(xié)議:了解I2C Primer、 PMBus和SMBus

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

    使用I2C協(xié)議點(diǎn)亮OLED

    你好,我是愛吃魚香ROS的小魚。本節(jié)我們就嘗試直接使用I2C協(xié)議來(lái)點(diǎn)亮OLED,因?yàn)橹饕獪y(cè)試I2C協(xié)議,所以對(duì)于復(fù)雜的顯示處理部分小魚就略過(guò)了,畢竟有方便的開源庫(kù)使用,我們也不用那么糾
    的頭像 發(fā)表于 07-15 16:47 ?2589次閱讀
    使用<b class='flag-5'>I2C</b><b class='flag-5'>協(xié)議</b>點(diǎn)亮OLED

    I2C串行總線協(xié)議是什么?I2C總線有哪些優(yōu)點(diǎn)?

    I2C串行總線協(xié)議是什么?I2C總線有哪些優(yōu)點(diǎn)? I2C(Inter-Integrated Circuit)是一種串行總線協(xié)議,由Phili
    的頭像 發(fā)表于 09-12 11:18 ?2360次閱讀

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

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