Найти в Дзене
Практическая теория

ЧТО ТАКОЕ UART?

📝В данной статье будет рассмотрен интерфейс UART. Без истории возникновения, без "воды" и "интимных подробностей". Четко, по делу, для практического использования. UART (Universal Asynchronous Receiver/Transmitter, Универсальный Асинхронный Приёмопередатчик) — это один из самых распространенных способов обмена данными между микроконтроллерами и другими устройствами. Он широко используется в различных электронных устройствах благодаря своей простоте и надежности. UART — это асинхронный последовательный интерфейс передачи данных, что означает отсутствие необходимости во внешнем тактирующем устройстве, что делает его особенно удобным для коротких и средних дистанций передачи данных. Алгоритм работы кратко: 💭Для проверки корректности данных в передаче может быть использована форма простой, низкоуровневой проверки ошибок, которая носит название "Четность". Существует 2 вариант такой проверки, соответственно: четный или нечетный. Для создания бита четности, все биты данных складываются, а
Оглавление

📝В данной статье будет рассмотрен интерфейс UART. Без истории возникновения, без "воды" и "интимных подробностей". Четко, по делу, для практического использования.

UART (Universal Asynchronous Receiver/Transmitter, Универсальный Асинхронный Приёмопередатчик) — это один из самых распространенных способов обмена данными между микроконтроллерами и другими устройствами. Он широко используется в различных электронных устройствах благодаря своей простоте и надежности. UART — это асинхронный последовательный интерфейс передачи данных, что означает отсутствие необходимости во внешнем тактирующем устройстве, что делает его особенно удобным для коротких и средних дистанций передачи данных.

Основные понятия

  • Асинхронность: UART не использует внешнее тактирующее устройство для синхронизации передачи данных.
  • Последовательная передача: данные передаются бит за битом по одному проводу (или паре проводов), в отличие от параллельных интерфейсов. Поэтому для передачи в одном направлении требуется один проводник; для полнодуплексной двунаправленной связи потребуется два проводника.
  • Выход обозначают TD или TX (transmitted data), вход - RD или RX (received data). Для подключения двух устройств выход одного подключают ко входу другого и вход первого - к выходу второго.
-2

Как работает UART

Алгоритм работы кратко:

  • В отсутствии передачи на выходе UART присутствует уровень логическая 1.
  1. Передача данных начинается с отправки стартового бита (логический 0), который сигнализирует о начале передачи.
  2. Затем идут биты данных (обычно 8 бит), которые передаются последовательно.
  3. После данных передается стоповый бит (логическая 1), обозначающий конец передачи.
Изображение взято: https://mypractic.ru/urok-12-posledovatelnyj-port-uart-v-arduino-biblioteka-serial-otladka-programm-na-arduino.html
Изображение взято: https://mypractic.ru/urok-12-posledovatelnyj-port-uart-v-arduino-biblioteka-serial-otladka-programm-na-arduino.html

💭Для проверки корректности данных в передаче может быть использована форма простой, низкоуровневой проверки ошибок, которая носит название "Четность". Существует 2 вариант такой проверки, соответственно: четный или нечетный. Для создания бита четности, все биты данных складываются, а четность суммы определяет, установлен бит четности или нет. Например: пусть передаются биты - 00110010 - сумма битов равна 3 , следовательно бит четности будет равен 1. Тогда конченая последовательность будет: 010010101 (добавлен бит четности, сразу перед стоповым битом, равный 1). Получаем 4 единицы, что является четным числом. Аналогично с режимом проверки на нечетность, просто в конце добавляется 0. Таким образом можно при приеме проверить корректность данных.

Параметры UART

При обозначении параметров UART используется запись: 
ЦИФРА-БУКВА-ЦИФРА

  • ЦИФРА — количество бит в кадре: от 5 до 9 бит. Обычно 8.
  • БУКВА — наличие и тип бита чётности:

N - None (Отсутствует);
E - Even (Чётный). Проверка данных на чётность. Перед стоп-битом в кадр добавляется бит: 0 если в кадре было нечётное количество единиц, 1 — если чётное;
O - Odd (Нечётный). Проверка данных на нечётность. Перед стоп-битом в кадр добавляется бит: 1 если в кадре было нечётное количество единиц, 0 — если чётное.

  • ЦИФРА — длительность стоп-бита 11.52. Продолжительность стоп-бита (1, 1.5 или 2 битовых интервала)

Пример стандартных настроек в Arduino: 8-N-1.

Интерфейс RS232 и COM-порт

❓Как же в статье про UART появился заголовок "Интерфейс RS232"? Все достаточно просто и тривиально. Мы уже разобрались, что означает термин UART ("универсальный асинхронный трансивер"). Он в свою очередь охватывает множество различных стандартов интерфейсов(RS232, RS449, RS423, RS422 и RS485), хотя они по своему принципу работы все приблизительно одинаковы.
Эти стандарты определяют основные электрические характеристики, типы соединений, механическую составляющую физических портов, а также скорость передачи информации. По своей сути, UART служит связующим звеном между физическим уровнем и сетью связи.

