RS-232 Software a nástroje
Přehled softwarových nástrojů pro práci s RS-232.
Terminálové programy
| Program | Platforma | Vlastnosti |
|---|
| Hercules Setup Utility | Windows | Freeware, sériový terminál + TCP/IP, UDP, logování, makra, hex/ASCII zobrazení |
| Terminal (Terminal.exe) | Windows | Jednoduchý terminál, podpora X/Y/Z modem, skriptování |
| TeraTerm | Windows | Open source, SSH, Telnet, sériový port, makra (TTL), pluginy |
| PuTTY | Windows/Linux/macOS | SSH/Telnet/Serial, věrohodný, portable |
| RealTerm | Windows | Specializovaný pro embedded, hex/dec/bin zobrazení, timestamps, capture |
| minicom | Linux/macOS | Klassický textový terminál, konfigurovatelný |
| screen | Linux/macOS | screen /dev/ttyUSB0 9600 – rychlý přístup |
| picocom | Linux/macOS | Minimalistický, bez závislostí |
| CoolTerm | Windows/macOS/Linux | GUI, hex view, připojení více portů zároveň |
Monitoring a analýza (SPY)
| Nástroj | Popis |
|---|
| Listen | Pasivní 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 + Wireshark | Zachycování USB-RS232 převodníků na USB vrstvě |
Virtuální sériové porty
| Nástroj | Popis |
|---|
| HW Virtual Serial Port (HW VSP) | Vytváří virtuální COM porty přesílané na TCP/IP (klient/server), mapování fyzických portů |
| com0com | Open source, párování virtuálních portů (COM1↔COM2) pro testování bez hardwaru |
| com2tcp | Přemostění sériového portu na TCP (Linux/Windows) |
| socat | Linux/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;
port.DataReceived += (s, e) => { };
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;
tty.c_cflag |= CREAD | CLOCAL;
tty.c_cflag &= ~(PARENB | PARODD);
tty.c_cflag &= ~CSTOPB;
tty.c_cflag &= ~CRTSCTS;
tty.c_cc[VMIN] = 1; tty.c_cc[VTIME] = 5;
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 / metoda | Použití |
|---|
| Loopback test | Zapojit TXD→RXD (piny 2↔3 DB-9), posílat data → musí se vrátit |
| Hardwarový RS-232 monitor | T-ratio kabel (3 konektory) – pasivní odposlech obou směrů |
| Logování v terminálu | Hercules, RealTerm – uložit do souboru s časovými razítky |
| Osziloskop / logický analyzátor | Měření úrovní, timing, start/stop bity, baud rate error |
| Break signal | Dlouhá log. 0 (Space) – signalizace chyby/resetu |
Testovací utility (z rs-232.htm)
| Utility | Popis |
|---|
| RFID Checker | Test RFID čteček na sériovém portu |
| sal232 | Testová utility pro sériový port |
| Hercules Setup Utility | Terminál + TCP/IP + UDP + logování |
| Terminal | Terminál s X/Y/Z modem protokoly |
| TeraTerm | SSH/Telnet/Serial, makra |
| PPP.exe | Ovládání RS-232 přes PPP (starší) |
| Ovladače sériového portu | Kontrola v Device Manageru (Ports COM & LPT) |
Běžné problémy a řešení
| Problém | Příčina | Řešení |
|---|
| Žádná komunikace | Špatný kabel (null-modem vs straight), špatné piny | Zkontrolovat TXD↔RXD, GND |
| Špatné znaky (moječky) | Nesprávná rychlost/parita/stop bity | Ověřit 8N1, oba konce stejně |
| Ztráta dat při vysoké rychlosti | Chybějící/špatné handshaking | Zapnout RTS/CTS, zvětšit buffery |
| Port neotevřen | Obsazen jiným programem, špatné jméno (COM vs /dev/ttyUSB) | Task Manager, dmesg | grep tty |
| Zničený port | Rozdílové zemění potenciály (ground loop) | Izolovaný převodník, galvanické oddělení |
| USB-RS232 nefunguje po uspání | Ovladáč neobnoví stav | Reconnect USB, update ovladače, zakázat USB selective suspend |
Související poznámky