Цифровые интерфейы
Эти интерфейсы используются для передачи данных между микроконтроллерами, датчиками, модулями памяти и другими устройствами.
Синхронный интерфейс – подразумевает использование общей тактовой линии (SCLK, SCL), передача идёт строго синхронно с тактами тактового сигнала. Асинхронный интерфейс – не подразумевает передачи тактового сигнала.
Дуплекс (лат. duplex – двухсторонний) – способ связи с использованием приёмопередающих устройств.
Реализующее дуплексный способ связи устройство может в любой момент времени и передавать, и принимать информацию. Передача и приём ведутся устройством одновременно по двум физически разделённым каналам связи (по отдельным проводникам, на двух различных частотах и др. за исключением разделения во времени – поочерёдной передачи). Пример дуплексной связи – разговор двух людей (корреспондентов) по обычному телефону: каждая из сторон сеанса связи в любой момент времени может и говорить, и слушать своего корреспондента. Дуплексный способ связи иногда называют полнодуплексным (от англ. full-duplex); это синонимы.
Реализующее полудуплексный (англ. half-duplex) способ связи устройство в один момент времени может либо передавать, либо принимать информацию. Как правило, такое устройство строится по трансиверной схеме. Пример полудуплексной связи – разговор по рации: каждый из корреспондентов в один момент времени либо говорит, либо слушает. Для обозначения конца передачи и перехода в режим приёма корреспондент произносит слово «приём» (англ. «over»). Управление режимом работы радиостанции (приём или передача) может быть ручным (англ. Push-to-Talk (PTT) – кнопка или тангента переключения приём-передача, другое обозначение – MOX от англ. Manual control), голосовым (VOX – от англ. Voice control) или программным.
Реализующее симплексный режим оборудование может передавать информацию только в одну сторону.
UART (Universal Asynchronous Receiver/Transmitter).
Асинхронный, полнодуплексный интерфейс, использует линии:
TX — передача данных (Transmit)
RX — приём данных (Receive)
Работает без отдельного сигнального такта (clock). Передающая и принимающая стороны должны быть настроены на одинаковую скорость передачи (baud rate). Структура посылки (фрейм данных):
[Старт-бит] [Данные (5–9 бит)] [Чётность (опц.)] [1–2 стоп-бита]
Для передачи данных настраиваются: скорость (baud rate), кол-во бит данных, чётность (even/odd/none), кол-во стоп-битов.
Преимущества: простота, не требует тактовой линии; широко используется (например, COM-порты, Bluetooth, GPS-модули).
Недостатки: могут взаимодействовать только 2 устройства; нет подтверждения доставки; асинхронность требует точной настройки скорости.
SPI (Serial Peripheral Interface)
Синхронный полнодуплексный интерфейс. Использует линии:
SCLK — тактовый сигнал (Serial Clock)
MOSI — мастер → слейв (Master Out, Slave In)
MISO — слейв → мастер (Master In, Slave Out)
SS (CS) — выбор слейва (Slave Select / Chip Select)
Один ведущий (Master) управляет тактом и выбирает подчинённое устройство (Slave). Данные при этом передаются синхронно с тактовым сигналом. Нет фиксированной «посылки» (структуры передачи данных). Каждый передаваемый байт синхронизируется по SCLK. Управление за счёт сигнала SS (CS).
Необходимо настроить следующие параметры: частота SCLK, порядок бит (MSB/LSB first), полярность и фаза такта (SPI mode 0–3).
Преимущества:
Высокая скорость (до десятков МГц)
Поддержка нескольких слейвов
Простой протокол, легко реализуется
Недостатки:
Требует больше проводов
Нет встроенного подтверждения доставки
Один мастер, много слейвов — не сетевой протокол
I²C (Inter-Integrated Circuit)
Синхронный, полудуплексный, мульти-мастер (сетевая архитектура) интерфейс. Использует линии:
SCL — тактовый сигнал
SDA — данные
Обе линии двунаправленные, подключаются через подтягивающие резисторы. Имеет уникальные адреса устройств (обычно 7 бит). Поддерживает нескольких мастеров и слейвов. Передача происходит по принципу «все слушают — один говорит». Структура передачи:
[Старт] [Адрес + R/W бит] [ACK] [Данные] [ACK/NACK] ... [Стоп]
Настраиваемые параметры: скорость (стандарт (100 кбит/с), fast (400 кбит/с), high-speed (3.4 Мбит/с)), адреса устройств.
Преимущества:
Только 2 линии для множества устройств
Поддержка сетевой передачи
Простое подключение устройств
Недостатки:
Ниже скорость, чем у SPI
Более сложная реализация
Возможны конфликты на шине при неправильной настройке
Интерфейс |
Синхронность |
Дуплексность |
Кол-во линий |
Скорость |
Кол-во устройств |
UART |
Асинхронный |
Полный |
2 (TX, RX) |
До 1 Мбит/с |
2 (точка-точка) |
SPI |
Синхронный |
Полный |
4 (MISO, MOSI, SCLK, SS) |
До 50 Мбит/с |
1 мастер, N слейвов |
I²C |
Синхронный |
Полудуплексный |
2 (SCL, SDA) |
До 3.4 Мбит/с |
До 127 устройств |
