三九宝宝网宝宝百科宝宝知识

CRC16校验码如何计算

03月05日 编辑 39baobao.com

[计算机网络原理的计算题CRC校验和数据传输问题]计算机网络原理的计算题(CRC校验和数据传输问题)第1题:设要发送的二进制数据为10110011,若采用CRC校验方法,生成多项式为X^4+X^3+1,度求出实际发送的二进制数字序列。(要求写出计算...+阅读

7E 00 05 60 31 32 33 计算CRC16结果应该是:5B3E 方法如下: CRC-16码由两个字节构成,在开始时CRC寄存器的每一位都预置为1,然后把CRC寄存器与8-bit的数据进行异或(异或:二进制运算 相同为0,不同为1;0^0=0;0^1=1;1^0=1;1^1=0), 之后对CRC寄存器从高到低进行移位,在最高位(MSB)的位置补零,而最低位(LSB,移位后已经被移出CRC寄存器)如果为1,则把寄存器与预定义的多项式码进行异或,否则如果LSB为零,则无需进行异或。重复上述的由高至低的移位8次,第一个8-bit数据处理完毕,用此时CRC寄存器的值与下一个8-bit数据异或并进行如前一个数据似的8次移位。所有的字符处理完成后CRC寄存器内的值即为最终的CRC值。 1.设置CRC寄存器,并给其赋值FFFF(hex)。 2.将数据的第一个8-bit字符与16位CRC寄存器的低8位进行异或,并把结果存入CRC寄存器。

3.CRC寄存器向右移一位,MSB补零,移出并检查LSB。 4.如果LSB为0,重复第三步;若LSB为1,CRC寄存器与多项式码相异或。 5.重复第3与第4步直到8次移位全部完成。此时一个8-bit数据处理完毕。 6.重复第2至第5步直到所有数据全部处理完成。 7.最终CRC寄存器的内容即为CRC值。 CRC(16位)多项式为 X16+X15+X2+1,其对应校验二进制位列为1 1000 0000 0000 0101。

crc16的校验码的算法

方法如下:

CRC-16码由两个字节构成,在开始时CRC寄存器的每一位都预置为1,然后把CRC寄存器与8-bit的数据进行异或(异或:二进制运算 相同为0,不同为1;0^0=0;0^1=1;1^0=1;1^1=0), 之后对CRC寄存器从高到低进行移位,在最高位(MSB)的位置补零,而最低位(LSB,移位后已经被移出CRC寄存器)如果为1,则把寄存器与预定义的多项式码进行异或,否则如果LSB为零,则无需进行异或。重复上述的由高至低的移位8次,第一个8-bit数据处理完毕,用此时CRC寄存器的值与下一个8-bit数据异或并进行如前一个数据似的8次移位。所有的字符处理完成后CRC寄存器内的值即为最终的CRC值。

如何对数据块进行crc16校验

对数据块进行crc16校验: CRC-16码由两个字节构成,在开始时CRC寄存器的每一位都预置为1,然后把CRC寄存器与8-bit的数据进行异或(异或:二进制运算 相同为0,不同为1;0^0=0;0^1=1;1^0=1;1^1=0), 之后对CRC寄存器从高到低进行移位,在最高位(MSB)的位置补零,而最低位(LSB,移位后已经被移出CRC寄存器)如果为1,则把寄存器与预定义的多项式码进行异或,否则如果LSB为零,则无需进行异或。重复上述的由高至低的移位8次,第一个8-bit数据处理完毕,用此时CRC寄存器的值与下一个8-bit数据异或并进行如前一个数据似的8次移位。所有的字符处理完成后CRC寄存器内的值即为最终的CRC值。 1.设置CRC寄存器,并给其赋值FFFF(hex)。 2.将数据的第一个8-bit字符与16位CRC寄存器的低8位进行异或,并把结果存入CRC寄存器。

3.CRC寄存器向右移一位,MSB补零,移出并检查LSB。 4.如果LSB为0,重复第三步;若LSB为1,CRC寄存器与多项式码相异或。 5.重复第3与第4步直到8次移位全部完成。此时一个8-bit数据处理完毕。 6.重复第2至第5步直到所有数据全部处理完成。 7.最终CRC寄存器的内容即为CRC值。 CRC(16位)多项式为 X16+X15+X2+1,其对应校验二进制位列为1 1000 0000 0000 0101。 7E 00 05 60 31 32 33 计算CRC16校验结果是:5B3E。...

VB NET怎么取计算modbus中的CRC16效验

1) 预置 1 个 16 位的寄存器为十六进制FFFF(即全为 1) , 称此寄存器为 CRC寄存器。

