繁体   English   中英

如何使用CRC32生成器生成有效的CRC16?

[英]How to use CRC32 generator for an effective CRC16?

我正在用C编写嵌入式STM32F105微控制器。 我需要实现一个CRC例程来验证通过空中发送的消息。

微控制器的硬件中内置有CRC32发生器。 您一次输入4个字节,它就计算出CRC,而没有额外的处理器开销。 它是不可配置的,并且使用以太网CRC32多项式。

我想使用此硬件CRC生成器,但是我只想向每个数据包添加两个字节(不是四个)。 数据包的大小将在4到1022字节之间变化。

我可以简单地使用CRC32的两个高字节(或低字节)吗? 还是我总是可以一次将2个字节送入CRC模块,而高字节为零?

还有其他方法可以得到我想要的东西吗?

当然,对于大多数应用程序,您可以仅将CRC-32的低两个字节用作16位校验值。 但是,这将不是16位CRC。 它与检查邮件中的严重错误的任何其他哈希值一样好。

对于由CRC提供的短数据包长度中的少量误码,它不会具有某些理想的属性。

向CRC生成器零输入信号毫无意义。 继续,为每个指令提供四个字节的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM