难以理解校验和算法

时间:2019-03-05 19:59:18

标签: math binary checksum crc

BM62蓝牙模块协议

我只有一个简单的问题,关于校验和算法如何用于特定的蓝牙模块(BM62)。上面的图片解释了UART协议,并解释了校验和规则,但是我在理解它的实际工作方式时遇到了麻烦,并且似乎无法猜测图片中示例中给出的校验和值。

1 个答案:

答案 0 :(得分:1)

这个想法似乎是您需要提出CHKSUM使得LENH + LENL + OPCODE + PARAM + {{1} }的最低有效字节为0。因此,让我们以8位(或256为模)进行求和:

CHKSUM + LENH + LENL + OPCODE + PARAM = 0

CHKSUM =-(CHKSUM + LENH + LENL + OPCODE

IOW,PARAM =-(0 + 2 +1 + 0)= -3 = 0xFD。 (请记住,所有这些操作都是8位完成的。)

您可以验证CHKSUM满足要求(您现在可以16位完成所有工作):

0 + 2 + 1 + 0 + 0xFD = 0x100

并且最低有效字节中有0。如果我们也以8位进行此操作,则将得到0而不是0x100,这也是一种检查正确性的有效方法。