Forum: Mikrocontroller und Digitale Elektronik RS232 Multiplexer mit ATMega8


von Tobias (Gast)


Lesenswert?

Hallo,

ich bin absoluter Anfänger in Sachen Mikrokontroller, habe mir aber in 
den Kopf gesetzt, mir einen kleinen RS232-Multiplexer zu bauen. Dazu 
wollte ich einfach mal fragen, wie ihr meine Ideen einschätzt oder ob 
ich mir das Leben viel zu kompliziert mache:

Ziel ist es, 3 NMEA[1]-Quellen zusammen zu fassen. Jede Quelle liefert 
ihre Daten über RS232, die Baudraten können dabei unterschiedlich sein. 
Am Ende sollen alle Daten gemeinsam auf einer weiteren 
RS232-Schnittstelle ausgegeben werden.

Zusätzlich soll eine bidirektionale Kommunikation zwischen der 
Ausgabe-Schnittstelle und einer der Quellen möglich sein (z.B. über 
einen mechanischen Schalter auswählbar).

Und letzten Endes soll es als "Bonbon" möglich sein, den 
Ausgabe-Datenstrom durch separat erfasste Sensorwerte (Temperatur, 
Luftfeuchtigkeit, Kompass) zu ergänzen.


Nun zu meiner bisherigen Umsetzungs-Idee:

Ich baue mir drei identische Platinen mit je einem ATMega8, welche je 
eine der Datenquellen empfangen und deren Daten auf Abruf über den 
I2C-Bus bereit halten (es geht dabei jeweils um gerade mal 50 bis 100 
Byte pro Sekunde).

Eine Master-Platine, ebenfalls mit ATMega8, frägt regelmäßig alle 
anderen ATMegas ab, ob sie neue Daten haben, fasst diese ggf. zusammen 
und legt sie an den Ausgangs-RS232. Ebenso sorgt dieser Controller für 
die bidirektionale Kommunikation, indem er die Daten je nach 
Schalterstellung an einen der Quellen weitergibt.

Zusätzliche Sensoren werden ebenfalls entweder direkt per I2C oder über 
separate ATMegas eingebunden. Stromversorgung erfolgt über eine weitere 
separate Platine.


Die Idee bei der Sache ist, dass ich einerseits relativ einfach mein 
System erweitern kann, andererseits mit möglichst wenig 
unterschiedlichen Bauteilen auskomme (grob über den Daumen gepeilt max. 
10 Euro pro RS232-Schnittstelle).


Haltet ihr das für realistisch, oder kann ich mir den Aufwand mit den 
separaten Controllern komplett sparen und an einen einzigen ATMega 4 
RS232-Schnittstellen realisieren?

von Karl H. (kbuchegg)


Lesenswert?

Sprotliche Aufgabenstellung für einen Anfänger.
Respekt!

von avr (Gast)


Lesenswert?

Du kannst dir den Aufwand sparen, es gibt von Atmel
schon AVRs mit mehreren UARTs.

Die Komunikation von Master - mehere Slaves ist für den
Einstieg etwas komplex.

Z.B. ein Mega1280 wäre hier mit 4 UARTs die bessere Wahl.

Wenn Angst vor dem Gehäuse bestehen (nicht jeder lötet
gerne TQFP100) gibt es auch Apapterplatinen mit aufgelötetem
Mega und Anschlußßleisten (evtl. 
http://www.tigal.com/product.asp?pid=1157)

Dann reichen Treiber (max232-Familie) und Versorgung.

avr

von pyotr (Gast)


Lesenswert?

Man könnte schon ein Software-UART für so etwas benutzen, was keinesfall 
trivial wird...

von Tobias (Gast)


Lesenswert?

Jau, das mit dem ATMega 1280 ist ganz brauchbare Idee. Hätte eben den 
Nachteil, dass die Software etwas komplexer wird. Das Selbe gilt 
natürlich für den Software-UART.

Vom Entwicklungsaufwand wären eben separate Platinen pro RS232-Quelle am 
einfachsten, da problemlos erweiterbar (alle Slaves verhalten sich 
gleich ggü. dem Master) und sich der Debugging-Aufwand in Grenzen halten 
sollte.

@Karl Heinz: Anfänger ist übertrieben, ich bin früher mit Ataris und 
deren 68000er aufgewachsen, insofern ist mir die Programmierung von 
einfachen Prozessoren nicht unbedingt neu.

von Reinhard Kern (Gast)


Lesenswert?

Hallo,

im Interesse der Flexibilität ist das Konzept mit n µPs durchaus gut. 
Ich sehe nur ein Problem (vielleicht): die einzelnen 
RS232-Schnittstellen müssen konfiguriert werden, zumindest mit der 
Baudrate. Sowas lässt sich hübsch mit einer Konfigurations-Website oder 
einem Telnet-Zugang machen, aber vernünftigerweise nicht für jeden 
Slave-Prozessor einzeln. Also müsstest du die Slaves auch über den 
zentralen µP konfigurieren, nicht nur Daten abholen. Ist natürlich 
machbar, ansonsten kannst du natürlich auch die allseits beliebten 
Jumper einsetzen.

Gruss Reinhard

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.