Luxembourg - Drapeau Luxembourg

Incoterms :DDP
Tous les prix incluent les taxes et les droits de douane pour les modes d'expédition sélectionnés.

Confirmez votre choix de devise:

Euros
Livraison gratuite pour la plupart des commandes supérieures à 50 € (EUR)

Dollars US
Livraison gratuite pour la plupart des commandes supérieures à $60 (USD)

Bench Talk pour les ingénieurs concepteurs

Mouser Blog | France

rss

Le blog officiel de Mouser Electronics


Communiquer par bits : les protocoles de partage de données pour systèmes embarqués Michael Parks

(Source : nick – stock.adobe.com ; généré par IA.)

 

Dès la naissance, nous communiquons. Pourtant, communiquer efficacement s’avère parfois difficile, même pour les personnes les plus expérimentées. Tout au long de son évolution, l’être humain a développé de nombreuses formes de communication : la parole, l'écriture, les dessins, les gestes, etc. Chacun de ces modes d’expression s’appuie sur des règles de syntaxe et des règles sémantiques. Certains sont plus efficaces que d’autres, mais tous ont pour finalité de transmettre une information d’une personne à une autre ou plus généralement d’un point A à un point B.

De cette façon, la communication entre appareils numériques modernes ne diffère pas fondamentalement par rapport à celle entre humains. Tout comme nous, ces appareils peuvent être très bavards et disposent de nombreux modes de communication. C’est par exemple le cas d’un microcontrôleur qui interroge divers capteurs et envoie des paquets par ondes radio. L’échange de données s’effectue à l’aide de protocoles de communication numérique définis. Dans le domaine des systèmes embarqués, il en existe plusieurs parmi lesquels les ingénieurs peuvent choisir.

Cet article examine les protocoles de communication les plus communs utilisés dans les systèmes embarqués. Ce sera l’occasion d’en apprendre davantage sur les particularités de chaque protocole et de comprendre par la même occasion la structure globale des protocoles de communication intégrés.

Comment définissons-nous les protocoles de communication numérique ?

