Последовательный асинхронный адаптер (com порт)

7. Асинхронный последовательный адаптер

Практически каждый компьютер оборудован хотя бы одним последовательным асинхронным адаптером. Обычно он представляет собой отдельную плату, вставляемую в слот расширения компьютера или же расположен прямо на материнской (системной) плате.

Последовательный асинхронный адаптер также называют асинхронным адаптером RS-232-C, или портом RS-232-C. Каждый асинхронный адаптер обычно содержит несколько портов RS-232-C, через которые к компьютеру можно подключать различные внешние устройства. Каждому такому порту соответствует несколько регистров, через которые программа получает к нему доступ, и определенный номер IRQ для сигнализирования компьютеру об изменении состояния порта. При выполнении BIOS процедуры начальной загрузки всем портам RS-232-C присваиваются логические имена COM1 — COM4 (COM-порт номер 1 — 4).

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

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

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

Ограничение по длине для соединительного кабеля по стандарту RS-232-C составляет 15,24 метра. Однако на практике это расстояние может быть значительно больше. Оно непосредственно зависит от скорости передачи данных. Согласно McNamara (Technical Aspects of Data Communications, Digital Press, 1982) определены следующие значения:

Скорость передачи в бодахМаксимальная длина (экранированный кабель), м Максимальная длина (не- экранированный кабель), м
1101524,0914,4
3001524,0914,4
1200914,4914,4
2400304,8152,4
4800304,876,2
960076,276,2

Уровни напряжения на линиях разъема составляют для логического нуля -15..-3 вольта, для логической единицы — +3..+15 вольт. Промежуток от -3 до +3 вольт соответствует неопределенному значению.

Если вы подключаете внешние устройства к разъему интерфейса RS-232-C (а также при соединении двух компьютеров нуль-модемом), предварительно выключите внешнее устройство и компьютер, а также снимите статический заряд (подсоединив заземление). В противном случае можно вывести из строя асинхронный адаптер.

В асинхронном последовательном адаптере применяется микросхема универсального асинхронного приемопередатчика — UART 8250. Микросхема UART 8250 в ее исходном виде использовалась только в старых моделях асинхронных последовательных адаптеров. В настоящее время применяются более современные микросхемы приемопередатчиков — UART 16450, 16550 и 16550A.

Эти микросхемы UART, изготовленные по новой технологии, позволяют достичь более высокой скорости обмена данными, а также обладают новыми аппаратными возможностями. Перечислим основные характеристики различных микросхем UART, а следовательно и асинхронных последовательных адаптеров, на которых эти микросхемы установлены:

Тип микросхемы UARTХарактеристики
8250 (8250-B)Использовался на первых моделях IBM PC/XT, обладает небольшой производительностью
16450/(8250-A)Микросхема 16450 практически полностью соответствует 8250. В ней устранены ошибки в регистре разрешения прерываний и добавлена возможность перевода линии OUT2 в высокоимпедансное состояние
16550Добавлена возможность внутренней буферизации передаваемых и принимаемых данных. Буфера выполнены в виде очереди (FIFO). Из-за ошибки в микросхеме возможность буферизации лучше не использовать — можно потерять отдельные символы. В общем случае микросхема 16550 более быстрая, чем 16450. Микросхема 16550 дает возможность использовать несколько каналов прямого доступа (DMA channels)
16550A (16550AN)По своим характеристикам она соответствует 16550, но в ней исправлены ошибки реализации FIFO. Эта микросхема дает возможность использования программам нескольких каналов прямого доступа (DMA channels). Если вы желаете работать на скоростях больших, чем 9600 бод, вам желательно использовать асинхронный последовательный адаптер содержащий именно эту микросхему

Если в вашем распоряжении находятся два компьютера, оборудованные асинхронными последовательными адаптерами, вы можете соединить их посредством нуль-модемного кобеля. Нуль-модемный кабель подключается к портам последовательных адаптеров соединяемых компьютеров.

С помощью специального программного обеспечения через нуль-модемный кабель можно обеспечить быстрое копирование данных между компьютерами. Если компьютеры не объединены в локальную сеть и вам надо переписать с одного компьютера на другой большой объем информации, использование нуль-модема является лучшим решением.

Нуль-модем представляет собой достаточно простое устройство. Он состоит из двух разъемов и кабеля, соединенных определенным образом. Если у вас под рукой есть два ответных разъема от портов асинхронного адаптера и многожильный кабель, вы легко можете изготовить нуль-модем сами.

На рисунке 7.1 представлены две схемы нуль-модемов, использующих два разъема DB25.

Рис. 7.1. Схемы нуль-модемов

Разъемы портов последовательного адаптера бывают двух видов DB9 и DB25. Эти разъемы различаются количеством и назначением выводов. Разъем DB9 содержит 9, а разъем DB25 — 25 выводов. Несмотря на различное количество выводов, их функциональные возможности одинаковы.

Если вы собрали нуль-модем в соответствии с приведенной выше схемой, а у последовательного адаптера свободен только разъем с 9 выводами, вы можете воспользоваться специальным переходником (см. рис. 7.2).

Рис. 7.2. Переходники DB25 — DB9

Если в вашем распоряжении находятся два или более компьютера, то вы можете организовать обмен данными между ними без использования дискет и без установки сетевых адаптеров.

Для этого надо соединить порты асинхронных последовательных адаптеров компьютеров с помощью нуль-модемного кабеля. После этого с помощью специального программного обеспечения вы сможете получить доступ с одного компьютера, называемого рабочим, к дискам другого, называемого сервером. Работать при этом можно только за рабочим компьютером, но зато вы получаете полный доступ к дисковой подсистеме серевера.

В качестве программного обеспечения, используемого для обеспечения связи между компьютерами через порты асинхронного последовательного адаптера, можно воспользоваться программами Norton Commander или FastLynx. Операционная система MS-DOS версии 6.0 имеет в своем составе собственные средства организации связи компьютеров через нуль-модем.

Ниже мы рассмотрим использование программы Norton Commander и средств MS-DOS версии 6.0.

Использование программы Norton Commander

Самая простая программа, которую можно использовать для непосредственной связи двух компьютеров через нуль-модемный кабель, — это Norton Commander. При помощи этой программы можно осуществлять обмен файлами между компьютерами, при этом работать можно только на одном компьютере.

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

Сначала выключите питание обоих компьютеров и соедините их через асинхронные последовательные порты (COM — порты) нуль-модемным кабелем. Затем включите компьютеры и запустите на обоих компьютерах программу Norton Commander.

Для каждого компьютера выберите из меню Left или Right элемент linK. При этом на экране появляется диалоговое окно Commander Link (см. рис. 7.3).

Рис. 7.3. Диалоговое окно Commander Link

Затем надо выбрать режим работы — «Master» (рабочий компьютер) или «Slave» (сервер), а также определить последовательный порт, который вы будете использовать для соединения — COM1 или COM2. Именно к этому порту должен быть подключен нуль-модемный кабель.

Для одного из соединяемых компьютеров надо выбрать режим «Master», а для другого — «Slave». При этом вы сможете работать только на компьютере, находящемся в режиме «Master».

Переключатель Turbo Mode, расположенный на диалоговом окне Commander Link, устанавливает повышенную скорость обмена данными. Режим Turbo Mode должен быть установлен одновременно на обоих компьютерах.

При помощи программы Norton Commander вы можете выполнять следующие действия:

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

С помощью программы Norton Commander вы не можете с основного компьютера выполнять такие простейшие действия над дисками сервера, как просмотр дерева каталогов и запуск программ.

Если вас не удовлетворяют возможности программы Norton Commander, используйте средства операционной системы MS-DOS версии 6.0 или объедините ваши компьютеры с помощью локальной сети.

Использование средств MS-DOS

В состав дистрибутива операционной системы MS-DOS версии 6.0 включены программные средства для организации обмена данными между компьютерами через порты асинхронного адаптера или через параллельные порты. К ним относятся драйвер Interlnk и программа Intersvr.

С помощью драйвера Interlnk и программы Intersvr вы можете получить полный доступ с рабочего компьютера к дискам и принтерам, подключенным к серверу. При этом на рабочем компьютере появляются новые устройства, через которые вы можете осуществить обращение к дискам и параллельным портам сервера.

Таким образом, на рабочем компьютере появляются новые диски, а также параллельные порты. По своим свойствам, за исключением быстродействия, они полностью соответствуют локальным дискам и параллельным портам компьютера. Вы можете свободно записывать и считывать с этих дисков файлы, запускать программы. Если к серверу подключен принтер, то вы сможете распечатать на нем документ непосредственно с рабочего компьютера.

Рассмотрим процесс объединения компьютеров через порты асинхронного адаптера.

Для соединения двух компьютеров, вам необходимо соединить их с помощью нуль-модема. Затем подключите в файле CONFIG.SYS рабочего компьютера драйвер Interlnk:

Параметр n определяет количество дисков сервера, которое вы желаете использовать с рабочего компьютера. Если не задавать этот параметр, будет доступно только три диска:

Затем запустите на сервере программу Intersvr:

Теперь логические диски сервера и его принтерные порты становятся доступны с вашего рабочего компьютера.

В нашем случае, на рабочем компьютере появились три новых диска с именами I:, J: и K:, а также новый параллельный (принтерный) порт LPT2.

Через диски I: и J: вы можете получить доступ к дисководам A: и B:, расположенным на сервере, через диск K: к жесткому диску C: сервера, а через параллельный порт LPT2, вы можете обратиться к устройству (принтеру), подключенному к параллельному порту LPT1 на сервере.

Последовательный асинхронный адаптер (COM порт)

Обычно он представляет собой отдельную плату или же расположен прямо на материнской плате компьютера. Его называют еще асинхронным адаптером RS-232-C, или портом RS-232-C. Каждый асинхронный адаптер обычно содержит несколько портов RS-232-C, через которые к компьютеру можно подключать внешние устройства (удаленных до 30 метров.). Каждому такому порту соответствует несколько регистров, через которые программа получает к нему доступ, и определенная линия IRQ для сигнализирования компьютеру об изменении состояния порта. При выполнении BIOS процедуры начальной загрузки каждому порту RS-232-C присваивается логическое имя COM1 — COM4 (COM-порт номер 1 — 4). Наиболее часто используются Д-образные разъёмы: 9-ти и 25-тиконтактные (рисунок 20).

Рисунок 20 – 9-контактный разъем COM-порта

Данные передаются по данному интерфейсу пакетами по одному байту (8 бит).

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

· подключение сканеров, принтеров;

· связь двух компьютеров;

· подключение модемов для передачи данных по телефонным линиям;

Скорости передачи данных по данному интерфейсу 9600,19200, 38400, 57600 и 115200 бит/с.

Обозначение: .

LPT порт

LPT (Line Print Terminal) — международный стандарт параллельного интерфейса для подключения периферийных устройств персонального компьютера.

В основном используется для подключения к компьютеру принтера, сканера и других внешних устройств (часто использовался для подключения внешних устройств хранения данных), однако может применяться и для других целей.

В основе данного стандарта лежит интерфейс Centronics и его расширенные версии (ECP, EPP).

Название «LPT» образовано от наименования стандартного устройства принтера «LPT1» (Line Printer Terminal или Line PrinTer) в операционных системах семейства MS-DOS (рисунок 21).

Скорость передачи данных может варьироваться и достигать 1,2 Мбит/с.

Рисунок 21 – LPT-порт на персональных компьютерах (IEEE 1284-A)

Большинство фирменных расширений первоначального интерфейса впоследствии было стандартизировано индустрией, каковой процесс завершился принятием серии стандартов IEEE-1284. В настоящее время стандарт IEEE-1284 не развивается. Окончательная стандартизация параллельного порта совпала с началом внедрения интерфейса USB, который позволяет подключать также и комбинированные аппараты (сканер-принтер-копир) и обеспечивает более высокую скорость печати и надёжную работу принтера. Также, альтернативой параллельному интерфейсу является сетевой интерфейс Ethernet.

Обозначение:

PS/2

В середине 80-х IBM предложила в своей новой серии персональных компьютеров IBM PS/2 (Personal System) для удобства использовать один и тот же разъём для клавиатуры и мыши. Для этого был разработан новый последовательный порт с более компактным разъёмом, за которым в дальнейшем закрепилось название PS/2 (рисунки 22, 23).

Рисунок 22 — Два порта PS/2: один окрашенный, другой — нет

Рисунок 23 – Кабели с разъемами PS/2 Фиолетовый – клавиатура. Зелёный – мышь

USB

USB (Universal Serial Bus) — последовательный интерфейс передачи данных для среднескоростных и низкоскоростных периферийных устройств. Основная цель стандарта — создание возможности пользователям работать в режиме Plug&Play с периферийными устройствами. Это означает, что осуществляется подключение устройства к работающему компьютеру, автоматическое распознавание его немедленно после подключения и последующей установки соответствующих драйверов.

Для подключения периферийных устройств к шине USB используется четырёхпроводный кабель, при этом два провода (витая пара) используются для приёма и передачи данных, а два провода — для питания периферийного устройства. Благодаря встроенным линиям питания USB позволяет подключать периферийные устройства без собственного источника питания (максимальная сила тока, потребляемого устройством по линиям питания шины USB, не должна превышать 500 мА).

К одному контроллеру шины USB можно подсоединить до 127 устройств по топологии «звезда», в том числе и концентраторы.

В настоящее время широко используются устройства, выполненные в соответствии со спецификацией USB 2.0. Ведётся внедрение в производство устройств спецификации USB 3.0.

Характеристики: USB 1.0:

1) спецификация выпущена в ноябре 1995 года;

2) два режима передачи данных:

— режим с высокой пропускной способностью (Full-Speed) — 12 Мбит/с;

— режим с низкой пропускной способностью (Low-Speed) — 1,5 Мбит/с.

3) максимальная длина кабеля для режима с высокой пропускной способностью — 3 м;

4) максимальная длина кабеля для режима с низкой пропускной способностью — 5 м;

5) максимальное количество подключённых устройств (включая размножители) — 127.

Характеристики USB 2.0:

1) Спецификация выпущена в апреле 2000 года.

2) три режима работы:

— Low-speed, 10—1500 Кбит/c (используется для интерактивных устройств: клавиатуры, мыши, джойстики);

— Full-speed, 0,5—12 Мбит/с (аудио-, видеоустройства);

— Hi-speed, 25—480 Мбит/с (видеоустройства, устройства хранения информации).

Всего существует три типа USB-разъёмов (рисунок 24):

· Разъём «тип A»: обычно присутствует у ПК.

· Разъём «тип B»: обычно находится на самом USB-устройстве (если кабель съёмный).

· Разъём мини-USB: обычно используется цифровыми видеокамерами, внешними жёсткими дисками и т.д.

USB тип А USB тип В Mini USB Тип A (слева) и Mini USB Тип B (справа)

Обозначение:

«Тюльпан» (Cinch/RCA): композитный видео, аудио, HDTV (рисунок 25)

Применяют следующую цветовую кодировку: жёлтый для видео (FBAS), белый и красный «тюльпаны» для аналогового звука, а также три «тюльпана» (красный, синий, зелёный) для компонентного выхода HDTV

Разъёмы «тюльпан» используются в паре с коаксиальными кабелями для многих электронных сигналов. Обычно вилки «тюльпан» используют цветовое кодирование, которое приведено в следующей таблице.

Принципы построения последовательного порта

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

Синхронные последовательные порты

При рассмотрении работы параллельного порта в режиме обмена данными с другим компьютером или принтером уже рассматривался режим последовательной передачи байтов. В последовательном порту режим последовательной передачи применяется не только к байтам, но и к отдельным битам внутри байта. В этом случае для передачи данных достаточно только одного провода. Передаваемая и принимаемая информация обычно представляется в виде однобайтовых или многобайтовых слов. Вес каждого бита в слове различен, поэтому кроме битовой синхронизации, аналогичной байтовой синхронизации для параллельного порта, требуется кадровая синхронизация. Кадровая синхронизация позволяет однозначно определять номер каждого бита в передаваемом слове. Временная диаграмма передачи кадра по синхронному последовательному порту приведена на рисунке 1.


Рисунок 1. Временная диаграмма передачи одного кадра двоичной информации по последовательному порту

Временная диаграмма, приведённая на рисунке 1, применяется в синхронных последовательных портах, которые используются чаще всего в сигнальных процессорах для обмена информацией с кодеками речи, аналого-цифровыми и цифро-аналоговыми преобразователями. На приведённой временной диаграмме показаны два сигнала синхронизации: сигнал тактовой синхронизации CLK и сигнал кадровой синхронизации FS. Сигнал кадровой синхронизации формируется аппаратно из сигнала WR# при записи очередного байта в параллельный порт вывода. Полярность сигналов синхронизации зависит от конкретного типа применяемых микросхем, поэтому в большинстве сигнальных процессоров возможна настройка полярности сигналов синхронизации.

Упрощённая схема синхронного последовательного порта приведена на рисунке 2. На этой схеме видно, что в состав последовательного порта входит параллельный порт, который позволяет подключаться к системной шине микропроцессора. Для преобразования параллельного кода, который поступает из системной шины в последовательный, используется сдвиговый регистр. При обращении центрального процессора к последовательному порту вырабатывается сигнал записи в последовательный порт, который подаётся на вход параллельной записи V универсального регистра. Этот же сигнал используется в качестве сигнала кадровой синхронизации FS. Сигнал тактовой синхронизации CLK, вырабатываемый отдельным генератором, подаётся на вход последовательного сдвига C универсального регистра порта.


Рисунок 2. Упрощённая схема синхронного последовательного порта

Количество передаваемых в одном кадре бит может меняться от восьми до тридцатидвух. В качестве примера использования синхронного последовательного порта на рисунке 3 приведена схема подключения аналого-цифрового преобразователя фирмы Analog Devices к синхронному последовательному порту сигнального процессора той же фирмы.


Рисунок 3. Схема подключения кодека к синхронному последовательному порту

В рассмотренной схеме синхронного последовательного порта на приёмном конце необходимо подсчитывать количество тактовых импульсов, прошедшее после импульса кадровой синхронизации. Кроме того, в таком синхронном последовательном порту информация передаётся непрерывно, что, конечно, удобно для устройств с непрерывным потоком информации, как, например, в кодеках речи. Но существуют устройства, к которым необходимо обращаться только периодически, как, например, синтезаторы частоты, микросхемы приёмников, блоков цветности телевизоров, микросхем памяти данных и многие другие устройства. В этих случаях используются другие виды синхронных последовательных портов такие как SPI порт и I2C шина. Временная диаграмма SPI интерфейса приведена на рисунке 4.


Рисунок 4. Временная диаграмма SPI интерфейса

Основное отличие этого интерфейса от приведённого выше, заключается в том, что сигнал тактовой синхронизации передаётся только в момент действия импульса кадровой синхронизации. Активный уровень сигнала кадровой синхронизации длится до окончания передачи последнего бита в передаваемом кадре. По одним и тем же линиям передачи данных MISO (вход для главного, выход для ведомого) и MOSI (выход для главного, вход для ведомого) может передаваться информация к совершенно различным микросхемам. Выбор, для какой из микросхем предназначена информация, производится сигналом SS (выбор ведомого). В SPI интерфейсе в приёмнике не требуется счётчик тактовых импульсов. Запись принятой информации производится по окончанию кадрового импульса.

