[an error occurred while processing this directive]
Если n-й байт не пришел (по любой причине)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Тумблер 23 июля 2006 г. 03:56
В ответ на: Если поток непрерывный, то заполнит ожидаемый пакет "мусором", отбракует его по CRC и уйдет на ловлю головного маркера. Все, как всегда. Так и не пойму в чем проблемма? отправлено ETM 23 июля 2006 г. 03:21

а алгоритм слэйва продолжает бесконечно ждать то возможны
разные интересные ситуации.
Напрмер, слэйв прожолжает ждать.
Идет следующий пакет, он принимается как продолжение предыдущего.
В итоге пакет, наконец, приняли, поняли что плохо.
Но и от второго пакета остался "кусок", который продолжает приниматься.
В итоге потеряно 2 пакета. А не один.

И потом - что значит "поток непрерывный"? Я ж говорю - байтов
больше нет. Это легко может получится - у одного из слэйвов
включили питание, когда обмен уже давно идет.
Это же сеть. Абоненты разбросаны в пространстве. Включить
питание всем одновременно затруднительно.

Ситуация серьезно упрощается, если принять за правило:
1. Пакет идет всегда слитно.
2. Между пакетами есть гарантированная пауза не меньше чего-то.
3. Байты фильтруются на ошибки сразу, а не "после". - зачем
принимать пакеты с FE, PE, или байты с явно ошибочной информацией ?

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

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание