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


von Charlotte C. (cradle)


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?

von Christoph W. (christoph)


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 ?

von D. W. (dave) Benutzerseite


Lesenswert?

2*2^20 Byte / s ?

Wenns überhaupt reicht, dann DRAM.

von Christoph W. (christoph)


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 ?

von Charlotte C. (cradle)


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.

von A.K. (Gast)


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.

von Christoph W. (christoph)


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

von arc (Gast)


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

von Thomas O. (Gast)


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?

von Daniel R. (daniel_r)


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.

von Christoph W. (christoph)


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

von Daniel R. (daniel_r)


Lesenswert?

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

von Benedikt (Gast)


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.

von Charlotte C. (cradle)


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.

von Christoph W. (christoph)


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

von A.K. (Gast)


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.

von Marco S. (masterof)


Lesenswert?

abo

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.