【总线】I2C 通信协议

article/2025/8/16 23:09:13

目录

I2C 总线协议概述

参数总结

I2C 的工作原理

寻址

读/写位

数据帧

I2C数据传输的步骤

具有多个从机的单个主机

具有多个从机的多个主机

I2C的优缺点

优点

缺点

文章参考


I2C 总线协议概述

I2C 总线广泛应用在 OLED 显示器、气压传感器或陀螺仪/加速度计模块的项目。

I2C结合了SPI和UART的最佳功能。使用I2C,可以将多个从机连接到单个主机(如SPI),并且可以让多个主机控制单个或多个从机。当希望有多个微控制器将数据记录到单个存储卡或将文本显示到单个LCD时,这非常有用。

与UART通信一样,I2C仅使用两根线在设备之间传输数据:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

SDA(串行数据):主机和从机发送和接收数据的线路。

SCL(串行时钟):传输时钟信号的线路。

I2C是一种串行通信协议,因此数据沿着单线(SDA线)逐位传输。

与SPI一样,I2C是同步的,因此位的输出通过主机和从机之间共享的时钟信号与位采样同步。时钟信号始终由主站控制。

参数总结

所需的线数

2

最大的速率

标准模式:100kbps

快速模式:400kbps

高速模式:3.4Mbps

极速模式:5Mbps

同步或异步

同步

串行或并行

串行

主机的最大个数

没有限制

从机的最大个数

1008

I2C 的工作原理

使用I2C,数据在消息中传输。 消息被分解为数据帧。每条消息都有一个地址帧,其中包含从机的二进制地址,以及一个或多个包含正在传输的数据的数据帧。该消息还包括每个数据帧之间的开始和停止条件、读/写位和 ACK/NACK 位:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

启动条件:SCL线路从高电平切换到低电平之前,SDA线路从高电平切换到低电平。

停止条件:SCL线路从低电平切换到高电平后,SDA线路从低电平切换到高电平。

地址帧:每个从机唯一的 7 位或 10 位序列,当主机想要与其通信时,该序列标识从机。

读/写位: 指定主机是向从机(低电平)发送数据还是从中请求数据(高电平)的单个位。

ACK/NACK 位:消息中的每个帧后跟一个确认/不确认位。如果成功接收地址帧或数据帧,则从接收方向发送方返回 ACK 位。

寻址

I2C没有像SPI那样的从属选择线,因此它需要另一种方式让从机知道数据正在发送给它,而不是另一个从机站。它通过寻址来做到这一点。地址帧始终是新消息中起始位之后的第一个帧。

主机将它想要与之通信的从机的地址发送给连接到它的每个从机。然后,每个从机将从主机发送的地址与其自己的地址进行比较。如果地址匹配,则将低电平ACK位发送回主机。如果地址不匹配,则从机不执行任何操作,并且 SDA 线路保持高电平。

读/写位

地址帧在末尾包含一个位,通知从机是要向其写入数据还是从中读出数据。如果主机要向从机写数据,读/写位为低电平。如果主站从从站读数据,则该位为高电平。

数据帧

在主机检测到来自从机的ACK位后,第一个数据帧就可以发送了。

数据帧的长度始终为 8 位,并且首先发送最高有效位。每个数据帧后紧跟一个 ACK/NACK 位,以验证是否已成功接收该帧。在发送下一个数据帧之前,ACK位必须由主机或从机接收(取决于发送数据的人)。

发送完所有数据帧后,主机可以向从机发送停止条件以停止传输。停止条件是 SCL 线路上的电平从低到高的电压转换之后,在 SDA 线路上的电平从低到高的转换,而SCL 线路保持高电平。

I2C数据传输的步骤

1. 主机将启动条件从高电平切换至低电平,将SDA线路从高电平切换至低电平,将启动条件发送到每个连接的从机:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

2. 主机向每个从机发送它想要与之通信的从机的7位或10位地址,以及读/写位:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

