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.
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.
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 | - |
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:
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:
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.