Forum: Mikrocontroller und Digitale Elektronik Speichern der UART-Daten


von Andreas S. (schunki)


Lesenswert?

Hallo zusammen!

Ich habe hier einen Mikrocontroller der in der Überwachung einer Anlage 
läuft. Der Programmcode ist so getrickt, dass er Fehler und Alarme 
anzeigt. Zusätzlich besteht die Möglichkeit über eine serielle 
Schnittstelle alle laufenden Sensordaten mitzulesen. Dazu muss aber die 
ganze Zeit ein Rechner an die Schnittstelle angestöpselt sein und über 
ein kleines Linux-Programm werden dort die Daten mitgelesen und in eine 
Datei auf dem Rechner gespeichert. So besteht die Möglichkeit, nach 
einem Fehler alle Sensordaten zu überprüfen.

Ich möchte das Ganze aber jetzt so umbauen, dass die UART-Daten auf 
einen Speicher in der Überwachungseinheit geschrieben werden und von 
dort aus dann nachträglich bei Bedarf ausgelesen werden kann. Ich würde 
z.B. gerne eine SD Speicherkarte beschreiben und diese dann bei Bedarf 
einfach über einen Kartenleser auslesen.

Hat hier jemand schon mal so was in der Art realisiert und hat da ein 
paar Ideen für mich, wie ich an die Sache ran gehen kann?


Ich sag schon mal Danke im Vorraus!


Gruß
Andreas

von Peter D. (peda)


Lesenswert?

Du solltest erstmal abschätzen, welche Datenmengen auflaufen.

SPI-Flash gibt es für 1MB im SO-8 Gehäuse. Da kann man reichlich 
zwischenspeichern und auf Anforderung über die UART ausgeben.

Früher hat man gerne den 24C512 verwendet, 64kB kann auch schon ne Menge 
puffern.
Und man muß ja nicht Klartext speichern, man speichert die Werte binär 
und konstante Texte als Index.


Peter

von Bronco (Gast)


Lesenswert?

Andreas Schunkert schrieb:
> Hat hier jemand schon mal so was in der Art realisiert und hat da ein
> paar Ideen für mich, wie ich an die Sache ran gehen kann?

SD-Karte würde ich nur machen, falls Deine µC-Plattform fertige 
Libraries (mit Dateisystem usw.) anbietet. Selber implementieren macht 
sicher Spaß, wird aber eine Weile dauern.
Ansonsten: Daten möchlist kompakt in einem EEPROM, FRAM oder Flash 
speichern und über UART am Stück auslesen.

von Steel (Gast)


Lesenswert?

Ich sehe da kein Problem drin die Daten auf SD-Karte zu speichern. 
Entweder noch in den vorhandenen uC einbauen oder einen zweiten uC der 
die UART mitlauscht und dann aufzeichnet auf SD. So kann man sogar bei 
Bedarf noch parallel live mit nem PC die Daten angucken. Und man kauft 
einfach ein EVA-Board mit einem beliebigen uC das schon nen SD-Slot hat, 
braucht kaum noch basteln.

von H.Joachim S. (crazyhorse)


Lesenswert?

So würde ich das auch machen, autonome externe Platine mit eigenem MC.
Somit brauchst du das Ursprungssystem nicht anpacken ("Überwachung einer 
Anlage" - kann vieles sein...Falls irgendwas sicherheitsrelevantes dabei 
ist, lass bloss die Finger davon darin rumzuwurschteln).

von Andreas S. (schunki)


Lesenswert?

Ok, ich denke mal ich werd dann mal den Ansatz mit dem zweiten µC 
angehen und schauen, dass der mir da die Daten auf die SD Karte 
schreibt.

@H.Joachim: Keine Sorge! Die Überwachungseinrichtung hab ich mal selbst 
gebaut. Ich weiß da schon wo ich dran rumwurschteln kann und wo nicht! 
;-)

Aber auf alle Fälle vielen Dank für Eure Antworten!


Gruß
Andreas

von H.Joachim S. (crazyhorse)


Lesenswert?

Naja - in dem Fall kann man aber auch drüber nachdenken, dass den 
"Hauptprozessor" machen zu lassen.
Kommt einfach drauf an:
-willst du die Platine noch mal ändern
-hast du noch genug Kapazität frei (Rechenleistung, RAM, Flash, passende 
Schnittstelle)

5x ja -> Originalplatine ändern.
Schneller fertig wirst du wahrscheinlich mit der Zweit-Platine.

von Andreas S. (schunki)


Lesenswert?

Also die Sensoren hängen bei mir an einem 19 Zoll Einschub in dem die 
Daten verarbeitet werden. 10 Eingänge pro Einschub. Die Einschube 
stecken widerrum in einem Baugruppenträger. Fünf Sensoreinschübe plus 
ein Controller-Einschub. Der Controllereinschub bekommt die Daten von 
allen Sensoreinschüben via I²C (TWI). Der Controllereinschub hat 
wiederrum eine serielle Schnittstelle in Form einer 9-poliger D-Sub 
Buchse. Hier können die Daten wie oben beschrieben mitgeplottet werden.
Ich will also den Controller-Einschub neu entwerfen. Der Platz hier ist 
natürlich etwas begrenzt, da die Platinenmaße mit der Große des 
Einschubs vorgegeben ist. ich habe aber auch kein Problem damit über 
eine Steckverbindung eine zweite Platine auf die Erste aufzusetzen um 
hier mehr Spielmöglichkeiten zu haben. Will sagen, dass es am Platz 
nicht mangeln sollte!


Gruß
Andreas

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.