Forum

Einloggen | Registrieren | RSS  

Carsten Wallner(R)

24.10.2008,
22:01
(editiert von Carsten Wallner
am 24.10.2008 um 22:03)
 

µCs mit RS485 - andere Topologien möglich? (Elektronik)

Hi,

nach den im sommer zunächst scheinbar gescheiterten Versuchen, 2 Atmega8535 per RS485 kommunizieren zu lassen (hws hatte mir damals geholfen) habe ich es inzwischen bei einem neuen Versuch problemlos hinbekommen: Eine lötstelle unter einer LED war gebrochen - kein Wunder, dass mir am Slave andere Zeichen binär angezeigt wurden als am Master... Bei so dämlichen Fehlern kann man sich ja wirklich blöd suchen...

Gut aber zur frage: Die RS485-Geschichte soll wie ich gelesen habe als Bus-Topologie mit keinen - oder kurzen Stichleitungen ausgeführt werden.
Gibt es ähnliche Übertragungs -und kommunikations-Verfahren, bei denen ich sternförmig bauen darf?
Ziel ist es Abfragen und Steuerkommandos von einem Master zu verschiedenen Slaves an unterschiedlichen Stellen im Haus zu senden.
In Bustopologie müsste ich entweder 4adrig (2*Daten, 2* Spannungsversorgung) kreuz und quer durchs Haus legen oder 6-Adrig "Pseudo-Sternförmig" (2*Daten hin, 2*Daten zurück und vom Master zum Nächsten, 2*Spannungsversorgung)

Welche Alternativen gibt es - oder habe ich etwas übersehen??

Bin für jeden Tipp dankbar

Gruß
Carsten

--
Vermeintliche Tippfehler in diesem Posting sind keineswegs Rechtschreibfehler sondern Vorschläge für die nächste Rächtschraiprevorm ;o)

El-Haber

25.10.2008,
11:16

@ Carsten Wallner

µCs mit RS485 - andere Topologien möglich?

Hi,
Du kannst einerseits logische Sterne und Physische Sterne unterscheiden.
Allen gemeinsam ist aber die lauflängenabhängige Kollisionserkennung - das ist ein stückchen Elektronik in Form eines Komparators, der dem Sender signalisiert, daß die Leitung belegt ist. Der Empfänger erkennt das auch und muß das Datum neu anfordern können.
Dis gilt insbesondere bei 2-Draht (differenz-Signal) oder 1-Draht (Koax), die im Sternkoppler als pseudo-Stern auf einem Bus geschalten sind.

Etwas anders bei den 4-Draht Schnittstellen (die zusätzlichen Spannungsversorgungsleitung weggerechnet).

Hier wird jeweils der Sender mit dem nächsten Empfänger verbunden (Daisy-Chain-Topologie oder Ring).
Der letzte Sender ist dann wiederum mit dem ersten Empfänger verbunden.
Der Master sendet dann in regelmäßigen Zeitabständen requests an den nachfolgenden Empfänger, der diesen dann weiterleitet, bis er wieder beim Master ankommt. Die Knoten sind mehr oder weniger gleichberechtigt, müssen bei einem einlaufenden Requenst ein Ring-Request oder Akk im Ring weitersenden.
Sie können aber auch unaufgefordert eine Nachricht weitervermitteln lassen, da jeder Knoten gleichzeitig als Relais der einlaufenden Daten dient.

Es gibt aber auch noch so ähnliche Verbindungen, die auf einem abgewandelten IIC-Bus oder CAN / Feldbus beruhen.



CU
Stef

hws(R)

E-Mail

59425 Unna,
25.10.2008,
19:05

@ Carsten Wallner

µCs mit RS485 - andere Topologien möglich?

mögliche Topologien, siehe el Haber

Aber im Normalfall - du hast nicht unendlich viele Stationen und auch kein Schloss mit 2km abgesetztem Torhäuschen - sollte auch eine RS485 funktionieren. Acuh wenn die physikalisch alle an einem Kabel hintereinander hängen.

Kollisionserkennung müsstest du doch erledigt haben. Selbst bei nur 2 Stationen.

hws

hws(R)

E-Mail

59425 Unna,
25.10.2008,
20:46
(editiert von hws
am 25.10.2008 um 21:03)


@ Carsten Wallner

Link - ähnliche Frage ...

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=70508

Lesen kann man glaub ich auch ohne Anmeldung.

Edit: oder
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=70474

