IIC通信中设备的交互流程

news2025/4/21 13:40:21

本文主要叙述,当两个设备进行 IIC 通信时,两个设备的交互流程,即主机的动作和从机的动作。当通过软件编程的方式实现设备间的 IIC 通信时,我们就是按照主机的动作或从机的动作来编写对应的代码。实际上,主机和从机是按照 IIC 通信协议的要求完成相应的动作的( IIC 通信协议在文章IIC通信基础-CSDN博客 中有详细叙述),因此,程序代码就是 IIC 通信协议的提现。下面将分别叙述当两个设备进行 IIC 通信时,主机的动作和从机的动作,为编写对应代码做好准备。

主机的动作

  1. 主机产生起始信号,通过将 SDA 线在 SCL 线为高电平时由高拉低至低电平来实现。
  2. 主机发送从机地址(7位)和指示读写方向(1位)(读写方向,0为写,1为读)。
  3. 主机等待并接收从机的应答信号(ACK)(如果从机准备好通信,从机将 SDA 线拉低作为应答)。
  4. 主机发送数据字节,每个字节后再次等待并接收从机的ACK信号。
  5. 在数据传输完成后,主机产生停止信号,通过将 SDA 线在 SCL 线为高电平时由低拉高至高电平来结束通信。

从机的动作

  1. 从机监测到起始信号后,准备接收主机发送的数据或命令。
  2. 从机接收主机发送的从机地址,并检查地址是否匹配自己的地址。
  3. 如果地址匹配,从机通过将 SDA 线拉低来发送 ACK 信号回应主机。
  4. 从机接收主机发送的每个数据字节,并在接收完成后发送 ACK 信号。
  5. 在读写操作中,如果从机需要向主机发送数据,它会在主机请求数据时准备数据,并在主机的时钟信号控制下通过 SDA 线发送数据。
  6. 在读操作中,从机在主机发送停止信号之前,根据主机的请求发送数据,并在发送每个字节后等待主机的 ACK 或 NACK 信号。

总结

IIC 通信中设备的交互流程可用下图表示,下图中流程的顺序是从左到右执行,并排的流程表示同时执行。

注意:

IIC通信中的应答信号是由接收设备在接收到一个字节数据后发送的,以确认数据已正确接收。应答信号是一个低电平脉冲,它在数据字节传输的第9个时钟周期出现。在这个周期中,发送设备释放SDA线,允许接收设备将SDA线拉低,以产生应答信号。如果接收设备成功接收了数据,它会在第9个时钟周期将SDA线拉低;如果接收设备无法接收或选择不应答,它将保持SDA线为高电平。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2126324.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小怡分享之栈和队列

前言: 🌈✨前面小怡给大家分享了顺序表和链表,今天小怡给大家分享一下栈和队列。 1.栈 1.1 概念 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#x…

聚焦:clicOH 借助 NVIDIA cuOpt 实现最后一英里交付速度 20 倍提升

受消费者行为转变和疫情影响,电子商务继续呈爆炸式增长和转型。因此,物流和运输公司发现自己处于包裹配送革命的前沿。这新的现实情况在最后一英里配送中尤为明显,而后者现在已经成为供应链物流中成本最高的要素,占从零售到制造等…

Learn ComputeShader 13 Adding a mesh to each particle

