AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Basis-Informationen zu USB

Ein Thema von KPBecker · begonnen am 27. Aug 2007 · letzter Beitrag vom 29. Aug 2007
Antwort Antwort
KPBecker

Registriert seit: 1. Mär 2004
Ort: Mannheim
120 Beiträge
 
Delphi 2010 Architect
 
#1

Basis-Informationen zu USB

  Alt 27. Aug 2007, 15:37
Liebe Delphi-Praktiker,

kennt jemand von Euch eine gute Zusammenfassung zum Thema "USB, Delphi und ich" (Link) ?
Ich möchte Grundlageninformationen wie z.B.
- was sind gängige Protokolle
- wie erkenne ich, an welchem USB-Port ein Gerät angeschlossen ist
- wie kann ich das Gerät identifizieren
- wie kann ich das Gerät gezielt ansprechen
- usw.

Vielen Dank,
KPBecker
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#2

Re: Basis-Informationen zu USB

  Alt 27. Aug 2007, 16:45
Eigentlich kann man keine der Fragen beantworten.
1. Es gibt keine Protokolle die man auf Anwendungsebene sprechen kann. Du sprichst ja auch nicht TCP/IP mit deiner Netzwerkkarte.
2. Es ist nicht vorgesehen das man wissen muss an welchem Port das Geraet haengt, um mit ihm sprechen zu koennen.
3. Auch dies ist ist nicht vorgesehen. Man muss nicht wissen das es ein USB-Geraet ist um mit ihm sprechen zu koennen.
4. Wieder nix. Oft wird das Geraet nur von einem Treiber angesprochen und unterliegt nicht direkter Kontrolle.

Ein USB-Geraet wird vollstaendig von seinem Treiber repraesentiert. Zum direkten Ansprechen kann man die Geraete einer Unterklasse oder eines bestimmten Herstellers direkt enumerieren, aber je nach Geraeteklasse hat der Treiber kein API das sich direkt ansprechen laesst. Ein USB-Stick z. B. hat den Mass Storage Treiber zugewiesen, der nur sinnvoll vom Filesystem-Treiber benutzt werden kann.
  Mit Zitat antworten Zitat
christian_u

Registriert seit: 13. Nov 2006
126 Beiträge
 
#3

Re: Basis-Informationen zu USB

  Alt 27. Aug 2007, 17:31
Doch, man kann schon Fragen beantworten und es gibt auch USB geräte die man auf Anwendungsebene ansprechen kann das sind alle geräte der Geräteklasse HID. Dort leitet der Treiber den jedes aktuelle betriebsystem mitbringt die daten direkt durch und die Anwendung ist dafür zuständig sie zu verarbeiten.
USB Geräte kannst du unter Windows über Registry Keys enumerieren, in Linux über das procfs. Um ein Gerät gezielt ansprechen zu können musst du etwas mehr über das gerät wissen das ist von Gerät zu Gerät verschieden.
  Mit Zitat antworten Zitat
KPBecker

Registriert seit: 1. Mär 2004
Ort: Mannheim
120 Beiträge
 
Delphi 2010 Architect
 
#4

Re: Basis-Informationen zu USB

  Alt 28. Aug 2007, 09:32
Liebe Delphi-Praktiker,

ganz konkret:
Ich schließe eine Webcam an einem USB-Port an. Wie erfährt mein Programm davon. Unter welchem Namen spreche ich das Gerät an.

Aber:
Ich glaube, ein paar Grundlagen zu USB und seiner Umgebung täte mir gut. Daher die Frage nach einer Einführung in dieses Thema im Internet.

Vielen Dank,
K.-P. Becker
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#5

Re: Basis-Informationen zu USB

  Alt 28. Aug 2007, 09:43
http://poweredusb.org/pdf/usb20.pdf
  Mit Zitat antworten Zitat
KPBecker

Registriert seit: 1. Mär 2004
Ort: Mannheim
120 Beiträge
 
Delphi 2010 Architect
 
#6

Re: Basis-Informationen zu USB

  Alt 28. Aug 2007, 09:53
Hallo, Hathor !

Vielen Dank für den Hinweis, aber ziemlich erschlagend für eine primäre Information.
Ich werde versuchen, mir die zunächst interessierenden Infos herauszuholen.

Gibt es auch etwas Kürzeres ?

Beste Grüße
K.-P. Becker
  Mit Zitat antworten Zitat
WS1976
(Gast)

n/a Beiträge
 
#7

Re: Basis-Informationen zu USB

  Alt 28. Aug 2007, 09:59
Hallo Christian,

ich will dir nicht zu nahe treten, aber ich zweifle doch sehr an deiner Aussage.
Natürlich findet man USB Geräte in der Registry aber nur als "Harddisk" oder als "Virtuelle Comports" oder als ein anderes "Gerät".(Was sollte eine USB Device auch anderes sein?)
Was soll denn ein Treiber, wenn er die Daten nur weiterleitet. Er (der Treiber) adaptiert die USB Device an einen vorhanden Gerätekontext.
(Sorry aber anders kann ich mich nicht ausdrücken)

Zitat:
Doch, man kann schon Fragen beantworten und es gibt auch USB geräte die man auf Anwendungsebene ansprechen kann das sind alle geräte der Geräteklasse HID. Dort leitet der Treiber den jedes aktuelle betriebsystem mitbringt die daten direkt durch und die Anwendung ist dafür zuständig sie zu verarbeiten.
USB Geräte kannst du unter Windows über Registry Keys enumerieren, in Linux über das procfs. Um ein Gerät gezielt ansprechen zu können musst du etwas mehr über das gerät wissen das ist von Gerät zu Gerät verschieden.
Solltest du Gegenbeispiele finden (haben), dann veröffentliche sie bitte hier. Mach das aber bitte mit den zugehörigen Registryeinträgen.

Grüsse
Rainer
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#8

Re: Basis-Informationen zu USB

  Alt 28. Aug 2007, 12:05
Christian hat schon recht. USB-Geraete zerfallen in mehrere Klassen. Ein Geraet identifiziert sich gegenueber dem Rechner genau in welche Klasse es faellt. Von da ab uebernimmt der Klassentreiber. Bei Mass Storage etwa ist das eben ein Treiber der einem anderen Treiber zuarbeitet. Dabei geht dann die Tatsache das es sich um ein USB-Geraet handelt voellig verloren. Auch das API um Zugriff abstrahiert voellig von USB. Es ist das gewoehnliche API zum Zugriff auf ein Filesystem.
HID ist eine der Standardklassen fuer USB. Ein HID-Geraet erlaubt eine besonders praezise Beschreibung des Geraetes und es existiert ein HID API das es Applikationen erlaubt direkt auf das Geraet zuzugreifen. Meine HID-Komponente (Teil der JVCL) erschliesst dieses API.
  Mit Zitat antworten Zitat
WS1976
(Gast)

n/a Beiträge
 
#9

Re: Basis-Informationen zu USB

  Alt 29. Aug 2007, 06:12
Hallo Robert,
eigentlich wollte ich das so ähnlich rüberbringen!

Was aber ganz klar sein muss:
Du befindest dich bei jeder USB Device immer hinter einem abstrahierenden Treiber.
Du wirst also niemals direkten und unmittelbaren Zugriff auf das USB Protokoll haben.
Christian stellt das so dar (zumindest kann das so verstanden werden) als würde das Protokoll und dessen Inhalt einfach durchgereicht.

Grüsse
Rainer
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz