Hallo, ich möchte eine IP Camera bauen und habe einige Fragen dazu: 1.) Bei meiner Suche habe ich lediglich dieses Projekt gefunden: http://www.ime.usp.br/~fr/sbc/ Kennt jemand noch weitere? 2.) Die wesentlichen Bauteile einer IP-Camera sind der CMOS Image Sensor, der Processor, SDRAM zum Zwischenspeichern damit wenn z.B. Verzögerungen auftreten keine Bildinformationen verloren gehen und eine Schnitstelle wie GigE oder USB. Warum wurde dann im oben genannten Projekt sowohl ein ARM9-Prozessor als auch ein FPGA mit jeweils eigenem SDRAM verwendet? Ist das nicht doppelt gemoppelt? 3.) Was ist am besten als Prozessor geeignet? Es gibt da ja drei verschiedene Lösungen wenn ich das richtig sehe: a) über einen FPGA b) über einen MPU c) oder auch über einen Digital Media System-on-Chip (DMSoC) wie z.B. den DM368 von TI. Anmerkung: Ich hätte gerne die Möglichkeit das Bildrohmaterial unkomprimiert zu übertragen als auch einen eigenen Video-Codec verwenden zu können. 4.) Ip Cameras sind ja einfach per Webbrowser aufrufbar. D.h. diese müssen einen Webserver haben. Läuft auf diesem Webserver ein Programm ab oder ist dort eine Webseite abgelegt? 5.) Ich brauche GigE. Ich nehme mal an es kommt eigentlich nur ein FPGA wegen der hohen Datenrate in Frage? Kann so ein FPGA auch als Webserver fungieren?
Ich vermute mal, dass der ARM den Webserver implementiert und der FPGA für die komplette Videobildverarbeitung zuständig ist.
Andreas U. schrieb: > Warum wurde dann im oben genannten Projekt sowohl ein ARM9-Prozessor als > auch ein FPGA mit jeweils eigenem SDRAM verwendet? Ist das nicht doppelt > gemoppelt? Nein auf keine Fall. Du musst dir mal ausrechnen was da für Daten auf dich zukommen. nehmen wir mal 640*480 als Standartauflösung. Bei 8 Bit für RGB und 30 fps. 640*480*3*8*30 = 221.184.000 Bits pro Sekunde = 27.648.000 Byte/s = 27.648 kB/s = 27,648 Mb pro Sekunde. In dieser Zeit muss der Datenstream AD-Gewandelt werden, komprimiert werden und auf Ethernet bzw. dessen Sub-Layer gelegt werden. Dir ist schon klar, dass das irrsinnige Datenmengen sind? Bei der gwählten Auflösung sind wir aber bei weitem noch bei Webcamqualität ... Vorallem in der Farbtiefe sind wir noch nicht sonderlich weit... Glaub mir da wird der Speicher voll ausgelastet ... darum auch der externe SDRAM. Man muss ja die 28Mb pro Sekunde irgendwo unterbringen bis sie weggeschafft werden... Der FPGA ist übrigens in Kombination mit dem ARM Prozessor an der Komprimierung (das frisst ordentlich Leistung) am werkeln. Vermutlich macht der ARM auch noch den Webserver mit. Andreas U. schrieb: > 3.) Was ist am besten als Prozessor geeignet? Es gibt da ja drei > verschiedene Lösungen wenn ich das richtig sehe: > a) über einen FPGA Ein FPGA ist kein Prozessor sondern eine Ansammlung von Logikelementen (primär Flip Flops). Die kann der Anwender für seine Bedürfnisse entsprechend verschalten. Mit einem Microcontroller oder Prozessor hat das zunächst mal überhaupt nichts zu tun. > b) über einen MPU auch der muss angesteuert werden. Ein Mikroprozessor darf nicht mit einem Micrcontroller verwechselt werden (!) > c) oder auch über einen Digital Media System-on-Chip (DMSoC) wie z.B. > den DM368 von TI. Das wäre eine akzepable Möglichkeit. > Anmerkung: Ich hätte gerne die Möglichkeit das Bildrohmaterial > unkomprimiert zu übertragen als auch einen eigenen Video-Codec verwenden > zu können. Ich befürchte das wird nicht möglich sein - siehe Datenaufkommen und dem was du zur Übertragung zur Verfügung hast. Andreas U. schrieb: > 4.) Ip Cameras sind ja einfach per Webbrowser aufrufbar. D.h. diese > müssen einen Webserver haben. Läuft auf diesem Webserver ein Programm ab > oder ist dort eine Webseite abgelegt? Ich empfehle dir dich etwas mit TCP/IP Stacks zu beschäftigen. Wie ich das interpretiere hast du recht wenig Ahnung in diesen Sachen (sorry nimm's mir nicht persönlich). Prinzipiell und grob gesagt fungiert ein Mikrocontroller als Webserver. Er biete z.B. die HTML Dokumente an welche dann mit einem entsprechenden Webclient (z.B. deinem Webbrowser) abgerufen werden können. Schon alleine das ist für ungeübte eine Aufgabe für ein halbes Jahr das zu realisieren. Dann muss dort noch der Videostream codiert werden und dann in einem geeigneten Datenformat auf den Weg geschickt werden. Ergo: auf dem Mikrocontroller (bzw. auf Grund der Größe auf einem externen Speichermedium (z.B. SD-Karte) ist die entsprechende Website hinterlegt). Google mal nach AVR Webserver oder nach Microcontroller Webserver. Andreas U. schrieb: > 5.) Ich brauche GigE. Ich nehme mal an es kommt eigentlich nur ein FPGA > wegen der hohen Datenrate in Frage? Kann so ein FPGA auch als Webserver > fungieren? Ja kann er. Das ist alles eine Frage des Aufwandes und der Zeit: Hier der absolut einfachste Einstieg in die FPGA Welt mit Netzwerkanschluss. Wir reden hier noch lange nicht von einem Webserver ! http://www.fpga4fun.com/10BASE-T0.html Prinzipielles zu FPGAs: VHDL (=grob gesagt FPGA Programmiersprache) zu behrerrschen ist eine Kunst. Mikrocontroller sollte man davor auf dem FF beherrschen. Dann kann man sich daran wagen VHDL zu machen. Bis man aber effizient genug programmieren kann um dein Vorhaben zu realisieren vergehen mit Sicherheit mehrere Jahre. Im Grunde kommt nur ein FPGA in Frage (ganz richtig wegen der hohen Datenraten). Sehr viel Entspannung würde ein Video-IC bringen der dir das Datenmaterial kodiert. Diesen Stream müsste man dann 'nur' noch via FPGA und TCP/IP weiterleiten. Mit 'nur' meine ich eine Entwicklungszeit von einem Jahr oder mehr bei mehreren Stunden Hobby-Elektrotechnik auf höchstem Niveau. Problem mit FPGAs: teuer (!). Ein Hobbybastler kann sich einen Mikrocontroller für 5Euro noch leisten. Brauchbare FPGAs in deinen benötigten Dimensionen gehen bei 180-200€ los und hören irgendwo bei 500€ wieder auf. Hinzu kommt die benötigte Entwicklungsumgebung und selbstverständlich ausreichende Debugging-Tools. Da wirst du gut Geld los werden. Fazit: Sie mir nicht böse aber du scheinst Anfänger auf diesem Gebiet zu sein (kann man deinen Fragestellungen entnehmen). Dieses Projekt ist was für ausgewachsene Entwicklungsingenieure mit 10-20 Jahren Berufserfahrung auf diesem Gebiet. Wenn du dich anstrengst - viel liest und autodidaktisch veranlagt bist dann kannst du es schaffen - keine Frage. Als ca. Zeit würde ich ohne Spaß 5 bis 8 Jahre Entwicklungszeit (bei 1 Man) einplanen bist das Produk einiger Maßen verwendbar ist. Lies dich mal ein bisschen ein und überlege dir, ob du das wirklich realisieren möchtest und ob du dazu Zeit und Nerven hast. Das zweite ist ein nicht zu unterschätzender Faktor. Ca. die Hälfte aller Hobby-Entwickler geben irgendwann deswegen ein Projekt aus. Jahrelange Frustraiton, etc... Wenn es irgendwie geht dann rate ich dir zu einer fertigen Kamera ... Viel Erfolg =)
Wo soll die Kamera denn eingesetzt werden? Zu 4): Kameras nach GigE Standard haben keinen Webserver drin und liefern idR nur unkomprimierte Bilddaten für messtechnische Aufgaben. Kameras mit Ethernet ohne AIA GigE Standard sind meist Überwachungskameras. Da will man dann viele im Netz haben und hier ist z.Teil sehr aufwändige Software drin, Komprimierung und Webserver inclusive.
Schonmal danke für eure Tipps. Der AT91RM9200 ist natürlich ein MCU. Hatte ich falsch in Erinnerung. Über das Programmieren des FPGA mache ich mir keine Sorgen. Habe zwar noch nicht mit VHDL gearbeitet, aber das sollte nicht das Problem werden. Was mir allerdings Kopfzerbrechen gemacht hat ist der Webserver, weil ich mich in diesem Bereich gar nicht auskenne. Das geht aber wohl auch auf einem FPGA: http://www.altera.com/support/examples/nios2/exm-micro_tutorial.html Zum Preis des FPGA. Im Auge habe ich den Altera Cyclone IV. Der ist mit ca. 30€ ja noch recht günstig. Reicht dieser etwa nicht aus um 1080p bei 60 fps zu verarbeiten? Und ist dieser von der Rechenleistung zum komprimieren geeignet? @JojoS Dass GigE Cameras wie z.b. von Point Grey keinen Webserver haben wusste ich nicht. Es gibt wenn ich das sehe also 2 Möglichkeiten: Ethernet (GigE) + Control Software und Ethernet + Webserver Erstere Lösung ist wahrscheinlich die einfachere, allerdings auch für den PC rechenintensiver. So ein Webserver wäre schon nett.
Ich habs aktuell so gemacht. Dockstar mit Logitech Webcam C160 für ~15 Euro bei Reichelt. Kostet dich mit Dockstar (20 Euro) also 35 Euro. http://www.rudiswiki.de/wiki/DockStarWebCamStream Ausserdem kannst du die CAM auf Infrarot umbauen. Wenn du es nativ bauen willst, dann wirds aufwändiger, aber ob sich das lohnt?
@Benjamin Dass es fertige Cams gibt weis ich, aber darum geht es nicht ;). Ich habe mich nochmal ein wenig schlau gemacht. Um den FPGA Ethernet fähig zu machen müsste ich wohl selber einen Gigabit Ethernet IP Core schreiben bzw. kaufen. Auf http://opencores.org und http://www.fpga4fun.com/10BASE-T0.html scheint es ja Implementierungsbeispiele zu geben. Aber kann ich mir den ganzen Aufwand den Ethernet IP Core selber zu schreiben nicht sparen indem ich z.B. diesen http://de.farnell.com/texas-instruments/tlk2201ajrzqe/transceiver-enet-1-1-6gbps-80bga/dp/1576962 Gigabit Ethernet Tranceiver verwende?
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.