Стартовый бит
Стартовый бит (англ. start bit) — в асинхронной последовательной передаче данных это специальный бит, который предшествует передаче полезной нагрузки (байта данных) и сигнализирует приёмнику о начале новой посылки. Он является обязательным элементом протокола асинхронной связи, обеспечивая синхронизацию между передатчиком и приёмником без использования отдельного тактового сигнала.
История
Понятие стартового бита возникло с развитием телеграфии и ранних систем передачи данных. В телеграфных аппаратах, работающих по принципу старт-стопной передачи, стартовый бит служил для запуска механизма печати. В 1930-х годах этот принцип был стандартизирован в телетайпах (например, в системе Baudot), где каждая буква кодировалась 5 битами, а перед ними передавался стартовый бит, а после — стоповый бит.
С появлением цифровых вычислительных машин и последовательных интерфейсов (RS-232, UART) в 1960-х годах стартовый бит стал неотъемлемой частью асинхронного протокола. В 1970-х годах стандарт RS-232C закрепил использование стартового бита для синхронизации передачи данных на скоростях до 20 кбит/с. Впоследствии, с развитием микроконтроллеров и периферийных устройств, стартовый бит остался в таких протоколах, как I²C, SPI (в некоторых режимах) и CAN.
Принцип работы
Асинхронная передача
В асинхронной последовательной связи передатчик и приёмник не имеют общего тактового сигнала. Синхронизация осуществляется за счёт стартового бита. Каждая посылка (кадр) начинается с перехода линии из состояния «1» (пассивное, маркер) в состояние «0» (активное, пробел). Этот переход (спад сигнала) воспринимается приёмником как сигнал начала передачи.
Структура кадра
Типичный кадр асинхронной передачи включает:
- Стартовый бит (всегда «0»).
- Биты данных (обычно 5–9 бит, чаще всего 8 бит).
- Бит чётности (опционально, для контроля ошибок).
- Стоповый бит (всегда «1», длительностью 1, 1,5 или 2 бита).
После стопового бита линия возвращается в состояние «1» до следующего стартового бита. Длительность стартового бита равна длительности одного бита (определяется скоростью передачи, например, 9600 бит/с).
Обнаружение стартового бита
Приёмник непрерывно отслеживает линию данных. При обнаружении перехода из «1» в «0» он запускает внутренний таймер, который отсчитывает половину длительности бита. Если через половину бита линия всё ещё находится в «0», приёмник подтверждает, что это действительно стартовый бит, а не помеха. Затем он начинает считывать биты данных с заданной частотой (обычно в середине каждого бита).
Классификация
По типу протокола
- Асинхронные протоколы (RS-232, UART, телетайп) — стартовый бит обязателен.
- Синхронные протоколы (например, SPI, I²C в режиме с синхросигналом) — стартовый бит не используется, так как синхронизация обеспечивается отдельным тактовым сигналом.
- Полусинхронные протоколы (например, CAN) — стартовый бит присутствует в виде бита начала кадра (SOF), но его функция аналогична.
По длительности
- Стартовый бит всегда имеет длительность одного бита (1 битовый интервал). В некоторых специализированных протоколах (например, в LIN) допускается удлинение стартового бита для синхронизации с низкоскоростными устройствами.
Применение
Компьютерные интерфейсы
- RS-232 — стандартный последовательный порт (COM-порт) на персональных компьютерах. Стартовый бит используется для передачи данных между компьютером и модемом, мышью, принтером или другим устройством.
- UART (Universal Asynchronous Receiver/Transmitter) — аппаратный блок, реализующий асинхронную передачу. Встроен в микроконтроллеры (например, AVR, STM32) и используется для связи с датчиками, GPS-модулями, Bluetooth-адаптерами.
Промышленные сети
- RS-485 — дифференциальный интерфейс, используемый в промышленных системах автоматизации (Modbus, Profibus). Стартовый бит обеспечивает синхронизацию в многоточечных линиях.
- CAN (Controller Area Network) — протокол для автомобильной электроники. Стартовый бит (SOF) синхронизирует все узлы сети.
Телекоммуникации
- Модемы — при передаче данных по телефонным линиям стартовый бит используется в протоколах V.21, V.22 и других.
- Телетайпы — исторически стартовый бит применялся в телеграфных аппаратах (например, в системе «Бодо»).
Встраиваемые системы
- 1-Wire — протокол для связи с датчиками температуры (DS18B20). Стартовый бит инициирует передачу команды.
- I²C — в режиме быстрой передачи (Fast Mode) стартовый бит (S) сигнализирует о начале транзакции.
Характеристики
Скорость передачи
Стартовый бит не влияет на скорость передачи данных, но увеличивает накладные расходы. Например, при передаче 8 бит данных с одним стартовым и одним стоповым битом полезная скорость составляет 80% от полной (8 из 10 бит).
Надёжность
- Стартовый бит обеспечивает устойчивость к помехам: приёмник может игнорировать ложные срабатывания, если переход не подтверждается через половину бита.
- Отсутствие стартового бита (например, в синхронных протоколах) требует более сложной схемы синхронизации (PLL, фазовая автоподстройка частоты).
Ограничения
- Стартовый бит увеличивает задержку передачи (особенно на низких скоростях).
- При длительных паузах между кадрами приёмник может потерять синхронизацию, если стартовый бит не обнаружен.
Примеры реализации
UART на микроконтроллере AVR
При настройке UART (например, в ATmega328) регистры UCSR0B и UCSR0C задают формат кадра: 8 бит данных, 1 стартовый бит, 1 стоповый бит. При передаче байта 0x55 (двоично: 01010101) последовательность на линии будет: 0 (старт), 1, 0, 1, 0, 1, 0, 1, 0 (данные), 1 (стоп).
RS-232 на компьютере
В операционной системе Windows настройка COM-порта (например, через терминальную программу) включает параметры: скорость (9600 бит/с), 8 бит данных, 1 стоповый бит, без чётности. Стартовый бит автоматически добавляется аппаратным обеспечением UART.
Критика и альтернативы
Недостатки
- Накладные расходы: каждый байт данных требует дополнительных 2 бита (старт и стоп), что снижает эффективность пропускной способности на 20% (для 8-битных данных).
- Зависимость от точности тактирования: приёмник и передатчик должны иметь близкие частоты (обычно допуск ±2–5%), иначе стартовый бит может быть неверно интерпретирован.
Альтернативы
- Синхронная передача (например, SPI) — не требует стартового бита, так как синхронизация осуществляется по тактовому сигналу. Это увеличивает скорость передачи, но требует дополнительной линии.
- Самосинхронизирующиеся коды (например, манчестерский код) — кодируют данные так, что синхронизация восстанавливается из самого сигнала, без стартового бита.
- Протоколы с преамбулой (например, Ethernet) — используют длинную преамбулу для синхронизации, а не один стартовый бит.
Интересные факты
- В телетайпах стартовый бит физически запускал механизм печати, что требовало точного времени.
- В протоколе MIDI (Musical Instrument Digital Interface) стартовый бит используется для синхронизации музыкальных инструментов.
- В некоторых реализациях UART стартовый бит может быть заменён на «бит начала кадра» в режиме с автоматическим обнаружением.
Источники
- Стандарт EIA/TIA-232-F (RS-232) — интерфейс последовательной передачи данных.
- Техническая документация микроконтроллеров Atmel AVR (раздел UART).
- «Цифровая схемотехника» — учебное пособие по последовательным интерфейсам.
- Спецификация протокола CAN (ISO 11898).
- Книга «Computer Networks» (Andrew S. Tanenbaum) — описание асинхронной передачи.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →