SPI vs I2C vs UART : Différences et comparaison | Altium (2024)

Si vous créez une carte de développement pour votre projet ou utilisez un microcontrôleur courant, vous trouverez de nombreux protocoles pour communiquer d'autres composants actifs.

Des standards comme USB et Ethernet sont intégrés à la majorité des contrôleurs afin de fonctionner avec des périphériques informatiques. Toutefois, des protocoles comme I2C, SPI ou encore UART sont utilisés en interface avec des microcontrôleurs ou des circuits intégrés programmables en aval.

Les différences entre les bus SPI vs I2C vs UART sont simples, et tout concepteur travaillant avec un microcontrôleur doit savoir comment configurer le routage pour ces protocoles.

Ces protocoles étant des normes de signalisation plus lentes, vous n'aurez presque jamais à vous soucier d'éléments comme le contrôle d'impédance ou le comportement des lignes de transmission si vous les utilisez.

Toutefois, certains points de conception importants doivent être pris en compte pour garantir que les signaux de vos lignes de bus sont lus correctement au niveau de vos récepteurs. L'adressage doit aussi être surveillé, mais le produit concerné et votre code peuvent permettre d'y répondre.

Pour le moment, voyons comment ces trois protocoles communs peuvent être utilisés dans votre routage de circuit et intéressons-nous à quelques points importants pour le maintien de l'intégrité du signal.

Différences entre SPI vs I2C vs UART

Tous les microcontrôleurs de 8 bits à 32 bits utilisent au moins un de ces protocoles en plus des GPIO pour la programmation et l'envoi de signaux à des périphériques simples.

Ces trois protocoles série sont des protocoles de bus : I2C et UART utilisent des schémas d'adressage alors que SPI est sans adresse. Malgré cela, il s'agit d'un protocole de bus qui peut toujours être utilisé pour sélectionner des dispositifs en aval en vue de la réception de données.

Protocole I2C

L'I2C (prononcé en anglais I-squared C, ou parfois IIC pour circuit inter-intégré) utilise deux lignes (modes standard, rapide et fast-plus) pour contrôler d'autres appareils.

L'une des lignes est une ligne d'horloge (SCL) tandis que l'autre est une ligne de données (SDA). Il existe en trois modes résumés dans le tableau ci-dessous.

Notez que les valeurs temporelles de montée/descente supposent que les résistances en série classiques sont installées aux E/S.

Mode

Débit / Vitesse de l'horloge

Temps max. de montée/descente

Temps min. de montée/descente

Direction

Standard

100 kHz

1000 ns

-

Bidirectionnel

Rapide

400 kHz

300 ns

20 ns*

Bidirectionnel

Fast-plus

1 MHz

300 ns

20 ns*

Bidirectionnel

Haute vitesse

3,4 MHz (bus 100 pF)

1,7 MHz (bus 400 pF)

120 ns**
240 ns**

15 ns**
30 ns**

Bidirectionnel

Ultra-fast

5 MHz

50 ns

25 ns

Unidirectionnel


*Suppose que VDD/VCC = 5,5 V. Diminue de manière linéaire si VDD/VCC est inférieur
**Diviser ces valeurs par 2 pour la ligne d'horloge.

Notez que le mode ultra-fast est le seul où la communication est uniquement utilisée pour les opérations d'écriture en aval. Ce mode est également important car il nous aide à identifier à quel moment l'impédance du bus doit être adaptée, ce qui n'arrive en pratique quasiment jamais.

Si on adopte une limite très prudente de 10 % sur la longueur de ligne critique, nous constatons que la longueur cruciale de ces lignes est de 0,32 m, soit une valeur nettement plus longue que la taille de la plupart des cartes qui utiliseront I2C.

En prenant la fréquence de coude pour la durée minimale de montée/descente avec une limite de 10 % sur la longueur critique, on obtient une valeur beaucoup plus longue de 0,92 m.

Nous devrions retenir la valeur plus prudente de 0,32 m pour le mode ultra-fast : toute ligne I2C plus courte que cette valeur ne se comportera pas comme une ligne de transmission, et nous devons seulement nous préoccuper du schéma de terminaison.

Les éléments importants de la terminaison consistent à sélectionner les bonnes résistances en série et de tirage. Les résistances de tirage et la capacitance du bus de ligne VDD/VCC forment un circuit RC de décharge et de charge, ce qui transmet un signal au récepteur lorsque le pilote commute.

