Автоматизированные системы управления технологическими процессами. Программно-технические комплексы. Втюрин В.А. - 65 стр.

UptoLike

Составители: 

65
первым байтом посылки, так как кроме старт-бита, все его биты "1".
(Если старт-бит символа FFh попадет на стоп-бит ложного кадра, будет
просто засчитана ошибка кадра).
Защита от рассинхронизации посылок.
Применяется совместно с
предыдущей защитой! Особо подлая помеха может замаскироваться под
управляющий символ и сбить принимаемую затем посылку. Кроме того,
предыдущая посылка может быть прервана. Из-за этого крайне желательно
в подпрограмме приема и сохранения данных предусмотреть меры по
опознанию настоящего начала посылки и сбросу приемного буфера
посылки (области памяти, куда сохраняются принимаемые байты). Для
этого служит преамбула – предварительный признак начала посылки.
Стартовый символ. В ASCII протоколе роль преамбулы играет
специальный управляющий символ начала посылки. По каждому приему
такого символа нужно сбрасывать буфер: обнулять число принятых байт,
перемещать указатель на начало буфера и т.п. То же самое нужно делать
при переполнении буфера. Это позволит настоящему управляющему
символу сбросить предыдущую "посылку", начатую ложным символом.
Пример. Последний управляющий символ " : " сбросит предыдущую
ложную посылку:
____
: ) ____ : 1 2 R S 4 8 5 /ПС/ ____
Стартовая пауза. В двоичном протоколе, где не предусмотрен
уникальный управляющий символ, и синхронизация посылок идет по
заданной паузе между байтами, достаточно увеличить активную паузу,
описанную в синхронизации кадров, до длительности паузы между
байтами, по которой начинается прием новой посылки. То есть, между
включением приемопередатчика на передачу и отправкой первых байтов
посылки нужно сделать паузу длительностью в 1.5 - 3.5 кадра UART. При
активном передатчике во время такой преамбулы помехе трудно будет
прорваться к приемникам, они зафиксируют нужную паузу, сбросят буфер
посылки и настроятся на прием новой посылки. Этот метод применяется, в
частности, для протокола MODBUS RTU.
Стартовая последовательность. Если в двоичном протоколе
синхронизация осуществляется лишь по корректному началу посылки, то
отфильтровать ложную посылку можно только по логике ее структуры.
Преамбула в данном случае некоторая стартовая последовательность
символов, которая не может встретиться в данных посылки, и которую
вряд ли сформирует помеха. Преамбула отсылается перед основной
посылкой. Принимающее устройство отслеживает в поступающих данных
эту стартовую последовательность. Где бы она не состоялась,
принимающее устройство сбрасывает буфер посылки и начинает
принимать новую.