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

Асинхронная последовательная передача

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

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

История

Идея асинхронной последовательной передачи восходит к телеграфии XIX века. Первые телеграфные аппараты (например, аппарат Морзе) передавали знаки последовательно, но синхронизация была ручной — оператор нажимал ключ, а приёмник слушал сигнал. С развитием телетайпов в начале XX века возникла потребность в автоматической передаче текста. В 1920-х годах появились телетайпы, использующие 5-битный код Бодо (Baudot), где каждый символ передавался с помощью стартового и стопового битов.

Стандартизация асинхронной передачи произошла в 1960-х годах с принятием стандарта RS-232 (Recommended Standard 232), разработанного Ассоциацией электронной промышленности (EIA). Этот стандарт определил электрические характеристики, типы разъёмов и протокол для последовательной передачи данных между компьютером и периферийными устройствами. RS-232 стал основой для интерфейсов COM-портов на персональных компьютерах.

В 1980–1990-х годах асинхронная последовательная передача широко использовалась для подключения модемов, мышей, принтеров и других устройств. С появлением USB (Universal Serial Bus) в конце 1990-х годов COM-порты начали вытесняться, но сам принцип асинхронной передачи остался востребованным в промышленной автоматике, встраиваемых системах и телекоммуникациях.

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

Структура кадра

Каждый передаваемый символ (обычно 8 бит, но может быть 5, 6 или 7 бит) упаковывается в кадр, который состоит из следующих частей:

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

Пример кадра для 8-битных данных без контроля чётности с одним стоповым битом: 0 (старт) | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 (данные, LSB→MSB) | 1 (стоп)

Синхронизация

Передатчик и приёмник предварительно настраиваются на одинаковую скорость передачи (битрейт), измеряемую в бодах (1 бод = 1 бит/с для двухуровневого сигнала). Стартовый бит служит «запускающим» импульсом: приёмник обнаруживает переход от «1» к «0» на линии и начинает отсчёт тактов, используя свой внутренний генератор. Благодаря тому, что частота генераторов обычно согласована с точностью около 1–2%, приёмник успевает корректно считать все биты до стопового бита.

Линия связи

Передача ведётся по одному проводу (плюс общий «земля»). Уровни сигнала зависят от стандарта: для RS-232 логическая «1» соответствует напряжению от −3 до −15 В, логический «0» — от +3 до +15 В. Современные реализации (например, UART в микроконтроллерах) часто используют уровни 0–3,3 В или 0–5 В.

Классификация

По типу интерфейса

  • RS-232 — классический стандарт для COM-портов. Использует напряжения ±12 В, максимальная скорость до 115 200 бод, длина кабеля до 15 метров.
  • RS-485 — дифференциальный интерфейс для промышленных сетей. Поддерживает до 32 устройств на одной линии, скорость до 10 Мбит/с, длину до 1200 метров.
  • UART (Universal Asynchronous Receiver-Transmitter) — аппаратный блок, реализующий асинхронную передачу в микроконтроллерах и чипах. Может работать с различными уровнями напряжения.
  • TTL UART — вариант UART с логическими уровнями 0–3,3 В или 0–5 В, часто используется для связи между микросхемами на одной плате.

По режиму передачи

  • Симплексный — передача только в одну сторону.
  • Полудуплексный — поочерёдная передача в обе стороны по одному каналу.
  • Дуплексный — одновременная передача в обе стороны по двум отдельным линиям (например, RX и TX в RS-232).

Характеристики

Скорость передачи

Скорость асинхронной последовательной передачи измеряется в бодах (бит/с). Стандартные значения: 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 бод. Более высокие скорости требуют качественных линий связи и точных генераторов.

Эффективность

