1. Введение: зачем нужны цифровые интерфейсы
В современных электронных системах устройства постоянно обмениваются данными: микроконтроллеры общаются с датчиками, памятью, дисплеями, модулями связи. Для этого требуются стандартизированные интерфейсы — протоколы и физические линии, обеспечивающие:
- надёжную передачу битов;
- адресацию и выбор устройств;
- синхронизацию отправителя и получателя;
- контроль ошибок и управление потоком.
Ключевые параметры интерфейсов:
- скорость передачи (бит/с);
- топология (точка‑точка, шина, кольцо);
- число проводов/контактов;
- поддержка множественных ведомых устройств;
- энергопотребление;
- сложность реализации.
Ниже рассмотрены четыре широко распространённых интерфейса: UART, SPI, I²C, 1‑Wire.
2. UART (Universal Asynchronous Receiver/Transmitter)
2.1. Общее описание
UART — асинхронный интерфейс для последовательной передачи данных. Не требует отдельной линии синхронизации: отправитель и получатель согласовывают скорость заранее.
Области применения:
- отладка и логгирование (вывод сообщений в терминал);
- связь между микроконтроллерами;
- подключение модулей GPS, GSM, Wi‑Fi;
- программирование микроконтроллеров.
2.2. Физический уровень
- TX (Transmit) — выход передатчика;
- RX (Receive) — вход приёмника;
- земля (GND) — общий провод.
Напряжение:
- TTL (0 В / 5 В или 0 В / 3,3 В);
- RS‑232 (±12 В) — требует преобразователя.
2.3. Формат кадра
Каждый байт передаётся в кадре:
- Стартовый бит (
0) — сигнализирует о начале кадра. - Данные (5–9 бит, обычно 8 бит, младший бит первым).
- Бит чётности (опционально: Even, Odd или отсутствует).
- Стоповые биты (1, 1.5 или 2 бита, значение
1).
Пример: 8‑N‑1 = 8 бит данных, без чётности, 1 стоповый бит.
2.4. Скорости передачи (бод)
Стандартные значения: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 бод.
Максимальная скорость зависит от длины линии и помех.
2.5. Синхронизация
Отправитель и получатель должны быть настроены на одинаковую скорость. Допустимое расхождение — обычно не более 2–5 %.
2.6. Преимущества и недостатки
Плюсы:
- минимум проводов (2 линии + GND);
- простота реализации;
- широкая поддержка в микроконтроллерах.
Минусы:
- нет адресации (только точка‑точка);
- нет контроля потока на уровне протокола (используют RTS/CTS отдельно);
- чувствительность к рассинхронизации при высоких скоростях.
2.7. Примеры реализаций
- встроенные UART в STM32, AVR, ESP32;
- конвертеры USB‑to‑UART (CP2102, FT232RL).
3. SPI (Serial Peripheral Interface)
3.1. Общее описание
SPI — синхронный последовательный интерфейс для связи микроконтроллера с периферийными устройствами (датчики, память, дисплеи).
Особенности:
- высокая скорость (до десятков МГц);
- полнодуплексная передача (одновременная отправка и приём);
- простая логика, но много проводов.
3.2. Линии и сигналы
- MOSI (Master Out Slave In) — данные от мастера к ведомому;
- MISO (Master In Slave Out) — данные от ведомого к мастеру;
- SCLK (Serial Clock) — тактовый сигнал от мастера;
- CS (Chip Select, SS) — выбор ведомого (активный низкий).
Земля (GND) — общий провод.
3.3. Топология и адресация
- Один мастер, несколько ведомых.
- Каждое ведомое устройство имеет свой сигнал CS.
- Одновременно активен только один ведомый (по сигналу CS).
3.4. Режимы работы (полярность и фазе такта)
Определяются комбинацией:
- CPOL (Clock Polarity): уровень такта в покое (0 или 1);
- CPHA (Clock Phase): момент выборки данных (на переднем или заднем фронте).
Четыре режима:
- Mode 0: CPOL = 0, CPHA = 0;
- Mode 1: CPOL = 0, CPHA = 1;
- Mode 2: CPOL = 1, CPHA = 0;
- Mode 3: CPOL = 1, CPHA = 1.
Устройство должно поддерживать один или несколько режимов.
3.5. Процесс передачи
- Мастер опускает CS выбранного ведомого.
- Мастер генерирует такты на SCLK.
- На каждом такте:
- мастер выставляет бит на MOSI;
- ведомый выставляет бит на MISO.
- После передачи байта мастер поднимает CS.
3.6. Преимущества и недостатки
Плюсы:
- высокая скорость;
- полнодуплекс;
- простая логика (сдвиг регистров);
- поддержка цепочечной передачи (daisy‑chain).
Минусы:
- много проводов (4 + GND);
- нет встроенной проверки ошибок;
- только точка‑точка или звезда (не шина);
- длина линии ограничена (обычно до десятков см).
3.7. Примеры устройств
- датчики давления (BMP280);
- Flash‑память (W25Q32);
- OLED‑дисплеи;
- АЦП/ЦАП.
4. I²C (Inter‑Integrated Circuit)
4.1. Общее описание
I²C — двухпроводной синхронный интерфейс для связи интегральных схем на одной плате. Разработан Philips (NXP).
Особенности:
- шина (много мастеров и ведомых);
- адресация устройств;
- контроль ошибок (ACK/NACK);
- низкая/средняя скорость (100 кбит/с, 400 кбит/с, 1 Мбит/с, 3,4 Мбит/с).
4.2. Линии
- SDA (Serial Data) — двунаправленная линия данных;
- SCL (Serial Clock) — линия тактового сигнала;
- Земля (GND).
Обе линии подтянуты к питанию через резисторы (обычно 4,7 кОм).
4.3. Адресация
- Каждое устройство имеет 7‑битный адрес (10‑битные — реже).
- Адрес передаётся первым байтом после стартового условия.
- Мастер инициирует передачу, указывая адрес ведомого.
4.4. Формат кадра
- Стартовое условие (START): SDA падает при SCL = 1.
- Адрес ведомого (7 бит) + бит направления (R/W: 0 — запись, 1 — чтение).
- ACK от ведомого (SDA = 0 на 9‑м такте).
- Данные (8 бит), после каждого — ACK/NACK.
- Стоповое условие (STOP): SDA поднимается при SCL = 1.
4.5. Режимы
- Standard Mode: 100 кбит/с;
- Fast Mode: 400 кбит/с;
- Fast Mode Plus: 1 Мбит/с;
- High‑Speed Mode: 3,4 Мбит/с.
4.6. Мультимастерность
- Несколько мастеров могут управлять шиной.
- Механизм арбитража предотвращает конфликты: если мастер видит, что SDA не соответствует его передаче, он отступает.
4.7. Преимущества и недостатки
Плюсы:
- всего 2 провода + GND;
- поддержка множества устройств на одной шине;
- встроенная проверка (ACK);
- горячая замена устройств (при соблюдении правил).
Минусы:
- ограниченная скорость;
- сложная логика (арбитраж, обработка START/STOP);
- ограниченная длина линии (из‑за ёмкости и подтяжек);



