Программа для работы с com портом windows. Serial Port Monitor Программное обеспечение для мониторинга COM-портов

Практически постоянно приходится смотреть что шлет контроллер или заслать в него какой нибудь байтик. Это нужно для отладки, иногда для настройки. Порой для управления. Кому как, я так для отладки использую. Без толкового инструмента тут никак, поэтому я давно уже присмотрел себе парочку прикольных программок.

Первой хотел бы упомянуть Terminal v1.9b by Bray . На мой взгляд — гениальная программа! Более удобного интерфейса для работы я не встречал. Судите сами — все под рукой!

Для настроек скорости работы, номера порта, параметров передачи и прочих сиюминутных потребностей не надо даже по менюшкам лазать — все прям сразу же. Также можно в один тык выдать инфу в разных системах счисления, что порой бывает очень удобно. Я бы сказал жизненно необходимо.
В один клик доступна таблица ASCII, а среди особых фишек которую я очень люблю — возможность выдать поток данных в виде графика от 0 до 255.
А еще можно писать скрипты на паскалеподобном языке, делающие с входящими-исходящими данными всякие непотребности.
В общем, рулез!

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

Вторая программа это COM Port Toolkit от Михаила Голикова. Ей я пользуюсь гораздо реже, но она умеет весьма нужную штуку — возможность перехватывать обмен данными между софтом и физическим COM портом. Это чертовски выручило меня когда я ломал защиту PLC , а также помогло отреверсить обмен между программой настройки модулей HM-TR433 . В общем, редко, но метко.


Программка эта довольно проста в обращении, имеет три режима работы:

  • Терминал
    Может выдавать логи обмена данных улетевших к нами от нас. Слать из файла. Обрабатывать пересылаемое макросами (что может быть очень крутым подспорьем, но мне пока не пригождалось). Терминал как терминал, ничего особенного.
  • Прослушка
    Это фишка уже поинтересней. Позволяет воткнуть комп в разрез между принимающим и передающим девайсом и прослушать передачу данных кто кому и что передал. Также ведутся логи с указанием времени передачи посылки.
  • Захват
    Вот за эту фичу я и люблю эту программу — возможность снифферить обмен между софтом и портом. Редкая фича. Из бесплатных программ я нигде такого не встречал, а у программ вроде Advanced Serial Port Monitor или Free Serial Port Monitor эта фича доступна только в платной версии, тут же ее можно заюзать даже в демо версии.

Также можно писать скрипты на этот раз уже на Си подобном языке. Мне это больше нравится, т.к. я его лучше знаю.

Недостатков пожалуй три:

  • Невозможность разделить в режиме «Захват» входящие и исходящие данные на два разных окна.
  • Отстуствие русской документации, хотя бы по тому же скриптописанию.
  • Шароварность. Впрочем, я бы не назвал это недостатком. Автор, я думаю, не святым духом питается.

Демка проработала 30 дней, потом захотела денег. Но свою работу по облегчению разбора протокола обмена PLC она выполнила.

Поначалу была мысль вспомнить шальное детство, сдуть пыль с родимого SoftICE и похачить защиту, но потом вспомнил что шашек такой формы не брал в руки уже лет 5, как минимум. Да и цена программы оказалась смешной — всего 10 баксов для русскоязычных пользователей.
Так что проще было ее зарегистрировать. Тем более штука нужная и уже неоднократно себя окупившая.

Если вам понадобится программа HyperTerminal в Windows 7, то смею вас огорчить: ее там больше нет. По какой-то причине разработчики компании Microsoft перестали включать эту замечательную утилиту в состав своих ОС (Vista, Server 2008/R2, Windows 7). Вероятно, одной из причин такого решения являться тот факт, что COM порты на современных компьютерах практически отсутствуют, а если и есть, то покрыты толстым слоем пыли…

Напомним, что HyperTerminal – это приложение, позволяющее эмулировать работу терминала при взаимодействии с удалёнными устройствами по последовательной шине (RS-232), dial-up-у или протоколу TCP/IP (последнее скорее редкость, предпочтительнее использовать telnet ). Через консольный COM порт обычно настраивают различное сетевое оборудование, такое как маршрутизаторы, модемы, свитчи, АТС и т.д.

Так как же работать с COM-портами и устройствами на них в Windows 7 , когда нужен функционал старого доброго гипертерминала?

Используем стандартный HyperTerminal из Windows XP

Чтобы вернуть HyperTerminal в Windows 7 достаточно просто скопировать файлы данной программы из Windows XP. Нам понадобятся следующие файлы:

  • C:\Program Files\Windows NT\hypertrm.exe
  • C:\WINODWS\system32\hypertrm.dll
  • C:\WINODWS\Help\hypertrm.chm
  • C:\Windows\Help\hyperterm.hlp

Скопируйте их в отдельный каталог в Windows 7, после чего можно запустить гипертерминал в Windows 7, открыв файл hypertrm.exe с явными правами админа (Run as administrator по правой кнопочке мыши).

Для тех счастливчиков, которые уже полностью мигрировали на Windows 7 и в чьем ведении не осталось Xp-шек, в архиве публикую все необходимые файлы.

Скачать hyperterminal для windows 7 : (215 Кб)

Putty как аналог гипертерминала

Если вы хотите радикально избавиться от устаревшего гипертерминала, придется искать его аналоги для Windows 7.

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

Программа terminal Extem (ОС Windows) для удобной работы с внешими модемами для сом-портов, с помощью команд модема. Специализирована для модемов основанных на чипах фирмы “Rockwell”: RCV336ACF/SVD, RCVDL56ACF/SVD, RCV56ACF/SVD, RCV56DPF, а также их аналогах. Данная программа рассчитана для внешних модемов подключаемых к COM порту (КОМ порту). Настройка осуществлятеся следующими этапами: инициализация порта к которому подключен модем и настройте параметры интерфейса. Определите порт модема, укажите скорость обмена между компьютером и модемом (по умолчанию используется COM1 и скорость 115200). Настройка интерфейса: цвет фона текстового поля, цвет текста, фон командной строки. Любые установленные настройки для сом-порта и интерфейса можно сохранить кнопкой “сохранить настройки”. Рекомендую сохранить все настройки этой кнопкой. Команды для модемов возможно вводить как из панели команд (меню слева), так и через командную строку. В Extem предусмотрен шестнадцатиричный ввод с командной строки. Переключение между режимами “ASCII” и “Hex” осуществляется щелчком мыши по строчке расположенной ниже кнопки “зачистить”. Повторный щелчок вернёт режим (по умолчанию режим ввода ASCII). Ввод команд осуществляется по правилам Hex-чисел (0123456789abcdef). Из hex-чисел формируется байт (потолок для каждого числа: ff). Числа можно вводить: с пробелами или без них, регистр символов значение не имеет.

Как работать с устройствами по COM-порту с помощью терминальной программы?
В различных инструкциях и руководствах вы можете увидеть рекомендации по работе с устройствами через терминальную программу. Как правило, такие действия производят с помощью HyperTerminal - стандартной программы в операционных системах Windows. Мы же рекомендуем использовать терминальную программу "Terminal v1.9b by bray " , потому что это более гибкий и удобный в работе инструмент. Ниже мы расскажем как работать с нашими устройствами на примере именно этой программы.

В первую очередь подключите устройство, с которым собираетесь работать, к компьютеру через COM-порт. Подключите питание.
Теперь запустите Terminal v1.9b .

Интерфейс и основные настройки подключения по порту

В верхнем поле находятся параметры подключения:

  1. Колонка №1:
    Connect
    - кнопка для открытия COM-порта,
    Rescan - пересканировать список COM-портов,
    Help - справка,
    About.. - о программе,
    Quit - выход из программы.

    Колонка №2:

  2. Поле выбора номера COM-порта для подключения.
    Колонка №3:
  3. Выбор скорости COM-порта.
    Колонка №4:
  4. Выбор количества бит данных.
    Колонка №5:
  5. Выбор четности.
    Колонка №6:
    Выбор количества стоповых бит.
    Колонка №7:
  6. Выбор типа управления потоком.
В разделе Settings находятся дополнительные параметры. Они пригодятся для написания скриптов, работы с нестандартными скоростями или для записи

В разделе Recieve находятся параметры отображения ответа от устройства.

В разделе Transmit находятся параметры передачи данных на устройство. Кнопки DTR и RTS устанавливают соответствующие выводы в положительное состояние.

Макросы

Поле Macros предназначено для создания пользовательских быстрых клавиш.
Для этого нужно нажать на кнопку SetMacros и в открывшемся окне присвоить каждой кнопке определённую последовательность символов, которая будет отправляться на устройство.
  1. Блок №1:
    Поле для ввода последовательности символов для отправки. Для того чтобы отправить специальные символы, необходимо воспользоваться ASCII таблицей и ввести код символа, предварительно экранировав его знаком "$ ". Например, на картинке выше, вы можете видеть экранированный символ возврата каретки $0D (нажатие клавиши Enter )
    Блок №2:
  2. Здесь в левом поле задаётся имя кнопки, а в правом отображается сама кнопка.
    Блок №3:
  3. Тут задаётся задержка при автоматическом повторении команд.
    Блок №4:
  4. Включение автоматического повтора команды через интервал времени, заданный в п.3.
Кнопки Load и Save позволяют сохранить или загрузить файл с макросами, введёнными в этом окне.

