mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Daten zwischenspeichern, EEPROM oder DRAM?


Autor: Charlotte Ccc (cradle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bin neuling hier. Ich habe eine Frage. Jetzt baue ich ein Messsystem.
Die digitalen Messdaten müssen zwischen speichert werden. Die
Datengröße ist ungefähr 2M Byte pro Sekunde. Ich werde ein extern
Speicher mit µC zusammen benutzen. Aber ich weiß nich welches Typ von
Speicher soll ich benutzen. EEPROM, oder DRAM?

Autor: Christoph Wagner (christoph)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
am besten du kriegst einen SRAM ran. DRAM ist nämlich flüchtig (muss
ständig "aufgefrischt" werden) und EEPROM kann man nur begrenzt
beschreiben (ist aber nicht-flüchtig).
SRAM ist aber ziemlich teuer (wegen der aufwendigen
Einzel-Speicherzelle) in dieser Größenordnung. Du kannst aber auch
ältere DRAM-Speicher (bis EDO-RAM laufen alle mit 5V) verwenden. Dann
benötigst du allerdings eine Art Memory-Controller-ggf. auf Basis eines
CPLDs der einerseits das Bussystem anpasst und sich um die andere
Ansteerung kümmert. Damit sollten 32MB kein Problem sein und auch die
Geschwindigkeit von 2MB / sec. ist machbar. Müsstest dich aber dann
selbst um den refresh kümmern, der bei DRAM nun mal anfällt.

Kannst du die Datenmenge nicht durch Strukturierungen / Komprimierungen
verkleinern ? Wie lange soll aufgezeichnet werden ?

Autor: D. W. (dave) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
2*2^20 Byte / s ?

Wenns überhaupt reicht, dann DRAM.

Autor: Christoph Wagner (christoph)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... also bis auf SRAM (EEPROM fällt erstmal weg) ist das für einen
kompletten Neuling nicht machbar. Nur SRAM ist unkompliziert genug um
ohne größere Probleme angeschlossen zu werden.

Was willst du eigentlich messen ?

Autor: Charlotte Ccc (cradle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antworten.

Ich habe ungefähr 20 Sensoren zum messen. So habe ich gerechnet: 20
Kanäle * 1Mbps = 2.5MByte/Sec. Die Anforderung ist die Daten müssen im
Zwischenspeichern etwa 2 Sec. speichern.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
5MB sind ein bischen viel für die üblichen SRAMs.

Und 2,5MB/s sind ein bischen viel für DRAM "zu fuss" wenn der
Prozessor nicht ausschliesslich dafür zur Verfügung steht, sondern auch
noch die Daten irgendwo abholen muss (wie kommen die rein?).

Die Prozessorleistung und damit -Klasse ist hier evtl. nicht ohne
Belang. Wirst auch erst mal abschätzen müssen, was da notwendig ist.
Der hier allseits übliche AVR kriegt grad noch einige MB/sec von einem
Port ins RAM geschaufelt, aber viel Verarbeitung/Abfrage/Handshake darf
man während dessen nicht mehr von ihm erwarten.

Wie es weiter geht, hängt davon ab ob du es dir zutraust, einen
DRAM-Controller zu bauen, evtl. gleich mit DMA-Transfer von Datenquelle
ins RAM am Proz vorbei. Ist das zu hoch, mag ein fertiges Modul,
irgendwas Richtung Fox Board oder ARM7/9-Modul mit genug RAM drauf, ein
sinnvollerer Ansatz sein.

Autor: Christoph Wagner (christoph)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
eben deshalb hab ich gefragt was das für Sensoren sind. Genauer : liegen
dort noch irgendwelche Bits brach ? Ändern sich die Sensorwerte
sprunghaft / langsam ... all das sind Infos nach denen man sich etwas
überlegen kann, wie man den Datenstrom komprimieren kann. Also um ein
CPLD kommst du so und so nich drumrum ... einfach nur um das DRAM
schnell anzusteuern (dass es sich wie ein SRAM verhält).

Autor: arc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SD-Karten oder CompactFlash-Karten, falls die Anzahl der Schreibzyklen
begrenzt ist (werden kann) oder PCMCIA/PC-Card-SRAM-Karten z.B. von
Pretec

Autor: Thomas O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bin mir nicht ganz im klaren wie weit du schon bist. Haut das schon hin
das dein Messystem die Daten überhaupt so schnell liefert? Gib mal ein
paar Infos zum Messystem und zu dem jetzigen Stand. Was passiert nach
den 2 Sek. Zwischenspeicherung ist dann die Messung fertig und man kann
das ganze langsammer auslesen?

Autor: Daniel R. (daniel_r)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>5MB sind ein bischen viel für die üblichen SRAMs.

Quatsch. Ich habe SRAMS, die 190 MB/s können. Und die sind nicht
unüblich.

Wenn man sich geschickt anstellt gehts auch mit DRAM ohne CPLD.

Autor: Christoph Wagner (christoph)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja. das ginge natürlich auch. Allerdings wäre der AVR dann mit 2 MB
total ausgelastet. Also dann eventuell 2 AVRs nehmen - einen für die
Sensorik und das dann an den zweiten (fürs Speichern) weiterleiten ...

Autor: Daniel R. (daniel_r)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
....oder meintest Du mit 5MB die Größe??
Dann bitte ich um Entschuldigung. Ich meine die Geschwindigkeit.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder ganz einfach: Mehrere uC.
Da es ja meherere Sensoren sind, sollte es kein Problem sein einfach
meherer AVRs zu nehmen, und an jeden z.B. 512kB SRAM zu hängen. Den
bekommt man problemlos und das Timing wird auch weniger kritisch.

Autor: Charlotte Ccc (cradle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für alle!

Nun ist die Idee alle Messdaten im Zwischenspeicher zu speichern nur
meine Gedanken. Im diesem Speicher enthaltet immer die aktuellen
Messwerte von letzter Zeit(z.B 2 sec.). Ich kann wie Ringpuffer rein
schreiben. Ohne Notfall werden die Daten nur immer erfrischt.

Wenn 5M Speichergröße zu viel für DRAM ist, kann ich die Zeit ein wenig
reduzieren, 0,5 sec, 1.25M auch zu viel für DRAM/SRAM? Dann finde ich
mehre µCs ist machbar.

Autor: Christoph Wagner (christoph)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Überleg auch, ob du den Datenstrom nicht noch packen kannst. Wenn du
Messwerte hast, die sich nur um Einzelstellen (oder langsam) zwischen
Intervallen ändern, brauchst du nur die Differenz in Form von Bits
speichern. Ich hab da mal einen lossless Audio-Codec für AVRs
geschrieben, der doch immerhin 50% rausgeholt hat (und dabei ist Audio
seehr schwankend). Bei "ruhigeren" Signalen schaffst du sicherlich 20
oder 10%.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die üblichen gut erhältlichen und gut verbaubaren SRAMs gibt es bis
512KB. Es gibt auch grössere Typen, vor allem wenn dir BGA-Bauform
recht ist.

Für DRAMs sind 5MB keinerlei Problem, hier dürften insbesondere
pseudo-statische RAMs sinnvoll sein. Allerdings sind die im
Endkundenhandel kaum anzutreffen, der Weg führt da eher über die
Herstellerseiten und Distributoren.

Autor: Marco S. (masterof)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
abo

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.