oder:
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=62731
darin der Link zu free Modbus
http://freemodbus.berlios.de/
bzw die c-Source die bei den Demos dabei ist:
unter freemodbus-v1.x.xdemoAVR




hws

Carsten Wallner(R)

26.10.2008,
20:26

@ El-Haber

µCs mit RS485 - andere Topologien möglich?

Hi,

Danke für Deine Antwort!
» Du kannst einerseits logische Sterne und Physische Sterne unterscheiden.
Kannst Du dazu ein StückLesestoff empfehlen? Ich kann mir nämlich unter den Begriffen noch nicht so viel vorstellen...

Zur Kollisionserkennung: In meinem Fall wohl eher unproblematisch, da die Slaves nur quatschen dürfen, wenn der Master sie aufgerufen hat. Ein neuer Aufruf kommt erst nach abschluss der letzten Übertragung.
Das ganze passiert dann durchlaufend - die einzelnen Slaves werdenen in kurzen Zeitabständen nacheinander abgefragt, dann gehts von vorne los.

Gruß
Carsten

--
Vermeintliche Tippfehler in diesem Posting sind keineswegs Rechtschreibfehler sondern Vorschläge für die nächste Rächtschraiprevorm ;o)

Carsten Wallner(R)

26.10.2008,
20:29
(editiert von Carsten Wallner
am 26.10.2008 um 20:30)


@ hws

µCs mit RS485 - andere Topologien möglich?

Hi,

Danke für Deine Antwort und die guten Links!
» Aber im Normalfall - du hast nicht unendlich viele Stationen und auch kein
» Schloss mit 2km abgesetztem Torhäuschen - sollte auch eine RS485
» funktionieren. Acuh wenn die physikalisch alle an einem Kabel
» hintereinander hängen.
Das ist nicht meine Sorge - mich stört eher der Gedanke so viel Kabel kreuz und quer zu verlegen ;o)

» Kollisionserkennung müsstest du doch erledigt haben.
Die sit bei mir vermutlich kein Problem, da die Slaves nur quatschen dürfen, wenn der Master sie aufgerufen hat.
(Berufskrankheit ;oP)
Die einzelnen Slaves werdenen in kurzen Zeitabständen nacheinander abgefragt, dann gehts von vorne los.

Gruß
Carsten

--
Vermeintliche Tippfehler in diesem Posting sind keineswegs Rechtschreibfehler sondern Vorschläge für die nächste Rächtschraiprevorm ;o)

hws(R)

E-Mail

59425 Unna,
27.10.2008,
08:45

@ Carsten Wallner

µCs mit RS485 - andere Topologien möglich?

