Forum: Mikrocontroller und Digitale Elektronik 3x RS232 abfragen und Formatieren


von Jürgen P. (juergenp)


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

von Gast (Gast)


Lesenswert?

Es gibt ATMega die schaffen das.

von Jürgen P. (juergenp)


Lesenswert?

Achso, ich sollte dazu sagen, dass ich warscheinlich keine eigene 
Platine entwickeln kann. Das ganze müsste also auf einem Demo-Board 
laufen.

von Gast (Gast)


Lesenswert?

Es sollte genug Entwicklungssysteme geben die einen ATmega beinhalten 
der über genug serielle Schnittstellen verfügt.

von Peter R. (gelb)


Lesenswert?

Lieber  Gast (Gast),

bitte mach es uns einfach und nenne je einen ATMega mit 3 seriellen 
Schnittstellen und 1 Entwicklungssystem mit 3 verfügbaren seriellen 
Schnittstellen.

Danke!

Grüße, Peter

von juergenp (Gast)


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!

von hsh (Gast)


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

von Gast (Gast)


Lesenswert?

Such dir welche aus. Wozu gibts denn sonst die Parametric Product Table.
http://www.atmel.com/dyn/products/devices.asp?family_id=607#760

Wenn es dann einer wird der z.B. auf ein STK500 drauf passt -> 
Entwicklungssystem gefunden.

von Rainer M. (excogitator)


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

von sam (Gast)


Lesenswert?

wie wärs mit 3 ATTinys2313 oder 4 , die untereinander über SPI reden und 
jeder hat doch einen USART für die perepherie...
warum muss es immer ein prozessor sein, der alles kann?

von Jürgen P. (juergenp)


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?

von kurz (Gast)


Lesenswert?

wenn schon Multiplexer, dann auf der TTL-Seite, danach erst auf 
RS232-Pegel wandeln.

von kurz (Gast)


Lesenswert?

Nachtrag:

Wenn schon auf der TTL-Seite, dann tuns auch logische Verknüpfungen wie 
AND, NAND um die Schnittstellen anzusprechen.

von Der gemeinsame Nenner (Gast)


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?

von Der gemeinsame Nenner (Gast)


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.

von Der gemeinsame Nenner (Gast)


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.

von juergenp (Gast)


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?

von Gast (Gast)


Lesenswert?

Wozu mechanisch? Ich würde es mit einem Multiplexer versuchen.

von Peter (Gast)


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.

von juergenp (Gast)


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...

von Stefan P. (form)


Lesenswert?

Wenn du beide 19,2 kbaud Quellen antriggern musst, bis was kommt, kannst 
Du die ja über Dioden (und evtl einem Gatter für TX) an einem UART 
zusammenführen. die 38,4 kbaud Kiste dann an einem separaten UART.

2 UARTS haben sehr viele der AVR's. z.b. der Mega128

von Jürgen P. (juergenp)


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....

von gast (Gast)


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

von Jürgen P. (juergenp)


Lesenswert?

Achmann, klar...So wirds gemacht. Danke!

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.