我正在尝试解码一个具有3字节CRC的9字节RS-485数据包,如下所示。使用SW串行监视器,我使用在线计算器对参数部分进行了解码。
我知道可以使用8位Checksum8模256来计算Byte7。我的问题是我无法确定CRC的最后2个字节。我已经附加了来自reveng解码器的输出,它找到了一个型号,但没有找到一个名称。我提供了4个完整的9字节数据包。
reveng -w8 -sF 9BYTEPACKET1 9BYTEPACKET2 9BYTEPACKET3 9BYTEPACKET4 如它返回的图像链接所示:
width=8,poly=0x01,init=0x00,refin=false,refout=false,xorout=0x00,check=0x31,residue=0x00,name="(none)" 示例数据:
00 32 2a ff ff cd 27 03 f1
00 20 03 ff ff cd ee 02 02
00 13 28 ff ff cd 06 03 f3
00 13 02 ff ff cd e0 02 3e
Byte1 = ID(Can Change)
Byte2 = Parameter(Can Change)
Byte3 = Parameter(Can Change)
Byte4 = 0xFF (Never changes)
Byte5 = 0xFF (Never changes)
Byte6 = 0xCD (Never changes)
Byte7 = Checksum8 Modulo 256 (I can calculate this from Byte1 to Byte6)
Byte8 = CRC (Changes with diff Parameter data)
Byte9 = CRC (Changes with diff Parameter data) 任何帮助都将不胜感激。
发布于 2019-02-26 15:17:26
您的Byte8和Byte7只是前面字节的和,按小端顺序排列。然后,Byte9是前面字节的异或。
没有CRC。
https://stackoverflow.com/questions/54875445
复制相似问题