Перейти к содержимому

Урок 2 из 18 · Модуль 1. Азбука передачи данных: биты, уровни, дуплекс, инверсия

22 августа 2026

Протоколы в БАС: полный курс · Урок 2 из 18 · Модуль 1. Карта дрона и основы передачи данных

Семь понятий, без которых дальнейшее изложение будет непонятным: уровни логики, дуплексность, шины, мастер и слейв, синхронность, дифференциальный сигнал и инверсия.

Общий GND обязателен всегда: без общего провода сигнал не имеет точки отсчёта. И всегда проверяй уровни логики — 5-вольтовый передатчик может вывести из строя 3,3-вольтовый вход контроллера.

Содержание

1. Цели урока

После этого урока вы будете понимать:

  • различать 3,3-вольтовую и 5-вольтовую логику и понимать, когда их нельзя соединять напрямую
  • объяснять разницу между симплексом, полудуплексом и полным дуплексом
  • понимать, чем синхронный протокол отличается от асинхронного и что такое инверсия
↑ К оглавлению

2. Азбука передачи данных

Бит — это просто напряжение

Цифровая электроника различает только два состояния, и кодирует их уровнем напряжения на проводе. В дронах доминирует логика 3,3 В: логическая «1» — это ~3,3 В, логический «0» — ~0 В. Старые платы и Arduino работают с логикой 5 В. Внутри контроллера есть пороги: например, вход считает сигнал «единицей», если на нём больше ~2 В.

Схема подключения

Опасно!: Нельзя напрямую соединять 5-вольтовую и 3,3-вольтовую логику. Если 5-вольтовый передатчик подключить к 3,3-вольтовому входу контроллера — вход можно вывести из строя. Наоборот (3,3 В передатчик → 5 В вход) — почти всегда работает, но сигнал может быть «на грани». Для надёжности ставят преобразователь уровней. Всегда смотри в документацию FC: какое напряжение логики на её UART (у современных — 3,3 В).

Симплекс, полудуплекс, полный дуплекс

РежимСутьЖитейская аналогияВ дронах
Симплексданные идут только в одну сторону, всегдателевизор: он только вещаетSBUS (приёмник → FC), сигнал DShot (FC → ESC), видео с VTX
Полудуплекслиния одна, говорят по очередирация: «приём»SmartAudio/Tramp (VTX), SmartPort, шина I²C
Полный дуплексдве линии, обе стороны говорят одновременнотелефонный разговорUART (TX и RX), SPI (MOSI и MISO), CAN

Точка-точка против шины

Точка-точка — соединение ровно двух устройств: UART и SPI такие. Один передатчик, один приёмник, никто лишний. Шина — общий «провод-дорога», к которому подключаются сразу несколько устройств: I²C и CAN. У шины всегда есть правила доступа к линии: адресация у I²C, арбитраж у CAN.

Мастер и слейв — кто главный

В большинстве протоколов есть ведущий (master) и ведомые (slave). Ведущий задаёт темп: в I²C и SPI слейв молчит, пока его не спросят. Полётный контроллер почти всегда — мастер. Исключение — CAN: там все узлы равноправны, каждый может начать передачу, а конфликт решается автоматически (раздел 5).

Синхронные и асинхронные протоколы

Чтобы приёмник понял, где заканчивается один бит и начинается другой, нужны «часы». Есть два подхода:

  • Синхронные — тактовый сигнал идёт по отдельному проводу (SCK/SCL). Обе стороны работают по общему тактовому сигналу, поэтому скорость может быть очень высокой. Так работают I²C и SPI.
  • Асинхронные — отдельного такта нет, стороны договариваются о скорости заранее (бодрейт), а начало байта отмечается стартовым битом. Так работает UART. Отсюда главная особенность UART: если стороны настроены на разную скорость, приёмник получает искажённые данные.

Обычный сигнал и дифференциальный

Обычные протоколы меряют напряжение относительно общего провода (GND) — это так называемые single-ended сигналы. Они просты и недороги, но плохо подходят для длинных линий и чувствительны к помехам: наводка складывается с сигналом, и приёмник может прочитать искажённые данные. CAN использует другой трюк — дифференциальную пару: данные передаются разностью напряжений между двумя скрученными проводами CAN_H и CAN_L. Помеха наводится на оба провода одинаково, а разность между ними не меняется — поэтому CAN надёжно работает на дистанциях в десятки метров, тогда как UART на таких линиях уже неустойчив. Подробности — в разделе 5.

Инверсия — особенность сигнала, из-за которой «не работает» SBUS

У каждого цифрового протокола есть «состояние покоя» — уровень на линии, когда никто ничего не передаёт. UART в покое держит высокий уровень. А SBUS — тот же UART с инвертированными уровнями: в покое у него низкий уровень, все биты перевёрнуты. Поэтому SBUS нельзя подключить напрямую к обычному UART-входу на некоторых контроллерах — об этом целый раздел 7. Технику достаточно запомнить: инвертированный сигнал имеет перевёрнутые уровни, поэтому нужен либо специальный вход, либо неинвертированная точка на плате приёмника.

Схема подключения

Для техника: что реально важно из «азбуки»:
  • Общий GND обязателен всегда. Без общего провода сигнал не имеет «точки отсчёта» — данные превращаются в шум.
  • Проверяй уровни: 3,3 В или 5 В — прежде чем соединять, особенно старые GPS и новые FC.
  • Скорость должна совпадать у обеих сторон — это источник половины проблем с UART.
  • Длина проводов: UART, I²C и SPI рассчитаны на короткие линии (сантиметры, максимум десятки сантиметров), CAN — метры.
↑ К оглавлению

3. Чек-лист самопроверки

Урок освоен, если каждый пункт выполнен на практике:

  • Могу измерить мультиметром уровень на линии и определить её состояние покоя
  • Объясняю, почему CAN тянет десятки метров, а UART — нет
  • Знаю, что такое инверсия, и умею быстро определить её мультиметром
Результат: все пункты выполнены — переходите к следующему уроку.
↑ К оглавлению

4. Что дальше

  • Предыдущий урок: Урок 1. Карта дрона: кто с кем и как разговаривает
  • Следующий урок: Урок 3. UART: соединение, кадр и скорость
  • Полный перечень тем — в статье «Содержание курса».
↑ К оглавлению
19