Если в устройстве используется несколько микросхем, то количество линий выбора ведомого становится значительным, поэтому в таких случаях используется ещё один вид синхронного последовательного интерфейса: I2C шина. Временная диаграмма этого интерфейса приведена на рисунке 5. В I2C шине приём и передача данных, а также передача адреса микросхемы и адреса регистра внутри микросхемы, к которому осуществляется обращение, производится по одному и тому же проводу. Для подключения к этому проводу используются микросхемы с открытым коллектором. Нагрузкой для всех микросхем, подключенных к линии SDA служит внешний резистор. Естественно, что скорость передачи данных по такому порту будет ниже, по сравнению с SPI портом. Тактовая синхронизация в I2C шине передаётся по линии SCL. Начало работы с микросхемой обозначается особой комбинацией сигналов SDA и SCL, которая называется условием старта. Эта же комбинация одновременно осуществляет кадровую синхронизацию. Завершение работы с микросхемой обозначается ещё одной комбинацией сигналов SDA и SCL. В качестве примера микросхем, использующих интерфейс I2C можно назвать микросхемы EEPROM серии 24сXX.


Рисунок 5. Временная диаграмма I2C интерфейса

Асинхронные последовательные порты

Рассмотренные синхронные последовательные порты позволяют достигнуть больших скоростей передачи данных, но провод, по которому ведётся передача синхросигнала, практически не несёт информации. Такой сигнал можно было бы сформировать и на приёмном конце линии передачи, если заранее договориться о скорости передачи. Единственная проблема — это то, что невозможно построить два абсолютно одинаковых генератора. Генераторы необходимо синхронизировать. Для синхронизации внутренних генераторов используется особое условие начала асинхронной передачи: старт. Всё время, пока не ведётся передача информации, на линии присутствует стоп-сигнал единичного уровня. Перед началом передачи каждого байта передаётся старт-бит, сигнализирующий приемнику о начале посылки данных, за которым следуют информационные биты. Стартовый бит всегда передаётся нулевым уровнем с длительностью, равной длительности информационных бит. В некоторых случаях после передачи информационных бит может передаваться, бит паритета (четности). Завершается передача данных стоп-сигналом. Минимальная длительность стопового сигнала должна быть 1,5 длительности информационных бит, но обычно используют паузу между соседними пакетами данных две длительности информационного бита. Временная диаграмма передаваемых сигналов при асинхронной передаче приведена на рисунке 6.

Рисунок 6. Временная диаграмма передаваемых сигналов при асинхронной передаче.

Продолжительность стопового бита не ограничена. Это позволяет регулировать скорость передачи в зависимости от скорости поступления информации.

Асинхронные последовательные порты широко используются в современной вычислительной технике. Для получения дополнительной информации можно обратиться к дополнительной литературе или к файлу

Понравился материал? Поделись с друзьями!

Последовательный порт компьютера

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

Назначение последовательного порта – история и современное использование

Последовательный порт, как и параллельный, появился задолго до появления персональных компьютеров архитектуры IBM PC. В первых персоналках COM-порт использовался для подсоединения периферийных устройств. Однако сфера его применения несколько отличалась от сферы применения параллельного порта. Если параллельный порт использовался в основном для подключения принтеров, то COM-порт (кстати, приставка COM – это всего лишь сокращение от слова communication) обычно применялся для работы с телекоммуникационными устройствами, такими, как модемы. Тем не менее, к порту можно подключить, например, мышь, а также другие периферийные устройства.

COM-порт, основные сферы применения:

принтеров и плоттеров

