R&S®Essentials | Digital oscilloscope and probe fundamentals

Understanding UART

What is UART?

UART stands for universal asynchronous receiver / transmitter and defines a protocol, or set of rules, for exchanging serial data between two devices. UART is very simple and only uses two wires between transmitter and receiver to transmit and receive in both directions. Both ends also have a ground connection. Communication in UART can be simplex (data is sent in one direction only), half-duplex (each side speaks but only one at a time), or full-duplex (both sides can transmit simultaneously). Data in UART is transmitted in the form of frames. The format and content of these frames is briefly described and explained.

Данные в UART передаются в виде кадров

Где используется протокол UART?

UART был одним из первых последовательных протоколов. Когда-то повсеместно распространенные последовательные порты почти всегда работали по протоколу UART, и устройства, использующие интерфейсы RS-232, внешние модемы и т. д., являются типичными примерами использования UART.
В последние годы популярность UART снизилась: такие протоколы, как SPI и I2C, заменяют UART на уровне микросхем и компонентов. Вместо обмена данными через последовательный порт в большинстве современных компьютеров и периферийных устройств теперь используются такие технологии, как Ethernet и USB. Однако UART по-прежнему используется для приложений с более низкой скоростью и пропускной способностью, поскольку он очень прост, дешев и легок в реализации.

Тактирование и синхронизация протоколов UART

Одним из больших преимуществ UART является его асинхронность — передатчик и приемник не используют общий тактовый сигнал. Хотя это значительно упрощает протокол, данное свойство предъявляет определенные требования к передатчику и приемнику. Поскольку у них нет общего тактового сигнала, оба конца должны передавать с одинаковой заранее заданной скоростью, чтобы иметь одинаковую синхронизацию битов. Наиболее распространенные скорости передачи данных UART, используемые сегодня: 4800, 9600, 19,2 кбит/с, 57,6 кбит/с и 115,2 кбит/с. Помимо одинаковой скорости передачи данных, обе стороны UART-соединения также должны использовать одинаковую структуру и параметры кадра. Лучший способ получить представление о протоколе — посмотреть на кадр UART.

Формат кадра протокола UART

Кадры протокола UART содержат стартовые и стоповые биты, биты данных и необязательный бит четности, который будет описан ниже.

Как и в большинстве цифровых систем, «высокий» уровень напряжения используется для обозначения логической «1», а «низкий» уровень напряжения используется для обозначения логического «0». Поскольку в протоколе UART не определены конкретные напряжения или диапазоны напряжений для этих уровней, иногда высокий уровень также называют «Mark» (отметка), а низкий — «Space» (пробел). Обратите внимание, что в состоянии ожидания (когда данные не передаются) в линии поддерживается высокий уровень. Это позволяет легко обнаружить поврежденную линию или передатчик.

Стартовые и стоповые биты

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

Биты данных

Биты данных являются пользовательскими данными или «полезными» битами и идут сразу после стартового бита. Может быть от 5 до 9 битов пользовательских данных, хотя чаще всего используется 7 или 8 битов. Эти биты данных обычно передаются в формате с первым младшим значащим битом.

Пример:
Если мы хотим передать заглавную букву «S» в 7-битном коде ASCII, битовая последовательность будет выглядеть как 1 0 1 0 0 1 1. Сначала мы меняем порядок битов, чтобы организовать перед передачей формат с первым младшим значащим битом, то есть 1 1 0 0 1 0 1. После передачи последнего бита данных для завершения кадра используется стоповый бит, и линия возвращается в состояние ожидания.

  • 7-битный код ASCII ‘S’ (0x52) = 1 0 1 0 0 1 1
  • Порядок LSB = 1 1 0 0 1 0 1

Стартовые и стоповые биты

Биты данных

Бит четности

Кадр UART может также содержать дополнительный бит четности, который можно использовать для обнаружения ошибок. Этот бит вставляется между последним битом данных и стоповым битом. Значение бита четности зависит от типа используемого контроля четности (на четность или нечетность):

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

Пример:
Заглавная «S» (1 0 1 0 0 1 1) содержит три нуля и 4 единицы. При использовании контроля четности бит четности равен нулю, потому что кадр уже содержит четное количество единиц. При использовании контроля нечетности бит четности должен быть равен единице, чтобы кадр имел нечетное количество единиц.
Бит четности способен обнаруживать только один измененный (инвертированный) бит. Если инвертируется более одного бита, невозможно надежно обнаружить их с помощью единственного бита четности.

Пример бита четности

Основные сведения о протоколе UART

Посмотрите наше видео «Основные сведения о протоколе UART», чтобы узнать больше

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

Заключение

  • UART означает универсальный асинхронный приёмопередатчик и представляет собой простой двухпроводной протокол для обмена последовательными данными.
  • Асинхронность означает отсутствие общего тактового сигнала, поэтому для работы UART необходимо настроить одинаковую скорость передачи данных или битовую скорость на обеих сторонах соединения.
  • Стартовые и стоповые биты используются, чтобы указать, где начинаются и заканчиваются пользовательские данные, или для «кадрирования» данных.
  • Необязательный бит четности может использоваться для обнаружения однобитовых ошибок.
  • UART по-прежнему является широко используемым протоколом последовательной передачи данных, но в последние годы был заменен в некоторых областях применения такими технологиями, как SPI, I2C, USB и Ethernet.

У вас есть вопросы об UART или других последовательных протоколах? Наши специалисты вам помогут.