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必须保持在当前电平状态的最小时间。这个时间确保了数据在时钟边沿之后仍然稳定,直到从设备完成采样。

时序图/学习笔记

《字丑勿喷》

相关推荐
黎宇幻生32 分钟前
Java全栈学习笔记39
java·笔记·学习
诸葛悠闲3 小时前
XCP协议在以太网上实现的配置
学习
遇印记4 小时前
大二java学习笔记:二维数组
java·笔记·学习
爱吃甜品的糯米团子4 小时前
Linux 学习笔记之进程管理、网络基础与常用软件安装
linux·网络·学习
bnsarocket6 小时前
Verilog和FPGA的自学笔记6——计数器(D触发器同步+异步方案)
笔记·fpga开发·verilog·自学·硬件编程
Purple Coder6 小时前
面试-上海电力大学研一的学习经验
学习
LK_077 小时前
【Open3D】Ch.3:顶点法向量估计 | Python
开发语言·笔记·python
饮浊酒7 小时前
Python学习-----小游戏之人生重开模拟器(普通版)
python·学习·游戏程序
li星野7 小时前
打工人日报#20251011
笔记·程序人生·fpga开发·学习方法
摇滚侠7 小时前
Spring Boot 3零基础教程,yml配置文件,笔记13
spring boot·redis·笔记