Mit Störungen meinte ich Fremdsignale die in das Kabel/Leitung eingekoppelt werden könnten. In der Industrie währen das z.B. große Verbraucher (Motoren mit hohem Anlaufstrom,...), Frequenzumrichter ohne geschirmte Motor-/Zuleitung,.....

Im privaten Bereich hast du z.B. elektronische Dimmer, Schaltnetzteile u.Ä. Dinge die Störungen verursachen könnten.

In der Industrie setzt man z.B. RS485 ein, da dieser Bus sehr unempfindlich gegen Störungen ist (da es ein differentieller Bus ist => http://de.wikipedia.org/wiki/Seriell...3%BCbertragung)

Der I2C wurde ursprünglich als reiner Platinenbus entwickelt (kurze Distanzen), RS485 für u.A. lange Distanzen (http://de.wikipedia.org/wiki/EIA-485 => Maximallänge = 1,2km).
Auf diese Längen sollte man achten, da man ansonsten Übertragungsstörungen bekommen kann (falsche Daten, Abbruch der Verbindung,...)
Die maximale Leitungslänge hängt auch von der Übertragungsrate ab (je schneller die Übertragung desto kürzer ist die maximal erlaubte Leitungslänge).
Bei CAN habe ich das gefunden http://www.me-systeme.de/canbus.html
Dort steht z.B. 6,7km bei 10kbit/s bis 40m bei 1Mbit/s


Ich würde für kurze Distanzen I2C bzw SPI verwenden (unter ~50cm), für lange Distanzen (z.B. 50m) bzw Orte mit hohen Störungen RS485 und dazwischen USB (mit anschließendem Wandler zu UART bzw RS232) bzw RS232.

Für I2C gibt es auch Bus-Extender (z.B. http://www.nxp.com/documents/data_sheet/P82B715.pdf). Damit kann man längere Distanzen zurücklegen bzw längere Leitungen verwenden. Der Nachteil ist das jedes IC/Modul/... das diesen I2C Bus verwendet auch einen Bus-Extender benötigt (soweit ich weiß).

Bei der Berechnung der benötigten Geschwindigkeit darfst du die Start/Stopbits, Addressierungen,... nicht vergessen.


Für Leitungslängen von unter 5m würde ich auf alle Fälle USB oder RS232 verwenden.

Je nach Anforderung musst du auch entscheiden welches Kabel du verwendest (Geschirmt, Ungeschirmt, Paare geschirmt (wie z.B. bei CAT7 Netzwerkkabel),...)

MfG Hannes