Serial port monitor. работа с последовательным и rs232 портом. возможности шпиона, анализатора, наблюдателя и sniffer
Содержание
- 1 Порт и память
- 2 Set Handshaking or Flow Control
- 3 Wires, Pins, Connectors and the like
- 4 Return to the Serial Port Tester
- 5 Разъёмы
- 6 С Serial Port Monitor вы сможете:
- 7 Как удалить службу в windows 7 реестр
- 8 How to check serial port communication with Serial Port Tester
- 9 Step 3: Send an AT command to a connected Hayes compatible modem
- 10 Программный доступ к СОМ-порту
- 11 Types of serial ports
Порт и память
То есть, программа прочитает данное из памяти в процессор, что-то с ним сделает, может быть получит из этой информации какие-то новые данные, которые запишет в другое место. Или само данное просто перепишет на другое место. Во всяком случае в памяти информация, которая однажды была записана может быть либо прочитана, либо стёрта. Ячейка получается как сундучок, стоящий у стенки. А вся память состоит из ячейки каждая ячейка имеет свой адрес. Точно как сундучки, стоящие в ряд у стенки в подвале скупого рыцаря.
Ну и порт можно себе представить тоже как ячейку. Только такая ячейка сзади имеет окошко, ведущее куда-то за стенку. Можно записать в неё информацию, а информация возьмёт, и улетит в окошко, хотя какое-то время будет находиться в ячейке так же, как и в обычной ячейке оперативной памяти.
Или наоборот, в ячейку-порт информация может «прилететь» из окошка. Процессор это увидит и прочтёт эту новую появившуюся информацию. И пустит её в дело — перепишет куда-то, пересчитает вместе с какими-то другими данными. Даже может записать её в другую ячейку. Или в другую ячейку-порт, тогда эта поступившая по первому порту информация может «улететь» в окошко второго порта, — ну это уж как распорядится процессор. Вернее, программа, которая в этот момент процессором командует и данные, записанные в памяти и приходящие из портов, обрабатывает.
Просто и красиво. Эти порты так и назвали сразу — порты ввода-вывода. Через одни из них данные отправляются куда-то, через другие — откуда-то принимаются.
Ну а дальше начинается движение по кругу. Вот есть одно устройство, и есть другое. И вот есть цепочка символов, каждый из которых состоит из отдельных двоичных битов, и эту цепочку нужно передать. Как передавать? Можно по линии из 8 проводочков сразу передавать по целому символу — один проводок = один бит, потом код другого, потом третьего, и так, пока не передашь всю цепочку.
А можно было разворачивать каждый бит не в пространстве (по проводочкам), а во времени: сначала передать один бит символа, потом второй и так восемь раз. Ясно, что во втором случае нужны какие-то дополнительные средства, чтобы символы так разворачивать во времени.
Мастерам на все руки будет интересна статья об особенностях работы и схеме включения МС34063.
Set Handshaking or Flow Control
Set Hardware Handshaking
You are ready to test RS232 ports once you have the signal wires connected correctly. If you are still not successful in receiving data, you might need to investigate the handshaking lines in order to test serial ports.
A handshaking arrangement is done for one of two reasons:
- To allow a computer that is not ready to receive data to stop a device from transmitting any;
- To enable a device to hold up communication from a computer if the device is not yet ready to receive the data.
Handshaking does not need to be implemented just because a device has the capability to do so. In many cases, manufacturers put the signals on the plug as they are easily available from the unit’s processor. If you choose to use handshaking, it is advisable to start with lines carrying fixed voltages. This minimizes any effects on the equipment’s operation. In cases where resistors are tied to handshake lines, you do not need to connect them.
There are some indicators that lead to the conclusion that handshaking should be implemented.
- If an input buffer overflow causes the computer to miss part of a message, handshaking may solve the issue.
- Similarly, a device can miss part of a message which will impact its ability to function correctly.
If you choose to implement handshaking with your RS232 tester, you should know that Serial Port Tester supports DTR / CTS handshaking. Using the tool, the computer employs its DTR output to indicate it is available to receive data. Devices can take advantage of the CTS input to limit the data flow from the computer.
The only time that the computer’s CTS input is important is when you are performing hardware handshaking. If you are not using hardware handshaking the CTS is ignored, but a high level is maintained on the DTR so you can use it to tie unused inputs to the device.
Removing handshaking will enable you to keep the RTS high and the DTR low. Here’s how to do it:
- Connect pins 8 and 7 (i.e. CTS drives RTS).
- Connect pins 1, 4, and 6. This should maintain the DTR line in the correct state, by connecting it to DCD and DSR.
This change should be performed on the device’s end of the cable. After making the modification, ensure that data is still flowing through the cable.
Set Software Handshaking
A software protocol that enables Xon \ Xoff handshaking can also be used to control the flow of data between a computer and a connected device.
The protocol works by a device sending an Xoff character when it cannot receive any more data. Transmission is halted until an Xon character is sent and received by the computer which informs it to restart the communication. Xon and Xoff characters can be sent by the device or computer.
Software handshaking is supported by COM Port Tester if it is required by the device you are using.
Wires, Pins, Connectors and the like
The Wikipedia page on Serial ports has a lot of information, and it is summarised here. The serial interface is very simple. There are actually two kinds of serial port: 25-pin and 9-pin. 25-pin ports are not any better, they just have more pins (most unused) and are bigger. 9-pin is smaller and is used more often though in the past the 25-pin ones were used more often. The 9-pin ones are called DE-9 (or more commonly, DB-9 even though DE-9 is its technical name) and the 25-pin ones are called DB-25. They plug in to your computer using a female plug (unless your computer is odd and has a female port, in which case your cable will need a male plug). This Wikipedia page has more information on the plug used.
Both have the same basic types of pins. A DB-25 has most of the pins as ground pins or simply unconnected, whereas a DE-9 has only one ground pin. There is a transmitting pin (for sending information away) and a receiving pin (for getting information). Most serial ports run in a duplex mode—that is, they can send and receive simultaneously. There are a few other pins, used for hardware handshaking. In the past, there was no duplex mode, so if a computer wanted to send something it had to tell the other device or computer that it was about to transmit, using one of the hardware handshaking pins. The other device would then use another handshaking pin to tell it to send whatever it wanted to send. Today there is duplex mode, but the handshaking pins are still used.
If you want to connect two computers, you need two things in your cable:
- The cable needs to have two female plugs so it can plug into both computers.
- The cable needs to have its transmit-receive wires and it’s handshaking wires switched. This can be done in the cable itself, or as an extension called a Null Modem
For serial devices, you don’t need to setup the cable this way. The receiving end of the device has the wires switched and it has a female port, which means you can plug a male plug into it.
Return to the Serial Port Tester
Once serial communication issues have been solved by the previously outlined steps, you can return to step one and check the status of your serial port lines.
Below the main table, the states of the serial control lines are displayed.
- DSR: Data Send Ready line indicator
- DCD: Data Carrier Detect line indicator
- DTR: Data Terminal Ready line indicator
- RTS: Request to Send line indicator
- CTS: Clear to Send line indicator
- RI: Ring line indicator
The RS232 port test is facilitated by a graphical display of the status of the lines. A green circle indicates a high level with red representing a low level and gray pointing to a line with an undetermined state.
It can be hard to pinpoint the cause of serial communication problems. Some of the more common methods of diagnosing the issue have been discussed in the article.
Using a quality software tool can help you identify and address issues quickly. Eltima Software’s Serial Port Tester offers an excellent solution that provides users with an advanced feature set for diagnosing serial communication problems. Its versatility and flexibility make this a valuable addition to the software tools available to individuals working with serial applications and devices.
Разъёмы
Разъём DE-9, используемый для интерфейса RS-232
На материнских платах ведущих производителей (например, Intel) или готовых системах (например, IBM, Hewlett-Packard, Fujitsu Siemens Computers) для последовательного порта принято условное обозначение COM или RS-232.
Варианты разъёма COM-порта типа DE-9
Наиболее часто используются стандартизированные в 1969 году D-образные разъёмы: 9- и 25-контактные, (DB-9 и DB-25 соответственно). Раньше использовались также DA-31 и круглые восьмиконтактные DIN-8.
Максимальная скорость передачи в обычном исполнении порта составляет 115 200 бод.
С Serial Port Monitor вы сможете:
- Serial Port Monitor может подключаться к COM-порту, даже если тот уже открыт каким-нибудь приложением, и сразу приступать к его мониторингу. Все данные, проходящие через контролируемый COM-порт, отобразятся в нашей программе мониторинга. Поскольку все записывается в режиме реального времени, вы сможете мгновенно выявлять проблемы. Для сравнения данных есть функция синхронизированного выделения одинаковых IRP в разных видах. Кроме того, вы можете перенаправить все данные мониторинга в заданный файл или скопировать все записанные данные в буфер обмена. Serial Port Monitor дает вам возможность перехватывать и записывать все управляющие коды ввода/вывода последовательных портов (IOCTLs), отслеживать все их данные и параметры. Вы можете сохранять любую сессию мониторинга и при необходимости загружать ее в следующий раз.
- У Serial Port Monitor есть уникальная функциональная возможность мониторинга нескольких COM-портов одновременно. Теперь вы можете собрать данные о том, как приложения взаимодействуют с двумя или более портами и параллельно с этим с несколькими устройствами в рамках одной сессии. Полученные и отправленные данные мониторинга будут представлены (записаны) в отдельном журнале в порядке поступления, что значительно упростит анализ.
- Вы можете просматривать данные мониторинга сразу в 4 режимах: таблица, строка, дамп или терминал, каждый из которых предлагает свой способ представления записанных последовательных данных. Serial Port Monitor дает возможность выбирать фильтры мониторинга, экономя таким образом ваше время и позволяя отслеживать только интересующие события. В настройках есть возможность выбора данных для показа: бинарные, ASCII, настроить порт. Любые настройки для показа можно применить прямо в текущем процессе мониторинга.
- Вы можете отправлять данные в различных форматах (стринг, двоичный, восьмеричный, десятичный, шестнадцатеричный, смешанный) контролируемому последовательному порту, как будто они были отправлены непосредственно контролируемым приложением с использованием функции режима терминала Serial Port Monitor. Таким образом, вы можете отслеживать реакции контролируемого последовательного устройства на некоторые специальных команды и данные.
- C помощью новых фильтров Serial Port Monitor вы сможете расшифровывать и анализировать Modbus данные. Программа поможет не только устанавливать соединение между устройствами RS485/422/232, но и проводить эффективный анализ проходящих данных.
- Serial Port Monitor предоставляет уникальную возможность заново воспроизвести сессию из приложения в порт для наилучшего анализа происходящих процессов. Вы сможете наблюдать за реакцией серийного порта на прохождение тех же данных, повышая тем самым эффективность мониторинга. У вас также есть возможность сравнить несколько сессий мониторинга и автоматически отследить разницу между ними.
Как удалить службу в windows 7 реестр
sc.exe (Service Controller) осуществляет взаимодействие с установленными службами, получая и задавая их параметры. Утилиту SC.exe можно использовать для тестирования и отладки программ, работающих как службы.
Свойства служб хранятся в реестре, параметры команды SC.exe позволяют модифицировать значения этих свойств, а также управлять запуском и остановкой служб. Возможности SC.
exe во многом сходны с mmc консолью Services, расположенной в «Панели Управления».
Откройте редактор реестра (regedit.exe), и перейдите в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. В ней содержится список всех служб, установленных в системе.
В этой статье мы познакомимся с простым способом, позволяющим удалить любую службу в Windows 7 средствами самой операционной системы без использования сторонних программ.
Если имя службы содержит пробелы (как в нашем случае), его нужно взять в кавычки:
Откройте окно командной строки (cmd.exe) с правами администратора («Run as administrator»). Чтобы удалить службу в Windows 7 можно воспользоваться системной командой sc. Команда sc.exe – это утилита командной строки, которая используется в Windows 7/Vista/XP для создания, редактирования и удаления служб. Согласно документации TechNet, sc.exe:
Альтернативный метод удаления служб в Windows 7 подразумевает использование редактора реестра.
Чтобы удалить службу в Windows 7, нужно знать ее имя. Для чего откройте окно управления службами Start -> Settings -> Control Panel-> Systems and Maintenance->Administrative Tools->Services.
Теперь, если в консоли управления службами нажать F5, вы увидите, что служа удалена и в списке не значится.
Прежде чем начать, необходимо уяснить несколько моментов:
В случае успешного выполнения команды sc delete в командной строке должно появиться сообщение DeleteService SUCCESS
Также попытаемся понять, в каких случаях возникает необходимость в удалении службы Windows.
Р.S. Папки когда не совпадают найти можно по названию программы, оно отображается в окне справа.
Попробуйте восстановление системы — это проще всего.
Здесь необходимо найти папку с именем службы, и затем удалить ее.
Выделяем и копируем имя службы. Здесь же выполняем ее остановку.
Будьте внимательны при удалении службы, удаление «не той» службы может привести к краху системы!
С помощью этой команды можно удалить даже работающую службу (служба будет остановлена и затем удалена после перезагрузки).
Здравствуйте, а если удалил случайно DCPH службу, то как ее восстановить, да и вообще как восстановить все службы без перезагрузки системы.
Как удалить службу Windows
Без перезагрузки все равно не обойтись.
Откройте редактор реестра (regedit) и перейдите в раздел
Открываем оснастку управления службами (Панель управления -> Система и безопаcность -> Администрирование -> Службы), далее открываем свойства службы, которую необходимо удалить:
Необходимо открыть командную строку от имени администратора (Windows 7, Vista) и выполнить:
Перед удалением службы необходимо выяснить ее имя (под которым она прописана в реестре), а также желательно выполнить ее остановку.
В этой статье покажу, как можно не только отключить, но и удалить службы Windows. Это может пригодиться в разных ситуациях, наиболее распространенные среди них — службы остаются после удаления программы, к которой они относятся или же являются частью потенциально нежелательного ПО.
Найдите подраздел, имя которого совпадает с именем службы, которую нужно удалить (для того, чтобы узнать имя, используйте способ, описанный выше).
Закройте редактор реестра.
Как удалить службу Windows 7 и 8
Удалить службу Windows можно также и с помощью редактора реестра, для запуска которого используйте комбинацию клавиш Win + R и команду regedit.
В первом способе будем использовать командную строку и имя службы. Для начала зайдите в Панель управления — Администрирование — Службы (можно также нажать Win + R и ввести services.msc) и найдите службу, которую нужно удалить.
После этого, для окончательного удаления службы (чтобы она не отображалась в списке) следует перезагрузить компьютер. Готово.
Дважды кликните по имени службы в списке и в открывшемся окне свойств обратите внимание на пункт «Имя службы», выделите и скопируйте его в буфер обмена (можно сделать правым кликом мыши)
How to check serial port communication with Serial Port Tester
Follow these steps to initiate a new testing session after you have defined the settings for the connection.
- Launch the RS232 test software.
- Choose “Session >>> New session” from the main menu. Clicking “New” on the main toolbar or using “CTRL+N” are alternative methods of starting a session.
- The “New monitoring session” window will be displayed.
- Choose how the session’s data will be displayed by selecting from among these visualizers:
- ■ Line view concentrates on a specific serial line and provides detailed information regarding any requests it receives.
- ■ Dump view displays all sent and received data transmitted through a serial line.
- ■ Terminal view uses an ASCII text console to display the data that is received through a line.
- ■ Modbus view displays received and sent Modbus data and support both the RTU and ASCII variation of the protocol.
- ■ Table view employs a table format to present the recorded IRPs.
You can control how a new monitoring session begins with the “Start monitoring now” and “Start in new window” checkboxes.
Select the capture options from these choices: Create/Close, Read/Write, and Device Control.
Click the “Start monitoring” button to start the new session after all the options have been set.
- A new monitoring window is opened using the visualizers previously selected.
- You save a session with the “Session >>> Save session/Save session As” option from the app’s main menu. Alternately you can use the CTRL+S keyboard shortcut or “Save” on the main toolbar.
Specify a file name at the prompt so you can reload the session later to work with it further.
Step 3: Send an AT command to a connected Hayes compatible modem
You can now send and/or receive data to and/or from a serial device.
The following HTML code shows how to query a modem:
<html> <head> <object id="objComport" classid="CLSID:9366AAD2-50F4-4CFE-9613-6AC3406ED46B " viewastext> </object> </head> <body onload="ListDevices()"> <script language="JavaScript"> function Send () { objComport.Device = comboDevice.options .text objComport.Speed = 9600 objComport.ComTimeout = 500 objComport.LogFile = "C:\ComLog.txt" objComport.HardwareFlowControl = objComport.asFLOWCONTROL_DEFAULT objComport.Open() textResult.value = "Result: " + objComport.LastError + " (" + objComport.GetErrorDescription ( objComport.LastError ) + ")"; if( objComport.IsOpened == -1 ) { objComport.WriteString( textCommand.value ); textResponse.value = "" while( objComport.LastError == 0 ) { textResponse.value += objComport.ReadString () + "\n"; } } objComport.Close () } function ListDevices () { nCount = objComport.GetDeviceCount (); for ( i = 0 ; i < nCount ; i++ ) { comboDevice.options = new Option ( objComport.GetDevice ( i ), "" ); } for ( i = 1 ; i < 9 ; i++ ) { comboDevice.options = new Option ( "COM" + i , "" ); } } </script> <font face="sans-serif" size="2"> <hr size="1" color="#707070"> <b><font size="4">ActiveXperts Serial Port Component HTML Sample</font></b><br> <b> <br> Query a modem connected to your PC (COM port, USB or Bluetooth).<br> <br> <br> <hr size="1" color="#707070"> <br> <table border="0" bgcolor="#f0f0f0" ID="Table1"> <tr> <td valign="top">Device Name:</td> <td> <select size="1" name="comboDevice" ID="Select1"> </select> </td> </tr> <tr> <td valign="top">Command:</td> <td> <input size="50" type="text" name="textCommand" value="ATI" ID="Text1"><br> <br> </td> </tr> <tr> <td valign="top">Response:<br> </td> <td> <textarea rows="10" name="textResponse" cols="63" ID="Textarea1"></textarea> </td> </tr> <tr> <td vAlign="top">Result:</td> <td> <textarea rows="1" name="textResult" cols="63" id="Textarea2"></textarea> </td> </tr> </table> <br> <input type="button" onclick="Send()" value="Submit"> <b>IMPORTANT:</b> Please press the button <b>only once</b>, and allow some time for the command to be processed </font> <br> </body> </html>
There are many working samples included with the product.
You can also find them on the ActiveXperts FTP site: ftp.activexperts-lab.com/samples/serial-port-component.
Программный доступ к СОМ-порту
UNIX
COM-порты в операционной системе Unix (Linux) — это файлы символьных устройств. Обычно эти файлы располагаются в каталоге /dev и называются
- ttyS0, ttyS1, ttyS2 и т. д. в Linux
- ttyd0, ttyd1, ttyd2 и т. д. (или ttyu0, ttyu1, ttyu2 и т. д. начиная с версии 8.0) в FreeBSD
- ttya, ttyb, ttyc и т. д. в Solaris
- ttyf1, ttyf2, ttyf3 и т. д. в IRIX
- tty1p0, tty2p0, tty3p0 и т. д. в HP-UX
- tty01, tty02, tty03 и т. д. в Digital Unix
- ser1, ser2, ser3 и т. д. в QNX
Для программного доступа к СОМ-порту необходимо открыть на чтение/запись соответствующий файл и сделать вызовы специальных функций tcgetattr (для того, чтобы узнать текущие настройки) и tcsetattr (чтобы установить новые настройки). Также может потребоваться сделать вызовы ioctl с определенными параметрами. После этого при записи в файл данные будут отправляться через порт, а при чтении программа будет получать уже принятые данные из буфера СОМ-порта.
Устройства с именами «ttyxx» используются как серверные, то есть приложение, открывшее данное устройство, обычно ожидает входящего звонка от модема. Классическим таким приложением, используемым по умолчанию, является getty, которая ожидает входящего звонка, далее настраивает COM-порт в соответствии с файлами конфигурации, выводит туда «login: «, принимает имя пользователя и запускает как потомка команду «login ИмяПользователя», со стандартным вводом и выводом, перенаправленными в COM-порт. Эта команда в свою очередь запрашивает и проверяет пароль, и в случае успеха запускает (не как потомка, а вместо себя вызовом execve в том же процессе) default user shell, прописанный в файле /etc/passwd.
Эта технология исторически возникла в 1970-е годы, когда под ОС UNIX использовались компьютеры вроде PDP-11 (в СССР серия называлась СМ ЭВМ) или VAX, позволяющие подключение многих терминалов для работы многих пользователей. Терминалы — а значит, и весь интерфейс пользователя — при этом подключались через последовательные порты, с возможностью подключения вместо терминала модема и дальнейшего дозвона на компьютер по телефону. До сих пор в UNIX-подобных ОС существует терминальный стек, и обычно 3 реализации терминалов — последовательный порт, консоль текстового режима экрана+клавиатура, и «обратная петля» в один из открытых файлов управляющего приложения (так реализованы telnetd, sshd и xterm).
Клиентские устройства последовательного порта, предназначенные для совершения звонков вовне, в многих UNIX (не во всех) называются cuaxx.
Так как последовательный порт в UNIX доступен только через терминальный стек, он может быть управляющим терминалом для процессов и групп (посылать SIGHUP при разрыве связи от модема и SIGINT при нажатии Ctrl-C), на уровне ядра поддерживать редактирование последней введенной строки клавишами стрелочек, и т. д. Для отключения этой возможности с целью превращения устройства в «трубу» для потока байт необходимы вызовы ioctl.
Windows
С последовательными портами в Win32 работают как с файлами. Для открытия порта используется функция CreateFile. Портов может быть много, поэтому они обозначаются как COM1, COM2 и т. д. по порядку обнаружения драйверов соответствующих устройств. Первые 9 портов доступны в том числе как именованные каналы для передачи данных (доступны по именам «COM1», «COM2», …), такой метод доступа считается устаревшим. Рекомендуется ко всем портам обращаться как к файлам (по именам «\\.\COM1», «\\.\COM2»,… «\\.\COMx»).
Поиск PnP-имен устройств в системе осуществляется вызовом SetupDiGetClassDevs. В реестре существует раздел HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM, в котором отображаются имеющиеся в данный момент COM-порты.
Для каждого порта в реестре имеется раздел. Эти разделы имеют такие имена:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\Parameters\Serial10000,
где последнее значение «Serial10000» — уникальный номер для каждого нового добавленного в систему COM-порта, для второго — «Serial10001» и т. д.
OS/2
Имеющийся драйвер COM.SYS поддерживает только 4 COM-порта, каждый из которых должен иметь свою линию прерываний. Для обслуживания COM-портов с общей линией прерывания необходимо воспользоваться драйвером SIO.
Types of serial ports
There are several types of data communication interfaces, each of which is designed for specific applications based on the required set of parameters and protocol structure. Serial data interfaces include CAN, RS-232, RS-485, RS-422, I2C, I2S, LIN, SPI, and SMBus, but RS-232, RS-485 and RS-422 are still the most reliable and common ones.
Interfaces | RS-232 | RS-422 | RS-485 |
Number of devices | 1 Transmitter 1 Receiver |
5 Transmitters 10 Receivers for 1 Transmitter |
32 Transmitters 32 Receivers |
Protocol type | duplex | duplex | half duplex |
Max cable length | ~ 15.25 meters at 19.2 Kbps | ~ 1220 meters at 100 Kbps | ~ 1220 meters at 100 Kbps |
Max data transfer speed | 19.2Kbps for 15 meters | 10Mbps for 15 meters | 10Mbps for 15 meters |
Signal | unbalanced | balanced | balanced |
Min input voltage | +/- 3V | 0.2V differential | 0.2V differential |
Output current | 500mA | 150mА | 250mА |