mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS 485, uC und PC


Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

da ich mehrere AVR´s (z.B. ATMega16) miteinander verbinden will habe
ich mich heute über die "RS485-Norm" informiert und bin zu dem
Entschluss gekommen, dass dieser Feldbus für mich in Frage kommt. Das
es kein festes Protokoll gibt weis ich auch, ich bin auf eine Seite
gestossen welche ein mögliches Protokoll beschreibt - Ok. Dort werden
zur Übertagung 9 Bits genutzt, wobei das 9 Bit als "Flag" dient um
den Slaves mitzuteilen das es sich um eine Adresse (des jeweiligen
Slaves) handelt. Das erscheint mir auch sehr logisch, nun sollen aber
bei mir die Slaves die Mikrocontroller sein und, ein PC der Master.

Daszu meine Fragen:

1.) Kann man die RS232-Schnittstelle eines PC´s benutzen und diese an
den RS485-Bus "klemmen" (evtl. über einen Baustein MAX485 etc.)?

2.) Wenn ja, ist das überhaupt Programmierbar, denn soweit ich weiss
kann man keine 9 Datenbits in den I/O-Routinen definieren.

Vielen Dank

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erst runter von RS232 auf TTL (MAX232), dann rauf auf RS485 (MAX485,
oder...) und RTS an das Enable vom RS485 Transmitter. Soweit die
Hardware. Braucht aber irgendwoher Strom.

Der Async-Controller vom PC kann zwar offiziell keine 9 Bits, aber
dafür kann er Mark/Space Parity. Solange Du also nicht noch ein echtes
Parity-Bit oben drauflegen willst, solltest Du mit geschickter
Parity-Programmierung zwischen Daten und Adressen unterscheiden können.

Autor: Detlef Wilken (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Sven

Wegen dem Protokoll brauchst Du Dir wohl keine Gedanken machen. Falls
das Protokoll, welches Du gefunden hast, Deinen Ansprüchen gerecht
wird, dann gut. Es ist aber auch keine große Kunst, ein eigenes
Protokoll zu entwickeln. Ich habe für mein RS485-Netzwerk ein eigenes,
sehr einfaches Protokoll entwickelt.

Das Problem bzgl. RS232 ist schon etwas komplexer. Ich selbst stand
auch vor dieser Frage und habe mich intensiv mit der Schnittstelle
beschäftigt. Ich habe aber dann eine andere Lösung gewählt
(Zusätzlicher Controller zwischen RS232 und RS485). Damit habe ich zwar
ein weiteres Protokoll, habe aber die Problematik mit Mark/Space, 9-Bit
Adresse, Endekennung... umgangen

Gruß
Detlef

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.