I2C

​ I2C(Inter-Integrated Circuit)协议是由Philips公司于1980年代提出的一种 同步、半双工、多主从结构 的串行通信协议,广泛应用于嵌入式系统中的芯片间通信。其核心特点在于仅使用 两条信号线 : SDA(数据线) 与 SCL(时钟线) ,即可实现多个设备之间的可靠数据传输。

传输数据

总线时序

i2c 通信以起始信号(START)开始,以终止信号(STOP)结束,起始信号和终止信号均为主机发出

起始信号:

  • 当 SCL 为高电平时,SDA 从高电平变为低电平时为起始信号

终止信号:

  • 当 SCL 为高电平时,SDA 从低电平变成高电平时为终止信号

image-20260715165137009

写操作

  1. 主设备要发出一个start信号
  2. 然后发出一个设备地址(用来确定往哪个从设备写数据),方向(读/写, 0表示写,1表示读)
  3. 从设备回应(用来确定这个设备是否存在),然后就可以传输数据
  4. 主设备发送一个字节数据给从设备,并等待回应
  5. 每传输一个字节数据,接收方要有一个回应信号(确定数据是否接收完成),然后再传输下一个数据
  6. 数据发送完之后,主设备发送一个停止信号 下图:白色背景表示:主→从,灰色背景表示:从→主

驱动