UART-протокол или железо? [закрыто]

Некоторые говорят, что UART — это аппаратное обеспечение, некоторые говорят, что UART — это один из протоколов последовательной связи.

UART - это протокол

UART - это протокол

UART — это оборудование

UART — это оборудование

Если вы посмотрите на слова в аббревиатуре, происхождение ясно. Обычное употребление может быть скорее привычным, чем правильным. Вопрос, состоящий в основном из 4 ссылок и запрашивающий мнение, не входит в задачи этого сайта.
Я вижу, что кто-то смотрит «Тетрадь смерти», мистер Ягами ;) В любом случае, я бы сказал, что и то, и другое. То, как он передает и получает информацию посредством цифровой обработки сигналов, определяется протоколом, а микросхема, обеспечивающая эти протоколы, — аппаратным обеспечением.
Некоторые люди говорят « асинхронный последовательный », имея в виду конкретно протокол, а не аппаратное обеспечение. Его истоки восходят к 1800-м годам . Я не знаю, описано ли это в каком-либо официальном международном стандарте.
Некоторые люди также говорят « RS-232 », но, строго говоря, RS-232 определяет электрический интерфейс между UART и модемом, не говоря о самом UART.

Ответы (5)

Обе ваши первые две ссылки просто неверны. UART — это аппаратное обеспечение, которое может реализовывать ряд различных протоколов, используемых для формирования асинхронных потоков данных. U — это аббревиатура от «Универсальный», и, хотя это действительно правильно, нет никаких причин, по которым нельзя было бы использовать протокол, который сбивает с толку нынешнее население UART, кроме того факта, что это не стоит усилий.

В разных поддерживаемых протоколах используется разное количество битов для определения условий запуска и остановки, наличия или отсутствия бита четности (и его полярности) и длины данных кадра. Обычно вы можете указать 5, 6, 7 или 8 бит данных на кадр. Если бы кто-то настаивал на том, чтобы его/ее данные были отформатированы в 4-битные кадры, ни один существующий чип UART не смог бы с этим справиться.

Отчасти это вопрос определения. Merriam-Webster, например, определяет протокол (для этого контекста) как

набор соглашений, регулирующих обработку и особенно форматирование данных в системе электронной связи

Обратите внимание, что аппаратная реализация не является частью определения.

Это и то, и другое на самом деле. UA означает универсальный асинхронный, который обрабатывает асинхронную последовательную передачу. RT расшифровывается как Receiver/Transmitter, что явно относится к оборудованию.

UART — это аппаратное обеспечение, которое реализует протокол (UART). Аппаратная часть в основном называется «периферийным устройством» UART или устройством.

Однако протокол UART также может быть реализован только программно (используя 2 контакта GPIO для приема и передачи). В основном это сильно потребляет мощность процессора (в зависимости от скорости связи).

Поскольку последовательная связь широко используется, большинство микроконтроллеров имеют по крайней мере одно аппаратное периферийное устройство UART, чтобы большая часть обработки выполнялась аппаратно (например, буферизация, разбиение байтов на биты и отправка/прием, добавление стартовых/стоповых битов, обработка бита четности и т. д.). .).

Итак, UART — это протокол последовательной связи, и микроконтроллер может иметь для него специальную аппаратную схему.
Правда, у большинства микроконтроллеров есть как минимум один, у некоторых до 8 (а может и больше).

UART (универсальный асинхронный приемник/передатчик) наиболее правильно относится к функциональному блоку (обычно аппаратному, но иногда и программному) для передачи и приема асинхронных последовательных данных, который можно настроить для выбора различных скоростей передачи, количества битов, четности и т. д.

Но, несмотря на «универсальность» в названии, гибкость по-прежнему весьма ограничена, а базовый формат в значительной степени фиксирован. Существует «стартовый бит», когда строка выходит из состояния ожидания, чтобы указать начало «байта», количество (обычно 7 или 8) битов данных, необязательно бит четности, а затем один или два «стоповые биты» с линией обратно в состояние ожидания, чтобы гарантировать, что каждый байт начинается с перехода из состояния ожидания.

