Vous êtes sur la page 1sur 21

La liaison série RS232

Ahmed AOUCHAR

L’École des INGÉNIEURS Scientifiques

1.1. LES TRANSMISSIONS NUMÉRIQUES

 Tout système numérique doit pouvoir communiquer avec d’autres systèmes


numériques, qu’ils soient à proximité ou éloignés.

Sys. Num. Sys. Num.


interface
1 2

 Le transfert de données doit satisfaire certaines exigences comme :


1. La portée (distance à atteindre)
2. Le débit (nombre de bits/s transmis)
3. La fiabilité (contrôle d’erreurs)
4. La sécurité (confidentialité des données)

2
1.2. TRANSMISSION PARALLÈLE / SÉRIE

PARALLÈLE :  Plusieurs bits sont transmis en même temps.


 Débit plus élevée à fréquence égale.
 Portée faible.

Sys. Num. Sys. Num.


interface
1 2

 Les bits sont transmis l’un après l’autre.


SÉRIE :
 Compense le faible débit par la fréquence.
 Portée plus élevée.

Sys. Num. Sys. Num.


interface
1 2
3

1.3. MODE SYNCHRONE / ASYNCHRONE

SYNCHRONE :  L’horloge est transmise avec les données, ou à part.


 Les trames sont longues (un centaine d’octets / trame).

Trame data Trame data USB

I2C

ASYNCHRONE :  L’émetteur et le récepteur ont chacun son horloge.


 Les trames sont courtes (un octet / trame).

Sys. Num. Sys. Num.


1 2
4
1.4. NORME RS232 / RS485

RS232 :  La plus utilisée pour sa simplicité.


 Portée : 150 m à 9600 Bauds.

Sys. Num. Sys. Num.


1 2

RS485 :  2 paires différentielles torsadées pour éviter les


perturbations.
 Portée : 1000 m à 9600 Bauds.
Sys. Num. Sys. Num.
1 2

1.5.1. COMMUNICATION PAR « MODEM »

modem PC2
2
modem
PC1 1

 Le modem (modulateur-démodulateur) transforme les signaux numériques en


signaux analogiques qu’il envoie sur la ligne téléphonique.
 À la réception, le modem fait la transformation inverse.
 La portée est celle du réseau téléphonique (ex: France – Australie).

modem
PC1 011011011011 1

LIGNE modem
2
011011011011 PC2
6
1.5.2. PRINCIPE DE LA MODULATION

Phase
(PM)

Amplitude Fréquence
(AM) (FM)

2.1. FORMAT D’UNE TRAME DE DONNÉES

Repos Repos
1L
S P S S
T A T
0 1 2 3 4 5 6 7 R
T
A I O A
R T P R
T É T
0L

SENS DE SORTIE DES BITS

 La ligne au repos est au niveau logique 1.


 Le bit « start » (0 logique) signale le début de la trame.
 Le bit de parité (optionnel) permet de détecter une éventuelle erreur.
 Le « stop » (1 logique) clôture la trame. Il comporte 1 ou 2 bits.
 Tous les bits ont la même durée T (période de l’horloge associée).
8
2.2. LECTURE DES BITS EN PLEIN MILIEU

Horloge
Emetteur

lecture
REPOS START BIT 0

Compteur = 8 16 16

Horloge
de travail

Horloge
Récepteur

Ainsi, un écart de 5% entre les fréquences d’horloges est autorisé. 9

2.3. VITESSE DE TRANSFERT (DÉBIT)

 Chaque bit dure une période T comme c’est déjà annoncé.


 Le débit est exprimé en Bauds = nombre de bits transmis par seconde.
 En full duplex, la vitesse est en général la même dans les deux sens.
  
 Formule de calcul rapide :   
  
  

50 bauds 2400 bauds


75 bauds 4800 bauds
110 bauds 9600 bauds
QUELQUES VITESSES
NORMALISÉES 150 bauds 19200 bauds
300 bauds 38400 bauds
600 bauds 56000 bauds
1200 bauds 115200 bauds
10
2.4. LE BIT DE PARITÉ

 Un bit de parité peut être ajouté après l’octet transmis afin de détecter une
éventuelle perte de bit à l’arrivée.

PARITÉ PAIRE :
 Le nombre de bits à « 1 » en comptant l’octet et le bit de parité est
pair.

 Exemple : 10110011 1 (6 bits à « 1 »)

PARITÉ IMPAIRE :
 Le nombre de bits à « 1 » en comptant l’octet et le bit de parité est
impair.

 Exemple : 10110011 0 (5 bits à « 1 »)

11

2.5.1. CODE ASCII DE BASE

 Le code ASCII « aski » = American Standard Code for Information Interchange


 La norme ASCII définit 128 codes représentant des caractères de contrôle, des
lettres latines ainsi que certains symboles et des opérateurs.
 Le code ASCII suffit pour la langue anglaise mais s’avère incomplet pour d’autres
langues comme le français.
 Après cette standardisation, les machines arrivent à communiquer sans difficulté !

12
2.5.2. ASCII ÉTENDU « UNICODE »
 Unicode est un système de codage international permettant de représenter
l’ensemble des caractères des différentes langues de la planète.
 Créé par un groupement d’entreprises, il est adopté par toutes les plateformes
matérielles et tous les logiciels.
 Unicode utilise un code sur 16 bits, normalisé sous la référence ISO/CEI 10646.
 Voici un bout du tableau qui comporte quelques milliers codes :

13

2.6. NIVEAUX LOGIQUES / ÉLECTRIQUES

 La tension électrique est bipolaire (±V, mais jamais nulle) pour éviter de véhiculer
une valeur moyenne qui dissiperait de l’énergie inutilement.
 Les bits sont représentés en logique négative 1L = -V et 0L = +V (Pourquoi pas ?).

+25 V

Niveau logique 0
+3 V

-3 V

Niveau logique 1
-25 V

14
2.7.1. LE CONNECTEUR DB25

Nomenclature des broches :

Numéro Nom Désignation


2 Transmit Data Transmission de données
3 Receive Data Réception de données
4 Request to Send Demande d'émission
5 Clear to Send Prêt à émettre
6 Data Set Ready Données prêtes
7 Signal Ground Masse logique
8 Carrier Detect Détection de porteuse
20 Data Terminal Ready Terminal prêt
22 Ring Indicator Indicateur de sonnerie
15

2.7.2. LE CONNECTEUR DB9

Nomenclature des broches :

Numéro Nom Désignation


1 Carrier Detect Détection de porteuse
2 Receive Data Réception de données
3 Transmit Data Transmission de données
4 Data Terminal Ready Terminal prêt
5 Signal Ground Masse logique
6 Data Set Ready Données prêtes
7 Request to Send Demande d'émission
8 Clear to Send Prêt à émettre
9 Ring Indicator Indicateur de sonnerie
Shield Blindage
16
3.1. CONTRÔLE DE FLUX « SOFTWARE »

 Xon/Xoff est un protocole logiciel qui permet une transmission bidirectionnelle


série sur 3 fils.
 Xon et Xoff sont représentés par 2 codes ascii.

Code sens ascii dec hexa clavier


Xoff pause DC3 19 13 Ctrl + S
Xon envoi DC1 17 11 Ctrl + Q

 Quand le périphérique qui reçoit les données ne peut plus en recevoir, il le signal à
l’émetteur par l’envoi du code Xoff. L’émetteur arrête la transmission, il la reprend
lorsqu'il reçoit le code Xon. Cela peut être le cas de la liaison entre un PC et une
imprimante moins rapide.
 La liaison entre les 2 appareils se fait par 3 fils seulement (voir figure suivante)

17

3.2. CONNEXION DIRECTE / CROISÉE

Connexion
Minimale : 3 fils

Connexion
complète : 9 fils

18
3.3. CONTRÔLE DE FLUX « HARDWARE »

 DTE (Data Terminal Equipment) = Appareil qui génère des données (ex : PC)
 DCE (Data Communication Equipment) = Appareil qui communique (ex : modem)
19

3.4. RS232 ET USB

 Le port série RS232 est bien implanté dans le milieu industriel, le port USB équipe
toutes les nouvelles machines. Pour communiquer en RS232 avec un port USB, des
interfaces intelligentes et transparentes existent.

20
3.5.1. UART

Tx
Data

Rx
L’UART « Universal Asynchronous
Receiver Transmitterest » un
circuit programmable qui sert
d’interface entre le système
Control
numérique et les broches
physiques.

modem
INTR

Quartz 21

3.5.2. CONFIGURATION « WINDOWS »

 L’UART peut être utilisé selon deux modes : interruption ou scrutation.


1. En mode scrutation (polling), le CPU lit en permanence l’état de certains
registres pour connaître l’état de la transmission.
2. En mode interruption, le CPU est averti par interruption à chaque fois que des
données sont reçues.
 Lorsqu’un port série est installé sur un PC, il doit être configuré en lui affectant des
adresses d’E/S spécifiques et un numéro d’interruption (IRQ). On utilise en général
les adresses standard (0x3F8 pour COM1 et 0x2F8 pour COM2).

22
Le bus I2C
Ahmed AOUCHAR

L’École des INGÉNIEURS Scientifiques

1.1. PRÉSENTATION

 I2C (Inter Integrated Circuit) est un bus série orienté communication


entre circuits intégrés comme son nom l’indique.
 Il a été développé au début des années 80 par « Philips Semiconductor »
pour réduire le nombre de fils entre les circuits numériques présents dans
les cartes électroniques des téléviseurs.
 Il est devenu un standard implanté dans plus de 1000 composants (LCD,
EEPROM, ADC …) et plus de 50 compagnies en détiennent la licence.
 Il permet de faire communiquer des circuits intégrés entre eux à l’aide de
trois fils seulement :
1. SCL : horloge qui cadence la transmission des données (bus
synchrone).
2. SDA : signal de données (transmission série en half-duplex).
3. GND : masse électrique de référence.
2
1.2. CARACTÉRISTIQUES PRINCIPALES

 Chaque composant connecté au bus doit posséder une adresse unique.


 C’est un bus maître-esclave : à chaque communication, un maître dialogue
avec un esclave.
 C’est un bus multi maîtres avec arbitrage des conflits au cas où deux
maîtres initieraient des transferts simultanés.
 C’est une transmission bidirectionnelle de données en série, par paquets
de 8 bits et en « half-duplex ».
 C’est un bus synchrone, cadencé à 100 Kbps (Sdandard mode) ou 400
Kbps (fast mode) ou 3,2 Mbps (high speed mode).
 Les pics parasites sont rejetés par un filtrage intégré pour préserver
l’intégrité des données.
 Le nombre de périphériques (esclaves) est limité par la capacitance du bus
qui ne doit pas dépasser 400 pF et le nombre de bits d’adresse
évidemment.
3

1.3. SPÉCIFICATIONS ÉLECTRIQUES

 Les signaux SCL et SDA sont de type « collecteur ouvert » avec des résistances de
rappel vers VDD. Les lignes sont à ‘1’ quand le bus est libre.
 Les lignes SCL et SDA ne peuvent être forcées qu’au niveau bas. Pour appliquer un
niveau haut, les sorties sont mises en haute impédance. Le niveau électrique ‘Haut’
dépend de VDD.
 Ce mode de fonctionnement évite les conflits électriques sur le bus : si un circuit
met une ligne à ‘1’ et un autre met la même ligne à ‘0’, il n’y a as de court-circuit.

