I2C总线协议详解
出处:网络整理 发布于:2026-05-21 16:09:31
I2C 总线物理拓扑结构
I2C 总线在物理连接上极为简单,主要由 SDA(串行数据线)、SCL(串行时钟线)及上拉电阻构成。其通信原理是通过对 SCL 和 SDA 线高低电平时序的精准控制,产生 I2C 总线协议所需的信号,从而实现数据的传递。在总线空闲状态时,这两根线通常会被上拉电阻拉高,维持高电平状态。这种设计使得 I2C 总线在硬件实现上较为简便,降低了系统的复杂度和成本。

I2C 总线上的每个设备都具备主设备或从设备的双重角色,并且每个设备都有一个的地址,该地址可从 I2C 器件的数据手册中获取。主从设备之间通过这个地址来确定通信对象。在常见应用中,我们通常将带有 I2C 总线接口的 CPU 模块作为主设备,而把挂接在总线上的其他设备视为从设备。
I2C 总线上可挂接的设备数量受到总线电容 400pF 的限制。如果挂接的是相同型号的器件,还会受到器件地址位的约束。其数据传输速率在不同模式下有所不同,标准模式下可达 100kbit/s,快速模式下可达 400kbit/s,高速模式下更是能达到 3.4Mbit/s。一般通过 I2C 总线接口可编程时钟来调整传输速率,同时传输速率也与所接上拉电阻的阻值有关。I2C 总线上的主设备与从设备之间以字节(8 位)为单位进行双向的数据传输。
I2C 总线协议
I2C 协议规定,总线上数据的传输必须以一个起始信号作为开始条件,以一个结束信号作为传输的停止条件,且起始和结束信号均由主设备产生。当总线处于空闲状态时,SCL 和 SDA 都保持高电平。当 SCL 为高电平而 SDA 由高到低跳变时,表示产生起始条件;当 SCL 为高而 SDA 由低到高跳变时,表示产生停止条件。起始条件产生后,总线处于忙状态,由本次数据传输的主从设备独占,其他 I2C 器件无法访问总线;停止条件产生后,本次数据传输的主从设备释放总线,总线再次进入空闲状态。



对 I2C 总线的操作实际上就是主从设备之间的读写操作,大致可分为以下三种情况:
主设备往从设备中写数据:这是一种常见的操作方式,主设备将数据发送给从设备,以实现数据的写入。
主设备从从设备中读数据:主设备从从设备获取所需的数据,满足系统对数据的需求。
主设备往从设备中写数据,然后重启起始条件,紧接着从从设备中读取数据;或者主设备从从设备中读数据,然后重启起始条件,紧接着主设备往从设备中写数据:在单个主设备系统中,这种重复开启起始条件的机制比用 STOP 终止传输后又再次开启总线更具效率。

版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- RS485 端口的 EMC 防雷保护方案2026/5/20 14:23:51
- 串行接口VS并行接口2026/5/19 14:07:07
- JESD204B 与 JESD204C 的核心差异2026/5/18 14:47:23
- 三进线两母联供电系统设计2026/5/15 14:37:11
- CAN 总线为何要加终端电阻?2026/5/14 14:37:40









