簡體   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