Comment RS232 fonctionne

Comment RS232 fonctionne : RS232 définit un protocole qui décrit en détail comment un flux de bits de données issequentially transmis sur un fil c’est à dire un flux de bits. L’ordre etla Signification de chaque bit est définie par le protocole. L’explication simple ci-dessous est suffisante pour comprendre RS232-pas besoin de lire un grand manuel!,

RS232 est une norme de protocole de transfert d’informations série qui définit à la fois le protocole (méthode de transmission des données) et le matériel physique pour le faire. Ce document décrit comment cela fonctionne au niveau thephysical ainsi vous saurez quels signaux Vous pouvez vous attendre à voir aux goupilles de themicrocontroller.

QU’est-ce que RS232?,

fondamentalement, c’est une méthode de transfert de données sur un seul fil (vous avez besoin de deux fils pour récupérer les données puisque chaque fil transfère des données dans une seule direction):

c’est une méthode (ou Protocole – une norme convenue) qui définit comment transférer des données entre deux appareils en utilisant quelques fils. Il utilise une méthode de transmission en série où les octets de données sont sortis un bit à la fois sur un fil unique.

Les données ne sont transmises que dans une direction pour chaque fil, donc pour la communication bidirectionnelle (deux directions), vous avez besoin de deux fils., Il ne s’agit donc pas d’un système de communication lan multidrop tel que RS485 mais d’un protocole point à point.

ces deux avec une référence de masse (total: trois fils) constituent la configuration minimale avec laquelle vous pouvez vous en sortir.

Remarque: Pour des distances de communication plus fiables, vous devrez peut-être utiliser d’autres connexions définies dans la norme RS232, telles que DTR DCT, etc. signaux de poignée de main, etc.

plus formellement RS232 est un protocole de communication asynchrone qui vous permet de transférer des données entre des appareils électroniques.,

fondamentalement, il peut transférer un seul octet de données sur un câble série havingbetween 3 à 22 signaux et fonctionnant à des vitesses de 100 à 20K bauds. Commonbaud débits utilisés sont 2.4 k, 9.6 K, 19.2 K, La longueur du câble peut être jusqu’à 50ft. Des débits en bauds plus élevés sont utilisés mais non couverts par la norme, ils fonctionnent toujours, par exemple 38400,57600 bauds (bits/s).

pour transférer un bloc de données, des octets individuels sont transmis l’un après l’autre.,

Cette section décrit comment RS232 fonctionne en général sans décrire les méthodes handshake-seul le système le plus simple est décrit – c’est le plus utile et le plus susceptible de fonctionner!.

les signaux de prise de contact nécessitent un matériel de traduction de niveau supplémentaire (un RS232chip avec plus d’E/S) et bien que simples ne sont généralement pas requis pour le fonctionnement de la carte de développement. Vous pouvez en avoir besoin pour les systèmes qui contrôlent plusieurs périphériques où vous devrez peut-être temporairement stopdata à partir d’une unité. Il y a une section sur les signaux de prise de contact plus loin dans ce document.,

les données sont transmises en série dans une direction sur une paire de fils. La sortie de données est étiquetée Tx (indiquant la transmission) tandis que les données entrant sont étiquetées Rx (indiquant la réception). Pour créer un système de communication bidirectionnel aminimum de trois fils sont nécessaires Tx, Rx et GND (masse). Le croisement au-dessus de Tx& Rx entre les deux systèmes permet à chaque unité de parler à l’opposé.

REMARQUE: chaque signal (TX et RX) nécessite un traducteur de niveau, car des tensions élevées sont utilisées pour transmettre les données sur les fils (typiquement sortie de ±5V à ±25V).,

chaque octet peut être transmis à tout moment (tant que l’octet précédent a été transmis). L’octet transmis n’est pas synchronisé avec le récepteur-il s’agit d’un protocole asynchrone, c’est-à-dire qu’il n’y a pas de signal d’horloge. Pour cette raisonle logiciel à chaque extrémité de la liaison de communication doit être configuré exactement de la même manière que chaque puce de décodeur série peut décoder le flux de données série.


Remarque: l’inversion du niveau du signal (logique 1is-12V et logique 0 est +12v).,

vitesse de transmission

comment RS232 fonctionne dans la relation entre la vitesse de transmission et signalfrequency.

le débit en bauds est simplement la vitesse de transmission mesurée en bits par second.It définit la fréquence de chaque période de bits.

pour un débit en bauds de 2400 (2400 bps), la fréquence est de 2400 Hz et la période binaire est de 1/2400 ou 416,6 us. Ce sont les informations qu’un récepteur utilise pour recouvrir les bits du flux de données.,

comment fonctionne RS232 – Voltagelevels

