UART — асинхронный последовательный интерфейс¶
UART (англ. Universal Asynchronous Receiver/Transmitter — универсальный асинхронный приёмопередатчик) — аппаратный интерфейс для асинхронной последовательной передачи данных между электронными устройствами. Классифицируется как последовательный интерфейс (данные передаются по одному проводу последовательно, бит за битом) и асинхронный (без общего тактового сигнала между передатчиком и приёмником). UART является одним из старейших и наиболее распространённых интерфейсов в вычислительной технике и встроенных системах.
¶Принцип работы
UART передаёт данные по одному проводу в каждом направлении (по одному проводу на приём и по одному на передачу, плюс общий провод земли). Передача асинхронна: передатчик и приёмник не синхронизированы общим тактовым сигналом, поэтому стороны заранее согласовывают скорость передачи — скорость обмена (baud rate), измеряемую в бодах (бит/с). Типичные значения: 9600, 19200, 38400, 57600, 115200 бод.
Перед началом передачи линия находится в состоянии покоя (обычно высокий уровень логической «1»). Каждый байт данных передаётся в виде кадра:
- Стартовый бит — переход линии в состояние «0», сигнализирующий о начале кадра.
- Биты данных — от 5 до 9 бит (чаще всего 8), передаются от младшего бита к старшему.
- Бит чётности (необязательный) — используется для простейшей проверки ошибок: количество единиц в байте делают чётным или нечётным.
- Стоповый бит (один или два) — возврат линии в состояние «1», завершающий кадр.
Приёмник, обнаружив переход на стартовый бит, выжидает половину битового интервала и затем синхронизирует свои отсчёты с центрами битов, что компенсирует небольшое расхождение тактовых генераторов сторон.
¶Форматы кадров
Стандартный формат кадра обозначается как «8N1» — 8 бит данных, без бита чётности, 1 стоповый бит. Другие распространённые варианты: 7E1 (7 бит данных, чётность, 1 стоповый бит), 8E2 и т. д. Согласование формата кадра и скорости передачи — обязательное условие работы UART: при несовпадении параметров данные приходят искажёнными.
¶Физический уровень
Сам по себе UART задаёт только логический формат кадра, но не электрические параметры сигнала. Для подключения к внешним устройствам используются различные стандарты:
| Стандарт | Уровни сигнала | Дальность | Особенности |
|---|---|---|---|
| TTL UART | 0 и +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
