Max. 200 Meter Bussystem

Gast #4614881
Lesenswert?

Guten Abend,

ich möchte zwei Mikrocontroller miteinander kommunizieren lassen.
Keiner der beiden ist ein wirklicher "Master". Rund 150 Meter liegen 
zwischen beiden Teilnehmern, trotzdem kommt Funk nicht in Frage.

Ich dachte mir, ich mache das ganze mit Uart (RS-422) über Ethernetkabel 
(differenzielles Signal und natürlich noch Optokoppler dazu).

Leider habe ich keine Ahnung von Bussystemen. Kann mir jemand ein paar 
Tipps geben? Wird das überhaupt so funktionieren?

Beste Grüße.
#4614899
Lesenswert?

@ thiim (Gast)

>ich möchte zwei Mikrocontroller miteinander kommunizieren lassen.

Wenn es nur 2 sind, ist das kein wirklicher Bus.

>Ich dachte mir, ich mache das ganze mit Uart (RS-422) über Ethernetkabel
>(differenzielles Signal und natürlich noch Optokoppler dazu).

Kann man machen.

>Leider habe ich keine Ahnung von Bussystemen. Kann mir jemand ein paar
>Tipps geben? Wird das überhaupt so funktionieren?

Sicher. Nimm einfach den UART.
#4614903
Lesenswert?

Welche Baudrate soll es mal werden?

Generell würde ich eine symmetrische Verbindung machen. Das kann im 
einfachsten Fall eine 2-adrige Leitung sein, also wie RS-485. Dieser 
Verbindungstyp ist störunempfindlich weil Telefonleitungen, die ja 
durchaus mehrere Kilometer lang sind, genau so aufgebaut sind, ebenso 
der CAN-Bus. Dabei kommt es am Ende der Leitung nur auf den 
Spannungsunterschied zwischen den Leitungen an ob das High oder Low ist. 
Und eine entsprechende galv. Trennung kricht man damit auch hin, wenn 
man die den überhaupt braucht. Generell kann man RS-485 je nach Speed 
diverse Kilometer lang auslegen.
Gast #4615116
Lesenswert?

> Welche Baudrate soll es mal werden?

Darüber habe ich mir noch wenig Gedanken gemacht, aber wirklich viele 
Daten werden es nicht sein, die ich versenden muss.

> also wie RS-485.

Das dachte ich mir auch. Rs422 ist ja, so wie ich es verstanden habe, 
lediglich eine Erweiterung der RS485. Im letzteren liegt Rx und Tx auf 
dem selben verdrillten Aderpaar, bei RS422 sind es 4 Leitungen statt 2.


Ich schwanke gerade zwischen folgenden ICs:
SN65HVD24D
ADM2582E

Wobei ich sogar eher zum ADM2582E/ADM2587E tendiere. Dort ist ja in der 
Tat alles drinn was ich möchte. Ich müsste es nur noch an den UART 
packen.
Warum wird im Datenblatt eigentlich von RS485 geredet, obwohl Rx und Tx 
vorhanden?

Beste Grüße.
#4615152
Lesenswert?

thiim schrieb:
> Wobei ich sogar eher zum ADM2582E/ADM2587E tendiere. ....
> Warum wird im Datenblatt eigentlich von RS485 geredet, obwohl Rx und Tx
> vorhanden?

In der Zusammenfassung bzw. im Datenbladl steht auch RS-422.

Features and Benefits
- Isolated RS-485/RS-422 transceiver, configurable as half or full 
duplex
....

Applications
- Isolated RS-485/RS-422 interfaces
....
#4615185
Lesenswert?

Uwe B. schrieb:
> Wenn die Contorller CAN haben, denke auch den CAN Bus. Da brauchts Du
> nicht auf Arbitrierung zu achten und hast zumindestens einige
> Sicherungschichten...

Hm, bin zwar CAN-Fan, aber hier bringt keine Vorteile. Hauptvorteil 
Multimaster entfällt (nur 2 Teilnehmer), Bandbreite ist deutlich 
geringer als bei RS422 (schlapper rezessiver Pegel, ack-timing, 
overhead, halb-duplex)
#4615360
Lesenswert?

> .. Bandbreite (von CAN) ist deutlich geringer als bei RS422 ..

Man muss auch RS422 nicht mit der maximalen Geschwindigkeit laufen 
lassen.

Man sollte RS422 auch nicht mit CAN vergleichen. CAN ist schon ein 
Protokol, das hat einiges vorgegeben, das man mag oder nicht. Waehrend 
RS422 nur eine physikalische Spezifikation ist, ohn ein Bit zu 
definieren.

Schlusssendlich bestimmen das Medium und die Treiber die maximal 
moegliche Bit Rate.
#4615374
Lesenswert?

Oh D. schrieb:
>> .. Bandbreite (von CAN) ist deutlich geringer als bei RS422 ..
>
> Man muss auch RS422 nicht mit der maximalen Geschwindigkeit laufen
> lassen.
Aber man kann :-)

> Man sollte RS422 auch nicht mit CAN vergleichen. CAN ist schon ein
> Protokol, das hat einiges vorgegeben, das man mag oder nicht. Waehrend
> RS422 nur eine physikalische Spezifikation ist, ohn ein Bit zu
> definieren.
> Schlusssendlich bestimmen das Medium und die Treiber die maximal
> moegliche Bit Rate.

