异步通信节省一根时钟线,节省资源但是对时间要求严格,对硬件电路比较依赖
同步对时间要求不严格,对硬件电路不怎么依赖
SCL串行时钟线
SAD串行数据线
所有I2C设备的SCL连在一起,SDA连在一起
设备的SCL和SDA均要配置成开漏输出模式
SCL和SDA个添加一个上拉电阻,阻值为4.7千欧左右
I2C设计禁止所有设备输出强上拉高电平,采用弱上拉电阻加开漏的电路结构
起始条件:SCL高电平期间,SDA从高电平切换到低电平
终止条件:SCL高电平期间,SDA从低电平切换到高电平
发送一个字节:SCL低电平器件,主机将数据位依次放到SDA线上(高危先行),然后释放SCL,从机将在SCL高电平期间读取数据位,所以SCL高电平器SDA不允许有数据变化,一次循环上述过程8次,即可发送一个字节(在主机接受之前,需要释放SDA)
接受一个字节:SCL低电平期间,从即将数据位一次放到SDA线上(高位先行),然后释放SCL,主机将在SCL高电平器件读取数据为所以SCL高电平器件SDA不允许有数据变化,一次循环上述过程八次即可接受一个字节(主机在接受之前,需要释放SDA)
发送应答:主机在接受玩一个字节之后,在下一个始终发送下一位数据,数据0表示答应,数据1表示非答应
接收应答:主机在发送完一个字节之后,在下一个时钟接收一位数据,判断从机是否答应,数据0表示答应,数据1表示非答应(主机在接受前,需要释放SDA)
指定地址写:对于指定设备,在指定地址下写入指定数据
最低位表示读写位0是写,1是读