-
Gebiet der
Erfindung
-
Die Erfindung betrifft ein Verbundgerät für den Universal
Serial Bus (USB), insbesondere hinsichtlich eines USB-Verbundgeräts mit niedrigen Herstellkosten
und uneingeschränkter
Erweiterbarkeit, sowie ein Verfahren zum Realisieren desselben.
-
Beschreibung
der einschlägigen
Technik
-
Beim Anschließen verschiedener Geräte werden
verschiedene Typen von Kommunikationsverbindungen und Kommunikationsprotokollen
verwendet, damit jedes Gerät
mit den anderen kommunizieren kann. Kommunikationsverbindungen nutzen eine
Anzahl von Verfahren zum Steuern der Befehle und der Datenflussrichtungen.
Zum Beispiel sind bei einem Typ einer Kommunika tionsverbindung ein Hostgerät und ein
Slavegerät
erforderlich. Bei dieser Systemstruktur sendet das Hostgerät einen
Befehl, der es dem Slavegerät
erlaubt, mit der Kommunikation fortzufahren, wohingegen dann, wenn
das Peripheriegerät
den Befehl nicht empfängt,
es nicht dazu berechtigt ist, mit der Kommunikation fortzufahren. Daher
steuert bei dieser Struktur das einzelne Hostgerät die Befehle und die Datenflussrichtungen
des gesamten Systems. Hinsichtlich eines anderen Typs einer Systemstruktur
existiert keine Unterscheidung von Host- und Slavegeräten und
jedes Gerät
des Systems kann Befehle und Daten an die anderen senden.
-
Während
der letzten wenigen Jahre wurde für Kommunikationsverbindungen
ein als "Universal Serial
Bus" (USB) bezeichneter
spezieller Schnittstellensystem-Standard entwickelt. Die serielle Schnittstelle
kann alle Arten von Peripheriegeräten auf einfache Weise mit
dem Computersystem verbinden, um so die Komplikation zu überwinden,
wie sie durch Verbindungen mit Anschlüssen mit verschiedenen Standards
zwischen verschiedenen Peripheriegeräten und einem Computer hervorgerufen
werden. Ein USB-System verfügt über Folgendes:
einen USB-Host, ein USB-Gerät
und eine USB-Verbindung. Der USB-Host
ist hierbei zum Steuern des Timings und der Richtung der Datenübertragung
auf dem USB zuständig.
USB-Geräte
werden in zwei Kategorien eingeteilt, von denen die eine "Hub-Geräte" bilden, die den
USB mit neuen Anschlusspunkten versehen, und die andere "Funktionsgeräte" sind, die als Peripheriegeräte des Systems
dienen, d. h. z. B. eine Maus, eine Tastatur und ein Drucker. Die
tatsächlichen
Verbindungen in einem USB-System bilden eine gestaffelte Sternstruktur,
wie sie in der 1 dargestellt
ist, wobei der Hub das Zentrum jeder gestaffelten Sternverbindung
bildet.
-
Wenn das USB-Gerät (ein Hub- oder ein Funktionsgerät) mit einem
USB-Bus verbunden wird, weist der USB-Host dem Gerät nur eine
einzige Adresse zu, und dann kommuniziert er entsprechend dieser
Adresse mit dem USB-Gerät;
anders gesagt, verfügt
jedes USB-Gerät
nur über
eine Adresse.
-
Das USB-Gerät verfügt auch über eine Endstellenstruktur,
und im USB-Gerät
ist jede Endstelle eine unabhängige
Teilstelle, die während
der Datenübertragung
zwischen dem USB-Host und dem Gerät als Datenausgangs- oder Empfangsanschluss dient.
Jedes USB-Gerät
kann über
eine Gruppe von Endstellen verfügen,
die für
verschiedene Datenübertragungseigenschaften
ausgebildet sind. Die Endstellen werden in Steuer-, Großmengen-,
Interrupt- und isochrone Endstellen eingeteilt. Mit Ausnahme der
Steuer-Endstellen, die bidirektionale Datenübertragung erlauben, ist der
Rest weiter in Eingangs- und Ausgangs-Endstellen unterteilt.
-
Ein USB-Gerät verfügt über eine Gruppe von Endstellen,
nicht über
sechzehn, die dazu verwendet werden, Gerätefunktionen zu realisieren,
und jeder Endstelle ist eine eindeutige Nummer zugeordnet, die als "Endstellennummer" bezeichnet wird.
Daher ermöglicht
es die Kombination aus der Geräteadresse,
der Endstellennummer und der Datenübertragungsrichtung (Ausgang
oder Eingang) der Endstelle, eine eindeutige und spezifische Adresse
auf dem USB-Bus zu erfassen.
-
Die im Hostgerät des Systems aufgebauten Gerätetreiber
kommunizieren mit den USB-Geräten über USB-Funktionsstellenschnittstellenprogramme, die
vom System bereitgestellt werden, um die Gerätefunktion auszuführen. D.
h., dass der Gerätetreiber
und das Funktionsgerät
eine eineindeutige Beziehung bilden. Jedes USB-Gerät muss über ein
entsprechendes Funktionsprogramm innerhalb des Hosts verfügen, um
die Funktion auszuüben,
die durch das Gerät
im System bereitgestellt wird. Um für zweckdienliche USB-Plug-and-Play-Funktion
zu sorgen, sind mehrere Funktionsgerätetreiber, wie sie allge mein
verwendet werden, bereits in das Betriebssystem eingebettet. Demgemäß kann das
System, wenn ein Gerät
mit dem USB-Bus verbunden wird, die eingebettete Software auffinden,
und es führt
die zugehörige
Funktion ohne zusätzliche
Softwareinstallation aus, um die Nutzbarkeit des USB einfacher zu
machen.
-
Auf Grundlage von Überlegungen
betreffend die Praxisgerechtheit und die Herstellkosten sind im Allgemeinen
mehrere USB-Funktionen
in einem USB-Gerät
integriert. Zum Beispiel sind eine Tastatur und eine Maus in ein
USB-Gerät
integriert, das als "Mehrfunktionsgerät" bezeichnet wird.
Mehrfunktionsgeräte
werden häufig
in "zusammengesetzte
Geräte" und "Verbundgeräte" eingeteilt.
-
Die interne Struktur eines herkömmlichen zusammengesetzten
Geräts 20 ist
in der 2 dargestellt.
Diese intere Struktur ist dieselbe wie die eines USB-Geräts ingesamt,
mit einer USB-Logik 201 und einem Funktionsblock 202.
Der Unterschied zwischen den beiden besteht darin, dass das zusammengesetzte
Gerät über mehrere
Endstellen 203 verfügt,
die jeweils verschiedene Funktionen repräsentieren. Gemäß dem USB-Standard kann ein USB-Gerät über maximal
bis zu sechzehn Endstellen verfügen.
Daher kann das zusammengesetzte Gerät mehrere Endstellen in ihm
dazu verwenden, eine Funktion aufzubauen, und es kann die anderen
Endstellen in ihm dazu verwenden, eine andere Funktion aufzubauen.
Zum Beispiel kann das zusammengesetzte Gerät durch die Endstellen 0 und 1 eine
Mausfunktion 204 aufbauen, und durch die Endstellen 0, 2 und 3 kann
es eine Tastaturfunktion 205 aufbauen. Demgemäß kann ein
USB-Gerät
abhängig
vom genannten Design über
mehrere Funktionen verfügen.
-
Jedoch besteht der Nachteil des Vorstehenden
darin, dass das zusammengesetzte Gerät vom USB-Host in einem USB-System
als USB-Funktionsgerät
angesehen wird. Demgemäß wird dem
zusammengesetzten Gerät
durch den USB-Host nur eine Adresse zugewiesen. Anders gesagt, kommunizieren
die zugehörigen
eingebetteten mehreren Funktionen mit dem USB-Host über dieselbe
gemeinsam genutzte USB-Adresse. Dieses Verfahren unterscheidet sich
von dem bei üblichen
Funktionsgeräten,
bei denen jede Funktion über
ihre eigene unabhängige
Adresse verfügt
und vom Host erkannt werden kann, um den Treiber für diese
Funktion zu laden. Aus diesem Grund ist es möglich, dass ein zusammengesetztes
Gerät den
eingebetteten Standardtreiber nicht verwenden kann und der für das zusammengesetzte
Gerät konzipierte
Treiber verwendet werden sollte. Indessen muss der für das Hardwaregerät konzipierte
Treiber vor dem Anschluss installiert werden, um es dem USB-Host
zu ermöglichen,
Daten hinsichtlich der speziellen Endstellen des zusammengesetzten
Geräts
zu senden oder zu empfangen.
-
Ferner besteht der Grund dafür, dass
ein USB-Gerät
bis zu maximal sechzehn Endstellen aufweist darin, dass die Anzahl
der Funktionen beschränkt
ist, die innerhalb eines zusammengesetzten Geräts aufgebaut werden können.
-
Es wird auf die 3a und 3b Bezug
genommen, deren Diagramme ein herkömmliches Verbundgerät 30 zeigen,
das ein anderer Typ eines Mehrfunktionsgeräts ist. Ein Verbundgerät repräsentiert
ein Funktionsgerät
mit eingebettetem Hub. Wie es in der 3a dargestellt
ist, ist das herkömmliche
Verbundgerät
dem Aussehen nach ein Tastaturgerät. Jedoch ist das Innere des
Tastatur-Verbundgeräts 30 mit
einem Tastatur-Funktionsgerät 310 und
einem Hubgerät 320 aufgebaut
(siehe die 3b). Demgemäß kann das
Tastatur-Verbundgerät 30 mehrere USB-Anschlussports 304, 305 bereitstellen,
und es ermöglicht
es, mehrere USB-Geräte 306, 307 mit dem
USB-Bus zu verbinden.
-
Beim herkömmlichen Verbundgerät können zwar
die Schaltkreise des Tastatur-Funktionsgeräts 310 und des Hubgeräts 320 auf
einem einzelnen Chip integriert werden, um die Herstellkosten zu
verringern, jedoch sind die genannten zwei Geräte als unabhängige USB-Geräte repräsentiert,
und jedes verfügt über einen
Satz von Grundschaltungen des USB-Geräts. D. h., dass jedes Gerät über einen
Satz von USB-Logikschaltungen 311 oder 321 sowie Funktionsblöcke 312 oder 322 verfügt. Da jedes Funktionsgerät im Verbundgerät ein unabhängiges USB-Gerät ist, verfügt demgemäß jedes
Funktionsgerät über seine
eigene unabhängige
USB-Adresse. Indessen kann der USB-Host die eingebetteten Standardtreiber
entsprechend dem zugehörigen
Gerätetyp
laden und Komplikationen beseitigen, wie sie durch die Installation
spezieller Treiber hervorgerufen werden.
-
Jedoch repräsentiert jede USB-Logikschaltung
des USB-Geräts
dieselbe Schnittstelle, die dazu verwendet wird, Meldungen zu senden
und zu empfangen und eine Signalformat-Übertragung an den USB-Host
auszuführen,
während
jeder Funktionsblock eine eingebettete Funktion des USB-Geräts repräsentiert,
d. h. eine Tastatur, eine Maus oder eine Festplatte. Dem Grunde
nach haben alle USB-Logikschaltungen von USB-Geräten ähnliche Strukturen.
-
Demgemäß verfügen die eingebetteten Funktionen
des Verbundgeräts über den
Vorteil, Standardtreiber als USB-Gerät zu verwenden, jedoch beinhaltet
dieser Typ von Geräten
den Nachteil, dass redundante Schaltungen vorliegen. Gemäß der 3b verfügt das Verbundgerät demgemäß über zwei
Gruppen von USB-Logikschaltungen. Wenn mehr als ein Funktionsgerät in das
Verbundgerät
eingebettet ist, wird mehr als eine Logikgruppe zum Verbundgerät hinzugefügt.
-
Als Schlussfolgerung aus dem Obigen
ergibt sich, dass trotz der vereinfachten Schaltungsanordnung als
Vorteil eines herkömmlichen
zusammengesetzten Geräts
die eingebetteten Funktionen desselben die Standardtreiber nicht
nutzen können,
wohingegen bei einem herkömmlichen
Verbundgerät
die Realisierung der zugehörigen
eingebetteten Funktionen so zweckdienlich wie die bei einem USB-Gerät sind,
wobei jedoch ein derartiger Typ von Geräten als Nachteil über eine
Wiederholung von Schaltungsanordnungen verfügt und Ressourcen vergeudet.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Es ist eine Aufgabe der Erfindung,
ein Verbundgerät
zu schaffen, bei dem mehrere Funktionsgeräte über dieselbe Gruppe von USB-Logikmaßnahmen
mit dem USB verbunden werden können. Die
zugehörige
Schaltung ist so einfach wie bei bekannten zusammengesetzten Geräten, aber
dennoch ist jede Funktion der Art nach unabhängig, wie bei bekannten Verbundgeräten.
-
Eine andere Aufgabe der Erfindung
ist es, ein zur Planung geeignetes Design zu schaffen, damit Benutzer
eine Planung entsprechend verschiedenen Anwendungen und einer Anzahl
gewünschter Funktionen
bewerkstelligen können.
-
Die andere Aufgabe der Erfindung
ist es, eine Realisierung eines USB-Verbundgeräts zu schaffen, bei dem ein
eingebetteter Hub fehlt und die Simulation eines Hubs durch eine
Schaltung oder Firmware ausgeführt
wird, so dass ein Satz unabhängiger
USB-Funktionen (Geräte) über einen
wechselseitigen stromaufwärtigen
USB-Port mit dem Host verbunden werden kann, während die Gerätefunktion und
die Erweiterbarkeit unbeeinflusst bleiben, wodurch eine zweckdienliche
Plug-and-Pluay-Fnktion erzielt
wird und der Zweck der Kostensenkung erfüllt wird.
-
Gemäß der Erfindung ist ein USB-Verbundgerät mit Folgendem
versehen: einem USB-Sendeempfänger,
einer seriellen Schnittstellenmaschine und einer Schaltungsanordnung,
wobei ein Ende der Schaltungsanordnung mit der seriellen Schnittstellenmaschine
verbunden ist und das andere Ende mit mehreren Nicht-USB-Schnittstellen über einen
Mikroprozessor oder einen Controller verbunden ist. Eine derartige
Schaltungsanordnung ist ohne die Funktionen eines USB-Sendeempfängers und
einer seriellen Schnittstellenmaschine, und sie wird dazu verwendet,
eine Anzahl von durch einen USB zugewiesenen Geräteadressen zu speichern und
zu verwalten und auch die Datenübertragung
ablaufen zu lassen.
-
Die Schaltungsanordnung verfügt über eine generische
allgemein verwendbare Endstellen-Zustandsmaschine, einen Adressen/Endstelle-Verwaltungsmechanismus
und ein Speichermodul. Der Adressen/Endstelle-Verwaltungsmechanismus
wird dazu verwendet, mehrere Adressen/Endstelle-Konfigurationen
abzuspeichern. Bei der Erfindung führt das USB-Verbundgerät USB-Standard-Kommunikationsprotokolle
aus, um abhängig
von den im Adressen/Endstelle-Verwaltungsmechanismus gespeicherten
Typen von Endstellen über
die allgemein verwendbare Endstellen-Zustandsmaschine mit dem USB-Host
zu kommunizieren, während
das Speichermodul dazu verwendet wird, die übertragenen Daten zwischenzuspeichern.
-
Außerdem beinhalten die mehreren
im Adressen/Endstelle-Verwaltungsmechanismus gespeicherten Adressen/Endstelle-Konfigurationen eine
Gruppe von Adressen/Endstelle-Konfigurationen eines virtuellen Hubs,
wobei diese Gruppe von Adressen/-Endstelle-Konfigurationen
für den
virtuellen Hub von der Schaltungsanordnung verwendet wird, wenn
diese ihre Funktion als Hub über
den USB-Sendeempfänger,
die serielle Schnittstellenmaschine und den Mikroprozessor oder
den Controller ausübt.
-
Indessen beinhaltet die Schaltungsanordnung
auch ein Endstellen-Variablenregister zum Speichern der Zustände der
mehreren Endstellen, auf das durch die allgemein verwendbare Endstellen-Zustandsmaschine
zugegriffen wird und das durch sie aktualisiert wird. Das Speichermodul
beinhaltet einen Speicherpuffer und eine Speicherverwaltungseinheit.
Der Speicherpuffer wird zum Zwischenspeichern der übertragenen
Daten verwendet. Die Speicherverwaltungseinheit wird zum Zugreifen
auf Daten im Speicherpuffer verwendet, mit: einem Speicherkonfigurationsmechanismus
für die
Endstelle zum Speichern der Speicherzuordnungsdaten und der maximalen
Paketgrößen der
Endstellen im Speicherpuffer; und einer Speicherzugriffssteuereinheit zum
Zugreifen auf Daten im Speicherpuffer entsprechend den Endstellennummern
von Signalen und den im Speicherkonfigurationsmechanismus der Endstelle
gespeicherten Speicherzuordnungsdaten.
-
Ferner verfügt das USB-Verbundgerät über eine
Anwendungs-Schnittstellenmaschine
zum Übertragen
von Signalen und zum Zugreifen auf Daten zwischen der allgemein
verwendbaren Endstellen-Zustandsmaschine, der Speicherzugriffs-Steuereinheit
und den mehreren mit der Schaltungsanordnung verbundenen Nicht-USB-Schnittstellen.
-
Auf Grundlage der Erfindung ist durch
diese Folgendes geschaffen: ein Verfahren, das es ermöglicht,
mehrere Funktionsgeräte
mit einem USB-Host zu verbinden, mit demselben Satz von Endstellennummern
und mit jeweiligen und unabhängigen USB-Adressen, mit den
folgenden Schritten: aufeinanderfolgendes Konfigurieren der logischen
Endstellen und der Korrelation zwischen den logischen/physikalischen
Endstellen der mehreren Funktionsgeräte; Speichern der Konfigurationen
der phy sikalischen Endstellen der mehreren Funktionsgeräte; Initialisieren
der Adressen/Endstelle-Konfigurationen der mehreren USB-Funktionsgeräte und sequenzielles Kommunizieren
mit dem USB-Host unter Verwendung eines Mikroprozessors oder Controllers,
und anschließendes
Zuweisen der jeweiligen logischen USB-Adressen durch den USB-Host
an die mehreren Funktionsgeräte;
Vergleichen der spezifischen Adresse jedes vom USB-Bus übertragenen
Signals mit den logischen USB-Adressen; Fortfahren mit einer Übersetzung
betreffend logische/physikalische Endstellen, wenn beim Vergleich Übereinstimmung festgestellt
wird; und Übertragen
des Signals an das durch die physikalische Endstelle repräsentierte Funktionsgerät.
-
Neben dem Obigen ist auf Grundlage
der Erfindung durch diese Folgendes geschaffen: ein Verfahren zum
Implementieren eines virtuellen Hubs, mit den folgenden Schritten
Verwenden einer Adressen/Endstelle-Konfiguration als USB-Adressen/Endstelle-Konfiguration
des virtuellen Hubs; Empfangen von Signalen von einem USB-Host,
oder Senden von Signalen an diesen, unter Verwendung eines USB-Sendeempfängers; Verwenden
einer seriellen Schnittstellenmaschine zum Ausführen des Decodierens, Codierens
und der Formatwandlung der übertragenen
Signale sowie zum Ausführen
einer Untersuchung betreffend einen Cyclic-Redundancy-Check-Code
während
des Sendens/-Empfangens von
Daten; Verwenden eines Mikroprozessors oder Controllers für Kommunikation
mit dem USB-Host in der Funktion eines Hubs über Software und Erhalten einer
USB-Adresse des virtuellen Hubs vom USB-Host; Antworten, wenn die
Adresse des übertragenen
Signals auf den virtuellen Hub zeigt, mit dem Mikroprozessor oder
dem Controller entsprechend dem Inhalt des übertragenen Signals; und Verwalten
anderer USB-Funktionsgeräte oder
Rückberichten
der Konfigurationen derselben an den USB-Host mit dem Mikroprozessor
oder dem Controller über
Software oder Firmware, um die gestufte USB-Topologie beizubehalten.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
ein schematisches Diagramm, das die Verbindungen in einem USB-System
zeigt.
-
2 ist
ein schematisches Diagramm eines bekannten zusammengesetzten USB-Geräts.
-
3a ist
ein schematisches Diagramm, das die externe Struktur eines bekannten
Tastatur-Verbundgeräts
zeigt.
-
3b ist
ein schematisches Diagramm, das die interne Struktur eines bekannten
Tastatur-Verbundgeräts
zeigt.
-
4 ist
ein schematisches Diagramm, das die interne Struktur des USB-Verbundgeräts gemäß der ersten
Ausführungsform
der Erfindung zeigt.
-
5 ist
ein schematisches Diagramm, das die interne Struktur des USB-Verbundgeräts gemäß der zweiten
Ausführungsform
der Erfindung zeigt.
-
6 ist
ein schematisches Diagramm, das die interne Struktur des USB-Verbundgeräts gemäß der dritten
Ausführungsform
der Erfindung zeigt.
-
BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Es wird auf die 4 Bezug genommen, die ein schematisches
Diagramm ist, das die erste Ausführungsform
eines erfindungsgemäßen USB-Verbundgeräts zeigt.
Das Verbundgerät 40 der
ersten Ausführungsform
der Erfindung verfügt über ein USB-Logikmodul 400 und
ein Anwendungs-Funktionsmodul 500. Das USB-Logikmodul 400 im
erfindungsgemäßen Verbundgerät 40 wird
unter Verwendung einer Zentralisierung der Ressourcenverwaltung
konzipiert, wobei mehrere Gruppen von USB-Logik, die ursprünglich in
ein USB-Verbundgerät
eingebaut sind, in ein einzelnes USB-Logikmodul integriert werden.
Daher können
mehrere Funktionsblöcke über dieselbe
Gruppe von USB-Logikschaltungen mit dem USB-Bus verbunden werden.
Die Hardwarevergeudung, wie sie durch herkömmliche USB-Verbundgeräte hervorgerufen
wird, und der Nachteil, wie er herkömmlichen zusammengesetzten USB-Geräten eigen
ist, die die Standardtreiber nicht verwenden können, sind überwunden.
-
Bei der ersten Ausführungsform
kann das USB-Logikmodul 400 im erfindungsgemäßen Verbundgerät 40 entsprechend
den Funktionen in fünf Blöcke unterteilt
werden: einen Block 410 der physikalischen USB-Schicht,
einen Block 420 der USB-Verbindungsschicht, eine Speicherverwaltungseinheit 430,
einen Speicherpufferblock 440 und eine Anwendungs-Kommunikation 450.
-
Der Block 410 der physikalischen
Schicht des USB-Logikmoduls 400 bildet den Anschlusspunkt,
an dem das Verbundgerät 40 körperlich
mit dem USB-Bus verbunden ist. Er verfügt über einen USB-Sendeempfänger 411 und
eine serielle Kommunikation (SIE) 412.
-
Der Block 420 der Verbindungsschicht
des USB-Logikmoduls 400 wird dazu verwendet, USB-Standard-Kommunikationsprotokolle
auszuführen,
und er enthält
eine allgemein verwendbare Endstellen-Zustandsmaschine 421,
ein Endstellen-Variablenregister 422, einen Adressen/Endstelle-Konfigurationsmechanismus 423 und
einen Endstellen-Konfigurationsmechanismus 424.
-
Die Speicherverwaltungseinheit 430 ist
dafür zuständig, Daten
entsprechend den vom Block 420 der USB-Verbindungsschicht
und der Anwendungs-Kommunikation 450 empfangenen Signale
in den Speicherpuffer 440 einzuspeichern oder Daten aus
diesem zu lesen. Die Speicherverwaltungseinheit 430 verfügt über einen
Speicher-Konfigurationsmechanismus der Endstelle 431 und
eine Speicherzugriffs-Steuereinheit 432.
-
Die Anwendungs-Kommunikation 450 ist
für die
Kommunikation mit dem Block 420 der Verbindungsschicht,
der Speicherverwaltungseinheit 430 und dem Anwendungs-Funktionsmodul 500 zuständig, und
sie wird dazu verwendet, das Anwendungs-Funktionsmodul 500 über Ereignisse
oder einen Interrupt über
den Zustand auf dem USB-Bus zu informieren. Dann führt das
Anwendungs-Funktionsmodul 500 mit der Anwendungs-Kommunikation 450 auf
Grundlage des Ereignisses eine Datenübertragung aus, um eine spezifische
Funktion zu realisieren. Die Anwendungs-Kommunikation 450 verfügt über ein
Ereignissteuerungsmodul 451, ein Steuer-Schnittstellenmodul 452 und
ein allgemein verwendbares Datenpfadmodul 453.
-
Was das Anwendungs-Funktionsmodul 500 betrifft,
so besteht dieses aus einem Mikroprozessor 510 und einer
PS/2-Schnittstelle 521, einer Schnittstelle 522 mit
seriellem Port und einer IDE-Schnittstelle 521. Im erfindungsgemäßen Verbundgerät kann auch
ein Mikrocontroller die Funktion des Mikroprozessors implementieren.
-
Oben ist im Wesentlichen die interne
Struktur des Verbundgeräts 40 der
Ausführungsform
beschrieben. Nun werden der Betrieb und die Funktionen der internen
Struktur des Geräts
im Einzelnen veranschaulicht, wobei auf die 4 Bezug genommen wird.
-
Zuallererst wird, hinsichtlich des
Anwendungs-Funktionsmoduls 500, wenn ein Tastaturgerät mit der
PS/2-Schnittstelle 521 verbunden wird, ein Mausgerät mit der
Schnittstelle 522 mit seriellem Port verbunden und ein
Festplattengerät
wird mit der IDE-Schnittstelle 523 verbunden, woraufhin
der Mikroprozessor 510 einen Satz einer Adressen/Endstelle-Konfiguration,
der eine vorbestimmte Adressen/Endstelle beinhaltet, für das Tastaturgerät, das Mausgerät und das
Festplattengerät
aufeinanderfolgend entsprechend den Konfigurationen zuweist, wie sie
im Adressen/Endstelle-Konfigurationsmechanismus 423 des
Blocks 420 der Verbindungsschicht vorbestimmt sind. Zum
Beispiel weist er dem Tastaturgerät den Satz der Adressen/Endstelle-Konfiguration "2" zu, mit der vorbestimmten Adresse 2 und
logischen Endstellen 0, 1 und 2; er weist
dem Mausgerät den
Adressen/Endstelle-Satz "3" mit der vorbestimmten
Adresse 3 und den logischen Endstellen 0 und 1 zu;
und dann weist er dem Festplattengerät einen Satz einer Adressen/Endstelle-Konfiguration "4" mit der vorbestimmten Adresse 4 und
den logischen Endstellen 0, 1 und 2 zu.
Außerdem
weist der Mikroprozessor 410, da das erfindungsgemäße Verbundgerät 40 über die
Funktion eines "virtuellen
Hubs" verfügt, dem
virtuellen Hub auch einen Satz einer Adressen/-Endstelle-Konfiguration "1" mit der vorbestimmten Adresse und den
logischen Endstellen 0 und 1 zu. Die Funktion
des virtuellen Hubs, wie sie beim erfindungsgemäßen Verbundgerät verwendet wird,
wird nachfolgend erläutert.
-
Dann definiert der Mikroprozessor 510 im Speicherpuffer 440 für jede der
Endstellen der Geräte über das
Steuer-Schnittstellenmodul 452 in der Anwendungs-Kommunikation 450 einen
Pufferblock. Die Pufferblöcke
werden als Datenregisterblöcke
der Endstellen beim Übertragungsprozess
verwendet. Indessen werden die Konfigurationsdaten jeder Endstelle
im Speicherpuffer 440 in den Speicher-Konfigurationsmechanismus
der Endstelle 431 eingespeichert. Der Speicher-Konfigurationsmechanismus
der Endstelle 431 wird auch dazu verwendet, den Datenstatus
der Endstellen in deren Datenregisterblöcken zu registrieren.
-
Ferner wird der Mikroprozessor 510 über das Steuer-Schnittstellenmodul 452 mit
der allgemein verwendbaren Endstellen-Zustandsmaschine 421 im Block 420 der
Verbindungsschicht verbunden. Der Mikroprozessor 510 speichert
die Konfigurationen jeder Endstelle, wie die Endstellentypen oder
die maximalen Paketgrößen, über die
allgemein verwendbare Endstellen-Zustandsmaschine 421 in
den Endstellen-Konfigurationsmechanismus 424 im Block 420 der
Verbindungsschicht ein.
-
Wenn das Verbundgerät am USB-Bus
angebracht wird, kann der USB-Host erkennen, dass ein neues Gerät am Bus
angebracht wurde, und er sendet eine Reihe von USB-Befehlen an das
Verbundgerät,
um es zu erkennen und zu konfigurieren. Dabei wandelt der Sendeempfänger 411 im
Block 410 der physikalischen Schicht das vom USB-Bus empfangene
Signal in ein digiles Logikpegelsignal um, und dann überträgt er das
Signal an die serielle Schnittstellenmaschine 412. Der
Sendeempfänger 411 kann auch
das von der seriellen Schnittstellenmaschine 412 empfangene
digitale Signal in ein USB-Standardsignal wandeln, um das Signal
an den USB-Bus zu senden.
-
Die Hauptfunktionen der seriellen
Schnittstellenmaschine 412 sind die folgenden: im Empfangsmodus
ist sie für
Folgendes zuständig:
Decodieren der übertragenen
Signale, Umsetzen des seriellen USB-Datenflusses in einen parallelen
Datenfluss, Ausführen
der Untersuchung des Cyclic-Redundancy-Check-Codes für Daten
zum Bestimmen der Genauigkeit der Daten, und Wechseln der vom USB-Bus
empfangenen Signale in Logikpakete, die dann an die allgemein verwendbare
Endstellen-Zustandsmaschine 421 im Block 420 der
USB-Verbindungsschicht übertragen
werden; dagegen ist die serielle Schnittstellenmaschine 412 im
Sendemodus für Folgendes
zuständig:
Empfangen von Daten vom Block 420 der Verbindungsschicht,
Umwandeln des parallelen USB-Datenflusses in einen seriellen Datenfluss,
der dann codiert wird, Berechnen der Untersuchung mittels des Cyclic- Redundancy-Check-Codes
und Erzeugen eines Synchronisiersignals, mit einem Wechsel in USB-Signale über den
USB-Sendeempfänger 411 und Übertragung
an den USB-Holt.
-
Wenn die allgemein verwendbare Endstellen-Zustandsmaschine
421 im Block 420 der Verbindungsschicht den USB-Befehl
vom USB-Host empfängt,
sendet er das Signal an das Ereignissteuermodul 451 in
der Anwendungs-Schnittstellenmaschine 450, die wiederum
das Signal an den Mikroprozessor 510 sendet. Dabei sendet
der Mikroprozessor die vorbestimmte Endstelle des virtuellen Hubs
und die Konfiguration desselben an den USB-Host zurück, so dass
dieser das Verbundgerät 40 als
USB-Hubgerät betrachtet
und dem virtuellen Hub eine USB-Adresse zuweist. Dann wird die durch
den USB-Host zugewiesene USB-Adresse
zur vorbestimmten Adresse "1" des virtuellen Hubs
hinzugefügt,
und sie wird gemeinsam mit der entsprechenden logischen Endstelle
im Adressen/Endstelle-Konfigurationsmechanismus 423 abgespeichert.
-
Die Hauptfunktionen des Adressen/Endstelle-Konfigurationsmechanismus 423 bestehen
darin, die Adresse mit der entsprechenden Endstelle jedes mit dem
Verbundgerät
verbundenen Funktionsgeräts und
einen Satz aus der Adresse und den entsprechenden Endstellen des
virtuellen Hubs zu speichern. Im USB-Standard ausgedrückt, ist
die vordere Kennungsinformation jedes übertragenen Datenpakets die
Adresse und das Übertragungstoken,
wie zum Definieren des Übertragungstyps
verwendet. Daher vergleicht, wenn der Block 410 der physikalischen
Schicht im Verbundgerät 40 die
Meldung vom USB-Bus empfängt,
die allgemein verwendbare Endstellen-Zustandsmaschine 421 im
Block 420 der Verbindungsschicht die im Adressen/Endstelle-Konfigurationsmechanismus 423 gespeicherten
Adressen/Endstelle-Daten mit der Kennungsinformation der übertragenen
Daten, um zu ermitteln, ob das Zielgerät des Datenpakets eine der
mehreren Funktionen in Zusammenhang mit dem Verbundgerät 40 ist.
-
Wie in den vorstehenden Ausführungen
beschrieben, verschafft sich ein Verbundgerät 40, wenn es mit
dem USB-Bus verbunden wird, als Erstes die durch den USB-Host zugewiesene
Adresse des virtuellen Hubs. Dann frägt der USB-Host den Zustand des
virtuellen Hubs auf Rundrufweise periodisch ab. Da die Adressen/Endstelle-Information
des virtuellen Hubs bereits im Adressen/Endstelle-Konfigurationsmechanismus 423 abgespeichert
ist, kann die Adressen/Endstelle-Information am Vorderende der Meldung,
die der USB-Host an den Hub sendet, z. B. ein Abfragebefehl, durch
die allgemein verwendbare Endstellen-Zustandsmaschine 421 erkannt
werden. Wenn geklärt
ist, dass die am Vorderende gesendete Information dieselbe wie die
in der Adresse/Endstelle "1" enthaltene Adressen/-Endstelle-Information
ist, d. h., dieselbe wie die Adressen/-Endstelle-Information des virtuellen
Hubs, wird diese Meldung durch das Ereignissteuermodul 451 an
den Mikroprozessor 510 geliefert. Wenn der Mikroprozessor 510 das
der Adressen/-Endstelle-Konfiguration "1" entsprechende Ereignis empfängt, erkennt
er, dass das Datenpaket zum virtuellen Hub gehört, und er erzeugt abhängig vom
Inhalt der Meldung eine Antwort. Beim Verbundgerät 40 der Ausführungsform
fehlt eine Schaltungsanordnung, die ausschließlich für den USB-Hub konzipiert wäre, und
so werden alle Funktionen in Zusammenhang mit dem Hub simuliert
und durch den Mikroprozessor 510 durch Software oder Firmware ausgeführt.
-
Daher wirkt bei jedem vom USB-Host
ausgeführten
Abfragevorgang der Mikroprozessor 510 als Hub, und er berichtet über das
Steuer-Schnittstellenmodul 452, die allgemein verwendbare
Endstellen-Zustandsmaschine 421, die serielle Schnittstellenmaschine 412 und
den USB-Sendeempfänger 411 kontinuierlich
zur Erweiterung neuer Funktionen an den USB-Host zurück. Tastatur-,
Maus- und Festplattenfunktionen werden im USB-System nach der Erkennung
hinzugefügt,
und ihnen wird vom USB-Host eine USB-Adresse zugewiesen. Dagegen erscheint
es dem USB-Host so, dass die Funktionsgeräte, d. h. die Tastatur, die
Maus und die Festplatte, mit dem virtuellen Hub verbunden sind,
und er hält die
Verbindungsbeziehung nach Bedarf zwischen dem Hub und den Funktionsgeräten im USB-System aufrecht.
Demgemäß verfügt jede
der Funktionen der Tastatur, der Maus und der Festplatte über eine
eigene unabhängige
USB-Adresse, und indessen wird die Adresse mit den entsprechenden
Endstellen jeder Funktion im Adressen/Endstelle-Konfigurationsmechanismus 423 abgespeichert.
-
Außerdem wird im Block 420 der
Verbindungsschicht ein Endstellen-Variablenregister 422 dazu
verwendet, die Zustände
verschiedener Endstellen abzuspeichern, für die dann die allgemein verwendbare
Endstellen-Zustandsmaschine 421 Zugriffs- und Aktualisierungsvorgänge ausführt. Demgemäß liest,
wenn der USB-Host Abfragebefehle zu den Zuständen verschiedener Geräte zum virtuellen Hub
des Verbundgeräts 40 richtet,
der Mikroprozessor 510 die jüngsten Zustände verschiedener Geräte aus dem
Endstellen-Variablenregister 422 über die allgemein verwendbare
Endstellen-Zustandsmaschine 421 aus, um dem USB-Host zu
antworten. Daher sieht der USB-Host
das Verbundgerät 40 als USB-Hubgerät in Verbindung
mit einem Tastaturgerät,
einem Mausgerät
und einem Festplattengerät
an. D. h., dass das Verbundgerät 40 immer
noch die gestaffelte Struktur gemäß dem USB-Standard beibehält.
-
Die obige Beschreibung betrifft die
Schnittstelleninitialisierung, wie sie dann ausgeführt wird, wenn
das Verbundgerät 40 der
Ausführungsform
mit dem USB-Bus verbunden wird, und sie betrifft das Verfahren,
gemäß dem das
Verbundgerät 40 einen Hub
simuliert. Nachfolgend werden die Wechselwirkungen zwischen dem
Block 420 der Verbindungsschicht und der Speicherverwaltungseinheit 430, dem
Speicherpuffer 440 und der Anwendungs-Schnittstellenmaschine 450 sowie
die Funktionen einzelner Blöcke
unter Verwendung des Datenübertragungsprozesses
detailliert veranschaulicht.
-
Zuallererst verwendet, wenn der Block 410 der
physikalischen Schicht ein Datenpaket vom USB-Host empfängt, die
allgemein verwendbare Endstellen-Zustandsmaschine 421 primär die im Adressen/Endstelle-Konfigurationsmechanismus 423 gespeicherte
Adressen/Endstelle-Information, um sie mit der Kennungsinformation
am Vorderende der Daten zu vergleichen, und sie informiert den Block 410 der
physikalischen Schicht über
das Ergebnis. Wenn die Adresse und die Endstellennummer übereinstimmen,
d. h., wenn geklärt
wird, dass das Zielgerät
für die
Daten eine der mehreren Funktionen im Verbundgerät der Ausführungsform ist, erfasst die
allgemein verwendbare Endstellen-Zustandsmaschine 421 die
Endstellenkonfiguration für die
Endstellenzahl aus dem Endstellen-Konfigurationsmechanismus 424,
sie liest den früheren
Zustand der Endstelle aus dem Endstellen-Variablenregister 422,
und sie kommuniziert dann mit dem USB-Host und überträgt Daten entsprechend dem Endstellentyp,
z. B. dem Interrupt-, dem Großmengen-,
dem isochronen und dem Steuerungstyp, über den Block 410 der
physikalischen Schicht. Gleichzeitig, wenn der Vergleich betreffend
die Adresse und die Endstelle exakt ist, informiert die allgemein
verwendbare Endstellen-Zustandsmaschine 421 die Speicherverwaltungseinheit 430 und
die Anwendungs-Schnittstellenmaschine 450 über die
Adressen/Endstelle-Konfigurationsnummer und die Endstellennummer.
-
Nachfolgend werden die Funktionen
der Speicherverwaltungseinheit 430 und der Anwendungs-Schnittstellenmaschine 450 beschrieben.
-
Die Speicherverwaltungseinheit 430 beinhaltet
den Speicher-Konfigurationsmechanismus
der Endstelle 431 und die Spei cherzugriffs-Steuereinheit 432.
-
Der Speicher-Konfigurationsmechanismus der
Endstelle 431 wird dazu verwendet, den verteilten Pufferblock
der individuellen Endstelle und den Datenstatus derselben im Speicherpuffer 440 abzuspeichern.
Wenn die Speicherzugriffs-Steuereinheit 432 die Impulssignale,
die zugehörige
Adressen/Endstelle-Konfigurationsnummer und die zugehörige Endstellennummer
von der allgemein verwendbaren Endstellen-Zustandsmaschine 421 empfängt, lädt sie die
Konfiguration und die Variablen der Endstelle, und dann ruft sie
den aktuellen Datenstatus der Endstelle aus dem Speicherpuffer-Konfigurationsmechanismus
der Endstelle 431 ab und berichtet an die allgemein verwendbare
Endstellen-Zustandsmaschine 421, die dann ermittelt, wie
mit dem USB-Host zu kommunizieren sei. Wenn die Daten hochgeladen
werden können,
liest die Speicherzugriffs-Steuereinheit 431 die Daten
aus dem Speicherpufferblock 440 aus und lädt sie über die
allgemein verwendbare Endstellen-Zustandsmaschine 421 in den
USB-Host hoch; wenn die Daten heruntergeladen werden können, sendet
die allgemein verwendbare Endstellen-Zustandsmaschine 421 dieselben an
die Speicherzugriffs-Steuereinheit 432, und die Daten werden
dann in den entsprechenden Pufferblock der Endstelle im Speicherpufferblock 440 eingespeichert.
Ferner informiert die Speicherverwaltungseinheit 432 gleichzeitig
das Ereignissteuermodul 451 in der Anwendungs-Schnittstellenmaschine 450 über den
Datenstatus der Daten im Pufferblock.
-
Die Anwendungs-Schnittstellenmaschine 450 beinhaltet
das Ereignissteuermodul 451, das Steuer-Schnittstellenmodul 452 und
das allgemein verwendbare Datenpfadmodul 453.
-
Das darin enthaltene Ereignissteuermodul 451 wird
dazu verwendet, Ereignisse von der allgemein verwendbaren Endstellen-Zustandsmaschine 421 und
der Speicherzugriffs-Steuerein heit 432 zu empfangen. Dann
informiert es den Mikroprozessor 510 im Anwendungsfunktionsmodul 500 nach
dem Codieren der Ereignisse. Der Mikroprozessor 510 kann
eine Antwort entsprechend der Adressen/Endstelle-Konfigurationsnummer,
dem Ereignistyp, dem USB-Befehl und den empfangenen Daten oder der Datenanforderung
erstellen.
-
Das Steuer-Schnittstellenmodul stellt
drei Hauptfunktionen bereit, von denen die eine diejenige ist, die
verschiedenen oben genannten Konfigurationen, die Adressen/Endstelle-Konfigurationsnummer, den
Endstellentyp und z. B. den Pufferblock während der Schnittstelleninitialisierung
der mehreren Funktionen des Anwendungsfunktionsmoduls 500 zuzuordnen;
eine andere Funktion besteht im Erleichtern der Kommunikation des
Mikroprozessors 510 mit dem USB-Host dadurch, dass der
Block 420 der USB-Verbindungsschicht angewiesen wird, erforderliche Maßnahmen
zu ergreifen oder die Zustände
verschiedener Endstellen zu lesen, um die erforderlichen Antworten
festzulegen; die andere Funktion besteht darin, dass der Mikroprozessor 510 Daten
mit der Speicherverwaltungseinheit 430 über dieses Modul austauschen
kann, wobei er z. B. USB-Befehlsparameter liest, Befehlstypen decodiert
oder vom USB-Host angeforderte Daten einträgt.
-
Das allgemein verwendbare Datenpfadmodul 453 wird
dazu verwendet, die mehreren Funktionen des Anwendungsfunktionsmoduls 500 zu
aktivieren, um einen Massendatenzugriff auszuführen. Für bestimmte Ausführungen
von Funktionen, wie für
das Lesen von Daten von einer Festplatte oder für das Übertragen von Daten, ermöglicht das
Modul, dass die Funktionen die Daten im Speicherpuffer direkt über die
Speicherverwaltungseinheit 430 lesen oder abspeichern,
ohne dass der Mikroprozessor 510 zwischengeschaltet wäre, um so
den Übertragungswirkungsgrad
zu optimieren.
-
Es wurde bereits angegeben, dass
dann, wenn das Vergleichsergebnis betreffend die von der allgemein
verwendbaren Endstellen-Zustandsmaschine 421 verarbeitete
Adressen/Endstelle-Nummer Übereinstimmung
mit der im Adressen/Endstelle-Konfigurationsmechanismus 424 abgespeicherten Information
anzeigt, die allgemein verwendbare Endstellen-Zustandsmaschine 421 die
Speicherverwaltungseinheit 430 und die Anwendungs-Schnittstellenmaschine 450 über die
Adressen/Endstelle-Konfigurationsnummer und die Endstellennummer
informiert. In der Speicherverwaltungseinheit 430 ist die Speicherzugriffs-Steuereinheit 432 dafür zuständig, die
durch die allgemein verwendbare Endstellen-Zustandsmaschine 421 gesendete
Meldung zu empfangen. Indessen ruft die Speicherzugriffs-Steuereinheit 432 abhängig von
der Meldung die Konfiguration der Endstelle im Speicherpufferblock 440 vom
Puffer-Konfigurationsmechanismus der Endstelle 431 ab,
um die anschließend
von der allgemein verwendbaren Endstellen-Zustandsmaschine 421 gesendeten
Daten in den der Endstelle entsprechenden Pufferblock einzuspeichern.
-
In der Anwendungs-Schnittstellenmaschine 450 dient
das Ereignissteuermodul 451 zum Empfangen der von der allgemein
verwendbaren Endstellen-Zustandsmaschine 421 gesendeten
Meldung. Dann überträgt das Ereignissteuermodul 451 die Meldung
einschließlich
der Adressen/Endstelle-Konfigurationsnummer an den Mikroprozessor 510. Schließlich erkennt
der Mikroprozessor 510 die durch die Adressen/Endstelle-Konfigurationsnummer
repräsentierte
Funktion. Wenn die entsprechende Funktion der Adressen/Endstelle-Konfigurationsnummer
dem Festplattengerät
entspricht, kann der Mikroprozessor 510 über das
Steuerschnittstellenmodul 452 mit der Speicherzugriffs-Steuereinheit 432 kommunizieren
und dann Daten aus dem Speicherpufferblock 440 lesen und
sie an das Festplattengerät
zurück
senden.
-
Außerdem können Funktionsgeräte, z. B. das
Festplattengerät,
das allgemein verwendbare Datenpfadmodul 453 dazu verwenden,
direkt mit der Speicherzugriffs-Steuereinheit 432 zu kommunizieren
und direkt auf Massedaten aus dem Speicherpufferblock 440 zuzugreifen.
Wie bereits angegeben, kann das Design des allgemein verwendbaren
Datenpfadmoduls 453 den Übertragungswirkungsgrad effektiv
verbessern.
-
Die obige Beschreibung bildet eine
Veranschaulichung der internen Struktur des Verbundgeräts und der
Funktionen derselben bei der ersten Ausführungsform der Erfindung. Aufgrund
des Designs der ersten Ausführungsform
der Erfindung kann das Verbundgerät die Funktion eines USB-Hubs
durch seine interne integrierte Schaltung simulieren, und es ermöglicht es,
dass die mehreren mit ihm verbundenen Funktionsgeräte über ihre
unabhängigen
USB-Adressen verfügen.
Daher betrachtete der USB-Host das Verbundgerät als Kombination eines USB-Hubs,
der mit mehreren Funktionsgeräten
verbunden ist. Im Ergebnis kann jedes mit dem Verbundgerät der Ausführungsform
verbundene Funktionsgerät
die in das System eingebetteten Standardtreiber verwenden, um so Plug-and-Play-Funktion
zu erzielen. Ferner ist die USB-Logikschaltung des Verbundgeräts der Ausführungsform
unter Verwendung einer Zentralisierung der Ressourcenverwaltung
konzipiert, wobei mehrere USB-Logikgruppen, die ursprünglich innerhalb
eines USB-Verbundgeräts
existierten, zu einem einzelnen USB-Logikmodul integriert sind,
so dass die mehreren Funktionsblöcke über denselben
Satz von USB-Logikschaltkreisen mit dem USB-Bus verbunden werden
können.
Das Design behebt den Nachteil der Wiederholung von Schaltkreisen
bei bekannten Verbundgeräten,
und es senkt gleichzeitig wesentlich die zugehörigen Herstellkosten.
-
Nun wird auf die 5 Bezug genommen, die das schematische
Diagramm eines USB-Verbundgeräts
gemäß der zweiten
Ausfüh rungsform
der Erfindung zeigt. Das Verbundgerät 50 verfügt über ein
USB-Logikmodul 600 und ein Anwendungsfunktionsmodul 700.
Das USB-Logikmodul 600 des Verbundgeräts der Ausführungsform ist der Struktur nach
dem bei der ersten Ausführungsform ähnlich, da
beide über
den Block 610 der physikalischen Schicht, den Block 620 der
Verbindungsschicht, die Speicherverwaltung 630, den Speicherpuffer 640 und
die Anwendungs-Schnittstellenmaschine 650 verfügen.
-
Der Block der physikalischen Schicht
beinhaltet einen USB-Sendeempfänger 611 und
eine serielle Schnittstellenmaschine 612, und seine Funktion ist
vollständig
dieselbe wie bei der ersten Ausführungsform,
weswegen sie nicht weiter ausführlich
beschrieben wird.
-
Jedoch ist der Block 620 der
Verbindungsschicht bei der Ausführungsform
geringfügig
verschieden von dem bei der ersten Ausführungsform. Gemäß der 5 verfügt der Block 620 der
Verbindungsschicht über
ein Übersetzungsmodul 624 für logische/physikalische
Endstellen sowie einen Konfigurationsmechanismus 625 für eine physikalische Endstelle,
neben einer allgemein verwendbaren Endstellen-Zustandsmaschine 621,
einem Endstellen-Variablenregister 622 und einem Adressen/-Endstelle-Konfigurationsmechanismus 623.
-
Indessen ist in der Speicherverwaltungseinheit 630 der
Ausführungsform
neben der Speicherzugriffs-Steuereinheit 632 ein Speicher-Konfigurationsmechanismus
einer physikalischen Endstelle 631 dazu verwendet, den
Speicher-Konfigurationsmechanismus der Endstelle 431 der
ersten Ausführungsform
zu ersetzen.
-
In der Figur ist es auch ersichtlich,
dass das Anwendungsfunktionsmodul 700 der Ausführungsform über insgesamt
sieben Schnittstellen verfügt: eine
PS/2-Schnittstelle 721, eine Diskettenlaufwerk-Schnittstelle 722,
zwei Festplatten-Schnittstellen 723 und 724,
zwei Schnittstellen 725 und 726 mit seriellen
Ports und eine Parallelport-Schnittstelle 727. Für die Typen
und die Anzahl der mit dem Verbundgerät bei der vorliegenden Ausführungsform
der Erfindung verbundenen Funktionsgeräte besteht keine Beschränkung auf
die unveränderliche
Zuordnungsbeziehung zwischen der Adresse und den Endstellen wie
bei der ersten Ausführungsform,
bei der nur eine eingeschränkte
Anzahl spezieller Funktionsgeräte
mit dem Verbundgerät
verbunden werden kann. Bei der ersten Ausführungsform nutzt der Mikroprozessor 510 die
Adressen/Endstelle-Konfigurationen der Funktionsgeräte, einschließlich der Adresse
und der Endstellennummern, um jede Funktion zu erkennen und die
Pufferblöcke
zuzuordnen. Im Ergebnis schränken
die Konfigurationen, wie sie verschiedenen Funktionsgeräten zugewiesen
sind, z. B. die Adressen/Endstelle-Konfiguration "2" mit
der vorbestimmten Adresse 2 und den festen logischen Endstellen 1, 2 und 3 den
Typ der Funktionsgeräte ein,
mit denen verbunden werden kann. Daher sind bei der ersten Ausführungsform
der Typ und die Anzahl der Funktionsgeräte, mit denen das Anwendungsfunktionsmodul
verbindbar ist, eingeschränkt.
-
Durch die zweite Ausführungsform
der Erfindung ist ein Verfahren geschaffen, das es ermöglicht, dass
das Verbundgerät 50 nicht
nur den integrierten USB-Logikschaltkreis wie bei der ersten Ausführungsform
und den Vorteil der USB-"Plugand-Play"-Funktion aufweist,
sondern es ist auch möglich,
die Einschränkung
hinsichtlich des Typs und der Anzahl der angeschlossenen Funktionsgeräte zu überwinden.
Nachfolgend werden die Eigenschaften der zweiten Ausführungsform
beschrieben.
-
Als Erstes ordnet der im Anwendungsfunktionsmodul 700 enthaltene
Mikroprozessor 710 jedem der Funktionsgeräte, wie sie
mit den sieben Schnittstellen verbunden sind, entsprechend ihren
jeweiligen Anforderungen einen Satz physikalischer Endstellennummern
zu. Zum Beispiel ordnet er dem mit der PS/2-Schnittstelle 721 verbundenen
Mausgerät die
physikalischen Endstellennummern "0" und "1" zu, und diese physikalischen Endstellennummern entsprechen
den logischen Endstellennummern "0" und "1" des Mausgeräts; er ordnet dem mit der Diskettenlaufwerk-Schnittstelle 722 verbundenen
Diskettengerät
die physikalischen Endstellennummern "2", "3" und "4" zu,
und die physikalischen Endstellennummern entsprechen den logischen
Endstellennummern "0", "1" und "2" des
Diskettengeräts;
und er ordnet dem mit der Festplatten-Schnittstelle 723 verbundenen
Festplattengerät
die physikalischen Endstellennummern "5", "6" und "7" zu,
und die physikalischen Endstellennummern entsprechen den logischen
Endstellen "0", "1" und "2" des
Festplattengeräts,
usw. Außerdem
ordnet der Mikroprozessor 710 auch dem virtuellen Hub einen
Satz physikalischer Endstellennummern zu, so dass das Verbundgerät 50 sie
während
des Hub-Simulationsprozesses verwenden kann. Indessen speichert
der Mikroprozessor 710 die physikalischen Endstellenkonfigurationen jedes
Funktionsgeräts,
wie den Endstellentyp und die maximale Paketgröße, in den physikalischen Endstellen-Konfigurationsmechanismus 625 im
Block 620 der Verbindungsschicht über das Steuerschnittstellenmodul 625 und
die allgemein verwendbare Endstellen-Zustandsmaschine 621 ein.
-
Das entsprechende, oben beschriebene
Verfahren betreffend physikalische und logische Endstellen erlaubt
es, den Endstellentypen und -nummern entsprechend den Eigenschaften
der Funktionsgeräte
verschiedene Adressen, oder Funktionsgeräte, wahlfrei zuzuordnen. Daher
ist der Anwendungsbereich des Verbundgeräts 50 gemäß der zweiten
Ausführungsform
erweitert.
-
Bei der Ausführungsform ist die "physikalische Endstellennummer " die Kennungsinformation, die
vom Mikroprozessor 710 dazu verwendet wird, verschiedene
Funktionsgeräte
zu erkennen, und sie ist nicht die Adressen/Endstelle-Konfiguration
einschließlich
der Adresse und der Endstellennummer, die bei der ersten Ausführungsform
als Kennungsinformation für
verschiedene Funktionsgeräte
betrachtet wird.
-
Die folgenden Schritte sind denen
bei der ersten Ausführungsform ähnlich,
und der Mikroprozessor 710 definiert, über das Steuerschnittstellenmodul 652 in
der Anwendungs-Schnittstellenmaschine 650,
Pufferblöcke
für die
physikalischen Endstellen im Pufferspeicher 640 entsprechend
den physikalischen Endstellennummern der Funktionsgeräte. Wenn
dieser Prozess abgeschlossen ist, speichert er die Konfigurationsdaten
verschiedener physikalischer Endstellen im Pufferspeicher 640 in
den Speicher-Konfigurationsmechanismus der physikalischen Endstelle 631 ein.
-
Wenn das Verbundgerät 50 mit
dem USB-Bus verbunden wird, erkennt der USB-Host, dass mit dem Bus
ein neues Gerät
verbunden ist, und er sendet eine Reihe von USB-Befehlen, um das
Gerät gleichzeitig
zu erkennen und zu konfigurieren. Zu diesem Zeitpunkt sendet der
Block 610 der physikalischen Schicht die Meldung an die
allgemein verwendbare Endstellen-Zustandsmaschine 621 im Block 620 der
Verbindungsschicht, und dann sendet die allgemein verwendbare Endstellen-Zustandsmaschine 621 die
Meldung an das Ereignissteuermodul 651, das die Meldung
weiter an den Mikroprozessor 710 sendet. Zu diesem Zeitpunkt
definiert der Mikroprozessor 710 eine Gruppe physikalischer
Endstellennummern als logische Endstelle eines virtuellen Hubs,
und er sendet die logische Endstelle und die Konfigurationen des
virtuellen Hubs zurück
an den USB-Holt. Daher betrachtet der USB-Host das Verbundgerät 50 als
Hubgerät,
und er weist dem virtuellen Hub eine USB-Adresse zu. Dann werden
die USB-Adresse des virtuellen Hubs und die zugehörige Entsprechung
der logischen Endstelle und der physikalischen Endstelle gemeinsam
in den Adressen/-Endstelle-Konfigurationsmechanismus 623 eingespeichert.
-
Im Block 620 der Verbindungsschicht
der Ausführungsform
wird das Endstellen-Variablenregister 622 dazu verwendet,
die Zustände
verschiedener physikalischer Endstellen abzuspeichern, die dann
durch die allgemein verwendbare Endstellen-Zustandsmaschine 621 Zugriffs-
und Aktualisierungsvorgänge
erfahren. Hinsichtlich des Moduls 624 für logische/physikalische Umsetzung
gilt, dass dieses dazu verwendet wird, mit der Übersetzung der logischen/physikalischen
Endstelle fortzufahren, um es dem Mikroprozessor 710 zu
erleichtern, das durch die physikalische Endstellennummer repräsentierte Funktionsgerät zu erkennen.
-
Danach frägt der USB-Host periodisch
den Zustand des virtuellen Hubs auf Rundrufweise ab. Da die logische
Adresse/-die Endstelle
bereits im Adressen/Endstelle-Konfigurationsmechanismus 623 gespeichert
ist, wird die Adressen/Endstelle-Information am Vorderende der vom
USB-Host an den virtuellen Hub gesendeten Meldung, z. B. einem Abfragebefehl,
durch die allgemein verwendbare Endstellen-Zustandsmaschine 621 erkannt.
Wenn bestätigt ist,
dass die logische Adresse/-die
Endstelle mit dem virtuellen Hub übereinstimmt, übersetzt
das Modul 624 für
logische/physikalische Übersetzung
die logische Endstelle in ihre entsprechende physikalische Endstelle.
Dann informiert die allgemein verwendbare Endstellen-Zustandsmaschine 621 den
Mikroprozessor 710 mittels des Ereignissteuermoduls 651 über die
physikalische Endstelle. Im Verbundgerät 50 dieser Ausführungsform
existiert keine Schaltungsanordnung, die ausschließlich für den USB-Hub konzipiert wäre, und
daher werden alle Aktionen in Zusammenhang mit Hubfunktionen vom
Mikroprozessor 710 mittels Software oder Firmware simuliert
und ausgeführt.
-
Bei jeder Abfrage kommuniziert der
Mikroprozessor 710 in der Rolle eines Hubs mit dem USB-Host,
und er berichtet aufeinanderfolgend für die neu angeschlossenen Geräte an den
USB-Host. Entsprechend
der Meldung startet der USB-Host die Durchnummerierung der Funktionsgeräte, und
er spezifiziert für
jedes Funktionsgerät
nach dem Durchzählen
eine USB-Adresse.
Dann werden die USB-Adresse und die Korrelation zwischen der logischen
Endstelle und der zugehörigen
physikalischen Endstelle im Adressen/Endstelle-Konfigurationsmechanismus 623 abgespeichert.
Zum Beispiel reagiert der Mikroprozessor 710 auf die Abfrage
durch den USB-Host dadurch, dass er die physikalischen Endstellennummern 2, 3 und 4 mit
den logischen Endstellen 0, 1 und 2 eines
Diskettenlaufwerks in Übereinstimmung
bringt, um eine USB-Adresse zu erfassen; und dann antwortet er auf ähnliche
Weise auf die Abfrage des USB-Hosts dadurch, dass er die physikalischen
Endstellennummern 5, 6 und 7 mit den
logischen Endstellennummern 0, 1 und 2 eines
Hardwaregeräts
in Übereinstimmung
bringt, um eine USB-Adresse zu erfassen. Da die USB-Adresse und die
Entsprechung zwischen ihrer logischen Endstelle und der physikalischen
Endstelle jedes Funktionsgeräts
im Adressen/Endstelle-Konfigurationsmechanismus 623 abgespeichert
werden, kann der Mikroprozessor 710 immer noch genau das
exakte Funktionsgerät
erkennen, das durch jede Adressen/Endstelle-Information repräsentiert
ist, und zwar entsprechend der USB-Adresse und der Korrelation zwischen
der logischen Endstelle und der zugehörigen physikalischen Endstelle,
obwohl die mehreren Funktionsgeräte,
die mit dem Verbundgerät
bei der Ausführungsform
verbunden sind, dieselben logischen Endstellennummern verwenden.
Anders gesagt, ermöglichen
es die Konfiguration und die Übersetzung
logischer/physikalischer Endstellen, wie durch die Ausführungsform
vorgeschlagen, dem Verbundgerät,
den Typ und die Anzahl von Funktionsgeräten un eingeschränkt abhängig von
den Erfordernissen des Benutzers zu erweitern.
-
Im Ergebnis zeigt das USB-Verbundgerät der Ausführungsform
nicht nur die Vorteile des Verbundgeräts der ersten Ausführungsform,
sondern es ist auch mit einer Erweiterungseigenschaft versehen, die
den Gebrauch des USB-Verbundgeräts
umfassender und zweckdienlicher macht.
-
Es wird auf die 6 Bezug genommen, die das schematische
Diagramm eines USB-Verbundgeräts
gemäß der dritten
Ausführungsform
der Erfindung zeigt. Aus der Figur ist es erkennbar, dass die interne
Hauptstruktur des USB-Verbundgeräts 60 dieser
Ausführungsform
dieselbe wie die bei der zweiten Ausführungsform ist. Der Unterschied
zwischen den beiden besteht darin, dass das USB-Verbundgerät 60 dieser
Ausführungsform
zusätzlich über einen
Repeater 920 und eine Baugruppe einer Anschließ/Trenn-Erkennungsschaltung 930 aufweist. Der
Repeater 920 und die Anschließ/Trenn-Erkennungsschaltung
werden nachfolgend mittels der 6 veranschaulicht.
-
Aus der Figur ist es erkennbar, dass
die Meldung von einem USB-Host über
den USB-Sendeempfänger 811 an
den Repeater 920 übertragen
werden kann, der die Funktion eines Repeaters im USB-Hub implementiert.
Ferner ist das USB-Verbundgerät
der Ausführungsform
auch mit einer Baugruppe einer Anschließ/-Trenn-Erkennungsschaltung 930 versehen,
die mit dem stromabwärtigen Port 62 verbunden
ist und dazu verwendet wird, Anschließ- oder Trennvorgänge betreffend
externe USB-Geräte
zu erkennen. (Hinweis: Das USB-Verbundgerät 60 der Ausführungsform
sowie die Verbundgeräte 40 und 50 gemäß der ersten
und der zweiten Ausführungsform
verfügen
alle über
eine andere Baugruppe einer Anschließ/Trenn-Erkennungsschaltung,
die mit dem jeweiligen stromaufwärtigen Port 41, 51 bzw. 61 verbun den
ist und von einem USB-Host oder Hub dazu verwendet wird, Anschließ- oder
Trennvorgänge
betreffend Geräte
zu erkennen. Jedoch ist die Schaltung der Einfachheit halber in
der Figur nicht dargestellt.)
-
Wenn ein USB-Gerät mit dem stromabwärtigen Port 62 verbunden
wird, erkennt die Anschließ/Trenn-Erkennungsschaltung 930 die Änderung
des elektrischen Potenzials oder Stroms, und sie informiert den
Mikroprozessor 910. Zu diesem Zeitpunkt ist der Mikroprozessor 91 des
USB-Verbundgeräts 60 dazu
in der Lage, Aktionen eines USB-Hosts, wie bei der ersten und zweiten
Ausführungsform,
zu simulieren. Er informiert den USB-Host über die USB-Logik 800 über die
Meldung, um das USB-Gerät
mit dem Bus zu verbinden.
-
Im Ergebnis können mehrere stromabwärtige Ports,
die mit externen USB-Geräten
verbunden werden können,
zum USB-Verbundgerät 60 der
Ausführungsform
hinzugefügt
werden. Daher können mehrere
USB-Geräte über das
USB-Verbundgerät der
Ausführungsform
mit dem USB-Bus verbunden werden.
-
Obwohl die Beschreibung die bevorzugten Ausführungsformen
der Erfindung auf die obige spezielle Weise erläuterte, ist dennoch zu beachten, dass
die vorigen Beispiele nur veranschaulichend sind. Es können verschiedene
Modifizierungen und Änderungen
vorgenommen werden, ohne vom wahren Grundgedanken und Schutzumfang
der durch die beigefügten
Ansprüche
definierten Erfindung abzuweichen.