Commençons par passer en revue les protocoles de communication numérique. En bref, un protocole de communication numérique est un ensemble de règles qui définissent la manière dont les composants numériques s’interfacent pour échanger des données. Les protocoles régissent la façon dont un signal électrique se comporte lorsqu’il est utilisé pour transmettre des données binaires, afin de garantir qu’émetteur et récepteur puissent communiquer de manière fiable. Voici une liste non exhaustive des principales spécificités techniques communes à tous les protocoles de communication numérique.

  • Débit de données : il s’agit de la vitesse à laquelle les informations sont transmises. Elle s’exprime généralement en bits par seconde (b/s) ou en mégabits par seconde (Mb/s). Plus le débit est élevé, plus la communication est rapide, mais un débit élevé exige une meilleure intégrité du signal et une puissance supérieure.
  • Codage des données : le codage définit la manière dont les bits sont regroupés en structures de données significatives. Ainsi, les données peuvent être regroupées en :
    • Octets (p. ex. 8 bits)
    • Mots (p. ex. 16 bits, 32 bits)
    • Trames (p. ex. dans un UART, une liaison SPI)
    • Paquets (p. ex. dans les protocoles réseau comme TCP/IP ou CAN)
  • Schéma de codage de ligne : il définit la manière dont les bits numériques (les uns et les zéros) sont représentés par des variations de tension sur un câble physique. Les options disponibles sont les suivantes :
    • Non-retour à zéro (NRZ) : le signal reste haut ou bas pendant toute la durée du bit. Cette méthode est simple et efficace, mais de longues séries de bits identiques peuvent entraîner des problèmes de synchronisation.
    • Retour à zéro (RZ) : le signal revient à zéro au milieu de chaque période de bit. Cette méthode est la plus simple pour la récupération d’horloge, mais elle utilise plus de bande passante.
  • Mode de transmission : il définit la direction du flux de données entre les appareils. Il existe ainsi plusieurs types de liaisons :
    • Simplex : les données circulent dans un seul sens (p. ex. la télédiffusion).
    • Semi-duplex (half-duplex) : le flux est bidirectionnel, mais il ne peut circuler que dans un seul sens à la fois (p. ex. communication par talkies-walkies).
    • Duplex intégral (full-duplex) : les données sont transmises dans les deux sens simultanément (p. ex. communication téléphonique, UART avec lignes TX/RX séparées).
  • Communication synchrone vs asynchrone : il s’agit ici de faire la distinction entre communication continue en temps réel et communication non simultanée.
    • Synchrone : l’émetteur et le récepteur ont une horloge commune. La synchronisation est stricte, mais elle permet une communication plus rapide et plus prévisible (p. ex. SPI, I²C).
    • Asynchrone : l’émetteur et le récepteur opèrent indépendamment, en utilisant des bits de démarrage/arrêt pour encadrer chaque octet. Ce mode nécessite de convenir d’un débit en bauds (p. ex. UART).
  • Détection et correction des erreurs : cette fonctionnalité garantit l’intégrité des données, notamment sur les connexions bruyantes ou peu fiables. Les protocoles de communication numérique utilisent les types suivants de détection et de correction des erreurs :
    • Bit de parité : il s’agit d’un bit unique que l’on ajoute pour indiquer si le nombre de « uns » est impair ou pair.
    • Somme de contrôle : il s’agit pour le récepteur de faire la somme de tous les octets de données et de vérifier si le résultat correspond à la valeur attendue.
    • Contrôle de redondance cyclique (CRC) : une forme plus robuste de détection d’erreurs utilisée dans des protocoles tels que USB, CAN et Ethernet.
  • Transmission série ou parallèle : le type de transmission définit le nombre de bits et de canaux impliqués dans la transmission d’un signal à un moment donné.
    • Communication série : envoi d’un bit à la fois sur un fil. Les liaisons en série sont plus lentes que les liaisons en parallèle, mais elles requièrent moins de fils, ce qui est plus intéressant avec des microcontrôleurs (p. ex. UART, SPI, I²C).
    • Communication parallèle : envoi simultané de plusieurs bits sur de multiples fils. Ce mode est certes plus rapide, mais il requiert beaucoup de broches. Il est notamment utilisé dans les bus de RAM et d’affichage.
  • Boutisme (endianness) : le boutisme désigne l’ordre dans lequel les octets sont placés dans des données multioctets. Il existe deux types de boutisme :
    • Orientation gros-boutiste (big endian) : l’octet de poids le plus fort est transmis en premier.
    • Orientation petit-boutiste (little endian) : l’octet de poids le plus faible est transmis en premier.
    • Des protocoles comme Modbus et I²S définissent explicitement le boutisme. D’autres, comme UART ou SPI, ne le font pas. Il revient alors aux développeurs de coordonner les deux extrémités.
  • Nombre de broches requises : le nombre de connexions physiques nécessaires varie selon les protocoles :
    • UART : 2 broches (TX, RX)
    • I²C : 2 broches (SDA, SCL)
    • SPI : 4 broches (MOSI, MISO, SCK, SS) + lignes de sélection de puce (CS) supplémentaires pour chaque puce
    • I²S : 3-4 broches (WS, BCLK, SD, MCLK en option)
    • CAN : 2 broches (CAN_H, CAN_L)
    • Dans le cas de systèmes embarqués, le nombre de broches nécessaires est d’autant plus important que le nombre de broches GPIO disponibles est limité. De plus, et même si cela n’est pas toujours explicitement indiqué, des câbles d’alimentation et de mise à la terre entre les appareils seront nécessaires.
  • Nombre maximal d’appareils pris en charge : chaque protocole a des capacités différentes en terme de nombre maximum de dispositifs qu'il peut supporter, comme montré ci-dessous.
    • UART : seulement deux appareils (1:1)
    • I²C : plusieurs appareils (jusqu’à 128 avec adressage sur 7 bits)
    • SPI : plusieurs appareils, limité par le nombre de lignes sélectionnées
    • CAN : plusieurs dizaines, voire centaines d’appareils selon la taille et la topologie du réseau
  • Adressage : les protocoles utilisent l’adressage pour spécifier quel appareil parle ou écoute :
    • I²C : chaque appareil possède une adresse unique de 7 ou 10 bits.
    • CAN : les messages sont étiquetés avec des identifiants de message. L’appareil choisit d’opérer ou non en fonction de l’identifiant du message.
    • UART et SPI : ces protocoles n’intègrent pas l’adressage. Dans le SPI, le maître sélectionne manuellement l’appareil avec lequel communiquer via une ligne de sélection de puce.

