1. I2C总线的基本工作原理
I2C(Inter-Integrated Circuit)是一种用于在设备之间进行短距离通信的串行总线协议,常用于微控制器与外围设备(如传感器、存储器)之间的数据传输。I2C总线上有两条信号线:
- SDA(数据线):用于发送和接收数据。
- SCL(时钟线):由主设备控制,用于同步数据传输。
通信流程
- 启动信号(Start Condition):SDA线从高电平变为低电平,同时SCL线保持高电平。此信号通知所有从设备即将开始通信。
- 地址帧:主设备在SDA线上发送从设备地址,包含7位地址和1位读/写位。接收方在SCL的上升沿采样数据。
- 应答信号(ACK):从设备在收到正确的地址后,将SDA拉低,在下一时钟周期发送一个ACK信号。
- 数据传输:主设备或从设备在SCL的每个脉冲上升沿发送数据。每个数据字节后,从设备发送一个ACK信号表示数据