如何计算CRC校验位

如何计算CRC校验位,第1张

在CRC计算时只用8个数据位,起始位及停止位,如有奇偶校验位也包括奇偶校验位,都不参与CRC计算。CRC计算方法是:1、 加载一值为0XFFFF的16位寄存器,此寄存器为CRC寄存器。2、 把第一个8位二进制数据(即通讯信息帧的第一个字节)与16位的CRC寄存器的相异或,异或的结果仍存放于该CRC寄存器中。3、 把CRC寄存器的内容右移一位,用0填补最高位,并检测移出位是0还是1。4、 如果移出位为零,则重复第三步(再次右移一位);如果移出位为1,CRC寄存器与0XA001进行异或。5、 重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理。6、 重复步骤2和5,进行通讯信息帧下一个字节的处理。7、 将该通讯信息帧所有字节按上述步骤计算完成后,得到的16位CRC寄存器的高、低字节进行交换8、 最后得到的CRC寄存器内容即为:CRC校验码。

CRC是一种排错检查方式,该演算法的标准由CCITT所指定,至少可检测到99.998%的已知错误。指定文件交由cksum演算,它会回报计算结果,供用户核对文件是否正确无误。若不指定任何文件名称,则cksum指令会从标准输入设备读取数据。

语法:

cksum [--help] [--version] [file...]选项介绍:

--help: 在线帮助

--version: 显示版本信息

执行范例:

1 $ cksum text

2 2828606745 24 text #2828606745为CRC的值,24为text文件的大小(单位:字节)

扩展阅读:

cksum命令是确保文件从一个系统传输到另一个系统地过程中没有被损坏。这个测试要求校验和在源系统中被计算出来,在目的系统中又被计算一次,两个数字比较,如果校验和相等,则该文件被认为是被正确传输了。

当需要检查文件或目录是否被改动过时就要用到cksum命令。通过将一个目录或文件的校验和与它以前的校验和相比较,就能判断该文件是否被改动过。

1、循环校验码(CRC码):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。

2、生成CRC码的基本原理:任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。

例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码101111。

扩展资料:

注意事项

是接受方和发送方的一个约定,也就是一个二进制数,在整个传输过程中,这个数始终保持不变。

在发送方,利用生成多项式对信息多项式做模2除生成校验码。在接收方利用生成多项式对收到的编码多项式做模2除检测和确定错误位置。

应满足以下条件:

1、生成多项式的最高位和最低位必须为1。

2、当被传送信息(CRC码)任何一位发生错误时,被生成多项式做除后应该使余数不为0。

3、不同位发生错误时,应该使余数不同。

4、对余数继续做除,应使余数循环。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7363107.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存