Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche µC mit High-Speed USB
Hey Leute,
Ich suche einen µC der zu folgendem fähig ist:
1) erzeugen eines 20MHz PWM-Signal
2) High-Speed USB
3) 4 AD-Pins mit min 10bit Auflösung und ca 44kHz (kann auch etwas weniger sein) Sampling-Rate (für Mikrofone)
4) mindestens 25 I/O-Pins (ohne USB)
Zur verwendung: Ich möchte die Signale von 2 Kameras (640*480,16Bit) bei 30fps und 3 Mikrofon-Signale bei min. 10Bit und cs 44kHz übertragen.
Das Problem ist, dass bei Full-Speed USB (12MBit/s) nicht einmal genug Bandbreite für die Kameras vorhanden ist
(640*480 Pixel * 16 Bit * 2 Kameras * 30fps = 36.864.000 Bit/s);
Ein µC wie der PIC18F2455 wäre bis auf das "langsame" USB perfekt
Ich hoffe es fällt jemandem eine lösung ein
MFG
Schau dir doch mal den AVR32 an. Der sollte das denke ich alles können.
Gibts von Atmel als günstiges Evaluationsboard.
Gruß Tim
Für einen PC kenn ich ne PCI Karte mit 4 Kamera und 4 Audioeingängen,
das läst sich bin 32 Kameras/audio erweitern und macht 25 Bilder/s pro
Kamera......Braucht aber halt einen PC. Dafür können auch 5 Megapixel
Netzwerkkameras angeschlossen werden. Aufgezeichnet wird in Echtzeit
im mpeg4......tolle aber auch teure Anlage.
Der AVR 32 hat (glaube ich) auch video in.....
Gruß Richard
@Richard: eine PCI-Karte kommt nicht in Frage da sie viel zu groß ist (größer als das Zielsystem ;))
@Ls4: der AVR32UCA3 scheint das zu können was ich brauche, allerdings sind 144 pins bei weitem zu viel.
Wäre es nicht möglich die bilddaten auf dem µC zu komprimieren und erst dann zu übertragen;
png würde nicht schlecht klingen da es zeilenweise angewandt wird,
doch weiß ich nicht wie gut die komprimierung bei echten Fotos ist (also keine Vektografiken o.Ä).
Vielleicht hat jemand Erfahrung mit sowas die er mit mir teilen kann.
LG XBert
Hallo Bert,
natürlich kannst du auf dem µC gleich irgendetwas mit den Bildern machen. der AVR32 sollte dafür ausreichend Leistungsreserven zu haben.
Was ist denn das Problem bei zu vielen pins?
Du musst sie ja nicht nutzen. Mir würde mi weniger Pins noch der Parallax Propeller einfallen, aber ich weiß nicht in wie weit der alle deine Anforderungen abdeckt.
Je nach Anwendung der Kamera könntest du natürlich auch eine Filterung der Bilder durchführen. Hier bietet sich ein Gauß-Filter an. Dieser bietet im Vergleich zu Mittelwertfiltern eine bessere "Darstellung", da sein Verhalten im Fourierraum viel besser als der des Mittelwertfilters ist. Danach könntest du da Bild neu abtasten und mit reduzierter Auflösung an den PC senden. Du hast dann zwar eine deutlich geringere Auflösung, aber auch eine deutlich geringere Datenrate.
Außerdem kannst du auch die Anzahl der Farben reduzieren. Da gibt es ebefalls mehrere Möglichkeiten. z.B. mittels Median Cut.
Das alles kann die Datenrate schon massiv reduzieren.
Zur JPEG Komprimierung auf µCs habe ich keine Erfahrung. Dürfte allerdings die eleganteste Lösung sein.
Viele Grüße,
Tim
:D ich heiße nicht Bert aber egal!
Das Problem am Avr32 ist, dass er zu groß für die anwendung ist (max platinengröße ist 5*4cm, wobei ca 5-7mm von den 4cm für die cams draufgehn).
JPEG-Komprimierung ist nicht sinnvoll, da das gesamte bild im Ram sein muss (600KB pro bild) und relativ intensive berechnungen durchgeführt werden müssen:
1. Farbraumumrechnung
2. Tiefpassfilterung der Farbdifferenzsignale
3. Blockbildung und diskrete Kosinustransformation
4. Quantisierung
5. Umsortierung und Differenzkodierung des Gleichstromanteils
6. Entropiekodierung
(aus wikipedia)
Doch befürchte ich, dass dies bei PNG ebenfalls relativ aufwendig ist:
1. Vorfiltern (optional)
2. Deflate-Algorithmus (vorteil: fertige lib [zlib]; ich weiß aber nicht ob das für Pic/AVR verwendet werden kann)
LG
es gibt doch diverse codec-ICs die ein interface für video/audio-rohdaten haben und hinten dann einen video/audio-stream auswerfen, den man dann nur auf USB umlenken müsste ... theoretisch würde es schon reichen, wenn man ein USB-Hub zerlegt, dann die leitungen der ports an die codec-chips anlötet (mit nem FTDI oder so als busübersetzer) und für diese dann noch passende anschlüsse für kamera und mikrofon anlötet .... am PC hat man dann mehrere USB-Geräte und müsste die software nur drumherum schreiben
vorteile:
modular, wenn mal ne kamera mehr dran muss einfach größeres Hub nehmen und software erweitern ...
optimierte bandbreitenausnutzung des USB-anschluss .... ein µC mit USB interface erreicht kaum die bandbreite die der USB anschluss hergibt ... mehrere (pseudo)parallele datenströme können die ausnutzung verbessern
nachteil: die codec chips kosten bestimmt was
du kannst uns ja eventuell mal sagen, was du mit den Bilddaten machen möchtest. Vielleicht ist die Datenratenreduktion ja sogar das Richtige für dich?
AVRs werden sicherlich nicht taugen für deine Anwendung.
Alleine schon an der Audioabtastung werden diese scheitern. Ich habe mal eine Software zur Abtastung eines Analogsignals geschrieben und versucht möflichst hohe Datenraten zu erreichen. 2kHz war das absolute Maximum was ich erreichen konnte.
Bei den Pics weiß ich nicht wie es da aussieht. Da gibt es wohl spezielle dsPics zur Verarbeitung. Ansonsten sind die Codec Chips sicher eine schöne Lösung. Da kenne ich mich aber auch nicht aus.
Mir würde noch die FPSLIC Serie einfallen. Das sind AVRs mit integriertem FPGA. Den FPGA könntest du zur Verarbeitung nutzen und den FPGA zur SIgnalverarbeitung und Übertragung. Allerdings gibt es da wohl mit den Entwicklungswerkzeugen Schwierigkeiten. Freeware Tools zu nutzen ist wohl sehr schwierig und die Entwicklungsumgebung von Atmel ist nur 4 Monate frei. Danach sehr teuer.
Ansonsten könntest du auch einen FPGA von Xilinx oder Altera verwenden. Wenn die Platine klein sein muss, musst du dann aber SMD bestücken können
Viele Grüße,
Tim
@ Ceos: das mit den Codec-ICs und USB-Hub ist gar keine schlechte idee, allerdings wird das auf der fläche nich wirklich gut gehen wenn ich 2 oder mehr solcher ICs habe
@Ls4: Die Bilddaten werden von dem User verarbeitet, d.h. der eine wird vielleicht Computer-Vision Programme schreiben, ein anderer will es aber einfach nur als eine Webcam benutzen.
Im Großen und Ganzen ist eine möglichst verlustfreie Übertragung/Komprimierung anzustreben
Was mir noch eingefallen ist: könnte man nicht einen schnellen µC(48Mhz) + high-speed USB-Controller + externen ADC verwenden??
MFG
ach ups da waren ja größenangaben XD lass mal grübeln ... in welcher form bekommst du die bildinformation von der kamera !? was für mikrofone verwendest du ? dann könnte man die suche bei den codecs schonmal einschränken
ich hab mal bei der apotheke nachgesehen
http://de.farnell.com/video-prozessoren
hmm, 170€ ist bei weitem zu teuer.
Die Kameras sind 2x TCM8230MD von Toshiba
Die Mikrofone sind entweder 3 Elektret-, oder MEMS-Mics
Die Bildinformationen kommen pro Cam über 8 parallele Pins, bzw noch 2 pins die Zeilen- und Frame-beginn kenzeichnen und 2 pins für I²C.
die cams haben einen CLK-Pin der für 30fps ein 20Mhz Signal benötigt
Die Mikrofone kommen Analog mit 100 Gain (OPA4344 wenn ichs richtig im kopf habe), allerdings wäre es kein Problem einen externen ADC zu verwenden
ich hätte sogar schon einen (meiner Meinung nach) passenden USB-Controller gefunden: CY7C68013A + fertiges Board http://www.siphec.com/microcontroller/index.html#FX2-56-TB
MFG
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.