Comment faire communiquer deux systèmes ensemble ?
NIVEAU 1
Objectifs
- Expliquer le principe d’une communication numérique entre dispositifs électroniques
- Différencier les 3 types courants de bus de communication
Pré-requis
Echanger des informations numériques
La plupart des systèmes numériques ont besoin d’échanger des informations de différents types avec d’autres systèmes :
- récupérer des données d’un capteur externe
- transmettre un message à un afficheur LCD
- envoyer des commandes d’un ordinateur à un système embarqué
- …

Les données transmises entre ces systèmes sont numériques et regroupées en paquets (1 octet, 2 octets, plus…).
Il existe alors plusieurs possibilités de transfert de ces données d’un point à un autre.
Caractéristiques d’une transmission de données
Afin de pouvoir choisir le bon protocole de transfert (voir paragraphes suivants), il faut dans un premier temps s’intéresser aux caractéristiques principales de la liaison et bien définir les besoins de l’échange que l’on veut mettre en place.
Les éléments d’un réseau s’appellent des noeuds.

Les règles de communication sont différentes selon que l’on a deux noeuds qui doivent discuter entre eux ou plus de deux.
Dans tous les cas, des règles de communication sont indispensables pour que tous les noeuds du réseau se comprennent. Ces règles sont regroupées dans un protocole. Il existe une multitude de protocole en fonction de l’application visée : vitesse de transfert, nombre d’octets à transmettre, topologie du réseau…
Les protocoles de communication définissent souvent les paramètres qui vont suivre.
Canal de transmission et support physique
Les données numériques sont avant tout des signaux électriques, souvent limités à 2 niveaux de tension, selon que l’on souhaite transmettre un ‘0’ logique ou un ‘1’ logique. Il est donc nécessaire de les faire se propager dans un milieu où ces signaux sont transmissible. On parle alors de support physique. Associé à des règles de discussion, on parle alors d’un canal de transmission.

Ce support physique peut être : une paire torsadée, un cable coaxial, une fibre optique, des ondes électromagnétiques…
C’est souvent le support physique qui limite la bande-passante du signal qui peut transiter.
Nombre de noeuds / Type de réseau
Un autre paramètre important est la topologie du réseau, c’est à dire combien de noeuds (éléments du réseau) doivent être connectés entre eux et de quelle façon ils sont physiquement reliés. Les topologies les plus habituelles sont présentées ci-dessous.

Parallèle ou Série
Selon les messages à transmettre et la vitesse de transfert à atteindre, ces échanges peuvent se faire de plusieurs façons :
- de manière parallèle
- de manière série
Le transfert en parallèle des données nécessite d’avoir N fils de transmission entre les deux noeuds (où N représente le nombre de bits à transmettre en parallèle entre les deux éléments).

Le transfert en série des données ne nécessite que d’avoir 2 ou 3 fils de transmission entre les deux noeuds. Les données sont alors transmises bit par bit.

Direction des transmissions
Certains noeuds peuvent être uniquement émetteur et d’autres uniquement récepteur. Dans ce cas, on parle de liaison Simplex.

Il peut aussi arriver que les échanges puissent se faire dans les deux sens. On parle alors d’une liaison Duplex.
S’il y a un seul support physique entre les deux noeuds, on parle de liaison Half-Duplex. Les données peuvent aller dans les deux sens, mais pas en même temps. Cela impose des règles d’arbitrage particulières, i.e. savoir qui discute à quel moment… Cette solution est plus facile à mettre en oeuvre matériellement mais nécessite une partie logicielle plus évoluée.

S’il y a deux supports physiques entre les deux noeuds, on parle de liaison Full-Duplex. Les données peuvent aller dans les deux sens, en même temps. Cette solution est plus facile à mettre en oeuvre logiciellement mais nécessite une partie matérielle plus évoluée.

Vitesse de transfert
La vitesse de transfert d’un réseau est souvent donnée en bits/s.
On trouve cependant une autre unité qui est le baud. Il correspond à un nombre de symboles transmissibles par seconde par la liaison.
Certaines modulations entrainent l’envoi de plusieurs bits en une seule valeur du signal de sortie sur le support physique. C’est le cas par exemple d’une modulation 4-QAM (Modulation en quadrature – 2 bits / symbole) qui pour un débit de 1200 bauds correspond à un débit binaire de 2400 bits/s.
Attention Le débit binaire brut d’une liaison ne donne pas nécessairement le débit réel de transfert des messages. En effet, certains protocoles nécessitent de transmettre des données supplémentaires par rapport aux données utiles pour la transmission d’un message au bon destinataire (adresse dans le cas de l’I2C, START et STOP bits dans le cas du RS232…).
Synchrone / Asynchrone
Lorsqu’on envoie des données numériques à une cadence particulière, il est intéressant que les deux noeuds, émetteur et récepteur, discutent à la même vitesse.
Une solution pour garantir que les données sont bien lues par le récepteur au même rythme que l’émetteur les envoie est de transmettre également le signal d’horloge entre l’émetteur et le récepteur. On parle alors d’un protocole synchrone de transmission. L’inconvénient majeur de cette solution est qu’il faut un support physique supplémentaire entre l’émetteur et le récepteur. Cependant, dans ce type de protocole, les données peuvent souvent être transmises plus rapidement.

L’autre possibilité est de transmettre l’information de manière totalement asynchrone. Afin que l’émetteur et le récepteur se comprennent, il faut toutefois que la cadence de transfert des deux noeuds soit égale, ce qui impose l’utilisation d’oscillateurs locaux très précis.

La vitesse de transfert est souvent réduite pour ce type de protocole, car de faibles écarts de fréquence entre les deux noeuds peut entrainer un taux d’erreurs de transmission important plus cette fréquence est élevée.
Transmettre des données numériques en série

Le protocole I2C, par exemple, est basé sur un architecture en bus. Seuls deux fils transitent entre les différents noeuds : SDA – Serial Data Line – pour les données et SCK – Serial Clock Line – pour le signal d’horloge. Ce protocole est donc synchrone. Il est Half-Duplex. Il permet des débits de 100 kbits/s (Standard Mode), 400 kbits/s (Fast Mode) ou 1 Mbits/s (Fast plus Mode).
Tutoriel lié
- Configurer une communication point à point RS232 2
- Configurer un réseau point à point SPI 2
- Configurer un réseau adressable I2C 3
MInE Prototyper Prototyper avec Nucleo et MBED