2017-02-13 4 views
0

Будет ли использовать только 2 верхних/нижних байта суммы crc32, чтобы она была слабее, чем crc16?Использование только части crc32

фона:

Я в настоящее время реализует протокол беспроводной. У меня есть куски по 64 байт каждый, и в соответствии с Data Length vs CRC Length Мне понадобится максимум crc16. Использование crc16 вместо crc32 позволит освободить полосу пропускания для использования в исправлении прямой ошибки (64 байта - это один блок в FEC). Однако мое оборудование довольно маломощное, но имеет аппаратную поддержку CRC32. Итак, моя идея состояла в том, чтобы использовать аппаратный движок crc32 и просто выбросить 2 байта результата. Я знаю, что это не сумма crc16, но это не имеет значения, потому что я контролирую обе стороны передачи.

В случае, если это имеет значение: я могу использовать как crc32 (poly 0x04C11DB7), так и crc32c (poly 0x1EDC6F41).

ответ

1

Да, это будет слабее, но только для небольшого числа бит-ошибок. Вы не получаете никаких гарантий CRC-16, вместо этого берете половину CRC-32. Например. количество бит в пакете, которое всегда обнаруживается.

Какой источник шума вы пытаетесь защитить от?

+0

Интерференция и большие расстояния. В основном я посылаю необработанные фреймы wifi на одном конце и получаю их на другом. Это удаляет время, необходимое для повторной ассоциации традиционной WLAN. Я буду использовать это для передачи данных на мой гул и обратно. – Thalhammer

+0

Затем вы должны использовать полный CRC, либо CRC-16, либо CRC-32. Вы можете просто потратить дополнительные два байта для полного CRC-32. –

Смежные вопросы