Как создать COM-порт: виртуальные порты и настройка в Windows

Устройство подключено через USB-COM переходник, а нужная программа видит только порты COM1–COM4 и отказывается работать с присвоенным системой COM17 — типичная ситуация, из-за которой требуется создать или переназначить COM-порт вручную. Проблема решается либо сменой номера порта в диспетчере устройств, либо созданием виртуального порта специальной утилитой.

COM-порт (последовательный порт, RS-232) до сих пор активно используется для подключения промышленного оборудования, кассовых аппаратов, сканеров штрих-кодов, GPS-модулей, диагностических адаптеров и микроконтроллеров вроде Arduino. В этой статье разберём все рабочие способы: от переназначения номера существующего порта до создания пары связанных виртуальных портов для тестирования программ.

Что такое COM-порт и когда его нужно создавать

COM-порт — это программный интерфейс последовательной передачи данных. Физически он может быть реализован как классический разъём DB9 на материнской плате, так и как USB-устройство с микросхемой преобразователя (например, FTDI, CH340, CP210x, Prolific). Для операционной системы разницы нет: оба варианта отображаются в диспетчере устройств как «Порты (COM и LPT)».

Создать или переназначить порт приходится в нескольких типовых сценариях:

  • 🔌 Старое ПО жёстко привязано к номерам COM1–COM4, а адаптеру система присвоила высокий номер.
  • 🔁 Нужно протестировать программу без реального оборудования — через пару связанных виртуальных портов.
  • 🧩 Два устройства конфликтуют из-за одинакового номера порта.
  • 🛰️ Требуется пробросить порт GPS-приёмника или модема в несколько приложений одновременно.

Прежде чем что-то создавать, проверьте, какие порты уже есть в системе. Откройте Диспетчер устройств (клавиши Win + X → «Диспетчер устройств») и разверните ветку «Порты (COM и LPT)». Если устройство определилось с жёлтым восклицательным знаком — сначала нужно установить драйвер, а не создавать порт.

Как изменить номер существующего COM-порта

Самый простой случай: порт физически существует, но имеет неподходящий номер. Windows позволяет переназначить его штатными средствами, без сторонних программ.

Порядок действий:

  • 1️⃣ Откройте Диспетчер устройств и найдите ваш адаптер в разделе «Порты (COM и LPT)».
  • 2️⃣ Кликните по нему правой кнопкой → Свойства → вкладка Параметры порта.
  • 3️⃣ Нажмите кнопку Дополнительно (Advanced).
  • 4️⃣ В выпадающем списке «Номер COM-порта» выберите свободный номер, например COM2.
  • 5️⃣ Подтвердите изменения кнопкой «ОК» и переподключите устройство.

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

⚠️ Внимание: не назначайте один и тот же номер двум реально подключённым устройствам — оба перестанут корректно работать. Проверяйте актуальный список портов перед переназначением.

Создание виртуального COM-порта через com0com

Когда физического устройства нет, а программа требует порт — на помощь приходят эмуляторы. Самое известное бесплатное решение — com0com, драйвер с открытым исходным кодом. Он создаёт пару связанных виртуальных портов: всё, что записано в один, мгновенно читается из другого. Это удобно для отладки: одна программа «отправляет» данные, другая «принимает».

Общая последовательность установки такова: скачайте драйвер с официального репозитория проекта, установите его, затем запустите входящую в комплект утилиту настройки (setup). В ней создаётся пара портов с выбранными именами — например, COM10 и COM11, либо имена вида CNCA0 и CNCB0, которые можно переименовать.

install PortName=COM10 PortName=COM11

После создания пара появится в Диспетчере устройств в отдельной ветке com0com. Проверить связь просто: откройте два терминала (например, ПО типа PuTTY или HTerm), подключите один к первому порту пары, второй — ко второму, и отправьте текст. Он должен появиться в соседнем окне.

⚠️ Внимание: на 64-разрядных версиях Windows неподписанные драйверы могут блокироваться. Если com0com не устанавливается, ищите сборку с подписанным драйвером от актуальных сопровождающих проекта — использование режима отключения проверки подписи снижает безопасность системы и должно быть крайней мерой.

☑️ Проверка перед созданием виртуального порта

Выполнено: 0 / 5

Альтернативные программы для создания COM-портов

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

ПрограммаТипОсновная особенность
com0comБесплатная, open sourceПары связанных портов, работа из командной строки
Virtual Serial Port Driver (Eltima)ПлатнаяГрафический интерфейс, разделение и объединение портов
HW VSP3Бесплатная (для личного использования)Проброс COM-порта по TCP/IP-сети
com2tcp / hub4comБесплатныеСвязка виртуального порта с сетевым подключением

