【常见通讯协议】之IIC

2023-05-16

IIC通信协议

在这里插入图片描述
IIC总线硬件接线图
SDA: SDATA 数据线
SCL: SCLOCK 时钟线

一、百度百科介绍

IIC是由NXP(原PHILIPS)公司开发的两线式串行总线,IIC(Inter-Integrated Circuit)其实是IICBus简称,所以中文应该叫集成电路总线,I²C的正确读法为“I平方C”(“I-squared-C”)。I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。

二、IIC的特点

1.主从设备:

IIC设备分为主从设备,基本上谁控制时钟线谁就是主设备(即控制SCL线上的高低电平)。

2.主从设备的功能:

(1)主设备:

产生时钟,产生起始信号和停止信号。(能主动开始传输或结束传输)

(2)从设备:

可编程的IIC地址检测,停止位检测。

3.多主控:

支持多主控,任何一个能够发送或接收信号的设备都可以成为主总线。任意时间只能存在一个主控(具有总线裁决功能),主控能控制信号传输和时钟频率。

4.支持不同的通讯速率:

标准速度(最高100khz),快速(最高400khz)

5.上拉电阻:

SCL和SDA都需要上拉电阻保证数值稳定性,减少干扰。

6.单向通信:

IIC是半双工,同一时间只能单向通信。

7.地址唯一:

IIC总线上的每个器件拥有唯一的地址(一般是7bit)。

8.短距离传输:

IIC多用于同一块板上不同芯片之间的传输,传输速率低,抗干扰能力差。

三、IIC的通信过程

①主机发送起始信号,启用总线,开始通信。(总线上所有设备接收信号,其它主控设备不能再开启总线,从设备准备接收信号)
②主机发送一个字节数据,指明从机地址与后续数据传输方向。(一个字节数据8bit,前7位为从机地址,第8位为传输方向,传输方向确定后不能更改,0表示为主机传输数据至从机,1表示从从机发送数据给主机)
③从机应答
④发送器发送一个数据。(发送器可以是主机或者从机)
⑤接收器应答。
⑥重复④⑤步骤
⑦数据传输完成后,主机发送停止信号释放总线使用权,停止通信。
芯片作为主机还是从机是一开始就确定好的,但对于可编程器件,如单片机,作为主机还是从机可以自己决定

四、信号与数据

1.起始信号与停止信号:

①起始信号:SCL保持高电平,SDA从高电平变为低电平。
②停止信号:SCL保持高电平,SDA从低电平变为高电平。
在这里插入图片描述

2.字节传送与应答:

数据传送时,发送器发送一个字节的数据,接收器发送一位数据应答,数据传送时从高位到低位传输。
在这里插入图片描述

3.同步信号:

(怎么知道某一段时间内发送了多少位数据,比如01和0011的波形相同,怎么知道发送的的数据是01还是0011?

在这里插入图片描述)
①SCL低电平,发送器发送1位数据,SDA显示为高电平或低电平
②SCL高电平,SDA高低电平不变,接收器接收①中发送的数据
③重复上述过程,一次只能发送1位数据,一个字节(8bit)需要重复8次

在这里插入图片描述

UART在解决上述问题时采用的是规定波特率的方法,即规定好发送一位数据用的时间,通过掐时间,对时间的计算得知发送的数据位数

4.IIC寻址:

IIC发送的数据可能是地址也可能是真正的数据
(如起始信号,就发送了地址)。
IIC发送起始信号后,各从机将发送的地址与自身地址对比,确认自己是否准备传输数据,确定被主机“呼叫”后,从机根据最后一位数字确定自身作为发送器或者接收器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【常见通讯协议】之IIC 的相关文章

随机推荐