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

I2C vs SPI :Différences à connaître

Vous concevez un projet et il est crucial de choisir entre I2C et SPI ? Mais vous ne savez pas lequel choisir ? Si oui, nous vous aiderons à choisir celle qui convient le mieux à votre projet.

Tout d'abord, I2C et SPI sont des protocoles "bas de gamme". Mais ils sont faciles à utiliser et fonctionnent parfaitement pour la communication entre les puces de votre PCB.

Cependant, la sélection du mauvais protocole pour votre projet peut entraîner des résultats indésirables. Néanmoins, nous sommes là pour vous aider à comprendre la différence entre ces deux protocoles similaires.

Es-tu prêt? Commençons !

Qu'est-ce qu'un protocole SPI ?

Dans les années 1980, Motorola a développé le protocole SPI pour établir la communication entre les microcontrôleurs de l'époque avec d'autres périphériques comme l'EEPROM.

EEPROM

Ainsi, le protocole SPI utilise quatre lignes de signal pour la communication entre les pièces. Cependant, il est crucial de noter que ceux-ci n'incluent pas le sol et les lignes électriques. Voici les quatre lignes de signal actives :

A ce propos, les quatre lignes permettent à un SPI (dispositif de contrôle) maître de communiquer avec un SPI (dispositif périphérique) esclave.

Interface de protocole SPI

De plus, vous ne pouvez avoir qu'un seul contrôleur sur un bus SPI. Mais, il n'y a pas de limite au nombre de périphériques que vous pouvez ajouter. De plus, ajouter plus de périphériques signifie augmenter les lignes SS. Par conséquent, voici une illustration de la façon dont vous pouvez utiliser trois lignes SS distinctes pour contrôler différents périphériques.

Interface de protocole SPI avec plusieurs personnes asservies

De plus, lorsque le maître SPI veut communiquer avec les périphériques en envoyant ou en recevant des données, il tire la ligne SS correspondante. Par conséquent, la ligne sera en dessous. Par conséquent, la ligne SCLK s'active et est haute et basse à une fréquence définie.

De plus, le SPI maître utilise la ligne MISO pour envoyer simultanément des données et des échantillons. Gardez également à l'esprit qu'il ne peut y avoir de communication qu'entre un périphérique et le SPI maître à la fois.

Qu'est-ce qu'un I2C

Alternativement, en 1982, Philips Semiconductors (maintenant NXP Semiconductors) a développé le premier protocole I2C pour systématiser les communications entre les puces sur un PCB.

Contrairement à son homologue SCI, le protocole I2C dispose de deux lignes de communication, à l'exclusion de la terre et des lignes électriques. Ces lignes incluent :

Ainsi, vous pouvez connecter n'importe quel nombre de périphériques d'asservissement et d'agent à un bus. En outre, vous devez conserver les lignes SCL et SDA en tant que lignes à drain ouvert. Par conséquent, vos appareils n'auront qu'une seule ligne basse à la fois. De plus, vous aurez besoin d'une résistance de rappel sur vos tuyaux. De cette façon, vous pouvez ramener votre ligne vers le haut.

Interface de protocole I2C

En raison de la conception à drain ouvert du protocole I2C, vous pouvez utiliser plusieurs maîtres sur le même bus. Mais si deux appareils de contrôle commencent à communiquer simultanément, il y aura un arbitrage qui fera cesser la transmission de l'un des appareils.

Pendant ce temps, les dispositifs de contrôleur surveillent la ligne SDA pendant que la communication se produit. Ainsi, si un appareil détecte que la ligne SDA est faible lors de la transmission, il arrête d'émettre. Et cela permet à un autre appareil contrôleur de communiquer.

De plus, le dispositif I2C du contrôleur transmettra une condition START pour initier la communication. Par conséquent, la ligne SDA sera basse tandis que la ligne SCL restera haute.

Ensuite, le dispositif contrôleur transmettra une adresse de 7 bits du destinataire à qui il veut envoyer et un bit de lecture (1) ou un bit d'écriture (0). À ce stade, un appareil sur le bus ne répondra que s'il a une adresse de débit de 7 bits correspondante en rendant la ligne SDA basse.

Différences entre I2C et SPI

Le SPI et l'I2C sont similaires car ce sont tous deux des protocoles "bas de gamme". De plus, les deux protocoles manquent de la vitesse et des autres fonctionnalités dont se vantent leurs cousins ​​lourds (SATA, Ethernet, USB et autres).

Mais en ce qui concerne les principes de fonctionnement et les fonctionnalités. Examinons de plus près les différences entre les deux protocoles.

Connecteur USB

Tout d'abord, vous pouvez définir quatre modes différents sur le protocole SPI pour déterminer le fonctionnement de l'horloge. Et pour que la communication fonctionne, les dispositifs asservisseur et agent doivent utiliser le même modèle.

  1. Mode 0 :données échantillonnées sur un front d'horloge montant, l'horloge ralentit au niveau bas
  2. Mode 1 :données échantillonnées sur le front descendant de l'horloge, l'horloge ralentit au niveau bas
  3. TMode 2 :données échantillonnées sur le front d'horloge descendant, l'horloge ralentit haut
  4. Mode 3 :données échantillonnées sur un front d'horloge montant, l'horloge ralentit haut

De plus, les vitesses de transfert de données SPI peuvent aller au-delà de 10 Mbps, ce qui le rend parfait pour transférer de grandes quantités de données. Vous pouvez également trouver des protocoles SPI sur des capteurs avec des taux de mise à jour rapides comme les écrans LCD et les accéléromètres.

LCD

