如何检测CRC保护数据中的错误?

时间:2014-12-25 10:57:08

标签: crc crc16 transmission

据我所知,检查附加到其末尾的CRC数据是否有错误,需要通过相同的CRC算法运行它,看看新计算的CRC是否为零。 / p>

我已尝试通过以下方式使用online CRC calculator进行此操作:

  1. 计算0xAABBDD的CRC(不带0x部分) - CRC16输出0x8992
  2. 计算CRC的0xAABBDD8992 - CRC16输出0xFB4A,而不是0x0000
  3. 我做错了什么?

1 个答案:

答案 0 :(得分:1)

附加CRC的东西仅适用于没有前置和后置条件的“纯”CRC。然而,大多数真实世界的CRC都有前置和后置条件,主要是因为零串的CRC不是零。

检查CRC的方法与任何其他检查值相同。您收到一条消息m c,其中m是消息字节,c是检查值。通过c=f(m)的其他渠道(很可能是标准文档)告诉您,并对函数f进行一些描述。要检查m c的完整性,请计算f(m)并查看其是否等于c。如果没有,则消息和/或检查值在传输中被破坏。如果它们相等,那么您可以确保消息未受损害。保证取决于f的性质,c中的位数以及传输通道上可能的错误的特征。