Les valeurs des résistances de tirage (Rp) pour les lignes de signaux et d'horloge doivent respecter l'inégalité suivante :

SPI vs I2C vs UART : Différences et comparaison | Altium (1)
SPI vs I2C vs UART : Différences et comparaison | Altium (2)

La capacitance d'un bus est déterminée à l'aide des formules standard pour l'impédance du bus VCC, qui est calculée grâce aux équations que vous utiliseriez pour une ligne de transmission (microruban ou ruban).

Vous pouvez ensuite résoudre la capacitance du bus à l'aide de l'impédance et du temps de propagation de la ligne. Les résistances en série sont facultatives dans le cadre de la norme I2C, mais elles peuvent être incluses afin de protéger les appareils contre les pics de tension et de ralentir les temps de montée/descente.

Consultez la page 59 de la norme I2C pour déterminer la bonne valeur de résistance en série à associer à la valeur de votre résistance de tirage.

Protocole SPI

Le protocole SPI est similaire à I2C. Quatre lignes au total sont utilisées dans ce bus et les composants peuvent être disposés selon deux modes.

Si un seul contrôleur est utilisé pour déclencher un périphérique en aval, la topologie est simplement de type point à point. Le déclenchement de plusieurs périphériques dépend du nombre de sorties chip-select fournies par le pilote (mode standard).

Le second mode utilise le daisy chaining, dans lequel une seule sortie de sélection de périphériques déclenche successivement chaque périphérique de la daisy chain.

Contrairement au protocole I2C, les différents paramètres de signalisation de SPI sont hautement configurables.

À moins que vous n'utilisiez une interface extrêmement rapide, vous pouvez estimer le niveau du signal sur l'ensemble de l'interconnexion sous forme de courant continu : vous serez en effet sous la longueur critique pour le comportement de la ligne de transmission.

Vous pourrez alors utiliser une résistance en série pour terminer la sortie à basse impédance du pilote et assurer un transfert de puissance maximal. La méthode de décharge RC avec la capacitance de piste indiquée ci-dessus peut contrôler le courant de sortie et les temps de montée/descente à partir de votre interface.

Protocole UART

L'émetteur-récepteur asynchrone universel (UART) est similaire au protocole I2C. Ces interfaces ont un débit de données maximal d'environ 5 Mbps. Les périphériques UART sont également faciles à utiliser, car aucune horloge n'est envoyée entre eux, tout est asynchrone.

Notez que l'horloge interne (système) de chaque périphérique UART doit fonctionner à un multiple donné de la fréquence en bauds (en d'autres termes, chaque bit est échantillonné N fois). Seuls deux fils sont utilisés pour la communication entre un contrôleur et un périphérique en aval.

Notez que le format des données, les niveaux des signaux et le débit en bauds d'un périphérique UART sont configurables avec un circuit de pilotage externe. Malheureusem*nt, cela signifie également qu'il existe peu de règles strictes et rapides pour le routage des périphériques UART.

Suivez les directives standard de conception à haute vitesse pour déterminer le moment auquel une terminaison est nécessaire en examinant la transition vers le comportement de la ligne de transmission (voir l'article dont j'indique le lien ci-dessous). La terminaison en série est souvent adoptée pour réduire les dépassem*nts.

Notez que le protocole UART peut être inactif à des niveaux élevés ou faibles, et que des résistances de tirage peuvent être nécessaires pour définir le niveau d'inactivité requis. Veillez à vérifier les spécifications de vos composants avant d'ajouter des résistances de tirage.

Pour en savoir plus sur la différence de synchronisation entre les bus synchrones et asynchrones, reportez-vous à cette présentation AltiumLive de 2018 par Max Seeley (en anglais).

RÉSUMÉ : SPI vs I2C vs UART

Les règles SPI et UART peuvent sembler un peu vagues, ce qui s'explique par le fait que vous disposez de plus de liberté de conception de votre interface au niveau du firmware. Dès lors que l'une de ces normes est exécutée à des vitesses de transmission rapides, elle est susceptible d'entraîner de la diaphonie, tout comme les normes de signalisation à haute vitesse.

