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

Просмотр открытых и закрытых портов

Чтобы посмотреть все входные номера, которые используются, заблокированы или ждут своей очереди – можно через консоль. В Windows достаточно зайти в командную строку: для этого нажимаем на кнопки и R и прописываем команду «cmd». Далее нужно будет ввести:

netstat -a

В Kali Linux прописываем другую команду:

less /usr/share/nmap/nmap-services

Для удобства я все же советую использовать удобную программку «Process and port analyzer». Она в более удобном виде выводит все задействованный список портов на данном устройстве. Вы можете посмотреть зарезервированные, свободные и используемые номера.

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

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

Описание интерфейса RS-422

Интерфейс RS-422 похож на RS-232, т.к. позволяет одновременно отправлять и принимать сообщения по отдельным линиям (полный дуплекс), но использует для этого дифференциальный сигнал, т.е. разницу потенциалов между проводниками А и В.

Скорость передачи данных в RS-422 зависит от расстояния и может меняться в пределах от 10 кбит/с (1200 метров) до 10 Мбит/с (10 метров).

В сети RS-422 может быть только одно передающее устройство и до 10 принимающих устройств.

Линия RS-422 представляет собой 4 провода для приема-передачи данных (2 скрученных провода для передачи и 2 скрученных провода для приема) и один общий провод земли GND.

Скручивание проводов (витая пара) между собой позволяет избавиться от наводок и помех, потому что наводка одинаково действует на оба провода, а информация извлекается из разности потенциалов между проводниками А и В одной линии.

Напряжение на линиях передачи данных может находится в диапазоне от -6 В до +6 В.

Логическому 0 соответствует разница между А и В больше +0,2 В.

Логической 1 соответствует разница между А и В меньше -0,2 В.

Стандарт RS-422 не определяет конкретный тип разъема, обычно это может быть клеммная колодка или разъем DB9.

Распиновка RS-422 зависит от производителя устройства и указывается в документации на него.

При подключении устройства RS-422 нужно сделать перекрестие между RX и TX контактами, как показано на рисунке.

Т.к. расстояние между приемником и передатчиком RS-422 может достигать 1200 метров, то для предотвращения отражения сигнала от конца линии ставится специальный 120 Ом согласующий резистор или «терминатор». Этот резистор устанавливается между RX+ и RX- контактами в начале и в конце линии.

Как проверить работу RS-422?

Для проверки устройств с RS-422 лучше воспользоваться конвертером из RS-422 в RS-232 или USB (I-7561U). Тогда вы сможете воспользоваться ПО для работы с СОМ портом.

Отправка данных

Когда мы нажимаем кнопку «Отправить», текущее значение поля NumericUpDown должно быть отправлено через COM-порт. Для этого создаем еще одно событие двойным щелчком в дизайнере. Вот следующий код:

private void butSend_Click(object sender, EventArgs e)
{
if (port.IsOpen)
{
DodajKolorowy(rtbTerminal, ((Int32)numericSend.Value).ToString(«X») + » «, System.Drawing.Color.Black);
Byte[] tosend = { (Byte) numericSend.Value};
port.Write(tosend, 0, 1);
}
else System.Windows.Forms.MessageBox.Show(«Для отправки байта необходимо установить соединение»);
}

1
2
3
4
5
6
7
8
9
10

privatevoidbutSend_Click(objectsender,EventArgse)

{

if(port.IsOpen)

{

DodajKolorowy(rtbTerminal,((Int32)numericSend.Value).ToString(«X»)+» «,System.Drawing.Color.Black);

Bytetosend={(Byte)numericSend.Value};

port.Write(tosend,,1);

}

elseSystem.Windows.Forms.MessageBox.Show(«Для отправки байта необходимо установить соединение»);

}

Здесь стоит отметить несколько моментов. Во-первых, функция ToString с аргументом «X» преобразует числа типа int в шестнадцатеричный код. Условие if-else предотвращает попытку отправки сообщения при неактивном соединении. Теперь давайте сосредоточимся на функции AddColor. Изменение цвета шрифта необходимо, поскольку исходящие, входящие и статусные сообщения должны отображаться в одном текстовом поле. Однако, если мы попробуем сделать это обычным способом и добавим текст xxx.Text + = «string»; предыдущий текст также изменит цвет, полностью испортив эффект. Следовательно, вам нужно обойти проблему с помощью дополнительной функции, которая использует команду AppendText :

private void Добавить цвет(System.Windows.Forms.RichTextBox RichTextBox, string Text, System.Drawing.Color Color)
{
var StartIndex = RichTextBox.TextLength;
RichTextBox.AppendText(Text);
var EndIndex = RichTextBox.TextLength;
RichTextBox.Select(StartIndex, EndIndex — StartIndex);
RichTextBox.SelectionColor = Color;
}

1
2
3
4
5
6
7
8

privatevoidДобавитьцвет(System.Windows.Forms.RichTextBox RichTextBox,stringText,System.Drawing.Color Color)

{

varStartIndex=RichTextBox.TextLength;

RichTextBox.AppendText(Text);

varEndIndex=RichTextBox.TextLength;

RichTextBox.Select(StartIndex,EndIndex-StartIndex);

RichTextBox.SelectionColor=Color;

}

Зная начальную и конечную длину текста в поле, мы выбираем данную часть строки, а затем меняем цвет только выбранной части. Это позволит обойти проблему окрашивания всего текста стандартной функцией String. Поскольку она нам понадобится в нескольких местах, создание функции, подходящей для этого, является для нас спасением.

Как создать виртуальные порты?

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

Скачайте и установите программу Advanced Virtual COM Port. Установка занимает считаные минуты, при этом на одном из этапов нам предложат драйвер:

Программа для настройки виртуального com-порта в windows

Соглашаемся и нажимаем «Установить». Следует подождать несколько минут — не пугайтесь, если потребуется 5–10 минут. Это нормально.
После установки, заходим в программу и видим главное окно:

Кернел про -для настройки виртуального com-порта в windows

Оно содержит три основных вкладки: Общие (расширенные), клиентские и локальные порты.

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

Перейдём во вкладку локальные порты и нажмём кнопку Add. Перед нами откроется окно, предлагающее создать пару COM-портов, которые предполагаются быть соединёнными виртуальным нуль-модемным кабелем:

Создание виртуального com-порта в windows7

Жмём ОК. Переходим в Панель управления -> Система -> Диспетчер устройств.
Видим, что наши COM-порты были успешно созданы:

Виртуальные com-порты windows

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

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

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

Ввод и общие порты

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

Последовательный порт (Serial Port)

Несмотря на то, что последовательными портами называется целая группа портов, включая PS/2, есть еще одно значение у этого термина. Он используется для обозначения интерфейса совместимого со стандартом RS-232. К таким интерфейсам относятся DB-25 и DE-9.

DB-25 — это вариант разъема D-Sub изначально разработанный в качестве основного порта для соединения по протоколу RS-232. Но большинство устройств используют не все контакты.

Затем был разработан DE-9, который работал по тому же протоколу, а DB-25 стал использоваться чаще для подключения принтера вместо параллельного порта. Сейчас DE-9 — это основной последовательный порт, работающий по протоколу RS-232. Его также называют COM портом. Этот разъем все еще иногда применяется для подключения мыши, клавиатуры, модемов, ИБЛ и других устройств, работающих по этому протоколу.

Сейчас интерфейсы подключения устройств компьютеру DB-25 и DE-9 применяются все реже, потому что их вытесняет USB и другие порты.

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

RCA (композитное видео)

Один из самых старых примеров видеовхода. Композитный интерфейс изобрали еще в пятидесятых годах прошлого века — тогда, когда появились первые цветные телевизоры. Многие старые ТВ и мониторы использовали RCA, но теперь найти такой порт в материнских платах невозможно. Встретить его можно либо в специализированном «железе», либо в очень старых ПК.

