莫听穿林打叶声,何妨吟啸且徐行。

关于I2C

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”.



 
© 镜中的独白|Powered by LOFTER