RS485 breakout fonctionnement RTS

La gestion de la collision repose généralement sur l'écoute, par l'émetteur, des données qu'il envoie.
L'émetteur compare ce qu'il a envoyé avec ce qu'il reçoit.

  • S'il les données sont intègres alors il n'y a pas eu de collision.
  • Si les données sont modifiées alors il y a eu collision. Dans ce cas là il faut renvoyer le message. Il y a plusieurs stratégies pour gérer ce renvoie. Une stratégie assez courante est basée sur une attente d'une durée aléatoire. Chaque carte dispose d'une "graine" différente pour l'initialisation du générateur de nombres aléatoires afin de maximiser la chance que 2 cartes ne réémettent pas au même moment.Si ma mémoire est bonne c'est le principe utilisé en Ethernet token ring.

La gestion des collisions impose quelques contraintes sur le protocole. Dans la mesure où il peut y avoir réémission d'un paquet de données, ces paquets doivent être identifiés pour que le doublon soit connu du récepteur. il faut donc avoir une entête indiquant l'ID de l'émetteur, l'ID du destinataire et un numéro unique identifiant le message (unique par émetteur et sur une période de temps suffisante pour éviter toute ambiguïté).
Il faut aussi un contrôle de cohérence (CRC) et une fin de message afin que le destinataire puisse s'assurer que le message reçu est valide.
Après c'est le protocole qui va définir si le destinataire redemande l'émission du message perdu ou s'il repose uniquement sur le contrôle fait par l'émetteur.