BAC STI2D - 2I2D - SIN
Transmission d’une information
RESSOURCES Trame RS232 - PROF
1 Généralités
Les liaisons séries permettent la communication entre deux systèmes numériques
en limitant le nombre de fils de transmission.
La liaison série RS232 utilise le port de communication COM1 des ordinateurs PC et elle
est encore fréquemment utilisée dans l'industrie pour connecter différents appareils
électroniques (automate, appareil de mesure, etc.).
Elle est de type asynchrone, c'est à dire qu'elle ne transmet pas de signal horloge.
Cette transmission série nécessite un minimum de deux fils comportant les trames de
données :
• en émission Tx (Transmitted Data) Il n’est pas possible
• ou en réception Rx (Received Data) d’émettre et de recevoir
• et un fil de masse GND. en même temps !
Une adaptation des données se fait à l'aide d'un circuit adaptateur de ligne (MAX232) qui
transforme les niveaux logiques issus du système numérique en niveaux logiques
compatibles avec les normes RS232 et vice versa.
La longueur du câble de liaison ne doit pas dépasser 100 mètres.
Câble RS232
Txnum Rxnum Rxliaison Txnum Rxnum
Système Adaptation Txliaison Adaptation Système
numérique de Liaison RS232 de numérique
1 ligne ligne 2
Rxnum Txnum Rxliaison Txliaison Rxnum Txnum
MAX232 MAX232
bit à transmettre avant Adaptation sur la liaison RS232
0 0 Volts de + 3 V à + 25 Volts
1 5 Volts de - 3 V à - 25 Volts
- PAGE 1 / 4 -
2 Protocole de transmission RS232
Afin que les éléments communicants puissent se comprendre, il faut établir un protocole
de transmission.
Ce protocole devra être le même pour les deux éléments afin que la transmission
fonctionne correctement.
Les paramètres qui caractérisent le protocole sont :
• La vitesse de transmission : 110, 300, 600, 1200, 2400, 4800, 9600, 19200,
28800, 38400, 57600 et 115200 bauds. (1 baud = 1 bit/s)
• Longueur des données : n= 7 bits ou n= 8 bits (généralement du code ASCII).
La trame est constituée des bits suivants :
«1»
ou
«0»
n bits de la donnée
(ici n= 8 bits)
• Bit de start : la ligne au repos est à l'état logique « 1 ». Pour indiquer qu'une
donnée va être transmise, la ligne passe à l'état « 0 » avant de commencer le
transfert. Ce bit permet de synchroniser l'horloge du récepteur avec celle de
l’émetteur, la fréquence des horloges est définie par la vitesse de transmission.
• n bits de la donnée à transmettre.
Le bit de poids faible D0 est envoyé en premier.
• Bit de parité : la donnée transmise peut être suivie d'un bit de parité qui sert à
détecter les erreurs éventuelles de transmission.
➔ Parité paire (even) : le bit est positionné de telle façon que le nombre
d’états « 1 » soit pair sur l'ensemble « donnée + bit de parité ».
Exemple : soit la donnée 11001011 qui contient 5 états « 1 », le bit
de parité doit être positionné à « 1 », ce qui ramène ainsi le nombre
total de « 1 » au nombre pair 6.
➔ Parité impaire (odd) : le bit est positionné de telle façon que le nombre
d’états « 1 » soit impair sur l'ensemble « donnée + bit de parité ».
Exemple : soit la donnée 11001011 qui contient 5 états « 1 », le bit
de parité doit être positionné à « 0 », laissant ainsi un nombre impair
de « 1 ».
➔Pas de parité (none) : on n’ajoute pas de bit de parité.
• Bit de stop : après la transmission de la donnée (ou donnée + parité), la ligne
doit être repositionnée au repos (à l’état logique « 1 ») pendant 1 ou 2 périodes
d'horloge, selon le nombre de bits de stop, avant de transmettre une éventuelle
autre donnée.
- PAGE 2 / 4 -
3 Exemple de décodage d’une donnée transmise dans une trame RS232
Le bit de Start apparaît en premier dans la trame puis les bits de la donnée (poids faible en premier), le
bit de Parité (éventuellement) et le(s) bit(s) de Stop.
Soit à transmettre le caractère ‘Y’ en parité paire, avec 1 bit de stop.
Le code ASCII du caractère ‘Y’ est
01011001 (2)
MSB LSB
D7 = 0 D0 = 1
Liaison RS232
1ère erreur «1»
possible !
«0» Le bit de parité est à
« 0 ».
C’est normal, la parité
Système «0» choisie est une parité
numérique paire :
OU
Le nombre de « 1 » de
Liaison ?
Liaison RS232 l'ensemble
« donnée + bit de
«1» parité » doit être pair.
C’est bien le cas, il y a
0 1 0 0 1 1 0 1 0 0 1 quatre « 1 ».
D0 D1 D2 D3 D4 D5 D6 D7 P
Donnée transmise : 1 0 0 1 1 0 1 0 2ème erreur
possible !
D0 --- D7
D0 D1 D2 D3 D4 D5 D6 D7
Donnée remise dans l’ordre : D7 D6 D5 D4 D3 D2 D1 D0
D7 --- D0 0 1 0 1 1 0 0 1 Ne pas oublier
de remettre
en ordre
D7 –D0 !
On retrouve bien le code ASCII du caractère ‘Y’ : 01011001 (2)
- PAGE 3 / 4 -
4 Exercice de décodage d’une donnée transmise dans une trame RS232
Caractère Caractère Caractère
Tension positive : « 0 »
Rx liaison
Tension négative : « 1 »
REPOS REPOS
D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7
(idle) (idle)
START
START
START
STOP
STOP
STOP
6,4 div
Rx numérique
1 div
Une commande ASCII formée de trois caractères de 8 bits est envoyée par un ordinateur PC à un module
électronique, il n’y a pas de parité :
• Donnez la valeur numérique en binaire des trois données transmises.
• Donnez la valeur numérique en hexadécimal des trois données transmises.
• Identifiez les trois codes ASCII qui constituent la commande transmise.
Donnée D0 D1 D2 D3 D4 D5 D6 D7 Hexadécimal ASCII
Caractère transmise 1 0 0 0 0 0 1 0
Donnée D7 D6 D5 D4 D3 D2 D1 D0
remise dans
l’ordre 0 1 0 0 0 0 0 1 41(16) ‘A’
Donnée D0 D1 D2 D3 D4 D5 D6 D7 Hexadécimal ASCII
Caractère transmise 0 0 1 0 1 0 1 0
Donnée D7 D6 D5 D4 D3 D2 D1 D0
remise dans
l’ordre 0 1 0 1 0 1 0 0 54(16) ‘T’
Donnée D0 D1 D2 D3 D4 D5 D6 D7 Hexadécimal ASCII
Caractère transmise 1 0 1 1 0 0 0 0
Donnée D7 D6 D5 D4 D3 D2 D1 D0
remise dans
l’ordre 0 0 0 0 1 1 0 1 0D(16) ‘CR’
• D’après la base de temps utilisée sur l’oscilloscope lors de la capture de la trame, déduisez la
vitesse de transmission des données sur cette liaison RS232.
Base de temps utilisée (Tbase) : 500 s/div
6,4 divisions = 30 bits durée de transmission de 30 bits = 6,4 x 500 s = 3200 s
3200 s ➔ 30 bits en 1 s ➔ ? bit ? = (30/3200 s) = 9375 bits
Probablement que la vitesse normalisée est de : 9600 bit/s (9600 bauds)
- PAGE 4 / 4 -