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

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

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

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

История

Идея асинхронной последовательной передачи восходит к телеграфии 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 В.

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

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

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

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

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

Скорость асинхронной последовательной передачи измеряется в бодах (бит/с). Стандартные значения: 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).

Применение

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

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

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

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

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

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

Источники

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

На главную BFOmetr →