Je travaille avec un appareil qui utilise la communication RS232 avec un PC. Il y a eu une certaine confusion car ils ont défini leurs broches TX et RX par rapport à l'appareil. Dans leurs définitions, ils signifient que TX est la broche qui envoie les données de l'appareil. Dans mon esprit, cela devrait être étiqueté RX car c'est la broche sur laquelle l'ordinateur reçoit.
Comment définir les broches? Sont-ils relatifs à chaque appareil ou au "contrôleur"?
Réponses:
Il serait peut-être plus facile à comprendre si nous examinons rapidement comment la norme RS-232 a été utilisée à l'origine.
Remarque: Tous les numéros de broches ci-dessous se réfèrent au connecteur D 25 broches d'origine; la numérotation a changé sur le connecteur à 9 broches utilisé sur les PC ultérieurs.
Contexte
DTE = Data Terminal Equipment - Autrefois, il s'agissait généralement d'un terminal ou d'une imprimante, ou d'un équipement émulant ceux-ci.
DCE = Data Communications Equipment - autrefois, il s'agissait généralement d'un modem ou d'une autre interface WAN.
La broche 2 du connecteur D à 25 broches d'origine (décrit dans la norme comme "Données transmises", "Circuit BA", "V24. Numéro 103") doit être des données de l'ETTD vers l'ETCD.
La broche 3 du connecteur D à 25 broches d'origine (décrit dans la norme comme "Données reçues", "Circuit BB", "V24. Numéro 104") doit être des données de l'ETCD vers l'ETTD.
Cela signifiait que le câble reliant un terminal et un modem était "direct" - la broche 2 sur un terminal (DTE) à une extrémité du câble d'où provenaient les données, était connectée à la broche 2 sur un modem (ou similaire) de l'autre extrémité du câble (DCE) où ces données ont été reçues. Le modem a ensuite envoyé ces données à l'aide de la liaison de communication, à tout équipement se trouvant à l'autre extrémité de cette liaison.
La broche 3 "Données reçues" était le signal de données dans la direction opposée - transmis par le modem (DCE) sur la broche 3, et reçu par le terminal (DTE) sur la broche 3.
Par conséquent, vous pouvez voir que l'étiquetage de ce qui a été transmis et de ce qui a été reçu était du point de vue de l'ETTD (c'est-à-dire du terminal). Tout cela avait du sens lorsque les connexions typiques étaient entre un ETCD et un ETTD.
Cependant, les équipements que nous utilisons de nos jours (même lorsqu'ils n'utilisent pas RS-232 et utilisent plutôt une interface de protocole TTL ou autre tension UART) sont généralement tous des DTE efficaces (à une exception près, les modems). La connexion de la broche 2 (qui est une sortie) sur un élément de l'ETTD, à la broche 2 (une autre sortie) sur un autre équipement configuré comme DTE, n'a aucun sens (et lorsque vous utilisez des signaux de niveau logique, cela pourrait même endommager le matériel). C'est là qu'intervient l'utilisation de câbles «croisés» ou «null modem» (c'est-à-dire sans modem).
Ta question
À partir des informations générales ci-dessus, vous pouvez voir que leur étiquetage est correct si leur appareil agit comme DTE (ce que la plupart sont, sauf s'il s'agit d'un modem ou d'une autre interface WAN). Sur un morceau de DTE, la broche étiquetée « Données transmises » (broche 2 sur le connecteur 25 broches) n'envoie des données. (Et, comme expliqué ci-dessus, sur un élément DCE (par exemple un modem), la broche connue sous le nom de "données transmises" (broche 2 sur son connecteur à 25 broches) est en fait une entrée, qui reçoit le signal de l'ETTD.)
Le port série du PC sera également configuré comme DTE (sauf s'il a un port série très inhabituel - qui ne s'appliquera pas ici, comme vous le saurez s'il s'applique).
Par conséquent, vous connectez un appareil DTE (cet appareil que vous avez mentionné) à un appareil DTE (le PC), c'est-à-dire qu'il n'y a pas d'ETCD dans la "terminologie RS-232, c'est-à-dire pas de modem, et le RS-232" null modem "ou" croisé " Quelle que soit la broche est RS-232 "Données transmises" (probablement celle que vous mentionnez, elles ont été étiquetées comme TX) sur cet appareil DTE, qui sera une sortie , devra être connecté au RS-232 "Reçu Data "pin sur votre PC (également un appareil DTE), qui est une entrée (et évidemment vice versa pour le transfert de données dans l'autre sens).
Bien que cela ne semble pas s'appliquer à vous, j'ajouterai simplement: Pour rendre la vie plus compliquée, certains fabricants essaient d '«aider» en étiquetant efficacement leur équipement DTE comme s'il s'agissait d'un élément DCE. Ils marquent leur broche d' entrée de données comme Tx afin que l'utilisateur se connecte simplement "Tx" de l'appareil externe (qui, s'il s'agit de DTE, sera la sortie de données à partir de là) à la broche marquée "Tx" sur leur équipement (qu'ils savent être une entrée ). Leur permettant ainsi de dire "il suffit de connecter Tx sur votre appareil à Tx sur notre équipement". Ils pensent qu'ils essaient d'aider, mais un tel étiquetage ne fait souvent qu'ajouter à la confusion.
Comme Dan Mills l'a mentionné dans un commentaire, beaucoup d'entre nous qui ont grandi avec RS-232, ont passé des heures heureuses à connecter divers équipements avec des implémentations RS-232 légèrement différentes, en utilisant les «boîtes de dérivation» qu'il a décrites. Ces boîtiers de dérivation ont des LED, qui indiquent quels signaux sont activement pilotés (cela vous permet rapidement de voir si l'équipement est configuré en DTE ou DCE: la broche 2 est-elle pilotée sur cet équipement? Oui = c'est DTE) et a des endroits où le cavalier court des câbles peuvent être utilisés pour relier les différentes broches du connecteur.
la source
Contrairement à de nombreuses configurations de type bus, qui utilisent le nom du signal , la communication série utilise traditionnellement le nom de fonction pour les broches. Donc, si l'appareil transmet sur une broche, il est marqué Tx. S'il reçoit, il est marqué Rx. Évidemment, vous connectez Tx d'un appareil avec RX de l'autre et vice versa.
Pour mettre les choses en perspective, l'appareil dont vous parlez contient également un "ordinateur", ce qui est essentiellement le MCU. Pourquoi un ordinateur devrait-il dicter les noms des broches de l'autre ordinateur, en particulier compte tenu de la nature asynchrone bidirectionnelle de la communication?
Le cas particulier est lorsque l'appareil en question est de type passe-système, comme un ancien modem ou un convertisseur FT232 moderne. Ils n'utilisent pas de broches Tx / Rx pour communiquer avec l'ordinateur, ils les utilisent pour transmettre les communications de l'ordinateur plus loin sur la ligne. Pour cette raison, leurs broches sont nommées d'après les signaux qui transitent.
MISE À JOUR: Voici quelques exemples pour illustrer le point.
Des millions de personnes utilisent probablement Arduinos de nos jours, certaines même sans avoir la moindre idée de comment cela fonctionne. Ils connectent Tx à Rx, Rx à Tx, Gnd à Gnd et ils sont prêts à partir. Ce qu'ils ne réalisent souvent pas, c'est qu'ils créent techniquement un null-modem, ce qui permet à deux MCU de se parler.
Maintenant, les mêmes personnes veulent parfois ajouter une connectivité USB à leurs Arduinos. Ils connectent TX à TX et RX à RX sur la puce adaptateur ou convertisseur. Notez que ceux souvent nommés "TX-IN" et "RX-OUT" pour éviter toute confusion. Encore une fois, ce qui semble évident mais rarement pensé, c'est que techniquement cet adaptateur USB est un périphérique d'intercommunication. Ce qu'il "dit" sur la broche RX ne vient pas de l'adaptateur lui-même, il vient de l'appareil de l'autre côté de la ligne. Et devine quoi? Il est connecté quelque part à la broche TX.
la source
Ils sont généralement relatifs au périphérique, car les périphériques RS232 n'ont pas de relation "maître / esclave" ou "client / serveur". Le protocole SPI a une architecture maître / esclave, ils sont donc étiquetés "MISO" (Master In Slave Out) et "MOSI" (laissé comme exercice à l'étudiant). C'est au niveau de l'appareil; Je ne peux pas parler de ce que les concepteurs de circuits individuels pourraient choisir comme noms de réseau.
la source
Malheureusement, pour les ingénieurs, c'est une énigme entre deux tranches d'étron.
Il n'y a pas de vraie solution logique, les deux sens peuvent avoir un sens logique.
J'essaie d'étiqueter les broches, les circuits imprimés, les dispositions de circuits intégrés, les tableaux de connexions, les logiciels, avec les mots IN / OUT et / ou les flèches indiquant la direction. Utilisez les mots "TX-out" "RX-in" "CTS-out" "RTS-in" sur vos schémas, etc. Cela résout complètement l'ambiguïté. [Je pense généralement que TX et RX doivent être correctement nommés, c'est-à-dire que TX doit être une sortie].
Voici un circuit imprimé où les signaux traversent une barrière d'isolement. Notez les flèches, donc quelqu'un qui le débogue ou essaie de monter un connecteur sait clairement dans quelle direction les signaux vont.
Les signaux de contrôle sont encore pires. (ainsi qu'une direction électrique, ils ont aussi une direction de contrôle logique)
Les signaux de commande ont une documentation expliquant explicitement la fonction: «CTS (out) signale à l'ordinateur que l'appareil est prêt à recevoir des données»
Parfois, les deux sens ont du sens en même temps: j'ai une puce où RX et TX sont correctement nommés avec leur propre fonction (du point de vue des puces). Mais les broches de prise de contact sont nommées CTS et RTS correspondant aux broches du PC auxquelles elles se connecteront, car c'est à cela que le logiciel et les voyants d'état font référence.
Quelque chose qui a aidé ces dernières années, c'est que les appareils utilisent un connecteur DE9F qui se connecte directement à un port série PC avec un câble mf direct. Cela a réduit la gratuité pour tout le passé.
la source
RXD>
avec la flèche pointant loin de la broche, ce qui signifie qu'il y a un signal sortant de cette broche - je m'attendrais certainement à ce que ce soit une sortie , pas une entrée!