2009-06-05 8 views
57

Quelle est la différence entre le contrôle de flux matériel DTR/DSR et RTS/CTS? Quand est-ce que chacun est utilisé? Pourquoi avons-nous besoin de plus d'un type de contrôle de flux matériel? :)Quelle est la différence entre le contrôle de flux DTR/DSR et RTS/CTS?

+9

Je ne sais pas si c'est vraiment le bon endroit pour cette question mais +1 pour l'énorme vague de nostalgie que je viens de ressentir. Bien que je ne sois pas sûr de le donner -1 pour me rappeler a) Quel âge j'ai et b) que j'ai utilisé la réponse à cette question mais que j'ai oublié. – AnthonyWJones

+0

Cela appartient probablement à superuser.com ... mais il n'existe pas encore. – derobert

Répondre

44
  • DTR - Data Terminal Ready
  • DSR - Data Set Ready
  • RTS - Demande d'envoi
  • CTS - Envoyer à

Il y a plusieurs façons de faire les choses parce qu'il n'y avait jamais de protocoles intégrés dans les normes. Vous utilisez le «standard» ad hoc que votre équipement met en œuvre. Juste basé sur les noms, RTS/CTS semblerait être un ajustement naturel. Cependant, il est à l'envers des besoins qui se sont développés au fil du temps. Ces signaux ont été créés à un moment où un terminal enverrait par lots un écran plein de données, mais le récepteur pourrait ne pas être prêt, d'où la nécessité d'un contrôle de flux. Plus tard, le problème serait inversé, car le terminal ne pouvait pas suivre les données provenant de l'hôte, mais les signaux RTS/CTS vont dans la mauvaise direction - l'interface n'est pas orthogonale, et il n'y a pas de signaux correspondants dans l'autre sens. Les fabricants d'équipement se sont adaptés au mieux, notamment en utilisant les signaux DTR et DSR.

+1

Bien résumé. Ensuite, le contrôle de flux «soft» xOn/xOff est venu à être. – n8wrl

+0

Remarque: DTR/DSR est devenu moins commun que RTS/CTS après le milieu des années 80. Linux kernal n'a jamais supporté DTR/DSR: au moment où le noyau linux supportait DTR/DSR, le port série 232 était devenu obsolète. – david

+5

@david Ces signaux ne sont pas limités à RS232, mais sont également utilisés dans les UART TTL. Et ceux-ci sont loin d'être obsolètes. – glglgl

24

La différence entre eux est qu'ils utilisent des broches différentes. Sérieusement, c'est tout. La raison pour laquelle ils existent tous deux est que RTS/CTS n'était pas censé être un mécanisme de contrôle des flux, à l'origine; c'était pour les modems semi-duplex de coordonner qui envoyait et qui recevait. RTS et CTS ont été utilisés à mauvais escient pour le contrôle de flux si souvent qu'il est devenu standard.

+1

J'ai complètement oublié demi-duplex. Je me rappelle vaguement avoir vu ça en action, sur une imprimante ligne/lecteur de cartes. Merci pour cette réponse. –

+0

Maintenant superuser.com existe, et il nous dit qu'au moment de demander, le noyau Linux ne supportait pas la signalisation DTR/DSR. http://superuser.com/questions/345005/how-to-do-hardware-dtr-dsr-flow-control-on-linux-serial-port-programming. Ce qui indique une autre différence: la signalisation DTR/DSR est moins fréquente/n'a pas été utilisée par les smart-modems. – david

Questions connexes