Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Technologie industrielle

SPI I2C UART- Protocoles de communication et utilisations

Le développement de microcontrôleurs est un processus cardinal dans l'assemblage électronique. Mais l'apport de protocoles série et d'interfaces de communication facilite cette entreprise. Dans cet article, nous avons l'intention d'explorer de manière exhaustive les protocoles de communication série tels que l'interface SPI I2C UART et l'UART. Nous analyserons les caractéristiques, les avantages, les inconvénients et les exemples des protocoles série.

1. Interface UART

Qu'est-ce que l'UART ?

Figure 1 :Un protocole UART sur Arduino 

Réception et transmission asynchrones universelles ( UART ) est un protocole de communication série qui facilite la communication hôte avec les périphériques auxiliaires. Principalement, il permet la transmission de données en série. En outre, il est capable de communication asynchrone et de transmission bidirectionnelle.

Le protocole simple comporte également deux lignes de données :la gestion de la transmission (Tx) et la réception d'autres signaux (Rx). Habituellement, la transmission du signal se fait via la broche numérique 0, tandis que la réception se fait via la broche numérique 1.

En outre, il aide à synchroniser la gestion d'un ordinateur et de périphériques série externes.

Comment ça marche ?

Figure 2 :Une carte UART USB électronique DIY

Essentiellement, UART gère la communication des signaux entre deux appareils via les moyens suivants :

Simplex implique une transmission de données unidirectionnelle, tandis que semi-duplex signifie une communication non simultanée entre deux appareils dans les deux sens. Enfin, un duplex intégral implique un transfert de données simultané dans les deux sens.

Généralement, après la connexion, il y a un transfert de données de la ligne de données de l'UART émetteur vers l'UART récepteur. Cela se produit via le principe suivant ;

  1. Tout d'abord, l'UART émetteur convertira les données parallèles d'un appareil maître en un format série pour les transférer vers l'UART récepteur. De même, l'UART de réception change les données série en données parallèles à utiliser par l'appareil de réception connecté.
  2. Étant donné que l'UART implique une communication asynchrone, il ne comporte aucune horloge. Ainsi, l'UART générera des bits de démarrage et d'arrêt pour indiquer le début et la fin d'un message.
  3. Les deux UART doivent fonctionner au même débit en bauds ou à la même vitesse de transmission de données UART. Idéalement, cela permet d'assurer une synchronisation précise des bits de données, car une différence de plus de 10 % rend les données inutiles.

Protocole de travail UART

Transmission et réception de données

  1. Pour la transmission, l'UART émetteur doit recevoir des données d'un bus de données tel qu'un CPU.
  2. Ensuite, il ajoute les trois bits, à savoir le bit de démarrage, le bit de parité et le bit d'arrêt. Les trois formeront un paquet de données transmis à l'UART de réception via la broche TX.
  3. La transmission de données s'arrête après l'épuisement des données dans l'UART de transmission.

Contrôle des interruptions

Les interruptions de données sont pratiques dans l'envoi automatique du contenu du tampon. Vous pouvez déclencher un contrôle d'interruption dans les cas suivants :

Fonctionnement FIFO

Fig 3. Une interface UART sur Arduino

Les modules UART de la famille Stellaris comportent deux FIFO de 16 octets, l'un pour la réception des données et l'autre pour la transmission. De plus, vous pouvez les configurer à différentes profondeurs pour délivrer différentes interruptions. Par exemple, vous pouvez avoir 1/8 de profondeur, 1/4 de profondeur, 1/2 de profondeur, etc.

Processus de travail de transmission FIFO

  1. En principe, la transmission des données commence après la saisie des données. De plus, comme cela prend du temps, la saisie des données est continue jusqu'à ce que la FIFO de transmission soit pleine.
  2. Une fois rempli, vous devez arrêter la saisie des données de peur de perdre toutes les nouvelles données.
  3. Ensuite, la FIFO émettrice envoie les données bit par bit jusqu'à ce qu'elle soit vide. Enfin, la FIFO de transmission créera un slot supplémentaire.

Processus de travail de réception FIFO

  1. Après avoir reçu les données de l'étape susmentionnée, le matériel les stocke dans la FIFO de réception. Idéalement, la réception et l'effacement des données par le programme FIFO récepteur est un processus automatique. Ainsi, il doit y avoir suffisamment d'espace dans le FIFO de réception.
  2. Il dispose également d'un émetteur-récepteur FIFO qui est essentiel pour résoudre les problèmes d'inefficacité du processeur. De plus, cela aide à résoudre le problème des interruptions fréquentes de l'émetteur-récepteur UART.
  3. Enfin, FIFO n'a aucune perte de données car il scelle à l'avance toutes les possibilités de perte probables.

Bouclage

L'UART dispose d'un bouclage interne pour le débogage et les diagnostics sur l'endroit où l'entrée RX recevra les données envoyées.

Protocole infrarouge série

L'UART dispose d'un IrDA Serial Infrared (SIR) fonctionnant comme un module d'encodeur/décodeur. Il est pratique pour traduire une interface SIR série semi-duplex et un flux de données UART asynchrone.

De plus, le protocole de communication série fournit une entrée décodée et une sortie codée numériquement à l'UART.

Avantages de l'utilisation de l'UART

  1. Le protocole de communication simple est un module bien documenté qui est également facile à utiliser.
  2. Deuxièmement, il ne nécessite pas de ligne d'horloge série.
  3. Troisièmement, il possède un bit de parité qui permet de vérifier les erreurs.

Inconvénients de l'utilisation de l'UART

  1. L'interface UART a une limite de taille de trame de données de 9 bits et a des vitesses de transfert lentes.
  2. De plus, il est incapable d'utiliser de nombreux systèmes maîtres et appareils esclaves.
  3. En outre, il a un débit en bauds obligatoire de moins de 10 % comme protection contre la perte de données.
  4. Quatrièmement, il a généralement des vitesses plus lentes lors du transfert de données entre appareils.

Exemples d'UART dans les microcontrôleurs

2. Interface I2C

Qu'est-ce que l'I2C ?

Figure 4 :un capteur de pression différentielle utilise I2C

Le circuit inter-intégré (I2C) protocole de communication ressemble à l'UART. Mais, alors que l'UART est conçu pour la communication PC-appareil, I2C est utile dans les applications de capteurs et de modules.

En outre, le bus série synchrone à deux fils bidirectionnel peut connecter plusieurs appareils sans compromettre la voie de communication. C'est grâce à sa propriété partagée de bus et de système d'adresse.

Mais cette fonctionnalité se fait au prix d'une communication relativement lente entre les appareils par rapport à un SPI. Sa vitesse dépend du bruit externe, de la qualité du fil et de la vitesse des données.

Enfin, l'interface à deux fils permet la connexion à des appareils à faible vitesse tels que des EEPROM, des convertisseurs analogiques/numériques et des microcontrôleurs.

Comment ça marche ?

Un protocole I2C comporte deux lignes :le port d'acceptation de ligne de données série (SDA) et une ligne d'horloge série (SCL). Le SCL facilite la synchronisation de la transmission tandis que le SDA représente la ligne de données pour l'envoi et la réception des bits de données.

Pendant le transfert, l'appareil maître demande la transmission des données du bus. Simultanément, il génère une horloge qui ouvre le dispositif de transfert. Dans ce scénario, le périphérique adressé dans la transmission est un périphérique esclave.

Il convient de noter que le dispositif maître et le dispositif esclave n'ont pas un débit de transmission de données constant. Au contraire, leur relation repose sur la direction de transfert de données au moment de la transmission.

De plus, le dispositif maître unique doit informer le dispositif de sélection esclave avant de lancer une transmission de données. De même, il doit informer l'esclave avant de recevoir des données de l'esclave.

Il est également important de connecter une résistance pull-up à l'alimentation I2C pour un fonctionnement optimal.

Protocole de travail I2C

Figure 5 :Une broche 0,96 pouce OLED 128X64 Module d'affichage OLED IIC I2C

Méthode de transmission des données

La procédure de connexion est la suivante :

  1. La sortie maître enverra un signal de transmission aux esclaves connectés, principalement en commutant la ligne SDA du niveau de tension élevé au niveau bas. Ensuite, il fera passer la ligne SCL du niveau de tension élevé au niveau bas.
  2. Ensuite, le maître envoie des adresses 7 bits ou 10 bits et lit/écrit des bits à chacun des esclaves.
  3. Troisièmement, les esclaves comparent l'adresse à la leur. S'il correspond, il renverra un bit ACK, mettant la ligne SDA à l'état bas. Cependant, s'ils ne correspondent pas, l'esclave quittera la ligne SDA en haut.
  4. Ensuite, le maître envoie la trame de données ou la reçoit (selon les adresses correspondantes). Ensuite, après transmission complète des données, le composant récepteur renvoie un bit ACK à l'expéditeur des données. Il s'agit d'accuser réception d'une transmission complète.
  5. Enfin, le maître commute le SCL sur haut puis le SDA pour communiquer la fin de la communication.

Synchronisation de l'horloge

Chaque maître doit générer son signal d'horloge dans la ligne SCL pour la transmission des données. De plus, ce n'est que pendant la période haute de l'horloge que les données restent valides dans une transmission I2C.

Modes de transmission

Il transmet principalement via deux moyens, à savoir :

Mode rapide

Les appareils en mode rapide reçoivent et transmettent des données à un débit de 400 kbit/s. De plus, un bus I2C en mode rapide peut supprimer de manière significative les parasites, et leur sortie comporte une fonction de contrôle de pente.

Mode haute vitesse

Un bus I2C en mode haute vitesse transmettra des données/recevra à un débit binaire de 3,4 Mbit/s. Ainsi, il présente des taux de transmission de données plus rapides que l'ancien mode rapide.

Avantages d'I2C

  1. Il comporte un nombre considérablement limité de broches/signaux même lorsque vous avez connecté de nombreux appareils sur le maître.
  2. Deuxièmement, un appareil I2C offre de la flexibilité grâce à sa capacité multi-maître et multi-esclave.
  3. De plus, il est simple à utiliser car vous n'avez besoin que de deux fils bidirectionnels pour établir une connexion avec de nombreux appareils.
  4. En outre, il offre une grande adaptabilité et peut également prendre en charge de nombreux masters.

Inconvénients d'I2C

  1. Il a une vitesse relativement lente et doit utiliser des résistances pull-up, contrairement au SPI, qui n'a besoin que de résistances push-pull. De plus, sa conception à drain ouvert réduit sa vitesse.
  2. De plus, les résistances occupent un espace qui est d'une importance capitale dans l'assemblage des PCB.
  3. Ce n'est pas facile à utiliser lorsque vous avez connecté de nombreux appareils.

Exemples d'I2C dans les microcontrôleurs

3. Interface SPI

Qu'est-ce que SPI ?

Figure 6 :une interface SPI est pratique dans les modules d'affichage.

L'interface périphérique série (SPI) est conçu pour être utilisé dans les microcontrôleurs. De plus, comme il fonctionne en duplex intégral, il permet la transmission et la réception simultanées des données.

Le SPI est relativement plus rapide que I2C, avec un taux de transmission de données d'au moins 8 bits. Principalement, le protocole simple de ce module permet des débits de données plus rapides. Ainsi, il est important dans les applications qui nécessitent de la vitesse, telles que les modules d'affichage et les cartes SD.

Il est également essentiel dans les applications impliquant un changement soudain d'informations, par exemple les thermomètres.

Comment ça marche ?

Fig 7 :Les cartes SD utilisent SPI

Une forme d'appareil SPI fonctionnera de l'une des deux manières suivantes :

Vous pouvez connecter autant d'appareils que vous le souhaitez dans une interface SPI. Cependant, dans la plupart des cas, vous serez limité par les lignes de sélection de matériel disponibles. Enfin, lors d'une communication point à point, le module n'a pas besoin d'effectuer d'opérations d'adressage.

Protocole de travail SPI

SPI fonctionne via quatre ports, à savoir :

  1. Sortie de données maître, entrée de données esclave (MOSI)
  2. Entrée de données maître, sortie de données esclave (MISO)
  3. Un signal d'horloge (SCLK)
  4. Signal activé par l'esclave (NSS)

Lors de l'utilisation d'un système multi-esclaves, chaque esclave respectif demande un signal d'activation unique. Cette exigence complique les exigences matérielles par rapport à une communication I2C.

De plus, l'interface SPI comporte deux registres à décalage. Il permet la transmission de données série synchrone entre un périphérique maître unique, tel qu'un processeur, vers des périphériques.

Avantages de l'utilisation de SPI

  1. Il est simple à utiliser car, contrairement à un I2C, il lui manque un système d'adressage complexe des esclaves.
  2. Deuxièmement, c'est le protocole le plus rapide de toutes les interfaces série que nous avons couvertes (plus rapide que UART et I2C).
  3. Il n'a pas de bits de démarrage et d'arrêt comme dans la communication UART. Ainsi, il permet une transmission continue des données sans interruption.
  4. Enfin, il comporte des lignes MISO et MOSI distinctes qui permettent l'envoi et la réception simultanés de données.

Inconvénients de l'utilisation de SPI

  1. La plupart de ses ports Pin sont occupés, ce qui limite le nombre d'appareils que vous pouvez connecter.
  2. De plus, il manque un contrôle de flux spécifié, et contrairement à I2C, il n'y a aucun mécanisme pour reconnaître que les données ont été envoyées/reçues.
  3. Il nécessite l'utilisation de 4 lignes, comme nous l'avons souligné ci-dessus, et contrairement à l'UART, il manque un mécanisme de vérification des erreurs.
  4. Quatrièmement, il a également un maître unique.

Exemples de SPI dans les microcontrôleurs

Comparaison UART, I2C et SPI

Lequel de ces périphériques de communication est le "meilleur" ? UART, SPI ou I2C ?

Il n'y a pas de périphériques de communication supérieurs sur les trois, car chacun a ses principaux avantages et inconvénients. Ainsi, choisissez le protocole le mieux adapté en fonction de votre projet. Par exemple, SPI vous servirait mieux si vous recherchez la vitesse.

Mais si vous souhaitez connecter de nombreux appareils sans avoir une matrice complexe, optez pour I2C.

Conclusion

Nous avons mis à nu toutes les informations clés que vous devez connaître sur les interfaces de communication UART, I2C et SPI et leurs différents taux de transfert. De plus, nous sommes là pour répondre à toute question concernant les protocoles de communication. Contactez-nous, et nous viendrons immédiatement à votre aide.


Technologie industrielle

  1. Protocoles réseau
  2. Termes et concepts de la mémoire numérique
  3. Boards – Breakout the Pi – I2C, UART, GPIO et plus
  4. 14 Utilisations inconnues de la nanotechnologie | Avantages et applications
  5. Qu'est-ce que le brasage à l'argent ? - Processus, tige et utilisations
  6. Fabrication basée sur les données :avantages, défis et stratégies
  7. Automatisez l'ingestion des données et optimisez la prise de décision
  8. Types de bois et leurs utilisations
  9. Utilisations du tungstène hier et aujourd'hui