Найти в Дзене
TehnoZet-2

UART, COM-порт, RS-232, что это и как они связаны?

Оглавление

UART, serial port, communications port, COM-порт, интерфейс стандарта RS-232 что это и почему так много названий?

Употребляя в своих статьях названия и определения: последовательный порт, serial port, communications port, COM-порт, интерфейс стандарта RS-232 я не был до конца уверен, что употребляю их в правильном контексте. Давайте разберёмся что, зачем, как и почему.

Обновлено: 28.02.2023

Прежде чем перейти к последовательному порту, чуть-чуть общей теории.

Классификация протоколов

А какие протоколы бывают?

По порядку передачи данных протоколы (шины данных) делятся на:

  • Последовательные
  • Параллельные

О последовательных шинах речь пойдет ниже, но пару слов нужно сказать о параллельном соединении

Параллельный протокол передачи данных (параллельная шина данных)

Передача нескольких сигналов с данными одновременно по нескольким параллельным каналам.

В последнее время предпочтение отдается последовательному соединению вместо параллельного, так как экономически более выгодно организовать передачу данных по одному (двум) проводам чем по нескольким параллельным, это касается и электрической разводки платы и внутренней разводки чипа, и соединение периферийных устройств. Но параллельное соединение из физического мира ушло в "мир эфира" в радиосвязь, вот там очень выгодно устанавливать и осуществлять параллельную передачу данных.

Примеры чаще всего это устаревшие шины такие как: принтерный порт (IEEE 1284/Centronics), ISA, ATA (IDE), SCSI , PCI, FSB (Front Side Bus)

По времени передачи и приему информации связь делится:

  • Симплексная связь - только передача или прием данных.
  • Полудуплексная связь прием и передача разнесены во времени. Сначала прием, а затем передача или наоборот.
  • Дуплекс - одновременно прием и передача.

Перейдем сразу к последовательному протоколу, он делится на:

  • Асинхронные
  • Синхронные

Асинхронный протокол - данные передаются без внешнего тактирующего устройства. Данные можно передавать по двум проводам прием/передача. Но нужны дополнительные усилия для синхронизации (пример UART, RS-232, 1-Wire)

Статья на канале: "Датчик температуры DS18B20, чуть-чуть о протоколе 1-Wire и о iButton "

Синхронный протокол - данные синхронизированы с тактирующим устройством (примеры SPI и I2C)

Про SPI статья на канале: "SPI шина, GPIO на плате ESP8266, режимы прошивки (DOUT, DIO, QOUT, QIO)"

И у меня вопрос к читателям, а протокол USB какой синхронный или асинхронный?

UART

Universal Asynchronous Receiver-Transmitter (UART), Универсальный асинхронный приёмопередатчик (УАПП)

История

История его начинается в 19 веке, тогда возникает необходимость передавать и кодировать телеграфные сообщения. Для передачи телеграфных сообщений Жан Морис Эмиль Бодо изобретает свой код для телеграфа он был 5- битным - отсюда код Бодо и скорость в БОДах, это был золотой "стимпанковский" 1870 год. Проходит всего ничего, 90 лет и к 60-м годам прошлого века появились компьютеры и кодировка ASCII сначала семи битная. А в начале 60-х появляется 8-битная ASCII. В 1970х годах цветет и пахнет микроэлектроника, начинается бум микросхем появляется микросхема UART WD1402A (1971г), а затем 8250. В 90-е был удалось прикрутить буфер (FIFO) к UART и скорость и удобство пользование интерфейсом возрастают.

В 60-70годах в нашей стране не принято пользоваться англоязычными терминами поэтому UART получает свое, русское название - УАПП (Универсальный асинхронный приёмопередатчик) как и все остальные названия, например НГМД и так далее. Хорошее время было, все кратко и понятно, например скажешь УВК-1 и сразу всем все понятно, разговор идет о устройстве ввода координатном или о мышке.

Что такое UART

