首页 > 其他分享 >IIC通信中设备的交互流程

IIC通信中设备的交互流程

时间:2024-09-11 15:22:40浏览次数:9  
标签:主机 流程 发送 从机 SDA IIC 接收 交互

本文主要叙述,当两个设备进行 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线为高电平。

标签:主机,流程,发送,从机,SDA,IIC,接收,交互
From: https://blog.csdn.net/aElect/article/details/142138006

相关文章

  • 互联网算法备案必要性+攻略全流程详解【附件+流程】
    一、算法备案的重要性算法备案是指相关企业或组织向有关部门提交其使用的算法的相关信息,以接受监管和审查。这一举措有助于确保算法的公正性、透明性和合法性,保护用户的权益,促进数字经济的健康发展。算法备案必要性强制性例如,在推荐系统中,如果算法存在偏见或歧视,可能会导致......
  • springMVC工作流程
    springMVC的主要组建是dispatcherServelt, 1、用户发送http请求到前端控制器DispatcherServlet,2、DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle,3、处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器,一并返回给DispatcherServ......
  • 程序员也需要流程图?
       市面上常用的流程图软件有很多,常见的有Visio,ProcessOn,draw.io等等。最开始尝试了Visio,老大哥般的存在,微软旗下的,不过有点贵;后来尝试了免费的draw.io和processon,整体还不错,但长期使用的话会发现比Visio差点手感。  但你以为我会选择其中一个推荐吗?其实我推荐的是......
  • Apache SeaTunnel Zeta 引擎源码解析(二) Client端的任务提交流程
    作者:刘乃杰编辑整理:曾辉引入本系列文章是基于ApacheSeaTunnel2.3.6版本,围绕Zeta引擎给大家介绍其任务是如何从提交到运行的全流程,希望通过这篇文档,对刚刚上手SeaTunnel的朋友提供一些帮助。我们整体的文章将会分成三篇,从以下方向给大家介绍:SeaTunnelServer端的初始化Cl......
  • 通过scanner与用户交互
    用户交互scanner代码,使用Linepackagecom.scanner;importjava.util.Scanner;publicclassDemo01{publicstaticvoidmain(String[]args){//创建一个扫描器对象,用于接收键盘数据Scannerscanner=newScanner(System.in);System.out.......
  • 大模型备案全网最详细流程解读(附附件+重点解读)
    文章目录一、语料安全评估二、黑盒测试三、模型安全措施评估四、性能评估五、性能评估六、安全性评估七、可解释性评估八、法律和合规性评估九、应急管理措施十、材料准备十一、【线下流程】大模型备案线下详细步骤说明十二、【线上流程】算法备案填报流程及重难点......
  • Spring Cloud全解析:熔断之Hystrix执行流程
    Hystrix执行流程每次调用创建一个新的HystrixCommand,把依赖调用封装在run()方法中执行execute()/queue做同步或异步调用判断熔断器(circuit-breaker)是否打开,如果打开则执行fallback进行降级策略,如果关闭继续执行判断线程池/队列/信号量是否跑满,如果跑满执行fallback进行降级......
  • Vue 方法与事件处理与 TypeScript:增强前端应用的交互性
    ......
  • ADCIRC+SWAN耦合模型使用流程
    0、前言        由于我发现,关于风暴潮耦合模型ADCIRC+SWAN,能够在网上找到的资料实在是少之又少,所以特此打算写一系列的有关该模型的使用流程。1、软件介绍        在这里或许有人会问,到底什么是ADCIRC?什么是SWAN?为什么会有两个模型,而ADCIRC+SWAN又是什么?......
  • IIC工作模式时序分析
    IIC工作模式时序分析此处利用IO口模拟IIC通信过程中的时序。通信过程在IIC通信过程SDA存在两种模式(接收模式和发送模式),发送或接受一个字节(器件的7个bit+1个bit方向(1-读方向,0-写方向))模式配置当SDA为接入模式接收了1字节数据后在第九个时钟脉冲期间就要变成输出模式发送as......