www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS485 Multimaster


Autor: Olli (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe mir eine kleines Netzwerk von µC (AtMega) und einem PC 
aufgebaut (s.Anhang). Nun sende ich beispielsweise folgende Befehl:
&0199;
dabei dient das " & "- und das " ; "-Zeichen las Steuerzeichen.
"01" soll die den ersten µC ansprechen und "99" ist die Botschaft.
Wenn ich diesen Befehl vom PC aus über die RS232 Schnittstelle schicke, 
dann wird dieses Signal im Umsetzer in das RS485 Signal gewandelt und an 
die µCs geschickt. Das funktioniert soweit auch ganz gut.
Der Umsetzter ist mit einem Max488 aufgebaut, muss also beim Senden und 
Empfangen nicht enabled werden.
Die µC sind mit einem MAX489 aufgebaut und der Eingang ist dauerhaft 
enabeld, wohingegen der Ausgang erst beim Senden enabled wird.
Also ich kann vom PC aus Befehle an die einzelnen µC schicken und diese 
führen die Befehle aus und können mir auch antworten (RS485 -> RS232).
Jetzt kommt mein Problem: Lasse ich ein µC einen Befehl senden, welcher 
von einem anderm µC ausgeführt werden soll, kommt dieser Befehl 
irgendwie nicht an. Ich "lausche" mit meinem PC auf dem BUS und sehe, 
dass der 1. µC zwar die korrekten Befehle senden, der 2. µC aber diese 
nicht empfängt.
Dabei habe ich die UART-Schnittstelle auf den µC so konfiguriert, dass 
diese interruptgesteuert sind. Beim Senden von µC zu µC, empfängt der 
"empfänger µC" noch nicht mal ein einziges Zeichen, welches ich teste 
indem ich in der Empfgangs-Interuptroutine versuche, eine LED ein oder 
auszuschalten, wenn ein Zeichen empfangen wird. Beim Senden vom PC aus 
klappt das ohne Probleme.
Vielleicht habt ihr ja ne Idee, was da falsch läuft.

Gruß
Olli

Autor: Marco S. (masterof)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist das als 4-Draht-Bus oder als 2-Draht-Bus aufgebaut?

Gruß Marco

Autor: Dieter Werner (dds5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marco Schwan schrieb:
> ist das als 4-Draht-Bus oder als 2-Draht-Bus aufgebaut?
>
> Gruß Marco

Yup, das klappt nur mit Zweidraht (Halbduplex) Bus, da sich sonst die 
slaves nicht gegenseitig hören können.

Autor: Olli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
es handelt sich um eine vier draht leitung.
Aber wieso ist es nur mit zwei draht möglich? verstehe ich nicht?

Olli

Autor: Olli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aus WIKI

Halbduplex (HX), auch Semiduplex genannt bedeutet wechselseitiger 
Betrieb. Hierbei können Informationen in beide Richtungen fließen, 
allerdings nicht gleichzeitig, z. B. Amateurfunk.
Vollduplex (DX, manchmal auch FDX) ist der gleichzeitige Betrieb. Es 
lässt die Übertragung der Informationen in beide Richtungen zu gleicher 
Zeit zu, z. B. Telefonie.

und vier draht ist doch Full duplex oder?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal mal ein Bild von den Leitungen mitsamt deren Bezeichnung. Kein 
Schemabild wie oben. Dann sollte klar werden, warum die µCs nicht 
miteinander können.

4-Draht RS485 ist für Multimaster nicht einsetzbar, da schon von der 
Verdrahtung her genau ein Master entsteht. Bei dir der PC. Du schreibst 
ja selbst, dass die µCs anders angebunden sind als der PC, anderer 
Transceiver, mit/ohne Enable.

Vergiss den Multimaster-Zirkus und bleib bei Single-Master. Wenn 
Multimaster absolut nötig ist, dann 2-Draht.

Autor: Weingut Pfalz (weinbauer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
überleg doch mal, bei Vollduplex, also 4-draht hast Du
quasi einen Kanal zum µC und einen zurück.
Der µC hat datenmäßig einen Eingang und einen Ausgang,
wenn Du nun auf den Ausgang des µC etwas sendest,
was empfängt er dann? ... nix, daher bei
Multimaster auf 485 nur Halbduplex.
Das bring nun aber auch ein etwas komplizierteres
Protokoll ins Spiel, weil ... wie verhinderst Du,
dass 2 Master gleichzeitig senden?
Sollte das dennoch passieren wie löst Du den Konflikt?

Ist nicht ganz trivial, aber machbar.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.