Как прослушать com порт windows 10
Перейти к содержимому

Как прослушать com порт windows 10

  • автор:

Настройка COM-портов

COM-порт — это тип последовательного порта, который соответствует следующим дополнительным требованиям:

  • Доступ к COM-порту осуществляется через экземпляр класса интерфейса устройства com-порта. Идентификатор GUID для этого класса GUID_DEVINTERFACE_COMPORT, который определен в ntddser.h.
  • Для работы с COM-портом используется интерфейс, совместимый с UART 16550, определенный в ntddser.h.
  • Чтобы обеспечить совместимость с большинством приложений, которые обращаются к COM-портам, следует назначить символьное имя ссылки, использующее стандартное соглашение об COM именовании , где — номер COM-порта (например, COM1). Если вы используете COM имя, необходимо получить номер COM-порта из базы данных COM-портов. Номера COM-портов следует использовать только с именами COM .

По умолчанию объединенная операция установщика класса для класса настройки устройств Ports и драйвера функции Serial настраивает устройство в качестве COM-порта.

Сведения о том, как установщик класса Ports и драйвер функции Serial создают интерфейс устройства COM-порта для COM-порта, см. в статье Внешнее именование COM-портов.

COM Port Stress Test — Позволяет протестировать стабильность и производительность вашего последовательного порта или COM порта.

Для Win2000 — Windows 11 (2022) (Server, x86, x64). Последняя версия: 1.4.5 build 303. 3 марта 2020.

COM Port Stress Test - Позволяет протестировать стабильность и производительность вашего последовательного порта или COM порта.

Краткое описание:

COM Port Stress Test это инструмент для «жесткого» экстремального тестирования COM и RS232 портов (устройств), который формирует поток данных со случайными параметрами связи и данными. Данный тест позволяет отлично проверить работу устройств на устойчивость и обработку ими ошибок, возникающих под большой нагрузкой, которые могли бы никогда не проявиться в нормальных условиях в ваших приложениях и системах. Цель этого теста это проверка того, что ваше приложение или устройство не «упадет» или перестанет работать в условиях высокой нагрузки и случайных данных.

COM Port Stress Test может помочь разработчикам, экспертам и обслуживающему персоналу проверить оборудование, программы или целые системы в экстремальных условиях. Эта программа генерирует очень плотный поток данных, произвольно меняет скорость передачи, параметры контроля передачи данных, состояние сигналов RTS и DTR и другие параметры связи.

Какие проблемы может решить COM Port Stress Test?

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

Внимание! Этот тест может вызвать крах системы. Поэтому, пожалуйста, закройте все программы и сделайте резервную копию важных файлов.

Начните пользоваться COM Port Stress Test прямо сейчас!

После установки программы вы можете найти иконку программы на рабочем столе или в меню Пуск->Программы, и запустить COM Port Stress Test. Затем выберите номера одного или двух COM портов, параметры связи по умолчанию, настройте параметры тестирования и нажмите кнопку «Старт».

Вид программы:

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

Универсальность. COM Port Stress Test поддерживает порты COM, RS232, RS485 (с конвертором);

Виртуальные COM порты. Программа может работать с виртуальными портами, usb COM портами, драйверами виртуальных последовательных портов;

До двух портов. Эта программа может тестировать два RS232 или COM порта одновременно;

Чтение/Запись. COM Port Stress Test может как читать данные из порта, так и производить запись в последовательный или COM порт;

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

RTS/DTR. Программа также может случайным образом менять состояние сигналов RTS или DTR;

Размер буфера записи. Вы можете определить размер записываемых данных в единицу времени;

Регулируемая нагрузка. Вы можете регулировать уровень загрузки портов во время теста;

Визуализация. Программа отображает скорость приема и передачи данных для обоих портов.

Очистка занятых COM портов в Windows

date

02.02.2022

user

itpro

directory

PowerShell, Windows 10, Windows 7, Windows Server 2019

comments

комментариев 26