Les protocoles de communication numérique couramment utilisés avec les systèmes embarqués

Au cours des dernières décennies, de nombreux protocoles ont été développés pour faciliter le transfert de données entre les nombreux composants des systèmes embarqués modernes. Au gré des cas d’utilisation, divers protocoles ont été optimisés pour satisfaire à certaines exigences comme le transfert rapide de grandes quantités de données ou la réduction de la complexité et de la charge pour les systèmes extrêmement limités en ressources (mémoire, fréquence d’horloge). Vous trouverez ci-dessous une liste des protocoles les plus utilisés dans le développement de systèmes embarqués avec mention de leurs caractéristiques, avantages et inconvénients, ainsi que de leurs domaines d’application les plus courants. Enfin, le tableau 1 fournit une synthèse des spécificités de ces protocoles.

  • UART (Universal Asynchronous Receiver-Transmitter)
    • Broches : TX (transmission), RX (réception)
    • Mode : asynchrone (pas de ligne d’horloge)
    • Vitesse : généralement de 9 600 b/s à 115 200 b/s, mais cela peut monter à plusieurs Mb/s selon le matériel.
    • Cas d’utilisation : moniteurs série, modules GPS, Bluetooth®, débogage.
    • Avantages : simple ; prise en charge très répandue ; nécessite peu de broches.
    • Inconvénients : prise en charge des communications 1:1 uniquement ; pas d’adressage.
    • Prononciation : uarte ; en anglais, ïouarte.
  • I²C (Inter-Integrated Circuit)
    • Broches : SDA (données), SCL (horloge)
    • Mode : synchrone
    • Vitesse : standard (100 kHz), rapide (400 kHz), rapide+ (1 MHz), haute vitesse (3,4 MHz)
    • Cas d’utilisation : capteurs, EEPROM, RTC, écrans (OLED, LCD), réseaux multicapteurs.
    • Avantages : prise en charge de plusieurs appareils (jusqu’à 128 avec adressage sur 7 bits) ; ne nécessite que deux fils.
    • Inconvénients : plus lent que le SPI ; logiciel plus complexe ; longueur de câble limitée en raison de la sensibilité au bruit.
    • Prononciation : ideussé ; en anglais, aïe-skouèrdsi.
  • SPI (Serial Peripheral Interface)
    • Broches : MOSI, MISO, SCK, CS (un par dispositif à puce)
    • Mode : synchrone
    • Vitesse : jusqu’à plusieurs dizaines de Mb/s (généralement de 1 à 50 Mb/s)
    • Cas d’utilisation : cartes SD, écrans (TFT, OLED), capteurs haute vitesse, CNA, CAN.
    • Avantages : protocole simple, très rapide et full-duplex.
    • Inconvénients : requiert plus de broches (surtout avec plusieurs puces) ; pas d’adressage intégré.
    • Prononciation : esse-pays ; en anglais, spaïe.
  • 1-Wire
    • Broches : une ligne de données (plus la mise à la terre)
    • Mode : synchrone (avec signalisation basée sur le temps)
    • Vitesse : ~16 kb/s (standard), ~142 kb/s (mode overdrive)
    • Cas d’utilisation : capteurs de température (p. ex. DS18B20), iButtons, identification numérique simple et puces d’authentification.
    • Avantages : ne nécessite que très peu de broches ; les appareils sont alimentés par la ligne de données (alimentation parasite).
    • Inconvénients : plus lent que l’I²C ou le SPI ; plus critique en termes de temporisation; portée et nombre de périphériques limités.
    • Prononciation : ouane-ouailleur; en anglais: wʌn waɪər
  • CAN (Controller Area Network)
    • Broches : CAN_H, CAN_L (paire différentielle)
    • Mode : synchrone (bus multimaître)
    • Vitesse : jusqu’à 1 Mb/s (CAN 2.0), +5 Mb/s (CAN FD)
    • Cas d’utilisation : unités de contrôle moteur (ECU) dans le secteur automobile, robotique, automatisation industrielle et drones (UAV).
    • Avantages : fiable ; peu sensible au bruit ; prise en charge de nombreux nœuds ; arbitrage et priorisation intégrés.
    • Inconvénients : nécessite un émetteur-récepteur ; plus complexe à mettre en œuvre.
    • Prononciation : canne; en anglais: kæn
  • RS-485
    • Broches : A, B (paire différentielle) et ligne de commande de direction en option.
    • Mode : half-duplex (généralement), multipoint série
    • Vitesse : jusqu’à 10 Mb/s sur de courtes distances, plus lent sur de plus longues distances.
    • Cas d’utilisation : automatisation industrielle, communication série longue distance, Modbus.
    • Avantages : longue portée (jusqu’à 1 200 m) ; peu sensible au bruit ; prise en charge de plusieurs appareils.
    • Inconvénients : nécessite un émetteur-récepteur externe et un pilote de logique pour gérer la direction.
    • Prononciation : R-S-quatre-cent-quatre-vingt-cinq
  • I²S (Inter-IC Sound)
    • Broches : sélection de mots (WS), horloge binaire (BCLK), données série (SD) et horloge maître (MCLK) en option.
    • Mode : synchrone, données audio série
    • Vitesse : dépend de la fréquence d’échantillonnage et de la profondeur de bits (généralement 44,1 kHz-192 kHz à 16 bits-32 bits).
    • Cas d’utilisation : diffusion audio vers/depuis les CNA et les CAN, microphones MEMS, lecture ou traitement audio.
    • Avantages : optimisé pour l’audio numérique ; prise en charge de données stéréo et multicanaux.
    • Inconvénients : prise en charge de données audio seulement ; pas universellement disponible sur tous les microcontrôleurs.
    • Prononciation : ideuzesse ; en anglais, aïe-skouèrdesse

 

 

Protocole

Broches nécessaires

Vitesse

Appareils pris en charge

Cas d’utilisation

UART

2

Jusqu’à 115 200 b/s

1:1

Débogage, GPS, Bluetooth

I²C

2

~400 kHz (standard)

Multiple

Capteurs, OLED, EEPROM

SPI

4+

~10 Mb/s+

Multiple (avec broches SS)

Cartes SD, écrans TFT

1-Wire

1

~16,3 kb/s

Multiple

Capteurs de température

CAN

2

~1 Mb/s

Multiple

Automobile, industrie

RS-485

2

~10 Mb/s

Multiple

Industriel longue distance

I²S

4

44,1 kHz–192 kHz

Multiple

Microphones numériques, CNA et traitement audio

Tableau 1 : synthèse des différents protocoles de communication numérique.

 

Conclusion

Les protocoles de communication numérique sont de langages invisibles, mais toutefois essentiels au fonctionnement des systèmes embarqués. Des liaisons série simples comme l’UART aux réseaux industriels robustes comme le CAN, chaque protocole a ses propres atouts et ses cas d’utilisation les plus indiqués, mais oblige aussi à certains compromis. Pour créer des systèmes efficaces et fiables, il est essentiel de comprendre le fonctionnement de ces protocoles, de leur signalisation physique à leur structure de données en passant par des notions telles que le boutisme, la correction d’erreurs et les modes de transmission. Parce que les dispositifs embarqués deviennent de plus en plus puissants et interconnectés, les ingénieurs doivent impérativement maîtriser ces principes fondamentaux de communication afin de disposer des outils nécessaires pour concevoir du matériel plus intelligent, plus rapide, plus performant et véritablement capable de « parler » au monde qui l’entoure.



« Retour


Michael Parks's Blog

Tous les auteurs

Voir plus Voir plus
Afficher les articles par date