RS-232 Software a nástroje

Přehled softwarových nástrojů pro práci s RS-232.

Terminálové programy

ProgramPlatformaVlastnosti
Hercules Setup UtilityWindowsFreeware, sériový terminál + TCP/IP, UDP, logování, makra, hex/ASCII zobrazení
Terminal (Terminal.exe)WindowsJednoduchý terminál, podpora X/Y/Z modem, skriptování
TeraTermWindowsOpen source, SSH, Telnet, sériový port, makra (TTL), pluginy
PuTTYWindows/Linux/macOSSSH/Telnet/Serial, věrohodný, portable
RealTermWindowsSpecializovaný pro embedded, hex/dec/bin zobrazení, timestamps, capture
minicomLinux/macOSKlassický textový terminál, konfigurovatelný
screenLinux/macOSscreen /dev/ttyUSB0 9600 – rychlý přístup
picocomLinux/macOSMinimalistický, bez závislostí
CoolTermWindows/macOS/LinuxGUI, hex view, připojení více portů zároveň

Monitoring a analýza (SPY)

NástrojPopis
ListenPasivní monitoring sériové linky (hardwarový tapping)
Advanced Serial Port Monitor (ASPM)Plnohodnotný analyzátor, zachycování, filtrování, export, simulace zařízení
Look 232 (Look232)Hardwarový monitor RS-232 s vlastním displejem, nezávislý na PC
Portmon (Sysinternals)Monitoring volání API sériového portu v Windows (legacy)
USBPcap + WiresharkZachycování USB-RS232 převodníků na USB vrstvě

Virtuální sériové porty

NástrojPopis
HW Virtual Serial Port (HW VSP)Vytváří virtuální COM porty přesílané na TCP/IP (klient/server), mapování fyzických portů
com0comOpen source, párování virtuálních portů (COM1↔COM2) pro testování bez hardwaru
com2tcpPřemostění sériového portu na TCP (Linux/Windows)
socatLinux/Unix "švýcarský nůž" pro propojení čehokoliv s čímkoliv (serial↔TCP, serial↔PTY, …)

Programování a ovládání

Windows API

  • CreateFile – otevření \\.\COM1 až \\.\COM256
  • SetCommState / GetCommState – konfigurace (DCB struktura: baud, parity, data bits, stop bits)
  • SetCommTimeouts – časování (ReadIntervalTimeout, ReadTotalTimeoutMultiplier/Constant, WriteTotalTimeout…)
  • ReadFile / WriteFile – I/O (sync nebo overlapped/async)
  • SetCommMask / WaitCommEvent – události (RXCHAR, TXEMPTY, CTS, DSR, RLSD, BREAK, ERR)
  • EscapeCommFunction – ovládání RTS, DTR, BREAK, CLRDTR, CLRRTS
  • GetCommModemStatus – stav CTS, DSR, RI, DCD

.NET / C#

using System.IO.Ports;
var port = new SerialPort("COM3", 9600, Parity.None, 8, StopBits.One);
port.Handshake = Handshake.RequestToSend; // RTS/CTS
port.DataReceived += (s, e) => { /* čtení */ };
port.Open();
port.Write("AT\r\n");

Python (pyserial)

import serial
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
ser.write(b'AT\r\n')
line = ser.readline()

Linux (termios)

#include <termios.h>
int fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY);
struct termios tty;
tcgetattr(fd, &tty);
cfsetospeed(&tty, B9600);
cfsetispeed(&tty, B9600);
tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS8;     // 8-bit
tty.c_cflag |= CREAD | CLOCAL;                   // enable RX, ignore modem control
tty.c_cflag &= ~(PARENB | PARODD);               // no parity
tty.c_cflag &= ~CSTOPB;                          // 1 stop bit
tty.c_cflag &= ~CRTSCTS;                         // no HW flow control (or enable)
tty.c_cc[VMIN] = 1;  tty.c_cc[VTIME] = 5;        // blocking read
tcsetattr(fd, TCSANOW, &tty);

Ovladače (Windows)

  • FTDI CDM – Virtual COM Port (VCP) + D2XX direct driver
  • Silicon Labs CP210x VCP – standardní COM port
  • Prolific PL2303 – legacy, problémy s Win10+
  • CH340/CH341 – vyžaduje specifický ovladač (často už v Win10+)
  • Windows 10+ – většina USB-CDC (ACM) funguje bez ovladače

Ladění (Debugging)

Nástroj / metodaPoužití
Loopback testZapojit TXD→RXD (piny 2↔3 DB-9), posílat data → musí se vrátit
Hardwarový RS-232 monitorT-ratio kabel (3 konektory) – pasivní odposlech obou směrů
Logování v termináluHercules, RealTerm – uložit do souboru s časovými razítky
Osziloskop / logický analyzátorMěření úrovní, timing, start/stop bity, baud rate error
Break signalDlouhá log. 0 (Space) – signalizace chyby/resetu

Testovací utility (z rs-232.htm)

UtilityPopis
RFID CheckerTest RFID čteček na sériovém portu
sal232Testová utility pro sériový port
Hercules Setup UtilityTerminál + TCP/IP + UDP + logování
TerminalTerminál s X/Y/Z modem protokoly
TeraTermSSH/Telnet/Serial, makra
PPP.exeOvládání RS-232 přes PPP (starší)
Ovladače sériového portuKontrola v Device Manageru (Ports COM & LPT)

Běžné problémy a řešení

ProblémPříčinaŘešení
Žádná komunikaceŠpatný kabel (null-modem vs straight), špatné pinyZkontrolovat TXD↔RXD, GND
Špatné znaky (moječky)Nesprávná rychlost/parita/stop bityOvěřit 8N1, oba konce stejně
Ztráta dat při vysoké rychlostiChybějící/špatné handshakingZapnout RTS/CTS, zvětšit buffery
Port neotevřenObsazen jiným programem, špatné jméno (COM vs /dev/ttyUSB)Task Manager, dmesg | grep tty
Zničený portRozdílové zemění potenciály (ground loop)Izolovaný převodník, galvanické oddělení
USB-RS232 nefunguje po uspáníOvladáč neobnoví stavReconnect USB, update ovladače, zakázat USB selective suspend

Související poznámky

Built with LogoFlowershow