PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RS485 Bus wie realisieren



darwin.nuernberg
28.03.2005, 16:51
Auch hier im Forum findet man viel Theorie über den RS485 Bus.
Leider keine konkreten Infos über Praxiserfahrungen und das wie.

Für diejenigen welche damit nicht anzufangen wissen und per Zufall hierher gestolpert sind:
mit dem RS485 kann man Strecken bis zu 1500m!!! ohne zusätzlche Streckenverstärker überbrücken und bis zu 32 Geräte ansprechen
und das mit nur zwei Leitungen auch Bi-Direktional!

Hat von Euch jemand praktische Erfahrung mit diesem Profibus (2-Draht Variante)
Wie kann man dies mit dem AVR realisieren?
Reich(el)t das Treiber IC LTC485 alleine oder muß da noch mehr ran (ist ja nur ein Pegelwandler)
Welche Protokolle sind empfehlenswert?

Wie Aufwendig ist die Realisierung in Hard- und Software (größer, gleich oder geringer als mit I2C) ?


Fragen über Fragen
Hat jemand die passenden Antworten?

Sandro
30.03.2005, 00:23
Hallo darwin.

Ich habe zwar eigentlich keine praktische Erfahrung mit der RS-485 Spezifikation, aber ich habe schon öfter Multiporzessornetze über den UART
des Controllers aufgebaut.
Die Prinzipien müssten eigentlich gleich sein.

Der Pegelwandler alleine sollte schon reichen. RS-485 beschreibt ja ebenso wie RS-232 nur die elektrischen Eigenschaften des Bus.
Die werden dir von dem IC zur Verfügung gestellt.

Bei der Zweidrahttechnik mußt du darauf achten das wirklich nur ein Sender im Bus aktiv ist.
Darum würde ich dir raten doch nur einen Controller als Master zu betreiben. Auch wenn es prinzipiell möglich wäre ein Multimasternetz aufzaubauen.
Das sollte den nötigen Softwareaufwand erheblich reduzieren.

Wie das genau mit einem AVR zu realisieren ist kann ich dir leider nicht sagen. Hab noch nie damit gearbeitet.
Ich benutze 8051 Controller.
Bei diesen gibt es einen Multiprozessor-Modus für den UART (9-Bit Datenübertragung und ein Bit um den Empfang für Daten zu sperren). Ich denke das die AVRs sowas auch haben.

Bei der Übertragung werden Daten und Adressen durch das neunte Bit unterschieden. Ist es eins handelt es sich um eine Adresse, bei null sind es Daten.

Um eine funktionsfähige Kommunikation zustande zu bringen sperren alle Slaves den Datenempfang. Wird etwas empfangen ist das dann eine Adresse. Diese muß dann auf jedem Slave-Controller ausgewertet werden.
Stimmt sie mit der Adresse eines Slaves überein gibt er den Datenempfang frei.
Zum beenden der Übertragung gibt es mehrere Möglichkeiten:

>Man sendet ein deffiniertes Stop-Zeichen.

>Man sendet und empfängt immer nur eine festgelegte Menge an Bytes.

>Man sendet eine neue Adresse. -> Hier muß aber der Slave bei jedem Empfang prüfen ob es sich um eine Adresse oder Daten handelt. Und das Beenden der Übertragung in Richtung Master muß auf eine der oben beschriebenen Arten erfolgen.

Das lässt sich mit ein paar zeilen Code realisieren (Wenn man keine Fehlerprüfung einbaut). Der Softwareaufwan hält sich also in Grenzen.
Der Hardwareaufwand beschränkt sich auf das Treiber-IC.

Ich hoffe das ich dir damit etwas weiterhelfen konnte.

Sandro

Klaus_0168
30.03.2005, 07:45
Hi darWIN,

die RS422/485 - Definitionen sind nur reine HW-Definitionen. In der Industrie wird u.a. der Modbus verwendet, der auf dem RS485-Bus aufbaut. Die Übertragung ist für Coil (Bit) und Register (Wort) definiert.
Bisher haben wir nur Single-Master-Systeme im Einsatz. Die sind einfacher zu kontrollieren, da keine Kollisionsüberwachungen nötig sind. Infos über den Modbus kannst Du auf der Site www.modbus.org nachlesen (ist leider auf Englisch).
Obwohl der Modbus schon ziemlich alt ist wird er immer noch eingesetzt. Aktuelle Trends für die Vernetzung von Systemkomponenten unterschiedlicher Hersteller gehen in Richtung Ethernet TCP/IP.

