Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Industrietechnik

I2C vs. SPI:Unterschiede, die Sie kennen sollten

Entwerfen Sie ein Projekt und es ist entscheidend, zwischen I2C und SPI zu wählen? Sie wissen aber nicht, welchen Sie wählen sollen? Wenn ja, helfen wir Ihnen bei der Entscheidung, welches für Ihr Projekt besser geeignet ist.

Zunächst einmal sind I2C und SPI „Low-End“-Protokolle. Aber sie sind einfach zu verwenden und funktionieren perfekt für die Kommunikation zwischen Chips auf Ihrer Leiterplatte.

Die Auswahl des falschen Protokolls für Ihr Projekt kann jedoch zu unerwünschten Ergebnissen führen. Trotzdem sind wir hier, um Ihnen zu helfen, den Unterschied zwischen diesen beiden ähnlichen Protokollen zu verstehen.

Sind Sie bereit? Fangen wir an!

Was ist ein SPI-Protokoll?

In den 1980er Jahren entwickelte Motorola das SPI-Protokoll, um die Kommunikation zwischen den damaligen Mikrocontrollern mit anderen Peripheriegeräten wie EEPROM herzustellen.

EEPROM

Das SPI-Protokoll verwendet also vier Signalleitungen für die Kommunikation zwischen Teilen. Es ist jedoch wichtig zu beachten, dass diese nicht die Erd- und Stromleitungen enthalten. Hier sind die vier aktiven Signalleitungen:

In diesem Sinne ermöglichen die vier Leitungen einem Master-SPI (Steuergerät) die Kommunikation mit einem Slave-SPI (Peripheriegerät).

SPI-Protokollschnittstelle

Darüber hinaus können Sie nur ein Controller-Gerät an einem SPI-Bus haben. Die Anzahl der Peripheriegeräte, die Sie hinzufügen können, ist jedoch unbegrenzt. Außerdem bedeutet das Hinzufügen weiterer Peripheriegeräte eine Erhöhung der SS-Leitungen. Daher ist hier eine Veranschaulichung, wie Sie drei separate SS-Leitungen verwenden können, um verschiedene Peripheriegeräte zu steuern.

SPI-Protokollschnittstelle mit mehreren versklavten Personen

Wenn der Master-SPI mit den Peripheriegeräten kommunizieren möchte, indem er Daten sendet oder empfängt, zieht er außerdem die passende SS-Leitung. Folglich wird die Linie unten sein. Daher wird die SCLK-Leitung aktiviert und ist bei einer festgelegten Frequenz hoch und niedrig.

Zusätzlich verwendet der Master-SPI die MISO-Leitung, um Daten und Proben gleichzeitig zu senden. Denken Sie auch daran, dass jeweils nur eine Kommunikation zwischen einem Peripheriegerät und dem Master-SPI stattfinden kann.

Was ist ein I2C

Alternativ entwickelte Philips Semiconductors (jetzt NXP Semiconductors) 1982 das erste I2C-Protokoll, um die Kommunikation zwischen Chips auf einer Leiterplatte zu systematisieren.

Im Gegensatz zu seinem SCI-Pendant hat das I2C-Protokoll zwei Kommunikationsleitungen – mit Ausnahme der Masse- und Stromleitungen. Diese Zeilen beinhalten:

Sie können also eine beliebige Anzahl von Enslaver- und Agent-Geräten an einen Bus anschließen. Außerdem müssen Sie sowohl die SCL- als auch die SDA-Leitungen als Open-Drain-Leitungen belassen. Infolgedessen haben Ihre Geräte jeweils nur eine niedrige Leitung. Außerdem benötigen Sie einen Pull-up-Widerstand an Ihren Rohren. Auf diese Weise können Sie Ihre Schnur wieder hochziehen.

I2C-Protokollschnittstelle

Aufgrund des Open-Drain-Designs des I2C-Protokolls können Sie mehrere Master auf demselben Bus verwenden. Wenn jedoch zwei Steuergeräte gleichzeitig mit der Kommunikation beginnen, kommt es zu einer Arbitrierung, die dazu führt, dass eines der Geräte die Übertragung beendet.

Währenddessen überwachen die Controller-Vorrichtungen die SDA-Leitung, während eine Kommunikation stattfindet. Wenn also ein Gerät feststellt, dass die SDA-Leitung während des Sendens niedrig ist, hört es auf zu senden. Und dies ermöglicht einem anderen Controller-Gerät zu kommunizieren.

Außerdem sendet das Controller-I2C-Gerät eine START-Bedingung, um die Kommunikation einzuleiten. Folglich ist die SDA-Leitung niedrig, während die SCL-Leitung hoch bleibt.

