Отличие usb от rs232

Обновлено: 05.07.2024

Последовательный порт или COM-порт (произносится "ком-порт", от англ. COMmunication port ) - двунаправленный последовательный интерфейс, предназначенный для обмена байтовой информацией. Последовательный потому, что информация через него передаeтся по одному биту, бит за битом (в отличие от параллельного порта). Наиболее часто для последовательного порта персональных компьютеров используется стандарт RS-232C . Ранее последовательный порт использовался для подключения терминала, позже для сканера, модема или мыши. Сейчас он используется для соединения с источниками бесперебойного питания, для связи с аппаратными средствами разработки встраиваемых вычислительных систем.

Варианты разъeма COM-порта типа DB-9F наиболее часто используются Д-образные разъeмы: 9- и 25-контактные, (DB-9 и DB-25 соответственно). Раньше использовались также DB-31 и круглые восьмиконтактные DIN -8 . Максимальная скорость передачи обычно составляет 115 200 бит/с. Стандарт на него был разработан в 1969 году.

Универсальный асинхронный приeмопередатчик ( УАПП, UART , Universal Asynchronous Receiver/ Transmitter ) - вид приeмопередатчика, устройства, которое переводит данные из последовательной в параллельную форму (и обратно). UART представляет собой отдельное устройство или является частью интегральной схемы, используется для передачи данных через последовательный порт компьютера или периферийного устройства. UART часто встраивают в микроконтроллеры.

Протокол RS-232 (англ. Recommended Standard 232) -стандарт последовательной синхронной и асинхронной передачи двоичных данных между терминалом (англ. Data Terminal Equipment, DTE ) и конечным устройством (англ. Data Communications Equipment, DCE ). RS-232 - интерфейс передачи информации между двумя устройствами на расстоянии до 15 м. Информация передается по проводам с уровнями сигналов, отличающимися от стандартных 5В, для обеспечения большей устойчивости к помехам. Асинхронная передача данных осуществляется с установленной скоростью при синхронизации уровнем сигнала стартового импульса.

В конце байта, перед стоп битом, может передаваться бит четности ( parity bit ) CRC (для контроля качества передачи). На практике, в зависимости от качества применяемого кабеля, требуемое расстояние передачи данных в 15 метров может не достигаться, составляя, к примеру, порядка 1,5 м на скорости 115200 бод для неэкранированного плоского или круглого кабеля. Для преодоления этого ограничения, а также возможного получения гальванической развязки между узлами, можно применить преобразователи RS-232- RS-422 (с сохранением полной программной совместимости) или RS-232- RS-485 (с определeнными программными ограничениями). При этом расстояние может быть увеличено до 1 км на скорости 921600 бод и использовании кабеля типа "витая пара" категории 3.


P - Контрольный бит - этот бит используется для правильной передачи данных. SP-используются о окончании передачи данных. Используемые биты P, SP, ST задают формат передачи данных уровня RS232C. UART - это микросхема используемая как универсальный асинхронный приемодатчик.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

UART

Universal Asynchronous Receiver-Transmitter (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.

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

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

Может кто-нибудь сказать мне, почему люди используют или USB или RS232. Они оба последовательные порты, верно? И я понимаю, что USB намного быстрее (особенно USB3.0), но если бы люди тоже этого хотели, я уверен, что они могли бы стать преемником RS232, который так же быстр.

Итак, каковы преимущества и недостатки обоих?

RS232 действительно был разработан как интерфейс для модема. Это довольно ясно с сигналами, называемыми «индикатором звонка» и т. Д. Он был узурпирован для обеспечения простой трехпроводной (GND, TX, RX) двунаправленной связи для многих устройств. USB был разработан как расширяемая протоколом интерфейсная система устройства. С учетом расширяемости это намного сложнее и требует реализации программного стека как на стороне устройства, так и на стороне хоста. У USB даже есть замена для RS232 под названием CDC.

Каковы различия между USB и RS232?

Вы найдете гораздо больше, чем я могу рассказать вам о возможностях и недостатках RS232, начав с поиска RS232, а затем «бродя по сети» и следуя по теме, к которой он ведет. Ни одна страница не расскажет вам всего, но 10 или 20 быстрых снимков покажут вам, насколько это было полезно и как ужасно, и в то же время.

USB задуман как высокоскоростной расширяемый полностью стандартизированный интерфейс между 1 вычислительным устройством, использующим один порт, и N периферийными устройствами, использующими один порт каждый, причем все управление осуществляется сигналами в потоке данных. USB очень сложно обеспечить низкоуровневые интерфейсы для. «Простые» интерфейсы распространены, но они предоставляют и скрывают очень большую степень связанной сложности.

RS232 был задуман как относительно низкоскоростной полустандартизированный интерфейс 1: 1 между 1 вычислительным устройством и 1 периферийным устройством на порт, причем аппаратное управление является неотъемлемой частью работы. RS232 относительно легко обеспечить для физических интерфейсов низкого уровня.

RS232

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

Однако [tm] [. ] RS232 был задуман как небольшая скорость (максимум несколько метров), умеренно низкая скорость (обычно 9600 бит / с, до 100 кбит / с в некоторых случаях, быстрее в очень специализированных ситуациях), одно устройство на порт ( исключения, подтверждающие правило).

Сигнализация была несбалансированной относительно земли с использованием примерно +/- 12 В с логической единицей на dfata = -V и логической на контроле = + V. На исходном 25-контактном разъеме было много-много управляющих сигналов, что привело к чрезвычайно широкому спектру нестандартного использования и несовместимости. В более поздней версии разъем был уменьшен до 9 контактов с достаточным количеством управляющих сигналов, чтобы позволить людям совершенно не соответствовать стандартам.

Работа RS232 между случайно выбранным оконечным устройством и компьютером или аналогичным устройством МОЖЕТ зависеть от необходимости подключаться и работать или требовать минут, часов или дней игры, а в некоторых случаях просто не будет работать.

RS232 НЕ обеспечивает питание как таковое, хотя многие люди использовали его для питания оборудования различными способами, ни один из которых не является стандартным. Наблюдение за линиями данных позволит идентифицировать сигналы данных. (Быстрые глаза и мозг, который работает на подходящем количестве кбит / с, помогут).

Передача данных является однонаправленной на линии передачи и приема и использует асинхронное кадрирование.

Конструкция рассчитана на соединение 1: 1 без возможности многоточечного соединения 1: N без нестандартных схем.

USB

до USB2 - это 4-х проводная физическая система с двумя линиями питания и двумя линиями передачи данных. Нет никаких физических контрольных линий. USB3 использует больше строк, и детали лучше оставить для другого вопроса и ответа.

Начальная скорость была 12 Мбит / с, увеличена до 480 Мбит / с с USB2 и до 5 Гбит / с в режиме «Суперскорость» с USB3.

Управление и настройка выполняются с помощью программного обеспечения с использованием сигналов данных, которые являются неотъемлемой частью интерфейса. Наблюдение за потоком данных с помощью осциллографа не выявит фактический компонент данных системы.

Передача данных использует сигнализацию сбалансированного дифференциального напряжения 0 / + 5.

Передача данных является двунаправленной, и владение «шиной» является неотъемлемой частью протокола.

Соединение почти всегда физически 1: 1, но на одном порту можно разместить несколько логических устройств. Подключение N физических устройств к одному входному порту обычно осуществляется с помощью «концентратора», но это, по сути, является видимым проявлением внутреннего расположения 1: N, которое является неотъемлемой частью конструкции.

Будут некоторые интересные проблемы с соединителями :-):

Насколько я понимаю, Serial Port обычно означает порт, совместимый с RS-232 (RS = рекомендуемый стандарт). USB означает Universal Serial Port . Поэтому его имя содержит последовательный порт, поддерживает ли он RS-232? Что означает Universal ?

А что означает COM-порт?

ADD 1

Некоторое понимание ответа Ганса:

Чтобы уменьшить нагрузку, производители устройств обычно делают свое устройство таким же, как устройство последовательного порта. Это зависит от того, что многие библиотеки OS и языков уже включили поддержку последовательного порта. Хотя такая поддержка не сопоставима с реальным драйвером соответствующего устройства.

ADD 2

И btw, Проект документа Linux действительно полезен.

USB означает универсальную последовательную шину. Усилена возможностью интегрировать микропроцессор в устройства размером несколько миллиметров и стоит несколько десятков. Он заменил устаревшие устройства в последние 1990-е годы. Он универсален, потому что он может поддерживать множество различных устройств, от нагревателей кофеварки до дисководов до адаптеров Wii для воспроизведения звука. Это Serial, для этого требуется только 4 провода. И это шина, вы можете подключить USB-устройство к произвольному порту. Он конкурировал с FireWire, очень похожим подходом и отстаивал Apple, но победил на суше.

Единственная причина, по которой последовательные порты по-прежнему актуальны в Windows, заключается в том, что для устройства USB требуется специальный драйвер устройства. Производителям устройств не нравится писать и поддерживать драйверы, они часто используют ярлык в своем драйвере, что позволяет эмулировать устаревшее последовательное портовое устройство. Поэтому программисты могут использовать устаревшую поддержку последовательных портов, встроенных в операционную систему и любую библиотеку времени исполнения. Скорее несовершенная поддержка кстати, эти эмуляторы никогда не поддерживают plug-and-play. Обнаружение определенного последовательного порта для открытия очень сложно. И эти драйверы часто ошибаются в невозможности диагностировать способы, когда вы дергаете USB-устройство, пока ваша программа использует его.

Вы правы в том, что термин последовательный порт в контексте ПК обычно означает порт RS-232, но существуют и другие стандарты последовательного порта, такие как RS-422 и RS-485, часто используемые в промышленных приложениях. Что общего у них, так это то, что они реализованы с использованием UART (Универсальный асинхронный приемник/передатчик).

Термин Universal на USB просто отражает тот факт, что он не является специфическим интерфейсом устройства, например выделенными портами мыши или клавиатуры, найденными на более старом оборудовании. Аналогично, последовательный порт на основе UART не является специфичным для устройства, что отражается U в UART.

Читайте также: