首页 > 其他分享 >简洁IIC协议讲述

简洁IIC协议讲述

时间:2024-12-21 20:29:58浏览次数:10  
标签:简洁 讲述 字节 应答 信号 --- IIC 时钟

目录

一:首先,IIC传输是在2条线上传输的。

二:时钟信号的频率和占空比解释(可以看作PWM波形)

三:传输信号的流程图(起始和终止信号都是由主机(我)控制)

四:开始信号和结束信号的解释。

五:完整IIC传输波形分析





一:首先,IIC传输是在2条线上传输的。

一条叫时钟线。(SCL)

一条叫数据线。(SDA)

并且这两条线在空闲时候,都是默认被上拉电阻拉高的高电平。




二:时钟信号的频率和占空比解释(可以看作PWM波形)

时钟始终有主机控制,谁发起IIC起始谁就是主机。

在标准模式(100 kHz内任意频率)和快速模式(400 kHz内任意频率)下虽然理论上时钟信号可以有任意占空比,但通常推荐50%的占空比。(能用多高频率要看设备支持多高)




三:传输信号的流程图(起始和终止信号都是由主机(我)控制)

【我发起始信号 】 --->【(底下IIC设备的地址码(读或写) 】(应答) ---> 【 (读或写)一个字节数据 】(应答)  --->【这里可以继续发送或接收下个字节数据】(应答) ---> 【我发停止信号】

示例一:现在需要向底下的IIC设备写入2个字节数据。

【我发起始信号 】 --->【(底下IIC设备的地址码(写) 】(对方应答) ---> 【 (写)一个字节数据 】(对方应答)  --->【 (写)一个字节数据 】(对方应答)】 ---> 【我发停止信号】

示例二:现在需要向底下的IIC设备读取2个字节数据。

【我发起始信号 】 --->【(底下IIC设备的地址码(读) 】(对方应答) ---> 【 (读)一个字节数据 】(我应答)  --->【 (读)一个字节数据 】(我不应答)】 ---> 【我发停止信号】



四:开始信号和结束信号的解释。

在时钟SCL为高电平时,数据SDA线上的任何变化都会被解释为起始或停止条件

也就是其他任何数据必须在时钟SCL低电平时候改变好。

数据和应答等等是在时钟上升沿中断中读取数据线电平(此时时钟SCL是高电平)。




五:完整IIC传输波形分析

任何数据必须在时钟SCL低电平时候改变好。

数据和应答等等是在时钟上升沿中断中读取数据线电平(此时时钟SCL是高电平)。

(读取到高电平代表数据1,低电平代表0)

设备地址有些是9个二进制位,这个要注意。一般都是7个。

读操作中的停止信号:
在读操作期间,主设备接收到来自从设备的数据,并在接收到所需的所有字节后发出非应答信号(NACK),表示不再需要更多数据。
接下来,主设备会在适当的时候发出停止条件来结束通信。这通常是在最后一个字节被成功接收并处理之后。

标签:简洁,讲述,字节,应答,信号,---,IIC,时钟
From: https://blog.csdn.net/qq_39756231/article/details/144634218

相关文章

  • 探秘 IIC 与 SPI:软件模拟与硬件接口的抉择之谜
    一、IIC软件模拟:受限中的灵活应变在嵌入式系统的通信世界里,IIC常采用软件模拟的方式开展工作,这背后有着诸多考量。首先,硬件资源的限制是一个重要因素。不少微控制器并没有内置功能完备的IIC硬件模块,甚至压根就不存在这样的模块。而软件模拟IIC则巧妙地绕开了这一硬件短......
  • 智能家居作为工具类产品,就真的适合走简洁大气路线。
    智能家居作为工具类产品,确实适合走简洁大气路线。首先,简洁大气的设计能让用户在操作时更加轻松便捷,不会被复杂的界面和过多的装饰分散注意力。其次,智能家居通常需要与家居环境相融合,简洁大气的风格更容易与各种装修风格搭配,不会显得突兀。再者,这种设计风格也符合现代人对生活......
  • 【代码设计】Java 用注解简洁明了的标注数据筛选特性
    基础设计默认值:仅包含正常状态数据,例如账户:不包含离职账户的正常账户即为deletedData=false,wantsEnabled=true,wantsDisabled=false场景举例:场景一:正常的只展示正常的账户,则为默认的情况场景二:只搜索不正常的已经删除的账户,则与上一条完全相反,则为wantsEnabled=......
  • 嵌入式必备知识-IIC协议
    此篇文章在2023年8月8日被记录1、概述IIC(Inter-IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器以及其外围设备,IIC也被称为I2C,其实两者是完全相同的。它是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。两根线定义如下:数据线SDA......
  • SQL提高查询效率【in、not in、between、like】等条件讲述
    在使用SQL语句查询数据库记录时,如果要查询相同的内容,有着不同的多种方法。仍然,尽管使用多种方法可以得到相同的结果,但是,如果您使用不同的方法,在执行效益上是截然不同的。因此,我们得仔细考虑,如果要查询相同结果,该使用哪种语句,执行效益比较好。这就是SQL语句的优化。......
  • 简洁证明是如何泄露信息的: 选择实例攻击(Chosen-Instance Attack)
    本文翻译自:https://baincapitalcrypto.com/chosen-instance-attack/#conclusion目录ThreatmodelLeakyprimitivesNon-interactiveproofsChosen-instanceattacksinthewildConclusion如果一个证明仅仅是SNARK,但不是zkSNARK会有什么问题?人们通常会产生误解:单个SNARK......
  • 10 行 Python 代码,简洁优雅的搞定 10 种数学运算!
    Python这门语言,我深有感触的是,Python的核心特性能让我们用极少的代码实现非常多的功能,尤其是在数学运算和线性代数领域。这篇文章,我就来聊聊如何用Python的一些特性写出简洁优雅的数学代码,同时也会修正一些常见误区,用更严谨的方式来实现这些功能。先说一句:如今的Python生......
  • 无需登录!简洁好用的远程桌面软件RustDesk
    前言RustDesk一款开源的远程工具,支持免安装,开箱即用,支持Windows,Macos,Linux,Android多个操作系统,安装包大小只有12M左右,无需任何配置,打开就可以直接使用,体验目前看来相当不错,支持自建服务器,已达到更快的速度。  安装环境[名称]:RustDesk[大小]:29MB[版本]:1.3.3[语言]:简......
  • 一款简洁好用的远程桌面软件RustDesk1.3.3
    点击上方蓝字关注我前言RustDesk一款开源的远程工具,支持免安装,开箱即用,支持Windows,Macos,Linux,Android多个操作系统,安装包大小只有12M左右,无需任何配置,打开就可以直接使用,体验目前看来相当不错,支持自建服务器,已达到更快的速度。全新的RustDesk可自动适应可用带宽,一键无人值守访......
  • 前端API自动化构建工具:讲述 FlyHttp 设计思想
    上篇文章:FlyHttp的诞生:从认识各种网络请求开始,本篇文章正式开始FlyHttp构建工具的设计,接下来让我们开始吧!讲述FlyHttp设计思想以Vue.js框架为例子,我们简单看一下,在进行项目开发中,使用axios在前端进行网络请求,我们需要进行哪些步骤?1.传统的开发流程1.1封装axios......