Qu'est ce qu'une liaison en système embarqué ? Laquelle choisir ?

Introduction

Une liaison sert à transmettre les différentes informations entre les composants du système embarqué. Le microsystème envoie les données en parallèle (bus de donnée) ou bien en série (liaison de donnée).

Il y a plusieurs manières de comparer les liaisons :

  • Le half duplex ou le full duplex : en half duplex le microsystème envoie des données sans pouvoir écouter ce qu’elle reçoit. Tandis qu’en full duplex elle peut écouter et envoyer en même temps des informations.
  • La vitesse de communication : On peut mesurer la vitesse avec laquelle la liaison envoie les données en bps/hz
  • Le bus ou la liaison exclusive : La liaison exclusive envoie à un seul récepteur alors qu’un bus de liaison met en lien plusieurs d’entre eux.
  • Le nombre de signaux que peut envoyer la liaison en un temps donné.
  • La complexité logiciel : Chaque liaison à une complexité différente à mettre en place surtout quand il faut la programmer.

On va donc maintenant voir les différentes liaisons sur les microsystèmes.

Liaison Maitre - Esclave

Avant de commencer la liste des différentes liaisons, il faut savoir qu’elles vont être utilisées afin que les périphériques puissent “discuter” entre eux. Il existe deux types de statut pour un périphérique : le maître et l’esclave.

Il ne faut pas chaque périphérique se mettent à parler en même temps pour que tout le monde se comprennent. Il faut qu’un périphérique parle pendant que l’autre écoute, d’où le terme maître/esclave.

Un périphérique maître va pouvoir discuter et poser des questions à d’autres périphériques maîtres ou esclaves. Un périphérique maître peut être un ordinateur, téléphone…

Un périphérique esclave peut seulement répondre à un périphérique maître : il ne peut ni poser de questions à un périphérique maître, ni discuter avec d’autre périphérique esclave.

Par exemple une souris ou un clavier sont des périphériques esclaves. En effet, une souris ne peut ni demander des informations à un ordinateur ni communiquer avec un clavier.

souris

Liaison UART

Une liaison  UART (“Universal Asynchronous Receiver Transmitter”), est un émetteur-récepteur asynchrone universel.

Les liaisons UART sont généralement intégrées dans des composants comme des microcontrôleurs. Dans ce cas, ils ne sont plus un composant à proprement parler, mais une fonction périphérique du composant.

La liaison UART est exclusive, cela signifie qu’un maître peut discuter qu’avec un seul esclave par liaison, comme on peut le voir juste en dessous :

liaison uart

La liaison uart est asynchrone, ce qui signifie que la transmission ne nécessite pas d’horloge mais ajoute un bit de parité aux données avant la transmission.

C’est une liaison exclusive, cela veut dire que l’on a qu’un seul fil fait passer tous les bits de données.

La liaison UART est une une liaison full duplex, cela veut dire que l’on peut écouter tout en émettant des bits.

La liaison UART est à faible débit, de 100 bps à 200 kbps.

Liaison SPI

Une liaison SPI (Serial Peripheral Interface) est un bus de données série synchrone baptisé ainsi par
Motorola, qui opère en mode Full-duplex.

D’autres fabricants (Microchip, Atmel, Texas Instrument…) ont adopté ce type de liaison, de plus de nombreux composants en sont dotés, (mémoires, capteurs, microcontrôleurs…)

Les circuits communiquent selon un schéma maître-esclaves, où le maître s’occupe totalement de la communication.

La liaison SPI est synchrone, ce qui signifie que la transmission nécessite l’horloge donné avant la transmission.

C’est une liaison full duplex, ce qui signifie que l’on peut écouter ce que l’on émet tout émettant des bits.

Ce n’est pas une liaison exclusive, les circuits communiquent selon un schéma maître-esclaves, où le maître s’occupe totalement de 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 chip select comme on peut le voir sur le schéma ci-dessous :

liaison spi

SPI a des lignes labellisés «MOSI » : Master Output Slave Input, généré par le maître, des lignes labellisées « MISO » : Master Input Slave Output, généré par l’esclave et une ligne d’horloge (SCK : SPI Serial Clock).


