I方C是什么啊,老是听到他们说

news2024/11/25 11:48:59

        首先说一下串口通讯,只能在两个设备之间进行,如下图:

        若三个设备相互通讯,则每个设备需要两组串口。它们其实是三组相互独立的串口通讯。如下图:

        若是四个设备相互通讯就更麻烦了,以此类推。这样一来,最突出的问题是线路连接复杂。

        为了解决上述痛点,大佬们设计了一种总线通讯,总线通讯有很多种协议,如:

        这里主要介绍IIC(常读作I方C)I^{2}C 通讯,全称Inter-Integrated Circuit,意思是芯片与芯片之间的通讯。

        可以看到,使用I2C通讯之后,即使有很多芯片,线路连接显得也十分简单。

        I2C通讯一般采用一主多从模式,例如我们的单片机是主机,而其他设备都是从机,那他是如何实现通讯的呢?

        以单片机向从属设备写信息为例,可以看到,这里是一帧标准的写数据帧,如下图。

        串口通讯的两根线分别是发送和接收,

        而I2C这两根线分别是时钟线和数据线,如下图。则上面的一帧写数据是由时钟线和数据线共同作用的,即在在同一时间,要么在发送信息,要么在读取信息。

        当处于空闲状态时,数据线和时钟线都处于高电平状态.

        而当开始传递信息时,比如传递第一位起始位,此时必须要在时钟信号为高电平期间,数据信号完成由高到低的跳变,也就是下降沿,这样起始信号就发送完成了。

        而以下是7位设备的地址码,因为有很多从属设备,每一个从属设备的地址码都是唯一的。

        为了要区别和哪一个从属设备通讯,需要先发送7位地址码,7位不同的0或者1的排列组合,一共可以表示128种结果。

        它的“0”或“1”可这样表示:

        当时钟线位高电平时,数据线上的数据必须保持稳定。比如时钟线为高时,数据线上的数据始终为高,如此一来就完成了逻辑“1”的传输。

        若数据线上始终为低电平,则表示逻辑“0”.

        若发送一组数据:

        也就是要和地址为1010 000的设备通讯。

        假设24C02的地址就是1010 000,如下图:

        此时就是这个单片机和这个24C02进行通讯

        接下来的一位是读写数据位。

        如果想要写数据,就给其置0,读数据是置1。再往下一位是应答信号,这个信号是从机发送给主机的。

        若从机收到了之前的信息,它会回复“0”,没有收到或者(主机)读取接收完成回复“1”.

        下面八位是设备寄存器的地址:

        这需要给24C02通讯,如下:

        24C02是一个存储器,其可以存储256个字节

        而我们发送的8位寄存器地址正好可以访问这256个字节,例如我们写的寄存器地址是0x01
(而0x01的二进制是0000 0001),就会往上图的0x01写入数据。然后单片机需要存储器返回一个应答信号(此时为0),告诉主机写入成功。最后再写入停止位。

        停止位与起始位相反,是当时钟信号为高时,数据信号需要由低到高的跳变。

        这样一个标准的写数据帧就完成了。

        那如何读取数据呢?跟写数据其实差不多,以下是一个标准的读数据帧,也是首先写入设备地址,然后写数据。接下来写的是寄存器的地址,在收到从机的应答信号之后,主机需要再发送一个起始信号,然后需要再发送一遍设备的地址,然后才能发送读数据。之后存储器就会把寄存器里面的数据发送给单片机,这样就完成了一帧数据的读取(最后的应答信号为1,是由主机发给从机)。

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

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

相关文章

【CUDA】 矩阵乘向量 matVecMul

Matrix - Vector Multiplication 矩阵-向量乘法是线性代数中的基本操作。它用于将一个矩阵与一个向量相乘。乘法的结果是与输入向量大小相同的向量。 矩阵和向量的乘法如图1所示。 图1 基础kernel与共享内存kernel 执行矩阵-向量乘法的基础kernel是使用单个线程执行输出向量…

教育行业的网络安全:保护学生数据与防范网络欺凌

在数字化的春风中,教育行业迎来了知识的繁花似锦,然而,随之而来的网络安全风暴也悄然逼近。学生数据的脆弱性与网络欺凌的阴影交织成一幅复杂的画卷,呼唤着教育工作者与技术专家共同编织一张密不透风的网络安全之网。本文深入探讨…

深度之眼(二十九)——神经网络基础知识(四)-循环神经网络

文章目录 一、 学习目标二、序列数据三、语言模型四、循环神经网络4.1 RNN的反向传播 五、门控循环单元-GNU5.1 候选隐藏状态 六、长短期记忆网络-LSTM七、回顾 一、 学习目标 二、序列数据 序列数据是常见的数据类型,前后数据通常具有关联性 三、语言模型 综合…

前后端分离:四种开发模式与实践指南

前后端分离:四种开发模式与实践指南 什么是前后端分离 当业务变得越来越复杂或产品线越来越多时,原有的开发模式就无法满足业务需求了。 产品越来越多,展现层的变化越来越快、越来越多,此时应该进行前后端分离的分层抽象&#…

【C语言】break 关键字

当在C语言中使用break关键字时,它通常用于两种主要情况:在循环中和在switch语句中。让我们详细看看每种情况下的用法和作用。 在循环中的使用: 在循环中,break语句的作用是立即终止当前所在的循环,然后跳出循环体执行…

Qt 使用 QZipReader 解压文件

Qt 使用 QZipReader 解压文件 文章目录 Qt 使用 QZipReader 解压文件摘要关于 QZipReader使用 QZipReader代码解释: 快速解 extractAll 关键字: Qt、 QZipReader、 extractAll、 Zip、 解压缩 摘要 每日一坑,坑坑难过,今日在…

深入解析.[datastore@cyberfear.com].mkp勒索病毒:威胁与防范

引言 在数字化时代,网络安全问题日益严峻,其中勒索病毒(Ransomware)作为一种极具破坏性的恶意软件,严重威胁着个人用户和企业机构的数据安全。.[ datastorecyberfear.com].mkp勒索病毒便是这一领域中的一颗“毒瘤”&am…

广东第二师范学院携手泰迪智能科技助力学子实习实践发展

为进一步推动和深化产教融合、校企合作,充分发挥企业在技术技能人才培养的重要作业。7月2日,广东第二师范学院统计学专业与广东泰迪智能科技股份有限公司联合开展学生专业见习活动。广东第二师范学院统计学专业专业教师曹俊飞、郑铮、泰迪智能科技高校事…

Python学生信息管理系统(完整代码)

引言:(假装不是一个大学生课设)在现代教育管理中,学生管理系统显得尤为重要。这种系统能够帮助教育机构有效地管理学生资料、成绩、出勤以及其他教育相关活动,从而提高管理效率并减少人为错误。通过使用Python&#xf…

ESP32S SENSOR与VDET引脚 无法输出问题 注意PWM输出的任意引脚并不包括所有引脚

问题记录: 注意PWM输出的任意引脚并不包括所有引脚,需要排除无法作为输出的引脚。数据手册中并没有在管脚表格中标明,如下表: 我在做esp32智能手环的时候,将GPIO39引脚(SENSOR_VN)作为蜂鸣器的P…

h5 video 播放视频

纯属娱乐,非技术之谈 https://andi.cn/page/621497.html

latex 报错解决①aligned ②begin document

1. 是aligned,不是align!! 网上写的公式大多是这样的 \begin{equation}\label{eq:2} \begin{align} Q\left( {s,t} \right) a{s^2} 2bst c{t^2} 2ds 2et f \end{align} \end{equation}但是报错: ! Package amsmath Erro…

顶顶通呼叫中心中间件(mod_cti基于FreeSWITCH)-http话术接口测试流程

文章目录 前言联系我们部署http话术PHP例子Java例子 登录ccadmin-web配置拨号方案创建与注册分机创建分机注册分机 测试 前言 用户一直想体验机器人话术的效果,但却找不到门路。本文提供了配置机器人话术接口的配置流程,供用户体验。用户可以根据本文的…

深度学习简介-AI(三)

深度学习简介 深度学习简介深度学习例子深度学习训练优化1.随机初始化2.优化损失函数3.优化器选择4.选择/调整模型结构 深度学习常见概念隐含层/中间层随机初始化损失函数导数与梯度优化器Mini Batch/epoch 深度学习训练逻辑图 深度学习简介 深度学习例子 猜数字 A: 我现在心…

Python特征工程 — 1.3 对数与指数变换

目录 1 对数变换 1.1 对数变换的概念 1.2 对数变换实战 2 指数变换 2.1 指数变换的概念 2.2 指数变换实战 3 Box-Cox变换 3.1 Box-Cox变换概念 3.2 Box-Cox变换实战 1 对数变换 1.1 对数变换的概念 特征对数变换和指数变换是数据预处理中的两种常用技术,…

基于Hadoop平台的电信客服数据的处理与分析④项目实现:任务15:数据生产

任务描述 电信数据生产是一个完整且严密的体系,这样可以保证数据的鲁棒性。在本项目的数据生产模块中,我们来模拟生产一些电信数据。同时,我们必须清楚电信数据的格式和数据结构,这样才能在后续的数据产生、存储、分析和展示环节…

前端基础:CSS(篇一)

目录 css概述 CSS与HTML的关系 基本语法 行内样式表 代码 运行 内嵌样式表 代码 运行 外部样式表 代码 运行 选择器 标签选择器 代码 运行 id选择器 代码 运行 类选择器 代码 运行 选择器优先问题 通配选择器 选中所有的标签 代码 运行 选择器组…

网安小贴士(6)TCP/IP分层

一、前言 1983年,美国国防部决定将TCP/IP作为所有计算机网络的标准协议,这标志着TCP/IP正式成为互联网的基础协议。随着个人计算机的普及和网络技术的发展,TCP/IP模型被广泛应用于各种网络环境中,包括局域网(LAN&#…

MySQL单表千万级数据查询优化大家怎么说(评论有亮点)

题图来自APOD 上次写了一篇MySQL优化实战的文章“MySQL千万级数据从190秒优化到1秒全过程”。 这篇文章主要还是在实战MySQL优化,所以从造数据到查询SQL优化SQL都没有业务或者其它依赖,优化的技巧也不涉及软件架构就是纯SQL优化。 由于笔者经验有限和…