Forum: Mikrocontroller und Digitale Elektronik USB Webcam an Serial/UART/I2C/SPI


von F. Graf (Gast)


Lesenswert?

Hallo zusammen,

Ich suche gerade nach Möglichkeiten, eine USB Webcam per Serial, UART, 
I2C oder SPI von einem Microcontroller aus anzusprechen. Damit benötige 
ich einen Konverter genau in die andere Richtung, wie man sie 
normalerweise findet.

Mir ist allerdings nicht mal bekannt, ob sowas überhaupt möglich ist. 
Von z.B. Serial zu USB ist ja eigentlich von einer einfacheren zu einer 
umfangreicheren Schnittstelle. Ich könnte mir daher vorstellen, dass es 
in die andere Richtung nicht so einfach ist.

Aber vielleicht hat ja jemand von euch bereits Wissen dazu und kann mir 
weiterhelfen.

Vielen Dank im Voraus.

von Frank (Gast)


Lesenswert?

Du brauchst einen Microcontroller mit Host-Funktion und dann den 
passenden Treiber. Es gibt aber auch Kamera-Module mit serieller 
Schnittstelle, z.B. die zahllosen Handy-Kameras bei Ebay oder z.B. das 
hier:

http://www.sander-electronic.de/gm00021.html

von User (Gast)


Lesenswert?

Theoretische gäbe es den z.b. den MAX3421E, einen USB-Host Controller 
mit SPI Interface, aber es dürfte ein sehr langatmiges Vergnügen sein, 
die Treiber zu schreiben. Ich hoffe wir reden hier nicht von Atmega oder 
ähnlichen als uC.
Lieber einen großen uC mit USB Host (besser: ARM Board mit Linux --> 
kein Treiberaufwand) verwenden.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

User schrieb:
> Theoretische gäbe es den z.b. den MAX3421E, einen USB-Host Controller
> mit SPI Interface

Etwas mehr Glück hat man vielleicht mit einem VNC1L ("Vinculum"), aber 
auch da dürfte die Treiberentwicklung erheblichen Aufwand verschlingen.

von F. Graf (Gast)


Lesenswert?

Frank schrieb:
> Es gibt aber auch Kamera-Module mit serieller
> Schnittstelle

Das ist mir bewusst und war auch der ursprüngliche Plan. Aber es wurde 
von höherer Stelle verlangt, dass wir evaluieren, ob wir gleich eine USB 
Webcam verwenden könnten, da sich dies besser verkaufen würde. Geht 
alles nur ums Marketing und die Techniker dürfen es ausbaden :)

User schrieb:
> Ich hoffe wir reden hier nicht von Atmega oder
> ähnlichen als uC.

Der uC ist noch nicht endgültig festgelegt. Es ist nur die Kategorie 
klar.

User schrieb:
> Lieber einen großen uC mit USB Host (besser: ARM Board mit Linux -->
> kein Treiberaufwand) verwenden.

Genau das wollen wir hier eigentlich vermeiden. Die eigentliche 
Applikation kommt auf einen möglichst kleinen und so Energie effizienten 
uC wie nur möglich. Das man eine Webcam anhängen kann, ist nur eine 
Anwendungsmöglichkeit. Wir möchten, wenn möglich die gleiche Hardware 
verwenden, egal ob eine Webcam drankommt oder nicht.

Den Treiber selber zu programmieren, wäre natürlich nicht unbedingt 
unser Ziel. Es wäre sehr praktisch, wenn es einen entsprechenden 
Konverter gibt. Wie es z.B. all diese Serial To USB Konverter gibt. Wir 
hätten halt nur gerne etwas in die umgekehrte Richtung.

Wenn nichts anderes geht, nehmen wir am Ende halt z.B. ein Beagleboard 
und erstellen uns darauf unseren eigenen Konverter, wo wir das Bild per 
USB einlesen und dann z.B. per I2C oder SPI an unsere eigentliche 
Hardware weitergeben. Das ganze ist aktuell nur ein Funktionsmuster.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

F. Graf schrieb:
> Wie es z.B. all diese Serial To USB Konverter gibt. Wir
> hätten halt nur gerne etwas in die umgekehrte Richtung.

Der VNC1L ist so etwas. Der ermöglicht es, über eine serielle 
Schnittstelle mit angeschlossenen USB-Devices zu kommunizieren.

Allerdings ist das noch nicht mal die halbe Miete, denn das ganze hat 
nur Sinn, wenn das von der Kamera erforderliche Protokoll verwendet wird 
-- und das müsst Ihr wohl oder übel selbst implementieren, sei es in 
einem µC, der direkt USB-Host-Funktionen übernehmen kann oder eben in 
dem µC, der über eine serielle Schnittstelle mit dem VNC1L kommuniziert.

Von der grundlegenden Transportschicht abgesehen ist hier der Aufwand 
recht vergleichbar.

Da Webcams Videostreams und keine Standbilder erzeugen, ist die 
Angelegenheit eh' als illusorisch zu betrachten, denn so ein Videostream 
hat eine gewisse Bandbreite, die erst mal transportiert und dann auch 
noch verarbeitet werden will, was Euer möglichst kleiner und sparsamer 
µC kaum schaffen dürfte.

Die "höhere Stelle" muss aber ganz wichtige Entscheidungen treffen, ohne 
von technischen Details behelligt zu werden ...

von Strubi (Gast)


Lesenswert?

Moin,

wenn's energieeffizient sein soll: Warum nicht gleich einen kleinen 
Blackfin DSP und einen der üblichen CMOS-Sensoren, die man direkt per 
PPI anschliessen kann? Seit nunmehr 6 Jahren habe ich immer noch keine 
billigere Lösung gefunden.
Das ganze USB-Gefrickel ist ohne Linux sonst eine Riesen-Arbeit und auch 
damit nur mit wenigen Webcam-Typen langzeitstabil.

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
Noch kein Account? Hier anmelden.