Capitolo 3 – Sniffare/monitorare la seriale tra “Master PC” e “Target Device”
Comunicazione tra un dispositivo hardware ed un PC via seriale
Il Master PC (a destra) dialoga con il Target Device tramite un
Serial Communication Device (tipicamente un convertitore USB↔Seriale:
UART/TTL, RS-232 oppure RS-485). Il Sniffing PC (a sinistra)
apre due porte (COM5 e COM6) e, con due adattatori USB-seriale,
ascolta passivamente le linee: su COM5 si collega l’RX alla linea TX del Device,
su COM6 l’RX alla linea TX del PC. Le masse (GND) sono in comune.
3.1 Scopo e concetti
Vogliamo monitorare e sniffare i byte che transitano tra un software sul Master PC
e il Target Device, senza interferire con la comunicazione. È un tipico man-in-the-middle fisico passivo:
due adattatori USB-seriale collegati solo in RX “leggono” ciascuna direzione.
Questo è utile per debug, analisi protocollare e come logger per audit o reverse engineering.
3.2 Collegamenti (passo-passo)
- COM5 (Sniffing PC) → collega l’RX dell’adattatore alla TX del Device (ascolta ciò che invia il Target).
- COM6 (Sniffing PC) → collega l’RX dell’adattatore alla TX del PC (ascolta i comandi del Master PC).
- GND comune tra i due adattatori e i due dispositivi (riferimento condiviso).
- Non collegare i TX degli adattatori del Sniffing PC: restiamo solo in ascolto (alta impedenza), senza disturbare la linea.
In SerialTool apri due sessioni: COM5 e COM6. Imposta in entrambe
baud rate e formato identici a quelli usati dal Master/Device (es. 115200-8N1). Se non conosci il baud,
prova i valori comuni o misura la durata del bit con un oscilloscopio/analizzatore logico.
3.3 Stesso protocollo, livelli diversi: UART/TTL, RS-232, RS-485
Il protocollo seriale asincrono (start, 7/8 bit dati inviati LSB-first, parità opzionale, 1+ stop) è lo stesso.
Cambia solo il livello fisico con cui i bit viaggiano sul filo:
- UART/TTL (3.3 V/5 V): segnali single-ended, “1” alto / “0” basso.
- RS-232: livelli invertiti e a tensione ± (tipicamente ±3…±12 V), sempre single-ended.
- RS-485: differenziale su coppia A/B, spesso half-duplex multi-drop; consigliata massa di riferimento comune.
Perciò usa l’adattatore corretto:
USB↔TTL per UART, USB↔RS-232 per RS-232, USB↔RS-485 per RS-485. Il frame resta identico, ma i livelli elettrici e la topologia (differenziale/terminazioni) cambiano.
3.4 Dove si usa (CNC, industriale, altro)
Questo collegamento è comune in ambito CNC, macchine industriali, PLC/HMI, robotica,
bilance, POS, sensori, strumenti di misura, automazione building e in generale in ogni sistema dove un PC/PLC
comanda un dispositivo via seriale. Il metodo di sniffing qui descritto consente di monitor/sniff/debug/log il traffico
per analisi funzionale, diagnosi di guasti, tracciamento comandi e validazione.
3.5 Modbus su seriale
Spesso la porta seriale veicola Modbus RTU/ASCII, protocollo master/slave (oggi client/server) molto diffuso in ambito industriale.
Il Master invia richieste (lettura/scrittura di coil e register) e il Device risponde.
SerialTool include un client Modbus per interrogare rapidamente i registri (diagnosi e test),
oltre al monitor/hex viewer utile per vedere i frame grezzi (indirizzo, funzione, dati, CRC).
3.6 Firmware update e parametrizzazione
Nel mondo embedded la seriale è usatissima per aggiornare firmware o passare parametri al Target.
Esempi: bootloader su schede custom, ecosistemi tipo Arduino, microcontrollori vari. Qui lo sviluppatore può avere due esigenze:
- Debug dell’applicazione che dialoga con il Target (verifica dei comandi, timing, errori).
- Reverse engineering di un protocollo esistente (c’è un software Master “chiuso” che parla con una scheda;
sniffo per comprenderne i messaggi e poi replicarli con un mio software).
3.7 Note pratiche e strumenti
- Questo setup richiede tipicamente due PC (il Master e lo Sniffing PC) e almeno due convertitori USB-seriale per lo sniffing bidirezionale.
- Per RS-232 usa un tap/converter RS-232; per RS-485 collega un’interfaccia in sola ricezione ai morsetti A/B
(rispettando terminazioni e polarità). Su RS-485 half-duplex riconoscerai la direzione dal contesto temporale.
- Escludiamo i pin di controllo (RTS/CTS, DTR/DSR, DCD, RI); se il sistema usa hardware flow-control, valuta sonde dedicate.
- In SerialTool puoi attivare viste HEX, timestamp, salvataggio come logger (file testo/CSV/pcap) per analisi successive.
In sintesi: stesso protocollo seriale (frame asincroni), diversi livelli fisici (TTL/RS-232/RS-485).
Con il tapping passivo a due RX e un software come SerialTool puoi monitorare, sniffare,
fare debug e loggare in modo affidabile la comunicazione tra Master PC e Target Device.