Hoofdstuk 3 – De seriële link tussen “Master-pc” en “Doelapparaat” sniffen/monitoren
Communicatie tussen een hardwareapparaat en een pc via seriële poort
De Master-pc (rechts) communiceert met het Doelapparaat via een
Serial Communication Device (meestal een USB↔serieel-converter:
UART/TTL, RS-232 of RS-485). De Sniffing-pc (links)
opent twee poorten (COM5 en COM6) en luistert met twee USB-naar-serieel-adapters
passief mee op de lijnen: op COM5 wordt RX verbonden met de TX van het Apparaat,
op COM6 wordt RX verbonden met de TX van de pc. De massa’s (GND) zijn gemeenschappelijk.
3.1 Doel en concepten
We willen de bytes die tussen de software op de Master-pc en het Doelapparaat lopen monitoren en sniffen, zonder de communicatie te verstoren. Dit is een typisch voorbeeld van een passieve fysieke man-in-the-middle:
twee USB-naar-serieel-adapters die alleen met RX in beide richtingen “meelezen”.
Dit is nuttig voor debug, protocolanalyse en als logger voor auditing of reverse-engineering.
3.2 Verbindingen (stap voor stap)
- COM5 (Sniffing-pc) → verbind de RX van de adapter met de TX van het Doelapparaat (luister naar wat het apparaat verstuurt).
- COM6 (Sniffing-pc) → verbind de RX van de adapter met de TX van de pc (luister naar de commando’s van de Master-pc).
- Gemeenschappelijke GND tussen de twee adapters en de twee apparaten (gedeelde referentie).
- Verbind de TX van de adapters van de Sniffing-pc niet: we blijven in listen-only modus (hoge impedantie), zonder de lijn te storen.
Open in SerialTool twee sessies: COM5 en COM6. Stel in beide sessies
de baudrate en het formaat in zoals gebruikt door Master/Device (bijv. 115200-8N1). Als de baudrate onbekend is,
probeer dan gangbare waarden of meet de bitduur met een oscilloscoop/logic-analyzer.
3.3 Zelfde protocol, andere niveaus: UART/TTL, RS-232, RS-485
Het asynchrone seriële protocol (start, 7/8 databits LSB-first, optionele pariteit, 1+ stopbit) is hetzelfde.
Alleen het fysieke niveau waarop de bits worden verzonden, verandert:
- UART/TTL (3,3 V/5 V): single-ended signalen, “1” is hoog / “0” is laag.
- RS-232: geïnverteerde en ± spanningsniveaus (typisch ±3…±12 V), eveneens single-ended.
- RS-485: differentiële signalering op A/B-paar, vaak half-duplex multi-drop; een gemeenschappelijke referentie-massa wordt aanbevolen.
Gebruik daarom de juiste adapter:
USB↔TTL voor UART, USB↔RS-232 voor RS-232, USB↔RS-485 voor RS-485. Het frame blijft identiek, maar de elektrische niveaus en topologie (differentieel/terminatie) verschillen.
3.4 Waar wordt dit gebruikt (CNC, industrie, enz.)
Deze opstelling is gebruikelijk bij CNC, industriële machines, PLC/HMI, robotica,
weegschalen, POS-systemen, sensoren, meetinstrumenten, gebouwautomatisering en in het algemeen in elk systeem waar een pc/PLC
een apparaat via seriële communicatie aanstuurt. De hier beschreven sniffmethode laat je het verkeer monitoren/sniffen/debuggen/loggen
voor functionele analyse, foutdiagnose, trace van commando’s en validatie.
3.5 Modbus via seriële poort
Seriële lijnen vervoeren vaak Modbus RTU/ASCII, een veelgebruikt master/slave- (nu client/server-) protocol in de industrie.
De Master stuurt aanvragen (read/write van coils en registers) en het apparaat antwoordt.
SerialTool bevat een Modbus-client om snel registers uit te lezen (diagnostiek en testen),
naast de monitor/hex-viewer die nuttig is om ruwe frames te bekijken (adres, functie, data, CRC).
3.6 Firmware-update en parameterisatie
In de embedded wereld wordt seriële communicatie veel gebruikt voor firmware-updates of het doorgeven van parameters aan het Doelapparaat.
Voorbeelden: bootloaders op custom boards, ecosystemen zoals Arduino, diverse microcontrollers. Een ontwikkelaar heeft hier vaak twee behoeften:
- Debuggen van de applicatie die met het Doelapparaat praat (commando’s, timing, fouten controleren).
- Reverse-engineering van een bestaand protocol (er is een “gesloten” Master-software die met een board praat;
ik snif mee om de berichten te begrijpen en ze vervolgens met mijn eigen software te reproduceren).
3.7 Praktische opmerkingen en tools
- Deze opstelling vereist meestal twee pc’s (Master en Sniffing-pc) en minstens twee USB-naar-serieel-converters voor bidirectioneel sniffen.
- Voor RS-232 gebruik je een RS-232-tap/converter; voor RS-485 sluit je een receive-only interface aan op de A/B-klemmen
(rekening houdend met terminatie en polariteit). Bij half-duplex RS-485 leid je de richting af uit de timing.
- Control-pinnen (RTS/CTS, DTR/DSR, DCD, RI) laten we hier buiten beschouwing; als het systeem hardware flow-control gebruikt, overweeg dan speciale probes.
- In SerialTool kun je HEX-weergave, timestamps en logging als logger (tekst/CSV/pcap) inschakelen voor latere analyse.
Kortom: hetzelfde seriële protocol (asynchrone frames), andere fysieke niveaus (TTL/RS-232/RS-485).
Met passieve tapping via twee RX-lijnen en software zoals SerialTool kun je betrouwbaar monitoren, sniffen,
debuggen en loggen van de communicatie tussen een Master-pc en een Doelapparaat.