Коммуникация — это то, что мы начинаем делать с самого начала жизни, но даже самым опытным людям бывает сложно общаться эффективно. За многие годы люди разработали множество способов общения — устное, письменное, визуальное, жестами и другие. Каждый способ опирается на синтаксис и семантические правила, чтобы передать смысл от отправителя к получателю. Некоторые способы более эффективны, но цель одна: передать информацию из точки А в точку Б.

В этом смысле современные цифровые устройства ничем не отличаются от людей. Эти устройства тоже активно «общаются» и взаимодействуют друг с другом различными способами. Например, микроконтроллер может опрашивать датчики или отправлять пакеты данных по радиоканалу. Компоненты обмениваются данными через четко определённые протоколы цифровой связи. В мире встроенных систем существует несколько таких протоколов, из которых инженер может выбрать подходящий.
Эта статья рассматривает самые распространённые протоколы связи, используемые во встроенных системах. Вы узнаете особенности каждого протокола и получите общее представление о структуре цифровой коммуникации во встраиваемой электронике.
Что такое цифровые коммуникационные протоколы?
Вкратце, цифровой протокол связи — это набор правил, определяющих, как цифровые компоненты могут взаимодействовать и обмениваться данными. Протоколы описывают множество аспектов передачи электрических сигналов, необходимых для надёжного обмена единицами и нулями между отправителем и получателем. Основные характеристики любого протокола:
-
Скорость передачи данных — насколько быстро может передаваться информация, обычно измеряется в битах в секунду (bps) или мегабитах в секунду (Mbps). Чем выше скорость, тем больше требования к целостности сигнала и энергопотреблению.
-
Кодирование данных — определяет, как биты группируются в структуры:
-
Байты (например, 8 бит)
-
Слова (например, 16 или 32 бита)
-
Фреймы (например, в UART, SPI)
-
Пакеты (например, в TCP/IP или CAN)
-
-
Методы кодирования сигнала (line encoding) — описывают, как логические биты отображаются в изменения напряжения:
-
NRZ (без возврата к нулю): сигнал остаётся высоким или низким в течение всего бита. Просто, но могут возникать проблемы синхронизации при длинных последовательностях одинаковых битов.
-
RZ (с возвратом к нулю): сигнал возвращается к нулю в середине каждого бита. Легче восстанавливать тактовую частоту, но требуется больше полосы пропускания.
-
-
Режимы передачи данных:
-
Simplex: передача только в одну сторону (например, телевидение).
-
Полудуплекс (Half-Duplex): двусторонняя, но поочередная передача (например, рации).
-
Полный дуплекс (Full-Duplex): передача в обе стороны одновременно (например, телефонный разговор, UART с отдельными линиями TX/RX).
-
-
Синхронная vs. асинхронная передача:
-
Синхронная: устройства используют общий тактовый сигнал. Быстрее и предсказуемее (например, SPI, I²C).
-
Асинхронная: устройства работают независимо, используя старт/стоп-биты (например, UART).
-
-
Обнаружение и коррекция ошибок:
-
Бит четности
-
Контрольные суммы (Checksum)
-
CRC (циклический избыточный код) — применяется в USB, CAN, Ethernet
-
-
Последовательная и параллельная передача:
-
Последовательная: один бит за раз (UART, SPI, I²C).
-
Параллельная: несколько бит одновременно по разным проводам. Быстрее, но требует больше пинов (используется в шинах памяти, дисплеях).
-
-
Порядок байт (Endianness):
-
Big Endian: сначала отправляется старший байт.
-
Little Endian: сначала младший байт.
-
-
Количество необходимых выводов (пинов):
-
UART: 2 пина (TX, RX)
-
I²C: 2 пина (SDA, SCL)
-
SPI: 4+ пина (MOSI, MISO, SCK, CS)
-
I²S: 3–4 пина
-
CAN: 2 пина
-
-
Максимальное количество поддерживаемых устройств:
-
UART: 2 устройства
-
I²C: до 128 устройств (7-битная адресация)
-
SPI: несколько устройств, ограничено количеством CS-линий
-
CAN: десятки или сотни, в зависимости от сети
-
-
Адресация:
-
I²C: уникальные 7- или 10-битные адреса
-
CAN: ID сообщений
-
UART/SPI: не используют встроенную адресацию (в SPI мастер выбирает устройство вручную через CS)
-
Популярные протоколы связи во встроенных системах
UART (Универсальный Асинхронный Приемопередатчик)
-
Пины: TX, RX
-
Режим: Асинхронный
-
Скорость: от 9600 до нескольких Мбит/с
-
Применение: Отладка, GPS, Bluetooth
-
Плюсы: Простой, широко поддерживается, требует минимум пинов
-
Минусы: Только 1:1 связь, нет адресации
I²C (Inter-Integrated Circuit)
-
Пины: SDA, SCL
-
Режим: Синхронный
-
Скорость: от 100 кГц до 3.4 МГц
-
Применение: Датчики, EEPROM, часы реального времени, дисплеи
-
Плюсы: Поддержка нескольких устройств, всего два провода
-
Минусы: Медленнее SPI, чувствителен к шуму, сложнее в программировании
SPI (Serial Peripheral Interface)
-
Пины: MOSI, MISO, SCK, CS
-
Режим: Синхронный
-
Скорость: до 50 Мбит/с
-
Применение: SD-карты, дисплеи, АЦП, ЦАП
-
Плюсы: Очень быстрый, полный дуплекс
-
Минусы: Много пинов, нет встроенной адресации
1-Wire
-
Пины: Один (плюс земля)
-
Режим: Синхронный (по таймингу)
-
Скорость: ~16 кбит/с (до 142 кбит/с)
-
Применение: Температурные датчики (DS18B20), iButton
-
Плюсы: Один пин, питание по сигнальной линии
-
Минусы: Медленный, чувствительный к таймингу, ограничен по длине и количеству устройств
CAN (Controller Area Network)
-
Пины: CAN_H, CAN_L
-
Режим: Синхронный, мульти-мастер
-
Скорость: до 1 Мбит/с (CAN 2.0), до 5+ Мбит/с (CAN FD)
-
Применение: Автомобильная электроника, промышленная автоматизация, дроны
-
Плюсы: Надежный, устойчив к шуму, встроенный приоритет
-
Минусы: Требует трансивера, сложнее в реализации
RS-485
-
Пины: A, B, опционально управляющая линия
-
Режим: Полудуплекс, многоточечный
-
Скорость: до 10 Мбит/с (на короткие расстояния)
-
Применение: Промышленная связь, Modbus
-
Плюсы: Длинные дистанции (до 1200 м), устойчивость к шуму
-
Минусы: Требует внешнего драйвера и логики управления направлением
I²S (Inter-IC Sound)
-
Пины: WS, BCLK, SD, опционально MCLK
-
Режим: Синхронный, аудиоданные
-
Скорость: зависит от частоты и битности (обычно 44.1–192 кГц, 16–32 бита)
-
Применение: Аудио потоки, цифровые микрофоны, ЦАП/АЦП
-
Плюсы: Оптимизирован для аудио, поддерживает многоканальные потоки
-
Минусы: Только аудио, не на всех МК поддерживается
Таблица 1: Сравнение протоколов
| Протокол | Пины | Скорость | Устройства | Применение |
|---|---|---|---|---|
| UART | 2 | До 115200bps | 1:1 | Отладка, GPS, Bluetooth |
| I²C | 2 | ~400kHz | До 128 | Датчики, дисплеи, EEPROM |
| SPI | 4+ | ~10Mbps+ | Несколько | SD-карты, TFT дисплеи |
| 1-Wire | 1 | ~16.3kbps | Несколько | Температурные датчики |
| CAN | 2 | ~1Mbps | Несколько | Авто, промышленность |
| RS-485 | 2 | ~10Mbps | Несколько | Длинные линии связи |
| I²S | 4 | 44.1–192kHz | Несколько | Аудио, микрофоны, DAC |
Итоги
Протоколы цифровой связи — это невидимый, но важнейший язык, позволяющий встроенным системам функционировать. От простых интерфейсов, как UART, до надёжных промышленных решений, как CAN — каждый протокол имеет свои особенности, преимущества и область применения. Чтобы создавать эффективные и надёжные устройства, важно понимать, как и почему работают эти протоколы: от электрических сигналов до структур данных, от эндийности до обработки ошибок. В мире, где встраиваемые устройства становятся всё мощнее и умнее, владение основами коммуникации — ключ к созданию техники, которая действительно может «разговаривать» с окружающим миром.