comment verifier les erreurs sur une liaison serie?

Dans un montage pour un train electrique, j'utilise 2 arduino: 1 avec plusieurs boutons, potentiometre,...qui fait télécommande et un qui reçoit et applique les ordres en actionnant des relais ou autre. je me suis fait un petit language qui code chaque action sur 3 caracteres.

La liaison est donc une liaison série avec un cable blindé de 1m.

Tout fonctionne parfaitement sauf quand certaines locomotives tournent car elles doivent generer des plus grosses pertubations electromagnetiques. j'ai alors un fonctionnement trés perturbé.

Je suis complétement débutant en communication série et j'aimerai savoir comment ajouter un systeme de vérification des messages.

Tu pourrais aller un code correcteur d’erreur, ECC en anglais. Un ECC ajoute de la redondance à l’information transmise pour pouvoir détecter et éventuellement corriger des erreurs de transmission.

Il y a des exemples sur la page Wikipedia. Un code de Hamming permet de détecter jusqu’à 2 erreurs ou de détecter et corriger une erreur sur un mot de 8 bits.

Bonsoir

plus simple : une vérification des messages par somme de contrôle ajoutée au message :
https://fr.wikipedia.org/wiki/Somme_de_contr%C3%B4le
détection sans correction

Ou CRC : Contrôle de redondance cyclique — Wikipédia

Ce n'est pas si simple : si le récepteur effectue un contrôle du type checksum ou CRC cela implique qu'il puisse répondre à l'émetteur : ACK si c'est OK, ou NACK si ce n'est pas OK, et l'émetteur doit répéter si ce n'est pas OK. Cela s'appelle un protocole de communication asynchrone.

Autre solution : transmission symétrique. Le câble est blindé, mais le blindage ne transporte pas de signal. Le câble comporte deux fils, un chaud et un froid, qui transportent le signal en opposition de phase.
L'émetteur est constitué de deux AOP.
Le récepteur dé-symétrise le signal à l'aide d'un AOP. Les signaux arrivent directement sur les entrées + et - de l'AOP.
S'il y a un parasite, il affectera les deux fils de la même manière, et la dé-symétrisation annulera le parasite.
Si cela marche pour un microphone émettant des millivolts, cela marchera aussi avec des volts.

Câble blindé : une paire torsadée pourrait aller aussi ?
Là, il faut jouer du fer à souder ou trouver des modules à connecter entre le câble et l'Arduino.

Il faudrait avoir un schéma, en particulier y a t-il une isolation totale entre l'ARDUINO et les rails (donc la puissance) ou pas ?
Et comment tout cela est-il alimenté ?

Bonjour

Plonge toi dans le site locoduino, tu verras que tu es loin d'être le premier à rencontrer ce problème.
Leur experience a conduit les locoduinistes à être adeptes du bus can, qui permet de se mettre à l'abri de toutes sortes de parasites électriques, frequents dans ce hobby.

https://www.locoduino.org/spip.php?article130