91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

I2C總線的通信原理和協(xié)議

GReq_mcu168 ? 來(lái)源:strongerHuang ? 作者:strongerHuang ? 2022-02-14 15:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

I2C是目前使用較多的一種總線,一般用于連接各種從設(shè)備,比如:EEPROM存儲(chǔ)器、溫濕度傳感器、角速度計(jì)等。

掌握I2C算是最基本的技能,初入職場(chǎng)的人有必要系統(tǒng)學(xué)習(xí)一下。

一、I2C簡(jiǎn)史

1980年,飛利浦公司為了讓各種低速設(shè)備(飛利浦芯片)連接起來(lái),就開始著手研發(fā)通信的總線。

1982年,原始版本,使用了100KHz通信速率,提供7位地址,將總線上的器件數(shù)量限制為112(有幾個(gè)保留地址)。

1992年,發(fā)布第一個(gè)規(guī)范,增加了400kHz的快速模式以及擴(kuò)展的10位地址空間。

1998年,隨著技術(shù)的進(jìn)步,通信速率要求越來(lái)越高,達(dá)到了高速3.4 MHz,再到后面升級(jí)至5MHz,同時(shí)使用差分信號(hào)以改進(jìn)抗噪聲能力等。

I2C版本歷史:

I2C總線的通信原理和協(xié)議

額外說(shuō)一下SMBus:

1995年,英特爾在I2C基礎(chǔ)上推出了一種變體稱為“系統(tǒng)管理總線”(SMBus)。SMBus是一種更嚴(yán)格控制的格式,旨在最大限度地提高PC主板上支持IC之間通信的可預(yù)測(cè)性。

SMBus之間最顯著的區(qū)別在于它將速度限制在10kHz至100kHz之間,而I2C則可以支持0kHz至5MHz的器件。

二、I2C基礎(chǔ)內(nèi)容

I2C:Inter-Integrated Circuit,字面意思是集成電路之間,是I2C Bus簡(jiǎn)稱。

I2C只需要兩根電線,這兩根線最多可支持1008個(gè)從設(shè)備,實(shí)現(xiàn)同步串行通信。

與SPI不同的是,I2C可以支持多主機(jī),多從機(jī)的總線。

I2C總線的通信原理和協(xié)議

1.I2C兩線信號(hào)

每個(gè)I2C總線由兩個(gè)信號(hào)組成:SCL時(shí)鐘信號(hào),SDA數(shù)據(jù)信號(hào)。時(shí)鐘信號(hào)總是由當(dāng)前總線主機(jī)產(chǎn)生。

UART、SPI不同,I 2 C總線驅(qū)動(dòng)器是開漏(不了解開漏的請(qǐng)自行百度),意思是它們可以將相應(yīng)的信號(hào)線拉低,但不能將其驅(qū)動(dòng)為高電平。

每條信號(hào)線上都有一個(gè)上拉電阻,當(dāng)沒(méi)有器件將其置為低電平時(shí),將信號(hào)恢復(fù)為高電平。

I2C總線的通信原理和協(xié)議

2.信號(hào)電平

通常,I2C總線信號(hào)電平5V、3.3V居多,如果總線上器件兼容這兩種電平,可以直接使用。

如果信號(hào)電壓相差很大(比如5V和2.5V),或者電平不兼容,就需要進(jìn)行電平轉(zhuǎn)換才行。

三、I2C協(xié)議

I2C對(duì)初學(xué)者來(lái)說(shuō),難點(diǎn)就在于理解其中協(xié)議,下面從幾個(gè)簡(jiǎn)單角度說(shuō)一下。

1.收發(fā)基本原理

I2C的兩個(gè)總線:SCL時(shí)鐘信號(hào),SDA數(shù)據(jù)信號(hào)。SCL由主機(jī)產(chǎn)生,SDA由主機(jī)或者從機(jī)產(chǎn)生。

I2C是同步串行通信,同時(shí)它屬于半雙工,也就是說(shuō)同一時(shí)間SDA只能由一個(gè)設(shè)備發(fā)送信號(hào)。

這樣,你就會(huì)發(fā)現(xiàn),SDA上的信號(hào)(數(shù)據(jù)),有時(shí)候是主機(jī)的,有時(shí)候是從機(jī)的。

2.基本協(xié)議:7/10位地址

