![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_default_photo.png)
ilkz
-
Постов
132 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные ilkz
-
-
Ну мне не нужно определять тип ошибки (сбойнувшие биты и т.п.) - достаточно просто отбраковывать плохие пакеты по несовпадению контрольной суммы.
По-моему, очевидно что вероятность обнаружения ошибки нужно свести к минимум. Я понимаю, что, например, CRC-32 для 70 бит даст почти нулевую вероятность, а CRC-4 для тех же 70 бит будет гораздо менее "помехоустойчива", но как посчитать разумный оптимум? Так что вопрос пока остается открытым...
-
Последовательный протокол передачи данных (все это сделано на ПЛИСе).
Простейший пакет вида [MASK][DATA][CRC] (младший бит справа).
Маска - это сигнатура, по которой синхрится приемник (не участвует в подсчете контрольной суммы).
Данные - это данные )))
CRC - это контрольная сумма данных.
Непонятно мне вот что - как рассчитать, какой должна быть длина контрольной суммы для соответствующей длины данных? Много чего читал, но как-то явно про это нигде не говорится.
Т.е., например, какой длины должна быть CRC для данных разрядностью 32 бита? А 64 бита? А 80 бит?
Сейчас использую 4-битную CRC при длине данных порядка 70 бит. Глубокое ощущение что этого мало, но не могу разобраться как посчитать нужную разрадность CRC.
И еще - стоит ли включать в подсчет CRC маску пакета?
Если да, то становится не очень понятно как тогда налаживать синхронизацию, ведь CRC придется считать вообще постоянно и после захвата маски ее нужно бы сбросить, а уже нельзя, т.к. маска участвует в вычислении CRC...
CRC
в В помощь начинающему
Опубликовано · Пожаловаться
Ув. xemul, почему именно 7 бит? Почему не 6 и не 8? А если данные будут 72 бита? А если 67 бит? А если 115 бит? Как вы это посчитали?
Как же все-таки можно посчитать оптимальную разрядность контрольной суммы для заданной разрядности данных?
Поясню к чему я это затеял:
1. Просто хочется понять суть.
2. Хочу доработать трансивер, чтобы он на этапе компиляции сам рассчитывал оптимальную длину CRC и синтезировалась соответствующая логика (ну это уже чисто плисерские замуты).