Выбор зависит от задачи. Для локальной отладки двух программ достаточно com0com. Если оборудование находится в другом помещении и подключено к удалённому компьютеру — нужен сетевой проброс, и тут логичнее решения класса HW VSP. Для промышленной эксплуатации, где важна стабильность и техподдержка, обычно выбирают коммерческие драйверы.

📊 С какой целью вы создаёте COM-порт?
Подключение промышленного оборудования
Отладка программы без железа
Работа с Arduino/микроконтроллером
Проброс порта по сети

Создание COM-порта для USB-устройств и Arduino

Отдельный частый случай — платы Arduino, ESP32 и USB-TTL адаптеры. Здесь порт «создаётся» автоматически при установке драйвера микросхемы-преобразователя. Если плата подключена, а порт не появляется, причина почти всегда в драйвере или кабеле.

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

Драйвер нужно ставить под конкретную микросхему преобразователя — она указана в документации к плате или видна на самом чипе. Распространённые варианты: CH340/CH341 (большинство недорогих клонов Arduino), CP2102 (многие платы ESP), FTDI (оригинальные адаптеры). Драйверы загружайте с сайта производителя чипа или по ссылке из документации к вашей плате.

Как узнать, какая микросхема стоит на адаптере

Откройте Диспетчер устройств, найдите неизвестное устройство, зайдите в Свойства → вкладка «Сведения» → выберите свойство «ИД оборудования». Значения вида VID_1A86 указывают на CH340, VID_10C4 — на Silicon Labs CP210x, VID_0403 — на FTDI. По этим кодам драйвер легко найти.

Типичные ошибки и их решение

Даже после успешного создания порта программа может выдавать ошибки вида «порт занят», «доступ запрещён» или «порт не найден». Разберём причины по порядку.

«Порт занят» (Access denied / Port in use). Порт уже открыт другим приложением — последовательный порт в Windows может обслуживать только одну программу одновременно. Закройте терминалы, мониторы порта, среды разработки и повторите попытку. Если найти виновника не удаётся, помогает перезагрузка.

Порт пропадает при переподключении. Windows присваивает номер по связке «устройство + USB-разъём». Тот же адаптер в другом разъёме получит новый номер. Решение — всегда использовать один и тот же порт USB либо вручную закрепить номер через «Дополнительно», как описано выше.

Данные идут, но в виде «мусора». Это не проблема создания порта, а несовпадение параметров связи: скорости (бодрейта), битов данных, чётности, стоп-битов. Сверьте настройки в программе с документацией к устройству — типичное значение скорости для многих плат — 9600 или 115200 бод, но гарантировать это для вашего оборудования нельзя, проверяйте по инструкции.

Как удалить созданный COM-порт

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

Виртуальные порты com0com удаляются через ту же утилиту настройки драйвера — командой remove с номером пары либо через графический интерфейс, если он использовался. Порты USB-адаптеров исчезают при удалении устройства в Диспетчере устройств (правый клик → «Удалить устройство»). Скрытые «призрачные» записи сначала нужно отобразить через меню Вид → Показать скрытые устройства.

После чистки перезагрузите компьютер и подключите устройство заново — оно получит минимальный свободный номер.

Часто задаваемые вопросы

Можно ли создать COM-порт без сторонних программ?

Штатными средствами Windows можно только переназначить номер уже существующего порта через Диспетчер устройств. Полноценный виртуальный порт без физического устройства создаётся только сторонним драйвером — например, com0com.

Почему программа не видит порт с номером выше COM9?

Это ограничение старого ПО: некоторые приложения некорректно обрабатывают двузначные номера. Решение — переназначить устройству номер из диапазона COM1–COM9 через «Свойства → Параметры порта → Дополнительно» в Диспетчере устройств.

Безопасно ли использовать com0com?

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

Что делать, если адаптер определяется, но данные не идут?

Проверьте три вещи: не занят ли порт другой программой, совпадают ли параметры связи (скорость, чётность, стоп-биты) с настройками устройства и исправен ли кабель. Также убедитесь, что линии RX/TX при самостоятельном подключении не перепутаны — при кросс-соединении TX одного устройства идёт на RX другого.

Как узнать, какой номер получил подключённый адаптер?

Откройте Диспетчер устройств и разверните ветку «Порты (COM и LPT)» — рядом с названием адаптера в скобках указан номер, например «USB Serial Port (COM5)». Можно также отключить и снова подключить устройство, наблюдая, какая строка появляется и исчезает.