Toutefois, comme vous disposez d'une grande souplesse dans vos spécifications, vous pouvez généralement concevoir des pistes à faible inductance et réduire la diaphonie inductive. Vous bénéficiez d'une certaine flexibilité pour le routage de ces signaux et pour les rendre très faciles à utiliser au sein de votre prochain système numérique.

Lors de l'élaboration de systèmes numériques avec des normes de signalisation communes, vous pouvez tenir compte des différences entre I2C, SPI et UART grâce aux règles de conception d'Altium Designer®. Le gestionnaire d'empilements de couches et le solveur de champ 3D intégré de Simberianutilisent la géométrie de votre carte et la géométrie des traces pour extraire les éléments parasites et la capacitance de votre bus dans vos lignes de signaux.

En permettant aux concepteurs de travailler de chez eux et d'atteindre des niveaux d'efficacité sans précédent, la solution Altium Designer disponible sur Altium 365 offre à l'industrie électronique un degré d'intégration inégalé qui était jusqu'à présent réservé au secteur informatique.

Tout cela n'est qu'un aperçu des possibilités offertes par Altium Designer sur Altium 365. Vous pouvez consulter la page produit pour obtenir une description plus détaillée des fonctionnalités ou visionner l'un des webinaires à la demande (en anglais).

SPI vs I2C vs UART : Différences et comparaison | Altium (2024)
Top Articles
63 Journal Prompts for Anxiety & Tips for Getting Started
Racism and Mental Health - HelpGuide.org
Evil Dead Movies In Order & Timeline
Hotels Near 6491 Peachtree Industrial Blvd
Busted Newspaper Zapata Tx
Breaded Mushrooms
How Many Cc's Is A 96 Cubic Inch Engine
How to know if a financial advisor is good?
Craigslist Pet Phoenix
My Vidant Chart
Hallelu-JaH - Psalm 119 - inleiding
Identogo Brunswick Ga
Moonshiner Tyler Wood Net Worth
ᐅ Bosch Aero Twin A 863 S Scheibenwischer
Crossword Nexus Solver
Canvas Nthurston
Dtab Customs
Why do rebates take so long to process?
Wnem Tv5 Obituaries
Craigslist Maryland Trucks - By Owner
Craigslist Rentals Coquille Oregon
Evil Dead Rise Showtimes Near Sierra Vista Cinemas 16
Enduring Word John 15
Angel Haynes Dropbox
Jersey Shore Subreddit
Keshi with Mac Ayres and Starfall (Rescheduled from 11/1/2024) (POSTPONED) Tickets Thu, Nov 1, 2029 8:00 pm at Pechanga Arena - San Diego in San Diego, CA
Stickley Furniture
Guinness World Record For Longest Imessage
Busch Gardens Wait Times
Earthy Fuel Crossword
Grandstand 13 Fenway
A Man Called Otto Showtimes Near Carolina Mall Cinema
Www Violationinfo Com Login New Orleans
Tenant Vs. Occupant: Is There Really A Difference Between Them?
4083519708
Hotels Near New Life Plastic Surgery
Oxford Alabama Craigslist
Eastern New Mexico News Obituaries
Überblick zum Barotrauma - Überblick zum Barotrauma - MSD Manual Profi-Ausgabe
Craigslist Putnam Valley Ny
Noaa Marine Weather Forecast By Zone
Satucket Lectionary
Wisconsin Volleyball titt*es
Waco.craigslist
Lebron James Name Soundalikes
Stoughton Commuter Rail Schedule
Used Sawmill For Sale - Craigslist Near Tennessee
Besoldungstabellen | Niedersächsisches Landesamt für Bezüge und Versorgung (NLBV)
Autozone Battery Hold Down
Tyrone Dave Chappelle Show Gif
sin city jili
BYU Football: Instant Observations From Blowout Win At Wyoming
Latest Posts
Article information

Author: Errol Quitzon

Last Updated:

Views: 5616

Rating: 4.9 / 5 (79 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Errol Quitzon

Birthday: 1993-04-02

Address: 70604 Haley Lane, Port Weldonside, TN 99233-0942

Phone: +9665282866296

Job: Product Retail Agent

Hobby: Computer programming, Horseback riding, Hooping, Dance, Ice skating, Backpacking, Rafting

Introduction: My name is Errol Quitzon, I am a fair, cute, fancy, clean, attractive, sparkling, kind person who loves writing and wants to share my knowledge and understanding with you.