Dann überträgt das Steuergerät eine 7-Bit-Adresse des Empfängers, an den es senden möchte, und ein Lesebit (1) oder Schreibbit (0). An diesem Punkt antwortet ein Gerät auf dem Bus nur, wenn es eine passende Adresse mit 7-Bit-Rate hat, indem es die SDA-Leitung niedrig macht.

Unterschiede zwischen I2C und SPI

Sowohl SPI als auch I2C sind ähnlich, da sie beide „Low-End“-Protokolle sind. Außerdem fehlen beiden Protokollen die Geschwindigkeit und andere Funktionen, die ihre schwergewichtigen Cousins ​​(SATA, Ethernet, USB und andere) aufweisen.

Aber wenn es um die Arbeitsprinzipien und Funktionen geht. Sehen wir uns die Unterschiede zwischen den beiden Protokollen genauer an.

USB-Anschluss

Zunächst einmal können Sie im SPI-Protokoll vier verschiedene Modi einstellen, um zu bestimmen, wie die Uhr funktioniert. Und damit die Kommunikation funktioniert, müssen die Enslaver- und Agent-Geräte dasselbe Modell verwenden.

  1. Modus 0:Daten werden an einer steigenden Taktflanke abgetastet, Takt ist im Leerlauf niedrig
  2. Modus 1:Daten werden bei fallender Taktflanke abgetastet, Takt ist im Leerlauf niedrig
  3. TMode 2:Daten auf fallender Taktflanke abgetastet, Takt im Leerlauf hoch
  4. Modus 3:Daten werden an einer steigenden Taktflanke abgetastet, Takt ist im Leerlauf hoch

Darüber hinaus können SPI-Datenübertragungsgeschwindigkeiten über 10 Mbit/s hinausgehen, was es perfekt für die Übertragung großer Datenmengen macht. Außerdem finden Sie SPI-Protokolle auf Sensoren mit schnellen Aktualisierungsraten wie LCDs und Beschleunigungsmessern.

LCD

Alternativ kann der I2C jeweils nur Daten im Ein-Byte-Paket senden. Außerdem muss das empfangende Peripheriegerät jedes Byte mit einem ACK-Bit bestätigen. Darüber hinaus verfügt das I2C-Protokoll über drei Modi mit unterschiedlichen Datenübertragungsgeschwindigkeiten.

ACK-Bit

Das Standardmodell erreicht maximal 100 Kbit/s, der Fast-Modus liegt bei 400 Kbit/s und der High-Speed-Modus bei 3,4 Mbit/s. Daher ist das I2C-Protokoll deutlich langsamer als das SPI-Protokoll. Daher funktionieren I2C-Protokolle am besten in Temperatursensoren und Analog-Digital-Wandlern.

Temperatursensoren

Vergleich von I2C und SPI

Die folgende Tabelle zeigt weiter die signifikanten Unterschiede zwischen I2C und SPI:

Funktion SPI I2C
Pin-Laufwerk Push-Pull-Modus Open-Drain-Modus
Max. Geschwindigkeit Keine (aber Sie können 10–100 Mbit/s finden) 100 Kbit/s (Standardmethode)400 Kbit/s (Fast Way)3,4 Mbit/s (Hochgeschwindigkeitsmodus)
Multimaster Nein Ja
Signalleitungen 4 (zusätzliche Geräte fügen zusätzliche Leitungen hinzu) 2
Nein. von Peripheriegeräten Die Anzahl der Pins, die für SS-Leitungen auf dem Master-SPI verfügbar sind, ist die einzige Grenze für die Anzahl der Peripheriegeräte, die Sie haben können max. von 112 mit 7-Bit-Adressierung
Flusskontrolle Nein Ja

SPI vs. I2C-Protokolle – Vor- und Nachteile

SPI 

Vorteile

Nachteile

I2C 

Vorteile

Nachteile

Faktoren, die Sie bei der Wahl zwischen SPI und I2C berücksichtigen sollten

Die Auswahl des besten Protokolls für Ihr Projekt geht über den Preis hinaus. Also, hier sind ein paar Dinge, die Sie beachten sollten, bevor Sie Ihre Wahl treffen:

Limitierte Pins

Hier sind die Vor- und Nachteile sowohl des SPI- als auch des I2C-Protokolls:Wenn Sie nicht gerne Mikrocontroller mit mehr als 100 Pins verwenden, ist dies ein entscheidender Faktor, den Sie berücksichtigen sollten. In diesem Fall sollten Sie sich für ein Protokoll entscheiden, das weniger Leitungen für die Kommunikation benötigt.

