1、IIC总线特性
(1)、串行,半双工总线,主要用于近距离、低速芯片之间的通信
(2)、IIC有两根双向的信号线,一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟同步,芯片之间利用IIC进行通信时将芯片的数据线接到IC的SDA总线,时钟线接到IIC的SCL总线
(3)、IIC是一种多主机总线,连接在IIC总线上的器件分为主机和从机,主机可以发起和结束一次通信,从机只能被主机呼叫
(4)、总线上有多个主机同时启用总线时,IIC可以通过冲突检测和仲裁功能来觉点谁去使用IIC总线
(5)、每个连接到IIC总线上的器件都有一个唯一的地址(7bit或10bit),每个器件既可以是主机也可以是从机(不能同时既是主机又是从机)
2、IIC总线通信过程
(1)、主机发送起始信号启用总线
(2)、主机发送一个字节数据指明从机地址和数据发送方向
(3)、被寻址的从机发送应答信号回应主机
(4)、发送器发送一个字节数据
(5)、接收器发送应答信号回应发送器
(6)、通信完成后主机停止信号释放总线
3、IIC总线寻址方式
(1)、IIC总线上传输的数据既可以是地址也可以是数据
(2)、主机发送起始信号后必须先发送一个字节数据来确定从机和数据传输方向
(3)、总线上所有从机接收到数据之后与自己的地址进行对比,如果地址相同,则进行响应
4、IIC起始信号与停止信号
(1)、起始信号:SCL为高电平,SDA为低电平表示起始信号,起始信号产生表示总线被占用状态
(2)、停止信号:SCL为高电平,SDA由低变高表示停止信号,停止信号产生表示总线处于空闲状态
5、字节的传送与应答
IIC通信每个字节为8位,数据传输时先发送高位,再发送低位,发送器发送完一个字节后接收器必须发送一位来回应发送器,所有一帧数据总共有9位
6、同步信号
在IIC总线上进行数据传输时,时钟线SCL为低电平期间发送器向数据线上发送一位数据,在SCL为低电平期间,数据线上的信号允许发生变化,时钟线SCL为高电平期间接收器从数据线上读取一位数据,在SCL为高电平期间,数据线上信号不允许发生变化,必须保持稳定