I2C协议最初由Philips Semiconductor(现为NXPSemiconductors)开发,议的原理用于简化微控制器和外围设备之间的工作通信。它是解析一种多主机总线,允许多个设备共享同一总线,议的原理同时保持较低的工作功耗和成本。
I2C协议有两种主要的工作模式:
I2C数据传输过程包括以下几个步骤:
当多个主机尝试控制I2C总线时,I2C协议通过一种称为“线与”(Wire-AND)的机制来解决冲突。在这种机制下,任何设备都可以在任何时候控制SCL线,但SDA线必须由所有设备共同控制。如果一个设备想要发送数据,它会检查SDA线的状态。如果SDA线已经被其他设备拉低,那么当前设备会释放SDA线,允许其他设备控制总线。
在多主模式下,任何连接到I2C总线的设备都可以成为主机。当一个设备想要成为主机时,它会开始控制SCL线。如果总线上没有其他主机控制SCL线,那么该设备就可以成功地成为主机。如果已经有其他主机控制SCL线,那么新设备必须等待直到SCL线被释放。
I2C协议广泛应用于各种电子设备中,包括: