Forum: Platinen geeignete Entwicklerplatform


von E. J. (Gast)


Lesenswert?

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.

von Falk B. (falk)


Lesenswert?

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

von Andreas H. (ahz)


Lesenswert?

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

von Andreas H. (ahz)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

Scheißdreck, Komma verrutscht.
Naja, das ist schon eher machbar, aber auch nix für einen ARM in 
Echtzeit.
ggf. noch Gbit Ethernet.

von E. J. (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.