[英]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.