I2C是飞利浦公司发明的主从同步串行通信总线。I2C总线只需要两根信号线组成,一根是串行数据线SDA,另一根是串行时钟线SCL。I2C总线器件SDA和SCL引脚都是漏极开路(或集电极开路)输出结构,因此实际应用时,SDA和SCL信号线都必须要加上拉电阻。
起始条件:当SCL处于高电平期间,SDA从高电平向低电平跳变时产生起始条件。
停止条件:当SCL处于高电平期间,SDA从低电平向高电平跳变时产生停止条件。
SCL必须由主机发送,SDA上信号的转变必须是在SCL处于低电平时发生,否则会被当成起始条件或停止条件;SCL处于高电平时,SDA上信号稳定,接收方可以接收。
主机发送起始信号后,继续送片选信号(从机把自己的地址和发送过来的地址相比,如果一样就应答),即7位从机地址加1位方向(读写)控制。从机接收到8位数据后,才要发应答信号(SDA为低电平),如发非应答信号(SDA为高电平)表示从机忙,还无法接收数据或则从机坏了。如果从机是有子地址器件(如带I2C接口的EEPROM AT24C02),则主机继续发送器件子地址,从机还要应答。然后,如果是写,主机就开始往SDA上发数据了,从机收到后应答,如果要连续写,从机会自动把地址加一,主机就不停写下去,每一字节从机要应答,如果不要连续写,就从新开始,最后主机要停止写,就发停止信号;如果是读,主机就又要发个起始信号,再发7位从机地址加1位方向(读写)控制,读写控制此时为1,从机应答后,从机往主机发数据,主机应答,如为连续读,从机会自动把地址加一,主机就不停读下去,如果不要连续读,就从新开始,最后主机发非应答信号表示我不再接收了,从机知道后不再发数据。
I2C总线
最新推荐文章于 2023-10-04 20:13:18 发布