1.what is I2C?
简单讲就是用来传输数据的两根线:一根数据线(SDA)一根时钟线(SCL)
2.I2C怎么传输的?
(1)基本过程:
1.主机发出开始信号
2.主机接着发出一字节的从机地址信息,其中最低位为读写控制码(1为读、0为写)
高七位为从机器件地址
3.从机发出认可信号
4.主机开始发送信号,每发完一字节后,从机发出认可信号给主机
5.主机发出停止信号
(2)对以上信号的具体说明:
开始信号:在时钟线为高电平期间,数据线由高变低,将产生一个开始信号
停止信号:在时钟线为高电平期间,数据线由低变高,将产生一个停止信号
应答信号:即认可信号,主机写从机时,每写完一个字节,如果正确从机将在下一个时钟周期将数据线拉低,以告诉主机操作有效。在主机读从机的时候,正确读完一个字节后,主机在下一个时钟周期同样也要将数据线拉低,发出认可信号,告诉从机所发数据已经收妥(注:读从机时主机在最后一个字节数据接收完后,不发应答,直接发停止信号)
注意:任何在时钟线为高电平期间的数据线上的电平改变都被认为是起始和停止信号,所以数据改变必须要在时钟为低电平时改变。
(3)数据格式:
I2C支持两种数据格式:
7bit/10bit寻址数据格式
7bit/10bit寻址和重复开始信号的格式
从设备地址:
总线上每个设备都有自己的一个addr,共7个bit,广播地址全0.</