pour le faire fonctionner sur de longs câbles, des tensions élevées sont envoyées par chaque émetteur car en raison de la résistance du câble, la tension réduit le signal supplémentaire à parcourir. La spécification de tension de sortie est de +5V à +25V (transmission d’un zéro logique) et-5V à-25V (transmission d’un zéro logique).

Remarque: tous les signaux du câble doivent générer les mêmes niveaux de tension, par exemple DTR, DSR, RTS, CTS. Vous avez donc besoin de beaucoup de puces de traducteur de niveau pour une fullinterface, mais pour de très courtes distances, vous n’avez besoin que de TX et de Rx et de sol.,

la tension maximale de ±25 V ne doit pas être utilisée et une tension commune en cours d’utilisation est de ±12 V (sortie par puce émetteur-récepteur MAX232).

une marque (logique) est envoyée comme-12V et un espace (zéro logique) est envoyé comme+12v c’est-à-dire que le sens logique est inversé.

remarque: le fait que des tensions élevées existent au niveau du port série permetpuissance de périphériques que vous ne vous attendez normalement pas à trouver dessus. Mais ilsdoit dessiner très peu de courant.

niveaux de tension du récepteur

à l’entrée du récepteur les niveaux de tension minimum sont définis comme ±3V, c’est-à-dire, pour recevoir un zéro logique, la tension doit être supérieure à 3V et pour recevoir un zéro logique, la tension doit être inférieure à-3v.cela permet des pertes lorsque le signal se déplace vers le bas du câble et offre une immunité au bruit, c’est-à-dire que tout bruit parasite jusqu’à un niveau de ±3V peut

comment fonctionne RS232 – Bit de démarrage TheRS232

le protocole est décrit comme asynchrone car il n’y a pas d’horloge transmise à tous. Au lieu de cela, une méthode différente de récupération d’horloge est utilisée.,

Au début de chaque transmission, un bit de démarrage est transmis indiquant au récepteur qu’un octet de données est sur le point de suivre. Étant donné que L’état de veille des lignes RS232 est faible (- 12v) pour signaler une condition de démarrage, la ligne est réglée haute (+12v) pour une période de 1 bit. Ceci signifie qu’une transition sur la ligne est alwaysgenerated de sorte qu’un récepteur sache quand le 1er bord du burstocsurs de données.

le bit de démarrage permet au récepteur de se synchroniser avec les bits de données car il peut voir le bord montant du signal sur la ligne., Cela signifie que thereceiver peut créer sa propre horloge d’échantillon au milieu de chaque bit – pour décider si le bit est en fait un zéro de données ou un de données.

Une fois que le bit de départ est trouvé, le récepteur sait où seront les bits suivants car il reçoit la période d’échantillonnage (dérivée de la vitesse de transmission) dans le cadre du processus d’initialisation. C’est pourquoi vous devez définir les mêmes paramètres entre le récepteur et le matériel de l’émetteur, c’est-à-dire le débit en bauds, le nombre de bits d’arrêt, le nombre de bits de données et le bit de parité (activé ou désactivé)., Si vous ne le faites pas, rien ne se passera généralement – ou vous verrez des caractères rubis au récepteur.

comment fonctionne RS232 – les bits de données Databits

suivent le bit de début. Il y aura généralement sept ou huit databits avec le lsb transmis en premier. La raison pour laquelle vous pouvez choisir entre seven oreight est que L’ASCII est composé de l’alphabet dans les sept premiers bits (ainsi que des caractères de contrôle). Le huitième bit étend le jeu de caractères pourdes symboles graphiques.

Si vous souhaitez uniquement transmettre du texte, vous n’avez besoin que de 7 bits., Cela permet d’économiser abit et d’augmenter la vitesse de transmission lors de la transmission de gros blocs de données.Les autres tailles de bits de données sont 5, 6, 8 et 9 bits. Cependant, la longueur des bits est généralementensemble à 8 bits – ceci est très couramment utilisé.

astuce: puisque la plupart des modules sont capables de gérer neuf bits, vous pouvez définir une utilisation pour le neuvième bit, par exemple en indiquant que le pack de données définit une commande. Mais bien sûr, vous devez ajuster votre logiciel récepteur pourprocéder ces informations.

Remarque: Si vous utilisez RS232 pour transmettre des données brutes (données binaires), vous aurez besoin de 8 bits de données.,

comment fonctionne RS232 – le Bit de parité

