i2c是一种高效、简单、低成本、串行、双向的通信总线协议,用于板间通信。i2c意为“Inter-Integrated Circuit”,通常发音为“i-square-c”。它使用两条线(一条数据线和一条时钟线)连接各器件。i2c由NXP公司(Philips Semiconductors)于1982年首次开发,现在已成为市场标准之一。
i2c主要有两种模式:主模式和从模式。主模式用于启动和停止传输,从模式用于实际数据传输。i2c总线上可以连接多个从设备(设备地址不同),但只能有一个主设备。
为了使用i2c,需要以下几个硬件要素:
1.数据线(SDA):用于传输数据的单向或双向串行数据线;
2.时钟线(SCL):用于定时的单向串行时钟线;
3.主设备:用于控制总线访问和启动和停止传输的器件;
4.从设备:与主设备进行数据传输的器件;
5.地址线:用于发送地址信息的双向线。
i2c协议有以下几个关键部分:
1.开始:i2c操作开始时,SCL保持高电平,SDA由高电平转为低电平(称为“开始条件”);
2.地址:主设备向总线发送从设备地址(7位或10位),地址的最后一位被用于指示读/写;
3.数据传输:读/写数据由主设备开始,在8个时钟周期内传输一个字节。每个字节的传输都会被从设备确认,即从设备会发送一个应答位标识其已接收到字节。
4.停止:i2c结束时,SCL保持高电平,SDA由低电平转为高电平(称为“停止条件”)。
i2c广泛用于模拟/数字转换器、OLED显示器、传感器、存储器和其他电子设备之间的简单通信。i2c在电器中应用广泛,如智能家居、医疗设备、车载系统等领域。
由于在i2c总线上连接多个设备时需要使用不同的设备地址,因此需要使用扫描工具来确定i2c设备的地址。
i2c同时也是许多微控制器以及嵌入式计算系统上最常用的接口之一。