мыши

  • Прямое соединение двух компьютеров
  • В настоящее время сфера применения СОМ-порта значительно сократилась благодаря внедрению более быстрого и компактного, и, кстати, тоже последовательного, интерфейса USB. Почти вышли из употребления внешние модемы, рассчитанные на подключение к порту, а также «COM-овские» мыши. Да и редко кто теперь соединяет два компьютера при помощи нуль-модемного кабеля.

    Тем не менее, в ряде специализированных устройств последовательный порт до сих используется. Можно найти его и на многих материнских платах. Дело в том, что по сравнению с USB COM-порт имеет одно важное преимущество – согласно стандарту последовательной передачи данных RS-232, он может работать с устройствами на расстоянии в несколько десятков метров, в то время как радиус действия кабеля USB, как правило, ограничен 5 метрами.

    Принцип работы последовательного порта и его отличие от параллельного

    В отличие от параллельного (LPT) порта, последовательный порт передает данные побитно по одной-единственной линии, а не по нескольким одновременно. Последовательности битов группируются в серии данных, начинающиеся стартовым битом и кончающиеся стоповым битом, а также битами контроля четности, использующимися для контроля ошибок. Отсюда происходит и еще одно английское название, которое имеет последовательный порт – Serial Port.

    Последовательный порт имеет две линии, по которым передаются собственно данные – это линии для передачи данных от терминала (ПК) к коммуникационному устройству и обратно. Кроме того, существует еще несколько управляющих линий. Обслуживает Serial port специальная микросхема UART, которая способна поддерживать относительно высокую скорость передачи данных, достигающую 115 000 бод (байт/с). Правда, стоит отметить, что реальная скорость обмена информацией зависит от обоих коммуникационных устройств. Кроме того, в функции контроллера UART входит преобразование параллельного кода в последовательный и обратно.

    Порт использует электрические сигналы сравнительного высокого напряжения – до +15 B и -15 В. Уровень логического нуля последовательного порта составляет +12 В, а логической единицы – -12 В. Такой большой перепад напряжений позволяет гарантировать высокую степень помехоустойчивости передаваемых данных. С другой стороны, используемые в Serial port высокие напряжения требуют сложных схемотехнических решений. Это обстоятельство также поспособствовало снижению популярности порта.

    Последовательный интерфейс RS-232

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

    Стандарт RS-232 был создан в 1969 г, а его последняя версия, TIA 232, вышла в 1997 г. В настоящее время RS-232 считается устаревшим, однако большинство операционных систем до сих пор его поддерживает.

    В современных компьютерах разъем Serial port представляет собой 9-штырьковый разъем типа «вилка» DB-9, хотя стандарт RS-232 описывает также разъем с 25–ю контактами ­– DB-25, который часто применялся на старых компьютерах. Разъем DB-9 обычно расположен на системной плате ПК, хотя в старых компьютерах он мог находиться на специальной мультикарте, вставляемой в слот расширения.

    9- штырьковое гнездо DB-9 на материнской плате

    Разъем DB-9 на кабеле подключаемого к порту устройства

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

    Назначение линий разъема Serial port DB-9 согласно RS-232 и их соответствие контактам разъема DB-25:

    Контакт DB-9 Английское название Русское название Контакт DB-25
    1 Data Carrier Detect Несущая обнаружена 8
    2 Transmit Data Передаваемые данные 2
    3 Receive Data Принимаемые данные 3
    4 Data Terminal Ready Готовность терминала 20
    5 Ground Земля 7
    6 Data Set Ready Готовность передающего устройства 6
    7 Request To Send Запрос на отправку данных 4
    8 Clear To Send Передача данных разрешена 5
    9 Ring Indicator Индикатор звонка 22

    Конфигурирование и прерывания

    Поскольку в компьютере может быть несколько последовательных портов (до 4), то в системе для них выделяется два аппаратных прерывания — IRQ 3 (COM 2 и 4) и IRQ 4 (COM 1 и 3) и несколько прерываний BIOS. Многие коммуникационные программы, а также встроенные модемы используют для своей работы прерывания и адресное пространство портов COM. При этом обычно применяются не реальные порты, а так называемые виртуальные порты, которые эмулируются самой операционной системой.

    Как и в случае многих других компонентов материнской платы, параметры работы портов COM, в частности, значения прерываний BIOS, соответствующих аппаратным прерываниям, можно настроить через интерфейс BIOS Setup. Для этого используются такие опции BIOS, как COM Port, Serial Port, Onboard Serial Port, Serial Port Address, и т.п.

    Заключение

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

    RS232. Взгляд изнутри

    Последовательный порт (далее ПП) удобный инструмент для общения между разными периферийными устройствами (как собранные самостоятельно на основе какого-нибудь МК, так и заводские: принтеры, осциллографы и т.д.) с одной стороны, и ПК с другой. На сегодняшний день наиболее популярные из всех ПП являются RS232 стандарт (переводится как «Recommended Standard») за его простоту и USB стандарт («Universal Serial BUS») за его резвость.
    USB бесспорно вещь полезная, но жудко навороченная. Поскольку многим самодельным устройствам бешенный обмен данными с ПК неособо нужон, тогда на помощи приходит простой, надежный и многоопытный RS232 Интерфейс.

    По RS232 стандарту устройства участвующие в обмене данными бывают двух типов:
    Data Terminal Equipment (DTE) (устройство отдающее команды — ведущий) и
    Data Circuit-Terminating Equipment (DCE) (периферия, обслуживающая хозяина — ведомый). Нередко, некоторые периферийные устройства ведут себя как DTE (например осциллографы, или наши с вами девайсы).

    Типы соединения

    Модемное соединение — подрозумеваеи наличие некой иерархии, тоесть в случае когда в обмене данными участвуют больше чем два устройства им необходим некий арбитр (модем), разрешающий в определенный момент времени отсылать данные только одному устройству (в то время как читать могут хоть все остальные). Модемом может быть что угодно: отдельный девайс, или один из участников обмена данными, главное недопустить потери данных.

    В случае когда устройств только два, или есть явный ведущий которого слушаются все остальные, никакого посредника им не нужно, а это означает что к их общению больше никто не подключится, и никакого арбитра в лице модема им не надо ( в отличие от предыдущего типа соединения, когда к одному принтеру можно подключить штук 10 ПК ). Опять-же главное недопустить одновременной отправки данных — в определенный момент времени, общатся может только одна пара устройств. Такое соединение называется нуль-модемное соединение:

    Типы передач данных

    Минимальное количество проводков необходимое для обмена данными равно двум (этокий жадный изврат), если передача является односторонней ([Tx, GND]). В случае когда необходимо полноценное — двухстороннее общение число проводков возростает аж до трех ([Rx, Tx, GND]). Большинство периферийных устройств поддерживают одновременную передачу и прием данных — full-duplex, но если один из собеседников на такое не способен, обмен переходит в разряд неполноценных — half-duplex (пока один не закончил передачу/прием другой пляшит под его дудку).

    Распиновка COM разъёма

    В столбце Signal Name, DATA Terminal можно заменить на ПК (то есть Data Terminal Ready соответствует ПК готов к работе), а DATA Set на Периферия.

    Как следует из предыдущей таблицы, все пины делятся на управляющие (control pins) и транспортные (Data pins). Каждый пин в определенный момент времени может находьтся только в одном из двух состояний: активном (on) или неактивном (off). Чтобы не запутатся, и както защитить данные от помех, разработчики решили что во время передачи данных они были сначало усилены (+5В –> +12В, 0В –> -12В ) а потом инвертированы, в то время как c управляющими сигналами они долго не парились и просто их усилели (тоесть положительное стало еще положительней а отрицательное — отрицательнее, относительно общего провода).

    Назначение управляющих пинов ([RTS, CTS], [DTR, DSR] и [CD, RI]) сводится к следующему:

    • Отслеживать состояние собеседника
    • Отслеживать поток данных

    Пара [RTS, CTS] — используется для обозначения готовности данной пары устройств к передачи/приему соответственно.

    1. DTE устройство устанавливает RTS = on, сигнализируя о том что оно готово к приему данных. Если устройство получило достаточное количество данных то устанавливаем RTS =off.
    2. DCE устройство устанавливает CTS =on, сигнализируя о том что оно готово к приему данных. Если устройство получило достаточное количество данных то устанавливаем CTS =off.

    Кто каким пином будет управлять (тоесть кому быть DTE а кому DCE) решать вам. Соответственно программы управления этими устройствами должны выставить RTS(выход)/CTS (вход), или наоборот, иначе могут быть глюки.

    Пара [DTR, DSR] — большинство устройств используют эти пины для сигнализирования что они подключены и готовы к работе.

    1. DTE устройство устанавливает DTR=on, сообщая DCE устройству что оно готово к работе. Соответственно когда DTE устанавливает DTR=off, то оно больше не желает (или не может) общатся (положила трубку 🙂 )
    2. DCE устройство устанавливает DSR=on, сообщая что оно подключено, а когда DSR=off – оно отключено.

    Такой метод контроля потока данных называется – hardware handshaking (чтото вроде аппаратное управление). Пары [DTR, DSR] и [RTS, CTS] могут быть с легкостью взаимо-заменены без всякого ущерба.

    Пара [CD, RI] – используется для обозначения (в тот самом случае когда один принтер на отару кампов) что в данный момент линии передачи данных кем-то заняты.
    Как правило этой парой управляет модем, но не обязательно.

    • St – Стартовый Бит (начало передачи данных) – логический ноль
    • 0..8 – позиция бита (данных) в пакете (позиция «0» – LSB)
    • P – бит парности (проверка успешной передачи данных)
    • Sp1,Sp2 – стоп биты (завершают передачу пакета) – логическая единица
    • [] – в скобках обозначены биты которые могут отсутствовать
    (биты данных с 5 по 8 так или иначе будут переданы, но не рассмотрены — мусор)
    • IDLE – ожидание (логическая единица)

    Как я уже говорил, во время передачи — данные инвертируются, так что если будете проверять осциллографом как отсылается пакет — не пугайтесь.

    Часто формат пакета обозначается следующим образом: 8-N-1 (8 бит данных, без бита проверки, один стоп бит) или 5-E-2 (5 бит данных (3 бита мусора), с проверкой на четность, два стоп бита).

    Поскольку MAX232 поддерживает аппаратное управление COM портом, и если с разводкой данной схемы проблем нет, почемуб и не использовать эту возможность, вдруг когда пригодится (не пропадать же добру). В противном случае, можно обойтись без аппаратного управления, как зачастую и происходит.

    Софт
    UPD: заменил вывод cout на printf, и убрал флаги RxClear и TxClear

    ПП по сути является фаилом из которого ведется чтение/запись, поэтому основные операции которые применяются над ПП можно группировать следующим способом:

    Также много интересного можно узнать на следующих сайтах: Programming Serial Connections , Serial programming in win32 OS

    Запихните предыдущий код в хидэр фаил, например с именем COM_INIT.h и можно использовать ПП.

    Надеюсь эти скромные знания кому-то помогут. Если есть вопросы попытаюсь ответить.

    Мультиобзор четырех преобразователей USB-COM с BuyinCoins

    • Цена: $1.91
    • Перейти в магазин

    Дешевые USB-COM: расстановка точек над i. Расчлененка. Осциллограммы. Тестирование в реальных условиях.

    Как-то потребовалось максимально бюджетно организовать прием факсов в небольшом офисе. Для этого с антресолей был извлечен факс-модем ZyXEL Omni 56K, а поскольку в современных компьютерах порт RS-232 давно канул в лету, на БиКе было решено приобрести адаптер USB-COM. Изучение предложений привело к решению купить все четыре имеющиеся в продаже на тот момент разновидности, благо итоговая стоимость получалась порядка 11 USD.
    Итого по получении из пакета были извлечены (слева направо в порядке возрастания цены):

    Самый дешевый экземпляр обзора. Выглядит хлипко, плата из корпуса вытаскивается невооруженными руками.

    Вместо корпусного чипа просто «капля» на текстолите. Флюс не отмыт.

    Идентификатор устройства — VID_1A86&PID_7523, на диске и в интернете наличествуют драйверы под современные 32- и 64-битные операционные системы от Microsoft. После установки драйверов идентифицируется как USB_SERIAL CH340.
    Backtrack linux тоже в курсе о его существовании:


    Подключенный осциллограф показал, что выходы RTS и DTR выдают в качестве логической единицы +5В, в качестве логического нуля 0В, то есть никакой не RS-232, а самый что ни на есть незамутненный TTL. То же самое относится к выводу TXD.

    В режиме простоя.

    В режиме передачи данных. Здесь и далее на всех осциллограммах скорость порта 9600 бод, 8 бит посылка, 1 стоп-бит, нет контроля четности. Развертка — 1 мс/деление, чувствительность — 5 вольт/деление (делитель в щупе установлен в положение 1:10).
    В порт выводится одно и то же слово. Первому, кто его назовет — плюс в карму.

    2. «Прозрачный».
    В отличие от предыдущего не разбирается вообще. Но сквозь прозрачную пластмассу видна такая же «капля», да и определяется в системе с тем же VID-PID. Не удивительно, что и логические уровни оказались такие же.

    3. «Черный». Опознался при включении как VID_067B&PID_2303.

    Самый свежий драйвер, скачанный с сайта Prolific, завелся с полтыка, что позволяет сделать вывод, что чип — либо оригинальный Prolific, либо поздний клон, не опознающийся драйвером как контрафактный.

    На обратной стороне нашлась микросхема-преобразователь уровней SP3243ECA.

    Уровень в режиме простоя:

    В режиме передачи данных:

    Тот же VID_067B&PID_2303. Так же заработал с последним драйвером.

    Чип преобразователя уровней — MAX211CAI.

    Уровень в режиме простоя:

    В режиме передачи данных:

    Тестирование работоспособности с реальными устройствами.

    Устройство №1: спутниковый ресивер Dreambox 500S.

    Параметры подключения: 115200 8N1.

    Адаптеры на CH340 выдают в консоль мусор:

    Адаптеры на PL2303 работают корректно:

    Устройство №2: тот самый ZyXEL Omni 56K

    Параметры подключения: 57600 8N1.
    Все 4 адаптера подключились успешно.

    .

    Устройство №3: маршрутизатор Cisco 2801.

    Параметры подключения: 9600 8N1.
    Все 4 адаптера подключились успешно.

    Устройство №4: офисная АТС Nortel Meridian 11C.


    Параметры подключения: 9600 8N1
    Все 4 адаптера подключились успешно.

    Устройство №5: попытаемся прочесть EEPROMы 24Cxx и 93Cxx программатором PonyProg.

    Как известно, программа PonyProg2000 позволяет читать и писать большое количество последовательных флэшек и микроконтроллеров, используя последовательный порт компьютера в качестве интерфейса. Отличие от предыдущих испытаний в том, что собственно выводы приема и передачи данных нам понадобятся постольку поскольку. Для программирования используется режим Bit-Banging — имитация сигналов интерфейса методом «дрыгания» в нужном порядке выводов GPIO (DTR, DST, CTS, RTS). На многих форумах электронщиков утверждается, что USB-COM преобразователь для этих целей непригоден вообще. Что мы сейчас и проверим.

    Сдуваем SPD-чип со старой планки памяти. Это и есть EEPROM 24С02.

    Панельки-переходника с SOIC на DIP у меня нету, поэтому подпаиваю по проводу к каждой ноге.

    Сигналы порта уходят на ноги чипа через резисторы 4.7к и «подперты» стабилитронами 5.1В согласно схеме.

    Общая часть программатора.

    Переходник для I2C.

    Переходник для Microwire.

    Подаем 5В от USB, запускаем программу, выбираем чип, нажимаем кнопку «Прочитать».
    Вот оно, содержимое:

    Флэшка прочлась, но очень-очень медленно. На несчастные 256 байт понадобилось порядка 30 секунд. Страшно представить, сколько будет читать флэшка размером хотя бы 1 мегабайт.

    Тем не менее, констатируем, что прочесть 24Cxx удалось.

    Теперь попробуем прочесть EEPROM с интерфейсом Microwire.
    Выдергиваем 93C46 из панельки на старой сетевой плате:

    Вставляем в макетку и обвязываем резисторами-стабилитронами согласно схеме.

    Нажимаем кнопку «Прочитать».

    В ответ получаем нули:

    Неужели флэшка пустая? Подключаем стенд к порту на материнской плате, читаем.

    Нет, не пустая. В чем же дело? Подключаем логический анализатор и смотрим обмен.

    Кроме ужасающей разницы в периодах следования импульсов видим, что аппаратный порт дрыгает ногой сброса (канал №3), а USB-COM не хочет. Эта нога управляется сигналом TXD порта. Как его разработчики Ponyprog умудрились сделать постоянно высоким, я не знаю. Возможно, это недокументированная возможность именно «аппаратного» порта. Напишите в комментариях, если кто в курсе.

    Констатируем: прочитать 93Cxx не удалось.

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