• 解决方案
  • 联系我们
  • 全国统一服务热线:
  • 0571-81061650
  • 客服QQ: 3443748160
  • 手机: 18868786964(微信同号)
  • 地址: 杭州市西湖区西园三路3号A幢7楼712

解决方案

您现在的位置:首页 > 解决方案 >

i2c 接口是怎样工作的?

发布时间:2025-11-07

来详细讲解一下I2C接口是如何工作的。用一个容易理解的方式来解释。

一、I2C 是什么?

I2C,全称是Inter-Integrated Circuit,中文叫“集成电路总线”。它是一种由飞利浦公司开发的同步、串行、半双工的通信总线。

同步:通信双方有一个共同的时钟信号来协调步调。

串行:数据一位一位地顺序传输。

半双工:数据可以在两个方向上传输,但不能同时进行。

总线:意味着它可以连接多个设备到同一条线上。


它的最大特点就是简洁,只需要两根线就可以连接多个设备进行通信。


二、硬件连接

I2C总线仅由两根线组成:

SDA:串行数据线,负责传输实际的数据。

SCL:串行时钟线,由主设备产生,用于同步数据位的传输节奏。

总线上设备的连接方式:

所有设备的SDA脚都连接到共同的SDA线上,所有设备的SCL脚都连接到共同的SCL线上。同时,总线需要通过上拉电阻连接到正电源(Vcc),这使得在空闲状态下,两条线都保持高电平。


三、核心概念

在深入工作流程前,先理解三个核心概念:

1.主设备 和 从设备

主设备:发起和终止传输、产生时钟信号的设备。通常是微控制器(MCU),如STM32,Arduino等。

从设备:被主设备寻址并响应的设备。例如各种传感器(温湿度、加速度计)、存储器(EEPROM)等。

多主从模式:一个I2C总线上可以有多个主设备,但同一时刻只能有一个主设备控制总线。


2.从设备地址

每个I2C从设备都有一个唯一的7位或10位地址。主设备通过发送这个地址来“呼叫”想要通信的特定从设备。这就像打电话前要先拨号一样。


3.开漏输出

I2C设备的SDA和SCL引脚通常是“开漏输出”结构。这意味着它们可以将总线拉低(输出0),但不能主动拉高(输出1)。总线的高电平是靠之前提到的上拉电阻实现的。

好处:

线与功能:只要有一个设备输出低电平,整条线就是低电平。这实现了时钟同步和仲裁机制。

方便连接不同电压等级的器件。


四、I2C的工作流程(以读取EEPROM为例)

让我们跟随一次完整的数据读取过程,看看I2C是如何一步步工作的。


步骤 1:起始条件

动作:主设备在SCL为高电平时,将SDA线从高电平拉低。

意义:这是一个“开始”的信号,告诉总线上所有从设备:“注意!我要开始传输了!”。


步骤 2:发送从设备地址 + 读写位

动作:主设备发送一个7位的从设备地址(例如,EEPROM的地址是1010000),紧跟着第8位是读写位。

读写位:0 表示主设备要写入数据到从设备;1 表示主设备要读取从设备的数据。

举例:主设备要写入EEPROM,所以发送 1010000 + 0。

传输方式:数据在SCL为低电平时变化,在SCL为高电平时必须保持稳定,以便接收方采样。


步骤 3:等待从设备的应答

动作:主设备在发送完8位(地址+读写位)后,会释放SDA线(即不驱动它,让它变高),并产生一个时钟脉冲(SCL高电平)。被寻址的从设备需要在这个时钟脉冲期间,将SDA线拉低。

意义:

应答:如果SDA被拉低,表示从设备收到了地址,并且准备好了。

无应答:如果SDA保持高电平,表示总线上没有这个地址的从设备,或者从设备忙。


步骤 4:数据传输

一旦从设备应答,真正的数据传输就开始了。

数据传输以字节为单位,每个字节(8位)传输完毕后,接收方必须发送一个应答位。

方向:由之前发送的“读写位”决定。

如果读写位是0(写),则主设备发送数据,从设备接收并应答。

如果读写位是1(读),则从设备发送数据,主设备接收并应答。

步骤 5:停止条件

动作:主设备在SCL为高电平时,将SDA线从低电平释放为高电平。

意义:这是一个“结束”的信号,表示本次通信彻底结束,释放总线。

五、关键机制

  1. 时钟同步:如果另一个主设备想要占用更长时间,它可以在SCL为低时保持它,从而延缓时钟上升沿的到来,实现时钟同步。

  2. 仲裁:当两个主设备同时开始传输时,它们会监听SDA线的实际状态。如果某个主设备发送了1(释放SDA),但检测到SDA线是0(被另一个主设备拉低了),它就知道自己“输”了,会立即退出竞争,让获胜的主设备继续通信。这个过程不会损坏数据。

总结:I2C协议的特点

特点

描述

优点

1. 引脚少:只需两根线。

2. 支持多从机:通过地址寻址。

3. 有应答机制:保证通信可靠性。

4. 标准统一:协议广泛支持,非常成熟。

缺点

1. 速度较慢:标准模式100kbps,快速模式400kbps,高速模式3.4Mbps,比SPI慢。

2. 通信距离短:通常用于板内通信。

3. 软件实现复杂:需要严格遵循时序。

4. 占用CPU:如果用软件模拟,会消耗CPU资源。

简单来说,你可以把I2C通信想象成一次课堂提问:

老师是主设备。

学生是从设备,每个学生有唯一的学号(地址)。

老师说“上课”(起始条件),然后说“请学号为10号的同学回答”(发送地址)。

10号同学举手说“到”(应答)。

老师然后问问题(发送数据),学生回答(传输数据),每说完一句都会确认对方是否听懂(应答)。

最后老师说“下课”(停止条件)。

希望这个解释能帮助你透彻地理解I2C接口的工作原理!


  • 联系我们
  • 公司地址:浙江省杭州市西湖区西园九路8号A402
  • 公司座机:0571-81061650
  • 手机: 18868786964(微信同号)
  • 传真:86-0571-81061653
  • 联系人:洪先生
  • Email:market@hzxuhong.com