Полезная скорость передачи данных (без учёта стартовых и стоповых битов) рассчитывается по формуле: Полезная скорость = Битрейт × (Биты данных) / (1 + Биты данных + Бит чётности + Стоповые биты) Например, при 8 битах данных, без чётности и с одним стоповым битом на 115200 бод полезная скорость составляет: 115200 × 8 / (1+8+1) = 115200 × 0,8 = 92160 бит/с ≈ 11,5 Кбайт/с Эффективность составляет 80%, остальные 20% — служебные биты.

Контроль ошибок

Бит чётности позволяет обнаружить одиночную ошибку в кадре, но не исправляет её. При обнаружении ошибки приёмник может игнорировать кадр или запросить повторную передачу (если протокол верхнего уровня поддерживает это). Более сложные методы контроля (CRC) в асинхронной передаче обычно не используются на уровне кадра — они реализуются на более высоких уровнях протоколов (например, Modbus, PPP).

Применение

Компьютерная техника

  • COM-порт — до середины 2000-х годов использовался для подключения модемов, мышей, принтеров и терминалов. В современных компьютерах COM-порты отсутствуют, но могут быть эмулированы через USB-адаптеры.
  • Консольный доступ — для настройки сетевого оборудования (маршрутизаторы, коммутаторы) и серверов через последовательный порт (консольный кабель).

Промышленная автоматика

  • Протокол Modbus RTU — широко используется в системах управления технологическими процессами (SCADA) для связи контроллеров, датчиков и исполнительных механизмов.
  • PROFIBUSпромышленная сеть на основе RS-485, применяемая в автоматизации заводов.
  • Связь с программируемыми логическими контроллерами (ПЛК) — через UART или RS-232.

Встраиваемые системы

  • Отладка микроконтроллеров — вывод отладочной информации через UART на терминал.
  • Связь между микросхемами — например, между микроконтроллером и GPS-модулем, Bluetooth-модулем или дисплеем.
  • Интернет вещей (IoT) — многие недорогие модули (ESP8266, SIM800) используют UART для связи с управляющим контроллером.

Телекоммуникации

  • Модемы — классические аналоговые модемы (V.34, V.90) подключались к компьютеру через RS-232.
  • ISDN-терминалы — некоторые устройства использовали последовательный интерфейс.

Примеры устройств и протоколов

  • GPS-приёмники — передают данные в формате NMEA 0183 через UART со скоростью 4800 или 9600 бод.
  • Bluetooth-модули HC-05/HC-06 — используют UART для связи с микроконтроллером.
  • Ардуино (Arduino) — платформа имеет встроенный UART, который через USB-преобразователь (FTDI или CH340) подключается к компьютеру как виртуальный COM-порт.
  • MIDI (Musical Instrument Digital Interface) — музыкальный протокол, использующий асинхронную последовательную передачу со скоростью 31250 бод.

Критика и ограничения

  • Низкая эффективность — потеря до 20% пропускной способности на служебные биты. Для высокоскоростной передачи (гигабитные сети) асинхронный метод не применяется.
  • Ограниченная длина линии — для RS-232 без повторителей длина не превышает 15 метров. RS-485 позволяет до 1200 метров, но при высоких скоростях длина сокращается.
  • Отсутствие встроенного обнаружения ошибок — бит чётности может не обнаружить чётное количество ошибок. Для надёжной передачи требуется протокол более высокого уровня.
  • Сложность синхронизации на высоких скоростях — при скоростях свыше 1 Мбит/с точность генераторов должна быть очень высокой (менее 0,5% отклонения), иначе возможны ошибки синхронизации.

Источники

  • ГОСТ Р 52653-2006. «Интерфейс последовательный асинхронный. Общие требования».
  • Стандарт EIA RS-232-C (1969).
  • Стандарт TIA/EIA-485-A (1998).
  • Таненбаум Э., Уэзеролл Д. «Компьютерные сети». 5-е издание. — СПб.: Питер, 2012.
  • Хоровиц П., Хилл У. «Искусство схемотехники». 7-е издание. — М.: Мир, 2003.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →