Forum: Mikrocontroller und Digitale Elektronik Bussystem Microcontroller


von Susanne (Gast)


Lesenswert?

Hallo,

ich habe einen Master Microcontroller.
Die Slave Mikrocontroller sind jeweils ca 5m voneinander entfernt 
(draußen im freien) welches Bus-system ist dafür am besten geeignet? auf 
die Geschwindigkeit kommt es dabei nicht an. (Keine Kritischen 
Anwendungen, nur Messwerte erfassen)

vielen Dank im voraus

von Lothar (Gast)


Lesenswert?

Susanne schrieb:
> Die Slave Mikrocontroller sind jeweils ca 5m voneinander

Was ist denn die Gesamtlänge?

> draußen im freien

Etwas robustes wie LIN (Eindraht) oder MODBUS/RS485 (Zweidraht)

von Susanne (Gast)


Lesenswert?

so ca. 30m ist die Gesamtlänge
würde auch RS232 gehen?

von Susanne (Gast)


Lesenswert?

wieviele UARTS werden pro Microcontroller benötigt?
einer oder zwei?

von Bernd (Gast)


Lesenswert?

Rs232 ist kein bussystem.
Da wir nicht wissen was deine controller machen, wissen wir auch nicht 
wieviele uarts du brauchst.

von HVV (Gast)


Lesenswert?

Wir wissen auch nicht welche Controller Du verwendest .....

von Susanne (Gast)


Lesenswert?

ich verwenden den Controller: AT Mega32

von HVV (Gast)


Lesenswert?

Aha!

soll das ungefähr so aussehen:

Master----5m----Slave1----5m---Slave2-->>

von Susanne (Gast)


Lesenswert?

richtig :-)

von HVV (Gast)


Lesenswert?

RS232 ist zwar kein Bussystem aber man kann einen Tokenring damit 
realisieren
wenn die Geschwindigkeit nicht sooo wichtig ist....

von 1N 4. (1n4148)


Lesenswert?

I2C oder UART im Halbduplex-Modus (TX über Dioden entkoppelt). Vorteil 
I2C: Adressierung schon inbegriffen.

: Bearbeitet durch User
von Susanne (Gast)


Lesenswert?

ist i2C kein Platinenbus? wie groß ist da die Reichweite? dachte der 
würde nur einige cm gehen...

von Bernd (Gast)


Lesenswert?

Heutzutage ist immer mehr CAN zu empfehlen.
Wird immer günstiger und hat schon viele wichtige Features spezifiziert.
Würde ich in Erwägung ziehen.
Wenn dein Controller außer für den Bus keinen U(S)ART benötigt, brauchst 
du nur einen.
Zusätzlich Transceiver deiner Wahl.

von Christian M. (chrigi001)


Lesenswert?

Susanne schrieb:
> ist i2C kein Platinenbus?
 Doch

Susanne schrieb:
> wie groß ist da die Reichweite?

Das hängt von diversen Faktoren ab, ist aber für den Vorhaben auf jeden 
Fall ungeeignet.

Am besten nimmst du eine RS-485 oder CAN. Beides wurde im Gegensatz zu 
I2C und RS-232 für genau solche Anwendungen entwickelt.

Falls du dich für eine RS-485 entscheidest, ist das oben bereits 
genannte MODBUS-Protokoll (MODBUS RTU) auch sehr zu empfehlen. Dieses 
ist ein Standard und du kannst neben deinen selbstgebauten Geräten auch 
gekaufte Geräte an den BUS hängen.

: Bearbeitet durch User
von Klaus (Gast)


Lesenswert?

Susanne schrieb:
> ist i2C kein Platinenbus? wie groß ist da die Reichweite? dachte der
> würde nur einige cm gehen...

In jedem DVI/HDMI Kabel gibt es einen I2C Bus zur Monitoridentifikation. 
Das funktioniert millionenfach auch über 5m.

MfG Klaus

von Sven L. (sven_rvbg)


Lesenswert?

Ich würde aber auch eine RS485 Schnittstelle nutzen, da einfach und 
störunanfällig. Wenn der Master seine Slaves pollt ist das ganze recht 
einfach zu realisieren.

von Mark W. (kram) Benutzerseite


Lesenswert?

Was auch interessant sein koennte, isoSPI von Linear. Habe ich kuerzlich 
einen Artikel drueber gelesen. Ist eigentlich fuer verteilte 
Batteriesysteme, geht aber ueberall wo SPI auch geht, nur dass es 
isoliert ist und sich fuer hoehere Distanzen eignet.

von Dominik B. (odysseus1710)


Lesenswert?

I2C ist meiner Meinung nach nur bedingt geeignet. Du müsstest dir 
durchrechnen, welche Kapazität deine Leitung mit den verwendeten Kabeln 
hätte. Die darf einen bestimmten Wert nicht überschreiten, dass das 
ganze noch funktioniert (das waren glaube ich um die 400pF).
Bei 30m wird das vermutlich kritisch

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

Vierdraht: 24V/GND/RS485
Zweidraht: ASi

Mark W.: isoSPI? das war mir neu. Danke1
LTC6820 kostet 4,9USD bei digikey.
1Mbps  100m  2-Draht twisted pair. Interessant...

von Timo N. (tnn85)


Lesenswert?

Sehr interessante Ideen für Bussysteme werden hier gepostet Ironie.

I2C oder SPI sind nur für Anwendungen auf kurze Distanz (Platine) oder 
mit viel Schirmung über etwas längere Distanzen gedacht. Klar könnte es 
mit einem entsprechend geschirmten Kabel (HDMI /DVI) auch über 5m 
funktionieren, aber warum nimmt man nicht gleich die dafür vorgesehenen 
Bussystem RS485 mit Modbus oder CAN?
Bei CAN bräuchte man halt für den Atmega noch einen Controller (falls 
der Atmega keinen intern hat) und Transceiver.
Bei RS485 reicht doch ein Transceiver aus. Gibts für 2€.

Aus meiner Sicht würde ich hier ganz klar auf RS485 setzen.

von asd (Gast)


Lesenswert?

SPI ist durchaus auch für 5 bis 30m geeignet wenn man darauf achet die 
rücklaufende Welle beim Sender zu Terminieren (Serien-Terminierung) und 
eine Leitung mit definiertem Wellenwiderstand nimmt. (bitte beide 
Begirffe googeln, dann gibts auch eine ausführlichere Anleitung)

Also auf der sendenen Seite (Clk,MOSI) einen 30-70 Ohm Widerstand in 
Reihe, dann auf ein verdrilltes Adernpaar einer twisted pair Leitung 
gehen (CAT5 oder einfach ein verdrilltes Adernpaar einer Telefonleitung)
Welcher Widerstand für die Serienterminierung passt kann man mit einem 
Oszilloskop überprüfen.

 Master                                                    Slave
 Pin -> 50 Ohm Widerstnad -> Verdrillte Leitung (1.Ader)  -> 
Empfänger-Pin
                    GND   -> Verdrillte Leitung (2.Ader)  -> GND

Für die Rückleitung (MISO) den Widerstand auf die rechte Seite (d.h. 
immer auf die Seite die das Signal sendet)

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Christian M. schrieb:
> Susanne schrieb:
>> ist i2C kein Platinenbus?
>  Doch

Jein. I2C wurde damals (Anfang 1980er Jahre) von Philips eingeführt, um 
damit z.B. die Komponenten in Fernsehgeräten anzusteuern. Grundig usw. 
nutzten auch die I2C-tauglichen Bausteine von Philips, z.B. Tuner, 
Videotextdecoder, usw.. Der I2C-Bus wurde aber auch auf einer 
vierpoligen Buchse aus dem Fernseher herausgeführt, um einen 
angeschlossenen Videorecorder ansteuern zu können. Ich gehe davon aus, 
dass Philips bei der Definition von I2S auch schon solche Szenarien 
bedacht hatte.

Auf Grund der recht hochohmigen Pull-Up-Widerstände, die überhaupt 
nichts mit den zu erwartenden Wellenwiderständen der 
Verbindungsleitungen zu tun haben, ist I2C eigentlich nicht für größere 
Strecken geeignet.

von interropt (Gast)


Lesenswert?

IIC geht schon, insbesondere wenns eine einmalige Bastelei ist.

Und wenn keine Vorkenntnisse vorhanden sind, was ja schon die 
Fragestellung nahelegt, würde ich nicht im Traum daran denken mich 
deshalb in die komplexen Protokolle von CAN & Co einzuarbeiten, dauert 
ja Monate bis das einwandfrei läuft...

Man könnte sich ggf. auch selbst etwas ausdenken, was zur Anwendung 
passt. Wenns nicht zeitkritisch ist kann man doch die Daten + Prüfsumme 
beliebig langsam über 2 Drähte von Station zu Station "morsen".

von Markus L. (rollerblade)


Lesenswert?

Laut TI geht mit dem P82B96 I2C bei 400kHz über mind. 20m.

: Bearbeitet durch User
von 1N 4. (1n4148)


Lesenswert?

Für I2C gibts bei NXP ganz brauchbare Bustreiber mit denen man auch 
große Strecken überbrücken kann.

https://www.mikrocontroller.net/articles/I2C_als_Hausbus

Funktioniert zuverlässig und man muß sich nicht um ein Zugriffsprotokoll 
kümmern. RS485/CAN sind natürlich robuster.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.