UART это физическая реализация интерфейса в виде логической схемы (микросхемы) которая обеспечивает прием и передачу информация в последовательном виде, в пределах одного чипа или одного устройства, на короткие дистанции. Он непригоден для приема, передачи данных на "длинные дистанции". Причем понятие длинные и короткие взяты в кавычки и это не зря. Так как все в мире относительно и в данном случае то же, но попробуем разобраться, что за такие "длинные и короткие дистанции". Когда микроконтроллеры и другие низкоуровневые ИС взаимодействуют между собой по последовательному протоколу, они делают это на уровне TTL (транзисторно-транзисторная логика). Последовательные сигналы TTL живут между диапазоном напряжения питания микроконтроллера - обычно от 0 до 5.0 вольт (так было раньше, это уже классика) ну или до 3,3 вольт (так сейчас или еще меньше до 1,8 и 1,6 вольт КМОП) Сигнал такого диапазона да еще и не защищенный передать далеко не получится иногда проблемы возникают тут сразу же, при передачи от одной микросхемы до другой, вспомним микросхемы серии К(К155, К1533, К153) из недостатков которых: высокие требования к напряжению питания, отклонение не более 0,5 В, низкая помехоустойчивость, высокие требование в правильной разводки шины земли. Так вот передать далеко эти сигналы не получится, а что делать? Самое простое тупо усилить - поднять напряжение питания так родился интерфейс RS-232

Интерфейс RS-232

(Recommended Standard 232, рекомендованный стандарт RS-232, EIA232)

Это стандарт физического уровня, надстройка над UART для приема передачи данных другим устройствам, т. е. на "длинные дистанции

В далекие годы 60 годы прошлого века (1962 год) особо не стали заворачивается с обработками сигнала, да и мощностей подходящих не было, а потом, видимо, вспомнили телеграф.

Из истории

Первый трансатлантический кабель обладал очень низкой скоростью передачи 103 слова за 16 часов, а все из за того, что на огромной дистанции (чудовищная ёмкость и сопротивление длиннющего кабеля) сигналы просто "размазывало" по длинному кабелю. Для повышения скорости увеличивали напряжение и в конце концов дошли до 2000 вольт после чего кабель благополучно сгорел.

Вот и тут просто взяли да повысили напряжение логического сигнала, но на самом деле не совсем просто, а вот так, см. ниже.

Электрический принцип работы RS-232

Логический нуль RS-232 лежит в пределе от +3 до +12 вольт, а единица от -3 до -12, соответственно. Между -3 и +3 вольт зона ничего, не нуля и не единицы, зона неопределённости. Т. е. разработчики стандарта инвертировали сигнал, сделали отрицательное напряжение для единицы и повысили и понизили напряжение до -12, +12вольт (на самом деле до -15, +15 вольт, а иногда и до 25 вольт) Пишут даже, что в блоке питания компьютера именно поэтому и появилась -12 вольт. Хорошо же они поработали над стандартом для которого пришлось модифицировать и блок питания, сейчас бы такая фишка не прошла, хотя...

Максимальная длинна кабеля по стандарту 20 метров, но нормально прием идет до 15 метров на скорости 19200 бод, но можно передать и на 900 метров снижая скорость (помните трансатлантический кабель) до 2400бод. А вообще максимальная скорость передачи составляет 115 200 бод

БОД

Это единица измерения скорости передачи символов (символьной скорости) или скорости модуляции в символах в секунду, или импульсах в секунду. С этими БОДами сплошная путаница, обратите внимание на определение, сколько "ИЛИ", давайте с ними разбираться.

Символьная скорость

Сначала БОД придумали для того чтобы определить сколько символов, букв можно передать за секунду по телетайпу, а кодировка тогда была 5 битная. Кодировка двоичная, импульс - единица, нет импульса - нолик. Все логично и понятно.

Импульсах в секунду

