Was macht SPI schneller als I2C-Protokoll [geschlossen]

8

Ich kenne die Grundlagen der I2C- und SPI-Kommunikation. Da beide synchrones Protokoll sind. Ich wollte wissen, was SPI schneller macht als I2C. Wenn ich nicht falsch mit I2C bin, können wir 400kbps benutzen, während wir in SPI 10mbps erreichen können. Ändert sich das wegen Hardware? Diese Frage wurde mir in einem der Interviews gestellt. Bitte korrigieren Sie mich, wenn ich falsch liege.

    
kapilddit 18.02.2014, 09:00
quelle

3 Antworten

9

I2C ist ziemlich involviert und unterstützt mehrere Master im Bus. Dies verursacht einen signifikanten Overhead in dem Busprotokoll, eine ACK für jedes Byte und absichtliche Verzögerungen, um den Zugriff auf den Bus zu vermitteln. Auch eine eingestellte maximale Busrate, 100 kHz in der ursprünglichen Spezifikation, 400 kHz ist heute üblich, zusätzliche 10 kHz Low-Speed- und 3,4 Mhz High-Speed-Modi, die 2012 Spezifikation definiert einen 5 Mhz Ultra-Fast-Modus.

SPI ist viel einfacher, ein einzelner Master ohne Busprotokoll über eine Chipauswahl hinaus und keine eingestellte maximale Busrate. Wenn die Distanzen kurz sind, können Sie so schnell gehen, wie Sie es wagen. Ziemlich schnell auf einer Verbindung zwischen Chips, die weniger als einen Zoll voneinander entfernt sind.

    
Hans Passant 18.02.2014, 09:54
quelle
8

Es gibt einen wichtigen Hardwareunterschied, der die Geschwindigkeit auf I2C begrenzt.

SPI: Alle Leitungen werden vom Sender sowohl hoch als auch niedrig angesteuert. Dies minimiert die Zeit, die der Draht benötigt, um die Zustände zu ändern.

I2C: Alle Leitungen sind Open-Collector, was bedeutet, dass der Sender nur die Leitung niedrig steuert. Wenn der Sender die Leitung freigibt, zieht ein Widerstand, der mit Vcc (Versorgungsspannung) verbunden ist, das Licht hoch. Aufgrund der Kapazität des Drahtes und der Komponenten geht der Draht jedoch relativ langsam auf hohe Spannung. Aus diesem Grund muss die Taktgeschwindigkeit reduziert werden, damit die Leitungen Zeit haben, sich "hoch zu bewegen".

    
DoxyLover 18.02.2014 17:23
quelle
0

Geschwindigkeiten hängen davon ab, welche Art von Board Sie verwenden und wie Ihre Hardwarelogik implementiert ist. Es gibt bestimmte Vor- und Nachteile bei der Verwendung von einem über den anderen. Die Auswahl, welcher Bustyp verwendet werden soll, hängt davon ab, welche Art von Kommunikation zwischen verschiedenen Peripheriegeräten, die Sie verbinden möchten, benötigt wird. Ссылка

    
avlamsox 18.02.2014 09:09
quelle

Tags und Links