Circuit 1 Circuit 2 4
2.1. FORMAT D’UN TRANSFERT

 Au repos, les signaux SCL et SDA sont au niveau haut grâce aux résistances de
rappel.
 Le transfert de données commence par un START et se termine par un STOP.
 Un transfert comporte 8 bits commençant par le bit de poids fort (MSB). Après
chaque accord (ACK), on peut enchaîner sur un autre transfert.
 Chaque bit est validé par une impulsion de l’horloge SCL. La donnée doit être
stable pendant l’impulsion d’horloge.

2.2. CONDITIONS DE START ET DE STOP

 Le START et le STOP sont générés par le maître qui initie un transfert sur le bus.
 Après avoir vérifié que le bus est libre et en avoir pris le contrôle, le circuit en
devient le maître : c’est lui qui génère l’horloge.
 La condition de START (S) s’applique lorsque le signal SDA passe de « 1 » à « 0 »
pendant que l’horloge SCL est à « 1 ». Après le START, le bus passe dans l’état
« occupé »
 La condition de STOP (P) s’applique lorsque le signal SDA passe de « 0 » à « 1 »
pendant que l’horloge SCL est à « 1 ». Après le STOP, le bus redevient « libre ».

6
2.3. L’ACCUSÉ DE RÉCEPTION « ACK »

 La réponse à tout transfert est obligatoire, c’est la condition « ACKNOWLEDGE »


(ACK ) qui la représente.
 L’esclave doit donner son accord en mettant à « 0 » le signal SDA pendant
l’impulsion SCL envoyée par le maître juste après la donnée.
 Si l’esclave manifeste son désaccord en mettant SDA à « 1 » pendant l’impulsion
d’horloge, le maître génère soit un STOP pour abandonner le transfert, soit un
START pour retenter sa chance.

2.4.1. TIMING - CHRONOGRAMMES

 Il faut respecter un certain timing dans l’enchainement des signaux pour que le
transfert se passe correctement.
 La largeur des impulsion d’horloge doit être bien calibrée en respectant les durées
à l’état bas et l’état haut : tLOW et tHIGH.
 Les temps de SETUP et de HOLD ( tSU et tHD ) du START, du STOP et de la DATA
doivent respecter certaines valeurs minimales.

8
2.4.2. TIMING - VALEURS

3.1.1. ADRESSAGE EN LECTURE / ÉCRITURE

 Après le START, le maître envoie une adresse pour sélectionner un esclave avec qui
il veut dialoguer.
 L’adresse est composée de 7 bits auxquels s’ajoute un bit de lecture/écriture : ce bit
vaut 0 pour une écriture et 1 pour une lecture. Pour basculer de l’écriture vers la
lecture ou inversement, un nouveau START doit être envoyé.

Le maître envoie des données

Le maître reçoit des données

10
3.1.2. ADRESSES RÉSERVÉES

 Dans le cas des mémoires, l’espace adressable est élevé : le premier octet
sélectionne la mémoire, les octets suivants sélectionnent une case mémoire parmi
l’espace adressable.
 Les adresses 0000XXX et 1111XXX sont réservées pour des modes particuliers

Appel de tous les circuits connectés


Synchronisation des circuits rapides et lents
Compatible avec le standard CBUS
Pour la compatibilité avec les autres formats

Mode d’adressage sur 10 bits


11

3.2. ÉCRITURE D’UNE DONNÉE

 Le maître met le bit R/W à « 0 » pour signifier à l’esclave qu’il veut lui envoyer des
données.
 Il met ensuite la broche SDA en haute impédance pour attendre l’accusé de
réception de l’esclave (ACK).
 Après un « ACK », le maître envoie les différents octets de données séparés tous
par des « ACK ». Il termine la transaction par un STOP.

Maître

Esclave

Résultant
12
3.3. LECTURE D’UNE DONNÉE

 Le maître met le bit R/W à « 1 » pour signifier à l’esclave qu’il veut lui recevoir des
