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
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:
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.
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
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.
Wirklich nette Erklärung, obwohl sollte es "over-sampling" sein? Ich denke, Sub-Sampling als weniger als der Zinssatz. – mtrw
Danke. Das ist genau das, wonach ich gesucht habe. – jbh
Ich bin McLovin 'es. Vielen Dank. – Coldblackice