Forum: Mikrocontroller und Digitale Elektronik Daten schnell auf HDD schreiben. Unlösbar?


von Ralf Schneider (Gast)


Lesenswert?

Hallo,
ich stehe vor der Aufgabe große Datenmengen mit sehr hoher
Geschwindigkeit auf Festplatte zu schreiben. Die Frage ist, mit welchen
Chips kann ich soetwas realisieren, bzw. welche Hardware schafft die
Datenrate? Geht’s auch ohne FPGA? Oder was ist am einfachsten? Wer kann
mir helfen? Es geht um folgendes:
Ich habe ein Sensorchip mit 9 out-ports. Jeder dieser par. Ports hat 10
Bits und ist mit 3,9 MHZ  getaktet. Evtl. werden aber nur 8 bits
benötigt. Das sind im besten Fall also 3,9Mhz x 9 Bytes =
35MBYTE/Sekunde, die ohne Aussetzer gespeichert werden müssen.  In
einer zweiten Ausbaustufe soll ein anderer Sensor eingesetzt werden,
der 2 (10Bit) Ports mit je 25MHZ liefert. (Wegen der extremen Datenrate
können/müssten dann sicherlich 2 Festplatten eingesetzt werden, je eine
pro Port. Evtl. ist auch einfach die ganze Hardware doppelt zu bauen,
nur mit gemeinsamen clock. Das gleich gilt auch wenn im ersten Fall
doch alle 10Bits aufgezeichnet werden müssen)

Auf der Festplatte ist jedoch kein Filesystem nötig. Die Daten können
also einfach Track für Track  und Sektor für Sektor geschrieben werden,
bis die Platte voll ist. (Das Auslesen erfolgt später in einem PC mit
entsprechendem low-level HDD Zugrifft).

von Sebastian (Gast)


Lesenswert?

Sers,

also erstmal brauchst du ne Platte die das mitmacht. Aber eine wo das
nich nur draufsteht sondern eine die das wirklich schafft. So wie das
aussieht wir das ja ein HighSpeed System und der "Sensor" wird auch
nicht billig sein. Wie lange soll der denn aufzeichnen?
Vielleicht ist es ja einfacher ein FPGA/CPLD zu benutzen und die Daten
erstmal in genügend SD-RAM Schreiben und dann gemütlich auf ne Platte
oder per USB oder so.

Seb

von Benedikt (Gast)


Lesenswert?

Heutige Festplatten haben ja ein paar MByte Cache, das sollte eigentlich
reichen wenn die Platte schnell genug ist. Mit einem FPGA/CPLD sollte
das kein Problem sein, ein heutige Festplatte kommt auf >20MByte selbst
unter schlechtesten Bedingungen.
Die Daten in den Festplattencache, dann auf die Platte. Allerdings kann
es doch mal passieren, dass die Platte zu langsam ist. Ist es schlimm
wenn Daten verloren gehen ?
Alternative, wenn 512MB reichen: SDRAM mit 100 oder 133MHz aus einem
PC, sollte man für ein paar Euro bekommen und dürfte mit 400MByte/s
schnell genug sein (da 64bit)
Alternative: SDRAM Puffer + HDD

von Matthias (Gast)


Lesenswert?

Hi

die Schreibrate der Platte ist erstmal das zweite Problem. Das erste
ist das Interface. Da man für Schreibraten von >30MB/s auf jeden Fall
UDMA66 mit einem ordentlich schnellen Speicher braucht der die Platte
beim DMA-Transfer auch versorgen kann. Ist mit Sicherheit kein
Wochenendeprojekt. Ich würde auch eher zur SDRAM-Variante tendieren
wenn der Speicher ausreicht.

Matthias

von Sebastian (Gast)


Lesenswert?

Sers,

den Speicher kann man doch auch auf zig GB erweitern. Manche Develop.
Boards unterstützen das schon "von Haus" aus. Ansonsten könnte man
auch ne PCI Karte entwickeln und dann den Rest nen PC machen lassen.
Wird wohl alles der selbe Aufwand sein.

seb

von Ralf Schneider (Gast)


Lesenswert?

Danke für die Antworten, ich weiß das es kein Wochenendprojekt ist. Die
Sensoren kosten zwischen 850,- und 1700,-€. Mit einem PC habe ich das
Projekt bereits realisiert. Festplatten sind dabei nicht das Problem.
(Ram geht nicht, ich brauche Dauerbetrieb). Mein 1,6GHz PC hat auch im
Dauerbetrieb (160GB Platte war nach 1,5Std voll) nicht ein einziges
Byte verloren, und das obwohl der erste Sensor per USB2.0 Nadelör an
den PC angeschlossen war. (Für die höheren Daten des zweiten Sensors
gibt es eine suteure spezielle Schnittstellenkarte und man muss 2
Festplatten mit RAID0 Controller einsetzten)

