Guten Tag zusammen,
ich möchte mich an euch wenden da ich selber keine Erfahrungen mit
FPGA´s habe und daher leider auch nicht bewerten kann ob diese für meine
Anwendung sinnvoll und brauchbar sind. Falls ja würde ich mich natürlich
selbst einarbeiten und versuchen das Projekt damit zu realisieren.
Ich gehe mal davon aus das ich hier ein paar FPGA erfahrene finden kann
und würde gerne mal eure Meinung hören ob die Dinger für meine Anwendung
sinnvoll wären.
Es handelt sich um ein Kamera-System welches Bilddaten verarbeiten muss.
Dazu muss ich zum einen erstmal 4 Bilder im Speicher haben und dann ein
paar mathematische Operationen (+,-,*,sqrt) auf jeweils Pixel 1 von Bild
1 bis 4, Pixel 2 von Bild 1 bis 4 usw. ausführen und das daraus neu
entstehende Bild über Ethernet ausgeben.
Für die Ausgabe des Bildes würde ich den Wiznet W5300 verwenden falls
das in Kombination mit dem FPGA Sinn macht.
1 Pixel hat jeweils 12 Bit (+1 Saturation Bit), könnte aber auch für
besser Verwendbarkeit mit dem W5300 auch auf 16 Bit erweitert werden...
2 Byte sind halt schöner zu übertragen ;-)
Die Bildgröße ist 320*240 Pixel (150KB) bei 25FPS.
Die Kameraschnittstelle scheint ein Standard zu sein
(vsync,hsync,data0:11,shutter,pixel-clk etc.)
Die Übertragungsgeschwindigkeit ist mit 40 oder 80 MHz wählbar, es
werden dann in jeweils 8 bzw. 16µs zwei Bildzeilen übertragen wobei jede
Pixelclock einen Pixel überträgt. Nach fertigstellen einer Zeile erfolgt
eine Pause bei der Übertragung von 7,9 bzw. 15,8µs (Hsync -> high).
Ich habe schon mal vorab eine Bewertung vorgenommen was für eine CPU ich
bräuchte und da wäre ich im Bereich von 1-1,4 GHz, würde also auf einen
ARM oder ähnliches hinauslaufen. Ich habe da allerdings zweifel ob das
mit dem Timing so funktioniert wie ich es gerne hätte.
Ein bekannter hatte mir nun einen FPGA als alternative genannt, da er
aber auch keine Erfahrungen damit hat möchte ich mal hier fragen ob es
mit FPGA möglich ist diese Anwendung sinnvoll umzusetzen.
Quasi 4 Bilder im Speicher ablegen, daraus ein neues erzeugen und dieses
dann im W5300 ablegen und versenden? Zusätzlich wäre wahrscheinlich noch
ein "kleiner" Controller zur Konfiguration des W5300 sowie der Kamera
(über I²C) nötig, falls der FPGA dafür noch Platz hätte vielleicht als
Softcore?!
Entschuldigung für den langen Text, ich hoffe ich habe alles wichtige
erwähnt. Nun wüsste ich gerne was die Profi´s unter euch darüber denken,
zum Programmieren des FPGA würde ich vermutlich dann jemanden holen der
das kann, meine Aufgabe ist momentan aber erstmal die nötige Hardware zu
entwerfen und ich hoffe auf eine Bewertung ob der FPGA das kann oder das
ganze keinen Sinn ergibt?
Danke schonmal im Vorraus
Viktor
@Viktor (Gast)
>Ein bekannter hatte mir nun einen FPGA als alternative genannt, da er>aber auch keine Erfahrungen damit hat möchte ich mal hier fragen ob es>mit FPGA möglich ist diese Anwendung sinnvoll umzusetzen.
Ja. Großen SDRAM dran, geht.
>Quasi 4 Bilder im Speicher ablegen, daraus ein neues erzeugen und dieses>dann im W5300 ablegen und versenden? Zusätzlich wäre wahrscheinlich noch>ein "kleiner" Controller zur Konfiguration des W5300 sowie der Kamera>(über I²C) nötig, falls der FPGA dafür noch Platz hätte vielleicht als>Softcore?!
Genau.
>Entschuldigung für den langen Text, ich hoffe ich habe alles wichtige>erwähnt.
Ja.
> Nun wüsste ich gerne was die Profi´s unter euch darüber denken,>zum Programmieren des FPGA würde ich vermutlich dann jemanden holen der>das kann, meine Aufgabe ist momentan aber erstmal die nötige Hardware zu>entwerfen
Kauf lieber erstmal ein fertiges Evalboard, dort ist alles drauf was du
brauchst.
Ist es nicht "einfacher" ein Raspberry Pi 2 zu nehmen? Ich glaube, bei
320x240@25 fps wird man da keine Probleme bekommen (habe jetzt aber
nicht gerechnet)
Kest
Erstmal danke für die antworten bisher.
@Falk Brunner
Sehr effizient beantwortet :-)
> Kauf lieber erstmal ein fertiges Evalboard, dort ist alles drauf was du> brauchst.
Haben sowieso schon Eval-Boards im Labor, hatte eben bisher nur nichts
damit gemacht und die Leute die sich damit auskennen sind nicht mehr da
:-/
Würde es daher eh erstmal damit probieren, wollte aber eben wissen ob
das überhaupt sinn macht mich damit auseinander zu setzen um nicht
nacher eine Woche dran rum zu machen nur um festzustellen das es eben
nicht geht. Aber soweit klingt das schonmal gut, dann werde ich die Zeit
mal investieren.
Kest schrieb:> Ist es nicht "einfacher" ein Raspberry Pi 2 zu nehmen? Ich glaube, bei> 320x240@25 fps wird man da keine Probleme bekommen (habe jetzt aber> nicht gerechnet)>> Kest
Bei diesen ganzen "Mini-PC" Lösungen habe ich die Befürchtung das mir
das OS zu viele Probleme beim Timing erzeugen wird. Hatte gesehen das
das Rasp 2 ein "CSI" Kamera Interface besitzt allerdings ist dieses ein
Serielles, mein Kamerasensor bietet aber nur ein 12-Bit parallel
Interface, außerdem wären die 900 MHz sehr knapp bemessen, ich hatte
1-1,4 GHz als Single Core mindestens ausgerechnet daher könnte das schon
zu knapp werden... aber danke für die Idee.
Lieben Gruß
Viktor
320*240 Pixel sind 76800 Pixel, bei 25FPS macht das 1,9M Macroflops,
also deine Formel durcharbeiten. Macht pro Formeldurchlauf ~500ns bzw
500 Takte bei 1 GHz CPU Takt. Hmmm.
Mit Hilfe einer aktuellen GPU sicher machbar, wenn man die Software
beherrscht. Nur per CPU ist nicht so sinnvoll.
Das ist ja genau mein Problem weswegen ich mich nach alternativen zur
CPU umschaue :-P
Aber danke für deine Hilfe, ich werde mich jetzt mal intensiv mit den
FPGA´s auseinandersetzen, falls sich dabei nochmal fragen auftuen werde
ich mich wieder vertrauensvoll an euch wenden.
Danke