Vous êtes sur la page 1sur 88

Protocoles de communication

Omar DIOURI
Email : diouri@upf.ac.ma 1
Année Universitaire 2022/2023
INTRODUCTION

L’idée de départ : réduction du câblage (coût)

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

Réseau en Informatique Industrielle

SPI
I2C

SPI I2C

UART I2C

6
INTRODUCTION

Avantages des réseau locaux

➢ Simplification et réduction des raccordements et câbles


➢ Réduction des erreurs de câble
➢ Simplification du projet : meilleur vue d’ensemble
➢ Mise en service simplifiée
➢ Diagnostic d’erreur plus rapide
➢ Economie de temps et d’argent
➢ Flexibilité (extension du réseau facile à réaliser)
➢ Interopérabilité : connecter des produits de fabricants différents sur un même bus de terrain
(standardisation des réseaux).
➢ Partage des informations disponibles entre les équipements.
➢ Dialogue direct entre 2 équipements.
➢ Structure distribuée permettant un éclatement du contrôle commande.

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

Model OSI (Open Systems Interconnection)


La couche application est le point d'accès aux services réseaux, elle n'a pas de service propre
spécifique et entrant dans la portée de la norme.
La couche présentation est chargée du codage des données applicatives, précisément de la
conversion entre données manipulées au niveau applicatif et chaînes d'octets effectivement
transmises.
La couche session gère la synchronisation des échanges et les « transactions », permet
l'ouverture et la fermeture de session.
La couche transport gère les communications de bout en bout entre processus (programmes
en cours d'exécution).
La couche réseau gère les communications de proche en proche, généralement entre
machines : routage et adressage des paquets
La couche liaison gère les communications entre 2 machines directement connectées entre
elles, ou connectées à un équipement qui émule une connexion directe.
La couche physique est chargée de la transmission effective des signaux entre les
interlocuteurs. Son service est limité à l'émission et la réception d'un bit ou d'un train de
bit continu (notamment pour les supports synchrones).
10
INTRODUCTION

Model OSI (Open Systems Interconnection)

Protocol Data Unit (PDU)

11
INTRODUCTION

Model OSI (Open Systems Interconnection)

12
INTRODUCTION

Model OSI (Open Systems Interconnection)

13
INTRODUCTION

Couche physique : Support physique

L’utilisation des supports physiques dépend de la distance entre les stations


et de l’environnement dans lequel sera installé le support.
• Paire torsadée (blindée ou non)
• Câble coaxial
• Câble électrique (courant porteur)
• Fibre optique
• Ondes radio
• Infra-rouges
• Laser

14
INTRODUCTION

Couche physique : Topologies

• La topologie représente la manière dont les équipements d’un réseau sont reliés entre eux par le
support physique

• Modes de propagation des données dans le réseau :


➢Mode de diffusion (bus ou anneau) : Utilisation d’un seul support de transmission. Le
message est envoyé sur le réseau, toute les unités du réseau sont capable de voir le message et
d’analyser selon l’adresse du destinataire si le message lui est destiné ou non.

➢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

Couche physique : Topologies


Topologie en anneau
Toutes les unités sont reliées entre elles dans une boucle fermée. Les données circulent dans une
direction unique, d’une unités à l’autre. Une unité n’accepte une donnée en circulation sur
l’anneau que si elle correspond à son adresse, sinon la donnée est transférée à l’unité suivante.
Avantages :
▪ La quantité de câble nécessaire est minimale
▪ Le protocole est simple, il évite la gestion des collisions
Inconvénients :
▪ Le retrait ou la panne d'une entité active paralyse le trafic du réseau.
▪ Il est également difficile d'insérer une nouvelle station

16
INTRODUCTION

Couche physique : Topologies


Topologie en étoile
L’ensemble des équipements du réseau sont reliés à un système matériel central (nœud). Ce système a
pour rôle d’assurer la communication entre les différents équipements. L’équipement centrale peut
être : « hub » : concentrateur, « switch » : commutateur, « router » : routeur
Les avantages :
▪ ajout facile de postes ;
▪ localisation facile des pannes ;
▪ le débranchement d'une connexion ne paralyse pas le reste du réseau ;
▪ simplicité éventuelle des équipements au niveau des nœuds : c'est le
concentrateur qui est intelligent.
Les inconvénients :
▪ si le concentrateur est défectueux, tout le réseau est en panne.
▪ utilisation de multiples routeur ou switch afin de pouvoir
communiquer entre différents réseaux ou ordinateur

17
INTRODUCTION

Couche physique : Topologies


Topologie en hiérarchie :
Cette topologie est organisé en niveaux. Le sommet de la hiérarchie est connecté à des nœuds,
niveaux inférieurs. Ces nœuds peuvent également être connectés à d’autres nœuds. Le tout
dessine une arborescence. Ce type d’architecture est dépendante du système « père », qui s’il
tombe en panne alors il est impossible d’établir une communication entre les deux branches
du réseau.

18
INTRODUCTION

Couche physique : Topologies


Topologie en bus
Un câblage unique permet d’établir la communication entre l’ensemble des nœuds.
Les avantages :
▪ Facile à mettre en œuvre.
▪ Utilisable pour des réseaux temporaires (installation facile).
▪ Présente l'un des coûts de mise en réseau le plus bas.
Les inconvénients :
▪ Longueur du câble et nombre de stations limités.
▪ Un câble coupé peut interrompre le réseau.
▪ Les coûts de maintenance peuvent être importants à long terme.
▪ Les performances se dégradent avec l'ajout de stations.
▪ Faible sécurité des données transitant sur le réseau (toutes les stations
connectées au bus peuvent lire toutes les données transmises sur le bus).
▪ Il faut utiliser une terminaison pour les extrémités du bus dans le cas de
câbles coaxiaux afin d'éviter la réflexion des signaux (adaptateur
d’impédance, surnommé « bouchon »).
19
INTRODUCTION

