I2C是什么?
I2C总线有SDA和SCL两条线,在总线空闲时两条线均为高电平。在SCL为高电平的时候SDA的数据必须保持稳定,SCL为低电平的时候SDA才能改变。
怎样收发数据?
SCL一直由主机控制,SDA则是由数据发送方控制,在发送完一个字节(8位数据位)之后,SDA转交给接收方控制是否回复ACK。
时钟的同步:产生的同步SCL时钟的低电平由最先进入低电平的器件决定,高电平由最慢进入高电平的器件决定。
SDA仲裁
当SCL是高点平时,仲裁在SDA线发生。
SDA,SCL线均接了上拉电阻,所以有“线与”逻辑。发送数据时若出现冲突,发送“0”的总是赢家。例如:主机A,B均发“1”或“0”,与“1”(上拉电阻)与后还是“1”或“0”.若主机A发送“1”,主机B发送“0”,那么“1”,“1”,“0”相与后结果就是“0”.