347 字
2 分钟
常用的校验方法
2022-10-08
无标签

奇偶校验#

简单常用的校验方法,通过编码中 “1” 的个数进行校验。

  • 奇校验:原始码补校验位后,编码中 “1” 的个数为奇数
  • 偶校验:原始码补校验位后,编码中 “1” 的个数为偶数
原始码奇校验偶校验
0000 00010000 0001 00000 0001 1
1000 10001000 1000 11000 1000 0
1100 01001100 0100 01000 1000 1

累加和校验#

累加和校验的方法有很多种,一般是在多个字节的数据流后增加1个字节的校验数据。

原始编码:10H : EFH : A5H

不进位累加:10H + D2H + A5H = 87H

最终编码:10H : EFH : A5H : 87H

海明校验码#

CSDN - 海明校验码

CRC校验#

常见的CRC多项式:

CRC算法名称多项式BINHEX
CRC-4x4+x+1x^4+x+1100110BH
CRC-8x8+x2+x+1x^8+x^2+x+110000101110BH
CRC-8x8+x5+x4+1x^8+x^5+x^4+11001100010131H
CRC-16x16+x15+x2+1x^{16}+x^{15}+x^2+1-018021H
CRC-16x16+x12+x5+1x^{16}+x^{12}+x^5+1--

原始码:CAH = 11001010b

使用 CRC-4 算法(x4+x+1x^4+x+1 )进行校验,模2除法 计算4位余数作为CRC:

  • 在原始码上增加4个0,得到 1100 1010 0000b
  • 模2除法,被除数是 1100 1010 0000b,除数是 10011b
  • 得到余数(CRC校验码)是 0100b
  • 将原始码与余数 异或,得到发送的数据是 1100 1010 0100b

在另一端收到数据后,也同样使用 CRC-4 算法进行校验:

  • 收到数据 xdata
  • 模2除法,被除数是 xdata,除数是 10011b
  • 如果余数为0,数据正确;如果余数不为0,数据错误
常用的校验方法
https://fuwari.vercel.app/posts/嵌入式/其他/常用的校验方法/
作者
Asuwee
发布于
2022-10-08
许可协议
CC BY-NC-SA 4.0