i2c协议

i2c协议是同步半双工协议,所以有两条线,一条为SCl为时钟线,另一条为SDA为数据传输线。

协议规定:开始和结束

在 SDA和SCL都是高电平的情况下,SDA产生下降沿信号,此时建立了I2C通信的开始

在SDA为低电平,SCL为高电平的情况下,SDA产生上升沿信号,则表明传输结束

根据上面的规则可以得出,1.在通信开始之前,两根线都是高电平,通信结束之后,两根线也都是高电平。所以可以得出结论,在总线闲的时候,两根线都是高电平。I所以I2C的2根线上都必须接上拉电阻,阻值一般是4.7K

2.总线只有两种状态要么处在正在传输,要么处在传输结束,要注意着两种状态的转变条件都是SCL为高的情况下,SDA只要有变化就会产生状态的变化,所以要注意在SCL为高的时候,SDA不要有任何变化,也就是说在SCL为低的时候,才有数据传出。

写数据时

s表示start开始条件,然后会输出7位的从设备地址,和1位的写命令,将这8位数据送出去之后,会接到从设备的ack应答,接着主设备会发出数据,从设备要是没有ack应答,则会产生停止条件,下图网格表示主设备发出的,空白格表示从设备发出的

读数据时

芯片的引脚上一般有专门的I2C引脚

原文地址:https://www.cnblogs.com/ma77045728/p/7132886.html