données.
 Il met ensuite la broche SDA en haute impédance pour attendre l’accusé de
réception de l’esclave (ACK).
 Il garde SDA en haute impédance pour lire les données. Après caque octet lu, il
envoie un « ACK » et il termine la transaction par un « NACK » et un « STOP ».

Maître

Esclave

Résultant
13

4.1. GESTION DES CONFLITS

 Le bus I2C autorise qu’il y ait plusieurs maîtres, ce qui crée forcément des
conflits au moment de la prise en mains du bus.
 Chaque maître peut prendre possession du bus dès que celui-ci est libre. Il
est alors possible que deux maîtres veuillent se saisir du bus en même
temps.
 Il n’y a pas de problème électrique puisque les entrées/sorties sont à
collecteur ouvert.
 Il y a par contre un conflit logique et risque de collision des données. Il
faut éviter à tout prix la corruption des données.
 Une gestion des conflits et un arbitrage sont prévus pour départager deux
maîtres prétendant à la prise en possession du bus.

14
4.2. SYNCHRONISATION DE L’HORLOGE

 Comme l’horloge est générée par le maître, si deux maîtres prennent possession
du bus en même temps, il y aura deux horloges.
 La synchronisation des horloges se fera par le « OU CÂBLÉ ».
 L’horloge résultante est à 1 uniquement quand les deux horloges sont à 1.
 L’horloge qui a l’état bas le plus long va plonger l’autre circuit dans un état
d’attente que la ligne passe à 1.

15

4.3. PRISE DE CONTRÔLE DU BUS

 La première chose à vérifier par un maître avant de prendre le contrôle du


bus est que celui-ci soit libre : SCL=1 et SDA=1 (ligne au repos).
 Il doit aussi vérifier que le dernier STOP date d’au moins 4,7 µs.
 S’il y a plusieurs maîtres, c’est l’état des lignes SCL et SDA qui va arbitrer
les conflits.
 Plusieurs cas peuvent se présenter :
1. Plusieurs maîtres envoient les mêmes données (extrêmement rare !), il
n’y a pas de problème, ils continuent à émettre
2. Un maître écrit un 1 et lit un 1 sur la ligne SDA, il continue à émettre
3. Un maître écrit un 1 et lit un 0 sur la ligne SDA : cela signifie qu’un
autre maître émet en même temps. Il perd l’arbitrage, il arrête
d’émettre.

16
4.4. EXEMPLE D’ARBITRAGE

 Le premier octet est transmis normalement, il n’y a pas de conflit, les deux maîtres
envoient les mêmes données.
 Sur le 3ème bit de l’octet suivant, le maître n°2 envoie un 1 et lit un 0 sur SDAR, il
perd l’arbitrage et arrête d’émettre. Il devient esclave.
 Le maître n°1 ne voit aucun conflit et continue d’émettre normalement, comme si
de rien n’était.

17

4.5. SYNCHRONISATION MAÎTRE & ESCLAVE

 Dans le cas des esclaves lents, le maître peut s’impatienter et perdre la main avec
l’esclave avec qui il dialogue.
 Sur la figure suivante, l’esclave qui n’a pas fini son travail (exemple d’un
convertisseur CAN) ne donne pas son accord assez rapidement, le maître annule le
transfert.
 Il faut trouver un moyen pour synchroniser ces deux circuits qui ne travaillent pas
manifestement à la même vitesse.

18
SYNCHRONISATION MAÎTRE & ESCLAVE

 Après l’octet, l’esclave force SDA à 0 (acquittement) et SCL à 0 et il démarre sa


conversion.
 Le maître voit que SCL est forcé à 0 par l’esclave, il relâche SCL et SDA et se met
dans une boucle d’attente.
 Lorsque l’esclave a terminé sa conversion, il relâche la ligne SCL.
 Le maître voyant SCL à 1 et SDA à 0 va lire le résultat de la conversion.
19