Bonjour,
Je cherche des information sur le handshaking sur une liaison RS232 et je ne trouve sur le net que des informations confuses et contratictoires.
autant le fonctionnement des lignes TX et RX est trivial, autant tout le reste est confus.
Je poste ici ce que j'ai fini par comprendre et qui semble être l'interprétation la plus courante.
Pouvez vous SVP vérifier et me détromper si je fait un contresens.
(Merci de ne valider que si vous êtes sûrs)
Pour commencer, des signaux de même nom n'ont pas la même fonction selon si on considère le DTE ou un DCE.
Ceci prêtant assez gravement à confusion je considère ici des connexion d'égal à égal, c'est à dire que tous les équipements sont des DTE.
- TX est une sortie (évident)
- RX une entrée (évident)
- DTR "Data treminal Ready" est une sortie qui signifie que nous sommes prets à communiquer (niveau connexion/session)
- DSR "Data set Ready" est une entrée qui signifie que l'autre appareil est pret à communiquer (niveau connexion/session)
- CTS "Clear to send" est une entrée signifiant que l'autre bout est pret à recevoir les données qu'on va lui envoyer. (niveau tampon/mémoire)
- RTS "Request to send" est une sortie qui signifie que l'on est pret à recevoir les données. (niveau tampon/mémoire)
Je trouve les signaux mal nommés mais passons.
Il semble classique d'emploier un cable croisé TX/RX , RTS/CTS et DTR/DSR
Mais j'ai aussi vu des câbles avec uniquement TX/RX et pontant à chaque bout RTS sur CTS et DTR sur DSR.
Alors, pour DTR sur DSR, pourquoi pas... Ca ne permet pas de savoir si il y a quelque chose à l'autre bout mais ça permet de savoir si le câble est bien connecté ou non. Admettons...
Par contre RTS sur CTS je trouve ça vraiment bizare car en cas d'utilisation des controles de flux, ça veut dire qu'on ne peut transmettre que si on est soi-même en état de recevoir. Ca me semble potentiellement bloquant.
Je trouve qu'il vaudrait mieux laisser ces lignes flottantes pour que ça bloque en cas d'activation d'un controle de flux non supporté par le câble.
Qu'en pensez vous ?
-----