Alternativement, l'I2C ne peut envoyer des données que dans le paquet d'un octet à la fois. De plus, le périphérique récepteur doit accuser réception de chaque octet avec un bit ACK. De plus, le protocole I2C a trois modes avec différentes vitesses de transfert de données.

Bit ACK

Le modèle standard atteint un maximum de 100 kbps, le mode rapide plafonne à 400 kbps et le mode haut débit atteint un maximum de 3,4 Mbps. Par conséquent, le protocole I2C est nettement plus lent que le protocole SPI. Par conséquent, les protocoles I2C fonctionnent mieux dans les capteurs de température et les convertisseurs analogique-numérique.

Capteurs de température

Comparaison I2C et SPI

Le tableau ci-dessous montre en outre les différences significatives entre l'I2C et le SPI :

Max. de 112 avec adressage 7 bits
Fonctionnalité SPI I2C
Clé USB Mode push-pull Mode drain ouvert
Max. Vitesse Aucun (mais vous pouvez trouver 10 à 100 Mbps) 100 kbit/s (méthode standard)400 kbit/s (voie rapide)3,4 Mbit/s (mode haut débit)
Multi-maître Non Oui
Lignes de signalisation 4 (des appareils supplémentaires ajoutent des lignes supplémentaires) 2
Non. de périphériques Le nombre de broches disponibles pour les lignes SS sur le SPI maître est la seule limite au nombre de périphériques que vous pouvez avoir
Contrôle de flux Non Oui

Protocoles SPI vs I2C – Avantages et inconvénients

SPI 

Avantages

Inconvénients

I2C 

Avantages

Inconvénients

Facteurs à prendre en compte lors du choix entre SPI et I2C

La sélection du meilleur protocole pour votre projet va au-delà du prix. Voici donc quelques éléments à prendre en compte avant de faire votre choix :

Épingles limitées

Voici les avantages et les inconvénients des protocoles SPI et I2C :si vous n'aimez pas utiliser des microcontrôleurs avec plus de 100 broches, c'est un facteur crucial à prendre en compte. Dans ce cas, vous devez opter pour un protocole nécessitant moins de lignes pour les communications.

Puissance

En fonction de votre conception, vous souhaiterez peut-être minimiser ou maximiser la consommation d'énergie. Vous devez donc vous assurer de choisir un protocole qui correspond le mieux à vos besoins de consommation.

Vitesse

Lorsqu'il s'agit de transférer des données en quantités énormes, chaque microseconde est cruciale. Donc, si la vitesse est ce dont vous avez besoin, optez pour un protocole qui répond à vos normes de vitesse.

Taille du PCB

Il est essentiel de prendre en compte la taille de votre PCB avant de choisir un protocole. Par conséquent, vous augmenterez vos chances d'obtenir les résultats souhaités.

Choisir entre SPI et I2C

Voici les caractéristiques de chaque protocole pour vous aider à prendre la meilleure décision pour votre conception :

Fonctionnalités SPI I2C
Vitesse Si votre conception nécessite des transmissions plus rapides, le protocole SPI est le meilleur choix. Vous pouvez choisir I2C pour les conceptions d'appareils à faible vitesse
Taille du PCB Si la taille de votre PCB ne vous dérange pas, vous ne pouvez pas vous tromper avec SPI ou I2C. Si votre PCB a une taille plus petite et moins de pistes, pensez à choisir l'I2C
Épingles limitées Optez pour le protocole SPI si cela ne vous dérange pas d'ajouter des lignes supplémentaires pour la communication. Si vous n'êtes pas à l'aise avec de nombreuses pistes, alors I2C est un choix idéal.
Puissance Pour les appareils à faible consommation d'énergie, utilisez le protocole SPI Pour les appareils à consommation d'énergie plus élevée, utilisez le protocole I2C

Comprendre l'UART

Les UART sont des circuits physiques dans un microcontrôleur ou un microcontrôleur qui établissent une communication série entre les appareils des systèmes embarqués.

De plus, lorsque vous avez affaire à une communication UART, il y a toujours une communication directe entre l'émetteur UART et le récepteur UART.

UART contre I2C contre SPI

Contrairement à d'autres protocoles de communication comme SPI et I2C, l'UART est purement physique. De plus, il n'utilise pas de paradigme maître/esclave pour communiquer. Au lieu de cela, le microcontrôleur utilise deux dispositifs UART pour envoyer et recevoir des données. De plus, vous n'avez besoin que de deux fils pour la communication UART. Et les câbles aideront à transmettre les données de la broche Tx de l'émetteur à la broche Rx du récepteur.

Interface de protocole UART

Arrondir

En réalité, les protocoles SPI et I2C sont utilisés dans diverses applications. Parfois, vous pouvez vous retrouver avec des appareils dotés d'interfaces SPI et I2C sur une seule puce. Ainsi, vous n'avez pas à choisir entre les deux.

Cependant, si vous devez choisir entre les deux protocoles, le SPI est préférable pour les projets nécessitant des vitesses de transfert plus rapides. D'un autre côté, si votre microcontrôleur a des broches limitées, le protocole I2C fonctionnera mieux.

Avez-vous des questions? N'hésitez pas à nous contacter. Nous serons ravis de vous aider.


Technologie industrielle

  1. 7 bibliothèques React que vous devriez connaître
  2. Ce que vous devez savoir sur les tests d'huile de transformateur
  3. Pourquoi utiliser une self de ligne
  4. Ce que vous devez savoir sur les protections de meule
  5. Cinq choses que vous devez savoir sur les micro-outils
  6. Qu'est-ce que la conformité TAA ? 5 choses que vous devez savoir
  7. Les 9 applications d'apprentissage automatique que vous devez connaître
  8. Revêtement d'embrayage :tout ce que vous devez savoir
  9. Termes de base du jet d'eau que vous devez connaître