le bit de parité RS232 est un mécanisme de détection d’erreur brut.Vous pouvez utiliser la parité impaire ou la parité pair ou Aucune du tout (dans le diagramme ci-dessus, un bit de parité est inclus (entre le dernier bit de données et le bit d’arrêt-ici la parité est indiquée comme un ‘1’ ce qui signifie qu’il y a un nombre impair dedatabits. La parité utilisée est donc la parité impaire. Le diagramme ci-dessous (couramment utilisédans le travail de microcontrôleur) n’utilise pas de bit de parité.,

il évalue simplement tous les bits de données et pour la parité impaire renvoie une logique onesi il y a un nombre impair de bits de données qui sont définis. Pour la parité Pair, un nombre égal de bits de données définis définit le bit de parité.

au récepteur, le bit de parité est utilisé pour indiquer si une erreur s’est produite pendant la transmission. Vous pouvez l’utiliser dans le logiciel du récepteur en lisant un indicateur dans le module UART.

le problème avec la détection d’erreur en utilisant le bit de parité est que si deux bits sont en erreur, la vérification de parité échoue., En effet, chaque erreur annulel’effet de l’autre (en termes de calcul de parité). Tout nombre pair d’erreurs provoque un échec dans la détection des erreurs.

Ce ne sera pas un problème sur un système basé sur un banc (qui n’a pas de transfert de données critique). Sur un câble court, par exemple 6ft, vous ne verrez probablement aucune erreur. Normalement, j’utilise pas de parité et il n’y a pas de problème.

pour les systèmes fonctionnant sur une longue distance ou dans un environnement bruyant, un bettersystem doit être utilisé, par exemple en ajoutant un contrôle de redondance cyclique au flux de données avant et après son envoi sur le RS232., Les crc vous permettent de vérifier et de corrigerassez quelques erreurs sans transmettre à nouveau les données.

comment fonctionne RS232 – le Stopbit

le bit D’arrêt RS232 donne simplement une période de temps avant que le bit de démarrage suivant puisse être transmis. C’est le sens opposé au bit de démarrage et à cause de cela permet au bit de démarrage d’être vu, c’est-à-dire qu’un bit d’arrêt suivi d’un bit de démarrage donne toujours un signal de bord montant pour la détection par le récepteur.

S’il n’y avait pas de bit stop, le dernier bit du flux de données serait le bit de parité (ou le bit de données si la parité n’est pas active)., Cela changerait en fonction des données envoyées donc s’il avait le même sens que le bit de début le startbit ne pouvait pas être vu!

le bit d’arrêt peut être réglé en choisissant parmi des périodes de 1, 1,5 ou 2 bits.

à des débits en bauds très élevés, la période entre le bit d’arrêt et le bit de démarrage(en supposant que les données sont envoyées en continu) sera très petite, par exemple pour un débit en bauds de 115200 bauds, le timeing à un bit est 1/115200 = 8.26 us donc en utilisant des périodes de 2 bits, vous augmenterez, Cela peut permettre au récepteur de détecter le bit de démarrage plus facilement car s’il y a une capacité sur la ligne, les formes d’onde présenteront un temps de chute CR rise. L’extension de la période permet un chargement plus capacitif. Cependant, cela dépend également du matériel récepteur utilisé.

paramètres typiques

paramètres typiques pour une utilisation sur le bureau, par exemple entre un microcontrôleur et un programme émulateur aterminal tel que « Tera Term »:

comment fonctionne RS232 : paramètres de taux de bauds typiques.,
Baud 9600
Data bits 8
Parity None
Stop bits 1
Flow Control None

This can also be compactly written as:

9600 8N1

Hardware Connections 3 (Rx,Tx,GND) – Rx and Tx crossed over.,

« contrôle de flux » dans la liste ci-dessus fait référence à une méthode de signalisation de contrôle de flux matériel qui utilise les signaux DTR/DSR et RTS / CTS. Voir ici pour plus à ce sujet.

Comment fonctionne RS232 – niveaux de Signal

à un moment donné, vous voudrez peut – être créer un UART logiciel pour enregistrer l’espace de code dans votre conception actuelle (peut-être que vous n’avez pas besoin de la partie de réception-car vous produisez simplement des variables) ou utiliser une broche de rechange.

Remarque: Vous pouvez trouver recevoir et transmitsoftware USART code dans le 12f675 Tutorialpages.,

pour le créer, vous avez besoin des diagrammes de signaux réels que vous voyez sur la broche du microcontrôleur (étrangement, ils sont difficiles à trouver sur le web).

le schéma suivant montre le flux de bits temporisé 0V et 5V au niveau de la broche de sortie du microcontrôleur. Le diagramme inférieur montre les niveaux de signal traduits atthe pilotes de sortie RS232 qui sont transmis sur le câble série.

Ces niveaux plus élevés sont générés en envoyant les niveaux logiques 0-5V à une puce transmetteur, par exemple, MAX232 qui a une diode / condensateur boost conveter builtin qui augmente les niveaux de signal à la RS232 requise voltageof ±12 volts. Notez comment le niveau-12v correspond à un ‘1’ logique et le niveau +12v correspond à un ‘0’logique.

remarque: le niveau de tension de sortie peut être de ±5 à ±25 V. Pour des distances plus longues, une tension plus élevée est utile pour compenser la perte lorsque le signal descend le câble, mais pour une utilisation pratique, les puces génèrent des tensions inférieures telles que ±12.,
comment fonctionne RS232 lors de la transmission acharacter

la forme d’onde inférieure dans le diagramme bove ci-dessus montre le signal RS232 que vous verriez utilisation d’un oscilloscope sur le lecteur de sortie d’une puce de traducteur telle que le MAX232. Notez que L’idlevoltage RS232 est -12v,

horloge RS232

le diagramme ci-dessus montre également le timingdiagram RS232 où chaque période de bit est 1 / fréquence donc pour un débit abaud de 9600 bps (bits par seconde) la période de chaque bit est 1/9600 or104.,166us il s’agit effectivement de la période D’horloge RS232 requise pour la vitesse de transmission spécifique en cours d’utilisation.

forme D’onde RS232

dans le diagramme ci-dessus, la forme d’onde inférieure montre le signal de tension RS232 que vous pouvez vous attendre à voir à la sortie de la broche RS232 TX(également les mêmes niveaux sur la broche RX) sur un oscilloscope. Dans certaines puces themaximum signal niveau peut ne pas être ±12 V-Le Max et Min Tension pourrait besmaller (comme il n’y aura pas une grande chute de tension sur de courtes distances)., Pour les longues distances, celles – ci doivent être de ±12 V-à l’extrémité d’un long câble, la tension descendra à travers la résistance du câble, mais doit être supérieure à ±3 V à l’autre extrémité.

la capacité du câble ralentira également les bords montant et descendant – les arrondissant.

comment fonctionne RS232 – signaux de prise de contact

les signaux de prise de contact sont simplement une méthode pour arrêter le flux de données. Ifsome partie du système est occupé, il peut ne pas être en mesure d’accepter plus de dataand plutôt que de le perdre des signaux sont utilisés à chaque extrémité de la liaison totell l’autre extrémité pour arrêter la transmission de données., Il y a deux types usedin RS232: poignée de main de matériel et poignée de main de logiciel.

prise de contact matérielle

  • DTR – Terminal de données prêt.
  • DSR – ensemble de données prêt.
  • RTS – demande à envoyer.
  • CTS – Effacer pour envoyer.

Si vous utilisez ces signaux, ils doivent tous être transmis à des niveaux theRS232, c’est-à-dire ±25V (ou quelle que soit la tension générée par la puce du translateur, par exemple ±12v, c’est-à-dire identique à la sortie TX, vous avez donc besoin d’une puce RS232 avec,

rappelez-vous que le protocole était basé sur un modem (le DCE ou L’équipement de communication de données) Assis sur un bureau et un attaché (via RS232)au PC (le DTE ou L’équipement terminal de données) – le contrôleur. There’seven un indicateur de sonnerie (RI) qui signale lorsque le téléphone sonne,câblé directement à la ligne téléphonique, ce qui permettrait la détection automatique d’un flux de données entrant.

chaque signal n’est pas orthogonal, ce qui signifie qu’il n’y a pas de signal équivalent qui remonte dans l’autre sens., Cette partie du protocole a augmenté au fil du temps, il existe donc différentes utilisations de ces signaux, mais en général, le suivi est utilisé:

pour arrêter les données provenant du PC, c’est-à-dire pour arrêter de submerger le modem de données:

  • RTS (PC) au modem.
  • CTS (modem) au PC.

Le PC affirme RTS pour indiquer qu’il veut transmettre des données au modem.
Le modem affirme CTS pour recevoir des données du PC.

pour arrêter les données provenant du modem, c’est-à-dire pour arrêter de submerger le PC avec des données:

  • DTR (PC) vers le modem.
  • DSR (modem) au PC.,

le modem affirme DSR pour indiquer qu’il veut transmettre des données au PC.
Le PC affirme DTR pour recevoir des données du modem.

poignée de main logicielle

Si vous voyez les Termes XON et XOFF, il s’agit d’une méthode de contrôle de flux logiciel où le récepteur transmet un caractère spécial (dans L’ASCIIset) pour dire à l’émetteur d’arrêter d’envoyer des données. Quand le récepteur hasrecovered (un tampon se vide) alors il peut transmettre le signal de XON totell l’émetteur pour relancer la transmission.

Leave a Comment