Beim CAN eben nicht, das Ack muss in den dafür vorgesehenen Zeitschlitz 
passen und da fängt es an spannend zu werden bei längerer Leitung. 
Stärkere Treiber helfen nicht gegen Signallaufzeiten. 5ns/m machen bei 
100m eben schon 500ns -> 1MBit geht bei CAN und 100m eben nicht. Bei 
RS485/422 spielt das keine Rolle, deshalb deutlich höhere mögliche 
Datenraten und Entfernungen.
Klar nimmt einem der CAN-Controller Arbeit ab bei der Sicherung der 
Übertragung. Aber das ist mit CRC auch leicht möglich, es reicht ja i.a. 
zu erkennen, dass irgendwas beschädigt wurde. Daten neu anfordern, 
fertig.

Der Hauptvorteil ist und bleibt die einfache Vernetzbarkeit, und genau 
das wird hier überhaupt nicht benötigt.
Gast #4615466
Lesenswert?

Danke für eure Hilfe!

> Es gingen auch RS232-Treiber/Empfänger mit Abschlußwiderständen an den
> RX-Eingängen. Galvanische Trennung mit Optokopplern schadet nie.

Bislang sieht es so aus als würde ich den ADM2582E nehmen.

Da keiner der beiden Teilnehmer wirklich der "Master" ist, bin ich am 
überlegen wie ich die Busbelegung realisiere. Wie mache ich die 
Arbitrierung?
#4615479
Lesenswert?

thiim schrieb:
> Darüber habe ich mir noch wenig Gedanken gemacht, aber wirklich viele
> Daten werden es nicht sein, die ich versenden muss.

Die Menge der Daten sagt nichts über die erforderliche Datenrate aus ;)

OK, wenn dir 9600 oder 19200 Baud zum Beispiel reichen dann würde ich an 
deiner Stelle ernsthaft über eine läppische UART-Verbindung nachdenken. 
Klar, RS485/422 sind "stabiler" aber UART ist auch sehr "stabil" und 
wenn es nicht sehr schnell sein muss kommt man damit auch sehr weit, 
deine 200m schafft man locker problemlos damit.
Gast #4615494
Lesenswert?

thiim schrieb:
> Ich dachte mir, ich mache das ganze mit Uart (RS-422) über Ethernetkabel
> (differenzielles Signal und natürlich noch Optokoppler dazu).

Wenn Du die beiden 120 Ohm-Abschlusswiderstände nicht vergisst, dann 
hast Du mit dieser Konfiguration selbst bei 250 kBaud noch reichlich 
Reserve.
Gast #4615596
Lesenswert?

> Unter TCP/IP wird da wohl nichts gehen :-(

Naja, von den 8 Leitungen sind bislang nur 4 belegt (A und B, X und Y).
Andererseits ist UART vollduplexfähig (hat ja ein eigenes Sende- und
Empfangsbuffer), wodurch ich eine Arbitrierung bei zwei Teilnehmern auch 
gar nicht brauche, richtig?

Ich dachte kurzzeitig an ein data ready / data accepted Signal, aber das 
würde auch einen weiteren ADM2582E erfordern.
Gast #4615697
Lesenswert?

Prinzipiell wäre auch meine erste Wahl in so einem Fall RS485 (RS422 
wenn keiner Master spielen kann/will).

thiim schrieb:
> Bislang sieht es so aus als würde ich den ADM2582E nehmen.

Ist aber wahrscheinlich nicht die beste Wahl für dein Anliegen, weil 
viel zu schnell. Slew rate limited Typen wie MAX3082 oder MAX3072 sind 
da besser. Aber wenn du wirklich die galvanisch Trennung brauchst, dann 
nimm lieber den ADM2587E vom selben Datenblatt. Grund, die schnellen 
Flanken sind es die die Reflexionen verursachen. Und da du ja keine 
Hochgeschwindigkeitsübertragung brauchst....

Selbst schon getestet mit ca. 250m Stern/Stich/Stich auf Stich/... also 
wilde durcheinander Topologie, 112k/250kBaud und nicht mal verdrillten 
Kabeln mit MAX3082/72. Das Ganze noch dazu ohne Abschlusswiderstände (2x 
1/256 in den MAX) und trotzdem ziemlich saubere Signale. Wenn bei dir 
beide gleichzeitig senden, dann sind verdrillte Leitungen natürlich zu 
bevorzugen. LAN, CAT5 Kabel ist perfekt dafür, und billig.
Gast #4615832
Lesenswert?

Argv, schweres Thema.

> Grund, die schnellen Flanken sind es die die Reflexionen verursachen.

Ja, daran habe ich tatsächlich nicht gedacht.
Von der MAX308x Reihe kommt zwar der MAX3089 in Frage, aber mit dem 
ADM2587E bekomme ich alles sauber galvanisch getrennt (zudem habe ich 
nur 3.3V auf dem Board).

Nehme ich dem Kabel eigentlich ein Aderpaar für V_isoout / V_isoin und 
GND_2? Lege ich diese also auch mit auf die Leitung? (neben A/B, X/Y)?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren