Открыть сервисСервис

UART — асинхронный последовательный интерфейс

UART (англ. Universal Asynchronous Receiver/Transmitter — универсальный асинхронный приёмопередатчик) — аппаратный интерфейс для асинхронной последовательной передачи данных между электронными устройствами. Классифицируется как последовательный интерфейс (данные передаются по одному проводу последовательно, бит за битом) и асинхронный (без общего тактового сигнала между передатчиком и приёмником). UART является одним из старейших и наиболее распространённых интерфейсов в вычислительной технике и встроенных системах.

Принцип работы

UART передаёт данные по одному проводу в каждом направлении (по одному проводу на приём и по одному на передачу, плюс общий провод земли). Передача асинхронна: передатчик и приёмник не синхронизированы общим тактовым сигналом, поэтому стороны заранее согласовывают скорость передачи — скорость обмена (baud rate), измеряемую в бодах (бит/с). Типичные значения: 9600, 19200, 38400, 57600, 115200 бод.

Перед началом передачи линия находится в состоянии покоя (обычно высокий уровень логической «1»). Каждый байт данных передаётся в виде кадра:

  1. Стартовый бит — переход линии в состояние «0», сигнализирующий о начале кадра.
  2. Биты данных — от 5 до 9 бит (чаще всего 8), передаются от младшего бита к старшему.
  3. Бит чётности (необязательный) — используется для простейшей проверки ошибок: количество единиц в байте делают чётным или нечётным.
  4. Стоповый бит (один или два) — возврат линии в состояние «1», завершающий кадр.

Приёмник, обнаружив переход на стартовый бит, выжидает половину битового интервала и затем синхронизирует свои отсчёты с центрами битов, что компенсирует небольшое расхождение тактовых генераторов сторон.

Форматы кадров

Стандартный формат кадра обозначается как «8N1» — 8 бит данных, без бита чётности, 1 стоповый бит. Другие распространённые варианты: 7E1 (7 бит данных, чётность, 1 стоповый бит), 8E2 и т. д. Согласование формата кадра и скорости передачи — обязательное условие работы UART: при несовпадении параметров данные приходят искажёнными.

Физический уровень

Сам по себе UART задаёт только логический формат кадра, но не электрические параметры сигнала. Для подключения к внешним устройствам используются различные стандарты:

СтандартУровни сигналаДальностьОсобенности
TTL UART0 и +3,3/+5 Вдо 1 мПрямое подключение к микроконтроллерам
RS-232±3…±15 Вдо 15 мИнверсная логика, старый стандарт IBM PC
RS-485Дифференциальные парыдо 1200 мДуплексная шина, до 32 устройств

В современных микроконтроллерах (STM32, AVR, ESP32, серия К1986ВЕ) выводы UART работают на TTL-уровнях, поэтому для подключения к ПК или промышленному оборудованию применяют преобразователи (например, микросхемы MAX232 для RS-232 или MAX485 для RS-485).

UART в микроконтроллерах

Внутри микроконтроллера UART реализован как периферийный блок с набором регистров:

  • DR (Data Register) — регистр данных для записи/чтения;
  • SR (Status Register) — регистр статуса (флаги: данные готовы, переполнение, ошибка чётности);
  • BRR (Baud Rate Register) — делитель тактовой частоты, задающий скорость обмена.

Скорость передачи вычисляется по формуле: baud = f_такт / (16 × делитель). Блок обычно поддерживает прерывания и режим DMA, что позволяет обрабатывать потоковые данные без участия процессора.

Применение

UART применяется в широком спектре задач:

  • Отладка микроконтроллеров — вывод отладочных сообщений в терминальную программу (PuTTY, minicom);
  • Подключение периферии — GPS-модули, датчики, Bluetooth- и Wi-Fi-модули (HC-05, ESP-01), дисплеи;
  • Промышленная автоматизация — обмен данными с ПЛК по RS-485 (протоколы Modbus RTU);
  • Сетевое оборудование — консольные порты маршрутизаторов и коммутаторов;
  • Системы сбора данных — связь с датчиками на удалённых объектах.

История

Прототипом UART стала микросхема 8250 (1981), разработанная National Semiconductor для IBM PC. Она реализовывала последовательный порт с поддержкой скоростей до 115200 бод. Позднее появились 16450, 16550 (с буфером FIFO на 16 байт), 16750 и другие. В современных микроконтроллерах UART-блоки интегрированы в кристалл и часто реализуют расширенные возможности: инфракрасный режим (IrDA), поддержку LIN-шины, автоматическое управление потоком (RTS/CTS).

Достоинства и ограничения

К достоинствам UART относятся простота реализации (два провода), отсутствие необходимости в общем тактовом сигнале, низкая стоимость и широкая поддержка. Ограничения связаны с относительно низкой скоростью (до 1 Мбит/с в большинстве реализаций), отсутствием аппаратной адресации (каждый UART работает точка-точка) и чувствительностью к расхождению тактовых частот сторон (допускается до 2–3 %).

Источники

  • Справочник по микроконтроллерам STM32 (STMicroelectronics)
  • Программирование микроконтроллеров AVR. Учебный курс
  • Даташиты микросхем 16550, MAX232, MAX485
  • Стандарты EIA/TIA-232, EIA/TIA-485
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru