UART中的奇偶校验和粘性奇偶校验(stick parity)

news2024/9/23 17:20:26

1.UART传输

在这里插入图片描述
UART传输分为起始位,数据位,奇偶校验位,停止位,我们这里详细介绍一下奇偶校验位。

2.奇偶校验位

奇偶校验是一种常见的校验位方法,用于检测数据传输中的错误。
奇校验:数据位的1的个数加上附加位的1的个数为奇数
偶校验:数据位的1的个数加上附加位的1的个数为偶数

举个例子,假设我们有一个UART串口通信系统,每个数据帧包含8位数据和1位奇偶校验位。我们选择奇校验。
数据帧1:数据为0b01010101
数据帧2:数据为0b11001100
数据帧3:数据为0b10101010
在奇校验模式下,奇偶校验位被设置为使整个数据帧中1的个数(包括校验位)为奇数。如果数据帧中1的个数为偶数,校验位被设置为1,使得整个数据帧中1的个数为奇数;如果数据帧中1的个数为奇数,校验位被设置为0,使得整个数据帧中1的个数仍然为奇数。
在上面的例子中,我们可以计算每个数据帧中1的个数:
数据帧1:包含4个1,奇校验位被设置为0
数据帧2:包含5个1,奇校验位被设置为1
数据帧3:包含5个1,奇校验位被设置为1
这样,我们可以通过观察数据帧的奇偶校验位来检测传输中是否存在错误。如果数据传输中的某个数据帧的奇偶校验位与实际数据帧中1的个数不一致,那么就说明数据传输中出现了错误。
奇偶校验可以帮助我们在串行通信中快速检测错误,提高数据传输的可靠性。

3.粘性奇偶校验

Stick parity(粘性奇偶校验位),UART寄存器中的Stick parity位是用来控制是否启用粘性奇偶校验的。当Stick parity位被设置为1时,表示启用粘性奇偶校验;当Stick parity位被设置为0时,表示禁用粘性奇偶校验。

粘性奇偶校验是一种特殊的奇偶校验模式。在粘性奇偶校验模式下,每个数据帧的奇偶校验位都会自动设置为与前一个数据帧的奇偶校验位相同的值。这样可以确保连续传输的数据帧具有相同的奇偶校验位,从而提高数据传输的可靠性。

下面是一个例子来说明粘性奇偶校验的工作原理:
假设我们有一个UART串口通信系统,每个数据帧包含8位数据和1位奇偶校验位。设置Stick parity位为1后,我们发送以下数据序列:
数据帧1:数据为0b01010101,奇偶校验位为0
数据帧2:数据为0b11001100,奇偶校验位为0
数据帧3:数据为0b10101010,奇偶校验位为0
在粘性奇偶校验模式下,每个数据帧的奇偶校验位自动设置为与前一个数据帧的奇偶校验位相同的值。
在本例中,我们可以看到数据帧1的奇偶校验位为0。因此,数据帧2的奇偶校验位也被设置为0。同样,数据帧3的奇偶校验位也被设置为0。
这样,我们可以通过观察数据帧的奇偶校验位来检测传输中是否存在错误。如果数据传输中的某个数据帧的奇偶校验位与前一个数据帧的奇偶校验位不一致,那么就说明数据传输中出现了错误。
总的来说,粘性奇偶校验位可以确保连续传输的数据帧具有相同的奇偶校验位,从而提高数据传输的可靠性。

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

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

相关文章

TensorFlow入门(十八、激活函数)

激活函数是什么? 单个神经元的网络模型: 用计算公式表达如下: 即在神经元中,输入的x通过与权重w相乘,与偏置量b求和后,还被作用了一个函数,这个函数就是激活函数。 激活函数的作用 如果没有激活函数,整个神经元模型就是一个简单的线性方程。而在现实生活中,线性方程能解决的事…

常见Http请求形式

一、请求参数的类型 我们在做boot项目时,常常会向接口发起请求,有些请求需要附带一些参数,比如说分页查询,就需要带上pageNum(当前页)和pageSize(页面大小)等参数 有两种方式可以传递这样的参数 query类型,参数通过…

【Linux系统KVM虚拟机实战】LVM逻辑卷之磁盘扩容

【Linux系统KVM虚拟机实战】LVM逻辑卷之磁盘扩容 一、LVM与KVM介绍1.1 LVM介绍1.2 KVM介绍1.2.1 KVM简介1.2.2 KVM优点二、本次实践介绍2.1 本次实践简介2.2 环境规划三、虚拟机环境检查3.1 检查KVM虚拟机磁盘空间3.2 KVM虚拟机检查系统情况3.3 检查物理磁盘分区3.4 查看PV状态…

②. GPT错误:图片尺寸写入excel权限错误

꧂问题最初 ꧁ input输入图片路径 print图片尺寸 大小 长宽高 有颜色占比>0.001的按照大小排序将打印信息存储excel表格文件名 表格路径 图片大小 尺寸 颜色类型 占比信息input输入的是文件就处理文件 是文件夹📁就处理文件。路径下的图片 1. 是处理本路径图片 …

数据结构-----哈夫曼树和哈夫曼编码

