Protocoles de Communication
Protocoles de Communication
Protocoles de Communication
Omar DIOURI
Email : diouri@upf.ac.ma 1
Année Universitaire 2022/2023
INTRODUCTION
2
INTRODUCTION
Domaines d’application
3
INTRODUCTION
Définitions
Terrain :
Espace géographique (usine, atelier, voiture, robot, etc).
Réseau :
Un réseau est un bus ou un ensemble de bus répartis sur un terrain.
Bus de terrain :
Un bus de terrain est un système de communication entre plusieurs ensembles communiquant
dans une zone géographique limitée (capteurs, actionneurs, calculateurs, etc.)
4
INTRODUCTION
Réseau de terrain
5
INTRODUCTION
SPI
I2C
SPI I2C
UART I2C
6
INTRODUCTION
7
INTRODUCTION
Comment dialoguer ?
➢ Comment établir la liaison entre les interlocuteurs ?
Câble, fiches, prises (couche physique)
➢ Quels types de signaux peut-on transmettre ?
Tension, courant, fréquence, phase, amplitude (couche physique)
➢ Comment définir l’adresse du destinataire ?
Adresse numérique, diffusion (couche liaison)
➢ Quand transmettre un message ?
Règles d’accès au support : maitre/esclave, détection des collisions (couche liaison)
➢ Quels messages peut-on transmettre ?
Types de données : bits, entiers, réel, texte (couche liaison)
Codage : bit, caractères, détection des erreurs (parité, checksum, CRC (couche
application)
➢ Quelles sont les significations des messages ?
Fonctions standardisées (couche application)
8
INTRODUCTION
Classification
9
INTRODUCTION
11
INTRODUCTION
12
INTRODUCTION
13
INTRODUCTION
14
INTRODUCTION
• La topologie représente la manière dont les équipements d’un réseau sont reliés entre eux par le
support physique
➢Mode point à point (étoile ou maillée) : Le support physique ne relie que deux unités. Pour
que toutes les unités communiquent ensemble, elles passent pas des points intermédiaires.
15
INTRODUCTION
16
INTRODUCTION
17
INTRODUCTION
18
INTRODUCTION
Il s’agit d’une topologie point à point multiple. Chaque nœud peut avoir (1,N) connexions avec
les autres nœuds. Les autres nœuds sont reliés à tous les autres.
• Ce type d’architecture devient vite très complexe à gérer lorsqu’il y a beaucoup de stations ;
• Cette topologie se rencontre dans les grands réseaux de distribution (ex: Internet)
20
INTRODUCTION
Terminologie
Transmission de données
Transmission Parallèle : Les bits sont envoyés simultanément sur N voies différentes. Il faut autant
de lignes de transmission que de bits à transmettre, plus une équipotentielle zéro, plus un signal dit
échantillonnage, et un signal d’acquittement.
21
INTRODUCTION
Terminologie
Transmission de données
Transmission Série : cette transmission permet de transmettre les données sur un seul support
physique. La transmission se fait en émettant les bits de données les uns après les autres. Le
problème majeur de ce mode de transmission est la synchronisation des horloges.
22
INTRODUCTION
Terminologie
Transmission Synchrone
▪ Cette méthode permet d’envoyer une trame (bloc de bits d’information) sous la forme d’un flot
continu de bits sans bit de synchronisation START et STOP.
▪ La synchronisation est obtenu à l’aide d’un signal d’horloge (généralement sur une ligne
séparée).
Transmission Asynchrone
▪ Cette méthode permet de transmettre les bits par groupes (caractères) ce qui permet au récepteur
de se synchroniser au début de chaque caractère.
▪ L’intervalle de temps qui sépare deux émissions de caractères est aléatoire et dépend de
l’émetteur.
▪ Exemple une trame peut être constituée d’un bit START, 5 à 8 bits de données, un bit de parité et
de deux bits STOP.
23
INTRODUCTION
Terminologie
Modes d’exploitation
La ligne de transmission peut être exploitée de trois manière :
▪ Simplex : mode unidirectionnel, la communication de l’émetteur vers le récepteur. (Exemple : la
radiodiffusion telle la radio FM).
▪ Half-duplex : la communication se fait dans les deux sens mais pas simultanément. ( Exemple :
Talkies-walkies, l’un parle (l’autre ne peut parler en même temps) et lorsqu'il lâche le bouton
(signal de fin de conversation) l’autre peut parler à son tour.)
▪ Full-duplex : mode bidirectionnel simultané sur le même support physique. (Exemple :
conversation téléphonique, les deux interlocuteurs peuvent parler en même temps)
Codage
▪ Codage NRZ (Non Return to Zero) unipolaire / bipolaire.
▪ Codage RZ (Return to zero) unipolaire / bipolaire.
▪ Codage de phase (Manchester type biphasé)
24
UART
▪ En langage courant, c'est le composant utilisé pour faire la liaison entre l'ordinateur et le port
série. L'ordinateur envoie les données en parallèle (autant de fils que de bits de données). Il faut
donc transformer ces données pour les faire passer à travers une liaison série qui utilise un seul
fil pour faire passer tous les bits de données.
▪ Aujourd'hui, les UART sont généralement intégrés dans des composants comme des
microcontrôleurs.
▪ Ce n’est pas directement compatible avec le port série COM ou USB des ordinateurs mais il
existe des convertisseurs à très petit prix.
25
UART
26
UART
27
UART
Vitesse de transmission
Afin de faciliter l'interopérabilité entre périphériques (PC, microcontrôleur, modem…) des vitesses
de transmission sont normalisées par multiples et sous-multiples de 9600 baud, l'unité baud
correspondant à un bit par seconde :
•110 baud
•300 baud
•1 200 baud
•2 400 baud
•4 800 baud
•9 600 baud
•19 200 baud
•38 400 baud
•57 600 baud
•115 200 baud
•230 400 baud (selon la fréquence d'oscillation employée)
•460 800 baud
28
UART
Diagramme UART
29
UART
Transmission du caractère "a" et observation sur l'oscilloscope la patte Tx d'un Arduino Uno
30
UART
32
UART
Dans une liaison UART pour transmettre un caractère Ascii (codé sur 1 octet) il faut : 1 bit
de start puis le code ASCII sur 8 bits (1 octet) et un bit de stop soit 10 bits.
Une liaison 9600 bit/s transmet donc 960 caractères par seconde.
33
UART
Bluetooth
On utilisera aussi la liaison série pour communiquer avec le microcontrôleur du HC06 qui est un
émetteur Bluetooth. Et ainsi commander un Arduino avec un téléphone Android par liaison
Bluetooth.
34
UART
Bluetooth
35
RS232
Introduction
Tout système numérique doit pouvoir communiquer avec d’autres systèmes numériques,
qu’ils soient à proximité ou éloignés.
36
RS232
Introduction
▪ RS-232 est une norme standardisant une voie de communication de type série.
▪ Disponible sur presque tous les PC depuis 1981 jusqu'au milieu des années 2000, il est
communément appelé le « port série ».
▪ Sur les systèmes d’exploitation MS-DOS et Windows, les ports RS-232 sont désignés par les
noms COM1, COM2, etc.
▪ Cependant, il est de plus en plus remplacé par le port USB.
▪ Les liaisons RS-232 sont fréquemment utilisées dans l'industrie pour connecter différents
appareils électroniques (automate, appareil de mesure, etc.).
▪ Le standard RS-232 permet une communication série, asynchrone et duplex entre deux
équipements.
37
RS232
Description
Portée du standard
39
RS232
Portée du standard
40
RS232
Protocole
Pour établir une communication effective via RS-232, il est nécessaire de définir le protocole
utilisé :
• le débit de la transmission,
• le codage utilisé,
• le découpage en trame, etc.
La norme RS-232 laisse ces points libres, mais en pratique on utilise souvent des UART qui
découpent le flux en trames d'un caractère ainsi constituées :
•1 bit de départ ;
•7 à 8 bits de données ;
•1 bit de parité optionnel ;
•1 ou 2 bits d'arrêt.
UART : Le bit de départ a un niveau logique "0" tandis que le bit d'arrêt est de niveau logique
"1". Le bit de donnée de poids faible est envoyé en premier suivi des autres.
La spécification RS-232 prescrit des débit inférieure à 20000 bit/s. Cependant, les débits
utilisés en pratique varient entre 75 bit/s et 115200 bit/s 41
RS232
Protocole
Application: pour générer un signal électrique alternatif carré (rapport cyclique 1:1) sur le port
série,
imprimer une suite consécutive de U (01010101) ce qui donne dans le temps
• 0(départ)
• 10101010 (U, du lsb au msb)
• 1(arrêt)
• donc 0101010101 (010101010101010101010101010101 = UUU) avec 8 bits de donnée,
• 1 bit départ,
• 1 bit arrêt
• Et 0 bit de parité.
42
RS232
Protocole
Oscillogramme de la
transmission du
caractère K (01001011),
avec un bit de départ et
un bit d'arrêt
43
RS232
Electrique
Un niveau logique "0" est représenté par une tension de +3V à +25V et un niveau logique "1"
par une tension de -3V à -25V (codage NRZ). D'ordinaire, des niveaux de +12V et -12V sont
utilisés.
La norme V.28 indique qu'un 1 est reconnu si la tension est inférieure à -3V et un 0 est reconnu
si la tension est supérieure à +3V.
44
RS232
MAX232
45
RS232
MAX232
46
RS485
Introduction
▪ La EIA (Electrical Industry Association) qui l'avait introduite sous le nom RS-485. On
rencontre donc les dénominations équivalentes RS-485, EIA-485, EIA/TIA-485, TIA/EIA-
485 et TIA-485.
▪ RS-485 est une norme qui définit les caractéristiques électriques de la couche physique d'une
interface numérique sérielle.
▪ La transmission se fait sur une ligne électrique, en pratique une paires torsadée, par des
variations de tension en mode différentiel.
47
RS485
Introduction
48
RS485
Transmission différentielle
49
RS485
Transmission différentielle
Au lieu de transmettre le signal comme tension par rapport à la masse, on utilise deux
conducteurs, l'un convoyant le signal, et l'autre son inverse. À la réception, on détecte le signal
par un transformateur ou un amplificateur différentiel.
Dans une ligne symétrique, c'est-à-dire utilisant deux conducteurs identiques, bien équilibrée,
toutes les impédances par rapport à la masse sont égales. Les interférences influent de la même
façon sur les deux conducteurs, et disparaissent dans l'opération de différence.
50
RS485
Transmission différentielle
51
RS485
Transmission différentielle
Exemple :
Un signal logique se définit par ses niveaux. Supposons qu'une tension de 0 à 1 V corresponde à
l'information « 0 » et une tension de 2 à 3 V à l'information « 1 ».
Avec une transmission simple, une interférence créant sur le conducteur une tension supérieure à
1 V est susceptible de changer un « 0 » en « 1 », causant une erreur.
Dans une transmission différentielle, une ligne (L+) transmet le signal, tandis que l'autre (L-)
transmet l'inverse du signal, c'est-à-dire un niveau « 0 » quand l'autre est à « 1 », et réciproquement.
Le récepteur effectue la différence entre ces signaux. Si (L+ − L-) est supérieur à 1 V, c'est que le
signal est « 1 ». Si (L+ − L-) est inférieur à −1 V, c'est que le signal est « 0 ».
Une perturbation qui affecte de la même manière L+ et L- n'a aucun effet sur le signal différentiel
résultant.
52
RS485
LaIntrodction
norme RS485
53
RS485
La norme RS485
Il définit également les trois points d'interface du générateur (lignes de signaux); «A», «B» et
«C». Les données sont transmises sur "A" et "B". "C" est une référence de masse.
Il définit également les états logiques 1 (off) et 0 (on), par la polarité entre les bornes A et B
(différentiel de tension). Si A est négatif par rapport à B, l'état binaire est 1. L'inverse (A +, B-)
est un 0 binaire.
54
RS485
La norme RS485
55
RS485
Transmission multi-points
• Une ligne RS-485 peut être en mode "full duplex", sur 4 fils, elle supporte aussi un mode
"half duplex" sur 2 fils.
56
RS485
Transmission multi-points
• Le passage d'un mode à l'autre (transmit/receive) est défini par les couches de protocole
supérieures.
• La caractéristique d’une ligne de transmission accepte jusqu'à 32 émetteurs (transmitters) et 32
récepteurs (receivers) sur une même ligne.
57
RS485
58
RS485
Composant MAX485
59
Bus SPI
Définition
▪ SPI (Serial Peripheral Interface) est un bus de données série synchrone qui opère en mode full-
duplex.
▪ Les circuits communiquent selon un schéma maître-esclaves, où le maître contrôle la
communication.
▪ Plusieurs esclaves peuvent coexister sur un même bus, dans ce cas, la sélection du destinataire
se fait par une ligne dédiée entre le maître et l'esclave appelée Slave Select (SS).
60
Bus SPI
Afficheur LCD
LCD graphique
8 CNA 12 bits
84 x 48 pixels LTC2636
Mémoire EEPROM, FLASH..
Extension de bus
2 x 8 bits
61
Bus SPI
Interface
Un seul
esclave
actif à
la fois
62
Bus SPI
Interface
Dans le cas de la convention de nommage SDI/SDO, le SDO du maître doit-être relié au SDI de
l'esclave et vice versa
63
Bus SPI
Fonctionnement
Une transmission SPI typique est une communication simultanée entre un maître et un esclave :
•Le maître génère l'horloge et sélectionne l'esclave avec qui il veut communiquer par l'utilisation
du signal SS
•L'esclave répond aux requêtes du maître
À chaque coup d'horloge le maître et l'esclave s'échangent un bit. Après huit coups d'horloges le
maître a transmis un octet à l'esclave et vice versa. La vitesse de l'horloge est réglée selon des
caractéristiques propres aux périphériques.
64
Bus SPI
Configuration de SPI :
bit de poids fort est CPOL (Clock Polarity) et le bit de poids faible CPHA (Clock Phase)
65
Bus SPI
66
Bus SPI
67
Bus SPI
Avantages
Inconvénients
•Utilise plus de broches par rapport à I2C ou UART qui en utilisent seulement deux.
•Aucun adressage possible, il faut une ligne de sélection par esclave en mode non chaîné.
•Le protocole n'a pas d'acquittement. Le maître peut parler dans le vide sans le savoir.
•La plupart des implémentations ne tolèrent la présence que d'un seul maître SPI sur le bus.
•Ne s'utilise que sur de courtes distances contrairement aux liaisons RS232, RS485 ou bus CAN.
69
Bus SPI
Sélection
-CS = 0
Horloge
-Sur front
µC -> 00000101
-Le MSB en premier
EEPROM-> 00000010
-Le MSB en premier
70
Bus I2C
Définition
71
Bus I2C
72
Bus I2C
Couche physique
Topologie
▪ I2C est un bus série synchrone bidirectionnel half duplex, où plusieurs équipements, maîtres
ou esclaves, peuvent être connectés au bus.
▪ Les échanges ont toujours lieu entre un seul maître et un (ou tous les) esclave(s), toujours à
l'initiative du maître (jamais de maître à maître ou d'esclave à esclave). Cependant, rien
n'empêche un composant de passer du statut de maître à esclave et réciproquement.
▪ Les 2 lignes sont tirées au niveau de tension VDD à travers des résistances de pull-up (RP)
▪ Le nombre maximal d'équipements est limité par le nombre d'adresses disponibles, 7 bits
d'adressage et un bit R/W (lecture ou écriture), soit 128 périphériques, mais il dépend également
de la capacité (CB) du bus (dont dépend la vitesse maximale du bus)
73
Bus I2C
Couche physique
Topologie
74
Bus I2C
Couche physique
Codage des bits
Le niveau (« HIGH » ou « LOW ») de la ligne SDA doit être maintenu stable pendant le niveau
« HIGH » sur la ligne SCL pour la lecture du bit.
75
Bus I2C
Couche physique
Niveaux électriques
▪ Les équipements sont donc câblés sur le bus par le principe du « ET câblé », ce qui veut dire
qu'en cas d'émission simultanée de deux équipements, la valeur 0 écrase la valeur 1.
▪ On dit donc :
• que l'état logique « 0 » ou « LOW » est l'état « dominant »,
• que l'état logique « 1 » ou « HIGH » est l'état « récessif ».
▪ Lorsque le bus n'est pas utilisé, il est au niveau haut (à travers les résistances de pull-up RP).
▪ Les niveaux utilisés entre les lignes de bus sont proportionnels à VDD :
76
Bus I2C
Sur certains anciens circuits, les niveaux utilisés peuvent être fixes et donnés par les formules
suscitées pour une valeur de VDD = 5 V.
77
Bus I2C
•Le maître est l'émetteur, l'esclave est le récepteur :émission d'une condition de START par le
maître (« S »),
•émission de l'octet ou des octets d'adresse par le maître pour désigner un esclave, avec le bit
R/W à 0 (voir la partie sur l'adressage ci-après),
•réponse de l'esclave par un bit d'acquittement ACK (ou de non-acquittement NACK),
•après chaque acquittement, l'esclave peut demander une pause (« PA »).
•émission d'un octet de commande par le maître pour l'esclave,
•réponse de l'esclave par un bit d'acquittement ACK (ou de non-acquittement NACK),
•émission d'une condition de RESTART par le maître (« RS »),
•émission de l'octet ou des octets d'adresse par le maître pour désigner le même esclave, avec le
bit R/W à 1.
78
Bus I2C
79
Bus I2C
80
Bus I2C
▪ La condition de START est une transgression de la règle de codage des bits qui est utilisée
par le maître pour signifier le début d'une trame.
▪ Cette condition est caractérisée par le passage de la ligne SDA du niveau « HIGH » au
niveau « LOW » pendant que la ligne « SCL » est maintenue au niveau « HIGH ».
81
Bus I2C
On peut également considérer que l'adresse est codée sur les 8 bits, chaque esclave a alors deux
adresses, l'adresse paire qui sert à lui envoyer des données, l'adresse impaire pour lui demander d'en
envoyer.
82
Bus I2C
Dans le cas d'un adressage sur 10 bits, il faut utiliser deux octets.
▪ Le premier est l'octet « 11110yz0 » (comme précisé ci-dessus), les bits « yz » sont les 2 bits de
poids forts de l'adresse, le bit R/W est toujours placé à 0.
▪ Le deuxième octet est utilisé pour les 8 bits de poids faibles de l'adresse, il n'y a pas de bit R/W.
83
Bus I2C
À la suite de l'émission du premier octet, plusieurs esclaves parmi ceux ayant une adresse sur
10 bits peuvent répondre par un ACK (ceux qui ont les mêmes 2 bits de poids fort). Peu importe, à
l'issue du 2e octet, seul l'esclave auquel on s'est adressé répondra.
Le bit R/W étant toujours placé à 0, pour demander à un esclave d'écrire, à la suite de l'émission
des 2 octets précédents, il faut renvoyer une condition de RESTART suivie de l'octet « 11110yz1 »
(avec le bit R/W à 1), pour que l'esclave sache qu'il s'agit d'une commande de lecture.
84
Bus I2C
▪ À tout moment, l'esclave peut « bloquer » la ligne SCL au niveau « LOW » pour signaler qu'il
est occupé.
▪ Lorsque le maître fournit un niveau « HIGH » sur la ligne SCL, il détecte l'écrasement. Le
maître doit continuer à fournir le niveau « HIGH » sur la ligne.
▪ Lorsque l'esclave est à nouveau prêt, il libère la ligne SCL et celle-ci prend alors immédiatement
le niveau « HIGH », le cycle reprend.
86
Bus I2C
▪ La condition de RESTART est une transgression de la règle de codage des bits qui est utilisée
par le maître pour signifier le début d'une nouvelle trame dès la fin de la trame précédente sans
passer par une condition de STOP.
▪ La condition de RESTART est similaire à la condition de START, à cela près que la ligne SCL
doit d'abord passer du niveau « LOW » au niveau « HIGH ».
87
Bus I2C
▪ La condition de STOP est une transgression de la règle de codage des bits qui est utilisée par le
maître pour signifier la fin d'une trame.
▪ Cette condition est caractérisée par le passage de la ligne SDA du niveau « LOW » au niveau
« HIGH » pendant que la ligne SCL est maintenue au niveau « HIGH »
88