2) 把第一个 8 位二进制数据 (通信信息帧的第一个字节) 与 16 位的 CRC寄存器的低 8 位相异或, 把结果放于 CRC寄存器。

3) 把 CRC 寄存器的内容右移一位( 朝低位)用 0 填补最高位, 并检查右移后的移出位。

4) 如果移出位为 0, 重复第 3 步 ( 再次右移一位); 如果移出位为 1, CRC 寄存器与多项式A001 ( 1010 0000 0000 0001) 进行异或。

5) 重复步骤 3 和步骤 4, 直到右移 8 次,这样整个8位数据全部进行了处理。

6) 重复步骤 2 到步骤 5, 进行通信信息帧下一个字节的处理。

7) 将该通信信息帧所有字节按上述步骤计算完成后,得到的16位CRC寄存器的高、低字节进行交换。

8) 最后得到的 CRC寄存器内容即为 CRC码。

Private Function Get_CRC16(ByVal Crc16_num As Byte(), ByVal nLength As Byte) As UShort

Dim i, j As UShort

Dim crc As UShort

crc = &HFFFF

For i = 0 To nLength - 1 Step 1

crc = crc Xor Crc16_num(i)

For j = 0 To 7 Step 1

If (crc And &H1) > 0 Then

crc = crc >> 1

crc = crc Xor &HA001

Else

crc = crc >> 1

End If

Next j

Next i

Return crc

End Function

以下为关联文档:

crc如何校验请参考我先前的回答,如下 CRC-16码由两个字节构成,在开始时CRC寄存器的每一位都预置为1,然后把CRC寄存器与8-bit的数据进行异或(异或:二进制运算 相同为0,不同为1;0^0=0;0^1=1;1^0...

用S7200的编程软件怎么写CRC校验程序整理一个CRC校验计算的子程序 TITLE=子程序注释 // CRC-16码由两个字节构成,在开始时CRC寄存器的每一位都预置为1,然后把CRC寄存器与8-bit的数据进行异或,之后对CRC寄存器从高...

请教一下plc与变频器通讯中的CRC校验在8位数据与CRC寄存器异或变频器的通讯用了CRC校验,那么应该是Modbus RTU协议。如下两图,做了个示范,这个是标准ModBus RTU CRC算法。 1. 起始数据是FFFF(16) 2. 和第一个Byte做异或 3. 右移位 4. 如果...

CRC校验码怎么得出来的你知道有限域或者模2除法吗?不知道那下面就没法讲了。CRC算法基于有限域GF(2),通过在p位数据后附加r位校验构成CRC校验码。r位校验码的生成是由校验数据模2除一个不可约多项式...

用查表发实现crc16校验怎么实现1)将上次计算出的CRC校验码右移一个字节; (2)将移出的这个字节与新的要校验的字节进行XOR 运算; (3)用运算出的值在预先生成码表中进行索引,获取对应的值(称为余式); (4)用获取的值与第 (1...

Modbus RTU CRC校验详细步骤CRC值怎么计算//参考如下C代码,Modbus RTU CRC! UINT16 Crc16(UCHAR *pDatas, UCHAR ucLen) { UINT16 ui16Crc = 0XFFFF; UCHAR i; while (ucLen--) { ui16Crc ^= *pDatas++; for (i = 0;...

PLC能不能用程序自动计算crc校验举个例子: 已知信息位为1100,生成多项式G(x) = x3+x+1,求CRC码。 M(x) = 1100 M(x)*x3 = 1100000 G(x) = 1011 M(x)*x3 / G(x) = 1110 + 010 /1011 R(x) = 010 CRC码为: M(x)*x...

FX3GA PLC怎么编写CRC校验程序先看些资料(可通过网络搜索),稍微了解CRC校验原理。其实该CRC校验的过程就是异或、移位、取余数。 目前CRC校验有直接计算和查表法。这两种方法我都用梯形图(编程语言: RSLOGIX 5...

win7旗舰版官方校验码是多少X86,32位 CRC32 : E6FDF910 MD5 : 3BE75DF53E0CFB3905AF0B4F4471C9F3 SHA-1 : B589336602E3B7E134E222ED47FC94938B04354F SHA-224 : 4DC649035DEA897DC34A73728D48E81687A8...

推荐阅读
图文推荐