Ces trois lignes sont connectées à leurs lignes respectives sur un ou plusieurs esclaves. Les esclaves sont identifiées grâce au signal de leur ligne SS (Slave Select).

Liaison I2C

La liaison I2C signifie Inter-Integrated Circuit. C’est un bus informatique qui a émergé de la « guerre des standards » lancée par les acteurs du monde électronique. Conçu par Philips pour les applications de domotique et d’électronique domestique, il permet de relier facilement un microprocesseur et différents circuits, notamment ceux d’un téléviseur moderne : récepteur de la télécommande, réglages des amplificateurs basses fréquences…

liaison I2C

Il existe d’innombrables périphériques exploitant ce bus, il est implémentable par logiciel dans n’importe quel microcontrôleur.

La liaison I2C est une liaison half duplex, c’est à dire que l’on ne peut pas écouter et envoyer des données en même temps.

La liaison I2C possède un débit moyen de 100 kilo-hertz à 1 Méga-hertz.

Enfin comme on peut voir sur le schéma ci-dessous que la liaison I2C n’est pas exclusive, cela veut dire qu’un maitre peut parler à plusieurs esclave.

liaison I2C

Comment on peut voir sur le schéma, on peut faire communiquer entre eux des composants électronique très divers grâce à seulement 2 fils :


Signal de donnée : SDA


Signal d’horloge : SCL

Liaison USB

La liaison USB, de son nom complet : Universal Serial Bus est une norme de bus informatique qui sert à connecter des périphériques informatiques à un ordinateur ou à tout type d’appareil prévu à cet effet : tablette, smartphone …

usb

Le bus USB permet de connecter des périphériques « à chaud » (quand l’ordinateur est en marche) et en bénéficiant du plug and play qui reconnaît automatiquement le périphérique. Il peut alimenter les périphériques peu gourmands en énergie (clé USB, disques SSD) et, pour ses dernières versions à prise USB Type-C, des appareils réclamant plus de puissance (60 W en version standard, 100 W au maximum).

La version 1.0 de l’USB est apparue en , ce connecteur s’est généralisé dans les années 2000 pour connecter souris, clavier d’ordinateur, imprimantes, clés USB et autres périphériques sur les ordinateurs personnels.

liaison usb

La liaison USB est asynchrone, ce qui signifie que la transmission ne nécessite pas d’horloge mais ajoute un bit de parité aux données avant la transmission.

La liaison Usb est exclusive, cela veut dire que seul le maître parle à l’esclave mais que le périphérique branché n’est pas maître mais seulement esclave et peut seulement répondre au maître.

La liaison est half-duplex, cela veut dire que le câble USB ne peut pas écouter en même temps qu’il transmet des données.

Liaison Ethernet

Enfin la dernière liaison que l’on va voir est la liaison éthernet. Initialement conçu au début des années 1970, pour relier entre eux des ordinateurs rattachés à un même câble coaxial.

Depuis les années 1990, on utilise très fréquemment Ethernet sur paires torsadées pour la connexion des postes clients et des versions sur fibre optique pour le cœur du réseau. 

 

Ethernet n’offre pas de garantie de bonne livraison des données, ce qui est laissé aux couches protocolaires supérieures.

câble Ethernet

La liaison est exculsive, cela veut que un master peut parler à un seul esclave, comme on peut le voir sur le schéma ci-dessous :

liaison usb

La liaison Ethernet est asynchrone, cela veut dire que l’horloge n’est pas donné avant la transmission. Il doit donc être donnée au début message.

 

La liaison ethernet est un full duplex, cea veut dire qu’elle peut écouter et transmettre des données en même temps.

Vous connaissez maintenant toutes les liaisons utiles dans un microsystème. Pour vous y retrouvez on vous a fait un tableau comparatif de toutes les liaisons :

Tableau comparatif

 SynchronismeExclusif/ BusHalf/Full duplexdébit
UARTAsynchroneLiaison ExclusiveFull duplexFaible débit
SPISynchroneLiaison ExclusiveFull duplexDébit moyen
I2CAsynchroneLiaison busHalf-duplexDébit moyen
USBAsynchroneLiaison ExclusifHalf-duplexHaut débit
EthernetAsynchroneLiaison ExclusifFull duplexHaut débit