Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Любая контр.сумма вероятнее всего изменится при изменении данных.
Но в зависимости от вида наиболее вероятных ошибок применяют ту к.с., которая максимально отлавливает нужный вид ошибок (в ущерб обнаружению остальных видов ошибок). Например, всевозможные CRC (циклические к.с.) заточены под 100%-ый отлов ошибок в нескольких подряд идущих битах (если ошибка локализована в 16 подряд идущих битах, то CRC16 её 100%-но отловит). Это наиболее подходящая сумма для последовательных каналов связи, где синхронизация никогда не теряется (напр., RS-232 тактируется с обоих сторон, поэтому теряются только биты, но не сихронизация). Популярность циклических сумм дошла до того, что народ применяет её везде где попало, не задумываясь о её назначении. Например, целостность файлов проверяется CRC32, хотя в этом случае существенные затраты на её вычисление ничем не оправданы (по сравнению с более простыми видами контрольных сумм), всё-таки для обычных 32-разрядных процессоров вычисление циклических сумм накладно, для них оптимальнее работа с 32-битными словами, а не битами.При некоторых способах кодирования изменение одного бита приводит к изменению длины последовательности со сдвигом хвоста пакета (пример - битстаффинг-нутый УСБ-пакет), в этом случае эффективность CRC для отлова таких ошибок "ниже среднего". Однако применяется там именно циклическая к.с., наверное потому что лучше ничего не придумали, хотя можно было бы с таким же успехом использовать абсолютно любую к.с. (напр., более быстрый при программной реализации способ add-xor всех байтов пакета) :( Хотя возможно, для аппаратной реализации CRC удобна простотой при побитовой обработке (кремния требует меньше).
Составить ответ | Вернуться на конференцию
Ответы