Людям нужно название для этого семейства кодировок, они могли бы просто использовать термин «асинхронный последовательный», но это слишком расплывчато. Существует множество асинхронных последовательных кодировок, которые сильно отличаются от тех, с которыми может работать UART. Так что, к лучшему или к худшему, этот метод кодирования упоминается как «последовательный UART» или просто «UART». По сути, кодировка названа в честь оборудования, используемого для ее реализации.

При некоторых обстоятельствах может быть 1 1/2 стоповых бита, особенно при использовании 5-битного разделения.

UART/USART действительно аппаратный. На самом деле, прежде чем мы даже начнем обсуждение терминологии, вот популярный пример из 80-х: UART 8250 , который

«... интегральная схема, предназначенная для реализации интерфейса последовательной связи».

Если вы просмотрите терминологию, вы увидите ссылки на аппаратные элементы. Например, в презентации Microchip «Использование USART в асинхронном режиме» вы заметите такие вещи, как часы, контакты, дуплекс и интерфейс:

USART расшифровывается как Universal Synchronous Asynchronous Receiver Transmitter. Иногда его называют последовательным коммуникационным интерфейсом или SCI. Синхронная работа использует часы и линию данных, в то время как нет отдельных часов, сопровождающих данные для асинхронной передачи. Поскольку в асинхронном режиме тактовый сигнал отсутствует , один вывод может использоваться для передачи, а другой - для приема. И передача, и прием могут происходить одновременно — это называется полнодуплексным режимом. Передача и прием могут быть включены независимо друг от друга. Однако, когда последовательный портвключен, USART будет управлять обоими контактами, и один из них не может использоваться для ввода-вывода общего назначения, когда другой используется для передачи или приема.

Давайте теперь посмотрим на документ TI «Схемы интерфейса для TIA/EIA-232-F» :

Глядя на интерфейс DB9 на один шаг назад в цифровую систему, в большинстве случаев он представляет собой универсальный асинхронный приемник/передатчик (UART) или элемент асинхронной связи (ACE). ACE обеспечивает параллельное преобразование в последовательное и необходимые стартовые/стоповые биты, генерацию битов четности и проверку безошибочной передачи данных .

Чтобы процитировать прототипы FPGA от Verilog Примеры: Версия Xilinx Spartan-3 :

Универсальный асинхронный приемник и передатчик (UART) представляет собой схему , которая отправляет параллельные данные через последовательную линию . UART часто используются в сочетании со стандартом EIA (Electronic Industries Alliance) RS-232, который определяет электрические, механические, функциональные и процедурные характеристики двух устройств передачи данных.

И немного дальше:

UART включает в себя передатчик и приемник. Передатчик по сути представляет собой специальный сдвиговый регистр .

То же самое касается описания в Википедии , в нем, по сути, перечислены аппаратные элементы, которые должен иметь интерфейс UART.


Где программный аспект вступает в игру? Это обрабатывается самим асинхронным последовательным протоколом. Книга «Программирование 16-битных микроконтроллеров PIC на C: Learning to Fly the PIC 24» содержит очень хорошее введение в главу 8: в авиации у вас есть точный протокол того, как и что следует говорить, кто говорит первым, а кто вторым и т. д. и это то же самое для последовательной связи. Программное обеспечение будет управлять аппаратным обеспечением, предоставленным UART, для передачи - отправлять стартовый бит, данные, затем стоповый бит - и когда слушать.

Важно отметить, что UART не нужно привязывать к разъему DB-9 — UART не является DB-9. В настоящее время у вас есть Raspberry Pi, Arduino и множество других встроенных систем, которые используют всего 4 линии проводов. Иногда встречаются преобразователи USB в RS-232. Например, я работал с платой PICDEM PIC18 , которая может использовать либо DB-9, либо USB для последовательной связи. Последовательные данные также могут передаваться по линиям Ethernet .

Это аппаратное обеспечение, которое, как следует из названия, включает в себя физический передатчик и физический приемник. Это не протокол и не может быть протоколом, потому что протокол — это система правил (которая, очевидно, не является физическим объектом).