I2C总线是飞利浦公司推出的一种串行总线,只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。
每个接到I2C总线上的器件地址是唯一的。主机与其他器件间的数据传送可以是由主机发送数据到其他器件,这时候主机即为发送器。由总线上接收数据的器件则为接收器。
常用的串行扩展总线有:I2C总线
单总线
SPI总线
I2C总线的通信协议需要掌握以下6点:
1.起始信号
2.终止信号
3.写数据
4.读数据
5.应答信号
6.非应答信号
起始信号和终止信号:
SCL线为高电平期间,SDA由高电平向低电平的变化称为起始信号;SCL线为高电平期间,SDA由低电平向高电平的变化称为终止信号。时序图如下:
数据位的有效性规定:
I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化,时序如下:
应答和非应答:
I2C总线协议规定,每传送一个字节数据后,都要有一个应答信号已确定数据传送是否被对方收到。应答信号由接收设备产生,在SCL为高电平期间,接收设备将SDA拉低为低电平,表示数据传输正确,产生应答。时序如下: