反向CRC计算

时间:2016-10-19 11:34:20

标签: vb.net serial-port crc

我正在尝试(不成功)使用VB.Net来反转计算机和设备之间串行通信的CRC计算。我只有几个例子。

命令(用于从设备读取记录):
ff ff ff ff ff 02 01 02 1a 03 aa aa

对数据的回应:

02 01 0a 1a 3a 00 3b f6 ec 80 79 24 03 7f 7f
02 01 0a 1a 36 00 3c 13 a6 ad 69 24 03 02 02
02 01 0a 1a 12 00 13 6f ba af 69 24 03 df df
02 01 0a 1a 10 00 a7 05 43 2c e9 25 03 57 57

01是设备ID 0a字节是长度 1a是命令(可能) 数据从字节00存储到字节03.

没有数据时的响应:
02 01 02 2a 03 87 87

我认为最后两个字节是crc。有什么帮助如何计算它们?
提前谢谢。

1 个答案:

答案 0 :(得分:1)

这是MAXIM CRC-8,它具有以下参数:

width=8 poly=0x31 init=0x00 refin=true refout=true xorout=0x00 check=0xa1 name="CRC-8/MAXIM"
来自RevEng catalog

。如注释中所述,在消息中重复8位CRC。 (第一个示例中的五个0xff字节不包含在CRC计算中。)

您可以使用crcany生成该CRC的代码。