mikrocontroller.net

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


Autor: Jürgen Papadopolis (juergenp)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt ATMega die schaffen das.

Autor: Jürgen Papadopolis (juergenp)
Datum:

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

Autor: Gast (Gast)
Datum:

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

Autor: Peter Roth (gelb)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: juergenp (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: hsh (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Such dir welche aus. Wozu gibts denn sonst die Parametric Product Table.
http://www.atmel.com/dyn/products/devices.asp?fami...

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

Autor: Rainer M. (excogitator)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Jürgen Papadopolis (juergenp)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: kurz (Gast)
Datum:

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

Autor: kurz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:

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

Autor: Der gemeinsame Nenner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Der gemeinsame Nenner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Der gemeinsame Nenner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: juergenp (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wozu mechanisch? Ich würde es mit einem Multiplexer versuchen.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: juergenp (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Stefan P. (form)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jürgen Papadopolis (juergenp)
Datum:

Bewertung
0 lesenswert
nicht 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....

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jürgen Papadopolis (juergenp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achmann, klar...So wirds gemacht. Danke!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.