Protocole de communication Arduino

Protocole de communication Arduino
Les protocoles de communication sont l'ensemble des règles qui permet 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 des erreurs et les méthodes de récupération d'erreurs possibles. Ces protocoles rassemblent 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 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 y sont attachés; Parmi eux, il y a trois périphériques de communication utilisés dans les conseils Arduino.

  • Uart
  • Spice
  • I2C

Protocoles de communication Arduino

La communication entre différents dispositifs électroniques comme Arduino est standardisée entre 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 but de la communication, mais ils diffèrent dans la mise en œuvre dans un circuit. Une description supplémentaire de ces protocoles est discutée ci-dessous.

Uart

UART est connu comme le É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 l'une après l'autre. Pour mettre en place une communication UART, nous avons besoin de deux lignes. L'un est la broche TX (D1) de la carte Arduino et la seconde est la broche Rx (D0) de la carte Arduino. La broche TX est pour 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.

Épingle numérique Arduino Épingle UART
D1 TX
D0 Rx

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

Sur Arduino Uno, un port série est dédié à la communication qui est communément appelée port USB. Comme son nom l'indique, Universal Serial Bus, c'est donc un port série. L'utilisation du port USB Arduino peut établir une communication avec les ordinateurs. Le port USB est connecté aux broches embarquées TX et RX d'Arduino. En utilisant ces broches, nous pouvons connecter tout matériel externe autre que l'ordinateur via USB. Arduino IDE fournit une bibliothèque de logiciels (Softwareserial.h) qui permet aux utilisateurs d'utiliser les broches GPIO comme broches TX et RX série.

  • UART est simple à utiliser avec Arduino
  • UART n'a besoin d'aucun signal d'horloge
  • Le taux de bauds doit être fixé dans la limite de 10% des dispositifs de communication pour éviter la perte de données
  • Plusieurs appareils avec Arduino dans la configuration d'esclaves maître ne sont pas possibles avec UART
  • UART est à moitié 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)

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

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

Ligne SPI GPIO Pin d'en-tête ICSP
SCK 13 3
MISO 12 1
Mosi 11 4
SS dix -
  • Mosi représente Master Out Slave in, MOSI est une ligne de transmission de données pour le maître à esclave.
  • SCK est un Ligne d'horloge qui définit les caractéristiques de vitesse de transmission et de démarrage.
  • SS représente Sélection d'esclaves; La ligne SS permet à Master de sélectionner un appareil esclave particulier lors du fonctionnement en configuration d'esclaves multiples.
  • Miso représente Maître en esclave; MISO est esclave pour maîtriser la ligne de transmission pour les données.

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

SPI est un protocole synchrone, ce qui signifie que la communication est liée au signal d'horloge commune entre maître et esclave. SPI peut contrôler plusieurs appareils en tant qu'esclave sur une seule ligne d'émission et de réception. Tous les esclaves sont connectés au maître en utilisant Common MISO recevoir une ligne avec Mosi Une ligne de transmission commune. SCK est également la ligne d'horloge commune parmi les appareils maître et esclaves. La seule différence dans les dispositifs esclaves est que chaque dispositif esclave est contrôlé par séparation SS Sélectionner la ligne. Cela signifie que chaque esclave a besoin d'une broche GPIO supplémentaire de la carte Arduino qui agira comme une ligne de sélection pour cet appareil esclave particulier.

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

  • SPI est le protocole le plus rapide que I2C et UART
  • Aucun démarrage et bits d'arrêt requis comme dans UART, ce qui signifie que la transmission continue des données est possible
  • L'esclave peut être facilement traité en raison de la configuration d'esclaves maître simple
  • Pour chaque esclave, une épingle supplémentaire est occupée sur Arduino Board. Pratiquement 1 maître peut contrôler 4 dispositifs esclaves
  • La reconnaissance des données est manquante comme utilisée dans UART
  • La configuration principale multiple n'est pas possible

Protocole de communication I2C

Le circuit inter intégré (I2C) est un autre protocole de communication utilisé par Arduino Boards. I2C est le protocole le plus difficile et le plus compliqué à mettre en œuvre avec Arduino et d'autres appareils. Malgré sa complication, il propose plusieurs fonctionnalités qui manquent dans d'autres protocoles comme plusieurs configurations de maître et de plusieurs esclaves. I2C permet de connecter jusqu'à 128 appareils à la carte Arduino principale. Cela n'est possible que car I2C partage un fil unique parmi tous les dispositifs esclaves. I2C dans Arduino utilise un système d'adresses, ce qui signifie avant d'envoyer des données sur l'appareil esclave Arduino doit d'abord sélectionner un appareil esclave en envoyant une adresse unique. I2C utilise seulement deux fils réduisant le nombre global de broches Arduino, mais le mauvais côté à elle est I2C est plus lent que le protocole SPI.

Broche analogique arduino Pin 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 deuxième pour la ligne d'horloge SCL (horloge série). À l'état inactif, SDA et SCL sont tirés haut. Lorsque les données doivent être transmises, ces lignes sont extraites à l'aide de circuits MOSFET. En utilisant I2C dans les projets, il est obligatoire d'utiliser les résistances de traction normalement une valeur de 4.7kohm. Ces résistances de traction garantissent que les lignes SDA et SCL restent élevées dans leur inactivité commencent.

Certains des principaux points forts des protocoles I2C sont:

  • Le nombre d'épingles requises est très faible
  • Plusieurs appareils d'esclaves maîtres peuvent être connectés
  • Utilise uniquement 2 fils
  • La vitesse est plus lente par rapport à SPI en raison des résistances de traction
  • Les résistances ont besoin de plus d'espace en circuit
  • La complexité de l'augmentation du projet avec l'augmentation du nombre d'appareils

Comparaison entre UART vs I2C vs SPI

Protocole Uart Spice I2C
Vitesse Le plus lent Le plus rapide Plus rapide que UART
Nombre d'appareils Jusqu'à 2 4 appareils Jusqu'à 128 appareils
Fils requis 2 (TX, RX) 4 (SCK, MOSI, MISO, SS) 2 (SDA, SCL)
Mode duplex Mode duplex complet Mode duplex complet Demi-duplex
Nombre de maîtres-esclaves possibles Esclave maître-satele unique Esclaves maître-multiples uniques Multiples esclaves de maîtres-multiples
Complexité Simple Peut facilement contrôler plusieurs appareils Complexe avec une augmentation des appareils
Bit de reconnaissance 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 il offre des opportunités infinies d'intégrer plusieurs appareils. La compréhension de tous les périphériques de communication gagnera du temps et aidera à optimiser les projets en fonction du bon protocole.