Chapitre 3 – Sniffing/surveillance de la liaison série entre « PC Maître » et « Périphérique Cible »
Communication entre un appareil matériel et un PC via une liaison série
Le PC Maître (à droite) communique avec le Périphérique Cible par l'intermédiaire d'un
Dispositif de Communication Série (généralement un convertisseur USB↔Série :
UART/TTL, RS-232 ou RS-485). Le PC de Sniffing (à gauche)
ouvre deux ports (COM5 et COM6) et, avec deux adaptateurs USB-série,
écoute passivement les lignes : sur COM5, connectez RX au TX du Périphérique,
sur COM6, connectez RX au TX du PC. Les masses (GND) sont communes.
3.1 But et concepts
Nous voulons surveiller et sniffer les octets circulant entre le logiciel sur le PC Maître
et le Périphérique Cible, sans interférer avec la communication. C'est un typique homme du milieu physique passif :
deux adaptateurs USB-série connectés uniquement en RX "lisent" chaque direction.
Ceci est utile pour le débogage, l'analyse de protocole et comme enregistreur pour l'audit ou la rétro-ingénierie.
3.2 Connexions (étape par étape)
- COM5 (PC de Sniffing) → connectez le RX de l'adaptateur au TX du Périphérique (écoutez ce que la Cible envoie).
- COM6 (PC de Sniffing) → connectez le RX de l'adaptateur au TX du PC (écoutez les commandes du PC Maître).
- GND commun entre les deux adaptateurs et les deux appareils (référence partagée).
- Ne connectez pas le TX des adaptateurs du PC de Sniffing : nous restons en mode écoute seule (haute impédance), sans perturber la ligne.
Dans SerialTool, ouvrez deux sessions : COM5 et COM6. Dans les deux, réglez
le débit baud et le format identiques à ceux utilisés par le Maître/le Périphérique (par ex., 115200-8N1). Si vous ne connaissez pas le débit baud,
essayez les valeurs courantes ou mesurez la durée du bit avec un oscilloscope/analyseur logique.
3.3 Même protocole, niveaux différents : UART/TTL, RS-232, RS-485
Le protocole série asynchrone (start, 7/8 bits de données envoyés LSB-first, parité optionnelle, 1+ stop) est le même.
Seul le niveau physique sur lequel les bits voyagent change :
- UART/TTL (3,3 V/5 V) : signaux asymétriques, "1" haut / "0" bas.
- RS-232 : niveaux de tension inversés et ± (généralement ±3…±12 V), toujours asymétriques.
- RS-485 : différentiel sur une paire A/B, souvent demi-duplex multi-drop ; une masse de référence commune est recommandée.
Utilisez donc l'adaptateur correct :
USB↔TTL pour UART, USB↔RS-232 pour RS-232, USB↔RS-485 pour RS-485. La trame reste identique, mais les niveaux électriques et la topologie (différentiel/terminaison) diffèrent.
3.4 Où est-ce utilisé (CNC, industriel, etc.)
Cette configuration est courante en CNC, dans les machines industrielles, les automates/IHM, la robotique,
les balances, les TPV, les capteurs, les instruments, la GTC, et en général tout système où un PC/automate
contrôle un appareil via une liaison série. La méthode de sniffing décrite ici vous permet de surveiller/sniffer/déboguer/enregistrer le trafic
pour l'analyse fonctionnelle, le diagnostic de panne, le traçage des commandes et la validation.
3.5 Modbus sur série
Les ports série transportent souvent Modbus RTU/ASCII, un protocole maître/esclave (maintenant client/serveur) largement utilisé dans l'industrie.
Le Maître envoie des requêtes (lecture/écriture de coils et de registres) et le Périphérique répond.
SerialTool inclut un client Modbus pour interroger rapidement les registres (diagnostics et tests),
ainsi qu'un surveillant/visualiseur hexadécimal utile pour voir les trames brutes (adresse, fonction, données, CRC).
3.6 Mise à jour du firmware et paramétrage
Dans le monde embarqué, la liaison série est largement utilisée pour les mises à jour de firmware ou la transmission de paramètres à la Cible.
Exemples : bootloaders sur cartes personnalisées, écosystèmes comme Arduino, divers microcontrôleurs. Ici, un développeur peut avoir deux besoins :
- Déboguer l'application qui communique avec la Cible (vérifier les commandes, la temporisation, les erreurs).
- Faire de la rétro-ingénierie d'un protocole existant (il existe un logiciel Maître "fermé" parlant à une carte ;
je sniff pour comprendre ses messages puis je les réplique avec mon propre logiciel).
3.7 Notes pratiques et outils
- Cette configuration nécessite typiquement deux PCs (le Maître et le PC de Sniffing) et au moins deux convertisseurs USB-série pour un sniffing bidirectionnel.
- Pour le RS-232, utilisez un tap/convertisseur RS-232 ; pour le RS-485, connectez une interface réception seule aux bornes A/B
(en respectant la terminaison et la polarité). Sur RS-485 demi-duplex, vous déduirez la direction du contexte temporel.
- Nous excluons les broches de contrôle (RTS/CTS, DTR/DSR, DCD, RI) ; si le système utilise un contrôle de flux matériel, envisagez des sondes dédiées.
- Dans SerialTool, vous pouvez activer les vues HEX, les horodatages, et enregistrer en tant que logger (texte/CSV/pcap) pour une analyse ultérieure.
En bref : même protocole série (trames asynchrones), différents niveaux physiques (TTL/RS-232/RS-485).
Avec un tapping passif à deux RX et un logiciel comme SerialTool, vous pouvez surveiller, sniffer,
déboguer et enregistrer de manière fiable la communication entre un PC Maître et un Périphérique Cible.