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 232, но работает в диапазоне напряжений питания от 3 до 5.5 вольт
Физическая реализация
Разъем представлен Д-образными разъёмами 9- и 25-контактные, (DB-9 и DB-25), были и другие, но вымерли как динозавры, нужно сказать что и DB-25 то же практически вымер, остался только DB-9
Это переходник USB-COM-порт
А это DB-9 мама
На самом деле это переходник 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
CH340 используется очень широко, например в конверторах о них в статьях:
Выводы
Правильно употреблять выражение преобразователь (конвертер, адаптер) UART-USB. Так как термины: serial port, communications port, COM-порт, последовательный порт больше относятся к интерфейсу стандарта RS-232 и являются синонимами.
Вот такая схема демонстрирует выше написанное.
Связанные статьи:
Конвертеры UART - USB
Протоколы
Программы
Пользуйтесь рубрикатором по каналу, там все по разделам: "Страничка путеводитель по каналу TehnoZet-2"
Подписывайтесь на наш канал TehnoZet-2, будет интересно! Мы только развиваемся! Понравилась статья, хотите продолжения - ставьте лайк, жмите палец вверх!
Тэги
#чтотамвнутри
#впоискахнеонки
#некроферия
#староежелезо
#ПроКомпьютер
#компьютер
#ЭВМ
#ноутбук