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.
@ 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.
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.
Schau dir die Treiber von TI wie SN65HVD23D (25MBit@160m) & SN65HVD24D(3MBit @500mm) an. Ich wuerd RS422 mit 2 Aderpaaren RS422 implementieren und mir die Umschalterei des RS485 sparen. Einfach je an das UART und gut ist.
:
Bearbeitet durch User
Würde auch 4-Draht-Verbindung nehmen. Optokoppler? Wenn es in verschiedenen Gebäuden ist ja, sonst brauchst du das eher nicht. Und wenn isolieren, dann gleich sowas: http://www.analog.com/en/products/interface-isolation/isolation/isolated-rs-485/adm2582e.html#product-overview Isolation, isolated power und Transceiver, alles drin. Genial die Teile.
> 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.
Wenn die Contorller CAN haben, denke auch den CAN Bus. Da brauchts Du nicht auf Arbitrierung zu achten und hast zumindestens einige Sicherungschichten...
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 ....
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)
> .. 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.
:
Bearbeitet durch User
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.
Es gingen auch RS232-Treiber/Empfänger mit Abschlußwiderständen an den RX-Eingängen. Galvanische Trennung mit Optokopplern schadet nie.
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?
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.
thiim schrieb: > Wie mache ich die > Arbitrierung? Unter TCP/IP wird da wohl nichts gehen :-( M. K. schrieb: > Klar, RS485/422 sind "stabiler" aber UART ist auch sehr "stabil" Und nachts ist es kälter als draußen :-( Hat der Regen die Rüben aufgeweicht?
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.
> 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.
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.
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)?
ein GND gehoert auch auf das Kabel, derwelche, der zu den Ausgaengen passt, dh der potentialgetrennte GND
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.