Отправка и прием данных



Блок №1:
В этом большом поле вы будете видеть ответы от вашего устройства.
Если в разделе "Settings " вы не забыли поставить галочку "Time ", то перед каждой строкой будет проставлена метка времени. Это бывает очень полезно при анализе логов с устройства.

Блок №2:
Тут находится поле для отправки текста сообщений. Установленная галочка "+CR" будет дописывать к отправляемому сообщению символ возврата каретки (эмулировать нажатие клавиши Enter). Кнопка "->Send" отправит ваше сообщение на устройство.

Блок №3:
В самом низу находится поле, где вы можете видеть отправленные на устройство команды.


Теперь вы знакомы с интерфейсом Terminal 1.9b!

Как происходит общение с устройством, вы можете посмотреть в этих статьях.


эмулятор нуль-модемного провода Null-modem emulator Бесплатная программа com0com позволяет в пару кликов создать в системе пары виртуальных COM портов. Это позволяет, например, отлаживать ваши программы, использующие последовательные порты, не подключая никаких кабелей, или на компьютере, у которого вообще нет ни одного COM порта. Вы можете легко связать две программы, работающие с такими портами через этот драйвер, просто выбрав в одной программе первый виртуальный порт из пары, а во второй программе - второй порт. После этого программы смогут обмениваться данными, как если бы они были запущены на разных машинах, соединенных кабелем через их COM порты. К примеру вы пишете программу, которая посылает текстовые сообщения через последовательный порт. Вы можете отлаживать такую программу, назначив ей один из пары виртуальных портов, а на второй виртуальный порт из пары "повесить" программу - терминал. Тогда вы сможете в терминале наблюдать данные, которые посылает в порт ваша программа.

Другое применение - отладка проектов на микроконтроллерах в симуляторе Proteus. разработчики очень часто используют COM PORT (UART интерфейс) в микроконтроллерных приложениях, так как аппаратный UART модуль имеется практически в любом современном микроконтроллере, и использовать его легко и просто. В программе Proteus есть специальный компонент для связи с COM портом компьютера (не важно, реальный это порт или виртуальный). Компонент называется COMPIM и выглядит вот так:


Этот компонент - практически "мостик", связывающий симуляцию Proteus c внешним по отношению к симулятору миром.

Предположим мы разрабатываем устройство на микроконтроллере, которое связывается с компьютером и, возможно, управляется от него, через COM порт. Одновременно мы разрабатываем программу для компьютера, которая будет взаимодействовать с этим микроконтроллерным устройством. Используя драйвер виртуальных портов мы можем отлаживать такой комплекс внутри виртуального пространства компьютера без подключения каких-либо проводов и без сборки реального устройства на микроконтроллере. Просто "собираем" схему в Proteus, загружаем в модель контроллера прошивку, добавляем в проект компонент COMPIM, соединяем линии TXD и RXD контроллера с соответствующими линиями COMPIM. В компоненте COMPIM нужно выбрать один из пары наших виртуальных портов и задать правильную скорость обмена. С другой стороны, в компьютерной программе выбираем второй из пары COM портов. Запускаем проект Proteus на выполнение и любуемся результатом.

Более простой вариант - в качестве компьютерной программы можно использовать любой COM - терминал, например вот этот . Тогда в программе - терминале мы сможем видеть данные, поступающие с нашего микроконтроллера (из Proteus) и посылать ему команды, как если бы это было реальное "железное" устройство.

Для установки драйвера на windows 7..10 нужно временно перевести винду в режим разработчика. Для этого в меню пуск выберите "выполнить" и запустите команду
bcdedit.exe -set TESTSIGNING ON
после этого перезагрузите компьютер. Скачать программу - Virtual Serial Port Driver Com0Com



BComPort - Удобный в работе Delphi компонент для работы с COM- портом

Компонент для обмена данными с внешними устройствами через интерфейс RS-232 в асинхронном или синхронном режиме. Автор: Брусникин Игорь Викторович. Компонент довольно старый, но устанавливается без проблем в любой Delphi вплоть до 10.2 Tokio.

Внимание! В новых UNICODE- версиями Delphi компонент хоть и устанавливается без проблем, но работает некорректно, так как все новые версии Delphi используют тип String в Unicode. Я адаптировал компонент для использования в новых Delphi . Подправленная версия в том же архиве в папке BComPortUnicode . Оригинальная версия - в папке BComPort . Для установки в не-юникод версии Delphi (До 8-й включительно) нужно использовать оригинальную версию. Устанавливается просто. Например в Delphi 10.2 Tokio нужно выбрать Component - Install Component и потом выбрать файл BCPort.pas . В архиве есть инструкция на русском языке и примеры. Скачать архив с компонентом...

Loading...Loading...