Почему же здесь рассматривается именно RS232? Все просто - данный интерфейс был стандартом на ранних дизайнах ПК IBM. На этих компьютерах было, как правило два COM-порта (а COM-порт это что?). COM-порт - интерфейс компьютера, соответствующий стандарту RS-232, который выглядит:

-4

Затем COM-порт начал вытесняться USB-интерфейсом и сейчас у компьютера может быть всего один COM-порт или вообще ни одного. Если в компьютере отсутствует COM-порт, то можно использовать переходник USB-COM.

Принцип работы интерфейса RS232 рассмотрен не будет(более подробно про этот интерфейс можно почитать здесь: https://www.allelcoelec.ru/blog/how-rs-232-works.html), но будут отмечены основные моменты, которые Вы должны знать и про RS232 и про COM-порт:

  • RS-232 является стандартом физического уровня для интерфейса UART. Он определяет набор используемых сигнальных линий и уровни для сигналов. Используемые уровни сильно отличаются от традиционных TTL (transistor-transistor logic — транзисторно-транзисторная логика) или CMOS - уровней (КМОП - логика на комплементарных полевых транзисторах) . Во-первых, используются двухполярные сигналы, во-вторых - сигнал положительной полярности соответствует логическому нулю. Для согласования уровней сигналов интерфейса RS-232 и остальной части схемы на обычной логике, используются специализированные микросхемы для преобразования уровней.
  • Последовательный порт, COM-порт, serial-порт, интерфейс связи, commutations port - ОДНО и ТОЖЕ, что и интерфейс RS232.
  • RS232 это не UART. UART это протокол передачи единиц и нулей, электрическую спецификацию на себя берет интерфейс RS232(или другие стандарты).
  • Если на вашем устройстве используется UART и необходимо провести с ним махинации, используя компьютер, то необходимо купить преобразователь USB-TTL (например: Преобразователь USB-SERIAL (TTL, UART) адаптер CH340G, 3.3-5V https://market.yandex.ru/cc/75sDMm).
-5

БОД

Существует много определений, характеризующих эти три буквы, но в данной статье остановимся, по моему мнению, на наиболее полно отражающем суть.

🌐БОД - это единица измерения символьной скорости, определяющая количество изменений СИГНАЛА в СЕКУНДУ.

Для двоичного кодирования верным будет суждение, что 1 бод = 1 бит/с. Но также существуют методы МОДУЛЯЦИИ сигнала (например: квадратурная амплитудная модуляция), с помощью которых на один символ, может быть, например, 4 бита.

Формула, отражающая зависимость бод от бит/с имеет вид: 1 бод = nбит/с, где n - количество бит на символ.
Например: символьная скорость составляет 9600 бод, а количество бит на символ - 4. Тогда, V = 9600 бод * 4 бит/символ = 38400 бит/с.

Стандартные скорости передачи интерфейса UART, при условии, что на один символ, приходится 1 бит:

-6

Преимущества и недостатки UART

🟩Преимущества:

  • Простота реализации
  • Низкая стоимость
  • Не требует внешнего тактирующего устройства
  • Обеспечивает стабильную и эффективную коммуникацию между устройствами

🟥Недостатки:

  • Ограниченная скорость передачи
  • Требует точного согласования параметров
  • Не подходит для очень длинных линий

Использование UART

Конкретные примеры использования UART:

  • Микроконтроллеры (например, Arduino, ESP32, STM32): для обмена данными с компьютером или другими устройствами.
  • GPS-модули: подключение к микроконтроллерам для получения координат.
  • Модемы и радиомодули (например, SIM800, nRF24L01): для связи по GSM или радиоканалам.
  • Датчики и сенсоры: передача данных о температуре, влажности, давлении.
  • Отладочные порты на платах: вывод логов и диагностика в процессе разработки.

➡️Эти примеры показывают универсальность и актуальность UART в современных устройствах. 🧐Из личного опыта: работаю с UART плотно, так как занимаюсь FPV дронами. Недавно прошивал ELRS приемник, как раз через преобразователь USB-SERIAL. В следующей статье будет подробно рассмотрен данный процесс.

Выводы

📌В данной статье были рассмотрены основные понятия: UART, RS232, COM, БОД. Для практического применения UART можно воспользоваться всеми любимой Arduino. В качестве практического закрепления теоретических тонкостей можно рассмотреть модель взаимодействия-общения двух плат между собой по UART. Если интересно, как это можно реализовать - пишите в комментариях, сделаю подробную статью.

🫡Хочу пожелать успехов в освоении электронной магии и бесконечного вдохновения для ваших волшебных проектов!
В случае возникновения каких-либо трудностей - пишите в комментариях, будем разбираться вместе.

P.S. Подпишись на канал⚙️