这次要给每个粒子加上网格。 添加的网格只是一个简单的四边形,它需要分成两个三角形。并且三角形的顶点必须按照顺时针排列,同时每个顶点都应该有UV信息。 所以接下来就要添加顶点结构体以及相关的compute buffer struct Vertex{public Vector3 positi…

大数据新视界 --大数据大厂之 Spark 性能优化秘籍:从配置到代码实践

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

数据结构————栈的讲解(超详细!!!)

1 栈的概念和结构 1.1 栈的概念 栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作,进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵循后进先出(先进后出)原则。特性与栈的…

杂七杂八-必备软件下载

必备软件下载 学术软件工作软件tips软件 仅个人笔记使用,后续持续更新,感谢点赞关注 学术软件 幕布:记录各种笔记,文本和思维导图快捷互换边界AIchat:集成了多个最新大模型工具,功能丰富,推荐使…

html加载页面

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>算数模一体化</title> </head><b…

GPT-4论文阅读

GPT-4 Technical Report论文阅读 文章目录 GPT-4 Technical Report论文阅读 Abstract训练的稳定性Training processPredictable scaling训练的稳定性多么难能可贵 Capabilities考试成绩传统的benchmark语言方面的能力Visual inputsSteerability LimitationsRisks & mitigat…

初识Linux · 进程(2)

目录 前言&#xff1a; 有关进程的相关理解 前言&#xff1a; 本文会开始慢慢切入进程了&#xff0c;当然&#xff0c;切入进程之前&#xff0c;我们需要再次复习一下操作系统&#xff0c;后面接着是介绍什么是进程&#xff0c;如何查看进程&#xff0c;在Linux中对应的文件…

你真的了解电阻吗

电阻通常有下面几种表示符号。 我们用的最多的还是定值电阻。 ESP32参考设计原理图用的是折线。 GD32中参考设计原理图用的是小方框。 包括我们画原理图的时候用的基本也是小方框。 折线符号属于ANSI&#xff08;美国标准&#xff09;矩形符号属于DIN标准&#xff08;德国工业…

Linux基本

一、安装 &#xff08;一&#xff09;bios basic input / output system cpu虚拟化技术需要开启 intel amd 不同品牌进入bios快捷键不一样 &#xff08;二&#xff09;vmware 新建 配置硬件 硬盘 建议单个虚拟硬盘文件&#xff0c;比较好管理 r如果有转移的需求&#xff…

freertos 任务调度—抢占式, 时间片

FreeRTOS 操作系统支持三种调度方式&#xff1a; 抢占式调度&#xff0c;时间片调度和合作式调度。 实际应用主要是抢占式调度和时间片调度&#xff0c;合作式调度用到的很少. 1,抢占式调度 每个任务都有不同的优先级&#xff0c; 任务会一直运行直到被高优先级任务抢占或者遇到…

使用 ShuffleNet 模型在 CIFAR-100 数据集上的图像分类

简介 在深度学习领域&#xff0c;图像分类任务是衡量算法性能的重要基准。本文将介绍我们如何使用一种高效的卷积神经网络架构——ShuffleNet&#xff0c;来处理 CIFAR-100 数据集上的图像分类问题。 CIFAR-100 数据集简介 CIFAR-100 数据集是一个广泛使用的图像分类数据集&…

使用了@Bean启动成功还能注入失败?秒级解决 定位分析

文章目录 Bean 断点跟不进去为什么需要多个同类型bean怎么友好处理同类型bean【任选一种】彩蛋 Bean 断点跟不进去 结论&#xff1a;你的其他代码 或者底层依赖&#xff0c;一定有改类型的自动注入代码&#xff0c;在Spring 机制中&#xff0c;默认拒绝Bean重写&#xff0c;你…

2024年一区SCI-极光优化算法 Polar Lights Optimization-附Matlab免费代码

引言 本期介绍了一种名为极光优化算法 Polar Lights Optimization (PLO)的元启发式算法。极光是一种独特的自然奇观&#xff0c;当来自太阳风的高能粒子在地磁场和地球大气层的影响下汇聚在地球两极时&#xff0c;就会发生极光。该成果于2024年8月最新发表在国际顶级JCR 1区、…

python画图|3D直方图基础教程

前述已经完成了直方图和3D图的基本学习&#xff0c;链接如下&#xff1a; 直方图&#xff1a;python画图|水平直方图绘制-CSDN博客 3D图&#xff1a;python画图|水平直方图绘制-CSDN博客 现在我们尝试把二者结合&#xff0c;画3D直方图。 【1】官网教程 首先&#xff0c;依…

微信开放标签【wx-open-launch-weapp】使用方法,亲测好用

如果你按照微信开放标签的文档来集成&#xff0c;那么恭喜你&#xff0c;绝对&#xff08;99%&#xff09;报错&#xff0c;今天在这里给大家演示一下在vue3中正确使用wx-open-launch-weapp的方法。 第一步&#xff1a; 配置wx.config&#xff0c;这个就不过多介绍了&#xff…

上海宝钢阿赛洛引领“绿能革命”:二期屋顶光伏项目赋能“双碳”目标新篇章

在“双碳”战略的宏伟蓝图下&#xff0c;一场能源革命的浪潮正席卷而来&#xff0c;分布式光伏以其独特的魅力成为这场变革中的璀璨明星。上海宝钢阿赛洛激光拼焊有限公司积极响应国家号召&#xff0c;携手上海宝钢节能环保技术有限公司&#xff0c;于近日宣布其屋顶光伏发电项…

SpringSecurity原理解析(五):HttpSecurity 类处理流程

1、SpringSecurity 在spring boot中与SSM项目中基于配置文件的区别 通过前边的笔记我们可以知道&#xff0c;在传统的SSM项目中 SpringSecurity的使用是基于配置文件 的&#xff0c;然后spring 容器初始化的时候将 SpringSecurity 中的各种标签解析成对应的Bean对象&#xff0c…

Cortex-M3架构学习:

异常类型 Cortex-M3 在内核水平上搭载了一个异常响应系统&#xff0c;支持为数众多的系统异常和外部中断。其 中&#xff0c;编号为 1 &#xff0d; 15 的对应系统异常&#xff0c;大于等于 16 的则全是外部中断。 Cortex-M3支持的中断源数目为 240 个&#xff0c;做成芯片后…