• I2C总线是由Philips公司开发的两线式串行总线,用于连接微控制器和外围设备。
  • I2C总线支持多主控模式,任何能够进行发送和接收的设备都可以成为主设备。主控能够控制数据的传输和时钟频率,在任意的时刻只能有一个主控
  • START:SCL 线为高电平期间,SDA 线由高电平向低电平的变化表示起始信号;
  • STOP:SCL 线为高电平期间,SDA 线由低电平向高电平的变化表示终止信号。
  • 时钟信号为高电平期间,数据线上的数据必须保持稳定
  •  时钟信号为低电平期间,数据线上的高低电平状态才允许变化
  • SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态 。
  • 接收器收到一个完整的数据字节后,有可能需要完成一些其它工作,如处理内部中断服务等,可能无法立刻接收下一个字节,这时接收器件可以将SCL 线拉成低电平,从而使主机处于等待状态。直到接收器件准备好接收下一个字节时,再释放 SCL 线使之为高电平,从而使数据传送可以继续进行。
  • 每一个字节必须保证是 8 位长度。数据传送时,先传送最高位(MSB)。
  • 应答:SCL高电平时,SDA产生(拉低)一个至少4us的低电平。
  • 非应答:SCL高电平时,SDA产生(维持)一个至少4us的高电平。
  • 起始信号后接着发送7位地址,最后跟着1位读写信号,“0”是写,“1”是读。
  • 若主机希望继续占用总线进行新的数据传送,则可以不产生终止信号,马上再次发出起始信号对另一从机进行寻址 。