I2C支持7位地址和10位地址,消息主要分為兩種:地址和數(shù)據(jù)。

7位地址:

I2C總線的通信原理和協(xié)議

10位地址:

I2C總線的通信原理和協(xié)議

除了地址和數(shù)據(jù),還有開始條件、停止條件、讀寫,以及應(yīng)答信息(上圖小字描述)。

3.開始和停止

SDA數(shù)據(jù)線由高 -> 低 為總線開始條件;

SDA數(shù)據(jù)線由低 -> 高 為總線結(jié)束條件;

I2C總線的通信原理和協(xié)議

4.應(yīng)答(ACK)和非應(yīng)答(ACK)

應(yīng)答和非應(yīng)答發(fā)生在每個(gè)字節(jié)之后,是由接收方向發(fā)送方發(fā)出確認(rèn)信號(hào),表明“數(shù)據(jù)”已成功接收,并且可以繼續(xù)發(fā)送下一字節(jié)數(shù)據(jù)。

I2C總線的通信原理和協(xié)議

應(yīng)答有很多種情況,初學(xué)者可以參考協(xié)議手冊(cè),里面有詳細(xì)講述。

5.更多協(xié)議內(nèi)容

I2C協(xié)議手冊(cè)地址

原文標(biāo)題:I2C很簡(jiǎn)單,但很多人都不了解它的通信原理和協(xié)議

文章出處:【微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:湯梓紅

聲明:本文內(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)注

    18

    文章

    6391

    瀏覽量

    140039
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    3040

    瀏覽量

    91660
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1556

    瀏覽量

    131226

