Comparaison Uart-SPI

UART vs SPI | différences et similitudes

Si tu travailles avec des systèmes embarqués, il est important de comprendre les différences entre les différentes technologies et les protocoles que ces systèmes utilisent. UART et SPI sont des aspects importants de la conception et du développement des systèmes embarqués. Si tu comprends les différences entre eux, tu peux mieux comprendre comment fonctionnent les systèmes qui les utilisent. Dans cet article, nous expliquons ce que sont l'UART et le SPI, nous expliquons les différences entre l'UART et le SPI, nous expliquons quelques applications courantes qui utilisent l'UART et le SPI, et nous te fournissons des informations qui t'aideront à déboguer et à programmer des systèmes embarqués avec l'UART ou le SPI.

Qu'est-ce que l'UART ?

UART signifie Universal Asynchronous Receiver Transmitter (émetteur-récepteur universel asynchrone). À haut niveau, un UART est simplement une micropuce qui permet la communication entre un appareil informatique (PC, système embarqué, etc.) et d'autres appareils.

Pour comprendre plus précisément ce que fait un UART, il est utile de comprendre la communication série et la communication parallèle. Nous proposons ici un cours accéléré sur ces deux sujets.

Dans la communication série, les données sont envoyées en termes simples, bit par bit, via un bus de communication spécifique. Alors que RS-232 (note que UART est souvent utilisé pour RS-232) et RS-485 sont les deux protocoles que nous associons le plus souvent au terme "communication série", de nombreuses autres technologies modernes comme USB (Universal Serial Bus) et SATA (Serial ATA) et Firewire / IEEE 1394 sont également des protocoles série. L'un des avantages de la communication série est que les données peuvent être transmises à des fréquences plus élevées, ce qui augmente la quantité de données qui peuvent être envoyées, bien que moins de données soient envoyées simultanément par rapport à la communication parallèle.

D'autre part, la communication parallèle envoie plusieurs bits de données en même temps sur un bus de communication donné. Par exemple, un support de communication parallèle de 32 bits, comme un PCI (Peripheral Component Interconnect) traditionnel, enverrait 32 bits de données par cycle d'horloge. Alors que l'on pourrait penser que cela donnerait à la communication parallèle des avantages considérables en termes de vitesse par rapport à la communication série, en pratique, la communication série est plus rapide, car elle peut absorber plus de cycles d'horloge par seconde (par exemple, des vitesses GHz).

Quel est le rapport exact avec UART ? Les puces UART simples sont utilisées pour convertir les données série entrantes en données parallèles, afin que le système puisse lire les données parallèles sortantes et les convertir en données série avant de les transmettre à d'autres systèmes. En d'autres termes, un UART permet à un système de fonctionner comme un appareil DTE (Data Terminal Equipment).

Avant de passer au SPI, nous voulons aborder brièvement quelques autres détails importants concernant la communication UART :

  • UART utilise deux fils : un pour l'envoi (ou Tx) et un pour la réception (ou Rx).
  • La communication UART est asynchrone, c'est-à-dire qu'elle n'est pas synchronisée avec une horloge
  • UART a une distance de communication maximale de 15 mètres
  • UART utilise des registres à décalage pour convertir la communication série en communication parallèle
  • UART est généralement utilisé comme "port série" sur les ordinateurs ou dans les microcontrôleurs
  • UART supporte la communication en duplex intégral

Qu'est-ce que le SPI ?

SPI (Serial Peripheral Interface) est un protocole de communication série développé à l'origine par Motorola, qui permet la communication entre presque tous les appareils électroniques qui supportent les flux sériels cadencés. SPI utilise une méthode maître-esclave pour la communication, ce qui permet un flux de données rapide.

Contrairement à l'utilisation de seulement deux fils, le SPI doit utiliser au moins 4 fils. Comme une implémentation SPI peut contenir plusieurs appareils esclaves, le nombre réel de fils ou de pistes utilisés est de n + 3, où n est le nombre d'appareils esclaves utilisés.

Quelques détails supplémentaires importants sur SPI avant de continuer :

  • SPI est synchrone
  • SPI est un protocole simple avec peu d'overhead
  • SPI supporte la communication en duplex intégral
  • La communication SPI ne dispose pas d'un moyen de confirmation ou de contrôle de flux
  • SPI n'occupe pas beaucoup de place sur le circuit imprimé

UARTvs SPI - différences et similitudes