Grüße Klaus

darwin.nuernberg
30.03.2005, 07:48
Genau So eine Antwort wie von Sandro habe ich nicht gewünscht!

Ich berauche effektive Praxiserfahrung.

Ich Arbeite beruflich selbst mit dem RS485 Bus,
jedoch mehr aus Anwendersicht, mit fertigen Geräten.

Jetzt möchte ich selbst dieses Bussystem realieren (in eigener Hardware).

Kann mir jemand aus der Praxis (nicht in der Theorie) helfen, wie dies zu bewerkstelligen ist (in Hard und Software?


Bitte kein "da könnte", oder es "würde Antworten",
ich brauche eine praktikable Hilfe ohne "wenn und aber dann".

darwin.nuernberg
30.03.2005, 07:55
"Single-Master-Systeme im Einsatz. Die sind einfacher zu kontrollieren, "

"Obwohl der Modbus schon ziemlich alt ist"

"Aktuelle Trends für die Vernetzung von Systemkomponenten unterschiedlicher Hersteller gehen in Richtung Ethernet TCP/IP."




Die Single- / Masterlösung würde mich nicht stören.

Alt oder nicht, Eingestezt wird der RS485 Bus immer öfter statt weniger

TCP/IP ist (meiner Meinung) zu Aufwendig besonders in Hardware (verkabelung ext. Hardware etc.) und Kosten sowie Aufwand, zumindest für meine Anwendungsbereiche.

Ich möchte eigentlich einen Zusätzlichen Bus zum I2C realisieren, da eine Absolute Trennung zwischen aktiven Baugruppen, welche dennoch untereinander kommunizieren sollen realisieren. So kann der I2C vom Controller alleine überwacht werden und dennoch mit anderen Komponenten agieren

uwe.arzt
30.03.2005, 08:49
Hallo darWin,

in der c't war 1990 in den Ausgaben 2+3 ein Netzwerk mit RS485 realisert. Dabei ist das Februar-Heft auf die Hardware eingegangen, das März-Heft auf die Software.

Hab ich mir damals aufgebaut :). Besorg dir doch diese alten Artikel (gibts auch online für 0,80 EUR das Stück).

