Кто определяет время в асинхронной последовательной связи на основе UART + RS232?

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

И согласно здесь , RS-232 определяет электрические характеристики и синхронизацию сигналов , значение сигналов, а также физический размер и расположение выводов разъемов.

Я думаю, что одного UART достаточно, чтобы определить время связи с помощью стартовых/стоповых битов.

И я видел ниже график отсюда . Он также показывает, что только контакты 2 и 3 RS-232 используются UART, которые предназначены только для данных RX и TX.

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

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

Так,

  • Как схема RS-232 участвует в синхронизации асинхронной последовательной связи, если это действительно так?

  • Мне кажется, что UART заботится только о двух выводах RS-232. RS-232 родился задолго до UART. Таким образом, кажется, что UART, по сути, обеспечивает асинхронную последовательную связь на старом добром оборудовании RS-232, повторно используя 2 контакта RS232, которые имеют ту же семантику Rx/Tx .

  • Уместно ли рассматривать UART IP как логическую часть всего коммуникационного процесса, а RS-232 только как проводник /носитель ?


(вдохновленный комментарием @jonk)

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

Я хочу сказать, что UART и RS-232 должны быть концептуально разделены, хотя я видел, что во многих случаях они используются взаимозаменяемо.

UART является периферийным устройством и может использовать различные логические уровни. RS-232 является стандартом интерфейса и включает в себя гораздо больше деталей (например, 3 к Ом р В 7 к Ом .) UART устанавливает синхронизацию и выборку. RS-232 устанавливает сигнализацию и другие детали. Да , UART обрабатывает синхронизацию с упрощенной точки зрения. Однако RS-232 имеет дело с аналоговыми деталями. Эти аналоговые детали влияют на синхронизацию. В общем, RS-232 поддерживает около 19.2 кбит/с . Все остальное (несмотря на UART) потребует тщательного аналогового анализа.
@jonk Спасибо. Так что при включении UART на RS-232 мы должны учитывать ограничения RS-232. Но если включить UART на других интерфейсах, может быть достигнута гораздо более высокая скорость передачи данных. Я хочу сказать, что UART и RS-232 должны быть концептуально разделены, хотя я видел, что во многих случаях они используются взаимозаменяемо.
Да, я полагаю, что это нормальная точка зрения. RS-232 накладывает некоторые ограничения. Но он также обеспечивает некоторую помехоустойчивость. Но да, вы можете до некоторой степени разделить понятия. Ваш UART может управлять каким-то логическим выходом (отдельное аналоговое соображение) с определенной скоростью, которую вы определяете. Однако сигнализация, которую вы используете, повлияет на максимальную скорость. Если вы используете RS-422 или RS-485, у вас другие соображения, чем если бы вы использовали RS-232. Или, если вы просто оставите логические уровни такими, какие они есть, у вас будет еще один набор соображений. Все на своих местах, так сказать.
Если вам нужен последовательный порт с более высокой скоростью, чем у UART, есть гораздо лучшие и более современные интерфейсы.

Ответы (3)

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

UART заботится только о RX, а TX - ложное утверждение. Большинство UART в наши дни также обрабатывают сигналы квитирования, некоторые даже реагируют на сигналы квитирования автоматически, чтобы реализовать управление потоком аппаратно, а не программно. И асинхронная последовательная связь, безусловно, была возможна до UART и даже до RS-232. Как вы, возможно, знаете, RS-232 — это просто стандарт физического интерфейса, впервые опубликованный в 1960-х годах, он не определяет, какие данные и как вы их отправляете. UART как отдельный чип не был общедоступен до 1971 года, но те же функции были доступны в виде большой печатной платы, заполненной логическими микросхемами, в 1950-х годах. А асинхронная последовательная связь, безусловно, существовала и раньше и реализовывалась в виде вращающихся механических переключателей.

Ваше последнее утверждение о том, что UART является логической частью, а RS-232 - физическим интерфейсом, верно. Да, вы можете использовать UART без физического интерфейса для обмена данными между микросхемами на логическом уровне, или вы можете использовать UART с RS-485, RS-422, LVDS, CAN или любым другим физическим интерфейсом. UART просто реализует протокол, как передавать и получать биты, а протокол, который использует UART, называется асинхронным кадрированием старт-стоп, а биты отправляются с использованием линейного кодирования NRZ.

Я хочу сказать, что UART и RS-232 должны быть концептуально разделены.

Они есть, по крайней мере, при правильном использовании (некоторые сказали бы: педантично).

UART (я думаю, техническое название, которое никто не использует, - кодирование без возврата нуля) определяет последовательность физических единиц и нулей, используемую для передачи слова данных. С UART это 1:1, плюс стартовый бит, необязательный бит четности и различное количество стоповых битов.

RS232 (и некоторые другие спецификации семейства RS) определяют, как физические 1 или 0 представляются электрически (уровни напряжения), включая время (форму) переходов, допустимый выброс и т. д. RS232 также определяет импедансы драйвера и приемника, Характеристики кабеля IIRC и скорость передачи данных в зависимости от ограничений длины кабеля. И он добавляет некоторые разъемы и «второстепенные» контакты с нечетко определенными функциями.

Так что да, UART и RS232 развязаны, в том смысле, что вы можете, например, использовать UART через RS485 или кодирование NRZI через RS232.

Дополнительная информация в помощь читателям, которые задаются этим вопросом:

Дуглас В. Холл в своей книге «Микропроцессоры и интерфейсы. Глава 13, озаглавленная «Стандарт последовательных данных RS-232C»:» очень хорошо на это указывает:

В 1960 году, с широким распространением компьютерных терминалов и разработкой модемов для использования телефонных линий для связи, Ассоциация электронной промышленности (EIA) разработала стандарт EIA RS-232C. Стандарт описывает функцию 25 сигнальных и квитирующих контактов для передачи данных.

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

Таким образом, RS-232C описывает аппаратные характеристики для использования в последовательной связи через пару линий (в данном случае телефонных линий) между DTE (терминальным оборудованием, т. е. компьютерами и терминалами) и DCE (оборудованием для передачи данных, т. е. модемами). и другие виды средств связи).

Далее Холл описывает стандарт, указывающий, что 25-контактный разъем DTE DB-25P (хотя на рынке использовались разъемы с другими размерами контактов) должен быть штекерным, а разъем DCE - гнездовым.

Также описаны вопросы совместимости при подключении оборудования по стандарту RS-232C.

Это хорошее чтение, чтобы понять, как появился RS-232C и как он взаимодействует с UART, таким как Intel 8251A.