一篇短文让你彻底理解什么是I2C通信

本文详细介绍了I2C协议的工作机制,包括起始和停止信号、数据传输、设备地址识别、数据方向、数据有效性、应答信号以及E2PROM存储器(如AT24Cxx)的结构和地址设置。还探讨了如何在单根SDA线上实现双向数据传输的方法。
摘要由CSDN通过智能技术生成

⑦ 连接到相同总线的 IC 数量受到总线的最大电容 400pF 限制 。

三、I2C协议层

I2C 的协议定义了通信的起始和停止信号、数据有效性、响应、仲裁、时钟同步和地址广播等环节。

1、写操作

刚开始主机要发出一个start信号,然后发出一个设备地址(用来确定是往哪一个从机写数据),方向(读/写,0表示写,1表示读)。

回应(用来确定这个设备是否存在),然后就可以传输数据,传输数据之后,要有一个回应信号(确定数据是否接受完成),然后再传输下一个数据。

每传输一个数据,接受方都会有一个回应信号,数据发送完之后,主机就会发送一个P停止信号。

  • 白色背景:主→从
  • 灰色背景:从→主

2、读操作

刚开始主机要发出一个start信号,然后发出一个设备地址(用来确定是从哪一个芯片读取数据),方向(读/写,0表示写,1表示读)。

回应(用来确定这个设备是否存在),然后就可以传输数据,传输数据之后,要有一个回应信号(确定数据是否接受完成),然后在传输下一个数据。

每传输一个数据,接受方都会有一个回应信号,数据发送完之后,主机就会发送一个P停止结束信号。

  • 白色背景:主→从
  • 灰色背景:从→主

3、起始信号与停止信号

起始信号S停止信号P是两种特殊的状态。

当 SCL 线是高电平时 SDA 线从高电平向低电平切换,这个情况表示通信的起始。

当 SCL 是高电平时 SDA 线由低电平向高电平切换,表示通信的停止。

起始和停止信号一般由主机产生。

4、设备地址与数据方向

I2C 总线上的每个设备都有自己的独立地址,主机发起通信时,通过SDA 信号线发送设备地址(SLAVE_ADDRESS)来查找从机。

I2C 协议规定设备地址可以是 7 位或 10 位,实际中 7 位的地址应用比较广泛。

紧跟设备地址的一个数据位用来表示数据传输方向,它是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值