Neben den Kosten ist die PC grösse das Hauptproblem. Auch ein Notebook
oder Embeddet PC ist leider viel zu groß (und zu Stromfressend usw.)
Ich brauche eine sehr kleine Lösung.

Welch Chips schffen diesen speed? Wie sieht es mit FPGAs aus? Für jede
Idee oder Tipp (und evtl auch für eine Zusammenarbeit?) wäre ich sehr
dankbar.

von Sebastian (Gast)


Lesenswert?

Hallo,

Xilinx bietet ne Menge FPGA's mit viel Speed. Die haben welche mit GHz
Speed. Allerdings kosten die dann auch mal schnell ein paar hundert
Euro.
Preiswerter ist es bestimmt nen kleinen zu nehmen und ne "PCI Karte"
draus zu machen. Dann mit dem kleinen SingleBoardComputer paaren. Der
kann sich dann um den Rest kümmern. Die Daten sollen ja auch irgendwo
mal ausgewertet werden und eine Flut von 160GB.....

seb

von Jim (Gast)


Lesenswert?

Ich würde keinen FPGA nehmen.
Ich habe etwas entfernt Ähnliches mal mit einem DSP gemacht.
Der 21065L von Analog Devices hat dazu ein externes SDRAM-Interface
sowie einen DMA-Controller. Das macht der nebenher, der Prozessorkern
kann während des Transfers mit Volldampf arbeiten (eventuell
Vorverarbeitung der Sensor-Daten?).
Zwei Samples gibt es kostenlos.

Schau Dir die Datenblätter einfach mal an. Die A/D-DSPs sind auch in
Assembler sehr schön zu programmieren, insbesondere für den C-gewohnten
Programmierer. Ausserdem braucht der 21065L nicht viel zusätzliche
Hardware für Deinen Zweck.

von KoF (Gast)


Lesenswert?

schon mal an nen arm7 oder 9'er system gedacht?? ein 9'er system kann
an die 200 mips schaffen. ich war letzte woche auf dem EBV Tech Trends
2004 Symposium. dort hat atmel arm systeme gezeigt... war sehr
beeindruckt von der performance/vielschichtigkeit...

oder auch ti. die haben einen dsp mit einem arm gepaart (läuft glaube
ich unter der c5000 serie). auf jeden fall leisten diese systeme meiner
meinung nach extrem viel. auch haben sie zum teil pci, usb2.0,...

naja, auch toshiba, fujitsu,motorola ( durch freescale vertreten)...
waren anwesend... haben auch 8/16/32/64 bitter vorgestellt.... alles
sehr leistungsstarke systeme. die dürften alle etwas im programm haben,
was sich für deinen fall umschnitzen ließe....


mfg KoF

von Ralf Schneider (Gast)


Lesenswert?

Alos nochmal besten Dank,
mein (persönliches) Problem ist, ich bin ein wenig "eingerostet".
Die PC Applikation hat mir graue Haare gebracht, Hochsprachen und
WINDOOF liegen mir nicht und FPGA erfahrung hab ich auch noch nicht.
Assembler ist was anderes, damit bin ich aufgewachsen und da weiss man
schließlich was passiert....
Die Lösung muss auch nicht unbedingt die preiswerteste sein. Wäre zwar
schön, aber die Entwicklungskosten, Tools und Zeit muss ich auch
berücksichtigen. Habe ich die Auswahl, dann wähle ich lieber einen für
mich einfachen Weg...

@Jim:
Ich schaue mir gleich mal die Daten des 21065L an. Du hast erwähnt so
etwas ähnliches schon mal gemacht zu haben. Darf ich fragen was?

@Sebastian:
Nein, Aufbearbeitung und Auswertung soll auf jeden Fall später in einem
PC erfolgen. Die Festplatte(n) sind dazu in einem Wechselrahmen
eingebaut. (ist eine Platte voll, kommt die nächste rein und in der
zwischenzeit kann mam, wenn man will, die erste im PC auslesen)

@KoF:
Ich weiß, es gibt bestimmt viel brauchbares, aber bevor ich monatelang
bei verschiedensten Herstellern Daten durchblättere...

Gruß Ralf

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.