USB-Programmierung unter Linux

Post Reply
Message
Author
Hank
Posts: 18
Joined: 25. Jun 2007 15:16

USB-Programmierung unter Linux

#1 Post by Hank »

Hallo,

kennt sich jemand mit der USB-Programmierung unter Linux aus? Versuche grad rauszufinden, wie aufwendig es wohl ist ein USB-Gerät anzusprechen, wenn ein Treiber verfügbar ist und wie aufwändig ein USB-Treiber zu schreiben wäre. Habe eine Online-Version des Buches "Linux Treiber entwickeln" gefunden, darin hab ich unten stehenden Absatz gefunden.

Ich versteh aber noch nicht, was genau ich mir dabei unter einem Interface und einem Endpunkt vorstellen kann. Kann mir das jemand kurz und knapp erkären?

Bin für jeden Hinweis dankbar!

Freundliche Grüße
Hank

"Auch wenn die Geräte physikalisch in einer Baum-Struktur angeordnet sind, liegt logisch ein Bus vor, bei dem der Host die einzelnen Geräte direkt ansprechen kann. Jedes Gerät bekommt – wenn es an den USB angeklemmt wird – eine eindeutige Adresse. Das Gerät selbst definiert innerhalb des Gerätes Interfaces und diese wiederum Endpunkte. Die Software auf dem Host kommuniziert nun mit dem Gerät, indem es Daten aus einem Speicherblock an den Endpunkt eines Interfaces schickt oder Daten von dem Endpunkt des Interfaces in den Speicherblock übergeben bekommt."

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post by Janka »

Ein Interface ist in den USB-Termini eine Konfigurationsoption für ein Gerät. Wenn also ein Gerät entweder als Videokamera oder als Massenspeicher benutzt werden kann (zum Beispiel kann meine Photoknipse das), muss es zwei Interfaces haben.

Endpunkte sind hingegen *logische* Kommunikationsendpunkte analog zu Sockets. Jedem Endpunkt ist im Gerät ein Datenpuffer zugeordnet, in den der Host Datenpakete hineinschreiben oder herauslesen kann.

Treiber für USB-Geräte (also nicht für die Hostadapter) entwickelt man am besten als Userspace-Treiber mithilfe der libusb. Guck mal folgende Beispiele durch:

http://www.linuxforums.org/forum/linux- ... ibusb.html
http://ssl.bulix.org/projects/lcd4linux/wiki/USBLCD

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Hank
Posts: 18
Joined: 25. Jun 2007 15:16

#3 Post by Hank »

Perfekt!

Vielen Dank Janka!

Post Reply