IIC总线原理

news2024/9/21 4:40:11

1. IIC总线概述

IIC总线

IIC总线是Philips公司在八十年代初推出的一种串行、半双工总线
主要用于近距离、低速的芯片之间的通信;IIC总线有两根双向的信号线一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步;IIC总线硬件结构简单,成本较低,因此在各个领域得到了广泛的应用

在这里插入图片描述

IIC总线

IIC总线是一种多主机总线,连接在IIC总线上的器件分为主机和从机主机有权发起和结束一次通信,而从机只能被主机呼叫;当总线上有多个主机同时启用总线时,IIC也具备冲突检测和仲裁的功能来防止错误产生;
每个连接到IIC总线上的器件都有一个唯一的地址(7bit),且每个器件都可以作为主机也可以作为从机(同一时刻只能有一个主机),总线上的器件增加和删除不影响其他器件正常工作;IIC总线在通信时总线上发送数据的器件为发送器,接收数据的器件为接收器;
在这里插入图片描述

1.1 IIC总线通信过程

  1. 主机发送起始信号启用总线
  2. 主机发送一个字节数据指明从机地址和后续字节的传送方向
  3. 被寻址的从机发送应答信号回应主机
  4. 发送器发送一个字节数据
  5. 接收器发送应答信号回应发送器
    … … (循环步骤4、5)
    n. 通信完成后主机发送停止信号释放总线

1.2 IIC总线寻址方式

IIC总线上传送的数据是广义的,既包括地址,又包括真正的数据
主机在发送起始信号后必须先发送一个字节的数据,该数据的高7位为从机地址,最低位表示后续字节的传送方向,'0’表示主机发送数据,'1’表示主机接收数据;总线上所有的从机接收到该字节数据后都将这7位地址与自己的地址进行比较,如果相同,则认为自己被主机寻址,然后再根据第8位将自己定为发送器或接收器
在这里插入图片描述

2. IIC总线信号实现

通信过程有5步,本质上就是有起始信号停止信号字节传送应答

2.1 起始信号和停止信号

SCL为高电平时,SDA由高变低表示起始信号
SCL为高电平时,SDA由低变高表示停止信号
起始信号和停止信号都是由主机发出,起始信号产生后总线处于占用状态
停止信号产生后总线处于空闲状态
在这里插入图片描述

2.2 字节传送与应答

IIC总线通信时每个字节为8位长度,数据传送时,先传送最高位,后传送低位,发送器发送完一个字节数据后接收器必须发送1位应答位来回应发送器即一帧共有9位

在这里插入图片描述

2.3 同步信号

SCL和SDA总线空闲时都是高电平
同步信号:但凡是通信都存在两个问题,
一:什么时候发送什么时候接收
二:通信是用高低电平进行的,但是发送10和110从图上面都是高低电平,怎么区分呢?
在这里插入图片描述
串口的解决方法(一):通信的开始之前,会先发送一个起始信号,表示通信的开始
串口的解决方法(二):通过波特率(设置波特率为1)那么就表示每秒钟传送1位,一个 高/低 电平持续1秒

IIC总线的解决方法(一):通信的开始之前,会先发送一个起始信号,表示通信的开始
IIC总线的解决方法(二)
IIC总线可发送任意多个字节不会出现误差,因为收发双发用的同一总线
IIC总线在进行数据传送时,时钟线SCL为低电平期间发送器向数据线上发送一位数据,在此期间数据线上的信号允许发生变化,时钟线SCL为高电平期间接收器从数据线上读取一位数据,在此期间数据线上的信号不允许发生变化,必须保持稳定

在这里插入图片描述

3. 典型IIC时序

  1. 主机向从机发送数据
    在这里插入图片描述

  2. 从机向主机发送数据
    在这里插入图片描述

:阴影部分表示数据由主机向从机传送,无阴影部分则表示数据由从机向主机传送;A表示应答, A非表示非应答,S表示起始信号,P表示终止信号

  1. 主机先向从机发送数据,然后从机再向主机发送数据
    在这里插入图片描述

:阴影部分表示数据由主机向从机传送,无阴影部分则表示数据由从机向主机传送;A表示应答, A非表示非应答,S表示起始信号,P表示终止信号

IIC总线小例子:

若使用IIC总线让从机给主机发送一个字节的数据0xA2,画出SCL和SDA上的时序图

注:从机地址为0x63

在这里插入图片描述

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

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

相关文章

elementPlus——图标引入+批量注册全局组件——基础积累

因为我们要根据路由配置对应的图标,也要为了后续方便更改。因此我们将所有的图标注册为全局组件。(使用之前将分页器以及矢量图注册全局组件的自定义插件)(所有图标全局注册的方法element-plus文档中已给出) 全局注册…

vue中 .env .env.development .env.production 详细说明

1.配置文件有: .env 全局默认配置文件,不论什么环境都会加载合并 .env.development 开发环境下的配置文件 .env.production 生产环境下的配置文件 2.命名规则: 属性名必须以VUE_APP_开头,比如VUE_APP_XXX 3.关于文件的加载&#x…

kubernetes基于helm部署minecraft

kubernetes基于helm部署minecraft kubernetes容器集群中部署minecraft server服务器。 项目地址:https://github.com/itzg/minecraft-server-charts 官方文档:https://itzg.github.io/minecraft-server-charts/ 前置要求: 已准备kubern…

国标GB28181视频平台EasyGBS国标平台的应用场景以及方案实现