Когда вы подключаете к компьютеру новое COM или некоторые USB устройства (например, USB модем, мобильный телефон, Bluetooth адаптер, конвертеров последовательных портов в USB и т.п.), Windows определяет его через механизм Plug-n-Play и назначит ему номер COM порта в диапазоне от 1 до 255 (COM1, COM2, COM3 и т.д.). При повторном подключении этого же устройств, ему назначается номер COM порта (Communication Port, или Serial port), зарезервированный за ним ранее. Новым устройствам выдается первый незанятый номер COM порта. Не редкость, когда внешние устройства при подключении создают сразу несколько COM портов (в моем случае после подключения адаптера Bluetooth, в системе появилось сразу 10 . новых COM портов).

�� Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Ряд приложений (как правило, довольно древних), способны адресовать только двухзначные номера COM портов, и отказываются работать с COM100 и выше. Или видят только COM1-COM9 устройства. Что делать, если подключенное устройство получило высокий номер COM порта? Можно ли сбросить нумерацию для зарезервированных COM портов и удалить назначенные порты?

Изменить номер COM порта устройства в Windows

В Windows можно вручную изменить номер COM порта, назначенный устройству. Предположим требуемый COM порт уже занят, и мы хотим его попробовать его освободить. Для этого:

  1. Откройте диспетчер устройств (Device Manager) командой devmgmt.msc;
  2. В меню выберите View->Show Hidden Devices;Отобразить скрытые устройства
  3. Затем разверните Ports (COM & LPT) и найдите в списке устройство;
  4. Перейдите на вкладку Port Settings и нажмите кнопку Advanced;
  5. Текущий номер COM порта, назначенный устройству указан в поле COMPortNumber;
  6. Чтобы изменить его, раскройте выпадающий список и выберите номер COMпорта, который хотите задать.Изменить номер назначенного COM порта

