彻底搞懂I2C总线(2)标准模式、快速模式下的I2C通信协议_iic标准模式与快速模式的区别-CSDN博客文章浏览阅读1.6k次,点赞2次,收藏14次。通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。交流什么、怎样交流及何时交流,都必须遵循某种互相都能接受的规则。这个规则就是通信协议。图1-11 术语定义。_iic标准模式与快速模式的区别https://blog.csdn.net/cy413026/article/details/1339141933.2.4 I2C总线空闲状态
I2C总线有四种状态:空闲、启动、忙碌、停止。
当总线为空闲状态时,SDA和SCL两条线路一定都是高电平。但是SDA和SCL两条线路都是高电平时,并不一定是总线空闲状态,譬如总线正在传输数据“1”时,SDA和SCL都是高电平,但此时并不是总线空闲状态。所以,总线空闲状态不但要求SDA和SCL线要同时为高电平,而且还要求同时为高电平的保持时间不小于tBUF(tBUF:标准模式≥4.7us,快速模式≥1.3us,快速增强模式≥0.5us,超快模式≥80ns)。
图1-20 I2C总线的两种空闲状态
I2C总线有两种空闲状态(参考图1-20):
①第一种是设备第一次启动前的空闲状态, 其满足条件为:SDA和SCL同为高电平,且保持时间较长(此处官方没给出具体参数,但笔者认为不应小于第二种空闲状态高电平保持时间tBUF);
②第二种是设备停止总线后,再启动前的空闲状态,其满足条件为:SDA和SCL同为高电平,且保持时间≥tBUF(tBUF:标准模式≥4.7us,快速模式≥1.3us,快速增强模式≥0.5us,超快模式≥80ns)。
值得注意的是,I2C总线在工作中的热启动之前(SDA和SCL同为高电平)的状态,协议判定为忙碌状态而非空闲状态。