这是最普通的I2C时序,如果你不需要设计I2C模块,只是单纯应用,只需要读懂几个最关键的信息,包括:VIL, VIH,即能被器件识别的逻辑低电平最大值以及能被器件识别的逻辑高电平最小值。 另外就是看你图片中下面部分的时序图。那三个时序图告诉你不同的信息:第一图是告诉你当SCL为高时,SDA由高变低会被识别为通信的起始信号;而正常通信时,SDA只允许在SCL为低时变化;如果SCL为高时,SDA由低变高,则会被识别为通信结束信号。第二图是告诉你,I2C通信是数据大端传送的,也就是数据是最高位最先传送,另外告诉你传送8位数据之后,会有一个ACK的信号,来判断通信是否正常。一般来说ACK是由slave把数据线拉低,如果ACK信号为高,说明slave压根没响应。
更多的I2C知识,你可以看飞利浦的I2C datasheet。 |