有几天我试图了解这个协议是如何工作的,但没有成功。我需要一些帮助。
基本上我正在嗅探一个 UART 信号。115200 8N1 我明白协议背后发生了什么。它基于异或。下面是几个例子:
A0 82 00 01 02 14 81 6A 76
A0 82 00 02 02 14 81 6A 75
如您所见,01 到 02 的变化反映到 76 到 75。数据是异或半字节到半字节。
问题来了。在我打开系统后的第二天,我又进行了一次收购。惊喜校验和的变化。显然,crc 的计算方式也不同,因为要更改的位不是最后一个字节的 2 和 3。数据从 D0 => DC 变化,而之前从 76 变为 75。
A0 82 00 01 02 14 81 14 D0
A0 82 00 02 02 14 81 14 DC
实际上,我发现在完整传输中,我有一条消息每次都在变化。它是一个 5 字节的消息,格式为:
A0 07 0B 40 44
A0 07 EA 1B 58
刚刚发布的 2 条消息取自之前的 2 条传输。
我认为这两个 A0 消息发送某种类型的 CRC 提要和某种计算它的方法。第二个奇怪的事情,我不明白第一条消息中应用了什么样的CRC。需要修复 CRCc 基本种子的消息是非 CRC 的,这看起来很奇怪。
有人对什么协议可能有一些想法吗?相似的东西?