Но чаще всего изменить номер COM порт на другой не получится, так как все «низкие» COM порт уже используются (in use);

  • В этом случае нужно попробовать удалить резервацию COM порта за другим устройством. В ветке Ports (COM & LPT) найдите которому назначен нужный вам номер COM порта (бледная иконка означает, что данный COM порт назначен, но в сейчас это устройство не подключено);
  • Щелкните по нему ПКМ и выберите Uninstall;Удаление отключенного COM устройства
  • Теперь вы можете назначить освобожденный COM порт другому устройству. Еще раз откройте свойства вашего устройство, перейдите на вкладку PortSettings ->Advanced. Задайте свободный номер COM порта для вашего устройства.Смена COM порта
  • Однако такой способ позволяет освободить занятый COM порт не во всех случаях.

    Вы можете вывести полный список занятых COM портов в Windows с помощью PowerShell:

    Get-WMIObject Win32_SerialPort | Select-Object Name,DeviceID,Description
    Можно определить номер COM порта для определённого устройства по его имени, например:
    Get-WMIObject Win32_SerialPort | Where-Object < $_.Name -like "*Arduino*">|select name, deviceid
    Или
    Get-WMIObject Win32_SerialPort | Where-Object < $_.Name -like "*GPS*">|select name, deviceid

    Определяем процесс, который использует COM в Windows

    Вы не сможете освободить COM порт устройства, которое используется Windows или запущенной программой, процессом. Сначала вам нужно завершить процесс/программу, которая использует сейчас COM порт. Чтобы определить имя процесса, который использует COM порт понадобится утилита Process Explorer (https://docs.microsoft.com/en-gb/sysinternals/downloads/process-explorer).

    Сначала нужно вывести имя службы, которая использует COM порт. Выполните команду PowerShell:

    get-pnpdevice -class Ports -ea 0| Select Name, PNPDeviceID, Status, Service

    powershell: получить название процессов и служб использующих COM порты в windows

    Имя службы данного COM порта указано в столбце Service. Например, для COM2 это Serial. Теперь нужно запустить Process Explorer с правами администратора и выбрать в меню Find -> Find Handle or DLL. В строке Hangde or DLL substring введите значение Service, полученное ранее. В нашем примере это Serial .

    Process Explorer должен показать процесс, который использует сейчас ваш COM порт. Чтобы освободить COM порт, завершите процесс или программу.

    Process Explorer - ищем процесс или программу, которая используется com serial порт в windows

    Сброс назначенных COM портов Windows через реестр

    Информация об используемых COM портах хранится в ключе реестра CommDB в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter

      Откройте редактор реестра (regedit.exe) и перейдите в указанную ветку.

    Важно! Настоятельно рекомендуем предварительно создать резервную копию данной ветки реестра (File -> Export). В том случае, если что-то пойдет не так, вы сможете вернуться к первоначальной конфигурации COM портов.

    COM Name Arbiter
    Значение параметра ComDB в двоичном формате определяет список COM портов, зарезервированных в системе. Каждый бит определяет состояние соответствующего порта (от 1 до 255). К примеру, если нам нужно оставить резервацию только для COM3, hex значение ComDB будет равно 04 (0000 0100);ComDB

    Важно! Будьте предельно внимательными, ни в коем случае не добавьте в этот параметр дополнительные байт, иначе система может начать падать в BSOD.

    Сбросить привязки COM портов

    Если нужно полностью сбросить все привязки COM, измените значение ключа ComDB на 0.

    SERIALCOMM

    Примечание. В разделе HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM можно увидеть полный список COM портов, доступных в Windows.В разделе HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM можно увидеться список COM портов, подключенных к системе.

    список COM портов в реестре

  • В ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Ports содержится список назначенных COM портов. Все ненужные порты можно удалить (в нашем примере мы оставим только COM3 и удалим остальные);
  • Отключите все оборудование и перезагрузите Windows;
  • После перезагрузки включите оборудование в нужном порядке (переустановите конверторы USB-to-serial и т.д.). Все обнаруженные COM-порты автоматически определяться системой и им будут последовательно выделены номера COM портов.
  • Также вы можете использовать следующие две бесплатные утилиты для очистки занятых (In Use) COM портов:

    утилита COM Name Arbiter для очистки занятых COM портов в Windows

    • COM Name ArbiterTool – утилита для освобождения занятых COM портов. Запустите утилиту с правами администратора, выберите COM порты, которые вы хотите освободить и нажмите Clear unused Reservationsи Remove non-present devices;
    • Device Cleanup Tool – утилита используется для поиска в реестре информации о ранее подключенных устройств (в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum) и удаления неиспользуемых устройств и очистки резерваций COM портов.

    �� Онлайн-курс по устройству компьютерных сетей
    На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

    Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

    Как проверить, какая именно программа работает с COM-портом компьютера

    Сотрудники, офисы и COM-порты. Краткое введение в проблему

    Иногда случается так, что при подключении сканера штрихкодов к программе Тирика-Магазин программа показывает сообщение об ошибке: Не могу открыть порт сканера штрихкодов: Отказано в доступе. Давайте разберемся, отчего такое может случиться.

    С точки зрения Windows COM-порт, как и любой файл, флешка и т.п. является ресурсом. Любая программа, в т.ч. и сама Windows, может попросить у Windows доступ к какому-то ресурсу с определенными правами, и Windows может либо предоставить, либо не предоставить программе искомый доступ. Близкой аналогией здесь будет, наверное, офис с большим количеством комнат и кабинетов (ресурсов) и работающих в них сотрудников (программ). Если сотруднику для, например, переговоров с крупным клиентом потребуется отдельная комната, он попросит у секретаря организации дать ему ключ от этой комнаты и более никого туда не пускать до окончания переговоров. Если другой сотрудник попросит после этого у секретаря ключ от той же комнаты, ему будет отказано в доступе.

    Точно так же дело обстоит и в мире программ. Если какой-то программе необходимо поработать с COM-портом, причем поработать так, чтобы ей никто в этом не мешал, программа просит Windows предоставить ей доступ к COM-порту и более никому этого доступа не предоставлять. Если после этого другая программа (например, программа Тирика-магазин) попросит у Windows доступа к (уже занятому) COM-порту, ей будет отказано в доступе.

    Разумеется, это не единственная причина, по которой программе может быть отказано в доступе к COM-порту. Возвращаясь к нашей аналогии с офисом, сотруднику может быть отказано в доступе к какой-то комнате не только потому, что она занята другим сотрудником, но и потому, что эта комната, например, не существует или эта комната — кабинет директора. Однако при возникновении такой ситуации (программа Тирика-Магазин показывает на экране сообщение «Не могу открыть порт сканера штрихкодов: отказано в доступе») бывает нелишним проверить, что ни одна сторонняя программа не использует уже COM-порт в эксклюзивном режиме (сотрудник не занял комнату, на которую мы претендуем).

    Так как все-таки проверить, какая именно программа работает с COM-портом компьютера

    Для этого нам нужно скачать и установить на компьютер специальную программу, называемую Process Explorer. Вообще, процессом в Windows называют запущенную и работающую программу, так что название этой программы можно перевести как Исследователь запущенных программ. Пожалуйста, скачайте эту программу и запустите на своем компьютере. Вначале программа предложит вам согласиться с лицензионным соглашением (нужно нажать кнопку Agree, что переводится как Согласен) и потом немедленно покажет вам список запущенных на компьютере процессов:

    Установка программы Process Explorer Главное окно программы Process Explorer

    В этом окне нажмите, пожалуйста, сочетание клавиш Ctrl+F или выберите пункт меню Find | Find handle or DLL (Поиск | Искать хэндл или динамически подгружаемую библиотеку) для того, чтобы вызвать на экран окно поиска, в этом окне напишите слово Serial и нажмите кнопку Search (Искать). В ответ программа покажет вам список хэндлов (хэндлом в нашем примере про офис будет, наверное, запись о занятии комнаты у секретаря фирмы), в имени которых есть слово Serial («Последовательный». COM-порты также называются последовательными портами):

    Окно поиска программы Process Explorer

    Разумеется, это не будет список программ, занявших ваш COM-порт. По аналогии с офисом, мы запустили функцию поиска в компьютере секретаря фирмы и ввели в нее название комнаты — в результатах поиска может быть не только записи о резервировании этой комнаты, но и, например, запись о том, что в эту комнату нужно купить шторы. Также вероятна ситуация, когда при наличии резервирования этой комнаты мы ничего не найдем функцией поиска, например, потому, что секретарь в своих записях называет эту комнату по-другому, например, вместо «A123» она называет ее «Левая переговорная».

    Кроме того, нам необходимо суметь прочитать то, что нашла нам функция поиска. Вот, например, третья строчка на рисунке выше — это запись о занятии COM-порта или нет? На самом деле это запись совсем о другом событии, но для того, чтобы это понять, нужно быть компьютерным специалистом — а у большинства читающих эту статью совсем другие образование и профессия. Поэтому мы рекомендуем вам просто максимально расширить окно поиска так, чтобы туда поместились все присутствующие в нем строчки и все присутствующие в нем тексты, сделать снимок экрана получившегося окна и прислать этот снимок экрана нам с комментарием типа: Пытаюсь использовать программу Тирика-Магазин совместо со сканером штрихкодов, получаю сообщение об ошибке , снимок окна поиска программы ProcessExplorer прилагаю. Письмо нужно отправлять на .

    Как вы понимаете, отсылка нам описанного выше снимка экрана — это не панацея и не волшебный способ исправить любую ошибку в программе — это всего лишь попытка найти программу, занявшую COM-порт. Если эта попытка окажется удачной, это будет означать, что проблема, наверное, будет решена; если же попытка окажется неудачной, то это вообще ничего не означает, так как, например, в списке секретаря эта комната может называться иначе. Но ведь попытка не пытка, как говорил известный исторический персонаж? 😉

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

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