Puis-je utiliser seulement 4 fils d’un port série à 8 fils avec contrôle de flux matériel?

Eric Zillinger

Puis-je utiliser seulement 4 fils d’un port série à 8 fils avec contrôle de flux matériel?


Je cherche à connecter un module cellulaire Telit UE910 à un microcontrôleur. Le module utilise une connexion série de style RS232 à 8 fils pour la série principale (USIF0). Je préfère ne pas attacher 8 broches d’E / S, mais j’aimerais toujours utiliser le contrôle de flux matériel. Est-il possible d’utiliser uniquement 4 des 8 fils (RX, TX, CTS, RTS)?

Le module prend également en charge l’utilisation de seulement 2 fils avec un contrôle de flux logiciel. La fiche technique indique que vous devez lier RTS à la terre lorsque vous n’utilisez pas le contrôle de flux matériel. Je crois que c’est juste pour empêcher RTS de flotter, mais il est possible qu’il l’utilise pour basculer entre le mode de contrôle de flux HW et SW. Est-ce probable?

Réponses


 Olin Lathrop

Vous semblez avoir une idée fausse majeure de ce que signifie « série ». Série signifie que les bits de données sont transmis en série, c’est-à-dire les uns après les autres dans le temps. Le nombre de bits que vous considérez comme un mot dans un schéma de transmission série n’a rien à voir avec le nombre de fils et donc le nombre de broches du microcontrôleur nécessaires pour se connecter à ces fils.

Il existe différents types d’interfaces série, mais RS-232 utilise un seul signal pour chaque direction. L’interface RS-232 la plus basique pour la communication bidirectionnelle utilise seulement 3 fils: TX, RX et GND. Il est courant d’utiliser un protocole qui envoie logiquement 8 bits à la fois, mais cela n’a rien à voir avec le nombre de fils puisque chacun de ces bits est envoyé en série (d’où le nom « série ») sur le même fil.

Si vous souhaitez ajouter un « contrôle de flux matériel » à l’interface RS-232 de base, vous avez besoin de deux fils supplémentaires, RTS et CTS pour le boîtier bidirectionnel. Certains microcontrôleurs sont livrés avec des UART suffisamment sophistiqués pour pouvoir gérer RTS et CTS directement dans le matériel. Sur d’autres, vous devez implémenter cela dans le firmware, bien que ce ne soit pas si difficile.

Le contrôle de flux logiciel se fait avec une signalisation intrabande et utilise uniquement les deux fils de base, RX et TX (plus GND, mais cela est implicite, donc nous ne le disons pas normalement). Habituellement, cela se fait en envoyant XOFF pour dire à l’autre côté d’arrêter l’envoi, puis XON pour dire qu’il est OK d’envoyer plus de choses. Si vos données ne contiennent jamais ces codes autrement, il n’y a plus rien à faire. Notez que XON et XOFF sont dans l’espace des codes de contrôle de 0 à 31, donc ne seront pas utilisés si le protocole est basé sur du texte. Si vous utilisez un protocole binaire où tous les codes 0-255 sont possibles, vous utilisez généralement un mécanisme d’échappement pour ajouter les codes utilisés par XON et XOFF.

Gardez à l’esprit que les microcontrôleurs ne peuvent pas se connecter directement à RS-232. La convention est que les UART de niveau logique, tels que ceux inclus dans les microcontrôleurs, ont les données RS-232 inversées sur leurs broches et au niveau logique normal. Par exemple, 0 V à l’UART se traduirait par plus de 5 V sur le fil RS-232, et une logique haute (comme 3,3 ou 5 V) à l’UART se traduirait par moins de -5 V sur le fil RS-232.

RedGrittyBrick

Il peut être utile de mentionner que les appareils se connectant à des appareils RS232 généraux doivent être capables de résister à des courts-circuits indéfinis à la terre ou à n’importe quel niveau de tension jusqu’à ± 25 volts.

Eric Zillinger

Par série de style RS232, je voulais dire qu’il a les lignes RING, DSR, DCD et DTR. Je suppose que j’aurais dû dire 8 fils au lieu de 8 bits. C’est bien de les ignorer? Mon microcontrôleur prend en charge CTS et DTS et je suis conscient des différences de niveau inversé / logique.

Olin Lathrop

@BigJ: Lisez la fiche technique de l’appareil avec lequel vous essayez de communiquer. Avec certains appareils, vous pouvez ignorer en toute sécurité ces lignes rarement utilisées. Avec d’autres, certaines paires peuvent devoir être bouclées les unes sur les autres pour que l’appareil fonctionne.

Scott Seidman

Joliment expliqué. La plupart des cartes mères modernes peuvent très bien gérer le TTL sur le port série, mais vous devez vous rappeler d’inverser le TX et le RX du côté du microcontrôleur. Bien sûr, ce ne serait pas vraiment compatible RS232, mais cela fonctionne souvent à la rigueur.

Eric Zillinger

@OlinLathrop la fiche technique ne fait aucune mention de série à 4 fils, c’est pourquoi je pose cette question. Il autorise cependant 2 fils: « Pour une implémentation minimale, seules les lignes TXD, RXD peuvent être connectées, les autres lignes peuvent être laissées ouvertes à condition qu’un contrôle de flux logiciel soit implémenté ».

 

#), #à, #de, 4, avec, contrôle, d’un, fils?, Flux, matériel, port, Puis-je, série, seulement, utiliser

 

google

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *