3x RS232 abfragen und Formatieren

OP #1268603
Lesenswert?

Hallo,
Ich habe hier eine sehr spezielle Aufgabe, und wollte mal fragen, was 
ihr über die Machbarkeit denkt.
Ich habe 3 Datenquellen, die ihre Daten über RS232 ausgeben. Zwei davon 
arbeiten mit 19200Boud, eine mit 38400.
Die 19200Boud-Quellen muss ich außerdem antriggern, das heißt, ich muss 
einen String hinschicken, um Daten zurückzubekommen.
Die 38400Boud-Quelle sendet kontinuierlich.
Ich muss nun diese Quellen zusammenführen, und über eine serielle 
Schnittstelle ausgeben (außderdem noch über WLAN, aber das sollte dann 
ja kein Thema mehr sein).
Um die Daten voneinander unterscheiden zu können, sollen sie bei der 
Zusammenführung auch noch konvertiert werden, und als NMEA-String 
ausgegeben werden.
Was denkt ihr, wie groß der Aufwand wird? Schafft ein ATMega das?
Danke schonmal für Meinungen.
Jürgen
Gast #1268925
Lesenswert?

Ja, denn das sowas irgendwie möglich ist, daran hab ich nicht 
gezweifelt, von daher waren das zwei schön sinnlose, aber leider 
Forumübliche antworten. Man muss jan icht antworten, wenn man nicht 
will!
Aber ich will hier nicht meckern, sondern Eure Meinung hören. Also los!
Gast #1268945
Lesenswert?

z.B. ATmega640 oder ATmega2560
Eine vollständige Übersicht gibts hier: 
http://www.atmel.com/dyn/products/devices.asp?family_id=607

Das Daten sammeln und weiterleiten sollte kein Problem sein. WLAN 
scheint mir dann aber schon etwas heftig. Bist du sicher, dass das dann 
kein Thema ist?

Fertige Module gibts z.B. hier: http://www.siphec.com/

Wenn das ganze von einem PC aus gesteuert wird, wäre ein FTDI FT4232 
Mini Modul eine Überlegung wert. Die gibts direkt bei FTDI

mfg
#1269681
Lesenswert?

Wenn die Abfrage der Schnittstellen nicht Zeitkritisch ist, kann man sie 
auch einfach multiplexen, z.B. mit einem 4052. Dann funktioniert es auch 
mit einem kleinen ATMega8 mit nur einer UART. Mit dem vierten Kanal kann 
man dann auch die gesammelten Daten ausgeben. Das Ganze auf eine kleine 
Lochrasterplatine - fertig.

Gruß
Rainer
OP #1269731
Lesenswert?

Also, so in etwa hatte ich mir das auch vorgestellt, nur dass ich die 
Idee mit dem Multiplexer scheinbar zu früh verworfen hatte.
Die Kombi aus ATinys2313 plus zwei Multiplexer scheint hier das 
einfachste zu sein. Letzten Endes reicht es mit, wenn ich Messwerte im 
Sekundentakt bekomme. Und mit dem ATinys2313 könnte ich auch noch die 
Multiplexer steuern. Nur, wenn ich das richtig sehe, kann der 
Multiplexer keine RS232 Pegel (negative Spannungen) durchschalten, ist 
das richtig? Hab Ihr grad einen parat, der das kann?
Gast #1269752
Lesenswert?

> nenne je einen ATMega mit 3 seriellen Schnittstellen und
> 1 Entwicklungssystem mit 3 verfügbaren seriellen Schnittstellen

Ein sehr bequem über USB zu benutzendes Entwicklungssystem mit dem 
ATmega2560 und mit 4 (VIER) seriellen Schnittstellen, die neben vielen 
anderen PINs an einer Stöpselleiste verfügbar sind:

http://arduino.cc/en/Main/ArduinoBoardMega

Zufrieden?
Gast #1269757
Lesenswert?

Wenn Du die Daten asynchron empfängst und sie aus Paketen mit mehr als 
einem Byte bestehen, musst Du dafür sorgen, dass sie beim Zusammenführen 
nicht wahllos ineinandergemischt werden.

D.h. in jedem eingehenden Datenstrom muss erkennbar sein, wo ein Paket 
aufhört, und die empfangenen Zeichen müssen bis zum Empfang der 
Endemarke zwischengespeichert werden. Dann gibst Du es über die 
gemeinsame Ausgangsschnittstelle aus.
Gast #1269762
Lesenswert?

Oh, das Board hat nur einen ATmega1280. Das ändert aber sonst nicht 
viel.

Für Deine Aufgabe dürfte das ohne weiteres geeignet sein. Die 
Triggerungen kriegst Du damit auch noch hin.

Du kannst das komplett unter der Arduino-Entwicklungsumgebung machen. 
Für ein fertiges Produkt würde ich davon evtl. wieder weg, aber für ein 
Proof of Concept / eine Demo hast Du damit am schnellsten Ergebnisse, 
wenn Du sonst noch nicht viel mit AVRs und avr-gcc gemacht hast.
Gast #1296338
Lesenswert?

Moin zusammen,
Nun ist das Projekt wieder aktuelll geworden. Ich würde jetzt gerne das 
Arduino Board nehmen. Da habe ich jetzt natürlich das Problem, dass ich 
nur 4 UARTs habe. Wenn ich die Singale über ein WLAN Modul verschicken 
will, bäuchte ich ja eigentlich 5. Ich hab mir jetzt überlegt, das 
entweder WLAN oder RS232 zu übertragen. Kann man da einfach mit einem 
machanischen Umschalter die Rx/Tx Leitungen umschalten, oder gibt das 
Probleme mit Reflektionen?
Gast #1296363
Lesenswert?

Mal eine blöde frage:

Wie soll das gehen das man eine RS232 Multiplex an der selbstdändig, 
also ohne anfrage, Aaten ankommen?

Das würde doch bedeuten mann muss auf eine Soft-UART ausweichen welche 
mit dem Multiplexen klarkommt. Das ganze bei einer geschwindigkeit von 
38400baud stellt ich mir nicht ganz Trivial vor.
Gast #1296377
Lesenswert?

Wie meint ihr das mit dem Multiplexen? Das ist ja das eigentliche 
Problem, das ich habe, dass ich quasi 3 serielle Quellen multiplexen 
muss, um sie auf einen (oder besser zwei gleichzeitig) serielle Ausgang 
zu bekommen...
OP #1296416
Lesenswert?

Ja, das wäre schön einfach, aber nur eine Quelle braucht eine 
Triggerung, die Andere sendet permanent. Einen zweiten µC wollte ich 
eingentlich nicht einsetzen. Ich dachte mir, da das WLAN-Modul bei 
Kabelbetrieb am besten sowieso nicht in Betrieb sein soll, um Akkuzeit 
zu sparen, könnte man da gleich was einfaches Mechanisches bauen....Also 
auch mit Abschaltung kombiniert....
Gast #1296422
Lesenswert?

das war auch meine idee dazu

die 2 19,sk quellen an einen RX pin( über dioden getrennt )
dann erst zum einen  den string senden ... warten bis antwort kommt
dann an den anderen den string senden warten bis antwort kommt
umschalten über transitoren oder muxer

am 2ten UART über UART1  RX interrupt die 38k quelle die kann immer 
schön senden wie sie will
im AVR wird gepuffert


die 3te UART sendet den zusammengefriemelten string weg


wenn ein Wlan modul dranhängt .. gehts über Wlan .. wenn Wlan über SPI 
dranhängt eben so ..

also 4 UARTs reichen doch völlig aus

und selbst bei der aktion langweilt sich der AVR zu tode

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren