串口通信

1.1 串口简介

在这里插入图片描述
在串口中 用0和1表示高低电平
在这里插入图片描述VCC供电 设备A给设备B供电 如果各自都有供电的模块就不需要连接这个线 GND的连线是为了获取相同的电压基准 因为有时候获得电压各自判断的标准不一样 可能获得不一样的电压 如果想A发送数据给B那么蓝线不需要连接 如果想B发送给A那么绿线不需要连接 下面的图是一个是一个实列 蓝牙和电脑连接(电脑只有USB接口)

数据帧

数据帧的概念
在这里插入图片描述
数据通过蓝线或者绿线进行传输 传输的数据就是0 1的高低组成
把传输的数据分为8个bit一个单位(就是一个字节)然后把这个基本的单位取出加入头和尾 就形成了数据帧
串口数据帧的格式
在这里插入图片描述
在串口中传输数据的单元就是数据帧
空闲状态
在这里插入图片描述
数据的传输 就是用高电平表示空闲 传完一个数据帧或多个数据帧就进入空闲状态 如图是示波器采集到的一个数据帧传输的过程 红色圈起来的就表示高电平(空闲状态)
数据位
在这里插入图片描述
起始位 一开始数据的接收方一直是高电平表示空闲状态 然后当开始传输数据传输方就向接收方传入一个低电平 表示数据传输的开始
在起始位和停止位中间就是数据位(可为8或者9位)
数据位的长度时刻变化的 图片上示波器的图片就是8位 数据帧传输就是从LSB传起 右侧的1 2 4 8表示的是权重 (2的几次方)叫先传数据最低有效位
校验位
在这里插入图片描述
校验位是位于数据位的最后一位 是接受方查看接收到的数据是否正确 可以为7位数据位 1位校验位 也可以为8位数据位1位校验位
校验的原理
在这里插入图片描述
如选择8位有效数据位一位校验位 如果要发送的数据是10101100 那么1的个数位4选择奇校验在校验位补上一个1 总共为5个1 然后如果在传输的过程中数据出现了错误 那么接收方的校验位就会多一个1或者少一个1从而知道自己接收到的数据出现了错误
停止位在这里插入图片描述
高电平的长度可以表示停止位
一个数据传输的例子
在这里插入图片描述
当空闲时就是高电平 然后传输方向接收方传送一位低电平表示数据开始传输 数据位 要发送的数据是01011011但是数据的传输是从LSB开始传输(叫先传数据最低有效位)所以在数据位体现出来的就是11011010 然后校验为偶校验 数据位一共有5个1 在校验位补上一个1总共为6个1 传输数据 最后为一位高电平的停止位
连续发送数据的例子
在这里插入图片描述
在多个数据的发送中没有空闲

异步通信和波特率

同步通信
在这里插入图片描述
双方不仅需要一根数据线还有一根时钟线 以IIC为例子 当时钟变为低电平数据得以接受 有高电平变为低电平 然后时钟由低电平变为高电平就表示数据正在被采集 数据接收方正在采集这个传入的低电平
异步通信
在这里插入图片描述
串口就是异步通信 那么双方如何协调呢?
波特率
在这里插入图片描述
码元就是表示高低电平 如8位数据位就是8个码元
波特率越高就表示码元的宽度越窄
在这里插入图片描述
一开始数据接受方就开始不断采集电平 采集到高电平变为低电平就表示着数据的传输 然后先采集1.5个码元然后依次采集一个码元 接受完所有的数据
波特率相同表示数据发送方和数据接收方保持着相同的数据传输速度 然后相同的数据帧格式
流控的概念
在这里插入图片描述
其实就是表示数据的发送方发送数据太快导致接收方的接收信息处理不够快 导致数据的丢失 为了防止这种情况的发生 当传输完数据后需要接收方传回一个反馈信号表示数据采集完成 接着开始下一个数据的发送 依次保证数据的准确性 这个反馈的信号就叫做流控信号
串口流控的工作原理
在这里插入图片描述
接收方的RTS可以把流控信号传回给数据发送方 当RTS传输低电平表示数据可传输 高电平表示接受方正在采集处理信息

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

语聚AI:无代码开发的API连接新选择,助力电商平台客户服务提升

无代码开发:语聚AI的新选择 在企业运营中,客户服务扮演着重要的角色。然而,许多企业在日常的客服管理中面临着重复咨询、人工接待成本高、缺乏知识库支持以及客服渠道分散等问题。如何提高客服的效率和质量,成为了企业急需解决的…

基于ssm+vue设备配件检修管理系统

摘要 随着工业设备的日益复杂和多样化,设备配件的检修管理成为保障生产运行和设备寿命的关键环节。本研究基于SSM框架(Spring Spring MVC MyBatis),致力于设计和实现一套全面、高效的设备配件检修管理系统。该系统不仅能够提高设…

1-2 暴力破解-模拟

模拟:根据题目要求编写代码 可分为:图形排版(根据某种规则输出特定图形)、日期问题、其他模拟 一.图形排版 1.输出梯形(清华大学) 法一:等差数列 分析:每行的星号个数为等差数列2n2…

数据结构-哈希表(C语言)

哈希表的概念 哈希表就是: “将记录的存储位置与它的关键字之间建立一个对应关系,使每个关键字和一个唯一的存储位置对 应。” 哈希表又称:“散列法”、“杂凑法”、“关键字:地址法”。 哈希表思想 基本思想是在关键字和存…