3. 每个从机将主机发送的地址与自己的地址进行比较。如果地址匹配,则从机通过将SDA线拉低一位来返回ACK位。如果来自主机的地址与从机自己的地址不匹配,则从机将 SDA 线路保持不变维持在高电平。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

4. 主机发送或接收数据帧:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

5. 传输完每个数据帧后,接收方向发送方返回另一个ACK位,以确认成功接收帧:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

6.为了停止数据传输,主机通过在将SDA切换为高电平之前将SCL切换为高电平向从站发送停止条件:

具有多个从机的单个主机

由于I2C使用寻址,因此可以从单个主机控制多个从机。对于 7 位地址,可以使用 128 (2^7) 个唯一地址。使用 10 位地址的情况不常见,但提供 1,024 (2^10) 个唯一地址。要将多个从站连接到单个主站,要像图中这样连接它们,使用4.7KΩ上拉电阻器将SDA和SCL线路连接到Vcc:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

具有多个从机的多个主机

多个主站可以连接到单个从机或多个从机。当两个主机尝试通过SDA线路同时发送或接收数据时,同一系统中多个主机的问题就出现了。为了解决这个问题,每个主机都需要在传输消息之前检测SDA线是低还是高。如果 SDA 线路较低,则意味着另一个主机控制总线,主机应等待发送消息。如果 SDA 线路较高,则传输消息是安全的。要将多个主机连接到多个从机,要像图中这样连接它们,使用4.7KΩ上拉电阻器将SDA和SCL线路连接到Vcc:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

I2C的优缺点

优点

  • 仅使用两根电线
  • 支持多个主机和多个从机
  • ACK/NACK 位确认每帧都已成功传输
  • 硬件比 UART 更简单
  • 众所周知且广泛使用的协议

缺点

  • 数据传输速率比 SPI 慢
  • 数据帧的大小限制为8位
  • 需要实现比SPI更复杂的硬件

文章参考

Basics of the I2C Communication Protocol (circuitbasics.com)


http://chatgpt.dhexx.cn/article/qt93uSRu.shtml

相关文章

【数字IC】深入浅出理解I2C协议

深入浅出理解I2C协议 一、什么是I2C协议二、I2C,SPI,UART协议的区别三、I2C的信号线四、I2C的连接方式4.1 单主设备,单从设备4.2 单主设备,多从设备4.3 多主设备,多从设备 五、I2C的数据传输格式5.1 空闲位5.2 起始位5.3 地址位与读写控制5.4…

I2C协议靠这16张图彻底搞懂(超详细)

文章目录 背景硬件层数据传输协议实际上如何工作?单个主设备连接多个从机多个主设备连接多个从机如何编程?总结 背景 IC(Inter-Integrated Circuit),中文应该叫集成电路总线,它是一种串行通信总线&#xf…

奇安信SSL VPN详细配置步骤

1、网络接口配置(GE2接口配置,GE1调试接口) 2、静态路由配置(网络配置-网络路由-IPv4路由) 3、NC的IP地址池添加(SSL-VPN-应用设置-IP地址池-虚拟地址池添加) 4、用户和组的添加 5、NC设置 6、…

防火墙之IPSec VPN实验

防火墙IPSec VPN实验 原理概述: 指采用IPSec协议来实现远程接入的一种VPN技术,IPSec全称为Internet Protocol Security,是由Internet Engineering Task Force (IETF) 定义的安全标准框架,在公网上为两个私有网络提供安全通信通道,通过加密通道…

如何使用Xshell7连接学校虚拟机(保姆级)

如何使用Xshell7连接学校虚拟机(保姆级) 文章目录 如何使用Xshell7连接学校虚拟机(保姆级)一、前言二、连接学校VPN三、使用学校平台建立虚拟环境四、配置OpenVPN客户端五、使用Xshell连接虚拟机1、新建会话2、设置新建会话属性2、…

密码应用体系建设(政务方向)

一、背景 密码是保障网络与信息安全的核心技术和基础支撑,是解决网络与信息安全问题最有效、最可靠、最经济的手段。《密码法》的颁布实施,从法律层面为开展商用密码应用提供了根本遵循,《国家政务信息化项目建设管理办法》的颁布实施&#…

OSI七层网络协议

在前一篇博客运维往事 一次负载均衡坏点检测事故中我提到了在生产环境中在第四层和第七层做healthCheck,这个第四层和第七层到底是什么意思呢?除了第四层第七层之外,其他的几层到底是什么?这几层到底做了啥?   OSI把…

网络七层协议,五层协议概述

一、七层协议: 1、应用层: 针对特定应用的协议(如:电子邮件协议E-mail、远程登录协议SSH,文本传输协议FTP、网络请求协议HTTP) 2、表示层: 信息的语法语义以及它们的关联,如加密…

简洁易懂——网络七层协议

国际标准化组织ISO于1984年提出了OSI(Open Ssystem Interconnection Reference Model,开放系统互联参考模型)。OSI很快成为计算机网络通信的基础模型。 OSI依层次结构来划分:第一层,物理层;第二层,数据链路…

计算机网络七层协议osi

OSI(open system interconnect开放系统互联)七层模型:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。 OSI七层模型功能对应的网络协议TCP/IP四层概念模型应用层…

1分钟看懂网络七层协议/OSI七层模型

网络七层协议用一张图表示,大概是这样的: 物理层: 解决两个硬件之间怎么通信的问题,常见的物理媒介有光纤、电缆、中继器等。它主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。 …

OSI网络七层协议

OSI(Open System Interconnect),即开放式系统互联参考模型,一般都叫OSI参考模型,是ISO(国际标准化组织)在1985年提出的一个试图将各种计算机或者通信系统在世界范围内互联为网络的标准框架模型。在这一框架下详细的规定…

(知识点)TCP/IP协议(网络七层协议)

OSI参考模型 实际上,分组通信协议很复杂,OSI参考模型将其分为了易于理解的七个分层,如下图: OSI参考模型中每个分层的作用 下图表述了简单的每个分层的作用: 1. 应用层 为应用程序提供服务并规定应用程序中通信相…

网络七层模型及各层协议

网络七层模型作用应用层 (Application)网络服务与最终用户的一个接口。表示层(Presentation Layer)主要进行对接收数据的解释、加密与解密、压缩与解压缩。确保一个系统的应用层发送的数据能被另一个系统的应用层识别。(在五层模型里面已经合并到了应用层)会话层(Session Layer…

网络协议基础01-七层网络协议

前言:为什么学? 1.避不开:几乎所有的程序运行都会涉及到网络协议 2.不过时:越基础知识越不容易过时,值得花时间深入学习和积累。 容器技术、大数据、云计算、人工智能、区块链...等技术更新迭代速度很快&#xff0c…

网络七层协议结构分析图

文章目录 前言一、网络七层协议结构图详解二、TCP和UDP的区别1.TCP(打电话)1.连接稳定2.客户端,服务端3. 传输完成,释放连接,效率低,4. 三次连接四次挥手1.三次连接2.四次挥手 2.UDP(发短信&…

七层网络协议知多少

图,自然不是我的 最近太忙了,又是毕设又是春招的,忙的我都没时间看小说,所以博主我开始瞎 编小说了,学的比较浅,如有不对,还请指正。 物理层 许多年前的一天,小A和小B一块在电脑上…

网络中的七层协议与TCP/IP五层模型

socket(套接字)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址&a…

蓝牙nrf52832的架构和开发

相比TI的CC254X、DIALOG的DA1458X,nordic推出的nrf51822和nrf52832在架构和开发商都有自己独特的地方。这几颗产品都是蓝牙低功耗芯片。DA1458X使用OTP硬件架构,功耗低,成本也低,但软件开发难度是个门槛,大团队才能做到…

NORDIC nrf52833使用笔记

文章目录 一、SoftDevice命名规则(一)、通用规则(二)、特定规则 二、nRF52833关键特性三、SoftDevice目录框架四、代码目录框架五、应用代码结构六、内存分配表(一)、不带bootloader时的内存分配&#xff0…