Потом по линиям связи стали общаться не только люди, но и машины и передавать не только символы - буквы, но и служебные биты например синхронизации, к чему их отнести к какой букве? А канал то они то же занимают. И вот тут и началась путаница, передавался не только символ, но и служебная информация. Как считать?

Квадратурная амплитудная модуляция (КАМд)

Но потом все еще больше запуталось, потому как в одном импульсе с помощью, например квадратурной амплитудной модуляции (КАМд), можно зашифровать не один бит, а например до 16 бит.

В общем все в конце концов вообще перепуталось!

Иногда в бодах выражают полную ёмкость канала, вот такая формула:

Полная ёмкость канала = служебная информация в бит/c + эффективная информация в бит/c.

А IBM считает, что один бит/с равен одному БОДу (1бит/c = 1БОД) и вообще бит это БОД см. выше. Я думаю что это не верно и не правильно.

Преобразование UART в RS-232

Самый известный преобразователь интерфейса – это микросхема, разработанная фирмой MAXIM, которая и получила от нее часть своего названия (MAX 232). Эта микросхема из 5 вольт генерирует отрицательное напряжение, чтобы сопрягать 5-вольтовый UART с RS-232.

MAX 3232
MAX 3232

MAX 3232 это MAX 232, но работает в диапазоне напряжений питания от 3 до 5.5 вольт

Физическая реализация

Разъем представлен Д-образными разъёмами 9- и 25-контактные, (DB-9 и DB-25), были и другие, но вымерли как динозавры, нужно сказать что и DB-25 то же практически вымер, остался только DB-9

DB-9 папа
DB-9 папа

Это переходник USB-COM-порт

 Переходник USB-COM-порт
Переходник USB-COM-порт

А это DB-9 мама

 DB-9 мама
DB-9 мама

На самом деле это переходник PS/2 - COM-порт

Переходник PS/2 - COM-порт
Переходник PS/2 - COM-порт

DB-9 то же вымирает, но остается в промышленном оборудовании. В бытовом использовании, да и в промышленном кстати то же все эти порты успешно вытесняются интерфейсом USB.

Какие еще есть стандарты?

Самые распространённые это:

  • RS-485 стандарт автоматизации промышленных сетей
  • LIN интерфейс (K-Line.) это автомобильная сеть

Что за названия serial port, communications port, COM-порт и так далее?

А это все сленговые названия интерфейса RS-232

Последовательный порт или по английскому serial port, Сommunications port или сокращенно COM-порт, или интерфейс связи, а в то время особенно других то и не было. Все это синонимы интерфейса RS-232

Название COM - порт идет еще и с DOS, так там обозначался последовательный порт.

USB

USB (Universal Serial Bus — «универсальная последовательная шина») — последовательный интерфейс для подключения периферийных устройств. Появился в 1995 года, спустя 33 года после RS-232

Для этой шины так же есть преобразователи которые преобразуют сигналы логических уровней TTL в USB и обратно.

Преобразователь UART-USB на базе микросхем:

  • cp2102 (cp2103)
  • pl2303
  • CH340
  • FT232R

Но самые распространённые:

  • CH340
  • CP2102
-6

CH340 используется очень широко, например в конверторах о них в статьях:

Выводы

Правильно употреблять выражение преобразователь (конвертер, адаптер) UART-USB. Так как термины: serial port, communications port, COM-порт, последовательный порт больше относятся к интерфейсу стандарта RS-232 и являются синонимами.

Вот такая схема демонстрирует выше написанное.

-7

Связанные статьи:

Конвертеры UART - USB

Протоколы

Программы

Пользуйтесь рубрикатором по каналу, там все по разделам: "Страничка путеводитель по каналу TehnoZet-2"

Подписывайтесь на наш канал TehnoZet-2, будет интересно! Мы только развиваемся! Понравилась статья, хотите продолжения - ставьте лайк, жмите палец вверх!

Тэги

#чтотамвнутри

#впоискахнеонки

#некроферия

#староежелезо

#ПроКомпьютер

#компьютер

#ЭВМ

#ноутбук