VGA

Video Graphics Array — еще один старый (но не такой старый, как RCA) видеовыход, через который сигнал когда-то выводили на мониторы. Это коннектор с 15 пинами и двумя винтами по бокам, которые обеспечивали его надежное крепление. Первые VGA начали использовать в 1987 году, и сейчас встретить их тоже очень сложно — для вывода видео в современных системах используются HDMI и DisplayPort. Впрочем, для совместимости со старыми дисплеями DVI все-таки иногда добавляют.

Как можно догадаться из названия, через DVI-коннектор передается только видео — без звука.

S-Video

Этот порт тоже разработали в 1987 году — это гораздо более продвинутая версия RCA с четырьмя пинами и возможностью передачи только видеосигнала. Найти такой коннектор на современном компьютере не получится.

Mini-VGA

Это уменьшенная и более компактная версия стандартного VGA, которая раньше часто встречалась на ноутбуках. Mini-VGA имеет меньше пинов и занимает меньше места, чтобы умещаться даже на небольших девайсах. Как и в случае с VGA, Mini-VGA найти сейчас практически невозможно — HDMI и DisplayPort его полностью заменили.

DVI

DVI разработали в конце девяностых годов двадцатого века с целью замены VGA. Digital Video Interface имеет 24 пина и бывает трех видов — DVI-D (только цифровой сигнал), DVI-A (только аналоговый сигнал; больше всего похож на VGA) и DVI-I (поддерживает и аналоговый, и цифровой сигналы; на картинке сверху).

Ограничения DVI очень заметны на современных экранах. Так, DVI-D Single Link не имеет шести средних пинов и может выдавать только до 2048х1152 точек с частотой развертки до 60 Гц, а DVI-D Dual Link — до 2560х1600 точек с частотой развертки до 60 Гц.

По сути, DVI был революционной альтернативой VGA, но и он уже успел устареть.

Mini-DVI

Этот коннектор был разработан Apple специально для ее компьютеров PowerBook, MacBook и iMac начала двухтысячных годов. Потребители и эксперты сильно критиковали такое решение — так, для того, чтобы выводить сигнал на внешние мониторы, требовался специальный адаптер.

Нужно ли говорить, что популярность Mini-DVI так и не снискал, и сейчас он полностью и окончательно забыт?

Micro-DVI

Как и Mini-DVI, Micro-DVI был разработан инженерами Apple — ноутбуки корпорации из Купертино становились все меньше, и им требовался все более компактный порт для вывода видеосигнала. Здесь история такая же, как и с Mini-DVI — жесткая критика, необходимость использования адаптера и полное забвение.

HDMI

Этот порт разработали в начале двухтысячных как универсальный интерфейс для передачи как видео, так и аудио в цифровом виде. Сейчас High-Definition Multimedia Interface — один из самых распространенных интерфейсов как в компьютерах, так и в домашней электронике.

Иногда можно встретить уменьшенные версии HDMI — Mini-HDMI и Micro-HDMI. Они не отличаются популярностью из-за своей хрупкости, но иногда их использование обосновывается компактностью девайсов (например, камер или планшетов).

Более подробно о версиях HDMI (это очень важно!) можно почитать в нашей статье об HDMI 2.1

DisplayPort

HDMI — очень популярный и гибкий интерфейс, но у него есть свои ограничения. К примеру, он не так хорошо подходит для экранов высокого разрешения (если речь не идет об HDMI 2.1) и систем с несколькими мониторами. А еще за использование HDMI производителям приходится платить ощутимые ощущения.

DisplayPort разработали в 2006 году с целью устранения этих ограничений — как ультимативный порт для передачи практически любых данных. Это надежный и очень способный интерфейс, который сейчас можно встретить практически в любом мониторе и на любой видеокарте. DisplayPort 2.0 поддерживает вывод картинки в разрешении 8K с частотой до 60 Гц.

