我有一个传感设备,它传输一个 6 字节消息以及一个 1 字节计数器和一个校验和。
数据看起来像这样:
------DATA----------- -Counter- --Checksum?--
55 FF 00 00 EC FF ---- 60---------- 1F
计数器中的最后四位始终设置为 0,即这些位可能未使用。最后一个字节被假定为校验和,因为它具有非常特殊的性质。它往往会随着数据的变化而随机变化。
现在我需要找到基于--DATA-- 来计算这个校验和的算法。我尝试的是所有可能的 CRC-8 多项式,对于每个多项式,我都尝试反映数据、切换它、使用非零值启动它等等。我得出的结论是,我不是在处理正常的 crc-算法。我也尝试了一些 flether 和 adler 方法但没有成功,来回异或东西,但我仍然不知道如何生成校验和。
我最关心的是,计数器是如何使用的???相同的数据但具有不同的计数器值会生成不同的校验和。我试图将计数器包含在我的计算中,但没有任何运气。
以下是其他一些数据样本:
55 FF 00 00 F0 FF A0 38
66 0B EA FF BF FF C0 CA
5E 18 EA FF B7 FF 60 BD
F6 30 16 00 FC FE 10 81
可能值得一提的另一件事是数据中的最后一个字节仅取值 FF 或 FE
请,如果您有任何提示或技巧,我可以尝试将它们发布在这里,我真的很绝望。
谢谢