一、IIC介绍
IIC是一种串行的、半双工的通信总线,硬件上有两根线,一根SDA(数据)线用于数据的收发,一根SCL(时钟)线用于双方时钟的同步。IIC主要用于近距离、低速的芯片之间通信且低成本、硬件结构简单。
IIC也是一种多主多从的结构,先讲多主,多主如果同时使用总线会产生冲突,导致数据乱掉,那么IIC就有冲突检测、仲裁的功能去进行分时使用总线即同一个时间段只能有一个主机占用总线,每个器件都会有唯一的地址(7bit)会对从机进行区分。
IIC总线通信时每个字节长度为8位,数据发送时,先发高位,数据发送完成后必须发送一位应答位回应发送器,即一帧数据共有9位。
二、IIC通信过程
1.主机发送开始信号启用总线。(其他主机接收到总线启用信号就不会在启用总线了)
2.主机发送7位的从机地址和1位数据的传输方向(告诉从机是1接收数据还是0发送数据);
3.被寻址的从机回复应答信号。
4.发送器发送一个数据。
5.接收器发送应答信号表明自己收到了数据。
6.重复步骤4和步骤5。
7.主机发送停止信号释放总线。
三、信号的过程
1.起始信号
SCL为高电平时,SDA由高变低。
作用:起始信号产生后表明总线处于占用状态
2.终止信号
SCL为高电平时,SDA由低变高。
作用 : 表面总线处于空闲状态。起始信号和终止信号都是由主机发送的。
3.同步信号
时钟线为低电平时,发送器在数据线上发送一个数据,时钟线为高电平时,接收器在数据线上接受一个数据。