IIC协议介绍

发布时间 2023-07-10 20:30:24作者: csatwdy

(1)CSDN学习参考资料

1. 什么是I2C?
I2C全拼Inter Integrated Circuit,简称IIC或I2C,是由Philips公司开发的两线时串行总线,用于SOC与外设的连接通讯,它只需要两根线就能实现I2C的通讯,采用主从模式,主的一方可以读写数据,而从的一方只能等待被读写。从的一方没有主动权。

I2C是双向通讯的,由两根线完成,分别是:SDA(串行数据线)、SCL(串行时钟线),接口输出模式为开漏输出,其总线接口已经集成到SOC内部,我们只需要通过原理图找到它的接口,在用外设的杜邦线或者其它方法连接到此接口上就可以实现I2C的通讯。

SDA与SCL都外接了上拉电阻,所以当SDA空闲时刻输出的永远是高电平,它对外设也有一定要求,要求外设的输出模式也是开漏输出,因为这跟它本身的电路实现有关,若两个电路接口模式不一致是无法完成正常通讯的。

其中I2C里的上拉电阻也不是随便用的,因为电阻值越高意味着信号拉高周期越长,那么通讯周期时间就越高,速率就下来了。

I2C为每个设备提供了一个地址,可以通过这个地址找到不同的设备,来表明不同的设备,只有从设备收到是自己的地址时才响应。

因为连接在I2C上的可能有很多个设备,从设备需要设置自己的地址,主设备不用,因为主设备是不会被从设备读写的,主设备是负责读写其它设备的。

通讯时会有一个起始数据,这个数据是9个bit位,前7位是从设备地址,最后一位是方向(0/1(读或写))

这也就表明从设备的地址不能超过7个bit

 

2.IIC通信过程

在起始条件产生后,总线处于忙状态,由本次数据传输的主从设备独占,其他I2C器件无法访问总线;而在停止条件产生后,本次数据传输的主从设备 将释放总线,总线再次处于空闲状态。

————————————————
版权声明:本文为CSDN博主「17岁boy想当攻城狮」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/bjbz_cxy/article/details/119925257

(2)视频讲解I2C

4分钟看懂!I2C通讯协议 最简单的总线通讯!_哔哩哔哩_bilibili