Свежие обсуждения
Микроконтроллеры

Коды Хэмминга и прочие

1 2 3

chav1961: Не мучайтесь, добавьте в протокол отправку байта подтверждения
Это не я мучаюсь. Я так... "в качестве повышения образованности" (с)

 

SAN, с Вами я согласен полностью. Речь немного о другом - помехоустойчивое кодирование используется в первую очередь там, где затраты на повторную передачу несоизмеримо выше, чем на коррекцию ошибок (например, быстрый обмен между ОЗУ и процессором). В данном случае ситуация у нас обратная, тем более, что от потери пакета никакой Хэмминг не защитит.

 

Crazyd: передавать данные довольно большие растояния
Allex: Я так... "в качестве повышения образованности"
Тогда вот.
http://forum.qrz.ru/thread10846.html

 

chav1961: Не мучайтесь, добавьте в протокол отправку байта подтверждения
Типа "НАЧАЛО" "ДАННЫЕ" "КОНЕЦ" ?

 

Не-а, что нибудь посложнее. Был когда-то давно такой протокол - X-modem. Детали я, конечно, подзабыл, но там пакет выглядел, по-моему, так:
1. Символ SOT.
2. Номер пакета (защита от повторной передачи)
3. длина пакета (1 байт)
4. N байт данных
5. Контрольная сумма (защита от помех при передаче). Кажется, было тупое сложение байтов.
6. Символ EOT (кажется)
При успешном приеме получатель высылал сигнал подтверждения ACK, при несовпадении с контрольной суммой - сигнал NAK. При таймауте ответа или NAK-е передатчик тупо повторял передачу. При ACK - увеличивал номер пакета (после 255 снова шел 0) и передавал следующие данные. Если приемник получал тот же самый пакет, что и предыдущий (номер пакета совпадал с предыдущим), он высылал ACK, но пакет не обрабатывал. Я его реализовывал лет пятнадцать назад на PC. Поищите, наверняка где-то есть подробное описание. Штука весьма надежная.

 

chav1961: протокол - X-modem
Спасибо. Единственный "минус" -- обратная связь.

 

Так ведь без нее нельзя. Просто нельзя. Три раза в день кушать тоже, в принципе, напрягает, а что делать?

 

Надо бросать эту дурную привычку

 

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

 

chav1961: помехоустойчивое кодирование используется в первую очередь там, где затраты на повторную передачу несоизмеримо выше, чем на коррекцию ошибок (например, быстрый обмен между ОЗУ и процессором).
Это - да.

Crazyd: через обычный опторазвязанный UART.
А скорость до предела понизить, не помогает?
(на такой длине фронты звенят, а ежели от них подальше сдвинуться должно помочь)