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

Последовательный порт
Наружные разъёмы материнской платы: PS/2 (1 — мышь, 2 — клавиатура), 100BASE-T 8P8C (3), USB (4), RS-232 DE-9 (5), IEEE 1284 (LPT) DB-25 (6), видеопорт VGA (7), игровой порт (8)) и аудиоразъемы мини-TRS (9)
Разъём DE-9, используемый для интерфейса RS-232

После́довательный порт, англ. serial port (а также серийный порт или COM-порт[1], англ. communications port) — двунаправленный последовательный интерфейс.

Последовательным данный порт называется потому, что информация через него передаётся по одному биту, бит за битом (в отличие от параллельного порта). Хотя некоторые другие интерфейсы компьютера — такие как Ethernet, FireWire и USB — также используют последовательный способ обмена, название «последовательный порт» закрепилось за портом, имеющим стандарт RS-232C.

Особенностью данного порта по сравнению с другими "последовательными" технологиями является факт отсутствия каких-либо временных требований между 2 байтами. Временные требования есть только между битами одного байта (включая старт, стоп и четность), величина, обратная временной паузе между битами одного байта, называется baud rate - скорость передачи. Также в этой технологии отсутствует понятие "пакет".

Другие "последовательные" технологии, такие, как X.25, USB или Ethernet, имеют понятие "пакет", и накладывают жесткие временные требования между всеми битами одного пакета.

По этой причине в терминологии Cisco IOS данный порт назывался async - в отличие от синхронных serial, т.е. X.25. По этой же причине модуль Windows, реализующий PPP поверх данного порта, называется AsyncMac.sys (в стандарте PPP отдельно описана реализация PPP, использующего понятие "пакет", над последовательным портом, этого понятия не имеющим).

Некоторые протоколы связи с индустриальным оборудованием налагают жесткие временные требования между байтами последовательного порта. Такие протоколы крайне сложны в реализации в многозадачных ОС со слабой поддержкой реального времени, такой, как Windows, и потому зачастую требуют MS-DOS и устаревшего ПО почти 20-летней давности на управляющем компьютере.

Содержание

Назначение

Наиболее часто для последовательного порта персональных компьютеров используется стандарт RS-232C. Ранее последовательный порт использовался для подключения терминала, позже для модема или мыши. Сейчас он используется для соединения с источниками бесперебойного питания, для связи с аппаратными средствами разработки встраиваемых вычислительных систем, спутниковыми ресиверами, кассовыми аппаратами, а также с приборами систем безопасности объектов.

С помощью COM-порта можно соединить два компьютера, используя так называемый «нуль-модемный кабель» (см. ниже). Использовался со времен MS-DOS для перекачки файлов с одного компьютера на другой, в UNIX для терминального доступа к другой машине, а в Windows (даже современной) - для отладчика уровня ядра.

Достоинством технологии является крайняя простота оборудования. Недостатком является низкая скорость, крупные размеры разъемов, а также зачастую высокие требования к времени отклика ОС и драйвера и высокое количество прерываний (одно на половину аппаратной очереди, т.е. 8 байт).

Разъемы

На материнских платах ведущих производителей (например, Intel) или готовых системах (например, IBM, Hewlett-Packard, Fujitsu Siemens Computers) для последовательного порта принято следующее условное обозначение:

Варианты разъёма COM-порта типа DB-9F

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

Актуальность

Широко распространённый в IBM PC-совместимых компьютерах, последовательный порт в настоящее время морально устарел (Спецификация PC99 — один из примеров попытки избавиться в современных материнских платах от наследия старых интерфейсов), но ещё нередко присутствует на современных компьютерах и используется в промышленном и узкоспециальном оборудовании. В настоящее время в IBM PC-совместимых компьютерах активно вытесняется интерфейсом USB, в Macintosh — USB и FireWire.

Существуют стандарты на эмуляцию последовательного порта над USB и над Bluetooth (эта технология в значительной степени и проектировалась как «беспроводной последовательный порт»).

Тем не менее программная эмуляция данного порта широко используется и сегодня. Так, например, практически все мобильные телефоны эмулируют внутри себя классический COM-порт и модем для реализации тетеринга — доступа компьютера в Интернет через GPRS/EGDE/3G оборудование телефона. При этом для физического подключения к компьютеру используется USB, Bluetooth или Wi-Fi[2].

Также программная эмуляция данного порта предоставляется «гостям» виртуальных машин VMWare и Microsoft Hyper-V, основная цель при этом — подключение отладчика уровня ядра Windows к «гостю».

Аппаратура

Разъем имеет контакты:

DTR (Data Terminal Ready - готовность к приёму данных) - выход на компьютере, вход на модеме. Означает готовность компьютера к работе с модемом. Сброс этой линии вызывает почти полную перезагрузку модема в первоначальное состояние, в т.ч. бросание трубки (некоторые управляющие регистры выживают после такого сброса). В UNIX это происходит в случае, если все приложения закрыли файлы на драйвере сериального порта. Мышь использует этот провод для получения питания.

DSR (Data Set Ready - готовность к передаче данных) - вход на компьютере, выход на модеме. Означает готовность модема. Если эта линия находится в нуле - то в ряде ОС становится невозможно открыть порт как файл.

RxD (Receive Data - приём данных) - вход на компьютере, выход на модеме. Поток данных, входящий в компьютер.

TxD (Transmit Data - передача данных) - выход на компьютере, вход на модеме. Поток данных, исходящих из компьютера.

CTS (Clear to Send - готовность передачи) - вход на компьютере, выход на модеме. Компьютер обязан приостановить передачу данных, пока этот провод не будет выставлен в единицу. Используется в аппаратном протоколе управления потоком для предотвращения переполнения в модеме.

RTS (Request to Send - запрос на передачу) - выход на компьютере, вход на модеме. Модем обязан приостановить передачу данных, пока этот провод не будет выставлен в единицу. Используется в аппаратном протоколе управления потоком для предотвращения переполнения в оборудовании и драйвере.

DCD (Carrier Detect - наличие несущей) - вход на компьютере, выход на модеме. Взводится модемом в единицу после установления соединения с модемом с той стороны, сбрасывается в ноль при разрыве связи. Аппаратура компьютера может издавать прерывание при наступлении такого события.

RI (Ring Indicator - сигнал вызова) - вход на компьютере, выход на модеме. Взводится модемом в единицу после обнаружения вызывного сигнала телефонного звонка. Аппаратура компьютера может издавать прерывание при наступлении такого события.

SG (Signal Ground - сигнальная земля) - общий сигнальный провод порта, не является общей землёй, как правило, изолирован от корпуса ЭВМ или модема.

В нуль-модемном кабеле используются две перекрещенные пары: TXD/RXD и RTS/CTS.

Стандартная (со времен оригинальной IBM PC) аппаратура порта называется UART 16550 (в настоящее время включена в SuperIO микросхему на материнской плате вместе с рядом иных устройств). Со времен IBM PC в ней появилась аппаратная очередь байт, которая сильно снижает количество издаваемых устройством прерываний.

Программный доступ к СОМ-порту

UNIX

COM-порты в операционной системе Unix (Linux) — это файлы символьных устройств. Обычно эти файлы располагаются в каталоге /dev и называются

  • ttyS0, ttyS1, ttyS2 и т. д. в Linux
  • ttyd0, ttyd1, ttyd2 и т. д. (или ttyu0, ttyu1, ttyu2 и т. д. начиная с версии 8.0) в FreeBSD
  • ttya, ttyb, ttyc и т. д. в Solaris
  • ttyf1, ttyf2, ttyf3 и т. д. в IRIX
  • tty1p0, tty2p0, tty3p0 и т. д. в HP-UX
  • tty01, tty02, tty03 и т. д. в Digital Unix
  • ser1, ser2, ser3 и т. д. в QNX

Для программного доступа к СОМ-порту необходимо открыть на чтение/запись соответствующий файл и сделать вызовы специальных функций tcgetattr (для того, чтобы узнать текущие настройки) и tcsetattr (чтобы установить новые настройки). Также может потребоваться сделать вызовы ioctl с определенными параметрами. После этого при записи в файл данные будут отправляться через порт, а при чтении программа будет получать уже принятые данные из буфера СОМ-порта.

Устройства с именами "ttyxx" используются как серверные, т.е. приложение, открывшее данное устройство, обычно ожидает входящего звонка от модема. Классическим таким приложением, используемым по умолчанию, является getty, которая ожидает входящего звонка, далее настраивает COM-порт в соответствии с файлами конфигурации, выводит туда "login:", принимает имя пользователя и запускает как потомка команду "login ИмяПользователя", со стандартным вводом и выводом, перенаправленными в COM-порт. Эта команда в свою очередь запрашивает и проверяет пароль, и в случае успеха запускает (не как потомка, а вместо себя вызовом execve в том же процессе) default user shell, прописанный в файле /etc/passwd.

Эта технология исторически возникла в 1970ые годы, когда под ОС UNIX использовались компьютеры вроде PDP-11 (в СССР серия называлась СМ ЭВМ) или VAX, позволяющие подключение многих терминалов для работы многих пользователей. Терминалы - а значит, и весь интерфейс пользователя - при этом подключались через сериальные порты, с возможностью подключения вместо терминала модема и дальнейшего дозвона на компьютер по телефону. До сих пор в UNIX-подобных ОС существует терминальный стек, и обычно 3 реализации терминалов - сериальный порт, консоль текстового режима экрана+клавиатура, и "обратная петля" в один из открытых файлов управляющего приложения (так реализованы telnetd, sshd и xterm).

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

Так как сериальный порт в UNIX доступен только через терминальный стек, он может быть управляющим терминалом для процессов и групп (посылать SIGHUP при разрыве связи от модема и SIGINT при нажатии Ctrl-C), на уровне ядра поддерживать редактирование последней введенной строки клавишами стрелочек, и т.д. Для отключения этой возможности с целью превращения устройства в "трубу" для потока байт необходимы вызовы ioctl.

Windows

COM-порты в операционной системе Windows — это именованные каналы для передачи данных, называемые обычно COM1, COM2 и т. д. по порядку обнаружения драйверов соответствующих устройств (такое именование давно считается устаревшим и приложениям рекомендуется искать PnP-имена всех таких устройств на машине вызовом SetupDiGetClassDevs, однако и по сей день многие приложения зависят от этих устарелых имен). Например, для обмена информации через Bluetooth многие драйверы представляются операционной системе как COM-порт, и резервируют похожее имя. Следует также отметить, что организация взаимодействия по последовательному порту с точки зрения программирования реализуется значительно легче, чем другие способы.[источник не указан 1293 дня]

Для каждого порта в реестре имеется раздел. Эти разделы имеют такие имена:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\Parameters\Serial10000

где последнее значение “Serial10000” - уникальный номер для каждого нового добавленного в систему COM-порта, для второго – “Serial10001” и т.д

Для связи с устройствами, поддерживающими Bluetooth, некоторым программам (например, к таким программам относятся: программа, которая синхронизирует список контактов с мобильным телефоном; программа, которая извлекает координаты GPS из GPS-приемника) на компьютере пользователя требуется COM-порт.

К программам, использующим COM-порты для поддержки связи с помощью технологии беспроводного подключения Bluetooth, непосредственно разработанных фирмой Microsoft, относятся:

OS/2

Имеющийся драйвер COM.SYS поддерживает только 4 COM-порта, каждый из которых должен иметь свою линию прерываний. Для обслуживания COM-портов с общей линией прерывания необходимо воспользоваться драйвером SIO[3].

Нуль-модемный кабель

Null-modem.svg

В некоторых случаях возможно применение упрощённого варианта кабеля, в котором задействуются только контакты 2, 3 и 5.

См. также

Примечания

  1. Используется только в терминологии ОС семейства Windows, исторически пришло из MS-DOS и классической IBM PC
  2. Что Такое Функция AllShare?
  3. Установка платы COM порта в компьютер

Ссылки


Wikimedia Foundation. 2010.

Нужно решить контрольную?

Полезное


Смотреть что такое "Последовательный порт" в других словарях:

  • последовательный порт — Разъем и схема, используемые для преобразования параллельных данных в последовательную форму, в которой биты передаются по одному друг за другом по единственному кабелю. Предназначен для ввода вывода данных в компьютер.… …   Справочник технического переводчика

  • последовательный порт управления — (в адаптере сети ЦСИС) [Л.Г.Суменко. Англо русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.] Тематики информационные технологии в целом EN serial control portSCP …   Справочник технического переводчика

  • коммуникационный, последовательный порт — Порт, к которому подключен адаптер канала связи. Другой термин com port. [http://www.morepc.ru/dict/] Тематики информационные технологии в целом EN communication port …   Справочник технического переводчика

  • порт — [сооружение] сущ., м., употр. сравн. часто Морфология: (нет) чего? порта, чему? порту, (вижу) что? порт, чем? портом, о чём? о порте и в порту; мн. что? порты и порты, (нет) чего? портов и портов, чему? портам и портам, (вижу) что? порты и порты …   Толковый словарь Дмитриева

  • порт — I. в вычислительной технике, электронное устройство, служащее для передачи данных между компьютером и периферийными устройствами (клавиатурой, «мышью», принтером, сканером и др.). Последовательный порт предназначен для поразрядной передачи данных …   Энциклопедия техники

  • Последовательный интерфейс — 9 контактный разъём COM порта Последовательный порт или COM порт (произносится «ком порт», от англ. COMmunication port)  двунаправленный последовательный интерфейс, предназначенный для обмена байтовой информацией. Содержание 1 Название …   Википедия

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

  • Порт (компьютер) — У этого термина существуют и другие значения, см. Порт (значения). Порт  обычно соединение (физическое или логическое), через которое принимаются и отправляются данные в компьютерах. Наиболее часто портом называют: Аппаратный порт … …   Википедия

  • Порт (компьютеры) — В компьютерных технологиях порт обычно соединение (физическое или логическое), через которое принимаются и отправляются данные. Наиболее часто портом называют: Аппаратный порт разъём на каком либо элементе аппаратного обеспечения компьютера, в… …   Википедия

  • ПОРТ — (1) естественный или искусственно оборудованный инженерными сооружениями транспортный узел на берегу водного пространства (акватории) моря, озера, реки или водохранилища, достаточно безопасный и защищённый от воздействия волн, ветров, наноса… …   Большая политехническая энциклопедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»