I2C的时序如下图
I2C总线进行数据传送时,时钟信号SCL为高电平期间,数据线SDA上的数据必须稳定;只有在SCL上的信号为低电平时,SDA上的高电平或低电平状态才允许变化。
因为当SCL是高电平时,数据线SDA的变化被规定为控制命令,如上图所示的起始条件和停止条件。
数据传送过程中,先传送最高位(MSB),接收端在收到有效数据后向对方相应的信号,发送端每发送一个字节数据(8位),
在第9个始终周期释放数据线去接收对方的应答;因此一帧数据共有9位;
- 当SDA位低电平位有效应答(ACK),表示接收端已经接收到数据;
- 当SDA是高电平位无效应答(NAK),表示接收端没有接收成功;