Protocole de communication Arduino

Protocole De Communication Arduino



Les protocoles de communication sont l'ensemble des règles qui permettent aux appareils de communiquer et d'échanger des données. Ces protocoles sont très importants dans la communication Arduino car Arduino envoie et reçoit constamment des données. L'utilisation de ces protocoles aide Arduino à couvrir la détection d'erreurs et les méthodes de récupération d'erreurs possibles. Ces protocoles rapprochent les appareils analogiques et numériques et permettent de concevoir plusieurs projets.

Protocoles de communication Arduino

En utilisant des protocoles de communication, nous pouvons envoyer et recevoir les données de n'importe quel capteur dans Arduino.

Certains capteurs simples comme l'infrarouge (IR) peuvent communiquer directement avec Arduino, mais certains des capteurs complexes comme le module Wi-Fi, le module de carte SD et le gyroscope ne peuvent pas communiquer directement avec Arduino sans aucun protocole de communication. C'est pourquoi ces protocoles font partie intégrante de la communication Arduino.







Arduino a plusieurs périphériques qui lui sont attachés ; parmi eux, il y a trois périphériques de communication utilisés dans les cartes Arduino.



Protocoles de communication Arduino

La communication entre différents appareils électroniques comme Arduino est normalisée parmi ces trois protocoles ; il permet aux concepteurs de communiquer facilement entre différents appareils sans aucun problème de compatibilité. Le fonctionnement de ces trois protocoles est le même car ils servent le même objectif de communication, mais ils diffèrent dans leur mise en œuvre à l'intérieur d'un circuit. Une description plus détaillée de ces protocoles est présentée ci-dessous.







UART

L'UART est connu sous le nom de Émetteur-récepteur asynchrone universel. UART est un protocole de communication série qui signifie que les bits de données sont transférés sous forme séquentielle les uns après les autres. Pour configurer la communication UART, nous avons besoin de deux lignes. L'une est la broche Tx (D1) de la carte Arduino et la seconde est la broche Rx (D0) de la carte Arduino. La broche Tx sert à transmettre des données aux appareils et la broche Rx est utilisée pour recevoir des données. Différentes cartes Arduino ont plusieurs broches UART.

Broche numérique Arduino Broche UART
D1 Émission
D0 Rx

Pour établir une communication série à l'aide du port UART, nous devons connecter deux appareils dans la configuration ci-dessous :



Sur Arduino Uno, un port série est dédié à la communication, communément appelé port USB. Comme son nom l'indique Universal Serial Bus, il s'agit donc d'un port série. En utilisant le port USB, Arduino peut établir une communication avec des ordinateurs. Le port USB est connecté aux broches embarquées Tx et Rx d'Arduino. En utilisant ces broches, nous pouvons connecter n'importe quel matériel externe autre qu'un ordinateur via USB. Arduino IDE fournit la bibliothèque SoftwareSerial (SoftwareSerial.h) qui permet aux utilisateurs d'utiliser les broches GPIO comme broches Serial Tx et Rx.

  • UART est simple à utiliser avec Arduino
  • UART n'a pas besoin de signal d'horloge
  • Le débit en bauds doit être défini dans la limite de 10 % des appareils communicants pour éviter la perte de données
  • Plusieurs appareils avec Arduino en configuration maître-esclave ne sont pas possibles avec UART
  • L'UART est semi-duplex, ce qui signifie que les appareils ne peuvent pas transmettre et recevoir des données en même temps
  • Seuls deux appareils à la fois peuvent communiquer avec le protocole UART

Interface périphérique série (SPI)

IPS est un acronyme d'interface périphérique série spécialement conçue pour que les microcontrôleurs puissent communiquer avec eux. SPI fonctionne en mode duplex intégral, ce qui signifie que SPI peut envoyer et recevoir des données simultanément. Comparé à UART et I2C, c'est le périphérique de communication le plus rapide des cartes Arduino. Il est couramment utilisé lorsqu'un débit de données élevé est requis, comme dans les applications d'affichage LCD et de carte Micro SD.

Les broches numériques SPI sur Arduino sont prédéfinies. Pour Arduino Uno SPI, la configuration des broches est la suivante :

Ligne SPI GPIO Broche d'en-tête ICSP
SCK 13 3
MISO 12 1
FUMÉE Onze 4
SS dix
  • MOSI signifie Sortie maître Entrée esclave , MOSI est une ligne de transmission de données pour maître à esclave.
  • SCK est un Ligne d'horloge qui définit la vitesse de transmission et les caractéristiques de début et de fin.
  • SS signifie Sélection esclave ; La ligne SS permet au maître de sélectionner un appareil esclave particulier lorsqu'il fonctionne dans une configuration à plusieurs esclaves.
  • MISO signifie Maître en sortie esclave ; MISO est une ligne de transmission esclave à maître pour les données.

L'un des principaux points forts du protocole SPI est la configuration maître-esclave. En utilisant SPI, un appareil peut être défini comme maître pour contrôler plusieurs appareils esclaves. Le maître contrôle totalement les appareils esclaves via le protocole SPI.

SPI est un protocole synchrone, ce qui signifie que la communication est liée à un signal d'horloge commun entre le maître et l'esclave. SPI peut contrôler plusieurs appareils en tant qu'esclaves sur une seule ligne de transmission et de réception. Tous les esclaves sont connectés au maître en utilisant le commun MISO ligne de réception avec FUMÉE une ligne de transmission commune. SCK est également la ligne d'horloge commune entre les appareils maître et esclave. La seule différence entre les appareils esclaves est que chaque appareil esclave est contrôlé par des SS sélectionner la ligne. Cela signifie que chaque esclave a besoin d'une broche GPIO supplémentaire de la carte Arduino qui servira de ligne de sélection pour cet appareil esclave particulier.

Certains des principaux points forts du protocole SPI sont énumérés ci-dessous :

  • SPI est le protocole le plus rapide que I2C et UART
  • Aucun bit de démarrage et d'arrêt requis comme dans UART, ce qui signifie qu'une transmission de données continue est possible
  • L'esclave peut être facilement adressé grâce à une configuration maître-esclave simple
  • Pour chaque esclave, une broche supplémentaire est occupée sur la carte Arduino. Pratiquement 1 maître peut contrôler 4 appareils esclaves
  • L'acquittement des données est manquant comme utilisé dans l'UART
  • La configuration de plusieurs maîtres n'est pas possible

Protocole de communication I2C

Inter Integrated Circuit (I2C) est un autre protocole de communication utilisé par les cartes Arduino. I2C est le protocole le plus difficile et le plus compliqué à mettre en œuvre avec Arduino et d'autres appareils. Malgré sa complication, il offre plusieurs fonctionnalités qui manquent dans d'autres protocoles comme plusieurs configurations maître et plusieurs esclaves. I2C permet de connecter jusqu'à 128 appareils à la carte Arduino principale. Ceci n'est possible que parce que I2C partage un seul fil entre tous les appareils esclaves. I2C dans Arduino utilise un système d'adresse, ce qui signifie qu'avant d'envoyer des données à l'appareil esclave, Arduino doit d'abord sélectionner l'appareil esclave en envoyant une adresse unique. I2C n'utilise que deux fils, ce qui réduit le nombre global de broches Arduino, mais le mauvais côté est qu'I2C est plus lent que le protocole SPI.

Broche analogique Arduino Broche I2C
A4 SDA
A5 SCL

Au niveau matériel, I2C est limité à seulement deux fils, un pour une ligne de données appelée SDA (données série) et le second pour la ligne d'horloge SCL (horloge série). À l'état inactif, SDA et SCL sont tirés vers le haut. Lorsque des données doivent être transmises, ces lignes sont tirées vers le bas à l'aide de circuits MOSFET. En utilisant I2C dans les projets, il est obligatoire d'utiliser des résistances de rappel normalement d'une valeur de 4,7 Kohm. Ces résistances de rappel garantissent que les lignes SDA et SCL restent élevées lors de leur démarrage au ralenti.

Certains des principaux points forts des protocoles I2C sont :

  • Le nombre de broches requises est très faible
  • Plusieurs appareils maîtres esclaves peuvent être connectés
  • N'utilise que 2 fils
  • La vitesse est plus lente par rapport au SPI en raison des résistances de rappel
  • Les résistances ont besoin de plus d'espace dans le circuit
  • La complexité du projet augmente avec l'augmentation du nombre d'appareils

Comparaison entre UART vs I2C vs SPI

Protocole UART IPS 2C
La rapidité Le plus lent Le plus rapide Plus rapide que l'UART
Nombre d'appareils Jusqu'à 2 4 appareils Jusqu'à 128 appareils
Fils requis 2(Tx,Rx) 4 (SCK, FUMÉE, YEUX, SS) 2(SDA,SCL)
Mode recto-verso Mode duplex intégral Mode duplex intégral Semi-duplex
Nombre de Maîtres-Esclaves possibles Un seul maître-un seul esclave Un seul maître-plusieurs esclaves Plusieurs maîtres-plusieurs esclaves
Complexité Simple Peut facilement contrôler plusieurs appareils Complexe avec augmentation des appareils
Bit d'acquittement Non Non Oui

Conclusion

Dans cet article, nous avons couvert une comparaison complète des trois protocoles UART, SPI et I2C utilisés dans Arduino. Connaître tous les protocoles est important car cela offre des possibilités infinies d'intégrer plusieurs appareils. Comprendre tous les périphériques de communication permettra de gagner du temps et d'optimiser les projets selon le bon protocole.