Alors que l'UART et le SPI supportent tous les deux la communication full duplex, ils utilisent tous les deux  communication "série" et tous les deux ne sont adaptés qu'aux cas d'application à courte distance, au-delà de cela, il n'y a pas trop de similitudes. Quelles sont les différences entre UART et SPI ? La réponse est qu'il y en a beaucoup. Nous allons en aborder quelques-unes ici.

 

Matériel vs protocole

L'une des plus grandes différences est que UART est une sorte de matériel, tandis que SPI est un protocole. Si tu t'occupes des nuances pour faire fonctionner les choses dans un système embarqué, cela peut facilement être négligé. Cependant, UART est un matériel réel (une micropuce), tandis que SPI est un protocole ou une spécification pour la communication.

 

Nombre de broches

Les UART utilisent seulement deux broches, alors que les dispositifs SPI en ont besoin d'au moins 4. Si un système est conçu, cela signifie que SPI n'est peut-être pas une solution attrayante si les broches/traces sont rares.

 

Nombre d'appareils qui peuvent être connectés

Une conséquence du nombre de broches, les appareils UART et SPI supportent un nombre différent d'appareils. UART, qui n'utilise que Tx et Rx pour la communication sortante, est effectivement limité à la communication 1 : 1. SPI, par contre, peut utiliser son paradigme maître / esclave pour permettre trop de communications.

 

Vitesse de communication

SPI est nettement plus rapide que UART. Dans certains cas, une solution SPI peut être trois fois plus rapide qu'une solution UART.

 

Prix

Dans toute entreprise technique, le coût d'une solution donnée est un moteur important du choix. En général, SPI est moins cher que UART.

 

Asynchrone vs synchrone

Comme tu peux le constater dans les descriptions précédentes, une autre différence essentielle dans la comparaison entre UART et SPI est que la communication UART est asynchrone, tandis que SPI est synchrone.

 

Taille

En général, les appareils SPI prennent relativement moins de place que les puces UART. Cela signifie que les cas d'application avec un espace limité sur la carte peuvent être mieux servis par SPI

TechnologieType de transfertNombre de fils/pinsTaux de données @DistanceCoûtScalabilitéCas d'utilisation
UARTAsynchrone220 kbps @ 15mModérément coûteuxPoor (point-to-point)Écrans de diagnostic
SPISynchronous4+250 Mbps @ .1mRelativement peu coûteuxModerateLiens puce à puce à grande vitesse

UART vs SPI : que dois-je utiliser ?

Il n'y a pas de réponse unique à "UART vs SPI : que dois-je utiliser ? Question. Avec les informations que nous t'avons données ici, tu peux maintenant prendre une décision éclairée sur la solution qui convient le mieux à une application spécifique sur laquelle tu travailles peut-être.

En général, SPI est préféré dans les applications qui nécessitent une communication plus rapide entre les puces ou dans les applications qui nécessitent une communication entre plusieurs appareils. D'un autre côté, UART peut être plus approprié pour les applications qui doivent parcourir un peu plus de distance, par exemple les écrans de diagnostic ou d'autres applications qui nécessitent un support RS-232.

Outils de débogage et de développement UART vs SPI

Nous mettons à ta disposition des solutions qui permettent de déboguer et de développer des systèmes intégrés. Compte tenu de l'expansion du SPI dans les systèmes embarqués, il n'est pas surprenant que nous disposions d'une variété de solutions qui peuvent aider à déboguer et à développer des systèmes avec SPI.

Avec notre kit de développement SPI, les développeurs peuvent par exemple tester des appareils cibles en tant qu'appareil maître, simuler un appareil maître, programmer des appareils flash basés sur SPI et surveiller un bus SPI avec une granularité allant jusqu'à 20 nanosecondes.

Alternativement, un analyseur de protocole de phase totale peut s'avérer utile si tu dois déboguer des données transmises vers ou depuis un UART. 

Adaptateur hôte I2C/SPI AardvarkAdaptateur hôte I2C/SPI Aardvark
Adaptateur hôte I2C/SPI Aardvark
TP240141
L'adaptateur hôte Aardvark I2C/SPI est un outil innovant pour l'utilisation avec les systèmes de bus I2C & SPI.

309,00 €*
Beagle I2C/SPI Protokoll Analyzer - Total Phase
Analyseur de protocole I2C/SPI Beagle
TP320121
L'analyseur de protocole I2C/SPI Beagle est un adaptateur hôte de bus I2C et SPI rapide et puissant via USB

369,00 €*
Plateforme universelle Promira I2C/ SPI/ eSPI
TP500110-S
La plateforme universelle Promira I2C/SPI/eSPI peut être utilisée pour une multitude d'applications

Variantes de 900,00 €*
1 060,00 €*