UART vs I2C vs SPI für Interprozessor-Kommunikation zwischen Mikrocontrollern
Ich bin untersucht eine Methode zum verbinden von zwei Mikrocontrollern. Auf der Ebene der Serialisierung an die ich denke, die Verwendung von Nano-protobuffers (http://code.google.com/p/nanopb/). Auf diese Weise kann ich codieren/decodieren von Nachrichten und senden Sie Sie zwischen zwei Prozessoren.
Grundsätzlich, einen kleinen Prozessor wäre der RPC-server, der fähig ist, mehrere Funktionen. Größere Prozessor wird dort anrufen RPCs über Nachrichten gesendet, und dann, wenn die Daten fertig ist, wird es gelesen wird es von kleineren Prozessor.
Was wären die vor - /Nachteile der Verwendung von UART, I2C oder SPI?
Nachrichten werden in das Postfach que vor dem senden.
Beste Grüße,
Drasko
InformationsquelleAutor der Frage Drasko DRASKOVIC | 2014-01-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es hängt von deinem Gesamtbedarf und wie teuer sind die pins.
I2C benötigt nur zwei pins, aber es ist langsam und Griff es mit oder ohne interrupts ist ein Schmerz, auch mit dem bauen in den peripheren Modulen.
Es ist ein master/slave-system, es ist gut für die Kontrolle vieler langsame Geräte wie temp sensoren.
Nur zwei Zeilen für alle bus-Geräte, die Auswahl erfolgt über eine I2C-Adresse im Protokoll.
Uart braucht zwei pins, es ist normalerweise schneller, leichter zu handhaben, erfordert aber (fast) die gleichen Uhren auf beiden Seiten.
Eins-zu-eins asynchronen system, kann gut sein, wenn beide Systeme braucht, um zu sein, schicken Sie manchmal von Daten ohne warten auf einen master-poll-Anfrage.
Kann auch verwendet werden, als ein bus system, aber dann brauchst du eine master/slave-Struktur oder komplexere Protokolle.
SPI braucht 3 (oder 4 mit CS) pins, es ist die Schnellste, einfach zu implementieren, auch mit DMA, niedrige cpu-Zeit, Aufwand, oft gepuffert.
Wenn Sie haben genug freie pins, die ich bevorzugen würde.
InformationsquelleAutor der Antwort jeb