你不知道的 CSS 之包含块

你不知道的 CSS 之包含块 一说到 CSS 盒模型,这是很多小伙伴耳熟能详的知识,甚至有的小伙伴还能说出 border-box 和 content-box 这两种盒模型的区别。 但是一说到 CSS 包含块,有的小伙伴就懵圈了,什么是包含块?好像…

C#调用C++ dll教程

文章目录 一、创建C dll项目二、C#程序员调用C dll三、C与C#数据类型对应基本数据类型对应表C指针类型与C#类型 在使用C#开发客户端时,有时需要调用C dll,本篇博客来介绍C#程序如何调用C dll。 一、创建C dll项目 首先使用VS2022创建C dll项目&#xf…

ROS话题(Topic)通信:自定义msg - 例程与讲解

在 ROS 通信协议中,数据是以约定好的结构传输的,即数据类型,比如Topic使用的msg,Service使用的srv,ROS 中的 std_msgs 封装了一些原生的数据类型,比如:Bool、Char、Float32、Int64、String等&am…

【C语言】深入解开指针(三)

🌈write in front :🔍个人主页 : 啊森要自信的主页 真正相信奇迹的家伙,本身和奇迹一样了不起啊! 欢迎大家关注🔍点赞👍收藏⭐️留言📝>希望看完我的文章对你有小小的帮助&#x…

【JavaSE】基础笔记 - 图书管理系统(保姆教程,含源码)

目录 1、图书管理系统介绍 2、大致框架 3、代码实现步骤 3.1、Book图书类 3.2、BookList书架类 3.3、User用户类、AdminUser类、NormalUser类 3.4、IOperation操作接口 3.5、继承IOperation接口的操作类 3.6、完善User类 3.7、Mian类 4、完整代码 Java的三大特性是…

反转字符串中的单词

给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意:输入字符串 s中可能会存在前导空格、尾随空格…

【MATLAB源码-第81期】基于matlab的polar码三种译码算法比较(SC,SCL,BP)。

操作环境: MATLAB 2022a 1、算法描述 Polar码(Polar Codes)是一种前向纠错编码方法,被认为是实现信道容量极限的编码方法之一。它在某些场合下,如5G通信标准中得到了应用。Polar码的主要译码算法包括Successive Can…

短期经济波动:均衡国民收入决定理论(三)

短期经济波动:国民收入决定理论(三) 文章目录 短期经济波动:国民收入决定理论(三)[toc]1 总需求曲线及其变动1.1 总需求曲线含义1.2 总需求曲线推导1.2.1 代数推导1.2.2 几何推导 1.3 AD曲线及其变动1.3.1 扩张性财政政策1.3.2 扩张性货币政策 2 总供给曲…

面试其他注意事项

面试其他注意事项 一、面试反问 这个岗位的日常工作和主要职责是什么?咱们这边主要负责什么业务,用到了哪些技术呢?对于我们校招生有没有培养体系呢?脱产培训,还是边工作边熟悉?会有导师带嘛?…

【Spring】IoC容器的一些总结与补充

文章目录 1. 创建容器的两种方式相对路径导入绝对路径导入 2. 获取Bean的三种方式getBean后强转类型getBean内写明类别根据类别获取bean 3. 容器层次结构4. BeanFactory5. bean的总结6. 注入的总结 1. 创建容器的两种方式 相对路径导入 ApplicationContext ctx new ClassPat…

一篇文章让你彻底掌握 shell 语言

一篇文章让你彻底掌握 shell 语言 1. 前序2. shell介绍2.1. 什么是shell2.2. 什么是shell编程2.3. shell解释器3. 基本语法3.1 第一个shell脚本3.2 注释3.3. echo3.3.1 **输出字符串**3.3.2 **输出变量**3.3.3 **启用转义字符**3.3.4 **向文件添加内容**3.3.5 **输出命令执行结…

NET8 ORM 使用AOT SqlSugar

.NET AOT8 基本上能够免强使用了, SqlSugar ORM也支持了CRUD 能在AOT下运行了 Nuget安装 SqlSugarCore 具体代码 StaticConfig.EnableAot true;//启用AOT 程序启动执行一次就好了//用SqlSugarClient每次都new,不要用单例模式 var db new SqlSugarClient(new ConnectionC…

Mac M1 M1 pro安装 protobuf 2.5.0

因为项目中的protobuf是2.5.0版本,但是旧版本的protobuf 不支持M1,此时需要修改源码重新编译 操作步骤: 从git上面下载对应版本的protobuf,地址:Release Protocol Buffers v2.5.0 protocolbuffers/protobuf GitHub…

linux进程间通信之共享内存(mmap,shm_open)

共享内存,顾名思义就是允许两个不相关的进程访问同一个逻辑内存,共享内存是两个正在运行的进 程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常为同一段物理内存。进程可以将同一段物理内存连接到他们自己的地址空间中&#xff0c…

超详细的Jmeter接口测试教程以及接口测试流程

一、Jmeter简介 Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试。 Jmeter具备高移植性,可以实现跨平台运行。 Jmeter可以实现分布式负载。 Jmeter采用多线程,允许通过多个线程并发取样或通过…

Redis实战篇(1)

实战篇Redis 短信登录 这一块我们会使用redis共享session来实现 商户查询缓存 通过本章节,我们会理解缓存击穿,缓存穿透,缓存雪崩等问题,让小伙伴的对于这些概念的理解不仅仅是停留在概念上,更是能在代码中看到对应…