Couche physique : Topologies


Topologie en maillé

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

Liaison série asynchrone

▪ UART, pour Universal Asynchronous Receiver Transmitter, est un émetteur-récepteur


asynchrone universel.

▪ 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

Liaison série asynchrone

Avantages : standardisée, universelle


3 fils suffisent (émission Tx, réception Rx, masse GND) et souvent l'alimentation + 5 V

Inconvénients : Assez lent. (maximum pour un Arduino : 115200 bauds)

26
UART

Constitution d'une trame UART


Une trame UART est constituée des bits suivants :
•Un bit de Start toujours à 0 : servant à la synchronisation du récepteur
•Données : la taille des données est comprise entre 5 et 9 bits. Bits envoyés du LSB (bit de
poids faible) au MSB (bit de poids fort).
•Parité: Paire ou Impaire (optionnel)
•Fin : Un bit de stop, toujours à 1. La durée de celui-ci varie entre 1, 1.5 et 2 (A l'utilisateur de
choisir).

- Le niveau logique de repos est le 1.


- Les niveaux de tension sont de type TTL soit 0 V pour le niveau logique bas et +5V pour le
niveau logique haut.

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

Test de la liaison UART

Transmission du caractère "a" et observation sur l'oscilloscope la patte Tx d'un Arduino Uno

30
UART

Test de la liaison UART

Le code ASCII du caractère a est


97, soit 0x61 en hexadécimal,
soit 0b 0110 0001 en binaire.

Commentaire de l'oscillogramme obtenu :


•A : Bit de Stop de la trame précédente
•B : Bit de start de la nouvelle trame a =
(MSB)0110 0001(LSB), soit à l'envers
(LSB)1000 0110(MSB)
•les 4 bits de poids faible : C (LSB=1) D
(0) E (0) F (0)
•les 4 bits de poids fort : G (0) H (1) I (1) J
(MSB=0)
•K : Bit de Stop de la trame étudiée
31
UART

Capteur à sortie UART : le GPS

Pour visualiser des trames plus complexes


