Как определить, какой CRC использовать? - PullRequest
5 голосов
/ 23 июня 2010

Если у меня есть определенное количество байтов для последовательной передачи, как мне определить, какой CRC (CRC8, CRC16 и т. Д., В основном, сколько бит CRC?) Использовать, и при этом процент обнаружения ошибок будет высоким?Есть ли формула для этого?

Ответы [ 2 ]

6 голосов
/ 23 июня 2010

С точки зрения длины CRC применяется нормальная статистика.Для битовой ширины CRC у вас есть 1/(2^n) шанс получить ложное срабатывание.Так что для 8-битного CRC у вас есть шанс 1/255 и т. Д.

Однако выбранный полином также оказывает большое влияние.Математика сильно зависит от передаваемых данных и не является простым ответом.

Вы должны оценить больше, чем просто CRC, в зависимости от вашего механизма связи (FEC с системами, такими как турбокоды, очень полезен и распространен).

5 голосов
/ 23 июня 2010

Чтобы ответить на этот вопрос, вам нужно знать коэффициент ошибок по битам вашего канала, который можно определить только опытным путем. И затем, как только вы получите измеренный BER, вы должны решить, какая частота обнаружения достаточно высока для ваших целей.

Отправка каждого сообщения, например, 5 раз, даст вам довольно хорошее обнаружение даже на очень шумном канале, но это немного ограничивает вашу пропускную способность. Тем не менее, если вы отправляете команды для проверки дальнего космоса, вам может понадобиться такая избыточность.

...