[Numérique] Expliquer le signal RS232
Répondre à la discussion
Affichage des résultats 1 à 29 sur 29

Expliquer le signal RS232



  1. #1
    invite31928449
    Invité

    Expliquer le signal RS232


    ------

    Hello world !

    Je prépare un "mini projet" (disons un devoirs Maison) dans le cadre de mon bac STI2D option SIN et j'ai besoin de savoir expliquer ce qu'est "précisément" le signal RS232.

    Pour cela j'ai fait des recherches et j'ai mis le nez dans mes cachiers et maintenant j'aimerais à présent vérifier mes connaissances en postant une petite explication du signal RS232 ici. N'hésitez donc pas à me corriger si j'ai écrit des bétises.

    Le RS232 désigne un standard de bus de communication en série. Un ports RS232 est appelé aussi port COM, ce dernier est de plus en plus remplacé par l'USB.
    Un signal RS232 est généralement composé de 11 bits.

    1 bit de départ, 8 bits de données, 1 bit de parité (là je comprends pas à quoi sert ce bit) et 1 bit de stop. (dit aussi bit d'arrivée)

    Ci-dessous, des relevées de trames de signaux RS232 émises par un clavier PS/2. (en utilisant un oscilloscope.)


    Nom : trame.gif
Affichages : 961
Taille : 216,3 Ko

    Ce signal est composé d'une horloge (en haut) et de la donnée (en bas). L'horloge synchronise la donnée. (elle permet d'indiquer comment les bits doivent être envoyés !)


    Voilà. Mon devoir ne consiste pas vraiment à expliquer le RS232 mais vu que je l'utilise dans mon projet consistant à manipuler un clavier PS/2 via une carte Arduino... autant savoir répondre aux questions pièges.

    -----

  2. #2
    invitee05a3fcc

    Re : Expliquer le signal RS232

    Manque de bol .... Un clavier PS2 n'a rien à voir avec du RS232 ! C'est une transmission synchrone bidirectionnelle avec 2 fils (en 0/5V) horloge+data

  3. #3
    invited640f4e0

    Re : Expliquer le signal RS232

    Ancien élève de BAC-STI2D SIN,

    Alors commençons par ta première question. Le bit de parité est un bit mis à zéro si la somme des autres bits est paire, et à un si elle est impaire, pour détecter des erreurs de transmission. Ensuite, le signal est en général codé en NRZ très bonne doc sur wiki.
    Il est commode d'utiliser le MAX232 pour effectuer la translation des niveaux de la logique (0/+5V) vers la transmission (+12V/-12V).

  4. #4
    invite31928449
    Invité

    Re : Expliquer le signal RS232

    Merci pour ces réponses.
    Donc si je comprends bien, le signal RS232 n'a rien à voir avec le signal émis par un clavier PS2. Mais cependant celui-ci utilise un port RS232 pour fonctionner il me semble non ? :/

    Ou alors il n'y a strictement aucun rapport ?

    Merci pour l'explication du bit de parité. En fait si je comprends bien, quand tu parles de la sommes des bits, tu parles de la sommes des bits avec l'affectation de leur poid. genre 2^0+2^1... ect. ?

  5. A voir en vidéo sur Futura
  6. #5
    invitee05a3fcc

    Re : Expliquer le signal RS232

    Citation Envoyé par Hikaru_lix Voir le message
    Donc si je comprends bien, le signal RS232 n'a rien à voir avec le signal émis par un clavier PS2.
    Oui
    Mais cependant celui-ci utilise un port RS232 pour fonctionner il me semble non ?
    Ben non !
    - Un clavier USB utilise un port USB
    - Un clavier PS2 utilise un port PS2 (en voie d'obsolescence)
    - Un clavier RS232 utilise un port COM ( Les claviers RS232 , comme les souris RS232 ont quasiment disparus ....)

    Si un périphérique est en RS232, il utilise un connecteur DB9 ou DB25 .... avec 9 ou 25 broches.

  7. #6
    vincent66

    Re : Expliquer le signal RS232

    Et le plus important est que le rs232 est utilisé pour de la transmission asynchrone uart... Il n'y a donc pas de clock transmis comme dans tes oscillogrammes...
    Et c'est la tension présente sur rx ou tx par rapport à une masse commune qui détermine si c'est un zéro ou un un qui est transmis...
    Dernier détail, le rs232 permet une liaison full duplex...
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  8. #7
    Jack
    Modérateur

    Re : Expliquer le signal RS232

    Le RS232 désigne un standard de bus de communication en série
    Ce n'est pas un bus mais une liaison point à point.
    Un signal RS232 est généralement composé de 11 bits.
    Possible, mais la configuration la plus fréquente est de 10 bit: 1 start, 8 bits, 1 stop
    Donc si je comprends bien, le signal RS232 n'a rien à voir avec le signal émis par un clavier PS2
    Si, un peu La trame de donnée est assez ressemblante, les niveaux restant en TTL cependant

    .
    Le bit de parité est un bit mis à zéro si la somme des autres bits est paire, et à un si elle est impaire
    En parité paire, oui. En parité impaire, c'est l'inverse
    Dernière modification par gienas ; 27/12/2015 à 21h03. Motif: Réparé la QUOTE absente

  9. #8
    invite31928449
    Invité

    Re : Expliquer le signal RS232

    D'accord je pense comprendre maintenant ^^

    J'utilise un clavier PS2 car c'est ce que j'avais sous la main et qu'il est suffisamment vieux pour que j'ose le bidouiller. En plus il existe une superbe bibliothèque pour Arduino permettant d'utiliser un clavier PS2.

    Le truc c'est que dans le problématique de mon projet (problématique imposée) j'ai aussi ceci:

    Détail du fonctionnement de la communication RS232
    Du coup cela m'a induit en erreur je pense.

    Juste une dernière question

    Sur le gif que j'ai posté, le signal de l'horloge et de la donnée sont complémentées il me semble ?

  10. #9
    Jack
    Modérateur

    Re : Expliquer le signal RS232

    Sur le gif que j'ai posté, le signal de l'horloge et de la donnée sont complémentées il me semble ?
    Qu'est-ce qui te fait dire çà?

  11. #10
    invitee05a3fcc

    Re : Expliquer le signal RS232

    Citation Envoyé par Hikaru_lix Voir le message
    Sur le gif que j'ai posté, le signal de l'horloge et de la donnée sont complémentées il me semble ?
    Que le niveau de repos soit 0V ou 5V, C'est une pure convention de style !
    Le concepteur du bus PS2 a utilisé un signal à 5V au repos. Et il a fait un bon choix ..... Car , comme le bus est bidirectionnel, il a mis une résistance de pullUP et celui qui cause, le PC ou le clavier, impose un niveau 0V sur le bus DATA par un collecteur ouvert

  12. #11
    jiherve

    Re : Expliquer le signal RS232

    Bonjour,
    Il y a surtout le fait qu'à l'origine il n'y avait guère le choix quant aux composants disponibles pour traiter ce type de bus, c'était de bons vieux UART et donc la parenté entre port PS2 et les signaux issus des transceivers RS232/RS232 n'est pas un hasard!
    JR
    Dernière modification par jiherve ; 28/12/2015 à 08h42.
    l'électronique c'est pas du vaudou!

  13. #12
    invitee05a3fcc

    Re : Expliquer le signal RS232

    Citation Envoyé par jiherve Voir le message
    , c'était de bons vieux UART
    Ouais ... enfin des USARTs ! On est en synchrone
    et donc la parenté entre port PS2 et les signaux issus des transceivers RS232/RS232 n'est pas un hasard!
    La seule parenté ... c'est que c'est de la transmission série ! Et dire que le hard PS2, c'est cousin avec le RS232, c'est comme dire qu'un avion et un sous-marin, c'est kif kif ! Car c'est des véhicules qui se déplacent, sans roue, dans un fluide .

  14. #13
    invitef86a6203

    Re : Expliquer le signal RS232

    Il faudrait expliquer à notre ami , certains termes qui semblent flous dans sont esprit.

    synchrone et asynchrone
    (bien sur il y a une masse de référence , donc un fil supplémentaire)
    Synchrone signifie que le signal d'horloge est fourni sur un fil, ce qui fait que l'on a 2 fils l'horloge et le data.
    Asynchrone signifie que l'horloge est interne au récepteur et que seul le fil de data est utilisé.

    Dans le cas du synchrone le débit n'a pas besoin d'avoir une vitesse spécifique puisque c'est le clock (horloge) qui détermine le moment ou le récepteur lit le data.
    Dans le cas de l'asynchrone, la vitesse doit être spécifiée et très précise, la précision des quartz est généralement très suffisante.
    C est le "start bit" qui donne le top de départ de la séquence et la salve sera lu à la suite par le récepteur donc pendant un temps déterminé et bien précis, si le (les) bit d'arrêt , tardent on peu déclencher un "time out".
    si la parité est utilisée et ne correspond pas on peu déclencher une "erreur".

    Le nombre de bit est variable généralement 7 ou 8, et les bits de fin aussi , donc on ne peut pas dire que RS232 a une taille bien déterminés.
    Ce sont des paramètres, ainsi que la vitesse, en baud (bit par seconde)

    Le terme bus désigne un ou plusieurs fils qui peuvent être lu et écrit dans les 2 sens et par plusieurs périphériques.
    Le RS232 n'est donc pas un bus, mais un port qui utilise 1 fil de réception et 1 fil d'émission vers 1 seul périphérique.
    Si l'on veut pouvoir communiquer dans les 2 sens , comme DAUDET78 l'a expliqué on utilise des collecteurs ou drain ouvert avec pull up, ce qui évite des court circuits en cas de collision, le courant max étant celui de la pull up.

    Le terme RS232 désigne un signal qui varie de +12V à -12V soit 24V d'amplitude, le but est de pouvoir communiquer sur une vingtaine de mettre sans aucune perturbation.
    Il faut donc pour convertir le signal en 5V (tension des USART, µp et µc) un circuit.
    Le circuit le plus courant est le MAX232 qui est constitué d'ampli op et de générateur de tension positif et négatif.
    Le circuit est alimenté en 5V.
    En fait les générateurs sont des doubleurs capacitifs et les tensions sont plus proche de +8V et -8V que de +10V et -10V.
    Ce qui est suffisant pour le standard RS232.
    De plus le signal est inversé par les amplis op.
    Ce signal est appelé RS232 TTL et il est donc inversé. Ce sont les fameuses clés USB sortie 5V sortie sur des pins, celles qui sortent sur une SUBD9 sont des vrai RS232 avec sortie +-8V non inversées

    En fait le RS232 bascule sur le 0V, alors que le TTL bascule au dessus de environ 0.8v.

    Du temps du minitel on pouvait communiquer avec un RS232 tronqué à + et -2.5V.
    La sortie du minitel pilotait un transistor inverseur et la masse était reliée à une tension de +2.5V par rapport à la masse du minitel ce qui faisait varier la sortie entre -2.5V et +2.5V, l'UART du PC l'acceptait, et avec 1 mètre max de câble, la transmission était correct.

    L'USB est un bus série, c est une communication série à grande vitesse et communique donc sur plusieurs périphériques dans les 2 sens et surtout utilise un protocole de communication compliqué qui détermine le type des périphériques et la façon de communiquer.

  15. #14
    invitee05a3fcc

    Re : Expliquer le signal RS232

    petites précisions:
    Citation Envoyé par freepicbasic Voir le message
    Le nombre de bit est variable généralement 7 ou 8,
    Et même 5bits ! il ne faut pas oublier les transmissions en Baudot qui ont fait la joie des télescripteurs pendant des dizaines d'années !
    et les bits de fin aussi ,
    Oui, un ou deux bits de fin? Les deux bits étaient utiles sur les UART mécaniques de réception des téléscripteurs. Maintenant, un ou deux, l'électronique s'en moque et accepte tout.

  16. #15
    Jack
    Modérateur

    Re : Expliquer le signal RS232

    Le terme bus désigne un ou plusieurs fils qui peuvent être lu et écrit dans les 2 sens et par plusieurs périphériques.
    Le RS232 n'est donc pas un bus, mais un port qui utilise 1 fil de réception et 1 fil d'émission vers 1 seul périphérique.
    Je ne suis pas d'accord avec ta définition du bus. La RS232 n'est en effet pas un bus mais pas pour la raison évoquée: la RS232 est une simple liaison point à point, peu importe le nombre de fils.
    One wire qui n'utilise qu'un seul fil pourtant est lui bien un bus. Le bus est plus un support de partage entre plusieurs (plus que 2) dispositifs.
    En fait le RS232 bascule sur le 0V
    Le terme RS232 désigne un signal qui varie de +12V à -12V
    En fait, il faut se fier à la norme: +/- 3 V à +/- 15 V
    alors que le TTL bascule au dessus de environ 0.8v
    Pas vraiment là non plus: un '0' est garanti si la tension est < 0,8 V et un '1' si elle est > 2V.
    Ce signal est appelé RS232 TTL et il est donc inversé
    C'est très relatif. Inversé par rapport à quoi? J'aurais plutôt tendance à penser qu'il est non inversé car un '1' est représenté par un état haut et un '0' par un état bas.

  17. #16
    invitef86a6203

    Re : Expliquer le signal RS232

    Je ne suis pas d'accord avec ta définition du bus. La RS232 n'est en effet pas un bus mais pas pour la raison évoquée: la RS232 est une simple liaison point à point, peu importe le nombre de fils.
    One wire qui n'utilise qu'un seul fil pourtant est lui bien un bus. Le bus est plus un support de partage entre plusieurs (plus que 2) dispositifs.
    Il existe des bus d'adresses qui vont que dans un sens et de données qui vont dans les 2 sens.
    Peut importe le nombre de fils.

    Le bus est plus un support de partage entre plusieurs (plus que 2) dispositifs.
    oui,
    c est plus précis

  18. #17
    invitef86a6203

    Re : Expliquer le signal RS232

    C'est très relatif. Inversé par rapport à quoi? J'aurais plutôt tendance à penser qu'il est non inversé car un '1' est représenté par un état haut et un '0' par un état bas.
    C est pas relatif du tout !
    On passe par une porte inverseuse, regarde le datasheet du max232
    ou le signal au scope

    Sur ce site
    https://pbelectronique.com/site/inde...ex/lumauto.hex
    cette image
    https://pbelectronique.com/site/images/autre/trame.jpg

  19. #18
    Jack
    Modérateur

    Re : Expliquer le signal RS232

    Il existe des bus d'adresses qui vont que dans un sens et de données qui vont dans les 2 sens.
    Peut importe le nombre de fils.
    Sue ce point on est d'accord. Il existe des bus "parallèles" et des bus "série", bidirectionnels ou non.

  20. #19
    Jack
    Modérateur

    Re : Expliquer le signal RS232

    Citation Envoyé par freepicbasic Voir le message
    C est pas relatif du tout !
    On passe par une porte inverseuse, regarde le datasheet du max232
    ou le signal au scope

    Sur ce site
    https://pbelectronique.com/site/inde...ex/lumauto.hex
    cette image
    https://pbelectronique.com/site/images/autre/trame.jpg
    Bin si, c'est très relatif. L'inversion se faisant dans les 2 sens, lequel est l'inversé et lequel est le non inversé? Pour moi, l'original est plutôt celui généré par l'uart, donc côté TTL et l'inversé (d'un point de vue logique également) du côté +/- 10 V

  21. #20
    invitee05a3fcc

    Re : Expliquer le signal RS232

    Citation Envoyé par Jack Voir le message
    Bin si, c'est très relatif.
    Je vais vous mettre d'accord !
    Y en a un qui cause logique positive et un autre logique négative .....
    Faut quand même savoir que le bit "START" est un "1" (donc une tension positive sur le fil RS232) , que le bit "STOP" est un "0" (donc une tension négative sur le fil RS232)

  22. #21
    Jack
    Modérateur

    Re : Expliquer le signal RS232

    Y en a un qui cause logique positive et un autre logique négative .....
    C'est ce que je dis: état haut = '1'

  23. #22
    Jack
    Modérateur

    Re : Expliquer le signal RS232

    Au final, on s'en fout un peu, du moment que c'est clairement défini. Logique positive ou négative, ça n'est pas un problème.

  24. #23
    invitee05a3fcc

    Re : Expliquer le signal RS232

    Citation Envoyé par Jack Voir le message
    Au final, on s'en fout un peu, du moment que c'est clairement défini.
    Surtout que la question du demandeur .... c'est la nature de la liaison PS2 au clavier/souris !
    On est loin .............................. ....

  25. #24
    Jack
    Modérateur

    Re : Expliquer le signal RS232

    Citation Envoyé par DAUDET78 Voir le message
    Surtout que la question du demandeur .... c'est la nature de la liaison PS2 au clavier/souris !
    On est loin .............................. ....
    Non, on est en plein dedans: regarde son post #8

  26. #25
    jiherve

    Re : Expliquer le signal RS232

    Bonsoir

    Citation Envoyé par DAUDET78 Voir le message
    Ouais ... enfin des USARTs ! On est en synchrone La seule parenté ... c'est que c'est de la transmission série ! Et dire que le hard PS2, c'est cousin avec le RS232, c'est comme dire qu'un avion et un sous-marin, c'est kif kif ! Car c'est des véhicules qui se déplacent, sans roue, dans un fluide .
    Un petit conseil consultes donc la doc du MC6850http://pdf1.alldatasheet.com/datashe...LA/MC6850.html et tu verras que bien que qualifié d'Asynchronous Communication Interface Adapter il savait comme la plupart de ses descendants fonctionner en synchrone et que oh surprise les signaux attendus à ses entrée sont presque du type PS2,sauf le gating de la clock mais qui n'est pas genant(c'est pas par hasard que le protocole PS2 soit comme çà car les premiers support en furent des contrôleurs issus du 6850) et donc du type des ceux situés en sorties des transceiver RS232(les translateurs de niveaux), je n'avais juste pas pensé qui aurait fallu que je précise coté TTL!

    JR
    Dernière modification par jiherve ; 28/12/2015 à 19h21.
    l'électronique c'est pas du vaudou!

  27. #26
    invitee05a3fcc

    Re : Expliquer le signal RS232

    Citation Envoyé par jiherve Voir le message
    Un petit conseil consultes donc la doc du MC6850
    Peux tu m'indiquer la page où il peut faire de la transmission/réception synchrone ?
    http://pdf.datasheetcatalog.com/data...ola/MC6850.pdf
    Je rappelle que la transmission synchrone permet , avec une horloge externe et la même à l'émission et à la réception, de transférer des octets sans aucun encapsulage (pas de start, de parité,de stop).
    En transmission synchrone, on transmet une trame d'octets qui comporte son octet de départ, de contrôle de validité (généralement par un CRC)

    Je ne vois pas, sur la spec du MC6850, la possibilité de recevoir des octets non encapsulés.

    PS : Si on considère que mettre une horloge externe identique sur les deux UARTs, c'est faire du synchrone, c'est faux. Le synchrone permet de transférer 8 bits quand il faut 11 bits en asynchrone pour faire le même job .

  28. #27
    Jack
    Modérateur

    Re : Expliquer le signal RS232

    Je ne vois pas, sur la spec du MC6850, la possibilité de recevoir des octets non encapsulés.
    Mais pourquoi veux-tu te débarrasser des bits start et stop? Ils sont toujours présents dans les trames du clavier.

  29. #28
    invitee05a3fcc

    Re : Expliquer le signal RS232

    Citation Envoyé par Jack Voir le message
    Mais pourquoi veux-tu te débarrasser des bits start et stop? Ils sont toujours présents dans les trames du clavier.
    Oui, parce que le protocole PS2, c'est de l'asynchrone avec transmission de l'horloge sur un autre fil.
    http://pcbheaven.com/wikipages/The_PS2_protocol/
    Et il suffit d'un UART pour faire le dialogue
    Citation Envoyé par Daudet
    Ouais ... enfin des USARTs ! On est en synchrone
    Sorry, errare humanum est , j'ai été un peu vite et j'ai allégrement mélangé "asynchrone avec horloge externe" et "synchrone avec horloge obligatoirement externe"

  30. #29
    jiherve

    Re : Expliquer le signal RS232

    Re
    En transmission série il faut toujours un marquage permettant de séparer les mots dans le train de bits, c'est vrai pour toutes les transmissions série synchrones ou pas, et encore cela ne suffit pas si la transmission utilise une trame de plusieurs octets ou mots de longueur quelconque il faudra en plus un marqueur de trame.Tous les récepteurs UART/USARTau sens large comporte un registre d’état possédant les bits : Framing Error, Overrun.
    Pour le 6850 c'est le fonctionnement en division par 1 des horloges Rx,Tx qui permet le passage en synchrone mais toujours avec un start bit et au moins un stop bit et effectivement il ne sait pas traiter des mots plus longs qu'un octet par contre ses petits enfants sont capables de bien plus, ce n'est qu'une question de design de la logique, j'ai commis des USART 32 bits qui tournaient à plusieurs dizaines de MHz
    Et regardes bien comment fonctionnent les liaisons SPI,I²C etc , il y a toujours un marqueur placé devant et après un nombre de bits plus ou moins grand(c'est implémenté de façon variable), même chose pour le HDMI, Pannel Link, DVI etc etc , il faut bien un moyen pour synchroniser(même sur un bus asynchrone) les données, dans l'exemple donné au #1 il y a 11 bits avec un start et un stop le gating d'horloge est une coquetterie , et le protocole PS2 est sévèrement tramé par ailleurs pour pouvoir distinguer le premier octets des autres, une astuce que j'ai utilisée il y a 35 ans fut de renverser la parité sur un octet pour assurer la synchronisation macroscopique sur un flux par ailleurs quasiment continu, traitement logiciel bien sur en aval.
    Le fait de transmettre un CRC ou tout autre code de vérification/correction permet seulement de sécuriser ou corriger la liaison.
    Pour transmettre 8 bits avec ce genre de liaison (RSxx) il faut au minimum 9 bits mais tous les 10 périodes d'horloges (synchrone ou pas)nota : les bits de stop sont des bits virtuels.
    Enfin c'est ce que j'ai toujours fait durant +40 ans mais peut être étais je dans l'erreur avec des millions d'autres.
    JR
    l'électronique c'est pas du vaudou!

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/08/2015, 17h43
  2. Transceivers RS232 : pas de signal en sortie
    Par schneiderj dans le forum Électronique
    Réponses: 22
    Dernier message: 23/07/2012, 20h59
  3. quels type de signal pour port série Rs232
    Par invitefdcb79e0 dans le forum Électronique
    Réponses: 12
    Dernier message: 05/07/2010, 16h06
  4. Lecture et affichage du signal d'une souris série RS232 en language C
    Par invite13ec4017 dans le forum Électronique
    Réponses: 3
    Dernier message: 30/03/2009, 20h50
  5. signal rs232 avec hyperterminal
    Par invitef1b6c776 dans le forum Électronique
    Réponses: 18
    Dernier message: 14/05/2007, 09h39
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...