原文標(biāo)題:I2C很簡(jiǎn)單,但很多人都不了解它的通信原理和協(xié)議

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    I2C總線-通信線纜長(zhǎng)度的影響及改進(jìn)措施

    I2C總線確實(shí)不適合遠(yuǎn)距離通信,尤其是需要使用線纜與I2C接口器件進(jìn)行通信,這里的“不適合”并不是說(shuō)不可以,這也是本文的重點(diǎn)。一般使用
    發(fā)表于 01-21 06:03

    I2C 為什么只要兩根線就能搞定通信?

    到目前為止,我們已經(jīng)討論了SPI通信和UART通信的基礎(chǔ)知識(shí),現(xiàn)在讓我們討論本系列的最后一個(gè)協(xié)議,即集成電路間協(xié)議I2C)。如果您曾經(jīng)構(gòu)建
    的頭像 發(fā)表于 01-04 09:14 ?1627次閱讀
    <b class='flag-5'>I2C</b> 為什么只要兩根線就能搞定<b class='flag-5'>通信</b>?

    P82B715:I2C總線擴(kuò)展的得力助手

    P82B715:I2C總線擴(kuò)展的得力助手 在電子設(shè)計(jì)領(lǐng)域,I2C總線是一種常用的通信協(xié)議,但它的總線
    的頭像 發(fā)表于 12-26 10:20 ?695次閱讀

    基于FPGA的I2C通信協(xié)議設(shè)計(jì)

    I2C(Inter-Integrated Circuit)是一種由飛利浦半導(dǎo)體(現(xiàn)為恩智浦半導(dǎo)體)在1980年代初開發(fā)的同步、串行、半雙工的總線通信協(xié)議。主要用于近距離(同一塊印刷電路板(PCB
    的頭像 發(fā)表于 12-26 09:44 ?6128次閱讀
    基于FPGA的<b class='flag-5'>I2C</b><b class='flag-5'>通信協(xié)議</b>設(shè)計(jì)

    I2C總線協(xié)議

    I2C 總線使用兩根信號(hào)線(數(shù)據(jù)線 SDA 和時(shí)鐘線 SCL)在設(shè)備間傳輸數(shù)據(jù)。SCL 為單向時(shí)鐘線,固定由主機(jī)驅(qū)動(dòng)。SDA 為雙向數(shù)據(jù)線,在數(shù)據(jù)傳輸過(guò)程中由收發(fā)兩端分時(shí)驅(qū)動(dòng)。 I2C 總線
    發(fā)表于 12-15 08:07

    I2C的缺點(diǎn)介紹

    影響信號(hào)完整性并導(dǎo)致通信錯(cuò)誤。上拉電阻值的計(jì)算取決于總線電容、所需上升時(shí)間和電源電壓等因素。 尋址限制: I2C 協(xié)議支持有限數(shù)量的唯一地址,通常為 7 或 10 位長(zhǎng),這限制了可連接
    發(fā)表于 11-27 06:10

    SPI、I2C、I2S、UART:通信協(xié)議解釋

    ? ? ? ? 在嵌入式開發(fā)中,最常用的幾種通信接口無(wú)非就是SPI、I2C、I2S、UART。名字看起來(lái)差不多,但應(yīng)用場(chǎng)景和特性卻大不相同。為什么都叫串行通信,結(jié)構(gòu)卻不一樣?為什么有的
    的頭像 發(fā)表于 11-18 10:53 ?536次閱讀

    SPI、I2C、I2S、UART:通信協(xié)議對(duì)比表

    在嵌入式開發(fā)中,最常用的幾種通信接口無(wú)非就是SPI、I2C、I2S、UART。名字看起來(lái)差不多,但應(yīng)用場(chǎng)景和特性卻大不相同。很多初學(xué)者容易混淆:為什么都叫串行通信,結(jié)構(gòu)卻不一樣?為什么
    的頭像 發(fā)表于 11-17 10:53 ?1736次閱讀
    SPI、<b class='flag-5'>I2C</b>、<b class='flag-5'>I2</b>S、UART:<b class='flag-5'>通信協(xié)議</b>對(duì)比表

    深入剖析I2C協(xié)議

    I2C是由Philips開發(fā)的簡(jiǎn)單的雙向兩線總線,在深入淺出理解SPI協(xié)議中,我們區(qū)分了單工,半雙工,全雙工協(xié)議數(shù)據(jù)流向的區(qū)別,根據(jù)特征,I2C
    的頭像 發(fā)表于 08-21 15:10 ?3665次閱讀
    深入剖析<b class='flag-5'>I2C</b><b class='flag-5'>協(xié)議</b>

    I2C總線通信,為什么要進(jìn)行電氣隔離?

    I2C總線采用雙向二線制,支持多主機(jī)多從機(jī)通信,具備高可靠性、抗干擾能力強(qiáng),廣泛應(yīng)用于嵌入式系統(tǒng)中。
    的頭像 發(fā)表于 08-11 11:04 ?2501次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>總線</b><b class='flag-5'>通信</b>,為什么要進(jìn)行電氣隔離?

    第十八章 I2C通信測(cè)試

    本章介紹了I2C協(xié)議,其物理層用SDA和SCL雙線,支持多設(shè)備:協(xié)議層含起始/停止信號(hào)、應(yīng)答機(jī)制等。還講解W55MH32的I2C外設(shè)及初始化,并進(jìn)行了
    的頭像 發(fā)表于 06-19 17:07 ?1311次閱讀
    第十八章 <b class='flag-5'>I2C</b><b class='flag-5'>通信</b>測(cè)試

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-I2C設(shè)備驅(qū)動(dòng)之Linux下的I2C驅(qū)動(dòng)簡(jiǎn)介

    在Linux下,I2C(Inter-Integrated Circuit)驅(qū)動(dòng)是用于支持I2C總線協(xié)議的驅(qū)動(dòng)程序。I2C是一種串行
    發(fā)表于 04-15 10:39

    飛凌嵌入式ElfBoard ELF 1板卡-I2C設(shè)備驅(qū)動(dòng)之Linux下的I2C驅(qū)動(dòng)簡(jiǎn)介

    在Linux下,I2C(Inter-Integrated Circuit)驅(qū)動(dòng)是用于支持I2C總線協(xié)議的驅(qū)動(dòng)程序。I2C是一種串行
    發(fā)表于 04-15 10:19

    是德DSOX4034A示波器I2C總線信號(hào)分析

    在現(xiàn)代電子設(shè)計(jì)與調(diào)試中,I2C(Inter-Integrated Circuit)總線作為一種廣泛應(yīng)用的串行通信協(xié)議,因其簡(jiǎn)單性、靈活性和低功耗特性,成為許多嵌入式系統(tǒng)和電子設(shè)備中不可或缺的
    的頭像 發(fā)表于 03-19 13:47 ?1219次閱讀
    是德DSOX4034A示波器<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>信號(hào)分析

    I2C總線復(fù)用

    帝晶智慧屏I2C總線復(fù)用
    的頭像 發(fā)表于 03-11 17:20 ?2082次閱讀