Составители:
66
Вариант 1. Посылка начинает заново приниматься после приема
"go!" (вместо символов могут быть любые 8-битные данные):
____
: - Ь ___ g o ! 1 2 R S 4 8 5 ____
Вариант 2. Посылка начинает заново приниматься после приема не
менее трех "E" подряд и стартового байта " : " (вместо символов могут
быть любые 8-битные данные):
____
> : - E ___ E E E : 1 2 R S 4 8 5 ____
Даже если до стартовой последовательности было два таких символа
подряд, посылка начнет сохраняться только за последовательностью из не
менее чем трех подряд (лишние игнорируются) и стартового символа. Если
вместо "Е" использовать байт FFh - можно совместить синхронизацию
кадров и посылок. Для этого посылаются четыре FFh, а принимающее
устройство ожидает не менее трех, с учетом того, что первый байт FFh
может уйти на синхронизацию кадров.
2). Контроль достоверности. Особо сильная помеха может
вклиниться в посылку, исказить управляющие символы или данные в ней,
а то и вовсе уничтожить ее. Кроме того, одно из подключенных к линии
устройств (абонент) может выйти из строя и перестать отвечать на
запросы. На случай такой беды существуют контрольная сумма, тайм-ауты
и квитирование.
Контрольная сумма
- в общем случае 1-2 байта кода, полученного
некоторым преобразованием из данных посылки. Самое простое –
"исключающее или" всем байтам данных. Контрольная сумма
рассчитывается и включается в посылку перед отправкой. Принимающее
устройство производит ту же операцию над принятыми данными и сверяет
рассчитанную контрольную сумму с полученной. Если посылка была
повреждена, то, скорее всего, они не совпадут. В случае применения ASCII
протокола – код контрольной суммы также передается ASCII-символами.
Тайм-аут
– максимальное время ожидания ответа от запрашиваемого
устройства. Если посылка была повреждена или запрашиваемое
устройство вышло из строя, то ведущее устройство не повиснет в
ожидании ответа, а по истечении определенного времени признает наличие
сбоя. После чего можно еще пару раз повторить запрос и, если сбой
повторяется, перейти на отработку аварийной ситуации. Тайм-аут
отсчитывается с момента завершения передачи запроса. Его длительность
должна с небольшим запасом превышать максимальное время ответной
передачи плюс время, необходимое на обработку запроса и формирование
ответа. Ведомому устройству тоже не помешает отработка тайм-аутов.
Особенно в ситуациях, когда отсутствие регулярного обновления данных
или новых команд от ведущего устройства критично для работы устройств
системы. Самая простая реализация для ведомого – сброс сторожевого
Страницы
- « первая
- ‹ предыдущая
- …
- 64
- 65
- 66
- 67
- 68
- …
- следующая ›
- последняя »