» .. - mich stört eher der Gedanke so viel Kabel
» kreuz und quer zu verlegen ;o)
Eine Leitung die an allen Slaves vorbeiführt. Wobei durchaus ne zweite Leitung irgendwo von der ersten abgeht. EINE Verbindung zu jedem Slave musst du scho haben (ausser bei Funk.

Aber diese Verbindungen müssen nicht alle Sernförmig vom master ausgehen.(in der Praxis jedenfalls)

hws

Carsten Wallner(R)

27.10.2008,
10:17

@ hws

µCs mit RS485 - andere Topologien möglich?

Hi,

tja, jetzt bin ich völlig durcheinander:

» Eine Leitung die an allen Slaves vorbeiführt.
Das wollte ich vermeiden - denn das hieße z.B. vom Arbeitszimmer in den Keller, vom Keller ins Wohnzimmer, vom Wohnzimmer ins Schlafzimmer...

» Wobei durchaus ne zweite
» Leitung irgendwo von der ersten abgeht.
Ist auch klar, wobei diese Stichleitungen kurz sein sollen, wie ich gelesen habe. (ich glaube maximal 5m?)
Weiterhin stand irgendwo, dass man Sterntopologien vermeiden sollte, weil sonst jede Leitung als "lange Stichleitung" betrachtet werden müsse.

» EINE Verbindung zu jedem Slave
» musst du scho haben (ausser bei Funk.
aaaaach daaaaaaarum kriegt der Slave bei mir die Telegramme vom Master nicht :oP

» Aber diese Verbindungen müssen nicht alle Sternförmig vom master
» ausgehen.(in der Praxis jedenfalls)
tja und hier hakts bei mir wieder, weil nach allem was ich gelesen habe in meinem Verständnis in diesem Satz Dein "müssen nicht" durch "dürfen nicht" oder mindestens durch "sollten nicht" ersetzt werden müsste??

Wenn ich Sternförmig verdrahten dürfte (möglichst mit mehr als 5m Leitung), wär das schon praktisch. Hatte halt gehofft, dass es irgendwelche zusätzlichen Leitungstreiber oder andere (ggf. ähnliche) Protokolle etc. gibt, die das zulassen.

Gruß
Carsten

--
Vermeintliche Tippfehler in diesem Posting sind keineswegs Rechtschreibfehler sondern Vorschläge für die nächste Rächtschraiprevorm ;o)

hws(R)

E-Mail

59425 Unna,
27.10.2008,
14:18

@ Carsten Wallner

µCs mit RS485 - andere Topologien möglich?

» Wenn ich Sternförmig verdrahten dürfte (möglichst mit mehr als 5m
» Leitung), wär das schon praktisch.

probiers halt, setz zur Not die Baudrate runter, terminiere die lange(n) Stichleitung(en). "sollte man nicht" und "geht trozdem" sind zwei verschiedene Sachen.

OK, möglichst wenig Stichleitungen - eine zum Keller und eine durch die Wohnung z.B.

» Hatte halt gehofft, dass es
» irgendwelche zusätzlichen Leitungstreiber oder andere (ggf. ähnliche)
» Protokolle etc. gibt, die das zulassen.

Du kannst natürlich vor jede Stichleitung nen µC setzen, diese über eine zweite Verbindung koppeln und die Signale per Software verteilen. So, wie das auch Ethernet Switches machen.

hws

Carsten Wallner(R)

28.10.2008,
21:14

@ hws

µCs mit RS485 - andere Topologien möglich?

Hi,

danke für Deine Antwort - gut dann werde ich das ganze mal ausprobieren - habe noch einige "Reste" Netzwerkkabel da - jeweils zu einigen Metern aufgerollt. Das bietet sich ja praktisch für solche Experimente an.

Ok nen eigenen Prozessor für jede Leitung halte ich dann doch für etwas übertrieben - ich dachte eher an Treiber mit den üblichen Anschlüssen Prozessorseitig - aber eben mehreren Ausgängen.
Ne Idee wie man das realisieren könnte hätte ich schon, aber das würde ein IC-Grab ;)

Gruß
Carsten

--
Vermeintliche Tippfehler in diesem Posting sind keineswegs Rechtschreibfehler sondern Vorschläge für die nächste Rächtschraiprevorm ;o)

hws(R)

E-Mail

59425 Unna,
29.10.2008,
08:41

@ Carsten Wallner

µCs mit RS485 - andere Topologien möglich?

» .. - ich dachte eher an Treiber mit den üblichen Anschlüssen
» Prozessorseitig - aber eben mehreren Ausgängen.

Und wie entscheidet der Treiber / der µC, WELCHER der Ausgänge nun aktiv wird. Denn die Ausgänge sind ja geichzeitig Eingänge, da bidirektional.

hws

Carsten Wallner(R)

29.10.2008,
15:58

@ hws

µCs mit RS485 - andere Topologien möglich?

Hi,

ich dachte ursprünglich daran, einfach alle Ausgänge auf "Senden" zu schalten - wer "nicht gemeint" ist, "hört weg". Und dann alle auf Empfangen zu setzen - so lange wirklich immer nur einer sendet (und zwar NUR an den Master - so ist es in meinem Fall) sollte es meiner Meinung nach möglich sein - aber einen solchen Treiber nur fürne Bastelei selber zu entwickeln macht sicher wenig Sinn...

Gruß
Carsten

--
Vermeintliche Tippfehler in diesem Posting sind keineswegs Rechtschreibfehler sondern Vorschläge für die nächste Rächtschraiprevorm ;o)

hws(R)

E-Mail

59425 Unna,
30.10.2008,
08:49

@ Carsten Wallner

µCs mit RS485 - andere Topologien möglich?

» ich dachte ursprünglich daran, einfach alle Ausgänge auf "Senden" zu

Es gibt bei der RS485 Leitung aber keine Ein / Ausgänge bzw Sende/Empfangsleitung.

Das ist EINE Leitung, an der alle Einheiten sitzen und die Einheiten müssen im Reglefall alle mithören. Nur, wenn einer was sagen will (und die Leitung nicht belegt ist) darf er auf Ausgang / Senden umschalten und seine Daten auf die Leitung geben. Dabei die Leitung ständig beobachten, ob nicht jemand anders auch sendet und damit die Übertragung stört.

hws