news 2026/7/13 4:35:37

I2C总线:时序结构与数据帧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
I2C总线:时序结构与数据帧

I2C(Inter-Integrated Circuit)总线是由飞利浦半导体(现恩智浦半导体)于 1982 年研发的两线式串行通信标准,其发明源于当时电子设备的通信痛点,后续凭借独特优势逐步成为电子领域的重要通信协议。其两根通信线为SCL和SDA

  • I2C电路规范
  1. 所有I2C设备的SCL通信线连在一起,SDA连在一起
  2. 设备的SCL和SDA均要配置成开漏输出模式
  3. SCL和SDA个添加一个上来电阻,组值一般为4.7kΩ
  4. 开漏输出和上拉电阻的共同作用实现了“线与的功能”,此设计主要是为了解决多机通信互相干扰的问题
  • 开漏输出模式原理图

当输出1时,三极管断开,引脚浮空

当输出0时,三极管闭合,引脚接地

  • I2C的时序结构
  1. 起始条件:SCL高电平期间,SDA从高电平切换到低电平

终止条件:SCL高电平期间,SDA从低电平切换到高电平

如上图所示,虚线框内即为重要部分左侧示意图记为S(START),右侧示意图记为P(PAUSE)

  1. 发送一个字节:SCL低电平期间,主机将数据位依次放到SDA线上(高位在前),然后拉高SCL,从机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环该过程8次即可发送一个字节。

虚线框处为重要部分,记为S:(SEND BYTE)

SCL在B7高电平阶段即为读取数据阶段,需要注意的是示意图中SDA处两条线并非同时存在,在一个时间节点只有存在一个进程,示意图表示的是两种不同的情况,由低电平转为高电平即为发送1,由高电平转为低电平即为发送0

2.接收一个字节:SCL低电平期间,从机将数据位一次放到SDA线上(高位在前),然后拉高SCL,主机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次即可接收一个字节(主机在接收之前,需要释放SDA)

将该部分记为R(RECIEVE BYTE)

示意图表示的是两种不同的情况,由低电平转为高电平即为接收1,由高电平转为低电平即为接收0

3. 发送应答:在接收一个字节后,主机在在下一个时钟发送一位数据,数据0表示应答,数据1表示非应答

接收应答:在发送一个字节后,主机在在下一个时钟接收一位数据,判断从机是否应答,数据0表示应答,数据1表示非应答(主机在接收之前,需要释放SDA)

左侧部分为发送应答原理,记为SA(SEND ANSWER)

右侧部分为接收应答原理,记为RA(RECIEVE ANSWER)

了解了以上时序结构,我们就可以把他们当做不同的模块,通过这些模块以不同方式组合,就构成了数据帧

在通信协议(包括I2C)中,数据帧是指按固定格式组织的,用于依次完整数据传输的最小单元,简单说就是通信双方 “约定好的数据包格式”—— 发送方按这个格式打包数据,接收方按同一个格式解析数据,才能保证通信准确无误。

  • 数据帧
  • 1.发送一帧数据

完成任务:向谁发送什么

其中SLAVE ADDRESS为从机,W表示写

S表示发送信号,RA表示接受信号后给出应答。类似于点名时点名者点名,被点名者答到

2.接收一帧数据

完成任务:向谁接受什么

其中从机后的R表示读

紫色的R表示接收信号,SA表示接受信号后给出应答。类似于点名时被点名者答到后,点名者收到信息对其进行回应表示已经收到被点名者的信息。

3.先发送再接收数据帧(复合格式)

完成任务:向谁收指定的什么

发送和接收配合使用,才能达到I2C通信的目的。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/13 3:34:03

五年干货免费送?我为什么把知识库交给PandaWiki

Panda不是猫 引言 从熊猫开始撰写 NAS 相关内容至今,已有五年时间。这五年间,累计撰写字数已突破四百万,其中长文教程更是多达 近 600 篇 。虽然熊猫的内容一直在各大自媒体平台分发,但这些平台更多是作为一个“扩圈”的渠道&…

作者头像 李华
网站建设 2026/7/12 12:09:49

C语言枚举(enum)详解:从基础语法到算法实战

摘要:本文深入讲解C语言中的enum(枚举)类型,涵盖其定义、使用、内存布局、优势与局限,并通过多个经典算法问题(状态机、方向控制、棋盘游戏等)展示如何用枚举提升代码可读性、可维护性和健壮性。…

作者头像 李华
网站建设 2026/7/10 3:19:43

嵌入式固件升级框架详解与实战经验

嵌入式固件升级(Firmware Update)是什么?固件升级是指在设备不拆解、不更换芯片的前提下,为了修复Bug、增加新功能或提升性能,通过软件方式更新嵌入式系统固件。对嵌入式产品而言,固件升级机制可以保持产品…

作者头像 李华
网站建设 2026/7/12 2:14:47

EmotiVoice API鉴权机制实现:保障调用安全

EmotiVoice API鉴权机制实现:保障调用安全 在AI语音技术迅速普及的今天,语音合成已不再是简单的“文字转语音”,而是迈向情感化、个性化和场景化的智能交互核心。EmotiVoice作为一款支持多情感表达与零样本声音克隆的开源TTS引擎,…

作者头像 李华
网站建设 2026/7/12 8:14:16

最小二乘问题详解3:线性最小二乘实例

案例总是举拟合直线的例子实在太简单了,这里就使用一个更加复杂一点问题模型:双线性变换。具体来说,假设存在两幅地图需要配置,并且找到了各自地图上的同名点,可以使用双线性变换模型来进行快速、初步的校正。也就是说…

作者头像 李华
网站建设 2026/7/11 12:08:21

生产透明化如何实现?双翌MES软件构建全链路数字车间

在当今制造业的激烈竞争中,单纯的设备自动化已不再是制胜关键。真正的核心竞争力,日益体现为企业能否将生产现场海量、分散的数据转化为精准的洞察与敏捷的行动。许多企业正面临这样的困境,高端智能设备林立,但信息却如同孤岛&…

作者头像 李华