2017-02-13 5 views
0

Werden nur 2 obere/untere Bytes einer crc32-Summe schwächer als crc16?Nur Teil von crc32 verwenden

Hintergrund:

Ich bin derzeit ein Wireless-Protokoll implementiert. Ich habe Stücke von 64byte, und nach würde ich höchstens crc16 benötigen. Die Verwendung von crc16 anstelle von crc32 würde die Bandbreite für die Verwendung in der Vorwärtsfehlerkorrektur freigeben (64 Byte ist ein Block in FEC). Allerdings ist meine Hardware recht stromsparend, hat aber Hardware-Unterstützung für CRC32. Also war meine Idee, die Hardware-crc32-Engine zu verwenden und nur 2 der Ergebnis-Bytes wegzuwerfen. Ich weiß, dass dies keine crc16 Summe ist, aber das ist egal, weil ich beide Seiten der Übertragung kontrolliere.

Falls es darauf ankommt: Ich kann sowohl crc32 (poly 0x04C11DB7) als auch crc32c (poly 0x1EDC6F41) verwenden.

Antwort

1

Ja, es wird schwächer, aber nur für kleine Bitfehler. Sie erhalten keine der Garantien eines CRC-16, indem Sie stattdessen die Hälfte eines CRC-32 nehmen. Z.B. die Anzahl der Bits in einem Burst, die immer erkennbar sind.

Was ist die Lärmquelle, vor der Sie schützen möchten?

+0

Störungen und lange Distanzen. Grundsätzlich sende ich rohe WLAN-Frames an einem Ende und empfange sie auf der anderen Seite. Dies beseitigt die Zeit, die für die Neuzuordnung von herkömmlichem WLAN benötigt wird. Ich werde das verwenden, um Daten zu und von meiner Drohne zu übertragen. – Thalhammer

+0

Dann sollten Sie eine vollständige CRC, entweder eine CRC-16 oder eine CRC-32 verwenden. Vielleicht möchten Sie nur die zusätzlichen zwei Bytes für den vollständigen CRC-32 investieren. –