l'oscilloscope n'est pas adapté.
Un analyseur logique et son logiciel associé permettent
d'analyser tous les signaux numériques TTL (0 - 5 V).

Un capteur GPS UART utilise principalement 4 pattes :


•VIN : alimentation + 5 V ;
•GND : la masse ;
•Rx : pour la réception de donnée, facultatif si on utilise
les paramètres par défaut du GPS ;
•Tx : transmission des données GPS, par défaut 9600
bit/s (baudrate), rafraichissement des coordonnées 1
Hz.

32
UART

Capteur à sortie UART : le GPS

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.

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)

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

La connectique de cette liaison se présente fréquemment sous la forme du connecteur DE-9 ou


DB-25, mais peut aussi être d'un autre type (RJ25). Seule la version DB-25 est vraiment
standardisée, la DE-9 (très souvent appelée DB-9 dans le commerce) est une adaptation
d’IBM. La transmission des éléments d'information (ou bit) s'effectue bit par bit, de manière
séquentielle.

Prise femelle DE-9 Connecteur femelle DB-25 pour RS-232 38


RS232

Portée du standard

En règle générale, une jonction numérique entre un équipement terminal de traitement de


données (ETTD, en anglais DTE) et un équipement terminal de circuit de données (ETCD, en
anglais DCE), située au niveau 1 du modèle OSI, se définit par trois paramètres : les circuits,
les niveaux électriques et le brochage. Ce sont ces trois éléments qui sont couverts par le
standard RS-232.

Plus précisément, le standard RS-232 spécifie :


• La fonction de chaque circuit de jonction. Cela correspond à la norme UIT-T V.24,
(réception, émission).
• Les caractéristiques électriques de la liaison : niveaux de tension, débits possibles, etc. Cela
correspond à la norme UIT-T V.28.
• Les caractéristiques mécaniques pour les connecteurs et l'identification des contacts. Dans
le cas d'un connecteur DB-25, cela correspond à la norme ISO 2110.

39
RS232

Portée du standard

Par contre le standard ne définit pas :


•La façon dont les caractères sont répartis en trames.
•Les protocoles de détection d'erreur ou les algorithmes de compression de données.
•Les débits de transmission : seule une limite supérieure de 20 000 bauds est indiquée.
•La fourniture de courant électrique à des périphériques.

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é.

Les niveaux électriques sont inversés

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.

Longueur maximum de câble RS232

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

▪ Avantages : l'établissement de réseaux filaires de communications numériques sur de


longues distances et/ou en environnement électrique bruité (milieu industriel, etc.).
De plus, la topologie réseau peut être de type point à point ou multipoints, le débit
pouvant atteindre plusieurs Mbit/s, selon la longueur du bus (de 100 kbit/s sur ligne de
1200 m à 35 Mbit/s sur ligne de 10 m)

48
RS485

Transmission différentielle

La signalisation différentielle, ou transmission différentielle, est une méthode de transmission


de signal électrique dans laquelle l'information est la différence entre les signaux transmis sur
deux lignes.

La transmission différentielle s'utilise aussi bien avec un signal analogique, comme en


téléphonie, qu'avec un signal logique, comme en informatique. Elle permet de diminuer la
sensibilité aux interférences.

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.

La fiabilité de la transmission différentielle dépend du respect de l’impédance


caractéristique de la ligne de transmission dès que sa longueur dépasse une fraction
significative de la plus courte longueur d’onde du signal.

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

La norme RS-485 ne spécifie que les caractéristiques électriques de l'émetteur et du


récepteur (couche physique). Elle ne précise et ne recommande aucun protocole de
communication.

la norme RS485 définit les caractéristiques électriques du générateur (émetteur et récepteur).


Ces caractéristiques comprennent:
• Les impédances,
• Les plages de tensions,
• Des tensions en circuit ouvert,
• Les seuils et les transitoires.

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

Applications du 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

Le bus SPI utilise quatre signaux logiques :