Macht

Abhängig von Ihrem Design möchten Sie möglicherweise den Stromverbrauch minimieren oder maximieren. Sie müssen also sicherstellen, dass Sie ein Protokoll wählen, das Ihren Verbrauchsanforderungen am besten entspricht.

Geschwindigkeit

Bei der Datenübertragung in enormen Mengen kommt es auf jede Mikrosekunde an. Wenn Sie also Geschwindigkeit brauchen, entscheiden Sie sich für ein Protokoll, das Ihren Geschwindigkeitsstandards entspricht.

PCB-Größe

Es ist wichtig, die Größe Ihrer Leiterplatte zu berücksichtigen, bevor Sie sich für ein Protokoll entscheiden. Folglich erhöhen Sie Ihre Chancen, wünschenswerte Ergebnisse zu erzielen.

Die Wahl zwischen SPI und I2C

Hier sind die Merkmale der einzelnen Protokolle, die Ihnen dabei helfen, die beste Entscheidung für Ihr Design zu treffen:

Funktionen SPI I2C
Geschwindigkeit Wenn Ihr Design Übertragungen mit höherer Geschwindigkeit erfordert, ist das SPI-Protokoll die beste Wahl. Sie können I2C für Designs für langsame Geräte wählen
PCB-Größe Wenn Sie sich nicht um die Größe Ihrer Leiterplatte kümmern, können Sie weder mit SPI noch mit I2C etwas falsch machen. Wenn Ihr PCB eine kleinere Größe und weniger Leiterbahnen hat, sollten Sie die Wahl des I2C in Erwägung ziehen
Limitierte Pins Entscheiden Sie sich für das SPI-Protokoll, wenn es Ihnen nichts ausmacht, zusätzliche Leitungen für die Kommunikation hinzuzufügen. Wenn Sie mit vielen Tracks nicht zufrieden sind, ist I2C die ideale Wahl.
Macht Verwenden Sie für Geräte mit geringerem Stromverbrauch das SPI-Protokoll Verwenden Sie für Geräte mit höherem Stromverbrauch das I2C-Protokoll

UART verstehen

UARTs sind physikalische Schaltungen in einem integrierten oder Mikrocontroller, die eine serielle Kommunikation zwischen Geräten in eingebetteten Systemen herstellen.

Auch bei der UART-Kommunikation findet immer eine direkte Kommunikation zwischen dem UART-Sender und dem UART-Empfänger statt.

UART vs. I2C vs. SPI

Im Gegensatz zu anderen Kommunikationsprotokollen wie SPI und I2C ist UART rein physikalisch. Außerdem verwendet es kein Master/Slave-Paradigma zur Kommunikation. Stattdessen verwendet der Mikrocontroller zwei UART-Geräte zum Senden und Empfangen von Daten. Außerdem benötigen Sie nur zwei Drähte für die UART-Kommunikation. Und die Kabel helfen dabei, Daten vom Tx-Pin des Senders zum Rx-Pin des Empfängers zu übertragen.

UART-Protokollschnittstelle

Aufrundung

In der Realität werden die SPI- und I2C-Protokolle in verschiedenen Anwendungen verwendet. Manchmal finden Sie sich möglicherweise mit Geräten wieder, die über SPI- und I2C-Schnittstellen auf einem Chip verfügen. Sie müssen sich also nicht zwischen den beiden entscheiden.

Wenn Sie sich jedoch zwischen den beiden Protokollen entscheiden müssen, ist SPI besser für Projekte geeignet, die schnellere Übertragungsgeschwindigkeiten benötigen. Wenn Ihr Mikrocontroller andererseits begrenzte Pins hat, würde das I2C-Protokoll besser funktionieren.

Haben Sie Fragen? Fühlen Sie sich frei uns zu kontaktieren. Wir helfen Ihnen gerne weiter.


Industrietechnik

  1. 7 React-Bibliotheken, die Sie kennen sollten
  2. Was Sie über die Prüfung von Transformatoröl wissen sollten
  3. Warum Sie eine Netzdrossel verwenden sollten
  4. Was Sie über Schleifscheibenschutz wissen sollten
  5. 5 Dinge, die Sie über Mikrotools wissen sollten
  6. Was ist TAA-Compliance? 5 Dinge, die Sie wissen sollten
  7. Die 9 maschinellen Lernanwendungen, die Sie kennen sollten
  8. Kupplungsbelag:Alles, was Sie wissen sollten
  9. Grundlegende Wasserstrahlbegriffe, die Sie kennen sollten
  10. Was ist Rändeln? Hier ist, was Sie wissen sollten