发 帖  
原厂入驻New

[经验] 串口通信的奇偶校验位的两种类型介绍

2020-9-4 17:54:47  231 串口通信
分享
2
  奇偶校验位是一个二进制数,指示给定位置号的二进制数中的1的数目是奇数还是偶数。奇偶校验位是最简单的错误检测代码。奇偶校验位有两种类型:偶校验位和奇校验位。
  
  设置为奇校验,首先查看发送方将在数据帧中发送多少个1。如果是1的偶数,请检查位置1,并确保1的数是奇数。如果是奇数,则设置为0。保证它是奇数并发送到接收器。接收器应检查发送的数据位是否错误。它检查的方式是查看接收到的数据中的1的数目。如果发现1的数目是偶数,则看一下。发送的奇偶校验位为1,模式为奇偶校验,偶数+ 1 =奇数,则判断数据正确。
  示例:发送的数据位为01111 0000,将校验位设置为1,并让1具有5(奇数)。
  
  将其发送给接收方,接收方检查数据位的正确性,发现1中有4个(偶数),然后奇偶校验位为1,4 + 1 = 5(奇数)。判断数据是否正确设置为偶数奇偶校验,首先查看发送方在数据帧中将发送多少个1,如果它是1的奇数,则奇偶校验位是1,如果是偶数,则将其设置为0。确保数量为偶数。保证它是偶数,然后发送到接收器。接收器应检查发送的数据位是否错误。它检查的方式是查看接收到的数据中的1的数目。如果发现1的数目是一个奇数,请看一下。发送的奇偶校验位为1,且模式为偶校验,奇数+ 1 =偶数,则判断数据正确。
  示例:发送的数据位为01111 1000,将校验位设置为1,并让1具有6(偶数)。
  
  将其发送给接收方,接收方检查数据位的正确性,发现1中有5个(奇数),然后检查位是1、5 + 1 = 6(偶数)。判断数据是否正确:
  设置为1校验,校验位始终为1,接收方接收到数据并发现校验位为1即可判断数据正确,此方法很简单。
  设置为0校验,校验位始终为0,接收器接收到数据并发现校验位为0,判断数据正确,这种方法很简单。
  大家肯定会问,如何计算奇偶性呢?计算机中有一个特殊的计算,它遵循以下规则:
  1+1=0; 1+0=1; 0+1=1; 0+0=0;
  我们将发送的110111000一点一点地相加得到1。应该注意的是,如果110111000在发送过程中变为0000111000,则上述计算也将为1,接收器会认为发送的数据是正确的。判断其是否正确称为验证。通过上述方法执行的检查称为奇数检查。奇校验只能判断传输数据中的奇数个数据从0变为1或从1变为0的情况。对于传输中偶数个数据的错误,它就无能为力了。
  奇校验是一种检查数据完整性的方法。一个字节的8个数据位和奇偶校验位之和为奇数个。校验行接收到数字后,生成器将0或1填充到校验位中,以确保总和为1的奇数。因此,当校验位为0时,数据位应为奇数个;否则为0。当校验位为1时,数据位应为偶数。如果在读取数据时发现与该规则不一致,则CPU将命令重新发送数据。
  
  奇/偶校验是一种在数据传输过程中纠正数据错误的方法。它分为两种类型:奇校验和偶校验。
  如果使用奇偶校验,则在传输每个字节时会添加一个附加位作为检查位。当实际数据中的数字“ 1”为偶数时,该校验位为“ 1”,否则该奇偶校验位为“ 0”,以确保发送的数据满足奇数奇偶校验的要求。当接收器接收到数据时,它将根据奇偶校验的要求检测数据中的“ 1”个数。如果是奇数,则表示传输正确,否则表示传输错误。类似地,偶数解析的过程与奇数解析的过程相同,除了检测数据中的“ 1”的数目是偶数。
  
  最后总结
  通常,使用奇偶校验。本质是判断数据位数+校验位=奇/偶。还有一些缺点,例如以奇校验发送0111 0001,并且奇偶校验位为1。但是,当接收器变为1110 0001时,接受也是正确的,但是数据并不相同。

王栋春 2020-9-4 21:13:53
学习了  这个对串口通讯非常重要
回复

举报

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发经验
关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表