geeignete Entwicklerplatform

Gast #3004175
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.
#3005011
@  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.
#3005016
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) ?
Gast #3008368
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.