Последовательный асинхронный адаптер (COM порт). Основные понятия и термины
Практически каждый компьютер оборудован хотя бы одним последовательным асинхронным адаптером. Обычно он представляет собой отдельную плату или же расположен прямо на материнской плате компьютера. Его называют еще асинхронным адаптером RS-232-C, или портом RS-232-C. Каждый асинхронный адаптер обычно содержит несколько портов RS-232-C, через которые к компьютеру можно подключать внешние устройства. Каждому такому порту соответствует несколько регистров, через которые программа получает к нему доступ, и определенная линия IRQ для сигнализирования компьютеру об изменении состояния порта. При выполнении BIOS процедуры начальной загрузки каждому порту RS-232-C присваивается логическое имя COM1 — COM4 (COM-порт номер 1 — 4).
Интерфейс RS-232-C разработан ассоциацией электронной промышленности (Electronic Industries Association — EIA) как стандарт для соединения компьютеров и различных последовательных периферийных устройств. Компьютер IBM PC поддерживает интерфейс RS-232-C не в полной мере скорее разъем, обозначенный на корпусе компьютера как порт последовательной передачи данных, содержит некоторые из сигналов, входящих в интерфейс RS-232-C и имеющих соответствующие этому стандарту уровни напряжения. В настоящее время порт последовательной передачи данных используется очень широко. Вот далеко не полный список применений:
Основные понятия и термины
Последовательная передача данных означает, что данные передаются по единственной линии. При этом биты байта данных передаются по очереди с использованием одного провода. Для синхронизации группе битов данных обычно предшествует специальный стартовый бит, после группы битов следуют бит проверки на четность и один или два стоповых бита. Иногда бит проверки на четность может отсутствовать. Сказанное иллюстрируется следующим рисунком:
Из рисунка видно, что исходное состояние линии последовательной передачи данных — уровень логической 1. Это состояние линии называют отмеченным — MARK. Когда начинается передача данных, уровень линии переходит в 0. Это состояние линии называют пустым — SPACE. Если линия находится в таком состоянии больше определенного времени, считается, что линия перешла в состояние разрыва связи — BREAK. Стартовый бит START сигнализирует о начале передачи данных. Далее передаются биты данных, вначале младшие, затем старшие.
Если используется бит четности P, то передается и он. Бит четности имеет такое значение, чтобы в пакете битов общее количество единиц (или нулей) было четно или нечетно, в зависимости от установки регистров порта. Этот бит служит для обнаружения ошибок, которые могут возникнуть при передаче данных из-за помех на линии. Приемное устройство заново вычисляет четность данных и сравнивает результат с принятым битом четности. Если четность не совпала, то считается, что данные переданы с ошибкой. Конечно, такой алгоритм не дает стопроцентной гарантии обнаружения ошибок. Так, если при передаче данных изменилось четное число битов, то четность сохраняется и ошибка не будет обнаружена. Поэтому на практике применяют более сложные методы обнаружения ошибок.
В самом конце передаются один или два стоповых бита STOP, завершающих передачу байта. Затем до прихода следующего стартового бита линия снова переходит в состояние MARK. Использование бита четности, стартовых и стоповых битов определяют формат передачи данных. Очевидно, что передатчик и приемник должны использовать один и тот же формат данных, иначе обмен будет невозможен. Другая важная характеристика — скорость передачи данных. Она также должна быть одинаковой для передатчика и приемника.
Скорость передачи данных обычно измеряется в бодах (по фамилии французского изобретателя телеграфного аппарата Emile Baudot — Э. Бодо). Боды определяют количество передаваемых битов в секунду. При этом учитываются и старт/стопные биты, а также бит четности. Иногда используется другой термин — биты в секунду (bps). Здесь имеется в виду эффективная скорость передачи данных, без учета служебных битов.
Аппаратная реализация
Компьютер может быть оснащен одним или двумя портами последовательной передачи данных. Эти порты расположены либо на материнской плате, либо на отдельной плате, вставляемой в слоты расширения материнской платы. Бывают также платы, содержащие четыре или восемь портов последовательной передачи данных. Их часто используют для подключения нескольких компьютеров или терминалов к одному, центральному компьютеру. Эти платы имеют название «мультипорт».
В основе последовательного порта передачи данных лежит микросхема Intel 8250 или ее современные аналоги — Intel 16450, 16550, 16550A. Эта микросхема является универсальным асинхронным приемопередатчиком (UART — Universal Asynchronous Receiver Transmitter). Микросхема содержит несколько внутренних регистров, доступных через команды ввода/вывода. Микросхема 8250 содержит регистры передатчика и приемника данных. При передаче байта он записывается в буферный регистр передатчика, откуда затем переписывается в сдвиговый регистр передатчика. Байт «выдвигается» из сдвигового регистра по битам. Аналогично имеются сдвиговый и буферный регистры приемника.
Программа имеет доступ только к буферным регистрам, копирование информации в сдвиговые регистры и процесс сдвига выполняется микросхемой UART автоматически. Регистры, управляющие асинхронным последовательным портом, будут описаны в следующей главе. К внешним устройствам асинхронный последовательный порт подключается через специальный разъем. Существует два стандарта на разъемы интерфейса RS-232-C, это DB25 и DB9. Первый разъем имеет 25, а второй 9 выводов. Приведем разводку разъема последовательной передачи данных DB25:
Номер контакта | Назначение контакта | Вход или выход компьютера |
---|---|---|
1 | Защитное заземление(Frame Ground, FG) | — |
2 | Передаваемые данные(Transmitted Data, TD) | Выход |
3 | Принимаемые данные(Received Data, RD) | Вход |
4 | Запрос для передачи(Request to send, RTS) | Выход |
5 | Сброс для передачи(Clear to Send, CTS) | Вход |
6 | Готовность данных(Data Set Ready, DSR) | Вход |
7 | Сигнальное заземление(Signal Ground, SG) | — |
8 | Детектор принимаемого с линии сигнала(Data Carrier Detect, DCD) | Вход |
9-19 | Не используются | — |
20 | Готовность выходных данных(Data Terminal Ready, DTR) | Выход |
21 | Не используется | — |
22 | Индикатор вызова(Ring Indicator, RI) | Вход |
23-25 | Не используются | — |
Наряду с 25-контактным разъемом часто используется 9-контактный разъем:
Номер контакта | Назначение контакта | Вход или выход |
---|---|---|
1 | Детектор принимаемого с линии сигнала(Data Carrier Detect, DCD) | Вход |
2 | Принимаемые данные(Received Data, RD) | Вход |
3 | Передаваемые данные(Transmitted Data, TD) | Выход |
4 | Готовность выходных данных(Data Terminal Ready, DTR) | Выход |
5 | Сигнальное заземление(Signal Ground, SG) | — |
6 | Готовность данных(Data Set Ready, DSR) | Вход |
7 | Запрос для передачи(Request to send, RTS) | Выход |
8 | Сброс для передачи(Clear to Send, CTS) | Вход |
9 | Индикатор вызова(Ring Indicator, RI) | Вход |
Только два вывода этих разъемов используются для передачи и приема данных. Остальные передают различные вспомогательные и управляющие сигналы. На практике для подсоединения того или иного устройства может понадобиться различное количество сигналов. Интерфейс RS-232-C определяет обмен между устройствами двух типов: DTE (Data Terminal Equipment — терминальное устройство) и DCE (Data Communication Equipment — устройство связи). В большинстве случаев, но не всегда, компьютер является терминальным устройством. Модемы, принтеры, графопостроители всегда являются устройствами связи. Рассмотрим теперь сигналы интерфейса RS-232-C более подробно.
Сигналы интерфейса RS-232-C
Здесь мы рассмотрим порядок взаимодействия компьютера и модема, а также двух компьютеров непосредственно соединенных друг с другом. Сначала посмотрим, как происходит соединение компьютера с модемом. Входы TD и RD используются устройствами DTE и DCE по-разному. Устройство DTE использует вход TD для передачи данных, а вход RD для приема данных. И наоборот, устройство DCE использует вход TD для приема, а вход RD для передачи данных. Поэтому для соединения терминального устройства и устройства связи выводы их разъемов необходимо соединить напрямую:
Остальные линии при соединении компьютера и модема также должны быть соединены следующим образом:
Рассмотрим процесс подтверждения связи между компьютером и модемом. В начале сеанса связи компьютер должен удостовериться, что модем может произвести вызов (находится в рабочем состоянии). Затем, после вызова абонента, модем должен сообщить компьютеру, что он произвел соединение с удаленной системой. Подробнее это происходит следующим образом. Компьютер подает сигнал по линии DTR, чтобы показать модему, что он готов к проведению сеанса связи. В ответ модем подает сигнал по линии DSR. Когда модем произвел соединение с другим, удаленным модемом, он подает сигнал по линии DCD, чтобы сообщить об этом компьютеру. Если напряжение на линии DTR падает, это сообщает модему, что компьютер не может далее продолжать сеанс связи, например из-за того что выключено питание компьютера. В этом случае модем прервет связь. Если напряжение на линии DCD падает, это сообщает компьютеру, что модем потерял связь и не может больше продолжать соединение. В обоих случаях эти сигналы дают ответ на наличие связи между модемом и компьютером.
Сейчас мы рассмотрели самый низкий уровень управлением связи — подтверждение связи. Существует более высокий уровень, который используется для управления скоростью обмена данными, но он также реализуется аппаратно. Практически управление скоростью обмена данными (управление потоком) необходимо, если производится передача больших объемов данных с высокой скоростью. Когда одна система пытается передать данные с большей скоростью, чем они могут быть обработаны принимающей сиситемой, результатом может стать потеря части передаваемых данных. Чтобы предотвратить передачу большего числа данных, чем то, которое может быть обработано, используют управление связью, называемое «управление потоком» (flow-controll handshake). Стандарт RS-232-C определяет возможность управления потоком только для полудуплексного соединения. Полудуплексным называется соединение, при котором в каждый момент времени данные могут передаваться только в одну сторону. Однако фактически этот механизм используется и для дуплексных соединений, когда данные передаются по линии связи одновременно в двух направлениях.
Управление потоком
В полудуплексных соединениях устройство DTE подает сигнал RTS, когда оно желает передать данные. DCE отвечает сигналом по линии CTS, когда оно готово, и DTE начинает передачу данных. До тех пор, пока оба сигнала RTS и CTS не примут активное состояние, только DCE может передавать данные. При дуплексных соединениях сигналы RTS/CTS имеют противоположные значения по сравнению с теми, которые они имели для полудуплексных соединений. Когда DTE может принять данные, он подает сигнал по линии RTS. Если при этом DCE готово для принятия данных, оно возвращает сигнал CTS. Если напряжение на линиях RTS или CTS падает, то это сообщает передающей системе, что получающая система не готова для приема данных. Ниже мы приводим отрывок диалога между компьютером и модемом, происходящий при обмене данными.
Конечно, все это хорошо звучит. На практике все не так просто. Соединить компьютер и модем не составляет труда, так как интерфейс RS-232-C как раз для этого и предназначен. Но если вы захотите связать вместе два компьютера при помощи такого же кабеля, который вы использовали для связи модема и компьютера, то у вас возникнут проблемы. Для соединения двух терминальных устройств — двух компьютеров — как минимум необходимо перекрестное соединение линий TR и RD:
Однако в большинстве случаев этого недостаточно, так как для устройств DTE и DCE функции, выполняемые линиями DSR, DTR, DCD, CTS и RTS, асимметричны. Устройство DTE подает сигнал DTR и ожидает получения сигналов DSR и DCD. В свою очередь, устройство DCE подает сигналы DSR, DCD и ожидает получения сигнала DTR. Таким образом, если вы соедините вместе два устройства DTE кабелем, который вы использавали для соединения устройств DTE и DCE, то они не смогут договориться друг с другом. Не выполнится процесс подтверждения связи.
Теперь перейдем к сигналам RTS и CTS, управления потоком данных. Иногда для соединения двух устройств DTE эти линии соединяют вместе на каждом конце кабеля. В результате получаем то, что другое устройство всегда готово для получения данных. Поэтому, если при большой скорости передачи принимающее устройство не успевает приинимать и обрабатывать данные, возможна потеря данных. Чтобы решить все эти проблемы для соединеия двух устройств типа DTE используется специальный кабель, в обиходе называемый нуль-модемом. Имея два разъема и кабель, вы легко можете спаять его самостоятельно, руководствуясь следующими схемами.
Для полноты картины рассмотрим еще один аспект, связанный с механическим соединением портов RS-232-C. Из-за наличия двух типов разъемов — DB25 и DB9 — часто бывают нужны переходники с одного типа разъемов на другой. Например, вы можете использовать такой переходник для соединения COM-порта компьютера и кабеля нуль-модема, если на компьютере установлен разъем DB25, а кабель оканчивается разъемами DB9. Схему такого переходника мы приводим на следующем рисунке:
Заметим, что многие устройства (такие, как терминалы и модемы) позволяют управлять состоянием отдельных линий RS-232-C посредством внутренних переключателей (DIP-switches). Эти переключатели могут менять свое значение на разных моделях модемов. Поэтому для их использования следует изучить документацию модема. Например, для hayes-совместимых модемов, если переключатель 1 находится в положении «выключен» (down), это означает, что модем не будет проверять наличие сигнала DTR. В результате модем может отвечать на приходящие звонки, даже если компьютер и не запрашивает у модема установление связи.
Технические параметры интерфейса RS-232-C
При передаче данных на большие расстояния без использования специальной аппаратуры из-за помех, наводимых электромагнитными полями, возможно возникновение ошибок. Вследствие этого накладываются ограничения на длину соединительного кабеля между устройствами DTR-DTR и DTR-DCE. Официальное ограничение по длине для соединительного кабеля по стандарту RS-232-C составляет 15,24 метра. Однако на практике это расстояние может быть значительно больше. Оно непосредственно зависит от скорости передачи данных. Согласно McNamara (Technical Aspects of Data Communications, Digital Press, 1982) определены следующие значения:
Com на материнской плате что это
- Синий нейтральный провод (N), подключенный к потенциалу земли, опорный.
- Фазовый провод (L) обычно коричневый или черный, иногда красный, серый, белый — это второй рабочий провод, на котором изменяется напряжение относительно провода N.
- Защитный провод (PE), обычно желто-зеленый, который заземлен и подключается к защитному контакту в розетке, это важный элемент защиты от поражения электрическим током.
Приводятся основные сведения о планарных предохранителях, включая их технические характеристики и применение.
Схема с полевым транзистором контроллера вентилятора высокой мощности на 12 В.
Тестирование, схема и разборка мини паяльной станции из Китая KSGER STM32 V3.1S OLED T12.
Про использование технологии беспроводного питания различных устройств.
- Socket 1150
- Socket 1155
- Socket 1356
- Socket 1366
- Socket 2011
- Socket AM3
- Socket AM3+
- Socket FM1
- Socket FM2
- 2 контакта — это обычный кулер;
- 3 контакта — вентилятор с тахометром;
- 4 контакта — кулер, использующий широтно-импульсный преобразователь, который позволяет изменять скорость его вращения. Процессорный кулер подключается как раз к этому разъему.
Широкое
Малое
- широкое подключение — самый удобный вариант;
- малое подключение;
- вообще без надписей. Например, многие платы фирмы MSI вообще не указывают обозначения, и разобраться с подключением там можно лишь с помощью инструкции.
- USB 2.0
- USB 3.0
- аналоговый порт VGA
- цифровой DVI
- цифровой HDMI
- Красный — для микрофона;
- Зеленый — для колонок;
- Голубой — для подключения внешних источников, типа телевизора, плеера или радио.
ExpressCard
Kensington Lock
Для чего нужен com порт
После́довательный порт (англ. serial port , COM-порт [1] , англ. communications port ) — сленговое название интерфейса стандарта RS-232, которым массово оснащались персональные компьютеры. Порт называется «последовательным», так как информация через него передаётся по одному биту, последовательно бит за битом (в отличие от параллельного порта). Несмотря на то, что некоторые интерфейсы компьютера (например, Ethernet, FireWire и USB) тоже используют последовательный способ обмена информацией, название «последовательный порт» закрепилось за портом стандарта RS-232.
Содержание
Назначение [ править | править код ]
Наиболее часто для последовательного порта персональных компьютеров используется стандарт RS-232C. Ранее последовательный порт использовался для подключения терминала, позже для модема или мыши. Сейчас он используется для соединения с источниками бесперебойного питания, для связи с аппаратными средствами разработки встраиваемых вычислительных систем, спутниковыми ресиверами, кассовыми аппаратами, программаторами, с приборами систем безопасности объектов, а также с многими прочими устройствами.
С помощью COM-порта можно соединить два компьютера, используя так называемый «нуль-модемный кабель» (см. ниже). Использовался со времен MS-DOS для передачи файлов с одного компьютера на другой, в UNIX для терминального доступа к другой машине, а в Windows (даже современной) — для отладчика уровня ядра.
Достоинством технологии является крайняя простота оборудования. Недостатком является низкая скорость, крупные размеры разъёмов, а также зачастую высокие требования ко времени отклика ОС и драйвера и большое количество прерываний (одно на половину аппаратной очереди, то есть 8 байт).
Разъёмы [ править | править код ]
На материнских платах ведущих производителей (например, Intel) или готовых системах (например, IBM, Hewlett-Packard, Fujitsu Siemens Computers) для последовательного порта принято условное обозначение COM или RS-232.
Наиболее часто используются стандартизированные в 1969 году D-образные разъёмы: 9- и 25-контактные, (DB-9 и DB-25 соответственно). Раньше использовались также DA-31 и круглые восьмиконтактные DIN-8. Максимальная скорость передачи в обычном исполнении порта составляет 115 200 бод.
Актуальность [ править | править код ]
Широко распространённый в IBM PC-совместимых компьютерах, интерфейс RS-232 не пригоден для развлекательных и офисных задач, зато широко используется в прикладных задачах, поэтому попытки избавиться в современных материнских платах от наследия старых интерфейсов обречены. Спецификация PC99 — один из безуспешных примеров нажиться [ источник не указан 135 дней ] на масштабной замене «устаревшего» оборудования. Про неё пишут [ источник не указан 135 дней ] , что она «ныне устарела и представляет исключительно исторический интерес», а производство «устаревшего» оборудования процветает. В офисных и домашних компьютерах, где расстояния и помехи невелики, а скорость обмена востребована, RS-232 практически вытеснен интерфейсом USB.
Существуют стандарты на эмуляцию последовательного порта над USB и над Bluetooth (эта технология в значительной степени и проектировалась как «беспроводной последовательный порт»).
Тем не менее программная эмуляция данного порта широко используется и сегодня. Так, например, практически все мобильные телефоны эмулируют внутри себя классический COM-порт и модем для реализации тетеринга — доступа компьютера в Интернет через GPRS/EDGE/3G/4G оборудование телефона. При этом для физического подключения к компьютеру используется USB, Bluetooth или Wi-Fi [2] .
Также программная эмуляция данного порта предоставляется «гостям» виртуальных машин VMWare и Microsoft Hyper-V, основная цель при этом — подключение отладчика уровня ядра Windows к «гостю».
В виде UART, отличающегося уровнями напряжения и отсутствием дополнительных сигналов, присутствует практически во всех микроконтроллерах, кроме самых-самых маленьких, SoC, платах разработчиков, а также присутствует на платах большей части устройств, хотя разъём и не выведен на корпус. Такая популярность связана с простотой этого интерфейса, как с физической точки зрения, так и с легкостью доступа к порту со стороны ПО по сравнению с другими интерфейсами.
Аппаратура [ править | править код ]
Разъём имеет контакты:
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 и IBM PC/XT аппаратура порта была построена на микросхеме UART 8250 фирмы National Semiconductor, затем микросхема была заменена на 16450, программно совместимой с предыдущими, но позволявшей использовать скорости вплоть до 115200 бит в секунду, затем появилась микросхема 16550, содержавшая двунаправленный FIFO буфер данных для снижения нагрузки на контроллер прерываний. В настоящее время включена в SuperIO микросхему на материнской плате вместе с рядом иных устройств.
Программный доступ к СОМ-порту [ править | править код ]
UNIX [ править | править код ]
COM-порты в операционной системе Unix (Linux) — это файлы символьных устройств. Обычно эти файлы располагаются в каталоге /dev и называются
Для программного доступа к СОМ-порту необходимо открыть на чтение/запись соответствующий файл и сделать вызовы специальных функций 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 (программирование)» |
С последовательными портами в Win32 работают как с файлами. Для открытия порта используется функция CreateFile. Портов может быть много, поэтому они обозначаются как COM1, COM2 и т. д. по порядку обнаружения драйверов соответствующих устройств. Первые 9 портов доступны в том числе как именованные каналы для передачи данных (доступны по именам «COM1», «COM2», …), такой метод доступа считается устаревшим. Рекомендуется ко всем портам обращаться как к файлам (по именам «\.COM1», «\.COM2»,… «\.COMx»).
Поиск PnP-имен устройств в системе осуществляется вызовом SetupDiGetClassDevs. В реестре существует раздел HKEY_LOCAL_MACHINEHARDWAREDEVICEMAPSERIALCOMM, в котором отображаются имеющиеся в данный момент COM-порты.
Для каждого порта в реестре имеется раздел. Эти разделы имеют такие имена:
где последнее значение «Serial10000» — уникальный номер для каждого нового добавленного в систему COM-порта, для второго — «Serial10001» и т. д.
OS/2 [ править | править код ]
Имеющийся драйвер COM.SYS поддерживает только 4 COM-порта, каждый из которых должен иметь свою линию прерываний. Для обслуживания COM-портов с общей линией прерывания необходимо воспользоваться драйвером SIO [3] .
Нуль-модемный кабель [ править | править код ]
В некоторых случаях возможно применение упрощённого варианта кабеля, в котором задействуются только контакты 2, 3 и 5.
Наряду с параллельным портом 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, последовательный интерфейс пока еще не следует списывать со счетов, как абсолютно устаревший рудимент архитектуры персонального компьютера.
Хотя некоторые другие интерфейсы компьютера — такие как Ethernet, FireWire и USB — также используют последовательный способ обмена, название «последовательный порт» закрепилось за портом, имеющим стандарт RS-232C, и предназначенным изначально для обмена информацией с модемом.
С помощью COM-порта можно соединить два компьютера, используя так называемый "нуль-модемный кабель".
Принятое условное обозначение последовательного порта: Последовательный порт — условное обозначение
Варианты разъёма COM-порта типа DE-9F
Варианты разъёма COM-порта типа DE-9F
Наиболее часто используются Д-образные разъёмы: 9- и 25-контактные, (DE-9 и DB-25 соответственно) . Раньше использовались также DB-31 и круглые восьмиконтактные DIN-8. Максимальная скорость передачи обычно составляет 115200 бит/с.
Стандарт на него был разработан в 1969 году.
В настоящее время в персональных компьютерах всё ещё встречается данный вид интерфейса, не смотря на значительное вытеснения другими портами: PS/2 (подключение мыши и клавиатуры) , USB универсальная последовательная шина с питанием.
Что означает COM в схемах и приборах
Термин COM, часто указанный в электронных схемах, происходит от английского слова «common» и означает «общий». Это маркировка линии, которая используется многими другими проводниками / линиями, то есть обратный путь для тока, протекающего через них. В большинстве случаев линия COM эквивалентна массе схемы, то есть точке с нулевым потенциалом, которая является опорным узлом для измерения всех напряжений в ней. Но так бывает не всегда.
Исключением из этого правила могут быть схемы, в которых подключенные цепи не имеют гальванической связи с чем-либо еще, например, панели управления охранной сигнализацией. Ничто не препятствует тому, чтобы клеммы COM, предназначенные для подключения датчиков герконового переключателя, были поляризованы производителем с каким-либо потенциалом, например 12 В, относительно массы прибора. Это может облегчить, например, проверку их статуса. Другой пример – релейный выход контрольной панели, где переключили контакты реле NC / NO и клемму COM, подключенную к якорю реле.
Следовательно COM следует понимать только как общую точку. А вот масса схемы обозначена как GND (земля). В общем во многих случаях это одно и то же, но не всегда.
Также COM – общий контакт реле, который является подвижным. Обозначается, как BASE или COMMON. Общий контакт еще называется полюс, а те с которыми он соединяется – направлениями.
Что касается электросетей переменного тока, там есть обычно:
- Синий нейтральный провод (N), подключенный к потенциалу земли, опорный.
- Фазовый провод (L) обычно коричневый или черный, иногда красный, серый, белый – это второй рабочий провод, на котором изменяется напряжение относительно провода N.
- Защитный провод (PE), обычно желто-зеленый, который заземлен и подключается к защитному контакту в розетке, это важный элемент защиты от поражения электрическим током.
Защитный провод PE, подключенный к металлическим частям корпуса устройства, защищает от появления опасного напряжения на этих проводящих частях.
В старых зданиях можно найти сеть без желто-зеленого провода PE, тогда защитные штыри и клемма N подключаются к общему нейтральному проводу. Но всё это совсем не та "масса", что в обычных низковольтных принципиальных схемах, обозначаемая GND, и соединять их между собой нельзя.