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