-
Die
vorliegende Anmeldung bezieht sich auf die Aufzählung (Enumeration) eines tragbaren
Geräts
durch einen Hostcontroller und im Besonderen auf ein Verfahren und
eine Vorrichtung zur Unterstützung
der USB-Aufzählung
eines solchen Bus-betriebenen (aus dem Bus mit Strom versorgten)
tragbaren Geräts,
wenn zum Aufzählen
eines zum tragbaren Gerät
gehörenden
Hauptprozessors mehr als 100 mA erforderlich sind.
-
Wie
Fachleuten bekannt ist, ist ein Universal Serial Bus (USB) ein Standardanschluss,
der es einem Benutzer ermöglicht,
USB-Peripheriegeräte
(d. h. externe Geräte
wie beispielsweise Digitalkameras, Scanner, Tastaturen, Drucker,
externe Laufwerke und Mäuse)
an einen Personal Computer anzuschließen. Laut USB-Spezifikation
in Revision 2.0 wird eine Full-Speed-Signalisierungsbitrate von
12 Mbit/s (Millionen Bit pro Sekunde) unterstützt. USB-Geräte bieten
nicht nur Geschwindigkeitsvorteile, sondern können auch ohne Neustart des
Computers angeschlossen und entfernt werden, sodass ein Benutzer
auf einfache Weise Peripheriegeräte
verbinden und trennen kann. Aus den vorstehend genannten Gründen sind
USB-Anschlüsse
zum Industriestandard geworden, da sie eine enorme Verbesserung
gegenüber dem
seriellen Anschluss als Vorläuferstandard
darstellen.
-
Laut
der USB-Spezifikation in Revision 2.0 beinhaltet der Computer, an
die USB-Peripheriegeräte
angeschlossen werden, einen Hostcontroller, bei dem es sich um eine
Kombination aus Hardware, Firmware oder Software handeln kann. Der
Hostcontroller ist für
das Erkennen des Anschließens
und Entfernens von USB-Peripheriegeräten, das
Verwalten der Flusssteuerung zwischen dem Hostcontroller und den
USB-Peripheriegeräten,
das Verwalten des Datenflusses zwischen dem Hostcontroller und den USB-Peripheriegeräten sowie
für die
Stromversorgung der angeschlossenen USB-Geräte zuständig. Wie Fachleuten geläufig ist,
werden bei USB-Geräten „Hubs", die zusätzliche
Anschlussstellen für
den Universal Serial Bus bereitstellen, von „Funktionen", wie zum Beispiel
USB-Peripheriegeräten,
unterschieden. Der Hostcontroller kann über einen integrierten Root-Hub
verfügen,
an den andere Hubs oder Funktionen angeschlossen werden können.
-
In
einer Anordnung wird ein Computer (mit integriertem Hostcontroller
und Root-Hub) vorzugsweise über
einen USB-Anschluss mittels eines herstellerspezifischen Adapters
mit einem tragbaren Kommunikationsgerät (oder einer „Funktion"), beispielsweise
einem Mobiltelefon oder einem Personal Digital Assistant (PDA),
verbunden. Bekanntlich gibt es USB-Lade- und -Synchronisationskabel
für tragbare
Geräte,
die es deren Benutzern ermöglichen, tragbare
Geräte über den
USB-Anschluss am Computer aufzuladen, ohne hierzu auf unhandliche
Netzteile und Ladeschalen zurückgreifen
zu müssen. Auch
eine Synchronisierung von Daten zwischen dem tragbaren Kommunikationsgerät oder PDA
und dem Hostcomputer ist möglich.
Wenn ein USB-Peripheriegerät
an einen mit Strom versorgten USB-Anschluss angeschlossen wird,
gibt der Hostcontroller einen Befehl zum Aktivieren und Zurücksetzen
des betreffenden Anschlusses aus. Nachdem der Anschluss aktiviert
wurde, befindet sich das USB-Peripheriegerät im Default-Zustand, in dem
es höchstens 100
mA aufnehmen kann, solange es nicht ordnungsgemäß konfiguriert wurde. Bei tragbaren
Kommunikationsgeräten,
für deren
Betrieb mehr als 100 mA erforderlich sein können, ist dies unter Umständen nicht
akzeptabel.
-
US6665801 offenbart ein
abgesetztes Hub- oder Funktionsgerät für den Universal Serial Bus,
das eine große
Energiequelle wie etwa eine Batterie oder einen Kondensator für die Stromversorgung
von Peripheriegeräten
in Fällen
enthält,
in denen das Peripheriegerät
mehr Strom benötigt,
als der USB zulässt.
Ein Funktionscontroller des USB-Funktionsgeräts kommuniziert über einen
vorgeschalteten USB-Anschluss mit einem USB-Hostcomputer. Ein Peripheriegerät mit hoher
Leistung kommuniziert über
den Funktionscontroller und wird darüber hinaus durch das wiederaufladbare
Gerät mit
Strom versorgt.
-
EP1482619 offenbart ein
Verfahren zur Behandlung eines Gerätaufladezustands für ein per Universal
Serial Bus (USB) angeschlossenes mobiles elektronisches Gerät. Das Verfahren
umfasst die Schritte des Erkennens des Vorhandenseins einer Busspannung,
des Erkennens eines Signals zur Bestätigung einer Aufzählung zwischen
dem Gerät
und einem USB-Host sowie das Übertragen
eines Signals, mit dem das Gerät
angewiesen wird, in den Gerätaufladezustand überzugehen.
-
EP 1085400 offenbart ein
Verfahren und eine Vorrichtung zur Verwendung eines Universal Serial Bus
(USB) in einem Computer als Stromquelle für ein tragbares elektronisches
Gerät.
Der Computer wird mittels eines Kabels mit einem ersten Verbinder,
der mit einem USB-Verbinder am Computer verbunden ist, und einem
zweiten Verbinder, der mit einem externen Stromeingangsverbinder
am tragbaren elektronischen Gerät
verbunden ist, mit einem Mobiltelefon gekoppelt. Das Kabel enthält eine
elektronische Schaltung zur Umwandlung des vom USB bereitgestellten
Spannungspegels in einen vom tragbaren elektronischen Gerät nutzbaren
Spannungspegel.
-
Gemäß einem
Aspekt der vorgeschlagenen Lösung
werden vorzugsweise bereitgestellt: ein tragbares Kommunikationsgerät, das umfasst:
einen USB-Anschluss,
der für
die Verbindung mit einem USB-Hostcontroller angepasst ist, wobei
der USB-Hostcontroller den USB-Anschluss unter einem Stromschwellwert
vor der Aufzählung
des tragbaren Kommunikationsgeräts
und über
dem Stromschwellwert nach der Aufzählung des tragbaren Kommunikationsgeräts mit Strom
versorgt; einen ersten Prozessor, wobei der erste Prozessor zum
Starten, sobald der zugeführte
Strom unter dem Stromschwellwert liegt, angepasst ist; einen zweiten
Prozessor, wobei der zweite Prozessor Teil eines Chipsatzes ist, der
erfordert, dass der zugeführte
Strom über
dem Stromschwellwert liegt, um zu starten; eine Stromüberwachungsschaltung,
die von dem zweiten Prozessor getrennt ist; und einen Multiplexer,
wobei sich der Multiplexer auf einem Kommunikationspfad zwischen
dem USB-Anschluss und dem ersten Prozessor und zweiten Prozessor
befindet, wobei der erste Prozessor ein USB-Mikrocontroller ist
und angepasst ist, um mit dem USB-Hostcontroller aufzuzählen, um Strom über dem
Schwellwert zu bekommen, und wobei der zweite Prozessor angepasst
ist, um die Kommunikation über
den USB-Anschluss durch das tragbare Gerät von dem ersten Prozessor
her beim Starten des zweiten Prozessors zu übernehmen, und das tragbare
Gerät angepasst
ist, um den ersten Prozessor beim Starten des zweiten Prozessors
abzuschalten.
-
Gemäß einem
anderen Aspekt der vorgeschlagenen Lösung werden vorzugsweise bereitgestellt:
ein Verfahren des Aufzählens
eines zweiten Prozessors in einem tragbaren Kommunikationsgerät, wobei
das tragbare Kommunikationsgerät über einen
ersten Prozessor verfügt,
der zum Starten mit einem Strom unter einem Stromschwellwert in
der Lage ist, und der zweite Prozessor Teil eines Chipsatzes ist,
der erfordert, dass Strom über
dem Stromschwellwert liegt, um zu starten, wobei das tragbare Kommunikationsgerät des Weiteren
eine von dem zweiten Prozessor getrennte Stromüberwachungsschaltung umfasst,
wobei das Verfahren folgende Schritte umfasst: Starten des ersten
Prozessors; über
einen USB-Anschluss Aufzählen
des ersten Prozessors mit einem USB-Hostcontroller, der zum Versorgen
mit Strom unter dem Stromschwellwert vor der Aufzählung und über dem
Stromschwellwert nach der Aufzählung
in der Lage ist; Starten des zweiten Prozessors; und Übernehmen
von Kommunikationen zwischen dem USB-Hostcontroller und dem tragbaren Kommunikationsgerät an dem
zweiten Prozessor, wobei das tragbare Kommunikationsgerät einen
Multiplexer umfasst, wobei der Schritt des Übernehmens den Multiplexer
nutzt, um Kommunikationen an den zweiten Prozessor zu leiten, und
Abschalten des ersten Prozessors beim Starten des zweiten Prozessors,
wobei der erste Prozessor ein USB-Mikrocontroller ist. Weitere Aspekte
der Erfindung werden aus den beigefügten Ansprüchen ersichtlich.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Ein
besseres Verständnis
der vorgeschlagenen Lösung,
die dazu dient, Mängel
nach dem bisherigen Stand der Technik zu überwinden, lässt sich
anhand der nachfolgenden detaillierten Beschreibung erreichen, wobei
auf die folgenden Zeichnungen Bezug genommen wird:
-
1 zeigt
ein USB-Lade- und -Synchronisationskabel, das an ein Laptop und
ein Mobiltelefon angeschlossen ist;
-
2 zeigt
ein Blockdiagramm eines tragbaren Geräts mit zwei Prozessoren;
-
3 zeigt
eine Ausführung
der vorgeschlagenen Lösung
unter Einbeziehung eines USB-Mikrocontrollers;
-
4 zeigt
einen typischen handelsüblichen
USB-Mikrocontroller;
-
5 zeigt
in einem Flussdiagramm die Schritte des Aufzählungsvorgangs unter Verwendung
eines USB-Mikrocontrollers;
-
6 zeigt
eine veranschaulichende Umsetzung eines tragbaren Geräts unter
Einbeziehung eines USB-Hubcontrollers;
-
7 zeigt
einen typischen handelsüblichen
USB-Hubcontroller; und
-
8 zeigt
in einem Flussdiagramm die Schritte des Aufzählungsprozesses unter Verwendung
eines USB-Hubcontrollers.
-
BESCHREIBUNG VORTEILHAFTER
AUSFÜHRUNGEN
-
Wie
in 1 dargestellt, umfasst ein USB-Lade- und -Synchronisationskabel
(100) einen USB-Verbinder (110) zum Anschließen an einen Computer
(120) und einen herstellerspezifischen Adapter (130)
zum Anschließen
an ein tragbares Gerät (140).
Entsprechend der USB-Spezifikation in Revision 2.0 erfolgt die Datenübertragung
und Stromversorgung beim USB-Lade- und -Synchronisationskabel (100) über vier
Adern: D– und
D+ für
Daten sowie VBUS für die Stromversorgung und GND
für die
Erdung.
-
2 zeigt
einen beispielhaften inneren Aufbau (200) eines tragbaren
Geräts
(140). Im abgebildeten tragbaren Gerät befinden sich zwei Mikroprozessoren
(210, 220). Der Mikroprozessor (210)
ist für
das Ausführen
verschiedener Anwendungen (in der Abbildung allgemein als 230 bezeichnet)
bestimmt, während
der Mikroprozessor (220) für das Ausführen von Funktionen für die Funkübertragung/den
Funkempfang (in der Abbildung allgemein als 240 bezeichnet)
und von Funktionen für
die Energieverwaltung (250) bestimmt ist. Im Betrieb versorgt die
wiederaufladbare Batterie (260) die Mikroprozessoren (210, 220)
sowie weitere in das tragbare Gerät (140) integrierte
Komponenten mit Strom. Zur Verringerung der Kosten und der Speicheranforderungen kann
in weiterentwickelten Varianten des tragbaren Geräts (140)
ein einzelner Prozessor verwendet werden; verschiedene Beispiele
hierfür
sind in der Technik allgemein bekannt.
-
Wenn
die wiederaufladbare Batterie (260) leer ist, kann sie über den
USB-Anschluss (270)
aufgeladen werden, beispielsweise, unter Verwendung des oben beschriebenen
USB-Lade- und -Synchronisationskabels (100). Ein Problem
beim Laden per USB besteht darin, dass das tragbare Gerät (140)
vor dem Aufzählen
des tragbaren Geräts
(140) seitens des Hostcomputers höchstens 100 mA vom USB-Bus
aufnehmen kann. Genauer gesagt, sieht die USB-Spezifikation in Revision
2.0 vor, dass der Hostcontroller mittels eines als Bus-Aufzählung bezeichneten
Vorgangs die erforderlichen Änderungen des
Gerätezustands
erkennt und verwaltet, wenn ein USB-Gerät („Hub” oder „Funktion") an den Universal Serial Bus angeschlossen
oder davon getrennt wird. Wenn beispielsweise ein USB-Peripheriegerät an einen
mit Strom versorgten USB-Anschluss angeschlossen wird, gibt der
Hostcontroller einen Befehl zum Aktivieren und Zurücksetzen
des betreffenden Anschlusses aus. Nachdem der Anschluss aktiviert wurde,
befindet sich das USB-Peripheriegerät im Default-Zustand, in dem
es höchstens
100 mA aufnehmen kann, solange es nicht ordnungsgemäß konfiguriert
wurde. Nachdem das USB-Peripheriegerät konfiguriert wurde, kann
es bis zu 500 mA aufnehmen, sofern es sich beim dem betreffenden
Anschluss um einen Anschluss mit hoher Leistung (High Power) handelt.
Infolge der Begrenzung auf 100 mA enthält das tragbare Gerät (200)
Strombegrenzungsschaltungen zur Begrenzung des entnommenen Stroms auf
weniger als 100 mA. Bei einem Strom von weniger als 100 mA ist es
durchaus möglich,
dass der verfügbare
Leistung nicht ausreicht, um den Chipsatz des tragbaren Geräts (140)
zu starten, wenn die wiederaufladbare Batterie (260) fast
vollständig
entladen, leer oder nicht eingelegt ist. Wenn der Chipsatz nicht
eingeschaltet werden kann, kann der Aufzählungsvorgang nicht durchgeführt werden.
Beispielsweise können
bei bestimmten tragbaren Geräten (140),
die mit nur einem Prozessor ausgestattet sind, bei einem Strom von
weniger als 100 mA der Chip für die
Energieverwaltung und der Prozessor nicht gestartet werden. Wie
für Fachleute
ersichtlich ist, ist die integrierte Schaltung (Integrated Circuit,
IC) für die
Energieverwaltung ein unverzichtbarer Bestandteil moderner tragbarer
Geräte
mit geringer Leistung. Um eine möglichst
hohe Energieeinsparung zu erreichen, verfügen die meisten Prozessoren
für tragbare Geräte über eine
eigene, fest gekoppelte IC für
die Energieverwaltung, die für
ein direktes Zusammenwirken ausgelegt ist. Die IC für die Energieverwaltung verfügt über eine
Gruppe von Leistungsschaltern und -reglern, mit denen die einzelnen
Bereiche des tragbaren Geräts
mit Strom versorgt werden. Der Prozessor verfügt über Software/Firmware zum Ein-
und Ausschalten der einzelnen Leistungsschalter und Leistungsregler
entsprechend den Erfordernissen eines vereinfachten normalen Betriebs
und der Energieeinsparung.
-
Es
wäre von
Vorteil, wenn ein mit einen einzelnen Prozessor ausgestattetes tragbares
Gerät (140)
bei einem unter der Begrenzung auf 100 mA liegenden Strom eingeschaltet
werden könnte.
Ein Ansatz hierzu ist die Verwendung einer gesonderten Stromversorgung
für den
einzelnen Prozessor. Wenn jedoch der Chip für die Energieverwaltung vollständig in
den einzelnen Prozessor integriert ist, ist diese Lösung aufgrund
der komplizierten Einschalt-/Ausschaltabfolge, des Vorgehens bei
einem Ausfall der Stromversorgung, der Energiesparverwaltung usw., die
von der IC für
die Energieverwaltung durchgeführt werden,
unter Umständen
nicht akzeptabel. Somit wird eine Lösung benötigt, die diesem Aufbau gerecht
wird und dabei mit verhältnismäßig geringem Kostenaufwand
umgesetzt werden kann und möglichst
wenig Platz im tragbaren Gerät
(140) in Anspruch nimmt.
-
Im
Allgemeinen sieht die vorgeschlagene Lösung, die in der vorliegenden
Anmeldung im Einzelnen erläutert
wird, in einer ersten Ausführung
ein tragbares Gerät
mit einem zusätzlichen
USB-Mikrocontroller vor. Im USB-Mikrocontroller sind ein USB-Sender,
ein Mikrocontroller, ein RAM sowie ein Flash-Speicher oder ein EPROM
integriert. In der vorteilhaften Ausführung handelt es sich bei dem USB-Mikrocontroller um
ein handelsübliches
Produkt, wie es häufig
in aktuellen USB-Geräten wie USB-Massenspeicherlaufwerken,
Digitalkameras, USB-Mäusen
u. dgl. eingesetzt wird. Die Kosten solcher USB-Mikrocontroller
sind verhältnismäßig gering,
und von ihrer Größe her sind
sie für
den Einsatz in tragbaren Geräten
geeignet. Im Betrieb wird der integrierte USB-Mikrocontroller nur
eingeschaltet, wenn das USB-Lade-
und -Synchronisationskabel eingesteckt ist und die wiederaufladbare
Batterie fehlt oder die Mindestspannung nicht erreicht, die zum
Einschalten des tragbaren Geräts
mit einem USB-Strom von weniger als 100 mA vor der Aufzählung erforderlich
ist. Der integrierte USB-Mikrocontroller führt die USB-Aufzählung seitens
des Hostcomputers über
ein USB-Lade- und -Synchronisationskabel durch, sodass der Ladestrom
nach der Aufzählung
auf 500 mA erhöht
werden kann (sofern das tragbare Gerät mit einem Anschluss mit hoher
Leistung verbunden ist) oder der Host das Laden der Batterie des
Geräts
bei einem Strom von 100 mA fortsetzen kann, wenn die Batterie des
Geräts
fast vollständig
entladen oder leer ist und das tragbare Gerät mit einem Anschluss mit geringer
Leistung verbunden ist. Nachdem der Ladezustand der wiederaufladbaren
Batterie den Schwellwert für
den Chipsatz des tragbaren Geräts überschritten
hat oder wenn ein Strom von 500 mA entnommen werden kann, wird der
Chipsatz des tragbaren Geräts
eingeschaltet, sodass dieser die USB-Kommunikation vom USB-Mikrocontroller übernimmt.
Eine alternative Ausführung beinhaltet
einen integrierten USB-Hubcontroller. Beim anfänglichen Einstecken des USB-Ladekabels wird
nur der USB-Hubcontroller eingeschaltet, wodurch viel weniger Strom
benötigt
wird, um die Aufzählung
seitens des Hostcomputers durchzuführen. Wenn ein ausreichender
Ladezustand der wiederaufladbaren Batterie erreicht wurde oder nach
der Aufzählung
500 mA entnommen werden können,
wird der Hauptprozessor des tragbaren Geräts gestartet und fungiert dieser
als an den USB-Hubcontroller angeschlossenes Gerät.
-
3 zeigt
die erste Ausführung
eines beispielhaften inneren Aufbaus (300) des tragbaren
Geräts
(140) entsprechend der vorgeschlagenen Lösung. Das
tragbare Gerät
(140) ist eine „Funktion" gemäß der USB-Spezifikation
in Revision 2.0. Wie Fachleuten geläufig ist, werden bei „Funktionen" zwei Klassen unterschieden,
nämlich
solche mit Stromversorgung aus dem Bus (Bus-) und solche mit eigener Stromversorgung
(Self-Powered). Bei Funktionen mit Stromversorgung aus dem Bus erfolgt
die Stromversorgung ausschließlich über die
USB-Verbindung; Funktionen mit eigener Stromversorgung beziehen den
Strom hingegen aus einer externen Stromquelle. Bei Funktionen mit
Stromversorgung aus dem Bus werden darüber hinaus die Kategorien „geringe
Leistung" (Low Power)
und „hohe
Leistung" (High
Power) unterschieden. Funktionen mit geringer Leistung können durch
einen „Hub" mit eigener Stromversorgung
wie auch mit Stromversorgung aus dem Bus gespeist werden; Funktionen
mit hoher Leistung werden hingegen an Hubs mit eigener Stromversorgung angeschlossen,
damit genügend
Strom für
den Betrieb zur Verfügung
steht. Wie im Weiteren ausgeführt
wird, kann es sich bei dem tragbaren Gerät (140) je nach Betriebszustand
des tragbaren Geräts (140)
um eine Funktion mit Stromversorgung aus dem Bus und geringer Leistung,
eine Funktion mit Stromversorgung aus dem Bus und hoher Leistung oder
eine Funktion mit eigener Stromversorgung handeln. Wenn die Batterie
(340) fehlt oder wenn sich das tragbare Gerät (300)
in einem Aufladungszustand befindet und der Ladezustand der Batterie (340)
unter der zum Einschalten des tragbaren Geräts (140) erforderlichen Mindestspannung
liegt, ist das tragbare Gerät
(140) eine Funktion mit Stromversorgung aus dem Bus und
hoher Leistung. Ersatzweise kann das tragbare Gerät (140)
als Funktion mit Stromversorgung aus dem Bus und geringer Leistung
konfiguriert werden, wenn das tragbare Gerät (140) nicht mit
einem USB-Anschluss mit hoher Leistung (z. B. Anschluss 360)
verbunden ist. Wenn schließlich
die Batterie (340) des tragbaren Geräts (140) vollständig aufgeladen
ist oder wenn die Ladeschaltung durch das tragbare Gerät (140)
abgeschaltet wurde, ist es eine Funktion mit eigener Stromversorgung.
-
Wie
aus der Zeichnung zu ersehen ist, kommuniziert ein einzelner Prozessor
(310) mit einer integrierten Schaltung (Integrated Circuit,
IC) für
die Energieverwaltung (320) und dient dieser zur Steuerung
nicht nur der Hochfrequenzschaltungen (330), sondern auch
verschiedener Anwendungsmodule (nicht abgebildet) sowie von Peripheriegeräten wie beispielsweise
einer Flüssigkristallanzeige
(Liquid Crystal Display, LCD) und eines Speichers (325).
Die wiederaufladbare Batterie (340) kommuniziert mit der integrierten
Schaltung der USB-Ladevorrichtung (350), die über den
Anschluss (360) mittels eines USB-Lade- und -Synchronisationskabels (nicht
abgebildet) mit einem Hostcontroller/Hub in einem Computer verbunden
werden kann. Bei der integrierten Schaltung der USB-Ladevorrichtung kann
es sich beispielsweise um bqTINYIIITM handeln,
eine von Texas Instruments angebotene Einzelchip-IC zum Laden und
zur dynamischen Verwaltung des Stromversorgungswegs (Dynamic Power-Path
Management, DPPM), die es ermöglicht, über ein
Wechselstromnetzteil oder eine Verbindung mit einem USB-Anschluss
gleichzeitig das System mit Strom zu versorgen und die Batterie
(340) aufzuladen. bqTINYIIITM ermöglicht darüber hinaus
das sofortige Einschalten des Systems mittels einer externen Stromquelle, wenn
die wiederaufladbare Batterie (340) fehlt oder tiefentladen
oder leer ist. Wie im Abschnitt zum Hintergrund ausgeführt, wird
diese integrierte Schaltung der Ladevorrichtung aufgrund der Aufzählungsbegrenzung
gemäß der USB-Spezifikation
in Revision 2.0, deren Inhalt durch Literaturhinweis in die vorliegende
Schrift eingefügt
wird, mit einer auf 100 mA begrenzten Stromaufnahme gestartet. Wie
ebenfalls ausgeführt,
reichen bei bestimmten tragbaren Geräten, die mit nur einem Prozessor
ausgestattet sind, etwa beim beispielhaften inneren Aufbau (300),
100 mA nicht aus, um den Prozessor (310) und die IC für die Energieverwaltung
(320) zu starten.
-
Bei
der vorgeschlagenen Lösung
führt ein über den
USB-Multiplexer (380) verbundener USB-Mikrocontroller (370)
die USB-Aufzählung
seitens des im Laptop integrierten Hostcontrollers/Hubs bei einer
auf weniger als 100 mA begrenzten Stromentnahme durch. Wie für Fachleute
ersichtlich ist, gibt es mehrere handelsübliche USB-Mikrocontroller (370),
die sich zur Durchführung
der erforderlichen Aufzählungsfunktion
eignen. Beispielsweise wären hierzu
die von Silicon Laborstories angebotenen USB-Mikrocontroller (C8051F320
und C8051F321) geeignet, die in 4 als Blockdiagramm
dargestellt sind. Der Chip zur Aufnahme des USB-Mikrocontrollers
ist ein winziges, 5 mm × 5
mm großes
Micro Lead-Frame Package (MLP) mit 28 Anschlussstiften, das ausreichend
klein ist, um problemlos in die Schaltungen des tragbaren Geräts (140)
integriert werden zu können.
Zusätzlich
verfügt
dieser Chip über
einen internen Oszillator, der als USB-Taktgeber genutzt werden, wenngleich
zum Erzeugen des USB-Takts auch ein externer Oszillator (390)
verwendet werden kann. Im Betrieb wird der USB-Mikrocontroller (370) nur eingeschaltet,
wenn das USB-Ladekabel in den Anschluss (360) eingesteckt
ist und der Ladezustand der wiederaufladbaren Batterie (340)
unterhalb des Schwellwerts zum Einschalten des tragbaren Geräts (140)
mit einem USB-Strom von weniger als 100 mA vor der Aufzählung liegt.
Im Prinzip übernimmt
der USB-Mikrocontroller (370), indem er mit weniger als
100 mA eingeschaltet werden kann, die Aufzählungsfunktion seitens des
Host-Laptops, wodurch der Ladestrom (entsprechend der USB-Spezifikation
in Revision 2.0) nach der Aufzählung
auf 500 mA erhöht
werden kann, was ausreicht, um den Chipsatz des tragbaren Geräts (140)
zu starten. Ersatzweise erhält
im Falle eines USB-Hosts mit niedriger Leistung der USB-Mikrocontroller
(370) die USB-Verbindung so lange aufrecht, bis der Ladezustand
der Batterie (340) den Schwellwert überschritten hat und ausreicht,
um den Chipsatz des tragbaren Geräts (140) zu starten.
Nachdem der Chipsatz eingeschaltet wurde, übernimmt das tragbare Gerät (300)
die USB-Kommunikation
vom USB-Mikrocontroller (370). Der USB-Multiplexer (380)
wird vom USB-Mikrocontroller (370) und von der Vergleichsschaltung
für den
Batterieladezustand (395) gesteuert.
-
In
einem anderen Aspekt dieser Ausführung befindet
sich die Stromversorgung des USB-Mikrocontrollers standardmäßig im Zustand
EIN. Sobald der einzelne Prozessor (310) eingeschaltet
wird, wird die Stromversorgung des USB-Mikrocontrollers (360) ausgeschaltet.
Dies dient dazu, die Betriebsdauer der wiederaufladbaren Batterie
(340) zu verlängern, und
macht zudem die komplizierte Kommunikation zwischen den Prozessoren
hinfällig.
-
5 zeigt
in einem Flussdiagramm die Schritte des Aufzählungsvorgangs für das tragbare Gerät (140)
mit dem beispielhaften inneren Aufbau (300). In Schritt 400 wird
das USB-Lade- und -Synchronisationskabel eingesteckt. In Schritt 410 wird ermittelt,
ob der Ladezustand der wiederaufladbaren Batterie (340)
unter dem Schwellwert zum Einschalten des tragbaren Geräts (140)
mit einem USB-Strom von weniger als 100 mA vor der Aufzählung liegt. Wenn
dies der Fall ist, wird in Schritt 420 der Chipsatz des
tragbaren Geräts
(140) eingeschaltet und das tragbare Gerät (140)
aufgezählt.
Wenn dies nicht der Fall ist, wird in Schritt 430 der USB-Mikrocontroller
(370) eingeschaltet und unter Verwendung des Stroms von
100 mA vor der Aufzählung
aufgezählt. Wenn
in Schritt 440 ermittelt wird, dass der Ladezustand der
wiederaufladbaren Batterie (340) über dem Schwellwert zum Einschalten
des tragbaren Geräts (140)
liegt, oder wenn ein Strom von 500 mA entnommen werden kann, wird
in Schritt 450 der Chipsatz des tragbaren Geräts (140)
gestartet. Nachdem der Chipsatz gestartet wurde, übernimmt
in Schritt 460 das tragbare Gerät (140) die USB-Kommunikation vom
USB-Mikrocontroller (370).
-
6 zeigt
eine alternative Umsetzung eines beispielhaften inneren Aufbaus
(500) des tragbaren Geräts
(140). In dieser Ausführung
ersetzt ein USB-Hubcontroller
(510) den USB-Mikrocontroller (370). Das tragbare
Gerät (140)
enthält
darüber
hinaus eine IC der USB-Ladevorrichtung (520) und eine IC
für die
Energieverwaltung (530), die ähnlichen Funktionen dienen
wie die zuvor in Bezug auf 3 beschriebenen
Elemente. Im Betrieb wird, wenn das USB-Lade- und -Synchronisationskabel
in den Anschluss (540) eingesteckt wird, nur der USB-Hubcontroller (510)
eingeschaltet, um die Aufzählung
seitens des Hostcomputers (nicht abgebildet) durchzuführen. Im
Unterschied zum tragbaren Gerät
(140) benötigt der
USB-Hubcontroller (510) zum Einschalten einen geringeren
Strom als den Strom von 100 mA vor der Aufzählung. Wenn der Ladezustand
der wiederaufladbaren Batterie (550) ausreichend hoch ist
oder wenn nach der Aufzählung
ein Strom von 500 mA entnommen werden kann, wird der Systemprozessor (560)
gestartet und fungiert dieser als Gerät des USB-Hubcontrollers (510).
-
Bei
dem USB-Hubcontroller (510) kann es sich auch um einen
handelsüblichen,
für tragbare Geräte entwickelten
Controller handeln. Ein Beispiel für einen solchen USB-Hubcontroller
(510) ist der von SMSC angebotene USB20H04, ein Hubcontroller
für USB
2.0 mit vier Anschlüssen,
der in 7 als Blockdiagramm dargestellt ist. Wie bereits
ausgeführt,
kann entsprechend der USB-Spezifikation
in Revision 2.0 ein in das Host-Laptop integrierter Root-Hub entweder
mit „Hubs" oder mit „Funktionen" verbunden werden.
Darüber
hinaus kann die Stromversorgung bei Hubs, ebenso wie bei Funktionen, aus
dem Bus oder durch eine eigene Stromversorgung oder durch eine Kombination
hiervon erfolgen. Der USB20H04 unterstützt Konfigurationen mit Stromversorgung
aus dem Bus, mit eigener Stromversorgung und mit dynamischer Stromversorgung. Im
Betrieb mit eigener Stromversorgung werden die nachgeschalteten
Anschlüsse
(in der Abbildung allgemein als 570 bezeichnet) durch eine
externe Stromversorgung (z. B. die wiederaufladbare Batterie 550)
gespeist. Im Modus mit Stromversorgung aus dem Bus liefert der vorgeschaltete
Anschluss (580; d. h. die USB-Verbindung mit dem Host-Laptop)
den gesamten Strom, und es wird keine externe Stromversorgung benötigt. Im
Modus mit dynamischer Stromversorgung schaltet der USB20H04 automatisch
in den Modus mit Stromversorgung aus dem Bus um, wenn eine örtliche
Stromquelle verfügbar
ist. In der vorteilhaften Ausführung
kann im Modus mit dynamischer Stromversorgung der USB-Hubcontroller
(510) während
des Aufladens der wiederaufladbaren Batterie (550) durch
das Host-Laptop eingeschaltet werden, mit dem dieser verbunden ist;
anschließend
wird der USB-Hubcontroller (510) von der wiederaufladbaren
Batterie (550) eingeschaltet.
-
8 ist
ein Flussdiagramm mit den Schritten des Aufzählungsvorgangs für das tragbare
Gerät (140)
mit dem beispielhaften inneren Aufbau (500). In Schritt 600 wird
das USB-Lade- und -Synchronisationskabel eingesteckt. In Schritt 610 wird
der USB-Hubcontroller (510) eingeschaltet und unter Verwendung
des Stroms von 100 mA vor der Aufzählung aufgezählt. Wenn
in Schritt 620 ermittelt wird, dass der Ladezustand der
wiederaufladbaren Batterie (520) über dem Schwellwert zum Einschalten
des tragbaren Geräts
(140) liegt, oder wenn ein Strom von 500 mA entnommen werden
kann, wird in Schritt 630 der Chipsatz des tragbaren Geräts (140)
gestartet. Nachdem der Chipsatz gestartet wurde, wird in Schritt 640 das
tragbare Gerät
(140) als an den USB-Hubcontroller (510) angeschlossenes
Gerät aufgezählt. Wenn
in Schritt 620 ermittelt wird, dass der Ladezustand der
wiederaufladbaren Batterie (520) nicht über dem Schwellwert zum Einschalten des
tragbaren Geräts
(140) liegt oder dass ein Strom von 500 mA nicht entnommen
werden kann, wird in Schritt 625 das Aufladen der Batterie
fortgesetzt.
-
In 5 sind
lediglich die für
die Ausführung
der vorgeschlagenen Lösung
relevanten Aufzählungsschritte
dargestellt. Wie für
Fachleute ersichtlich ist, beinhaltet der Aufzählungsvorgang eine Reihe weiterer
Schritte, die zur Verdeutlichung im Folgenden benannt werden. Im
Allgemeinen muss der Host zunächst über ein
Gerät informiert
werden und einen Gerätetreiber
zuweisen, damit Anwendungen mit einem Gerät kommunizieren können. Die Aufzählung ist
der anfängliche
Informationsaustausch, durch den dies erreicht wird. Der Vorgang
beinhaltet das Zuweisen einer Adresse für das Gerät, das Einlesen von Datenstrukturen
vom Gerät,
das Zuweisen und Laden eines Gerätetreibers
sowie das Auswählen
einer Konfiguration unter den in den abgerufenen Daten angebotenen
Möglichkeiten.
Anschließend
wird das Gerät
konfiguriert, sodass es zum Übertragen
von Daten unter Verwendung beliebiger Endpunkte in der Konfiguration
des Geräts
bereit ist.
-
Eine
der Aufgaben eines Hubs besteht darin, das Anschließen und
Entfernen von Geräten
zu erkennen. Jeder Hub verfügt über einen
Interrupt-Eingangskanal, um diese Ereignisse an den Hostcomputer
zu melden. Beim Hochfahren des Systems informiert sich der Host
durch Abfragen des (in den Computer integrierten) Root-Hub darüber, ob
Geräte angeschlossen
sind, darunter auch zusätzliche
Hubs und an Geräte
der ersten Stufe angeschlossene Geräte. Nach dem Hochfahren setzt
der Host in regelmäßigen Abständen weitere
Abfragen ab, um sich darüber
zu informieren, ob zwischenzeitlich neue Geräte angeschlossen oder Geräte entfernt
wurden. Wenn der Host über
ein neues Gerät
informiert wird, sendet er eine Reihe von Anforderungen an den Hub des
Geräts,
was bewirkt, dass der Hub einen Kommunikationspfad zwischen dem
Host und dem Gerät einrichtet.
Anschließend
versucht der Host, das Gerät
aufzuzählen,
indem er Steuerungsübergaben
mit USB-Standardanforderungen
an den Endpunkt 0 sendet. Alle USB-Geräte müssen Steuerungsübergaben,
die Standardanforderungen und einen Endpunkt 0 unterstützen. Damit
die Aufzählung
erfolgreich verläuft,
muss das Gerät
auf jede Anforderung reagieren, indem es die angeforderten Informationen zurückgibt und
andere angeforderte Vorgänge
ausführt.
Nach Abschluss der Aufzählung
fügt WindowsTM das neue Gerät dem Anzeigebereich „Geräte-Manager" in der Systemsteuerung
hinzu. Wenn ein Benutzer ein Peripheriegerät trennt, entfernt WindowsTM das Gerät automatisch aus der Anzeige.
Bei einem typischen Peripheriegerät enthält der Programmcode des Geräts die vom
Host angeforderten Informationen, und Anforderungen der Informationen werden
durch eine Kombination aus Hardware und Firmware dekodiert und beantwortet.
Bei manchen anwendungsspezifischen Chips (ASICs) wird die Aufzählung vollständig durch
die Hardware verwaltet, sodass keine Unterstützung durch Firmware erforderlich
ist. Auf der Hostseite wickelt WindowsTM den Aufzählungsvorgang
automatisch ab. WindowsTM sucht nach einer
speziellen Textdatei, einer sogenannten INF-Datei, die den für das Gerät zu verwendenden
Treiber bezeichnet, und beginnt dann mit dem Aufzählungsvorgang.
-
Während des
Aufzählungsvorgangs
durchläuft
ein Gerät
vier bis sechs in der Spezifikation definierte Gerätezustände: „Powered", „Default", „Address" und „Configured". (Die beiden anderen
Zustände
sind „Attached" und „Suspend".) Jedem Zustand
entsprechen bestimmte Möglichkeiten
und Verhaltensweisen des Geräts.
Eine typische Abfolge von Ereignissen während der Aufzählung unter
WindowsTM umfasst die folgenden Schritte:
- (a) Der Benutzer verbindet ein Gerät über einen USB-Anschluss,
oder beim Einschalten des Systems ist bereits ein Gerät über einen
Anschluss verbunden. Der Anschluss kann sich am Root-Hub des Hosts
oder an einem nachgeschalteten, mit dem Host verbundenen Hub (z.
B. dem USB-Hubcontroller (510)) befinden. Der Hub versorgt
den Anschluss mit Strom, und das Gerät befindet sich im Zustand „Powered";
- (b) Der Hub erkennt das Gerät.
Der Hub kontrolliert die Spannungen der Signalleitungen der einzelnen
Anschlüsse.
Beim Hub sind die beiden Signalleitungen (D+ und D–) eines
Anschlusses jeweils mit einem Pull-down-Widerstand von 15 kΩ versehen;
Geräte
verfügen
hingegen über
einen Pull-up-Widerstand von 1,5 kΩ auf D+ bei Full-Speed-Geräten bzw.
auf D– bei Low-Speed-Geräten. Bei
High-Speed-Geräten erfolgt
die Verbindung im Full-Speed-Modus. Wenn ein Gerät mit einem Anschluss verbunden
wird, wird die betreffende Leitung vom Pull-up-Widerstand des Geräts in den
H-Zustand versetzt, sodass der Hub das Vorhandensein eines Geräts erkennen
kann. Nachdem ein Gerät
erkannt wurde, versorgt der Hub dieses weiter mit Strom; es findet
jedoch noch kein USB-Datenverkehr zum Gerät statt, da das Gerät noch nicht
empfangsbereit ist;
- (c) Der Host wird über
das neue Gerät
informiert. Über
die jeweiligen Interrupt-Kanäle melden
die einzelnen Hubs Ereignisse am Hub. Die Meldungen geben Aufschluss
darüber,
ob ein Ereignis am Hub oder an einem Anschluss (und ggf. an welchem
Anschluss) eingetreten ist. Wenn der Host über ein Ereignis informiert
wird, sendet er eine Anforderung Get_Port_Status an den Hub, um
weitere Einzelheiten abzurufen. Get_Port_Status und die anderen
Anforderungen sind Standardanforderungen der Hub-Klasse, die von
allen Hubs verstanden werden. In den zurückgegebenen Informationen wird
der Host vom Anschluss eines neuen Geräts unterrichtet;
- (d) Der Hub erkennt, ob es sich um ein Low-Speed-Gerät oder um
ein Full-Speed-Gerät handelt.
Unmittelbar bevor der Hub das Gerät zurücksetzt, ermittelt der Hub
durch Auswertung der Spannungen auf den beiden Signalleitungen,
ob es sich um ein Low-Speed-Gerät
oder um ein Full-Speed-Gerät
handelt. Der Hub erkennt die Geschwindigkeit eines Geräts, indem
er ermittelt, auf welcher Leitung im Leerlauf die höhere Spannung
anliegt. Der Hub sendet die Informationen als Reaktion auf die nächste Anforderung Get_Port_Status
an den Host. Bei USB 1.x konnte der Hub die Geschwindigkeit eines
Geräts
wahlweise unmittelbar nach dem Zurücksetzen erkennen. Bei USB
2.0 muss die die Geschwindigkeitserkennung vor dem Zurücksetzen
erfolgen, damit während
des Zurücksetzens
geprüft
werden kann (wie nachfolgend beschrieben), ob es sich bei dem Gerät um ein
High-Speed-fähiges
Gerät handelt;
- (e) Der Hub setzt das Gerät
zurück.
Wenn ein Host über
ein neues Gerät
informiert wird, sendet der Hostcontroller eine Anforderung Set_Port_Feature
an den Hub; hierdurch wird der Hub aufgefordert, den Anschluss zurückzusetzen. Der
Hub versetzt die USB-Datenleitungen des Geräts für mindestens 10 ms in den Reset-Zustand. Im Reset-Zustand
befinden sich ausnahmsweise sowohl D+ als auch D– im logischen L-Zustand. (Normalerweise
befinden sich die beiden Leitungen in entgegengesetzten logischen Zuständen.) Der
Hub sendet die Anforderung zum Zurücksetzen nur an das neue Gerät. Für andere Hubs
und Geräte
am Bus ist sie nicht sichtbar;
- (f) Der Host ermittelt, ob ein Full-Speed-Gerät High-Speed-fähig ist.
Ob ein Gerät High-Speed-fähig ist,
wird anhand zweier spezieller Signalzustände erkannt. Im Zustand „J-Chirp" wird nur die Leitung
D+ angesteuert; im Zustand „K-Chirp" wird nur die Leitung
D– angesteuert. Während des
Zurücksetzens
sendet ein Gerät
mit High-Speed-Unterstützung einen
K-Chirp. Ein High-Speed-Hub erkennt den Chirp und reagiert mit einer
Abfolge alternierender K- und J-Chirps. Wenn das Gerät das Muster
KJKJKJ erkennt, deaktiviert es den Pull-up-Widerstand für den Full-Speed-Modus und wickelt
die gesamte weitere Kommunikation im High-Speed-Modus ab. Wenn der
Hub nicht auf den K-Chirp des Geräts reagiert, signalisiert dies
dem Gerät,
die Kommunikation im Full-Speed-Modus fortzusetzen. Alle High-Speed-Geräte müssen in
der Lage sein, im Full-Speed-Modus auf Aufzählungsanforderungen zu reagieren;
- (g) Der Hub richtet einen Signalweg zwischen dem Gerät und dem
Bus ein. Der Host prüft,
ob das Gerät
den Reset-Zustand verlassen hat, indem er eine Anforderung Get_Port_Status
sendet. Ein Bit in den zurückgegebenen
Daten gibt an, ob sich das Gerät
noch im Reset-Zustand befindet. Erforderlichenfalls wiederholt der
Host die Anforderung so lange, bis das Gerät den Reset-Zustand verlassen
hat. Wenn der Hub den Reset-Zustand aufhebt, befindet sich das Gerät im Default-Zustand.
Die USB-Register des Geräts befinden
sich in den jeweiligen zurückgesetzten Zuständen, und
das Gerät
ist bereit, auf Steuerungsübergaben über den
Standardkanal an Endpunkt 0 zu reagieren. Das Gerät kann nun
unter Verwendung der Standardadresse 00h mit dem Host kommunizieren.
Das Gerät
kann bis zu 100 mA aus dem Bus entnehmen;
- (h) Der Host sendet eine Anforderung Get_Descriptor, um die
maximale Paketgröße des Standardkanals
zu ermitteln. Der Host sendet die Anforderung an Geräteadresse
0, Endpunkt 0. Da der Host immer nur jeweils ein Gerät aufzählt, reagiert
nur ein Gerät
auf die an Geräteadresse
0 gerichtete Kommunikation, auch wenn mehrere Geräte gleichzeitig
angeschlossen werden. Das achte Byte der Beschreibung des Geräts gibt
die von Endpunkt 0 unterstützte
maximale Paketgröße an. Ein
WindowsTM-Host fordert 64 Byte an, beginnt
jedoch nach Empfang eines Pakets (unabhängig davon, ob dieses 64 Byte
umfasst) mit der Statusphase der Übertragung. Nach Abschluss der
Statusphase fordert ein WindowsTM-Host den Hub
auf, das Gerät
zurückzusetzen
(Schritt (e)). Ein Zurücksetzen
ist hier laut Spezifikation nicht erforderlich, da die Geräte in der
Lage sein müssen,
den Abbruch eines Steuerungsübergangs durch
den Host jederzeit dadurch zu verarbeiten, dass sie auf das nächste Setup-Paket
reagieren. Das Zurücksetzen
ist jedoch eine Vorkehrung, durch die sichergestellt wird, dass
sich das Gerät nach
dem Zurücksetzen
in einem bekannten Zustand befindet;
- (i) Der Host weist eine Adresse zu. Der Hostcontroller weist
dem Gerät
eine eindeutige Adresse zu, indem er eine Anforderung Set Address
sendet. Das Gerät
liest die Anforderung, gibt eine Bestätigung zurück und speichert die neue Adresse. Das
Gerät befindet
sich nun im Address-Zustand. Die neue Adresse wird von diesem Zeitpunkt
an für
die gesamte Kommunikation verwendet. Die Adresse bleibt so lange
gültig,
bis das Gerät
getrennt oder zurückgesetzt
oder das System abgeschaltet wird. Bei der nächsten Aufzählung kann dem Gerät eine andere
Adresse zugewiesen werden;
- (j) Der Host ermittelt die Möglichkeiten
des Geräts.
Der Host sendet eine Anforderung Get_Descriptor an die neue Adresse,
um die Beschreibung des Geräts
einzulesen, wobei diese diesmal vollständig ausgewertet wird. Die
Beschreibung ist eine Datenstruktur mit Angaben zur maximalen Paketgröße für Endpunkt
0 und zur Anzahl der vom Gerät
unterstützten
Konfigurationen sowie mit weiteren grundlegenden Informationen zum
Gerät.
Der Host nutzt diese Informationen bei den nachfolgenden Kommunikationsvorgängen. Der
Host erfasst weitere Informationen zum Gerät, indem er die eine oder mehreren
Konfigurationsbeschreibungen entsprechend der Beschreibung des Geräts anfordert.
Ein Gerät
reagiert auf eine Anforderung einer Konfigurationsbeschreibung normalerweise
durch Senden der Beschreibung, gefolgt durch alle untergeordneten Beschreibungen
der betreffenden Beschreibung. Ein Windows-Host fordert jedoch zunächst nur
die neun Bytes der Konfigurationsbeschreibung an. Diese Bytes enthalten
eine Angabe der Gesamtlänge
der Konfigurationsbeschreibung und von deren untergeordneten Beschreibungen.
Anschließend
fordert Windows die Konfigurationsbeschreibung erneut an, wobei
diesmal deren gesamte Länge
von bis zu FFh Bytes ausgewertet wird. Dies bewirkt, dass das Gerät die Konfigurationsbeschreibung,
gefolgt von der bzw. den Schnittstellenbeschreibung(en) für die einzelnen Konfigurationen,
gefolgt von der bzw. den Endpunktbeschreibung(en) für die einzelnen
Schnittstellen sendet. Wenn die Beschreibungen insgesamt mehr als
FFh Bytes umfassen, ruft WindowsTM bei einer
dritten Anforderung die gesamten Beschreibungen ab. Am Anfang einer
Beschreibung stehen jeweils Angaben zu Länge und Typ, anhand deren der
Host die nachfolgenden Daten parsen (in die einzelnen Elemente aufschlüsseln) kann;
- (k) Der Host weist einen Gerätetreiber
zu und lädt diesen
(außer
bei zusammengesetzten Geräten). Nachdem
der Host anhand der Beschreibungen alle verfügbaren Informationen zum Gerät erfasst hat,
sucht er nach dem am besten geeigneten Gerätetreiber für die Verwaltung der Kommunikation mit
dem Gerät.
Die Auswahl eines Treibers erfolgt unter WindowsTM durch
Abgleich der vom Gerät empfangenen
Angaben zur Hersteller- und Produktkennung sowie (optional) zur
Versionsnummer mit den in den INF-Dateien des Systems gespeicherten
Informationen. Wenn keine Übereinstimmungen
gefunden werden, sucht WindowsTM nach Übereinstimmungen
mit vom Gerät
empfangenen Werten bezüglich
dessen Klasse, Unterklasse und Protokoll. Nach dem Zuweisen und
Laden des Treibers durch das Betriebssystem fordert dieser in vielen
Fällen
das erneute Senden von Beschreibungen oder das Senden anderer klassenspezifischer
Beschreibungen durch das Gerät
an. Ein Ausnahme bilden hierbei zusammengesetzte Geräte, die über mehrere
Schnittstellen verfügen,
wobei jede Schnittstelle einen eigenen Treiber benötigt. Der
Host kann diese Treiber erst nach dem Aktivieren der Schnittstellen zuweisen,
was ein Konfigurieren des Geräts
voraussetzt (wie im folgenden Schritt beschrieben);
- (l) Der Gerätetreiber
des Hosts wählt
eine Konfiguration aus. Nach dem Erfassen von Informationen zum
Gerät aus
den Beschreibungen fordert der Gerätetreiber eine Konfiguration
an, indem er eine Anforderung Set Configuration mit der gewünschten
Konfiguration sendet. Viele Geräte
unterstützen
nur eine Konfiguration. Wenn ein Gerät mehrere Konfigurationen unterstützt, kann
der Treiber anhand vorliegender Informationen zur Art der Nutzung
des Geräts
entscheiden, welche Konfiguration verwendet wird, oder der Benutzer kann
zur Auswahl des weiteren Vorgehens aufgefordert werden oder es kann
einfach die erste Konfiguration ausgewählt werden. Das Gerät liest die
Anforderung ein und legt die Konfiguration entsprechend fest. Das
Gerät befindet
sich nun im Configured-Zustand, und die Schnittstelle(n) des Geräts ist bzw.
sind aktiviert.
-
Nun
weist der Host Treiber für
die Schnittstellen zusammengesetzter Gerät zu. Wie auch bei anderen
Geräten
sucht der Host anhand vom Gerät empfangener
Informationen nach einem passenden Treiber. Das Gerät ist nun
bereit und kann verwendet werden.
-
Der
Vorteil der vorgeschlagenen Lösung
ist damit ohne Weiteres ersichtlich. Unter Verwendung des USB-Mikrocontrollers
kann der Chipsatz eines tragbaren Geräts auch dann gestartet werden,
wenn das tragbare Gerät
im Vorfeld der Aufzählung
seitens des Host-Computers nicht mehr als 100 mA aufnehmen kann.
-
Wer
die vorgeschlagene Lösung
versteht, kann alternative Aufbauten und Ausführungen oder Abwandlungen der
oben genannten entwickeln, die allesamt in den durch die nachfolgenden
Ansprüche bestimmten
Bereich der vorgeschlagenen Lösung fallen
sollen.