简述CRC16算法
创作时间:
作者:
@小白创作中心
简述CRC16算法
引用
1
来源
1.
https://www.jiamisoft.com/blog/34011-crc16.html
CRC16算法是一种常用的循环冗余校验算法,广泛应用于数据传输和存储的错误检测。本文将详细介绍CRC16算法的原理、计算过程及其各种变体,帮助读者深入了解这一重要的数据校验技术。
CRC16算法简介
CRC16算法使用16次方的多项式来生成校验和,该算法将数据视为一系列位,并对该序列执行位分割运算,使用多项式进行除法运算。这个除法的余数就是CRC16校验和,它被附加到原始数据的末尾。
CRC16算法的计算原理
- 根据CRC16的标准选择初值CRCIn的值。
- 将数据的第一个字节与CRCIn高8位异或。
- 判断最高位,若该位为 0 左移一位,若为 1 左移一位再与多项式Hex码异或。
- 重复3直至8位全部移位计算结束。
- 重复将所有输入数据操作完成以上步骤,所得16位数即16位CRC校验码。
CRC16算法的计算过程
- 预置1个16位的寄存器为十六进制FFFF(即全为1);称此寄存器为CRC寄存器;
- 把第一个8位二进制数据 (即通讯信息帧的第一个字节)与16位的CRC寄存器的第8位相异或,把结果放于CRC寄存器;
- 把CRC寄存器的内容右移一位(最低位)用0填补最高位,并检查右移后的移出位;
- 如果移出位为0:重复第3步(再次右移一位);如果移出位为1:CRC寄存器与多项式A001(1010 0000 0000 0001)进行异或;(Modbus)
- 重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理;
- 重复步骤2到步骤5,进行通讯信息帧下一个字节的处理;
- 将该通讯信息帧所有字节按上述步骤计算完成后,得到的16位CRC寄存器的高、低字节进行交换;
- 最后得到的CRC寄存器内容即为:CRC码。
CRC16算法的变体
CRC16算法有以下几种常见变体,它们算法原理基本一致,就是在数据的输入和输出有所差异:
- CRC16_CCITT:多项式x16+x12+x5+1(0x1021),初始值0x0000,低位在前,高位在后,结果与0x0000异或。
- CRC16_CCITT_FALSE:多项式x16+x12+x5+1(0x1021),初始值0xFFFF,低位在后,高位在前,结果与0x0000异或。
- CRC16_XMODEM:多项式x16+x12+x5+1(0x1021),初始值0x0000,低位在后,高位在前,结果与0x0000异或。
- CRC16_X25:多项式x16+x12+x5+1(0x1021),初始值0x0000,低位在前,高位在后,结果与0xFFFF异或。
- CRC16_MODBUS:多项式x16+x15+x2+1(0x8005),初始值0xFFFF,低位在前,高位在后,结果与0x0000异或。
- CRC16_IBM:多项式x16+x15+x2+1(0x8005),初始值0x0000,低位在前,高位在后,结果与0x0000异或。
- CRC16_MAXIM:多项式x16+x15+x2+1(0x8005),初始值0x0000,低位在前,高位在后,结果与0xFFFF异或。
- CRC16_USB:多项式x16+x15+x2+1(0x8005),初始值0xFFFF,低位在前,高位在后,结果与0xFFFF异或。
CRC16算法的应用
CRC16常用于通信协议中,当接收到数据时,接收器可以使用相同的算法计算自己的校验和,并将其与接收到的数据一起进行比较。如果两个校验和匹配,数据被认为是无误的。如果它们不匹配,就假定在传输过程中发生了错误,数据可能需要重新传输。
热门推荐
《黑客帝国》揭秘:从虚拟世界到哲学深思,矩阵背后的终极秘密
掌握这些成语故事,轻松提升你的文化素养!
《人民的名义》官职最大的10个人排行榜,祁同伟勉强排在第十位!
INFJ的爱情谜题:1%的罕见人格,冷漠外表下的火热内心
家庭录音室设备选购指南:打造专业级音乐制作空间
关家垴战役:八路军如何突破日军的"迷宫"防线
如何低成本打造全屋智能家居系统:详细操作指南与建议
献血前必看清单
冬季脱发的原因与应对策略
老年驾驶安全指南:守护银发族的出行平安
精煮饭和快煮饭的区别,你选对了吗?
电子游戏中的人工智能:塑造游戏的未来
合理膳食:如何制定适合自己的饮食计划
买房和租房各有什么优缺点
长期运动的人,不仅消耗体力,还可能伤关节?将大实话告诉你
国际货币体系三次转型,深刻影响世界经济
精选内容集|辩证探讨:胶原蛋白补充的真实效果与注意事项
如何写出优秀作文:提升写作水平的实用指南
VSCode哪个版本最稳定?LTS版本详解
萃取时加入饱和食盐水的目的是什么呢
瑞超:米亚尔比VS哥德堡盖斯比赛分析
什么和什么是对仗句
揭秘继电器的工作原理:低功率信号如何控制高功率电路
高邮市最好吃的三个街
对联:承载中华美学精髓的祝福艺术
西岭雪山:成都之巅的红色守护与诗意传承
常用燕麦片当晚餐,可能带来5个健康变化
全球及中国工业气体行业发展现状及竞争格局分析,数字化转型将成为行业发展趋势
火车票报销凭证丢了怎么办?可以补打吗?
萨尔斯堡10大必去景点攻略