I2C协议解析
I2C有两条线:一条SCL时钟线,一条SDA数据线,具有双向传输的特性。一个I2C控制器可以和多个从设备通讯,通过不同的通信地址来区分它们,这一点和SPI不同,SPI是通过片选信号来区分的,所以线路上I2C更为简单。
图中表示I2C主机和从设备的连接方式
I2C状态的解析
1、空闲状态
SCL:高
SDA:高
2、开始信号:
SCL:高
SDA:高->低(跳变信号)
3、停止信号:
SCL:高
SDA:低->高(跳变信号)
4、ACK信号:
在传输完一个字节后的第九个时钟
SCL:高
SDA:低
5、NACK信号:
在传输完一个字节后的第九个时钟
SCL:高
SDA:高
数据的有效性
当开始传输数据的时候,I2C是在SCL为高电平的时候采样,所以在SCL为高电平的时候必须要保证SDA稳定,否则会导致通