I2C

(1)I2C速度

标准模式下:100Kbps     快速模式下:400Kbps      高速模式下:3.4Mbps     串口的最高速度是115.2Kbps,和I2C的标准速度差不多。

(2)I2C结构

I2C_第1张图片

如上图所示:I2C是OC(集电极开路)或OD(漏极开路)输出结构。I2C总线上挂的I2C器件越多,就要求I2C的驱动能力越强,R的取值就要越小,标准模式下R选择10k,快速模式下R选取1k。实际设计中,一般是先选取4.7k上拉电阻,然后在调试的时候根据实测的I2C波形再调整R的值。

(3)I2C总线上最多能挂多少个I2C器件?

I2C器件的数量由两个条件决定:

a. I2C从设备的地址位数,I2C标准中有7位地址,2^7=128。

b. 挂在I2C总线上所有I2C器件的管脚寄生电容之和,I2C总线规范要求,I2C总线容性负载最大不能超过470pF。

(4)I2C工作原理?

空闲情况下,SCL和SDA都处于高电平状态。SCL是主设备发出的,SDA是双向数据线,主从设备都可以控制。

I2C_第2张图片

开始标志,SCL信号处于高电平期间,SDA信号出现一个由高电平向低电平的跳变。

I2C_第3张图片

结束标志,SCL信号处于高电平期间,SDA信号出现一个由低电平向高电平的跳变。

I2C_第4张图片

有效数据,在SCL处于高电平期间,SDA保持状态稳定的数据才是有效数据,只有在SCL处于低电平状态时,SDA才允许状态切换。只有这样才可以辨认开始和标志位,开始和结束都是在SCL处于高电平时候发生跳变

I2C_第5张图片

 

SLAVE ADDRESS为7bits数据,R/W=1,为读,=0,为写。DATA数据位8bits。在读的情况下,当主设备发送从地址,接收到从地址的应答信号后,马上接收数据,当不做应该时,就表示数据传输结束。

 (5)UART与I2C

a. 串口通信一对一的全双工通信。因为有固定的波特率,所以它不需要时钟的同步。串口可以配置传输bits数为6、7、8,传输格式更为灵活。依靠奇偶校验来判断接收到的数据是否正确。

b. I2C通信是一对多的半双工通信。如果也有固定波特率,相信一根线也能完成通信,但速度不固定,所以需要使用一根SCL来同步。I2C总线按字节传输,即每次传输8bits二进制数据。依靠从设备的应答来完成通信。

 

 

转载于:https://www.cnblogs.com/hunningtu/p/3327060.html

你可能感兴趣的:(I2C)