•SCLK — Serial Clock, Horloge (généré par le maître)
•MOSI — Master Output, Slave Input (généré par le maître)
•MISO — Master Input, Slave Output (généré par l'esclave)
•SS — Slave Select, Actif à l'état bas (généré par le maître)

62
Bus SPI

Interface

Il existe d'autres noms qui sont souvent utilisés :


•SCK, SCL — Horloge (généré par le maître)
•SDI, DI, SI — Serial Data IN, MISO
•SDO, SDA, DO, SO — Serial Data OUT, MOSI
•nCS, CS, nSS, STE, CSN— SS

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

Polarité et phase de l'horloge

Configuration de SPI :
bit de poids fort est CPOL (Clock Polarity) et le bit de poids faible CPHA (Clock Phase)

65
Bus SPI

Polarité et phase de l'horloge

66
Bus SPI

Philosophie du bus SPI

67
Bus SPI

Avantages & Inconvénients

Avantages

•Communication Full duplex, point à point.


•Débit plus important qu'un bus I2C (jusqu’à 20 Mbits/s pour SPI)
•Flexibilité du nombre de bits à transmettre ainsi que du protocole en lui-même
•Simplicité de l'interface matérielle
• Aucun arbitre nécessaire car aucune collision possible
• Les esclaves utilisent l'horloge du maître et n'ont donc pas besoin d'oscillateur propre
• Pas de physique (codage) nécessaire
•Partage d'un bus commun pour l'horloge, MISO et MOSI entre les périphériques
68
Bus SPI

Avantages & Inconvénients

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

Signaux sur le 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

Caractéristiques du 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

Couche liaison de données


 Niveaux électriques

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

Couche liaison de données


 Échange maître ↔ esclave

Le message peut être décomposé en :

•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

Couche liaison de données


 Échange maître ↔ esclave

Le maître devient récepteur, l'esclave devient émetteur :

•émission d'un octet de données par l'esclave pour le maître,


•réponse du maître par un bit d'acquittement ACK (ou de non-acquittement NACK),
•(émission d'autres octets de données par l'esclave avec acquittement du maître),
•pour le dernier octet de données attendu par le maître, il répond par un NACK pour mettre fin
au dialogue,
•émission d'une condition de STOP par le maître (« P »).

79
Bus I2C

Couche liaison de données


 Échange maître ↔ esclave

80
Bus I2C

Couche liaison de données


 Condition de START

▪ 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

Couche liaison de données


 Octet d'adressage

Chaque esclave doit avoir une adresse unique.

 Adressage sur 7 bits

L'octet d'adressage peut être scindé en deux parties :


•les sept premiers bits correspondent à l'adresse proprement dite,
•le dernier bit est nommé R/W :
• s'il est à 0, le maître signale qu'il va envoyer des octets, et donc que l'esclave doit les lire,
• s'il est à 1, le maître indique qu'il veut recevoir des octets, et donc que l'esclave doit les fournir.

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

Couche liaison de données


 Adressage sur 10 bits

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

Couche liaison de données


 Adressage sur 10 bits

À 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

Couche liaison de données


 Acquittement
Le récepteur positionne le bit d'acquittement à :
•« ACK », en forçant la ligne SDA au niveau « LOW », pour signaler la bonne réception de l'octet,
équivalent à un bit à 0,
•« NACK », en laissant la ligne SDA au niveau « HIGH », pour signaler un défaut dans la réception
de l'octet, équivalent à un bit à 1.

▪ Si le récepteur est dans l'incapacité de recevoir l'octet, il ne positionnera pas le bit


d'acquittement, et celui-ci sera un NACK.
▪ Quand le maître est le récepteur, il positionne également le bit d'acquittement à NACK pour
interrompre le dialogue, avant d'envoyer la condition de STOP. 85
Bus I2C

Couche liaison de données


 Pause

▪ À 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

Couche liaison de données


 Condition de RESTART

▪ 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

Couche liaison de données


 Condition de STOP

▪ 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

Vous aimerez peut-être aussi