[an error occurred while processing this directive]
Ответ: нет, ибо не учитываются кратные ошибки. Более надежный контроль сбоя даст вычисление хитроумных md5 или -
(«Телесистемы»: Конференция 'Микроконтроллеры и их применение')
миниатюрный аудио-видеорекордер mAVR

Отправлено diwil 23 июля 2002 г. 22:20
В ответ на: Господа!! А является ли контрольная сумма надежным способом определения сбоя при передачи данных (обычная сумма - дополнение до нуля) и есть ли вообще общепринятые способы это определять и где про ето можно почитать. СПАСИБО! отправлено SERGO 23 июля 2002 г. 20:48

остатков от деления на неприводимые многочлены. Например:

для каждого переданного/принятого бита сделать:
...
CRC = docrc( bit);
...

где:

unsigned short
docrc( unsigned char bit )
{
static unsigned short crc = 0;
crc = docrcbit(bit?1:0, crc);
return crc;
}

static unsigned short
docrcbit( unsigned char bit, unsigned short crc )
{
int t = bit ^ ((crc & 0x8000)? 0x01: 0x00);
crc <<= 1;
if (t) crc ^= 0x8005;
return crc;
}

Тгда после передачи некого количества битиков получит 16и битное число, которое достаточно уникально для данной последовательности.
В конце последовательности надо передать CRC и сравнить полученую с вычисленой на приемной стороне. Это - crc16.

Есть так же то же самое crc32. Описания этих "алгоритмов" можно найти легко в сети.



Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru