Найти в Дзене
Вокруг IT

UART в вопросах и ответах за 5 минут

Для тех, кому лень читать или хочется посмотреть, как всё это выглядит вживую, я записал материал в форме видео. Что означает название? UART — сокращение от Universal Asynchronous Receiver-Transmitter. По-русски универсальный асинхронный приемник-передатчик. А если простыми словами? Это простейший интерфейс для передачи данных по последовательному порту. Обычно два устройства просто соединяются двумя проводами. Скорости прямого и обратного соединений могут быть различными — это и значит, что соединение асинхронное. Передаются только нули и единицы, любое аналоговое значение придётся кодировать. Как используется такое соединение? Протокол UART очень простой и раньше был широко распространен в цифровой технике. Фактически современный COM-порт в операционный системах — это виртуальная оболочка для UART-интерфейса. Но протокол имеет сравнительно небольшие скорости соединения (стандартно 9600 бод), и сейчас используется только для простейших задач. Как понять, что устройство поддерживает

Для тех, кому лень читать или хочется посмотреть, как всё это выглядит вживую, я записал материал в форме видео.

Что означает название? UART — сокращение от Universal Asynchronous Receiver-Transmitter. По-русски универсальный асинхронный приемник-передатчик.

А если простыми словами? Это простейший интерфейс для передачи данных по последовательному порту. Обычно два устройства просто соединяются двумя проводами. Скорости прямого и обратного соединений могут быть различными — это и значит, что соединение асинхронное. Передаются только нули и единицы, любое аналоговое значение придётся кодировать.

Простое представление UART-интерфейса
Простое представление UART-интерфейса

Как используется такое соединение? Протокол UART очень простой и раньше был широко распространен в цифровой технике. Фактически современный COM-порт в операционный системах — это виртуальная оболочка для UART-интерфейса. Но протокол имеет сравнительно небольшие скорости соединения (стандартно 9600 бод), и сейчас используется только для простейших задач.

Как понять, что устройство поддерживает UART? Если устройство поддерживает UART, то в распиновке или на самом устройстве обычно указываются выводы RX и TX — соответственно receiver (приемник) и transmitter (передатчик).

Поддерживают ли этот протокол Arduino и Raspberry Pi? Да, поддерживают. На платах Arduino протоколу соответствуют цифровые выводы 0 и 1. У Arduino Mega кроме основного присутствует ещё три аппаратных UART — пины с 14 по 19.

Выводы UART на примере Arduino Mega
Выводы UART на примере Arduino Mega

На Raspberry Pi за UART-протокол отвечают выводы GPIO14 и GPIO15.

TX и RX-выводы на плате Raspberry Pi
TX и RX-выводы на плате Raspberry Pi

Как соединить два устройства по UART-интерфейсу? RX-вход одного устройства подключаем к TX-выходу другого. На современных чипах есть защита от неправильного подключения, но лучше контакты не путать. Если нет гальванической развязки, нужно объединить и референсные уровни (GND одного устройства соединить с GND другого).

Соединение двух Arduino по UART-интерфейсу
Соединение двух Arduino по UART-интерфейсу

Когда использовать такое соединение? Если вам нужно соединить два устройства, поддерживающие этот протокол, и вы пересылаете небольшое количество данных. Выбирайте UART, если вам важнее не скорость передачи данных, а готовые программные решения.