【发布时间】:2019-06-20 19:41:08
【问题描述】:
我对自己在应用开发过程中的观察非常好奇。 长话短说,我正在制作从智能电表读取数据的应用程序。他们有这样的请求框架:
7E [hex-address] [crc1] [cmd] [crc2] 7E
CRC 的算法是 CRC-16/X-25,他们应该计算没有7e 的帧的整个左边部分,所以crc2 包括crc1。我注意到crc2 对于任何cmd 都是相同的,即使有不同的hex-address。
我已经使用crccalc 工具来确保。重现步骤:
- 放置任意(甚至任意大小)十六进制数组
- 计算 CRC-16/X-25
- 交换 CRC 字节
- 将此交换后的 CRC 放入数组末尾
- 再次计算 CRC
对于任何字节数组,此 CRC 都是相同的。为什么这样?这种现象有什么名字吗?
【问题讨论】: