Последовательный порт компьютера. Соединение через COM

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

Использование

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

Немного истории

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

Современность

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

Это сопряжено с тем, что изначально практически любое оборудование, в том числе и GPS, было внешним, а его соединение с компьютером производилось посредством серийного кабеля, подключенного к одному из аппаратных портов. От пользователя в процессе настройки требовалось правильно подобрать номер порта и скорость трансляции данных по нему. В то время возник основной стандарт передачи данных от GPS-приемника к программе, который теперь называется NMEA-0183. Фактически данный стандарт предписывает всем разработчикам даже современнейшей аппаратуры и программного обеспечения обмениваться данными посредством COM-портов. И все это в условиях того, что на современных компьютерах, а также на КПК, уже давно главным является стандарт USB. А еще одна особенность состоит в том, что в последнее время GPS-приемники все чаще стали устанавливать непосредственно внутрь корпуса устройства, то есть между ним и основным девайсом вообще отсутствует какой-либо соединительный кабель.

Виртуальные КОМ-порты

Выход из положения был придуман, а именно разработаны «виртуальные» COM-порты. Получается, что внутреннее устройство КПК, к примеру, GPS-приемник, программно имитируется в виде COM-порта, при этом в аппаратном плане таковым не являясь. При этом программе, которая рассчитана на сопряжение посредством подобного стандарта, нет разницы, как он реализован. Тут допускается наличие виртуальной имитации, а не обязательное присутствие аппаратной реализации. Так и удается обеспечить совместимость GPS-программ старого образца с современным оборудованием.

Внесенные изменения

При этом управление COM-портом существенно не изменилось. Пользователь по старинке должен производить сложную настройку чуть ли не вручную. Однако современный COM-порт представляет собой уже не то громоздкое приспособление, размещавшееся на задней панели системного блока, а совсем иное устройство. И тут все дело в том, что с программной точки зрения все их реализации выглядят безлико, то есть нет разницы между виртуальными и реальными портами. Для программного обеспечения порты различаются только номерами, которые им присвоены производителями КПК на совершенно случайной основе. К примеру, приемник от ASUS обычно находится на COM5, а PocketLOOX 560 показывает приемник на COM8. Получается, что программа, которая желает получать от GPS-приемника данные, не имеет изначально никакой достоверной информации об условном номере, под которым фигурирует порт, прописанный соответствующим для приемника на данном КПК.

Как все это работает?

При том, что среди всех имеющихся COM-портов можно провести автоматический поиск подходящего, процедура такого опроса является довольно ненадежной и достаточно громоздкой. Связано это с тем, что устройства, отображаемые в системе в качестве COM-портов, могут быть довольно разнообразными и не иметь отношения к GPS, они могут совершенно непредсказуемо ответить на такой опрос. К примеру, на КПК бывают порты, сопряженные с внутренним сотовым модемом, с USB, с инфракрасным портом, а также с иными элементами. Обращение к ним программы, предназначенной для работы с конкретным приспособлением, может привести к совершенно непредсказуемой реакции, а также к различным сбоям в работе, что часто становится причиной зависания КПК. Именно поэтому попытка открыть COM-порт может привести к неожиданным ситуациям вплоть до включения Bluetooth или А могут быть и более непонятные случаи.

Работа COM-порта

Для COM-портов в качестве основы используется микросхема асинхронного универсального приемопередатчика. Эта микросхема существует в нескольких разновидностях: Intel 16550A, 16550, 16450, 8250. Для каждого COM-порта она содержит регистры приемника и передатчика данных, а также ряд управляющих регистров, к которым есть доступ через программы BIOS, Windows и MS DOS. У последних версий микросхемы имеется набор буферов для временного хранения передаваемых и получаемых данных. Благодаря такой возможности можно реже прерывать работу центрального процессора, а также согласовать скорость трансляции данных.

Основные параметры

Устройство COM-порта предполагает наличие таких характерных особенностей:

Базового адреса порта для ввода и вывода информации;

Номера аппаратного прерывания;

Размера одного блока информации;

Скорости, с которой передаются данные;

Режима детектирования честности;

Способа управления потоками информации;

Количества стоповых бит.

Как проверить COM-порт компьютера? На что обратить внимание?

Как уже было сказано ранее, этот тип порта представляет собой двунаправленный интерфейс для на битовом уровне последовательным способом. Отличительной характеристикой в сравнении с параллельным портом тут является передача данных бит за битом. Анатомия COM-порта такова, что на компьютере не он один использует последовательный способ передачи данных. Например, такие интерфейсы, как Ethernet или USB, тоже используют аналогичный принцип, но так сложилось исторически, что последовательным принято называть именно порт стандарта RS232.

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

Читатель нашего сайта Максим, спрашивает:

Здравствуйте! Сможете ли вы мне помочь решить задачку? Суть ее: есть программа, которая генерирует сигнал и передает ее на COM Port на ПК №1, необходимо принять этот сигнал на ПК №2, данные на который поступают через COM Port. При этом в наличии только локальная сеть между этими ПК. Даст ли результат соединение этих 2-х COM Port между собой?

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

Сборка нуль-модемного com-кабеля

Речь пойдет о так называемом нуль-модемном кабеле. Когда сетевые карты стоили очень дорого, а связываться друг другом локальной сетью хотелось, был изобретен Com Lan Link - сеть, работающая через com-порты. Она стоила практически копейки, делалась полностью своими руками и могла работать на расстояниях до 1 км. Единственным ограничением, как вы понимаете, была скорость, т.к. для com-порта она не может превышать 115,2 Кбит/сек. Естественно, для такого типа соединения характерна работа только на уровне приложений, без всяких промежуточных сетевых ОС и прочих премудростей, т.е. Com Lan Link - это самый простой способ сетевого соединения. Для связи компьютеров в Com Lan Link используется специальный кабель, который мы сегодня соберем. Для начала рассмотрим распайку com-порта (типа «мама»):

Идея нуль-модемного кабеля очень проста: все «симметричные» сигналы перекидываем крест-накрест, т.е.: TXD-RXD, DTR-(DSR,CD), CTS-RTS, GND-GND. Но можно поступить еще проще. Основными для нас будут TxD, RxD и Ground. Остальные можно замкнуть локально на самом порту и сэкономить провод. (Во времена DOOM именно так и делали. Такой провод в народе именовался «шнурком».) Это, конечно, не очень хорошо, т.к. не будет работать аппаратное управление потоком, но в большинстве случаев оно не требуется. Что касается длины провода, то без специального репликатора она может составлять до 30 метров. Сами провода могут быть любыми - вплоть до телефонной лапши. Приведу схему простейшего нуль-модемного кабеля:

Для сборки нам потребуется два com-разъема типа «мама», три провода и паяльник. Сначала лучше припаять основные провода, а затем закоротить необходимые ножки с помощью дополнительных. После того, как все готово, выключаем оба компьютера и вставляем концы кабеля в разъемы. Лучше полностью отключить ПК от сети или дотронуться разъемом до корпуса перед подключением. Для такого типа соединения перезагрузка обязательна - система должна инициализировать порты. Кстати, если самому лень паять, можно купить готовый нуль-модемный кабель. Их можно найти на радиоточках и в радиодеталей. В Минске видел на Ждановичах.

Также хороший материал на тему передачи данных через com есть . Целая лабораторная работа. А люди делятся практическим опытом передачи данных через такое соединение средствами OS Linux.

Итак, из приведенных материалов, становится понятно, что com-to-com это старейший и простейший способ соединить два компьютера между собой. Отсюда следует однозначный ответ к задаче:

Да, передача данных между двумя компьютерами через COM-порт возможна. Такое соединение называется нуль-модемным и является простейшим вариантом локальной сети.

В системе «Орион» интерфейс RS-232 используется для подключения пульта контроля и управления «С2000»/«С2000М» к СОМ-порту компьютера с установленным на нем АРМ «Орион»/«Орион Про».
В системах, допускающих работу под управлением АРМ «Орион»/«Орион Про» без резервирования пультом «С2000»/«С2000М» (например, в системах охранной сигнализации или контроля доступа), интерфейс RS-232 используется для подключения преобразователя интерфейса «С2000-ПИ» или «ПИ-ГР» к СОМ-порту компьютера. К преобразователю, в свою очередь, подключаются приборы системы «Орион» по интерфейсу RS-485. RS-232 имеет следующие ограничения: максимальная длина – 15 м и соединение только типа «точка-точка», т.е. непосредственно подключить несколько пультов к одному СОМ-порту нельзя.
В простейшем случае к компьютеру подключается только один пульт. Эта схема приведена на рис.

Недостатком такой схемы является отсутствие гальванической изоляции между приборами и компьютером. Схема подключения пульта к компьютеру с использованием повторителя интерфейсов «С2000-ПИ», обеспечивающего гальваническую изоляцию, приведена на рис.

ВНИМАНИЕ! Во избежание гальванической связи между компьютером и приборами пульт, повторитель и приборы нельзя подключать к одному источнику питания. Питание на пульт и «С2000-ПИ» должно подаваться от отдельного источника.
Пульту должен быть присвоен сетевой адрес, и установлен режим «КОМПЬЮТЕР» для работы по интерфейсу RS-232.

С помощью преобразователей интерфейсов RS-232/RS-485 с автоматическим переключением приема/передачи (например, «С2000-ПИ») можно подключить несколько пультов к одному СОМ-порту компьютера. Один преобразователь следует подключить к СОМ-порту компьютера, остальные - к пультам по интерфейсу RS-232, а затем объединить преобразователи по интерфейсу RS-485 (см. схему на рис. 73). Кроме того, преобразователи обеспечат гальваническую изоляцию компьютера от пультов и приборов.
Для работы по интерфейсу RS-232 каждому пульту нужно задать уникальный сетевой адрес и режим «КОМПЬЮТЕР».
При использовании АРМ «Орион» к одному СОМ-порту можно подключить до 127 устройств. Либо это будет один пульт «С2000»/ «С2000М» и до 126 приборов, схема как на рисунках выше. Либо это будет несколько пультов с подключёнными приборами, как на рис.

При этом общее количество и пультов, и приборов не должно превышать 127. В такой системе все приборы и пульты должны иметь уникальные сетевые адреса от 1 до 127, т.е. адреса приборов, подключенных к разным пультам, не должны пересекаться.
При использовании АРМ «Орион Про» к каждому COM-порту можно подключить либо до 127 приборов (приборы подключаются через преобразователи интерфейсов «ПИ-ГР», «С2000-ПИ» или «C2000 USB»), либо до 127 пультов «С2000» или «С2000М». К каждому пульту при этом можно подключить до 127 приборов. При организации системы по второму варианту компьютер опрашивает не приборы, а пульты. Пульты, в свою очередь, опрашивают подключённые к ним приборы. Каждому пульту должен быть задан сетевой адрес (от 1 до 127). Адресация приборов в системе имеет 3 уровня (номер COM-порта, адрес пульта, адрес прибора), поэтому адреса приборов, подключённых к разным пультам, могут пересекаться, как и адреса пультов, подключённых к разным COM-портам компьютера. Максимальное количество устройств, подключаемых к одному компьютеру с «Оперативной задачей Орион Про», на сегодняшний день составляет 1024.
Как уже было сказано, такая схема применяется в случае, если к COM-порту нужно подключить несколько устройств. На текущий момент АРМ «Орион» поддерживает только один СОМ-порт. АРМ «Орион Про» поддерживает до 20 физических СОМ-портов и до 127 виртуальных СОМ-портов. При использовании АРМ «Орион Про» каждый пульт можно подключать к своему COM-порту (используя схему с гальванической изоляцией или без).

В настоящее время не все компьютеры имеют СОМ-порт. Для решения задачи подключения приборов системы «Орион» к компьютеру с АРМ можно применить USB-COM преобразователи, например, «USB-RS485», а также PCI-плату расширения портов. Основные достоинства данных PCI-плат:

  • возможность использовать до 8 COM-портов;
  • поддержка интерфейса RS-232/RS-485.

Специалистами компании «Болид» была протестирована плата расширения COM-портов MOXA CP 118U. Она позволяет подключать приборы по интерфейсу RS-485 напрямую к ПК с АРМ «Орион Про» (без использования преобразователя интерфейса), а также подключать несколько пультов (каждый к своему СОМ-порту).

Подключение приборов к компьютеру через пульты «С2000»/«С2000М» позволяет б|ольшую часть функций управления приборами переложить с АРМ на пульты. Здесь важно учитывать, что каждый пульт может управлять только подключёнными к нему приборами, поэтому взаимодействие приборов, подключённых к разным пультам, возможно только через АРМ. При неисправности компьютера каждый пульт будет управлять подключёнными к нему приборами в соответствие с запрограммированной в нем базой данных. То есть система распадается на несколько независимых подсистем.

Полученные от приборов сообщения сохраняются в кольцевом энергонезависимом буфере пультов, объем которого составляет 8000 событий (для «С2000М» вер.3.0х). При восстановлении работы компьютера эти сообщения будут вычитаны АРМ.

Допустим, в системе используется несколько приборов «С2000-КДЛ», релейных блоков «С2000-СП1», клавиатур «С2000-К» и блоков индикации «С2000-БИ». Причём из-за ограниченного размера базы данных пульта требуется использовать несколько пультов «С2000»/«С2000М». Каждый пульт организует взаимодействие только подключённых к нему приборов. В частности, он позволит отображать на блоках индикации состояния своих разделов, управлять этими разделами с клавиатур и с самого пульта, автоматически управлять релейными выходами своих блоков «С2000-СП1» от своих разделов. Взаимодействие приборов, подключённых к разным пультам, возможно только через АРМ. При отключении компьютера с работающим на нем АРМ эта связь нарушается. Поэтому если требуется, например, организовать релейный выход, который должен отрабатывать состояние всех шлейфов сигнализации системы, и этот выход должен работать при отключении компьютера, лучше его организовать путём монтажного объединения выходов каждой подсистемы (параллельного или последовательного, в зависимости от требуемой тактики работы выхода).

При подключении к АРМ нескольких подсистем следует использовать пульты «С2000М», так как при использовании пультов «С2000» будут следующие ограничения:

  1. Невозможно организовать централизованный контроль доступа;
  2. Управлять взятием/снятием с охраны разделов с клавиатур «С2000-К» и блока «С2000-4», прибора «С2000-КДЛ» и т.п. можно только в рамках одной подсистемы на пульте «С2000». Это означает, что с какой-либо клавиатуры «С2000-К» можно управлять взятием/снятием с охраны разделов того пульта, к которому подключена клавиатура. Управление с этой клавиатуры приборами, подключёнными к другим пультам, невозможно. Из оперативной задачи АРМ можно управлять взятием/снятием с охраны разделов всех подсистем. При использовании пульта «С2000М» первое ограничение снимается. Что касается второго, то можно управлять взятием/снятием с охраны разделов одной подсистемы с помощью всех приборов другой подсистемы, за исключением клавиатур «С2000-К». Например, используя считыватели устройств «С2000-4», «С2000-2», «С2000-КДЛ». Также можно управлять взятием/снятием с охраны разделов одной подсистемы с пульта «С2000М» другой подсистемы. Клавиатуры «С2000-К» так же, как и в первом случае, работают только в рамках своей подсистемы.

Помимо схемы, представленной на предыдущем рисунке, подключить несколько пультов «С2000М» к компьютеру с АРМ можно при помощи ЛВС и преобразователей «С2000-Ethernet».

Основными достоинствами ЛВС являются:

  • повсеместное использование сетей Ethernet;
  • высокая помехозащищенность;

Также при использовании «С2000-Ethernet» возможно объединение приборов ИСО «Орион» через глобальную сеть Internet используя VPN туннель.

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

В «С2000-Ethernet» имеется поддержка прямой передачи данных по ЛВС, т.е. на стороне ПК с АРМ используется только сеть Ethernet, а ПО формирует один виртуальный COM-порт для группы удаленных «C2000-Ethernet» (см. рис.). При этом повышается быстродействие и упрощается монтаж системы, т.к. на стороне АРМ нет необходимости использовать COM-порт.

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

Ещё одним вариантом подключения пульта «С2000М» к компьютеру с АРМ является использование волоконно-оптической линии связи и преобразователей «RS-FX-MM» (для многомодовых ВОЛС), «RS-FX-SM40» (для одномодовых ВОЛС).

Основные достоинства ВОЛС:

  • высокая помехозащищенность;
  • искро-взрывобезопасность;
  • высокая скорость передачи данных.

Компания «Болид» поставляет сертифицированные в соответствии с преобразователи информационных интерфейсов ИСО «Орион» в ВОЛС, которые могут применяться в том числе в системах АПС и пожарной автоматики. Максимальная длина передачи данных для преобразователя «RS-FX-MM» составляет 2 км, для преобразователя «RS-FX-SM40» - 40 км.

Организовать связь сетевого контроллера (компьютера с установленным АРМ «Орион»/ «Орион Про» или пульта «С2000»/«С2000М») с удаленными приборами ИСО «Орион» можно также с помощью стандартного цифрового канала связи в потоке Е1.

Основными достоинствами цифровых каналов связи являются:

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

Специалистами компании «Болид» была проверена работа системы «Орион» с применением мультиплексоров «ГМ-2» фирмы «Зелакс» для передачи сообщений по цифровому каналу связи в потоке Е1.

Это более новый, хотя тоже уже отмирающий способ. Так же, как LPTпоследовательныеCOMпорты тоже уже применяются все реже и безусловно в скором времени они выдут из употребления. Работать сCOMпортом значительно сложнее, чем сLPT. СтандартныйCOMпорт имеет гораздо меньше выводов. И прямое управление возможно лишь некоторыми из них. Использовать их не имеет смысла. Лучше тогда уж воспользоваться более богатым в этом смысле портомLPT. Передача информации вCOMпорте происходит всего по двум линиям. Это линияRxD(прием данных), и линияTxD(передача данных). Для передачи данных используется специальный протокол, который называетсяRS232. Большинство современных микроконтроллеров имеют встроенный интерфейс, совместимый сRS232. Это облегчает подключение. Однако есть одна трудность. Полноценный протоколRS232 предусматривает свой собственный стандарт уровней выходных и входных сигналов. Сигнал на выходеTxDCOM-порта принимает два значения: логическая единица - плюс 12В, логический ноль - минус 12В. Такой размах принят для уменьшения влияния помех. Такой же сигнал нужно подавать и на входRxD. Последовательный канал микроконтроллера поддерживает другие значения уровней сигнала. Там сигнал используются стандартные логические уровни. Логический ноль - 0В. Логическая единица – примерно +5В. Поэтому для связиCOMпорта и микроконтроллера необходимо согласовать уровни сигналов. Для этого обычно применяется специальная микросхема фирмыMAXIM. Это микросхема называетсяMAX232A. Это очень удобная в использовании микросхема. Она требует лишь одного напряжения питания: +5В. Внутри микросхема содержит два преобразователя, которые используются для получения необходимых для работы напряжений +12В и -12В.

3. Подключение при помощи usb порта

Несомненно, это самый перспективный способ подключения. В то же время и самый сложный с точки зрения программной реализации. USBпорт был специально разработан, как универсальный последовательный порт для подключения всех видов внешних периферийных устройств. При помощи этого порта к компьютеру могут подключаться внешние накопители на жестких дисках и на Флэш-памяти, джойстики, мышки, звуковые системы,WEB-камеры,MP3 плееры и даже внешниеTV-тюнеры. Действующий в настоящее время стандартUSBверсии 2.0 поддерживает передачу данных со скоростью от 1.5 Мбит/сек до 480 Мбит/сек. Сложность реализации этого способа состоит в том, что протоколUSB– это серьезный многоуровневый протокол передачи информации. Самый низкий уровень этого протокола определяет правила касающиеся формирования импульсов: длительность, размах, способ кодирования данных, методы синхронизации, методы проверки ошибок. На низком уровне так же определяется, как биты складываются в байты. Следующий, более высокий уровень касается передачи самих данных. Ведь передаются не просто байты. Из этих байтов складываются команды протоколаUSB. ПротоколUSBвысокого уровня – это набор команд, позволяющих опрашивать подключенные к порту внешние устройства, запрашивать у этих устройств информацию об их типе, названии, изготовителе, поддерживаемых режимах работы. Если вы работали сUSB, то наверно заметили, что при подключении кUSBнакопителя на жестком диске компьютер тот час же обнаружит его и в списке дисков появится еще один диск. При отключении накопителя от порта он тут же исчезнет из списка. При подключении звукового устройства, в списке звуковых устройств появится новое устройство. Так же происходит и при подключении фотоаппарата, сканера, джойстика и т.п. Все эти типы устройств портUSBраспознает автоматически потому, что в списке стандартных командUSBпротокола есть команды, позволяющие все это идентифицировать. Поэтому, устройство, подключаемое к компьютеру поUSBпорту должно уметь поддерживать весь этот протокол. Оно должно правильно отвечать на все запросы компьютера.

Но это не единственная проблема. Более серьезная проблема – слишком высокая скорость работы USBинтерфейса. Это так же накладывает определенные ограничения и дополнительные требования. Для подключения микроконтроллера к компьютеру по каналуUSBсуществует три способа. Рассмотрим их по порядку.