Перейти к содержанию
    

ilkz

Участник
  • Постов

    132
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные ilkz


  1. Ув. xemul, почему именно 7 бит? Почему не 6 и не 8? А если данные будут 72 бита? А если 67 бит? А если 115 бит? Как вы это посчитали?

     

    Как же все-таки можно посчитать оптимальную разрядность контрольной суммы для заданной разрядности данных?

     

    Поясню к чему я это затеял:

    1. Просто хочется понять суть.

    2. Хочу доработать трансивер, чтобы он на этапе компиляции сам рассчитывал оптимальную длину CRC и синтезировалась соответствующая логика (ну это уже чисто плисерские замуты).

  2. Ну мне не нужно определять тип ошибки (сбойнувшие биты и т.п.) - достаточно просто отбраковывать плохие пакеты по несовпадению контрольной суммы.

    По-моему, очевидно что вероятность обнаружения ошибки нужно свести к минимум. Я понимаю, что, например, CRC-32 для 70 бит даст почти нулевую вероятность, а CRC-4 для тех же 70 бит будет гораздо менее "помехоустойчива", но как посчитать разумный оптимум? Так что вопрос пока остается открытым...

  3. Последовательный протокол передачи данных (все это сделано на ПЛИСе).

    Простейший пакет вида [MASK][DATA][CRC] (младший бит справа).

    Маска - это сигнатура, по которой синхрится приемник (не участвует в подсчете контрольной суммы).

    Данные - это данные )))

    CRC - это контрольная сумма данных.

     

    Непонятно мне вот что - как рассчитать, какой должна быть длина контрольной суммы для соответствующей длины данных? Много чего читал, но как-то явно про это нигде не говорится.

    Т.е., например, какой длины должна быть CRC для данных разрядностью 32 бита? А 64 бита? А 80 бит?

    Сейчас использую 4-битную CRC при длине данных порядка 70 бит. Глубокое ощущение что этого мало, но не могу разобраться как посчитать нужную разрадность CRC.

     

    И еще - стоит ли включать в подсчет CRC маску пакета?

    Если да, то становится не очень понятно как тогда налаживать синхронизацию, ведь CRC придется считать вообще постоянно и после захвата маски ее нужно бы сбросить, а уже нельзя, т.к. маска участвует в вычислении CRC...

×
×
  • Создать...