I2C总线概念
I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的设备之间通信。I2C的两根线SDA(串行数据线)和SCL(串行时钟线)都是双向I/O线,接口电路为开漏输出,需通过上拉电阻接电源VCC,当总线空闲时,两根线都是高电平。
常见的硬件结构图(一个适配器,两根线,若干设备而已)
I2C总线通信时序
使用I2C通信时,必须指定主从设备,一般包含有I2C控制器的处理器被配置成主设备,挂接在i2c总线上的外设作为从设备。通信开始都是由主设备发起的,在i2c总线上的每个设备都有一个7bit位的地址,称为i2c设备地址。
主设备如何发起开始和停止通信信号?
在SCL线为高电平时,将SDA线由高拉低,即发出一个start开始信号;当SCL为高电平时,将SDA由低拉高,即发送一个stop停止信号;那么这些操作都是由主设备的I2C控制器完成的。