IIC 通信协议学习笔记

I2C 总线:两线制硬件电路、读写操作流程、起始/结束/应答信号时序与协议细节。

11.1 I2C硬件

SCL,SDA,一条I2C总线可接很多设备,SCL,SDA放上拉电阻

image-20250828205720777

11.2 传输数据类比

如何通过IIC传数据,

主设备:一主多从,可把数据从主设备发到从设备,也可从设备发到主设备

  • 发送

主设备:开始(start)

主设备:A,我把数据发你(地址/方向)

A:收到(回应)

主设备:发送数据(传输)

A:收到后,告诉主设备(回应)

主设备:结束(停止)

  • 接收

主设备:开始(start)

主设备:B,把数据发我(地址/方向)

B:收到(回应)

B:把数据发给主设备(传输)

主设备:收到数据后,告诉A(回应)

主设备:结束(停止)

11.3 IIC传输数据格式

11.3.1写操作

  • 主设备发出start信号
  • 发出设备地址,方向(读1/写0)
  • 从设备发出应答信号
  • 主设备发送一字节数据,等待回应
  • 每传输一字节,接收方回应一次,在传输下一个数据
  • 数据发送完成,主设备发送stop信号

image-20250828211121367

11.3.2读操作

image-20250828212451496

11.3.3 IIC信号

IIC协议栈数据传输单位是字节,但是要用到9个时钟,前面8个时钟用来传输8数据,第9个始终用来传输回应信号,先传输最高位

  • 开始信号(S):SCL为高时,SDA由高跳低,开始传输数据
  • 结束信号(P):SCL为高时,SDA由低跳高,结束传输数据
  • 响应信号(ACK):接收到8位数据,第九个时钟周期,拉低SDA
  • SDA数据必须在SCL高时稳定,只能在SCL为低时变化

image-20250828213228809

11.3.4 协议细节

1.SDA引脚必须双向IO,因为有发有收

image-20250828214833582 image-20250828214855838 image-20250828215155892
使用 Hugo 构建
主题 Stack 由 Jimmy 设计