目录 前言 哈夫曼树的实现 1.储存结构 2.创建初始化哈夫曼树 3.完整哈夫曼树创建 4.计算总权值 哈夫曼编码 完整代码 前言 前面我们学习过了哈夫曼树和哈夫曼编码的基础知识(链接:哈夫曼树哈夫曼编码必知必会知识_Gretel Tade的博客-CSDN博客&…

内排序算法

排序算法是面试中常见的问题,不同算法的时间复杂度、稳定性和适用场景各不相同。按照数据量和存储方式可以将排序算法分为 内排序(Internal Sorting)和 外排序(External Sorting)。 内排序是指对所有待排序的数据都可…

wifi管理软件 WiFi Signal mac中文介绍

WiFi Signal mac是一款WiFi信号强度监测工具,它可以帮助用户实时监测WiFi信号的强度、频率、噪声等信息,并提供详细的图表和统计数据。 WiFi Signal可以自动扫描附近的WiFi网络,并显示它们的信号强度和频率。用户可以通过WiFi Signal来找到最…

Android斩首行动——应用层开发Framework必知必会

前言 相信做应用层业务开发的同学,都跟我一样,对Framework”深恶痛绝“。确实如此,如果平日里都在做应用层的开发,那么基本上我们很少会去碰Framework的知识。但生活所迫,面试总是逃不过这一关的,所以作为…

第二证券:A股公司首批三季报出炉 柏楚电子、平煤股份业绩一增一减

10月10日晚,柏楚电子、平煤股份拉开了A股公司三季报发表序幕。来自激光切开控制体系赛道的柏楚电子,前三季度营收、净利润均完结较大崎岖增加;焦煤龙头企业平煤股份,受煤价跌落连累成果,前三季度营收、净利润均有所下降…

Java架构师缓存性能优化

目录 1 缓存的负载策略2 缓存的序列化问题3 缓存命中率低4 缓存对数据库高并发访问5 缓存数据刷新的策略6 何时写缓存7 批量数据来更新缓存8 缓存数据过期的策略9 缓存数据如何恢复10 缓存数据如何迁移11 缓存冷启动和缓存预热1 缓存的负载策略 如果说我们在缓存架构设计当中啊…

优思学院|八大浪费深度剖析

在工作流程中消除浪费是精益思想的目标。在深入探讨八大浪费之前,了解浪费的定义至关重要。浪费是指工作流程中的任何行动或步骤,这些行动或步骤不为客户增加价值。换句话说,浪费是客户不愿意为其付费的任何过程。 最初的七大浪费&#xff0…

第83步 时间序列建模实战:Catboost回归建模

基于WIN10的64位系统演示 一、写在前面 这一期,我们介绍Catboost回归。 同样,这里使用这个数据: 《PLoS One》2015年一篇题目为《Comparison of Two Hybrid Models for Forecasting the Incidence of Hemorrhagic Fever with Renal Syndr…

Nerf 学习笔记

Nerf 学习笔记 Step 1:相机 Rays 行进(ray marching)Step 2:收集查询点Step 3:将查询点投射到高维空间(位置编码)Step 4:神经网络推理和体渲染神经网络推理体渲染计算损失 Reference: 搞懂神经辐射场 Neural Radiance Fields (Ne…

如何在一个传统的html中,引入vueJs并使用vue复制组件?

如何在一个传统的html中,引入vueJs并使用vue复制组件? 1.1 引言1.2 背景1.3 解决方案1.3.1 解决方案一:直接使用clipboard(不推荐仅供参考学习)1.3.2 解决方案二:封装指令js库后使用 (推荐) 1.1 引言 这篇博文主要分享如何在一个…

Springboot给每个接口设置traceId,并添加到返回结果中

原理 slf4j有个MDC的类,是ThreadLocal的实现,保存在这里的变量会绑定到某个请求线程,于是在该请求的线程里的日志代码都可以使用设入的变量。 实现 一、引入依赖 这个是可选项,用于生成唯一uid,我人懒&#xff0c…

一文带你了解 Linux 的 Cache 与 Buffer

目录 前言一、Cache二、Buffer三、Linux 系统中的 Cache 与 Buffer总结 前言 内存的作用是什么?简单的理解,内存的存在是为了解决高速传输设备与低速传输设备之间数据传输速度不和谐而设立的中间层(学过计算机网络的应该都知道,这…

【实战】kubeadmin安装kubernetes集群

文章目录 前言服务器介绍准备工作设置服务器静态ip修改host关闭防火墙和swap修改所需的内核参数 部署步骤安装containerd安装cri工具(效果等同于docker) 安装kubernetes集群安装网络插件flannel安装可视化面板kuboard(可选) 下期预…

42. QT中开发Android配置QFtp功能时遇到的编译问题

1. 说明 此问题仅适用在QT中开发Android程序时,需要适用QFtp功能的情况。一般情况下,如果开发的是Windows或者Linux系统下的程序,可能不会出现该问题。 2. 问题 【Android】在将QFtp的相关代码文件加入到项目中后,编译项目时会…

sql server判断两个集合字符串是否存在交集

sql server判断字符串A101;A102和字符串A102;A103是否存在交集 我们编写两个函数: 1)函数fn_split将字符串拆分成集合 create function [dbo].[fn_split](inputstr varchar(8000), seprator varchar(10)) returns temp table (Result varchar(200)) a…

TCP/IP(七)TCP的连接管理(四)全连接

一 全连接队列 nginx listen 参数backlog的意义 nginx配置文件中listen后面的backlog配置 ① TCP全连接队列概念 全连接队列: 也称 accept 队列 ② 查看应用程序的 TCP 全连接队列大小 实验1: ss 命令查看 LISTEN状态下 Recv-Q/Send-Q 含义附加:…