一、IIC介绍
IIC(Inter-Integrated Circuit)是一种串行的、半双工的通信总线,硬件上由两根线组成,一根SDA(数据)线用于数据的收发,一根SCL(时钟)线用于双方时钟的同步。IIC主要用于近距离、低速的芯片之间通信且低成本、硬件结构简单。
IIC是一种多主多从的结构,多主机的情况下,如果同时使用总线会产生冲突,导致数据乱掉,那么IIC为了解决这一问题,就具有冲突检测、仲裁的功能去进行分时使用总线,即同一个时间段只能有一个主机占用总线,每个器件也都会有唯一的地址(7bit)对从机进行区分。
IIC总线通信时每个字节长度为8位,数据发送时,先发高位,数据发送完成后必须发送一位应答位回应发送器,即一帧数据共有9位。
二、IIC工作原理
备注:图片来源于:https://blog.csdn.net/weixin_42881419/article/details/104288391
-
主机发送开始信号启用总线。(其他主机接收到总线启用信号就不会再启用总线了)
-
主机发送7位的从机地址和1位数据的传输方向(告诉从机是1接收数据还是0发送数据);
-
被寻址的从机回复应答信号。
-
发送器发送一个数据。
-
接收器每接收到一个数据都会发送应答信号表明自己收到了数据。
-
重复步骤4和步骤5(重复发送数据)。
-
在所有数据传输完成后,主机发送停止信号,表示通信结束。
三、信号的过程
1.起始信号
SCL为高电平时,SDA由高变低。
作用:起始信号产生后表明总线处于占用状态
2.停止信号
SCL为高电平时,SDA由低变高。
作用:表面总线处于空闲状态。起始信号和终止信号都是由主机发送。
3.同步信号
作用:时钟线为低电平时,发送器在数据线上发送一个数据,时钟线为高电平时,接收器在数据线上接收一个数据。
四、IIC的优点和应用
IIC通信协议具有以下优点:
-
只需两根线,节省硬件资源。
-
支持多主设备和多从设备,灵活性高。
-
时序简单,易于实现和调试。
-
适用于短距离通信,通常在电路板上使用。
由于这些优点,IIC广泛应用于各种电子设备中,例如:
-
传感器:温度、湿度、光线等传感器与控制器之间的通信。
-
存储器:EEPROM、Flash等存储芯片与主控芯片之间的数据交换。
-
显示屏:控制显示模块和显示驱动芯片之间的通信。
-
音频编解码器:音频信号的输入和输出。
总结
总体而言,IIC通信协议在电子领域扮演着重要角色,其简单、高效和可靠的特点使得设备之间的通信变得更加容易和可靠。