Zwischenspeichern von großen Datenmengen

OP #4101604
Lesenswert?

Hallo zusammen,

ich beschäftige mich mit einer Schaltung, die mittels einem Sensor für 
ein Einzel-"Bild" ca. 1500 Messpunkte per ADC einliest. Anforderung ist, 
dass mindestens 50, besser 100, noch besser 400Bilder/Sek aufgenommen 
werden sollen. Jeder Bildpunkt wird (derzeit) mit 8bit abgespeichert. 
Pro Bild fallen also ca. 1,5kByte an Daten an. Bei 50 Bildern/Sek fallen 
also pro Sekunde ca. 75kByte Daten an.

Die Daten sollen anschließend per Bluetooth an ein PC/Smartphone/Tablet 
oder ähnliches übertragen werden.

Für ein iPhone habe ich eine maximale Übertragungsrate von 220kbit/Sek 
(also 27,5kByte/Sek) gefunden, was nach meiner Rechnung deutlich zu 
langsam ist.

Es wäre evtl. denkbar die Auflösung der Bildpunkte herabzusetzen, aber 
selbst bei einer Halbierung auf 4Bit pro Messpunkt habe ich immer noch 
zu viele Daten.

Die einzige Lösung, auf die ich bisher gekommen bin ist, die Daten einer 
Messung (eine Messung dauert max. 5 Sekunden, es fallen also bei 50Hz 
Messfrequenz max. 375kByte an, zu viel für jeden RAM eines 
Mikrocontrollers) in einem externen Speicher zwischenzuspeichern und 
erst nach der Messung mit der Zeit die es eben braucht per BT zu 
übertragen. Leider habe ich mit sowas gar keine Erfahrung.

Derzeit benutze ich an Hardware ganz grob einen ATMega640 und ein 
Bluetooth-Modul, dem ich per UART oder SPI die Daten schicken kann. Der 
ATMega640 ist keinesfalls fest ausgewählt, dient mir im Moment nur zum 
rumspielen und zum Testen der Sensoren.

Gibt es externe RAM in einer solchen Größe? Sind die schnell genug? Wie 
schließe ich diese an meinen Prozessor an?

Wer ist nach den ganze Zahlen noch nicht verwirrt und hat evtl. eine 
andere Lösung parat um die Daten sinnvoll zu übertragen? BT ist dabei so 
gut wie gesetzt, Prozessor und weitere Peripherie kann evtl. 
getauscht/ersetzt/erweitert werden.
Würde mir ein Austausch der BT-Verbindung gegen Wifi das Leben deutlich 
leichter machen?
OP #4101666
Lesenswert?

...da lese ich aber immer nur "up to 64Kbytes", was für meine Anwendung 
ja deutlich zu wenig ist.
Ich brauche ca. das 10-fache, also mindesten 0,5-1MB, falls ich mich 
nicht verrechnet habe!?

Macht ein Flash Sinn (also z.B. sowas: 
http://www.farnell.com/datasheets/1809894.pdf)? Ich zweifle wegen den 
"nur" 100.000 Schreibzyklen und nicht-flüchtig muss es ja auch gar nicht 
sein...
Ansonsten würde das mit dem seriellen reinschieben der Daten per SPI ja 
schon ganz gut passen, denn dann würde sich der Software-Aufwand auch in 
Grenzen halten.
OP #4101738
Lesenswert?

Christian Kreuzer schrieb:
> SRAM wäre ideal für deine Anwendung, gibt es auch in der gewünschten
> Größe, kommen aber in unangenehmen Gehäusen daher.

ja, wegen der Gehäuse und weil ich die Software scheue zögere ich beim 
SRAM etwas...

> Alternativ gingen auch serielle EEPROMs, da hättst du etwa 1000000
> Schreibzyklen.

Aber da finde ich nur welche mit max. 1MBit -> zu klein !?
Gast #4101754
Lesenswert?

> Die einzige Lösung, auf die ich bisher gekommen bin ist, die Daten einer
> Messung (eine Messung dauert max. 5 Sekunden, es fallen also bei 50Hz
> Messfrequenz max. 375kByte an, zu viel für jeden RAM eines
> Mikrocontrollers)

Renesas hat Microcontroller mit 500kByte bis zu 10MByte internen Ram. 
Man muss aber natuerlich ueber seinen schmalen AVR Horizont 
hinwegschauen.

Olaf
OP #4101761
Lesenswert?

Olaf schrieb:

> Renesas hat Microcontroller mit 500kByte bis zu 10MByte internen Ram.

Hast du eine Bezeichnung? Ich finde zwar welche bei diversen Distri's ab 
1MB RAM und ROM-less. Die kosten aber ab 30EUR aufwärts, z.B. der 
R5S72620W144FP. Meinst du sowas?


> Man muss aber natuerlich ueber seinen schmalen AVR Horizont
> hinwegschauen.

... gut dass ich einen solchen nicht habe ;)
Gast #4101856
Lesenswert?

Daniel S. schrieb:
> ...da lese ich aber immer nur "up to 64Kbytes"

Ja und, du kannst doch zusätzliche Adressbits ausgeben und damit "Bänke" 
ansteuern mit n mal 64k, wobei n kaum eine Grenze nach oben hat. Es ist 
so überhaupt kein Problem, Mega- bis Gigabyteweise Daten zu speichern, 
nur muss man natürlich den Speicher kaufen, geschenkt gibts den nicht.

Für deine Zwecke reicht z.B.

http://de.rs-online.com/web/p/speicherbausteine-sram/0538160/

für 3 Euro. Gibts auch in DIP, aber wer weiss wie lange noch.

Georg
OP #4102546
Lesenswert?

Georg schrieb:
> Daniel S. schrieb:
>> ...da lese ich aber immer nur "up to 64Kbytes"
>
> Ja und, du kannst doch zusätzliche Adressbits ausgeben und damit "Bänke"
> ansteuern mit n mal 64k, wobei n kaum eine Grenze nach oben hat. Es ist
> so überhaupt kein Problem, Mega- bis Gigabyteweise Daten zu speichern,

Jetzt verstehe ich das erst, die "Bänke" waren die Info die mir fehlte. 
So werde ich es machen. Dankesehr!
#4102738
Lesenswert?

Daniel S. schrieb:
> Hast du eine Bezeichnung? Ich finde zwar welche bei diversen Distri's ab
> 1MB RAM und ROM-less. Die kosten aber ab 30EUR aufwärts

Renesas R5F564MLCDFG hat 4MB Flash und 512 KB Ram und ist bei Glyn 
lieferbar.
Für 30€ bekommst Du fast drei davon ;-)

http://www.renesas.eu/media/products/mpumcu/rx/rx600/rx64m/rx64m_block.gif
http://www.renesas.eu/products/mpumcu/rx/rx600/rx64m/index.jsp
#4102860
Lesenswert?

@Daniel S. (ds1982)

>Derzeit benutze ich an Hardware ganz grob einen ATMega640 und ein
>Bluetooth-Modul, dem ich per UART oder SPI die Daten schicken kann. Der

Na dann bleib in der (Groß)familie.

>Gibt es externe RAM in einer solchen Größe? Sind die schnell genug? Wie
>schließe ich diese an meinen Prozessor an?

Ja. Das geht direkt. ATxmega mit 16MB RAM!
Kann man fertig im laden für wenig Geld kaufen, ATXmega explained.

Beitrag "Re: Viel RAM am kleinen Controller"

http://www.atmel.com/products/microcontrollers/avr/xplained.aspx

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren