7

Я знаю, что бит четности является необязательным в последовательной связи, но как насчет начального бита и стоп-битов, они также являются необязательными?

2 ответа2

9

Являются ли стартовый бит и стоповый бит (ы) необязательными в последовательной связи?

Нет.


Предполагая RS232 (или его вариант TTL).

Рассматривайте каждое « направление » независимо, игнорируя линии управления потоком. Есть один сигнал, который должен каким-то образом передавать « данные », но он также должен быть в состоянии передавать « нет данных ».

Чтобы передать « нет данных », мы просто оставляем сигнал высокого уровня - логика 1. Так может быть до бесконечности, и все счастливы.

Как только мы хотим передать « данные », мы должны информировать удаленный конец, используя только этот один двоичный сигнал, о том, что данные собираются поступить.

Если бы мы не использовали стартовый бит и передавали 0b11110000 , это выглядело бы примерно так (где серый неактивен, а зеленый - активные данные):

без рамы 0b11110000

Но ... как получатель узнает, чтобы начать получать? Это выглядит идентично 0b00111100:

без рамы 0b00111100

Вместо этого мы помещаем известный бит « это начало » впереди:

начальные данные

Brilliant!

Но теперь мы сталкиваемся с другой проблемой ... Нет двух часов, тикающих с одинаковой скоростью. В случае скромного UART, это то, что согласовано заранее - оба конца ссылки « разговаривают » с почти одинаковой скоростью ...

Чтобы дать ссылке больше шансов на работу, мы вводим « стоп-бит », который по сути, просто отдых ... пауза. Два стоповых бита часто используются на старом оборудовании, для обработки полученного байта которого требуется больше времени - один стоповый бит сегодня практически повсеместен.

данные старт-стоп в рамке

Как @sawdust любезно напомнил мне, стоп-бит также важен, чтобы гарантировать, что мы можем успешно обнаруживать и синхронизировать в конце одного кадра и начале следующего. Это будет трудно, если первый кадр заканчивается нулем, за которым сразу же следует стартовый бит второго кадра.

... и у нас это есть! Красиво оформленная часть данных.


Четность является необязательной, поскольку она связана с обеспечением целостности данных, что облегчает обнаружение повреждений. Ничто в мире не является идеальным (иногда я удивляюсь, что что- то работает), и знание того, являются ли данные, которые вы только что получили, действительны, очень полезно.

К сожалению, спецификация очень старая, и бит четности позволяет нам обнаруживать только нечетное число перестановок битов. Если есть четное количество битов, то четность не может обнаружить это.

Сегодня у нас есть гораздо более продвинутые технологии обнаружения ошибок и даже коррекции, которые способны выявлять (или даже исправлять) количество искажений.

Протоколы, работающие сегодня по UART, обычно не используют бит четности и предпочитают вместо этого использовать контрольную сумму для обеспечения целостности передаваемых данных.

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

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

1

И стартовый, и стоповый биты являются обязательными и служат простой цели - формированию данных, подлежащих передаче.

Строка данных обычно устанавливается на определенный бит (например, 0), когда отправитель находится в режиме ожидания. Как только он начинает обмениваться данными, он устанавливает строку данных в инвертированный бит (начальный бит, 1). Это сигнализирует приемнику войти в ряд состояний. В последнем состоянии строка данных должна снова стать незанятой и возвращается к своему первоначальному биту (стоповый бит, 0). Приемник снова прослушивает стартовый бит, и цикл повторяется.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .