Разница между UART и RS-232?

В большинстве случаев RS-232 и UART объединяются в теориях последовательной связи. Они оба одинаковы? Из моих чтений я пришел к выводу, что UART — это аппаратная форма протокола RS-232. Я прав?

Приведенные выше ответы дали представление о различиях. Но я хотел бы добавить к этим ответам, добавив ссылку от National Instruments, в которой эта тема подробно обсуждается. Ниже приведена ссылка: Общие понятия последовательной связи RS-232, RS-422, RS-485 .
Похоже, вашей ссылки больше не существует. Вот архив последней версии машины Wayback, которую мне удалось найти: web.archive.org/web/20181225120315/http://www.ni.com:80/…

Ответы (5)

Нет, UART и RS-232 — это не одно и то же.

UART отвечает за отправку и получение последовательности битов. На выходе UART эти биты обычно представлены напряжениями логического уровня. Эти биты могут стать RS-232, RS-422, RS-485 или, возможно, какой-либо частной спецификацией.

RS-232 определяет уровни напряжения . Обратите внимание, что некоторые из этих уровней напряжения являются отрицательными и могут достигать ±15 В. Больший размах напряжения делает RS-232 более устойчивым к помехам (хотя и лишь в некоторой степени).

Микроконтроллер UART не может сам по себе генерировать такие уровни напряжения. Это делается с помощью дополнительного компонента: драйвера линии RS-232. Классическим примером драйвера линии RS-232 является MAX232 . Если вы просмотрите техническое описание, вы заметите, что эта ИС имеет зарядный насос, который генерирует ± 10 В из + 5 В.

введите описание изображения здесь( источник )

Определение RS-232, которое я прочитал, вообще не говорит о последовательности битов или времени. На самом деле я так и не нашел официального стандарта, описывающего асинхронный протокол старт-стоп NRZ.
RS-232 не определяет последовательность битов.
Судя по всему, в разработке символьного формата UART настолько доминировала телефонная компания Bell, что никаких вариантов не возникло. В результате формат начального/данного/четности/стопового бита никогда не был предметом независимого стандарта. Общеотраслевое использование было настолько единообразным, что не требовалось «официального» определения. Этого нельзя было сказать о физических каналах связи, поэтому был разработан RS-232.
Форматы символов UART предшествовали модемам Bell, они были в аппаратном обеспечении Teletype (восьмибитный с контролем четности) в ASCII, а до этого - в Baudot.

UART (или USART) — универсальный (синхронный) асинхронный приемник/передатчик

По сути, это последовательный интерфейс связи. «Универсальная» часть означает, что его можно настроить для поддержки множества различных конкретных последовательных протоколов. Термин является общим и не представляет собой конкретный стандарт. Как минимум это означает, что он имеет TXи RXлинию, которая отправляет последовательный поток данных и получает последовательный поток данных.

RS-232 — стандарт, определяющий сигналы между двумя устройствами, определяющий названия сигналов, их назначение, уровни напряжения, разъемы и распиновку.

Это специальный стандарт интерфейса, обеспечивающий совместимость оборудования. Хотя два элемента оборудования могут иметь UART, вы не можете быть уверены, что они будут подключаться без повреждений или правильно обмениваться данными, если вы не знаете, что они имеют одинаковую распиновку и стандарты напряжения, или не включаете преобразователь или специально подключенный кабель, специфичный для соединения. эти два конкретных устройства. Чтобы избежать необходимости в специальных преобразователях или кабелях, производители могут выбрать стандарт RS-232. Вы знаете, что стандартный кабель RS-232 соединит их.

Однако ни стандарт UART, ни стандарт RS-232 не определяют, что отправляется по линиям TXи . RXКак правило, когда люди используют RS-232, они используют простую 8-битную кодировку NRZ с одним стартовым битом и одним стоповым битом. Большинство производимого сегодня оборудования использует эту кодировку, но это не обязательно. Вы можете найти более старое оборудование, которое включает биты четности или использует 7 или 9 бит. UART можно настроить для поддержки этих различных протоколов на своих линиях TXи .RX

UART обычно не взаимодействуют напрямую с RS-232. Вам нужно будет преобразовать выход UART в стандарт +/-12 В, который требуется для RS-232. Полный интерфейс RS-232 обычно включает в себя как UART, так и преобразователь уровня RS-232. Кроме того, стандарт RS-232 включает определение нескольких других сигнальных контактов помимо TXи RX, которые вам могут понадобиться в зависимости от оборудования, к которому вам нужно подключиться. Они также должны быть преобразованы по уровню, и ваш UART может поддерживать или не поддерживать эти сигналы. Если это не так, вам придется управлять ими напрямую с помощью вашего программного обеспечения/прошивки.

Таким образом, хотя UART может помочь вам реализовать интерфейс RS-232, сам по себе он не является интерфейсом RS-232.

Стандартный кабель RS-232? Ничего подобного нет. В сумке с оборудованием я ношу с десяток переходников для RS-232. RS-232 указывает разъем DB-25, но я видел разъемы DD-9, RJ45, din8 и другие, и, кроме подключения модема к ПК, я никогда не мог использовать кабель COTS для любого проекта rs232. К счастью, в 90% случаев подойдет пара адаптеров или специальный кабель, их легко изготовить.
Просто для протокола: я думаю, что «S» в USART означает «Синхронный», а не «Последовательный». Смотрите здесь . USART - это «улучшения» старых микросхем UART, которые также допускают синхронные режимы связи.
Единственным «стандартным» разъемом RS-232 является 25-контактный разъем D-shell, но соответствие этому стандарту встречается редко. Как писала @hildred, на протяжении многих лет в компьютерах и периферийных устройствах использовались самые разные разъемы. В общем, я бы сделал вид, что стандартного разъема нет, и предположил бы только, что RS-232 означает, что напряжения и сигналы будут совместимы.

Функция UART преобразует параллельные данные с линий шины ПК в последовательные данные для передачи через линейные драйверы на устройства RS-232, RS-422 и RS-485 . Тактовый вывод микросхемы UART питается от программируемого источника тактового сигнала. Тактовая частота определяется конфигурацией скорости передачи, которую будет использовать устройство. Тактовая скорость в 16 раз превышает скорость передачи. Размещение щупа осциллографа на тактовом выводе микросхемы UART и определение частоты, а затем деление на 16 — это один из способов определить неизвестную скорость передачи данных.

+1 за «преобразование параллельных данных в последовательные», ни в одном другом ответе об этом не упоминается.

RS-232 является только спецификацией. Он определяет требования к сигнализации для последовательной связи, излагая правила и рекомендации, касающиеся:

  • Физическая проводка, взаимосвязи между устройствами, совместимыми с RS-232. Некоторые варианты RS-232 также указывают, какие типы разъемов и кабелей необходимо использовать.
  • Электрические характеристики сигналов, передаваемых этими соединениями (уровни напряжения, скорости нарастания, импеданс и т. д.)
  • Назначение и значение этих физических линий, таких как TX, RX, DCD, CTS и т. д.

RS-232 не распространяется на цифровое электронное оборудование, которое вы используете для реализации и соответствия этим спецификациям, и, что важно , он не распространяется на кадрирование данных или исправление ошибок или какие-либо аспекты типа «канального уровня». Другими словами, RS-232 наиболее близок к спецификации «физического уровня» в модели OSI .

Иногда вы слышите термин «протокол RS-232», но это не протокол, а стандарт сигнализации.

Фактическое оборудование, которое вы используете для реализации связи, совместимой с RS-232, в целом делится на две категории, ни одна из которых не является частью спецификации RS-232 (за исключением того, что если они делают что-либо, нарушающее RS-232, вы не можете законно вызовите вашу систему "RS-232"):

  • Линейные приемопередатчики . Это устройства, которые будут транслировать между сигналами, совместимыми с RS-232, которые являются надежными, биполярными (напряжения становятся как отрицательными, так и положительными по отношению к земле), и чувствительной цифровой логической схемой внутри коммуникационного устройства, которое обычно представляет собойработающий UART . со стандартными логическими уровнями 3,3 В или 5 В. Линейные приемопередатчики также подпадают под «физический уровень» модели OSI.

  • УАРТ . Это сложная цифровая логика, обычно работающая со стандартными логическими уровнями 5 В или 3,3 В и отвечающая за кодирование и декодирование параллельных данных в последовательную форму и обратно. Он отвечает за кадрирование (стартовые и стоповые биты), исправление ошибок (биты четности), скорость передачи данных (скорость передачи), управление потоком (управление такими сигналами, как DCD, CTS, RTS и т. д.) и многие другие аспекты. Таким образом, его можно рассматривать как часть «уровня канала передачи данных» в модели OSI.

Да, «физический уровень» и «канальный уровень» — это более подходящие слова.
Вам не кажется, что правильнее было бы сказать: «RS-232 — это спецификация, определяющая требования к сигнализации для последовательной связи…». Это больше, чем просто спецификация.

RS-232 перед UART.

UART — это устройство, которое может определять логический протокол для связи, а RS-232 — это устройство, которое служит физической средой для связи.

Когда мы говорим UART + RS232, это на самом деле означает a communication protocol runs on some media, что микросхемы, такие как MAX232, адаптируют напряжения.

Мы также можем использоватьUART + USB (редактировать). Мы также можем использовать микросхемы на базе USB, чтобы обеспечить некоторую функциональность виртуального UART (редактировать), с микросхемами от Prolific Technology, FTDI, Microchip и т. д., где мы заменяем простой носитель RS-232 на более сложный/недавний USB-носитель. Нам даже не нужен аппаратный UART, потому что его можно реализовать через USB чисто программно.

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

введите описание изображения здесьИзображение отсюда .

Есть несколько проблем с этим ответом. Во-первых, UART — это схема, которая реализует асинхронную связь, но сама асинхронная связь существовала до RS-232, подумайте об электромеханических устройствах. Также чипы FTDI USB не заменяют носитель RS-232 носителем USB. Это чипы USB UART, которые позволяют вам сделать адаптер, позволяющий вашему ПК иметь интерфейс связи RS-232. UART реализуется аппаратно чипом FTDI, а не программно. И диаграмма относится не к использованию чипов FTDI, а к MCU, реализующему USB CDC, и ПК, использующему CDC.
@Justme " ... сделать адаптер, который позволяет вашему ПК иметь интерфейс связи RS-232 " Я думаю, вы имеете в виду интерфейс связи USB? И спасибо, что указали на то, что чип FTDI все еще имеет UART в качестве аппаратного обеспечения. Я не знал этой детали. Я думал, что должна быть возможность реализовать протокол UART в программном обеспечении и использовать USB в качестве транспорта. Изображение предназначено для того, чтобы показать, как можно использовать USB, как если бы это был RS-232.
@smwikipedia Нет, я действительно имел в виду, что вы можете использовать чип USB UART с приемопередатчиком RS-232. Вы опять путаете вещи. На рисунке показано, как можно использовать USB для предоставления виртуального UART только с протоколом USB CDC. Ни UART, ни RS-232 нигде нет, да и тогда часть RS-232 не имела бы смысла. Пожалуйста, прочитайте существующие ответы, чтобы выяснить, что означает каждый термин и как они связаны друг с другом.
@Justme Да. На изображении показано, что USB используется как виртуальный UART с некоторыми дополнительными программными драйверами как на стороне хоста, так и на встроенной стороне. Он полностью заменяет аппаратный UART и RS-232.
Остальные проблемы все еще существуют. RS-232 — это не «устройство», а спецификация физического интерфейса. И чипы, подобные FTDI, не обеспечивают виртуальный UART, они действительно обеспечивают реальный физический UART через интерфейс USB. Если ставить MCU и использовать CDC через USB, то это виртуальный порт, потому что нигде нет UART. Итак, на правом изображении есть CDC, а не UART.