Qu'il s'agisse de périphériques informatiques, d'appareils intelligents, d'appareils Internet des objets (IoT) ou d'outils de mesure électroniques, ils utilisent tous des protocoles de communication série pour connecter différents composants électroniques entre eux.
Ces composants se composent généralement d'un microcontrôleur et de modules esclaves tels qu'un capteur d'empreintes digitales, un ESP8266 (module Wi-Fi), des servos et des écrans série.
Ces appareils utilisent différents types de protocoles de communication. Ci-dessous, vous découvrirez certains des protocoles de communication série les plus populaires, leur fonctionnement, leurs avantages et les raisons pour lesquelles ils restent utilisés.
Qu'est-ce que la communication série ?
Les protocoles de communication série existent depuis l'invention du code Morse en 1838. Aujourd'hui, les protocoles de communication série modernes utilisent les mêmes principes. Les signaux sont générés et transmis sur un seul fil en court-circuitant à plusieurs reprises deux conducteurs ensemble. Ce court agit comme un interrupteur ; il s'allume (haut) et s'éteint (bas), fournissant des signaux binaires. La manière dont ce signal est transmis et reçu dépend du type de protocole de communication série utilisé.
Crédit d'image: shankar.s/ Wikimedia Commons
Avec l'invention du transistor et les innovations qui ont suivi, les ingénieurs et les bricoleurs ont rendu les unités de traitement et la mémoire plus petites, plus rapides et plus économes en énergie. Ces changements exigeaient que les protocoles de communication par bus soient aussi avancés sur le plan technologique que les composants connectés. D'où l'invention de protocoles série tels que UART, I2C et SPI. Bien que ces protocoles série aient plusieurs décennies, ils sont toujours préférés pour les microcontrôleurs et la programmation sans système d'exploitation.
UART (Récepteur-Émetteur Asynchrone Universel)
Le protocole UART est l'un des protocoles de communication série les plus anciens et les plus fiables que nous utilisons encore aujourd'hui. Ce protocole utilise deux fils appelés Tx (transmission) et Rx (réception) pour que les deux composants communiquent.
Pour transmettre des données, l'émetteur et le récepteur doivent être en accord avec cinq configurations communes, à savoir :
- Baud Speed : La vitesse de transmission de la vitesse de transmission des données.
- Longueur des données : nombre convenu de bits que le récepteur enregistrera dans ses registres.
- Bit de démarrage : Un signal faible qui indique au récepteur quand les données sont sur le point d'être transférées.
- Bit d'arrêt : Un signal haut qui permet au récepteur de savoir quand le dernier bit (bit de poids fort) a été envoyé.
- Bit de parité : soit un signal haut ou bas utilisé pour vérifier si les données envoyées étaient correctes ou corrompues.
Comme UART est un protocole asynchrone, il n'a pas sa propre horloge qui régule la vitesse de transmission des données. Comme alternative, il utilise le débit en bauds pour la synchronisation lorsqu'un bit est transmis. Le débit en bauds habituel utilisé pour UART est de 9600 bauds, ce qui signifie un taux de transmission de 9600 bits par seconde.
Si nous faisons le calcul et divisons un bit par 9600 bauds, nous pouvons calculer à quelle vitesse un bit de données est transmis au récepteur.
1/9600 = 104 microsecondes
Cela signifie que nos appareils UART commenceront à compter 104 microsecondes pour savoir quand le prochain bit sera transmis.
Lorsque des appareils UART ont été connectés, le signal par défaut est toujours élevé. Lorsqu'il détecte un signal basse fréquence, le récepteur commence à compter 104 microsecondes plus 52 microsecondes supplémentaires avant de commencer à enregistrer les bits dans ses registres (mémoire).
Comme il était déjà convenu que huit bits devaient être la longueur des données, une fois qu'il a enregistré huit bits de données, il commencera à vérifier la parité pour vérifier si les données sont paires ou impaires. Après le contrôle de parité, le bit d'arrêt élèvera un signal haut pour informer les appareils que l'ensemble des huit bits de données a été transmis avec succès au récepteur.
Étant le protocole série le plus minimaliste n'utilisant que deux fils, UART est couramment utilisé aujourd'hui dans les cartes à puce, les cartes SIM et les automobiles.
Connexe : Qu'est-ce qu'une carte SIM ? Choses que vous devez savoir
SPI (Interface Périphérique Série)
SPI est un autre protocole série populaire utilisé pour des débits de données plus rapides d'environ 20 Mbps. Il utilise un total de quatre fils, à savoir SCK (Serial Clock Line), MISO (Master Out Slave In), MOSI (Master In Slave Out) et SS/CS (Chip Select). Contrairement à UART, SPI utilise un format maître-esclave pour contrôler plusieurs appareils esclaves avec un seul maître.
MISO et MOSI agissent comme les Tx et Rx de l'UART utilisés pour transmettre et recevoir des données. Chip Select est utilisé pour sélectionner l'esclave avec lequel le maître veut communiquer.
Étant donné que SPI est un protocole synchrone, il utilise une horloge intégrée du maître pour s'assurer que les périphériques maître et esclave fonctionnent sur la même fréquence. Cela signifie que les deux appareils n'ont plus besoin de négocier un débit en bauds.
Le protocole commence par le maître sélectionnant le dispositif esclave en abaissant son signal au SS/CK spécifique connecté au dispositif esclave. Lorsque l'esclave reçoit un signal faible, il commence à écouter à la fois le SCK et le MOSI. Le maître envoie alors un bit de départ avant d'envoyer les bits qui contiennent des données.
MOSI et MISO sont tous deux en duplex intégral, ce qui signifie qu'ils peuvent transmettre et recevoir des données en même temps.
Avec sa capacité à se connecter à plusieurs esclaves, sa communication en duplex intégral et sa consommation d'énergie inférieure à celle d'autres protocoles synchrones comme I2C, SPI est utilisé dans les dispositifs de mémoire, les cartes mémoire numériques, les convertisseurs ADC vers DAC et les affichages à mémoire cristalline.
I2C (circuit inter-intégré)
I2C est encore un autre protocole série synchrone comme SPI, mais avec plusieurs avantages par rapport à lui. Ceux-ci incluent la possibilité d'avoir plusieurs maîtres et esclaves, un adressage simple (pas besoin de Chip Select), un fonctionnement avec différentes tensions et l'utilisation de seulement deux fils connectés à deux résistances de rappel.
I2C est souvent utilisé dans de nombreux appareils IoT, équipements industriels et appareils électroniques grand public.
Les deux broches d'un protocole I2C sont la SDA (Serial Data Line) qui transmet et reçoit des données, et la broche SCL (Serial Clock Line), qui fonctionne comme une horloge.
- Le protocole commence par l'envoi par le maître d'un bit de démarrage (bas) à partir de sa broche SDA, suivi d'une adresse de sept bits qui sélectionne l'esclave et d'un bit pour sélectionner la lecture ou l'écriture.
- Après avoir reçu le bit de départ et l'adresse, l'esclave envoie alors un bit d'accusé de réception au maître et commence à écouter le SCL et le SDA pour les transmissions entrantes.
- Une fois que le maître reçoit cela, il sait que la connexion a été établie avec le bon esclave. Le maître sélectionnera maintenant le registre spécifique (mémoire) de l'esclave auquel il souhaite accéder. Il le fait en envoyant huit autres bits spécifiant quel registre doit être utilisé.
- Dès réception de l'adresse, l'esclave prépare maintenant le registre de sélection avant d'envoyer un autre accusé de réception au maître.
- Après avoir sélectionné quel esclave spécifique et lequel de ses registres utiliser, le maître envoie finalement le bit de données à l'esclave.
- Une fois les données envoyées, un dernier bit d'accusé de réception est envoyé au maître avant que le maître ne se termine par un bit d'arrêt (haut).
En relation: Les meilleurs projets Arduino IoT
Pourquoi les communications série sont là pour rester
Avec l'essor des protocoles parallèles et sans fil, les communications série ne sont jamais tombées en désuétude. N'utilisant généralement que deux à quatre fils pour transmettre et recevoir des données, les protocoles série sont un mode de communication essentiel pour les appareils électroniques qui ne disposent que de quelques ports.
Une autre raison est sa simplicité qui se traduit par la fiabilité. Avec seulement quelques fils envoyant des données une fois à la fois, la série a prouvé sa fiabilité pour envoyer les paquets de données complets sans aucune perte ni corruption lors de la transmission. Même à des fréquences élevées et une communication à plus longue portée, les protocoles série surpassent encore de nombreux protocoles de communication parallèle modernes disponibles aujourd'hui.
Bien que beaucoup puissent penser que les communications série comme UART, SPI et I2C ont l'inconvénient d'être anciennes et obsolètes, il n'en demeure pas moins qu'elles ont prouvé leur fiabilité sur plusieurs décennies. Les protocoles étant aussi anciens sans aucun remplacement réel, cela suggère seulement qu'ils sont, en fait, indispensables et continueront d'être utilisés en électronique dans un avenir prévisible.