I2C(Inter-Integrated Circuit),PHILIPS公司开发的两线式半双工同步串行总线,具有接口线少,控制方式简
单,通信速率较高等优点。
I2C是一个多主机的总线,每个设备既可以当主控器或被控器,又可作为发送器或接收器,一条总线上可以有
多个主机,但同一时刻只允许一个主机工作。
从设备地址:每个支持i2c总线的设备,它都会有一个可以代表自己的地址,这个地址是唯一的(7位或10位)
I2C总线有两根信号线:双向数据线(SDA)、时钟线(SCL)。
起始信号:
SCL 线是高电平时,SDA 线从高电平向低电平切换表示起始信号
终止信号:
SCL 线是高电平时,SDA 线从低电平向高电平切换表示终止信号
应答信号:
发送到SDA数据线上的数据是以字节为单位的,而且是由高到低进行传输字节数没有限制,每个字节后通常
跟一个应答位(由接收方在第9个时钟周期发送)
接收器收到每个字节后的第9个时钟周期会发送一个应答信号(ACK)或非应答信号(NACK)
I2C数据传输时序:
I2C为电平触发方式,SDA线上的数据必须在时钟的高电平周期保持稳定。当SCL为低电平时SDA线的电平
状态才可以改变。
I2C传输格式:
写数据:
读数据: