串行通信协议 IIC

I2C(Inter-Integrated Circuit),即串行通信协议,是一种用于短距离数字数据通信的串行通信协议。它由飞利浦公司(现在的恩智浦半导体)开发,并在许多嵌入式系统和电子设备中得到广泛应用。

1、IIC 通信时序

 在硬件上,I2C总线只需要一根数据线和一根时钟线两根线,初始状态下,时钟线和数据线都处于高电平状态,当数据线由高电平变为低电平,表示为开始信号;时钟线保持高电平,数据线由低电平变为高电平,表示为停止信号。在时钟线高电平时,数据有效。

2、IIC 设备连接

I2C设备都是挂在I2C总线上面,在通信时可分为主设备和从设备

3、通信读写操作

主设备会发送地址信息+写操作位,由从设备进行解析,匹配成功,由从设备返回一个应答,然后再发送需要访问的设备寄存器地址+传输模式,等待应答,最后发送需要写入的数据,结束。

前一部分与写操作差不多,在发送设备地址时加的是读操作位,同样的发送寄存器地址+传输模式,接下来就是接收数据,有两种方式:

一种标准模式,由主设备重新发送设备地址,进行接收;一种是简单模式,修改传输方式,直接开始接收,接收字节数由主设备应答决定,接收到主设备停止应答位置。