单片机中I2C通信协议

参考链接:https://www.bilibili.com/video/BV1Mb411e7re?p=27

1. I2C介绍

(1)I2C总线是由philips公司开发的一种通用数据总线,两根通信线:SCLSDA,同步、半双工,带数据应答。I2C设备的SCL连在一起,SDA连在一起。

(2)设备的SCLSDA均要配置成开漏输出模式,SCLSDA各添加一个上拉电阻,阻值一般为4.7KΩ左右。开漏输出和上拉电阻的共同作用实现了“线与”的功能,此设计主要是为了解决多机通讯互相干扰的问题。图为I2C总线连接图。

(3)开漏输出就是不输出电压,控制输出低电平0时引脚接地,控制输出高电平1时引脚既不输出高电平,也不输出低电平,为高阻态(不能正常输出1)。

image-20210718222212762

2. AT24C02中引脚的作用

(1)AT24C02存储芯片中WP引脚为写保护引脚,高电平有效(禁止写,只读),低电平失效(可读可写),一般连接低电平。

(2)A0A1A2引脚在使用多个AT24C02才会使用,可以根据A0-A2的地址不同,选择对应地址的AT24C02进行通信,一般只使用一个AT24C02时A0-A2都接低电平。

3. I2C通信–起始条件和终止条件

起始条件:SCL高电平期间,SDA从高电平切换到低电平

终止条件:SCL高电平期间,SDA从低电平切换到高电平
image-20210718222810937

4. I2C通信–主机发送一个字节

SCL低电平期间,主机将数据位依次放到SDA线上(高位在前),然后拉高SCL,从机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可发送一个字节
image-20210718223452103
5. I2C通信–主机接收一个字节

SCL低电平期间,从机将数据位依次放到SDA线上(高位在前),然后拉高SCL,主机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可接收一个字节(主机在接收之前,需要释放SDA,让从机掌控SDA线)
image-20210718223559712
6. I2C通信–主机接收应答

在发送完一个字节之后,主机在下一个时钟接收一位数据,判断从机是否应答,数据0表示应答,数据1表示非应答(主机在接收之前,需要释放SDA给从机发送应答)
image-20210718224059214
7. I2C通信–主机发送应答
在接收完一个字节之后,主机在下一个时钟发送一位数据,数据0表示应答,数据1表示非应答
image-20210718224142246

8. I2C通信–主机发送数据给从机的流程
image-20210718224443271

9. I2C通信–主机接收一帧数据的流程
image-20210718224756958
10. I2C通信–主机先发送在接收数据帧(也称复合格式)
image-20210718225054077
11. I2C通信–字节写:在WORD ADDRESS的对应地址处写入数据DATA
image-20210718225158333
12. I2C通信–随机读:读出在WORD ADDRESS处的数据DATA
image-20210718225300718

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单片机I2C通信是指使用I2C总线进行通信的一种方式。I2C(Inter-Integrated Circuit)是一种串行通信协议,通过两根线(SDA和SCL)进行数据传输。下面详细讲解单片机I2C通信的流程。 首先,单片机需要配置相关的I2C参数,包括时钟频率、地址、触发方式等。 接下来,单片机作为主设备发送起始信号(Start),告诉从设备通信开始。主设备通过SDA线将电平从高变为低,同时保持SCL线为高电平。然后,主设备发送从设备的地址和通信模式到SDA线上。 从设备在接收到主设备的地址和通信模式后,会返回应答信号(ACK)。应答信号是由从设备通过SDA线将电平从低变为高来发送给主设备。 接下来,主设备发送数据到从设备,从设备再次返回应答信号。如果主设备需要继续发送数据,会继续发送,并持续接收从设备的应答信号。 最后,主设备发送停止信号(Stop),告诉从设备通信结束。主设备通过SDA线将电平从低变为高,同时保持SCL线为高电平。如此一来,整个通信过程结束。 在通信过程,如果从设备无法返回应答信号,或者主设备发送停止信号后,从设备还在发送应答信号,则表明通信有错误发生,需要重新启动通信。 总之,单片机I2C通信是通过I2C总线进行的串行数据传输。主设备发送起始信号,然后发送地址和通信模式,从设备返回应答信号,主设备发送数据并接收应答信号,最后发送停止信号结束通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值