2013-03-21 10 views
10

Was ist der Unterschied zwischen SPI und seriell? In einem Artikel, der über Interprozessor-Kommunikation spricht, heißt es, dass serielle Schnittstellen durch SPI für bessere/schnellere Kommunikation ersetzt werden? Was genau ist der Unterschied?Seriell versus SPI

Antwort

20

Das Wort "seriell" bedeutet nicht viel. Aber ich nehme an, dass Sie über traditionelle serielle Kommunikationsstandards sprechen. Was bei SPI grundsätzlich anders ist, ist, dass es synchron ist. Im Gegensatz zu beispielsweise RS-232, einem asynchronen Signalisierungsstandard.

Eine wichtige Eigenschaft der asynchronen Signalisierung ist die Baudrate, die Frequenz, mit der die Bits in einem Byte gesendet werden. Der Empfänger muss zusätzliche Arbeit leisten, um die Uhr wiederherzustellen, die vom Sender verwendet wurde. Ein typischer UART führt dies durch Unterabtastung des Signals mit einer 16-fachen Rate der Baudrate durch. Wichtig ist das Start-Bit, das den Subsampling-Takt synchronisiert. Verzögerungen zwischen Bytes können beliebig sein, der Empfänger synchronisiert sich für jedes einzelne Byte neu. Probleme mit diesem Schema sind eine Nichtübereinstimmung zwischen den Taktfrequenzen des Senders und des Empfängers und dem Taktjitter, wodurch die Baudrate effektiv begrenzt wird.

Dies ist kein Problem mit SPI, es hat eine zusätzliche Signalleitung, die das Taktsignal überträgt, so dass sowohl der Sender als auch der Empfänger den exakt gleichen Takt verwenden. Und ist daher immun gegen Fehlpaarungen und Jitter, was höhere Übertragungsraten ermöglicht. Keine Stabilitätsanforderungen in der Taktfrequenz, die Signale können einfach in Software generiert werden. Ein anderer Name für SPI ist SSI, synchrone serielle Schnittstelle. Typische vier Leitungsverdrahtung sieht wie folgt aus:

enter image description here

SCLK ist das Taktsignal. MOSI und MISO tragen die Daten, SS ist ein Chipauswahlsignal. Ein gemeinsamer Grund wird angenommen. Mehr dazu in dieser Wikipedia article. electronic.stackexchange.com ist eine gute Seite, um weitere Fragen zu stellen.

+1

Wirklich nette Erklärung, obwohl sollte es "over-sampling" sein? Ich denke, Sub-Sampling als weniger als der Zinssatz. – mtrw

+0

Danke. Das ist genau das, wonach ich gesucht habe. – jbh

+0

Ich bin McLovin 'es. Vielen Dank. – Coldblackice

0

SPI ist ein bidirektionales Datenprotokoll. Der Unterschied besteht darin, dass SPI einen Austausch von Binärdaten verwendet. Und UART verwendet ASCII, wodurch es viel langsamer Datenübertragung

0

Die previous answer ist etwas irreführend.

SPI und UART übertragen beide Binärdaten je nach Hardware als Bytes und/oder Wörter. Wie oben erläutert, ist einer synchron und einer asynchron. Beide erfordern eine zusätzliche Datenleitung, um bidirektional zu sein. ASCII ist eine übereinstimmende Interpretation der binären Daten und ist in keinem der beiden tatsächlich ein Faktor.