EasyGBS国标视频融合云平台基于端-边-云一体化架构,部署轻量简单、功能灵活多样,平台可支持多协议(GB28181/RTSP/Onvif/海康SDK/Ehome/大华SDK/RTMP推流等)、多类型设备接入(IPC/NVR/监控平台),在视频能力上&#xff0…

华为认证含金量如何

华为认证是指通过华为技术有限公司官方认证考试所获得的认证资格。华为认证主要分为三个级别:华为认证工程师(HCIE)、华为认证专家(HCNP)和华为认证技术专家(HCNA),每个级别都有不同…

lvs集群与nat模式

一,什么是集群: 集群,群集,Cluster,由多台主机构成,但是对外只表现为一个整体,只提供一个访问入口(域名与ip地址),相当于一台大型计算机。 二,集…

什么是Liquid UI?

热门议题: 1、企业如何快速解决人员移动办公的需求,比如在苹果安卓手机,平板电脑,MAC登录SAP。2、企业如何解决用户经常抱怨的流程复杂,操作繁琐,难以使用等问题 公司介绍: Synactive,Inc. 是…

【推荐】深入浅出学习Spring框架

​ 目录 1.spring简介 1.1含义 1.2优点 2,Spring之IOC详解 2.1,控制反转是什么 2.2,控制反转案例 2.1.3案例前台测试 3、IoC的三种注入方式 3.1 构造方法注入 3.2 setter方法注入 3.3 接口注入(自动装配)用的最多&…

⛳ Java 反射

目录 ⛳ Java 反射🎨 一、反射概述**🎃 使用反射的前提条件: **🎲 类正常加载过程如下图:反射优缺点:🧸 Java反射机制提供的功能: **🥅 反射主要API** 🏭 二、反射的使用&#x1f3a…

01.修改simvision字体大小

修改simvision字体大小 ①cd ~/.simvision ② ls 查看是否有Xdefaults文件 1.如果有,gedit/vim Xdefaults 打开文件,搜索SrcBrowser修改数字,默认12这里修改成25,还有WaveWindow、DesignBrowser等都能改,我全部都修改…

爬虫逆向实战(四)--猿人学第一题

一、数据接口分析 主页地址:猿人学第一题 1、抓包 当我们打开F12时会发现直接debugger了,是一个无限debugger,我们直接右键debugger那一行,然后选择“一律不再此处暂停”就可以了 通过抓包可以发现登录接口是api/match/1 2、…

一条提示词等同于多少个数据点?

数据点(data points)通常用于描述单个信息单位或观测值,在本文中,它被用来量化“提示词”方法相对于传统方法的效率和效果。文章比较了两种训练(微调)机器学习模型的方法:一种是使用提示 (promp…

python——案例23:创建一个按钮

案例23:创建一个按钮from tkinter import * def xinlabel():global xinsLabel(xin,text完成)s.pack() xinTk() blButton(xin,text下一步,commandxinlabel) bl.pack() xin.mainloop()

【golang】函数(func)正确使用姿势

函数不但可以用于封装代码、分割功能、解耦逻辑,还可以化身为普通的值,在其他函数间传递、赋予变量、做类型判断和转换等等,就像切片和字典的值那样。 而更深层次的含义就是:函数值可以由此成为能够被随意传播的独立逻辑组件&…

使用PyMuPDF库的PDF合并和分拆程序

PDF工具应用程序是一个使用wxPython和PyMuPDF库编写的简单工具,用于合并和分拆PDF文件。它提供了一个用户友好的图形界面,允许用户选择源文件夹和目标文件夹,并对PDF文件进行操作。 C:\pythoncode\blog\pdfmergandsplit.py 功能特点 选择文…

高速数据采集卡---AD采集FMC子卡模块产品资料下载

FMC152是一款基于VITA57.1标准的,实现2路14-bit、2GSPS/2.6GSPS/3GSPS AD采集FMC子卡模块。该模块可直接与FPGA载卡配合使用,板卡ADC器件采用ADI公司的AD9208芯片,与ADI公司的AD9689可以实现PIN脚兼容。该模块全功率模拟输入带宽(…

【FAQ】安防监控视频云存储平台EasyNVR频繁离线的原因排查与解决

有用户反馈,在使用EasyNVR时会出现通道频繁离线的情况。针对该反馈我们立即进行了排查。 安防视频监控汇聚EasyNVR视频集中存储平台,是基于RTSP/Onvif协议的安防视频平台,可支持将接入的视频流进行全平台、全终端分发,分发的视频流…

(二)结构型模式:6、外观模式(Facade Pattern)(C++实例)

目录 1、外观模式(Facade Pattern)含义 2、外观模式的UML图学习 3、外观模式的应用场景 4、外观模式的优缺点 5、C实现外观模式的简单实例 1、外观模式(Facade Pattern)含义 外观模式(Facade Pattern)…

气象监测设备——分类与应用

气象监测设备多种多样,不同的应用场景选择适合的气象监测设备才能事半功倍。 在植保站中,可以 选择农林植保小气候气象站,它可以帮助植保站的工作人员完成气象监测工作,对天气环境进行预报预测,为植物的健康生长提供保…

Windows系统如何查看端口被占用程序和停止占用端口程序

windows系统如何查看端口被占用程序和停止占用端口程序,以及windows常用的网络命令详解 打开命令窗口 电脑右下方,搜索框,输入“cmd”,回车打开dos命令窗口 查看系统所有被占用的端口命令 netstat -ano 查看指定端口是否被占用命令 netst…