本工具用于快速求出通信中CRC16校验值,包括:
1)CRC-16/DECT-R(别名:R-CRC-16)、
2)CRC-16/DECT-X(别名:X-CRC-16)、
3)CRC-16/GENIBUS(别名:CRC-16/EPC, CRC-16/I-CODE, CRC-16/DARC)、
4)CRC-16/TMS37157、
5)CRC-16/RIELLO、
6)CRC-A、
7)CRC-16/MCRF4XX、
8)CRC-16/EN-13757、
9)CRC-16/BUYPASS(别名:CRC-16/VERIFONE)、
10)CRC-16/DDS-110、
10)ARC(别名:CRC-16, CRC-IBM, CRC-16/ARC, CRC-16/LHA)、
11)CRC-16/T10-DIF、
13)CRC-16/TELEDISK等标准通讯模式的计算结果。在输入框输入十六进制数据包(每两个字符表示一个字节,字符数必须是偶数),每个字节之间可以用空格隔开,也可以不隔开。也可输入ASCII格式数据,点击“计算”后,本计算器可求出输入数据包的长度(10进制和16进制)和对应通讯方式的计算结果。
注:本软件中计算结果输出结果两个字节的顺序(默认为false,即左侧字节为数据包前字节(高字节),右侧为数据包后字节(低字节),如果校验中需要反序(左侧低字节,请自行反转)。
本软件支持CRC16算定义通讯模式的参数。在自定义模式下,需要输入的参数(顺序与面参数栏显示相同)如下:
1)多项式(POLY):生成项的简写,用16进制表示。例如:1021(注意,不加"0x")。
2)初始值(INIT):计算开始时CRC寄存器的初始值,用16进制表示。 例如:0000(注意,不加"0x")。
3)结果异或值(XOROUT):计算结果与此参数异或后得到最终的CRC值,用16进制表示。例如:FFFF(注意,不加"0x")。
4)输入值反转(REFIN):待测数据的每个字节是否按位反转,反转对应true,不反转对应false。
5)输出值反转(REFOUT):在计算后之后,异或输出之前,整个数据是否按位反转,反转对应true,不反转对应false。
6)输出字节反序(ORDER):CRC输出结果由两个字节组成,本软件认为高字节在前为正序,对应值为false,低字节在前为反序,对应值为true(注:本软件中此忽略位,请自行调整顺序!!!但自定义计算中方法此位有效!!)。
CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。
算法名称
多项式
初始值
结果异或
输入反转
输出反转
输出字节反序
CRC-16/DECT-R
0589
0000
0001
false
false
false
CRC-16/DECT-X
0589
0000
0000
false
false
false
CRC-16/GENIBUS
1021
FFFF
FFFF
false
false
false
CRC-16/TMS37157
1021
89EC
0000
true
true
false
CRC-16/RIELLO
1021
B2AA
0000
true
true
false
CRC-A
1021
C6C6
0000
true
true
false
CRC-16/MCRF4XX
1021
FFFF
0000
true
true
false
CRC-16/EN-13757
3D65
0000
FFFF
true
true
false
CRC-16/BUYPASS
8005
0000
0000
true
true
false
CRC-16/DDS-110
8005
800D
0000
true
true
false
ARC
8005
0000
0000
true
true
false
CRC-16/T10-DIF
8BB7
0000
0000
true
true
false
CRC-16/TELEDISK
A097
0000
0000
true
true
false
多项式产生: 如x16+x12+x5+1 x16表示第16位为1,x5表示第5位为1 (1 << 16) | (1 << 12) | (1 << 5) | (1) = 0x11021,但是CRC16只取低16位,写成16进制数就是 0x1021。
CRC16的算法原理:
1.根据CRC16的标准选择初值CRCIn的值。
2.将数据的第一个字节与CRCIn高8位异或。
3.判断最高位,若该位为 0 左移一位,若为 1 左移一位再与多项式Hex码异或。
4.重复3直至8位全部移位计算结束。
5.重复将所有输入数据操作完成以上步骤,所得16位数即16位CRC校验码。
相关计算器: