I2C/IIC学习笔记

I2C/IIC

有些同学I2C和IIC分不清,I2C和IIC实际上是指同一种通信协议。I2C是Inter-Integrated Circuit的缩写,而IIC是它的另一种表述方式,代表的是同一个意思,即"集成电路间总线"。I2C是一种由飞利浦公司(现恩智浦半导体公司)开发的简单、双向二线制同步串行总线,用于连接微控制器及其外围设备。在许多文献和技术资料中,这两个术语是交替使用的。

通信过程

I2C是一种多主机、同步、串行计算机总线,用于连接低速外围设备到微控制器和计算机系统。I2C通信过程包括以下几个关键步骤:

1.开始条件:主机设备通过将SDA从高电平拉低到低电平,同时SCL保持高电平,表示通信开始。

2.地址和读/写位:主机设备发送7位的从设备地址,然后加上一个读/写位(R/W bit)。这个位指示接下来的通信是读(1)还是写(0)操作。

3.确认地址:从设备接收到地址后,如果地址匹配,它会在时钟的下一个脉冲上拉低SDA线,发送一个应答(ACK)信号。

4.数据传输:

写操作:如果主机设备要写数据到从设备,它会在发送完地址和接收到ACK之后,发送数据字节,并在每个字节后等待从设备的ACK。

读操作:如果主机设备要从从设备读取数据,从设备会在接收到读命令后发送数据字节,主机设备在每个字节后发送ACK,除了最后一个字节,最后一个字节后发送非应答(NACK)信号。

5.重复开始条件(Repeated Start Condition):如果主设备想要发送另一个开始条件而不释放SDA线和SCL线,它可以通过发送重复开始条件来继续通信。

6.结束通信:主机设备在完成数据传输后,可以通过拉低SDA线,在SCL为高电平时生成停止条件(Stop Condition),表示通信结束。

建立/保持时间

建立时间:

指在SCL的上升沿或下降沿之前,SDA必须稳定在新的电平状态的最小时间。这个时间确保了从设备能够正确地采样到数据。

保持时间:

指在SCL的上升沿或下降沿之后,SDA必须保持在当前电平状态的最小时间。这个时间确保了数据在时钟边沿之后仍然稳定,直到从设备完成采样。

时序图/学习笔记

《字丑勿喷》

相关推荐
6.9434 分钟前
Scala——身份证号码查询籍贯
学习·scala
爱吃西瓜的小菜鸡44 分钟前
【C语言】矩阵乘法
c语言·学习·算法
西洼工作室1 小时前
【java 正则表达式 笔记】
java·笔记·正则表达式
初学者7.2 小时前
Webpack学习笔记(2)
笔记·学习·webpack
新手上路狂踩坑3 小时前
Android Studio的笔记--BusyBox相关
android·linux·笔记·android studio·busybox
创意锦囊4 小时前
随时随地编码,高效算法学习工具—E时代IDE
ide·学习·算法
stm 学习ing4 小时前
HDLBits训练3
c语言·经验分享·笔记·算法·fpga·eda·verilog hdl
尘觉4 小时前
算法的学习笔记—扑克牌顺子(牛客JZ61)
数据结构·笔记·学习·算法
1 9 J4 小时前
Java 上机实践11(组件及事件处理)
java·开发语言·学习·算法
Blankspace学5 小时前
Wireshark软件下载安装及基础
网络·学习·测试工具·网络安全·wireshark