IIC通信理解

news/2024/12/15 17:43:37/

前言

  就个人对IIC通信的理解,通过用图文的方式,尽量简洁的记录下此文。希望能对大家理解IIC通信协议有所帮助。

理解IIC

  对于IIC协议的理解,我个人是将完整的IIC时序协议,分成六大块理解。分别是开始条件,结束条件,发送字节,发送字节,发送应答,接收应答。通过对六大块的调用。拼接起来使用即可组成完整的IIC协议通信。

以下约定:"高"指高电平,"低"指低电平

开始条件(1):SDA由高变低,SCL高电平期间。
结束条件(1):SDA由低变高,SCL不变。
发送字节(8):将要发送的数据(0或1)置给SDA,然后SCL由"低"变"高",就完成一次一位数据的发送,循环8次,就是发送一个字节。
发送字节(8):释放SDA,然后SCL由"低"变"高",此时读取SDA的电平,就是从机返回的一位数据,循环8次,就能接收到一个字节。
发送应答(1):当主机发送完一个字节数据后,等待从机的回应。用来为主机判断从机有没有接受到数据做判断。
接收应答(1):当主机接收完一个字节数据后,给予从机的回应。用来为主机判断从机有没有接收到数据做判断。

上面的六大操作块后都跟(x),x为SDA和SCL操作的次数。(我目前见到的IIC协议是这样,不排除有改变或没见过的)

图解IIC

  以下是参考江科大的IIC的图形和我个人理解,绘制出来的时序六大块,看着就一目了然。

  1. IIC六大块图片解析

    在这里插入图片描述

    图中紫色线条和字眼的,代表输入权转移都从机,主机则在等待状态。

  2. 基础IIC通信

    下图的图示就介绍的模块拼接后,完成一次收发通信的演示。

    在这里插入图片描述

知识要点:

  1. 一般情况下,通信数据高位在前。
  2. IIC器件两条线SDA(数据线),SCL(时钟线)。
  3. SDA,SCL线在IIC协议上是要默认高电平的,必要时是要加上上拉电阻。
  4. IIC协议的通信速度分为三种模式:1.标准模式的传输速率为100Kb/s;2.快速模式为400Kb/s;3.高速模式为3.4Mb/s。
  5. 本文记录中IIC通信时没有强调速率的影响,但是在实际使用时,如果引脚速率太快,就要在软件中,适当的在每个时序块操作中,添加一定的延时。

http://www.ppmy.cn/news/71473.html

相关文章

关于modbus通讯协议

什么是modbus通讯协议? Modbus是一种通用的串行通信协议,最初由Modicon公司开发,用于PLC(可编程逻辑控制器)和其他工业设备之间的通信。现在已成为工业通信领域的标准,广泛应用于可编程控制器、传感器、仪…

打印菱形(两种思路)

一、输入的行数等于上半部分的金字塔行数 思路: 仔细观察图形,可以发现,此图形中是由空格和*按照不同个数的输出组成的。 上三角:先输出空格,后输出*,每行中空格:从上往下,一行减少一…

掌握ZBrush的19个建模技巧,让你的雕刻作品更逼真

ZBrush 是一个数字雕刻和绘画软件,它以强大的功能和直观的工作流程彻底改变了整个三维行业,按照世界领先的特效工作室和全世界范围内的游戏设计者的需要,以一种精密的结合方式开发成功的,它提供了极其优秀的功能和特色&#xff0c…

git提交代码到GitLab步骤及拉取远程分支内容

一、本地建立一个空文件夹 点击鼠标右键点击红色箭头方向 Git Hash Here 二、git init 进行初始化 这个时候文件夹中会出现 .git 文件夹 三、添加远程仓库地址 git remote add origin (address) # 添加远程仓库地址 address是远程仓库代码链接 四、如果有分支把远程分支拉到…

Linux的tail,grep,sed命令总结,以使用上述三种命令获取日志信息为例

目录 tail命令语法说明基本参数命令举例 grep命令语法说明匹配模式选择杂项输入控制文件控制 sed命令语法格式举例 使用命令组合查询日志信息 业务需求需要对软件日志进行查询和呈现,查询的条件是时间区间和关键词,系统运行在linux环境下,为此…

JavaWeb编程面试题——Spring Boot

目录 引言一、面试题导航二、面试题目1.什么是SpringBoot?2.谈谈你对SpringBoot的理解?3.为什么需要SpringBoot?4.SpringBoot的配置文件有哪几种格式?5.SpringBoot支持哪些日志框架?推荐和默认的日志框架是哪个&#x…

TCP协议和相关特性

1.TCP协议的报文结构 TCP的全称为:Transmission Control Protocol。 特点: 有连接可靠传输面向字节流全双工 下面是TCP的报文结构: 源端口和目的端口: 源端口表示数据从哪个端口传输出来,目的端口表示数据传输到哪个端口去。…

软件测试4年从外包15K跳槽去字节 38K+12,啃完这份笔记你也可以

转行做软件测试已经是第4个年头,一直是一个不温不火的小职员,本本分分做着自己的事情,觉得自己的工作已经遇到了瓶颈,一个偶然的机会,获得了一份软件测试全栈知识点学习笔记,通过几个月的学习,5…