Forum: Mikrocontroller und Digitale Elektronik störsichere Übertragung über ATMEGA


von Gerd J. (geju)


Lesenswert?

Hallo !

Ich möchte eine störsichere, längere Übertragungsstrecke aufbauen und 
denke an RS422, RS485.
Auf der einen Seite soll ein z.B. ATMEGA8 (da etliche vorhanden) als 
Zentrale sein. Von dort soll es zu maximal zwei Unterstationen mit 
ebenfalls ATMEGA8 gehen (sternförmig).
Als Anfangssystem stelle ich mir vor, dass von der Zentrale 
Schalterstellungen an die Unterstationen übermittelt werden, um dort 
z.B. ein Relais oder LED zu schalten. Es soll dann eine Quittung wieder 
an die Zentrale geschickt werden und dort z.B. eine LED aufleuchten. Das 
Ganze soll auch umgekehrt von den Unterstationen zur Zentrale erfolgen.
Kann mir da jemand auf die Sprünge helfen oder gibt es schon so etwas ?
Es sollte in BASCOM sein, was ich einigermassen nachvollziehen kann.
Vielen Dank im voraus. Freue mich auf Antworten.

Geju

von Jens (Gast)


Lesenswert?

Ich glaube nicht, dass du hier jemand findest, der dir deine Arbeit 
macht. Wie wäre es, du stellst deine Versuche da (Schaltplan, Code) und 
fragst gezielt, was nicht funktioniert.
Außerdem ist eine RS232 und RS485 für einen sternförmigen Bus absolut 
nicht geeignet. Da gibt es keine Mechanismen um eine Buskollision zu 
erkennen. Dafür nimmt man CAN.
Außerdem kann man Hausbus-Systeme billiger kaufen!

von ich (Gast)


Lesenswert?

Er redet von einer "Zentrale" und zwei "Unterstationen". Für mich ist 
das eine Linienstruktur. Und da würde ich ebenfalls RS485 nehmen

>Da gibt es keine Mechanismen um eine Buskollision zu
>erkennen. Dafür nimmt man CAN.

Eine Frage des Protokolls. Sollte klar sein dass nicht jeder senden darf 
wie er will... Es muss nicht immer sofort CAN sein wenn mehr als 2 
Teilnehmer da sind.

von spess53 (Gast)


Lesenswert?

Hi

>Außerdem ist eine RS232 und RS485 für einen sternförmigen Bus absolut
>nicht geeignet.

Für RS485 sieht das TI aber anders:

http://www.ti.com/lit/an/snla049a/snla049a.pdf

MfG Spess

von Blackbird (Gast)


Lesenswert?

Da wäre zu überlegen, einen ATMega mit 4 RS232 für die "Zentrale" zu 
benutzen. 2 x RS232 zu den Unterstationen und eine (evtl. mit 
RS232-USBWandler) zum PC oder was auch immer.

Blackbird

von Peter D. (peda)


Lesenswert?

ich schrieb:
> Es muss nicht immer sofort CAN sein wenn mehr als 2
> Teilnehmer da sind.

Es macht die Programmierung allerdings erheblich einfacher.

Gerade Anfänger haben es schwer, einen RS485 Protokollstack zu verstehen 
und zu implementieren. Aber auch ich will damit meine Zeit nicht mehr 
verschwenden.

Und störsicher und Protokoll selber entwickeln funktioniert für einen 
Anfänger auf keinen Fall.


Peter

von Gerd J. (geju)


Lesenswert?

Hallo die Runde,

vielen Dank fuer die schnelle Resonanz. Ich habe extra vermieden, rs232 
zu nennen, da ich davon ausgehe, daß HF-Einstrahlung vorliegt und die 
Entfernungen im Bereich von 20-25m oder länger sind. Vielleicht hilft 
dies.
Wenn es wesentlicvh einfacher wird, könnte man die Zentrale ja doppelt 
aufbauen, d.h. Teilzentrale 1 mit Unterstation 1 verbinden und 
Teilzentrale 2 mit Unterstation 2. zwischen Unterstation 1 und 2 wird 
keine Kommunikation benötigt. Außerdem liegen die Unterstation weit 
auseinander, so dass eine Linienstruktur wohl wegfällt.
Ich habe zwar schon mit ATMEGAs gespielt, aber die Kommunikation zu 
einem anderen ATMEGA über RS485 (oder was auch immer) ist mir immer noch 
ein Rätsel. Es gibt zwar die Bausteine von Maxim485 oder 487 aber dann 
fehlt es an der Software, Beispiele im Netz habe ich bisher nicht 
gefunden.

Gruß

Geju

von Karl H. (kbuchegg)


Lesenswert?

Gerd Ju schrieb:

> Wenn es wesentlicvh einfacher wird, könnte man die Zentrale ja doppelt
> aufbauen,

Vorsicht.
Das ist ein gern gemachter Trugschluss: Och, da machen wir einfach noch 
einen µC rein und dann noch einen und noch einen.

Die Dinge werden meistens nicht einfacher, wenn man mehrere Computer auf 
ein Problem ansetzt. Denn mit jedem weiteren Teilnehmer entsteht mehr 
Kommunikationsbedarf bei dem dann wieder neue Störungen einfliessen 
können.
Protokolole werden komplizierter, Daten müssen durchgereicht werden etc.

> Ich habe zwar schon mit ATMEGAs gespielt, aber die Kommunikation zu
> einem anderen ATMEGA über RS485 (oder was auch immer) ist mir immer noch
> ein Rätsel.

Du definierst dir einen Satz von Kommandos, die von einem µC zum anderen 
laufen. Dein Handwerk (die Programmierung) und dein Handwerkszeug (die 
Programmiersprache) solltest du aber beherrschen, sonst sind derartige 
Dinge für immer ein Buch mit 7 Siegeln.

Wenn du mit BASCOM noch nie mit der seriellen Übertragung Erfahrung 
gesammelt hast, dann ist jetzt ein guter Zeitpunkt das nachzuholen. 
Völlig unabhängig von deinem eigentlichen Problem. Du musst wissen 
welche Möglichkeiten du prinzipiell hast und wie sie mit BASCOM 
realisiert werden.

RS485 definiert ja nur andere Leitungseigenschaften. Was und wie du da 
darüber eine Übertragung aufbaust, ist dein Bier. Und so groß ist der 
Unterschied zu einer klassischen Datenübertragung über RS232 dann auch 
wieder nicht. D.h. wenn du deine Techniken mit einer seriellen 
Schnittstelle zb zu einem PC gelernt hast, kannst du das meiste davon 
auch bei einer RS485 wieder anwenden.

von Jens (Gast)


Lesenswert?

Daher CAN!
Das wird ein wildes Gebastel nur weil man sich auch RS485 versteift. 
Alle Probleme die da auftreten sind beim CAN schon gelöst. Und die 
Kosten halten sich auch in Grenzen! Wenn ich dann lese, dass eventuell 
mehrere Controller zum Zuge kommen sollen, sind die CAN Transceiver 
billiger!

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
Noch kein Account? Hier anmelden.