(1)IIC总线是具备总线仲裁和高低速设备同步等功能的高性能多主机总线。
(2)IIC总线上需要两条线:串行数据线SDA和串行时钟线SCL。
(3)总线上的每个器件都有唯一的地址以供识别,而且各器件都可以作为一个发送器或者接收器(由器件的功能决定)。
(4)IIC总线有4种操作模式:主发送、主接收、从发送、从接收。
(5)IIC在传送数据过程******有3种类型信号:
A、开始信号:SCL为低电平时,SDA由高向低跳变。
B、结束信号:SCL为低电平时,SDA由低向高跳变。
C、应答信号:接收方在收到8位数据后,在第9个脉冲向发送方发出特点的低电平。
(6)主器件发送一个开始信号后,它还会立即送出一个从地址,来通知将与它进行数据通信的从器件。1个字节的地址包括7位地址信息和1位传输方向指示位,如果第7位为0,表示要进行一个写操作,如果为1,表示要进行一个读操作。
(7)SDA线上传输的每个字节长度都是8位,每次传输种字节的数量没有限制的。在开始信号后面的第一个字节是地址域,之后每个传输字节后面都有一个应答位(ACK),传输中串行数据的MSB(字节高位)首先发送。
(8)如果数据接收方无法再接收更多的数据,它可以通过将SCL保持低电平来中断传输,这样可以迫使数据发送方等待,直到SCL被重新释放。这样可以达到高低速设备同步。
(9)IIC总线的工作过程:SDA和SCL都是双向的。空闲的时候,SDA和SCL都是高电平,只有SDA变为低电平,接着SCL再变为低电平,IIC总线的数据传输才开始。SDA线上被传输的每一位在SCL的上升沿被采样,该位必须一直保持有效到SCL再次变为低电平,然后SDA就在SCL再次变为高电平之前传输下一个位。最后,SCL变回高电平,接着SDA也变为高电平,表示数据传输结束。
具体想学真技术的同学,可以来汉码未来,5人精品班、全程纯面授、真实企业项目开发,主打物联网嵌入式、Java全栈、鸿蒙应用开发、Linux云计算SRE工程师、C/C++、AI人工智能大模型算法等,点击官网咨询专业授课老师吧!