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?
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
Man könnte schon ein Software-UART für so etwas benutzen, was keinesfall trivial wird...
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.