Асинхронная последовательная передача
Асинхронная последовательная передача — это метод передачи цифровых данных, при котором каждый байт (или слово) данных передаётся по одному биту за раз по одному каналу связи, а синхронизация между передатчиком и приёмником осуществляется с помощью стартовых и стоповых битов, встроенных в каждый передаваемый символ, без использования отдельного тактового сигнала.
В отличие от синхронной передачи, где данные передаются непрерывным потоком в такт общему синхросигналу, асинхронная передача не требует постоянной синхронизации. Каждое сообщение (кадр) начинается со стартового бита, который предупреждает приёмник о начале передачи, и заканчивается одним или несколькими стоповыми битами, сигнализирующими об окончании. Это делает метод простым и дешёвым в реализации, но менее эффективным по скорости, так как часть пропускной способности тратится на служебные биты.
История
Идея асинхронной последовательной передачи восходит к телеграфии 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 бит) упаковывается в кадр, который состоит из следующих частей:
- Стартовый бит — всегда логический «0» (пробел). Он сигнализирует приёмнику о начале передачи.
- Биты данных — от 5 до 9 бит, передаваемые последовательно, начиная с младшего бита (LSB first).
- Бит чётности (опционально) — используется для контроля ошибок. Может быть чётным, нечётным, маркерным или нулевым.
- Стоповые биты — один или два бита, всегда логическая «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 →