Hey Leute, ich bin relativ neu in Sachen Hardware-Entwicklung und steh zur Zeit vor einem Problem bei dem mir die Erfahrung fehlt um zu einem entsprechendem Ergebnis zu kommen. Ich habe einen 650Byte großen Datensatz, der aller 6.4µs aktualisiert wird. Diesen Datensatz möchte ich jetzt speichern und später mit einem "normalen" PC abrufen. Bisher hatte ich folgende Idee: Der Datensatz wird in einem entsprechend großem FPGA (ca. 100k Logikblöcke und einem Takt von 320MHz) aufbereitet. Danach wird der Datensatz an einen I/O-Controller weitergereicht, der diesen auf einer Festplatte ablegt, die über SATA angebunden ist. Der I/O-Controller ist per USB/PCI/SPI mit einem normalen PC verbunden. Sodass der PC die Daten bei Bedarf abrufen kann. Den I/O-Controller würde ich gern mit einem ARM realisieren. Nach einiger Zeit im Netz habe ich folgendes Board gefunden: http://de.mouser.com/ProductDetail/Critical-Link/80-000334/?qs=sGAEpiMZZMvFPGEOwQcrYz7FJqIgmRtm7tfO4%2f9MsEc%3d Diese Board erfüllt fast alle Anforderungen, die ich benötige. Nur der FPGA ist zu klein. Gibt es vergleichbare Boards, die für mein Problem geeignet sind oder gibt es vlt. sogar eine bessere Lösung für mein Problem? MfG & Thx E.J.
@ E. J. (Gast) >Ich habe einen 650Byte großen Datensatz, der aller 6.4µs aktualisiert >wird. Diesen Datensatz möchte ich jetzt speichern und später mit einem >"normalen" PC abrufen. Mehr oder weniger ganz normale Datenaufzeichung. 650Byte/6.4us macht "schlappe" 1,015 GByte/s bzw ~ 8Gbit/s. >Bisher hatte ich folgende Idee: Der Datensatz wird in einem entsprechend >großem FPGA (ca. 100k Logikblöcke und einem Takt von 320MHz) >aufbereitet. Danach wird der Datensatz an einen I/O-Controller >weitergereicht, der diesen auf einer Festplatte ablegt, die über SATA >angebunden ist. Der I/O-Controller ist per USB/PCI/SPI mit einem >normalen PC verbunden. ??? Ich denke du willst alle 6,4us 650 Byte speichern? Da ist selbst USB 3.0 mit 5 Gbit/s zu langsam. > Sodass der PC die Daten bei Bedarf abrufen kann. >Den I/O-Controller würde ich gern mit einem ARM realisieren. ;-) Der ist dafür ein wenig zu langsam. Für die Steuerung des FPGA tut es jeder beliebige, kleine Microcontroller. Aber braucht man den denn, wenn man per SATA oder PCIe reingeht? Da sind doch Steuerregister schon vorhanden.
Das Dir niemand antwortet, liegt mit 99%er Sicherheit daran, dass keiner Dein Systemkonzept nachvollziehen kann. Wo, also in welchem Format, kommen die Daten denn rein ? Warum kannst Du nicht einen entprechenden FPGA auf einer eigenen Platine aufbauen und die vorverarbeiteten Daten an den Mighty-ARM/DSP weiterschieben ? Grüße Andreas P.S: Angesichts Deiner Frage frage ich mich allerdings ob Du es wirklich hinkriegst, 100K@320MHz FPGA, oder auf dem ARM das SATA streaming (!) zu realisieren (nicht böse gemeint) ?
Falk Brunner schrieb: > Mehr oder weniger ganz normale Datenaufzeichung. 650Byte/6.4us macht > "schlappe" 1,015 GByte/s bzw ~ 8Gbit/s. Nö Falk sind "nur" 101,5MByte/s Viele Grüße Andreas
Scheißdreck, Komma verrutscht. Naja, das ist schon eher machbar, aber auch nix für einen ARM in Echtzeit. ggf. noch Gbit Ethernet.
Hey Leute, erstmal Danke für eure Antworten. Auf dem FPGA arbeite ich mit 2 Takten. Mit dem 320MHz Takt wird ein 2048 Byte großer Datensatz entgegen genommen. Davon werden 600 Bytes an den 150MHz Takt weitergereicht. In diesem Teil des Designs werden zusätzliche Werte berechnet, sodass ich am Ende ca. 650Bytes an Daten habe. Die schieb ich zur Zeit in den RAM meines Entwicklerboards. Die Daten könnten noch über 8 Datensätze gemittelt werden, sodass man am Ende auf 12,69MB/s kommen würde und das ist, denke ich, ein realistischer Wert. Natürlich wäre es jetzt möglich diese Daten an den Mighty-ARM/DSP zu senden, aber ich hätte gern alles auf einer Platine, da das Projekt relativ platzkritisch ist. Die Frage ist nun, welche Boards dafür in Frage kommen bzw. wie man das Ganze löst. Ein paar Ansätze dazu hab ich schon: - I/O Controller mit FPGA und SATA-Controller. Die Daten werden auf dem FPGA aufbereitet und an den ARM weitergereicht, der diese dann per SATA auf der HDD speichert. Ein PC kann sich dann die Daten von dem Controller geben lassen, wenn diese benötigt werden - I/O Controller mit PCIe. Die Daten werden auf dem FPGA aufbereitet, dann an den ARM weitergegeben. Dieser realisiert die Kommunikation mit dem PC über PCIe. Der PC speichert die Daten dann auf der HDD bzw. in einer Datenbank. Aber wie im ersten Post schon geschrieben fehlt mir die Erfahrung um zu Wissen welche dieser Ideen besser ist. Da das Ganze ein Projekt meiner Firma ist, kann ich leider nicht genauer werden. Ich hoffe trotzdem das ich eure Fragen ausreichend beantworten konnte. MfG & Thx E.J.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.