Mini-DisplayPort

Еще один интерфейс, созданный Apple. Mini-DisplayPort заменил micro-DVI и до недавнего времени встречался на большинстве MacBook, а также на некоторых ноутбуках с Windows и даже полноразмерных видеокартах для ПК. Теперь он заменен на Thunderbolt — так, Thunderbolt 1/2 используют тот же физический коннектор, но могут передавать не только видео и аудио.

WINDOWS

There is an absolutely brilliant free opensoure solution that can be used for comport forwarding, client and server for windows. It is called com0com. It actually consists of two parts a HUB (hub4com) and kernel-mode virtual serial port driver (com0com) — explained further.

Server

For the server you need only hub4com.

Configuration (I just cite the documentation):

You have a server computer with phisical COM1 port and you’d like to share it
through the network by the RFC 2217 «Telnet Com Port Control Option» protocol:

Start the com2tcp-rfc2217.bat on COM1 port. For example:

com2tcp-rfc2217 COM1 7000

It will listen TCP/IP port 7000 for incaming connections and redirect them to COM1 port.

Client

To be a windows client you have to install com0com virtual comport driver and hub4com (provided as 2 separate files).

Create a PAIR of virtual comports where one is used for RFC2217 and the other is the port for your application will use.

(documentation citation) for RFC 2217 client :

You have a server computer your.comport.server with physical serial port
shared through the network by the RFC 2217 protocol (see above example) and
you’d like to use it on the client computer like a virtual serial port.

With the com0com’s Setup Command Prompt create COM19<->COM20 virtual
COM port pair (see com0com’s ReadMe.txt for more info). For example:

Example. Start the com2tcp-rfc2217.bat on COM19 port:

It will redirect virtual serial port COM20 on the second computer to the physical serial port on the first computer.

Explanation

It is bit counter intuitive why a virtual pair is created.
To explain what happens, imagine we create a virtual comport pair: COM19<->COM20 as in the example above.
The reason one needs a pair is that only one thing can be connected to a COM port. If hub4com binds network data
to COM19, then the port is taken and your application can’t connect to it. So virtual comport pair mirrors everything
from COM19 to COM20, which is free and your application can connect to it.

So, the more detailed client diagram looks like this now:

Driver Signature

Deprecated part — com0com 3.0.0 comes with driver signarure. Unfortunately on newer windows (since 2018) this doesn’t help.

There are 3 solutions:

  • Disable driver signature verification (bad)
  • Use version 2.2 (it works)

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

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

Токовая петля

Историческая справка

До начала 1960-х в телепринтерах для связи на большие расстояния применялась токовая петля 60мА. В 1962 была представлена модель 33 телетайпа с 20мА токовой петлей. После этого этот интерфейс стал широко использоваться. На протяжении 60-х, 70-х и 80-х интерфейс 20мА токовая петля применялся во многом оборудовании. Этот интерфейс стал популярным из-за его низкой цены при использовании на больших расстояниях, а также высокой помехоустойчивостью передачи данных.

Описание

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

Этот стандарт позволяет передавать данны на расстояния до 600 м со скоростью до 19.2 кБод.

Основные особенности

  • большая дальность чем у RS-232
  • помехоустойчивость передачи данных
  • расстояния до 600 м
  • скорость передачи до 19.2 кБод

Полнодуплексная схема

Одновременная двунаправленная передача данных возможна по этой схеме. Для этого режима необходимы два генератора тока 20мА. Например, карта IBM адаптера последовательного интерфейса имеет в своем составе только один генератор тока. В этом случае для создания полного соединения второе устройство должно иметь генератор тока для создания второй токовой петли.

Полнодуплексная схема 20 mA

Симплексная схема 20 мА

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

Симплексная схема 20 mA (возможна только поочередная передача данных)

Сранение уровней сигналов RS-232 и 20мА токовой петли

На рис ниже представлены уровни сигналов интерфейса RS-232 и их соответствие с интерфейсом токовой петли 20 мА. Для токовой петли наличие тока соответствует пассивному состоянию (отсутствие передачи данных).

Сравнение уровней RS-232 и 20мА токовой петли

Схема преобразователя аналоговой токовой петли 4- 20 мА

Эта схема упоминается здесь потому, что иногда ее путают с 20мА токовой петлей. Назначение данной схемы — передача сигнала от удаленного аналогового датчика через токовой сигнал. Для передачи сигнала требуется только два провода и источник питания датчика. Для питания датчика используется источник напряжения 24В. Удаленный датчик изменяет ток в петле в соответствии с измеренным параметром. На последовательном резисторе RL этот ток преобразуется в напряжение, которое далее может быть обработано.

Схема преобразователя аналоговой токовой петли 4 — 20 мА

HART 4 — 20 мАтоковая петля

Это другой пример комбинирования аналоговой и цифровой токовой петли схемы 4 — 20 мА. Для этой токовой петли применяется коммуникационный протокол HART. HART протокол используется для интеллектуальных удаленных преобразователей, совместимых с аналоговой токовой петлей 4-20 мА, а также имеющих цифровой обмен по тем же проводам. Это осуществляется за счет применения двухтонального частотного сигнала (FSK) сигнала с уровнями 4-20 мА.

Схема аналоговой токовой петли 4 к 20 мА с цифровой передачей данных по HART протоколу

Расширение функционала

PCMCIA

PCMCIA, который называют PC Card (что связано с неоднозначностью расшифровки аббревиатуры PCMCIA), является устаревшим стандартом. Изначально разъемы данного типа предназначались для расширения памяти ноутбука, поэтому первые версии интерфейса не были универсальными. Да и разъемов PCMCIA на ноутбуках в то время часто было два.

Технология

Разъем PC Card представляет собой щель шириной 54 мм, которая закрыта либо откидной шторкой, либо пластиковой заглушкой. Современный стандарт PC Card поддерживает режимы Bus Master (отсюда название Card Bus) и совместим со стандартом PCI.

Механически предусмотрено три основных типа разъемов PC Card:

  • Тип I ( Type I ) – 16-разрядный интерфейс, предназначенный для расширения памяти. Карты имели толщину не более 3.3 мм и оснащались одним рядом контактов.
  • Тип II ( Type II ) – 16- и 32-разрядный интерфейс с двумя рядами контактов. Толщина карт – 5 мм. Улучшенная совместимость, позволявшая подключать не только карты расширения памяти, но и устройства ввода-вывода.
  • Тип III ( Type III ) довольно редок. Предусматривалось 4 ряда контактов с поддержкой 16 или 32 разрядов, зато толщина карт могла достигать 10.5 мм, что позволяло, например, создать полноценный модем со стандартным портом RJ11.

Используемые ныне полноценные карты PC Card, поддерживающие DMA, не относятся ни к одному из указанных выше типов. От Type II лишь заимствован разъем и обратная совместимость с картами Type I/II. Протокол Card Bus основан на спецификациях шины PCI, что обеспечивает совместимость практически со всеми устройствами.

Ключевые особенности:

Универсальность. COM Port Data Emulator поддерживает следующие порты COM, RS232, RS485 (через конвертор), TCP/IP, UDP;

Поддержка полного дуплекса. Программа может одновременно отправлять и принимать данные (исключая RS485);

Гибкая конфигурация. Наш эмулятор поддерживает произвольные скорости передачи (до 115200), количество бит данных, количество стоповых битов, различные типы четности, контроль передачи данных и т.п.;

Контроль передачи данных. Поддерживается программный и аппаратный контроль передачи данных COM и RS232 портов;

Клиент/Сервер. Эта программа может работать как клиент и как сервер в сети TCP/IP;

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

Протокол. COM Port Data Emulator может создавать протокол отсылаемых данных для дальнейшего их сравнения на принимающей стороне;

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector