Hi Liebes Forum,
Ich beschäftige mich gerade mit der Suche nach einer geeigneten
Hardware, mit der ich einen "mini-Webserver" realisieren kann, der 2-4
Webcams streamt. Außerdem soll noch genug Platz sein für diverse PWM
Kanäle und analoge Eingänge. Prinzipiell sind FPGAs ja ziemlich
flexibel, aber sind Sie dabei auch noch leistungsstark genug um per
ethernet das ganze zu Streamen?
Wie realisiere ich dass dann?
Würde nen FPGA nehmen + Flash + RAM + (wie bekomme ich ethernet
dadran?).
Dann nen SoftCore Drauf, der den Webserver macht und irgendwie (wie
eigtl am besten) die Bilder der webcam einließt (und komprimiert?)
Habe im Inet Beispiele gesehen wo ein Cyclon IV ne HD Webcam an nem
Monitor per DVI ausgibt (und h264 komprimiert!!!), also Leistungsmäßig
sollte es daher auch mit mehreren Webcams (bei kleinerer Auflösung) gut
gehen ... oder?
Kurz:
1) FPGA
2) 2-4 Webcams
3) Ethernet
4) Display (mit Touch?)
5) IOs ... (evtl mit nem kleinen Mega über RS232)
Was muss dann alles auf dem FPGA Board sein? (minimal)
Fragen über Fragen ... aber wichtig ist mir erstmal nur ob es machbar
ist oder ob es an der Leistungsgrenze ist, oder ob ich bei meinen
Recherchen gerade genau in die falsche Richtung gehe.
LG Christoph
Christoph schrieb:> Ich beschäftige mich gerade mit der Suche nach einer geeigneten> Hardware, mit der ich einen "mini-Webserver" realisieren kann, der 2-4> Webcams streamt.
Kauf dir einen fertigen Zigarettenschachtel-PC und schließ die Kameras
über USB da dran an.
> Was muss dann alles auf dem FPGA Board sein? (minimal)
Naja, die passenden Schnittstellen eben.
Aber sei dir sicher das ist an dieser Stelle dein ALLERKLEINSTES
Problem. Wenn du noch nichts mit FPGAs gemacht hast, dann dürftest du
hier an dieser Stelle mit mindestens 1 Jahr (Vollzeit) rechnen, bis du
wenigstens annähernd in die Richtung kommst, die du dir vorstellst.
> Prinzipiell sind FPGAs ja ziemlich flexibel, aber sind Sie dabei auch> noch leistungsstark genug um per ethernet das ganze zu Streamen?
Ja.
BTW:
Was darf das ganze denn kosten?
Bis wann brauchst du das?
Hi Christoph,
>> Dann nen SoftCore Drauf, der den Webserver macht und irgendwie (wie> eigtl am besten) die Bilder der webcam einließt (und komprimiert?)>
Mein Tip: Vergiss den Softcore. Da bist du EWIG dran, und "missbrauchst"
eigentlich das FPGA für die falschen Sachen.
> Habe im Inet Beispiele gesehen wo ein Cyclon IV ne HD Webcam an nem> Monitor per DVI ausgibt (und h264 komprimiert!!!), also Leistungsmäßig> sollte es daher auch mit mehreren Webcams (bei kleinerer Auflösung) gut> gehen ... oder?>
Gehen tut das zu akademischen Zwecken schon alles.
Aber zur pragmatischen Lösung würde ich Dir eher zu einem Raspberry
Pi-Computer raten (wenn er dann gegen Ende Jahr endlich raus ist).
> Kurz:>> 1) FPGA> 2) 2-4 Webcams> 3) Ethernet> 4) Display (mit Touch?)> 5) IOs ... (evtl mit nem kleinen Mega über RS232)>>> Was muss dann alles auf dem FPGA Board sein? (minimal)>>> Fragen über Fragen ... aber wichtig ist mir erstmal nur ob es machbar> ist oder ob es an der Leistungsgrenze ist, oder ob ich bei meinen> Recherchen gerade genau in die falsche Richtung gehe.>
Im allgemeinen hat es sich bei mir bewaehrt, einen leistungsfaehigen
Hybriden wie den Blackfin als Front-End (uClinux, encoding) zu nehmen
und ein FPGA zur Vorverarbeitung vorzuschalten. Das alleine ist schon
genug aufwendig. Fuer Standardzwecke wie h264-encoding gibt es aber
genuegend fertige Referenzloesungen.
Gruesse,
- Strubi
Ich habe gerade Ethernet an einen Cyclone IV angeschlossen. Dafür
brauchst man noch ein PHY-Chip (z.B. Broadcom oder Marvel) und die
Buchse mit den Magnetics. Alleine an dem Ethernet habe ich über einen
Monat gesessen. Das ist aber nur die Ethernet-Schicht an sich. Für die
Kameras brauchst du ja noch ein Protokoll darüber (z.B. Gige), was nicht
sehr einfach mit einem FPGA zu realisieren ist.
Den Aufwand von allem würde ich jetzt bei ca 1 Jahr sehen. Dabei ist
nicht die Leistungsstärke des FPGAs das Problem, sondern mehr die
Erfahrung des Konstrukteurs in VHDL und Elektronik.
>BTW:>Was darf das ganze denn kosten?>Bis wann brauchst du das?
der Preis ist nicht fix, sollte aber möglichst im unteren Drittel des
3stelligen bleiben. Brauchen tue ich das garnicht ;-) es ist einfach nur
um es zu lernen.
>Mein Tip: Vergiss den Softcore. Da bist du EWIG dran, und "missbrauchst">eigentlich das FPGA für die falschen Sachen.
also nen Hardcore ;-) was gibt es denn in die richtung was genug
leistung hat? nen ARM?
>Blackfin
Den guck ich mir mal an
>Den Aufwand von allem würde ich jetzt bei ca 1 Jahr sehen. Dabei ist>nicht die Leistungsstärke des FPGAs das Problem, sondern mehr die>Erfahrung des Konstrukteurs in VHDL und Elektronik.VHDL quasi keine Erfahrung, Elektronik Kenntnisse sind nicht allzu
schlecht, habe schon einiges mit ATMegas gemacht, die aber für dieses
Projekt eindeutig zu schwach sind :-D ... studiere Elektrotechnik und
dort sind mir eben auch FPGAs über den weg gelaufen und ich hatte
gedacht mein Projekt vllt damit zu realisieren, weil ich die teile
einfach cool finde ;-)
Wenn man mir aber rät einen echten "hardcore" zu nehmen muss ich mir das
basteln an FPGAs wohl noch verkneifen bis ich ein anderes Projekt am
Start habe.
Wie sieht es denn mit den "hardcores" aus? Welche bieten mit
vertretbaren Aufwand Ethernet und genug IOs für 4 Kameras (evtl per
USB), und die nötige Rechenpower für die Streams? Ebenso wie ein Ausgang
für nen TFT (live Kamerabild(er))?
LG Christoph
Dann muss der FPGA halt im Notfall "nur" das drummherum machen ;-) dann
kann ich endlich mal einen verwenden :-p
Christoph schrieb:> Wie sieht es denn mit den "hardcores" aus? Welche bieten mit> vertretbaren Aufwand Ethernet und genug IOs für 4 Kameras (evtl per> USB), und die nötige Rechenpower für die Streams? Ebenso wie ein Ausgang> für nen TFT (live Kamerabild(er))?
Hi Christoph,
per USB wird das mit dem Eigenbau aufwendig. Die Kirkwood-Marvell-SoCs
(ARM) koennen sowas, siehe "Seagate Dockstar". Fragt sich jetzt, was Du
da alles codieren willst, ich wuerde mal klein anfangen. Ein
Graphikdisplay ist auf FPGA-Basis nicht so teuer, wenn die I/Os fehlen.
Manche TFTs mit embedded Controller/RAM kann man auch parallel per
uC-Interface ansteuern, ist aber u.U. nicht schnell genug fuer weiche
Videowiedergabe.
Auf dem Blackfin habe ich ne gemultiplexte Loesung gemacht (tristated
Bus mit mehreren Kamera-SoCs, die gleich JPEG liefern). MJPEG-Stream
geht per WLAN-USB-Stick in den Aether.
Fuer neuere SoCs gibt es LVDS-Interfaces, da wuerde ich dann wieder ein
FPGA zur Parallelisierung empfehlen. Muss man aber alle Kamerachips
"mastern", damit sie synchrone frames liefern.
Es lohnt sich m.E. auf bestehende 'Lego'-Komponenten zurueckzugreifen,
und alle Intelligenz in die Kamera zu verfrachten. z.B. als Display
einfach ein WLAN-Pad nehmen (Archos, Samsung, usw.)
Aber eigentlich willst Du ja mit FPGAs arbeiten, richtig?
Es ist schon recht spannend, gute Debayer-Algorithmen mit einem
USBfaehigen Evalboard (z.B. Digilent Nexys) zu "prototypen".
Alleine die FX2-Cypress-Geschichte verschlingt schon Mannwochen :-)
Gruesse,
- Strubi
Ich würde irgendein Embedded Linux nehmen und ggf. mit Mikrocontroller
die PWM und ADC Geschichten erweitern:
http://www.omnima.co.uk/store/catalog/MiniEMBWiFi-p-16180.htmlhttp://www.8devices.com/product/3/wi-fi-4-things
Die beiden Boards sind für ca. 50€ zu haben. Haben USB, WLAN und
Ethernet. Das von Omnima rennt bei mir als WIFI Printserver mit OpenWRT
trunk und bin absolut zufrieden damit.
Kommt halt drau an was du genau machen willst. Was das für Kameras sind
und was an Daten da herumgeschaufelt werden muss...
Christoph schrieb:> VHDL quasi keine Erfahrung, Elektronik Kenntnisse sind nicht allzu> schlecht, habe schon einiges mit ATMegas gemacht, die aber für dieses> Projekt eindeutig zu schwach sind :-D ... studiere Elektrotechnik und> dort sind mir eben auch FPGAs über den weg gelaufen und ich hatte> gedacht mein Projekt vllt damit zu realisieren, weil ich die teile> einfach cool finde ;-)
Sind sie auch.
Aber ich würde vorschlagen: kauf dir irgendein EVAL-Board und fang mit
VHDL auf FPGAs an. Ein Lauflicht zuerst, dann eine serielle
Schnittstelle, dann einen VGA-Monitor ansteuern, usw.
...und für das andere Projekt könntest Du evtl. auch mal einen Blick auf
das Beagle-Board werfen. Gibt's auch eine rege Gemeinde dazu:
http://www.beagleboard.org