Всегда можно определить начальный байт как указание на то, что сообщение начинается (и коды ASCII SOH, STX и ETX предназначались для таких целей). Однако стандартное оборудование и протоколы для подключения к оборудованию для передачи данных (RS232C и более поздние версии) работают на более низком уровне, и, как правило, невозможно и нежелательно изменять это расположение (особенно с помощью программного обеспечения).
Высокопроизводительные схемы синхронной передачи данных, такие как используемые в локальных сетях и глобальных системах передачи, действительно используют сложные маркеры кадров. Маркер кадра представляет собой четкую комбинацию битов, которая никогда не встречается в потоке для данных сообщения. Как правило, существует специальное правило перезаписи, которое по существу «избегает» любого вхождения в данных подобного битового шаблона, так что передающее оборудование не будет видеть его как маркер кадра. Эти экранированные шаблоны восстанавливаются получателем, поэтому отправителю и получателю никогда не придется обращать на это внимание. Эти договоренности делают специализированное аппаратное обеспечение еще более важным, например, в типовой плате сетевого интерфейса (ныне чип материнской платы) для персональных компьютеров.
ФОН НА АСИНХРОННОЙ СЕРИЙНОЙ СВЯЗИ
Полезно рассматривать асинхронные последовательные передачи как асинхронные между символьными / информационными кадрами и синхронные в пределах диапазона символьных кадров (включая начальные биты и начальную остановку / заполнение).
При такой схеме между кадрами имеется постоянный сигнал заполнения, и он обычно имеет ширину не менее одного бита данных, хотя для некоторых схем требуется остановка / заполнение 1,5 или 2 бита. Стоповый бит использует тот же уровень сигнала и может считаться минимальным периодом заполнения до того, как поступит другой стартовый бит.
Когда приходит кадр, необходимо синхронизироваться с заранее определенным количеством битов, которые он должен нести. Переход от заполнения к сигналу противоположного уровня выполняется стартовым битом, который всегда противоположен уровню остановки / заполнения. Выборка битов может быть рассчитана на середину последующих периодов поступления битов.
Технически, если бы кадры отправлялись с максимальной скоростью, не было бы необходимости отправлять какие-либо остановки / заполнения, сразу переходя к начальному биту следующего кадра. Тем не менее, рассчитывая на заполнение хотя бы одного бита до перехода начального бита, можно поддерживать синхронизацию отправителя и получателя.
Если вы считаете, что асинхронные потоки кодируются из нажатий клавиш с помощью клавиатуры, вы можете увидеть важность разрешения произвольного заполнения между символьными фреймами. Как только известно, какой кадр следует отправить следующим, его можно сразу же вставить со своим начальным битом с согласованной скоростью передачи после того, как был достигнут хотя бы один бит предшествующей остановки / заполнения.
Также полезно отметить, что в типичных низкоскоростных асинхронных передачах есть только два вида битов / уровней, поэтому единственный способ отличить присутствие данных от заполнения - это схема маркера, такая как в этом случае начало кадра определяется однозначно, а конец кадра предопределен (если только не существует более сложной структуры кадра переменной длины, обычно не используемой в асинхронной последовательной связи). На самом деле для приемника довольно трудно обнаружить битовую скорость передатчика без какого-либо дополнительного соглашения, такого как поиск распознаваемой последовательности данных, из которой можно оценить скорость передачи битов, которая могла бы получить ее правильно, когда она поступит в неправильной форме.
Несмотря на то, что высокоскоростные модемы теперь передают сложные аналоговые сигналы, которые не описаны в терминах двух простых уровней сигналов, цифровая связь RS232C (и более поздний режим) между компьютером UART и связью данных на модеме довольно хороша. так же, как описано.
Высокоскоростные модемы также имеют дополнительные возможности для синхронизации с удаленной конечной точкой, о чем вы можете узнать, прослушивая звуковой сигнал при запуске соединения. Кроме того, существуют отдельные сигнальные линии в последовательном кабеле к компьютеру, которые используются для стимуляции между компьютером и модемом, так что отправляющая сторона не передает новые кадры данных быстрее, чем принимающая сторона (компьютер или модем) может принять их. Но однажды начатый кадр всегда запускается с согласованной синхронной скоростью.
В Википедии есть хорошее описание асинхронной последовательной связи , которые используют последовательные порты компьютера.
Существует общее упрощение, которое предполагает, что стоп-бит определяет длину данных. Это не тот случай. Стоповый бит выглядит как уровень для другого бита данных. Способ распознавания стопового бита и периода до следующего начального бита заключается в том, чтобы узнать скорость передачи данных в кадре и стартовые / стоповые биты, а также узнать, сколько бит содержит кадр. В противном случае нет способа отличить стоповый бит от другого бита этой полярности как части кадра данных.