Aber seither hab ich nichts mehr mir RS485 gemacht :(

Viele Grüße

Uwe

---

Ergänzung: Habe gerade nochmal im Keller gesurft, habe den RS232/RS485 Adapter noch rumfliegen... Auch hab ich gerade die ModBus-Seite angeschaut, das hört sich recht interessant an. Braucht keinen extra Controller, wie CAN, hat aber recht ordentliche Geschwindigkeit, und ist (siehe c't Source in Pascal) auch in kleinen Microcontrollern zu implementieren :).

Ich würde es für günstig halten, sich gleich an einem Standard (wie Modbus ) zu orientieren, dann könnte man damit auch verschiedene Komponenten vernetzen... Falls ich demnächst mal was Zeit habe, werde ich das mal wieder testen.

vish
30.03.2005, 08:59
Hallo darWin,

ich habe durch Zufall diese (http://www.mcselec.com/an_30.htm) Beschreibung einer Master - Slave Kommunikation in Bascom gefunden.
Ich selbst habe sie nicht durchgelesen, aber vielleicht hilft sie dir ja.

Grüße,
Jonas

darwin.nuernberg
30.03.2005, 10:15
Hallo darWin,

ich habe durch Zufall diese (http://www.mcselec.com/an_30.htm) Beschreibung einer Master - Slave Kommunikation in Bascom gefunden.
Ich selbst habe sie nicht durchgelesen, aber vielleicht hilft sie dir ja.

Grüße,
Jonas


JAA
sieht auf den ersten Blick garnicht so schlecht aus.

Die Harware dürfte bestimmt auch noch zu finden sein.
Da werd ich wohl noch ein bisschen stöbern müssen.

Aber ich denke das dieses Beispiel genau das ist, was ich gesucht habe.

DANKE

darwin.nuernberg
30.03.2005, 10:23
Hallo darWin,
in der c't war 1990 in den Ausgaben 2+3 ein Netzwerk mit RS485 realisert. Dabei ist das Februar-Heft auf die Hardware eingegangen, das März-Heft auf die Software.
Hab ich mir damals aufgebaut :). Besorg dir doch diese alten Artikel (gibts auch online für 0,80 EUR das Stück).
Aber seither hab ich nichts mehr mir RS485 gemacht :(
Viele Grüße
Uwe
---
Ergänzung: Habe gerade nochmal im Keller gesurft, habe den RS232/RS485 Adapter noch rumfliegen... Auch hab ich gerade die ModBus-Seite angeschaut, das hört sich recht interessant an. Braucht keinen extra Controller, wie CAN, hat aber recht ordentliche Geschwindigkeit, und ist (siehe c't Source in Pascal) auch in kleinen Microcontrollern zu implementieren :).
Ich würde es für günstig halten, sich gleich an einem Standard (wie Modbus ) zu orientieren, dann könnte man damit auch verschiedene Komponenten vernetzen... Falls ich demnächst mal was Zeit habe, werde ich das mal wieder testen.

Danke für die Tipps.

.. Werde mich gleich mal um die Artikel kümmern.

Hört sich auch sehr vielversprechend an.

darwin.nuernberg
30.03.2005, 11:08
.. Werde mich gleich mal um die Artikel kümmern.

Also Online habe ich nichts gefunden.
Ich habe mal die Redaktion kontaktiert.

tooltime
30.03.2005, 14:39
Hallo darwin,

ich habe mir auch schon in google die Finger wund getippt um ein Programmbeispiel für den RS-485 Bus in Bascom zu erhalten.
Auf diversen Foren wird zwar oft über RS-485 geredet, aber keiner stellt sein "heiliges" Programm ins Netz. Stattdessen kommen nur kluge Sprüche wie: "Vom selbermachen lernt man am besten." Aber vor dem Selbermachen muss man die ganze Sache verstehen und das geht am besten anhand von einem Beispiel.
Solltest du also irgendwann etwas funktionierendes fertig haben währe ich dir sehr dankbar wenn du die Programmschnipsel und eine kleine Skizze der Schaltung ins Forum stellen würdest.
Ich tappe nämlich immer noch im dunkeln.

uwe.arzt
30.03.2005, 15:36
.. Werde mich gleich mal um die Artikel kümmern.

Also Online habe ich nichts gefunden.
Ich habe mal die Redaktion kontaktiert.

http://www.heise.de/kiosk/archiv/ct/1990/2/166

http://www.heise.de/kiosk/archiv/ct/1990/3/308

sollten die passenden Artikel sein ;)

:q! Uwe

Sandro
30.03.2005, 19:18
Ich weiß nicht ob es jemandem aufgefallen ist, aber das Bascom Beispiel ist für 8051-Controller gedacht.

Laut der Beschreibung ist der LTC-485 auf die Art wie in dem angefügtem Schaltplan angeschlossen.

Bei AVRs muß man eben entsprechend andere Pins am Controller benutzen.

darwin.nuernberg
05.04.2005, 21:50
Solltest du also irgendwann etwas funktionierendes fertig haben währe ich dir sehr dankbar wenn du die Programmschnipsel und eine kleine Skizze der Schaltung ins Forum stellen würdest.
Ich tappe nämlich immer noch im dunkeln.

Will ich gerne machen, habe das Projekt aber momentan auf Eis gelegt.

Rage_Empire
07.06.2005, 14:17
Hm, hat jemand den Source schonmal auf einen AVR angepasst und ausprobiert? Mich würde das Ergebnis intressieren, ob es auch für "Profibus" annehmbar wäre?

Gucky
07.06.2005, 15:09
Solltest du also irgendwann etwas funktionierendes fertig haben währe ich dir sehr dankbar wenn du die Programmschnipsel und eine kleine Skizze der Schaltung ins Forum stellen würdest.
Ich tappe nämlich immer noch im dunkeln.

Will ich gerne machen, habe das Projekt aber momentan auf Eis gelegt.

Hallo.
Hier hätte ich einen Link zu der Hardware eine RS232 -RS485-Adapter.
Dort ist auch ein Schaltplan im PDF-Format dabei, den man eventuell anpassen muß/kann.

http://www.e-lab.de/diverse/components.html

Hoffe, daß ich helfen konnte.

Gruß

Rage_Empire
07.06.2005, 16:18
Hm, habe hier auch etwas, das bis 9600Baud läuft: