DE19900325A1 - Vorrichtung und Verfahren zum Senden und Empfangen von Daten in eine und aus einer universellen seriellen Buseinrichtung - Google Patents
Vorrichtung und Verfahren zum Senden und Empfangen von Daten in eine und aus einer universellen seriellen BuseinrichtungInfo
- Publication number
- DE19900325A1 DE19900325A1 DE19900325A DE19900325A DE19900325A1 DE 19900325 A1 DE19900325 A1 DE 19900325A1 DE 19900325 A DE19900325 A DE 19900325A DE 19900325 A DE19900325 A DE 19900325A DE 19900325 A1 DE19900325 A1 DE 19900325A1
- Authority
- DE
- Germany
- Prior art keywords
- endpoint
- end point
- channel
- token
- mapping
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/387—Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
Abstract
Die Erfindung sieht ein Verfahren und eine Vorrichtung zum dynamischen Konfigurieren einer USB-Einrichtung vor. Die USB-Einrichtung umfaßt mehrere Abbildungen zum Verknüpfen eines empfangenen Tokens mit einem Endpunktkanal. Die Abbildungen werden bei der Initialisierung konfiguriert und während des Betriebs des USB-Netzes dynamisch ausgewählt.
Description
Die Vorrichtung und das Verfahren dieser Erfindung betreffen das Senden und Empfangen
von Daten über ein universelles serielles Busnetz und insbesondere das Senden und Empfan
gen von Daten zu und von mehreren Endpunktkanälen.
Ein universeller serieller Bus (USB) ist eine genormte Peripherieschnittstelle zum Anschlie
ßen von Personal Computern an eine große Vielzahl von Einrichtungen: z. B. digitale Tele
fonKanalen, Monitore, Modems, Mäuse, Drucker, Scanner, Spielsteuereinrichtungen, Tastatu
ren und andere Peripheriegeräte. Ein USB ersetzt also vorhandene Schnittstellen, wie die seri
ellen Ports RS-232C, parallele Ports, PS/2-Schnitttstellen und Game/MIDI Ports.
Bei dem USB werden alle angeschlossenen Geräte über einen einzigen Verbindungstyp, der
eine "tiered Star"-Topologie (in Rängen geordnete Stern-Topologie) verwendet, mit einem
Personal Computer verbunden. Ein Host-Personal Computer umfaßt eine einzige USB-
Steuereinrichtung. Die Host-Steuereinrichtung bildet die Schnittstelle zwischen dem USB-
Netz und dem Host-Personal Computer. Die Host-Steuereinrichtung steuert einige Zugriffe
auf die USB-Ressourcen und überwacht die Bustopologie. Ein USB-Verteilerknoten (Hub)
sieht die USB-Anschlußpunkte für USB-Einrichtungen vor.
Ein Beispiel der Sterntopologie eines USB-Netzes ist in Fig. 1 gezeigt. Ein Host-PC 100 ist
ein typischer Personal Computer mit einer USB-Portverbindung über eine Host-
Steuereinrichtung 102. Die Host-Steuereinrichtung 102 ist direkt mit dem Ausgangs-
Verteilerknoten (Hub) 110 verbunden, der üblicherweise als Teil des Host-PC 100 realisiert
ist. Eine zusammengesetzte Einrichtung 120, ein Verteilerknoten 130 und eine Einrichtung
140 sind mit der Host-Steuereinrichtung über den Verteilerknoten 110 verbunden. Die Ein
richtungen 132 und 134 sind mit der Host-Steuereinrichtung 102 über den Verteilerknoten
130 und den Verteilerknoten 110 verbunden.
Die zusammengesetzte Einrichtung 120 umfaßt Einrichtungen 124, 126 und einen Verteiler
knoten 122. Der Verteilerknoten 122 der zusammengesetzten Einrichtung 120 ist mit der
Host-Steuereinichtung über den Verteilerknoten 110 verbunden. Einrichtungen 124 und 126
der zusammengesetzten Einrichtung 120 sind mit der Host-Steuereinrichtung 102 über den
Verteilerknoten 122 und den Verteilerknoten 110 verbunden. Ein praktisches Beispiel einer
zusammengesetzten Einrichtung wäre ein Gerät mit integriertem Drücker und Fax. Der Druc
ker könnte die Einrichtung 124 sein, und das Fax könnte die Einrichtung 126 sein.
Die in Fig. 1 gezeigte Sterntopographie ermöglicht es, Daten in den und aus dem Host-PC 100
zu den verschiedenen Einrichtungen zu übertragen. Wenn Daten von dem Host zu einer Ein
richtung übertragen werden, gehen sie stromabwärts durch die verbindenden Verteilerknoten.
Wenn Daten von einer Einrichtung zu dem Host übertragen werden, gehen sie stromaufwärts
durch die verbindenden Verteilerknoten.
USB-Verteilerknoten und Einrichtungen können angeschlossen und abgetrennt werden, ohne
das das USB-Netz vollständig neu gestartet werden muß. Beim Anschließen einer Einrichtung
oder eines Verteilerknotens an einen stromaufwärtigen Verteilerknoten, benachrichtigt der
stromaufwärtige Verteilerknoten die Host-Steuereinrichtung über eine Änderung des Status.
Gemäß dem USB-Protokoll enabelt die Host-Steuereinrichtung den Port des Verteilerknotens,
mit dem die Einrichtung verbunden ist. Die Host-Steuereinrichtung weist dann jeder Einrich
tung eine eindeutige Funktionsadresse zu. Ports werden nacheinander enabelt, während die
Host-Steuereinrichtung 102 eindeutige Funktionsadressen zuweist. Zum Anschließen einer
zusammengesetzten Einrichtung weist die Steuereinrichtung jeder in der zusammengesetzten
Einrichtung enthaltenen Einrichtung eine eindeutige Funktionsadresse zu.
Wieder in Fig. 1 werden den Einrichtungen 124, 126, 132, 134 und 140 jeweils eine eindeuti
ge Funktionsadresse zugeordnet, wenn sie mit dem USB-Netz verbunden werden. Ähnlich
wird den Verteilerknoten 110, 122 und 133 jeweils eine eindeutige Funktionsadresse zuge
wiesen, und bei Verbindung mit dem USB-Netz arbeiten sie wie USB-Einrichtungen.
Eine USB-Funktion ist eine USB-Einrichtung, die Information auf dem Bus senden und emp
fangen kann. Eine Funktion kann eine oder mehrere Konfigurationen haben, von denen jede
die Schnittstelle definiert, welche die Einrichtung bildet. Jede Schnittstelle besteht ihrerseits
aus einem von mehreren Endpunkten.
Ein Endpunkt ist die letztendliche Quelle oder der Ursprung der Daten. Ein Endpunktkanal
erlaubt die Bewegung von Daten zwischen dem USB und dem Speicher und vollendet den
Weg zwischen dem USB-Host und dem Funktionsendpunkt. Eine USB-Einrichtung kann zu
jeder gegebenen Zeit bis zu sechzehn solche Endpunktkanäle unterstützen. Jeder Endpunktka
nal hat dieselbe Funktionsadresse.
Bei der Initialisierung einer Endpunkteinrichtung verknüpft die Hoststeuereinrichtung einen
Kanal mit den Endpunktfunktionen. Die Kanäle erlauben es der Hoststeuereinrichtung, Daten
in den und aus dem Hostspeicherpuffer von und zu den Endpunkten zu bewegen. Die USB-
Spezifikation realisiert zwei Arten von Kanal-Datenübertragungsmodi: Strom und Nachricht.
Stromdaten haben keine definierte USB-Struktur. Nachrichtendaten haben eine definierte
USB-Struktur.
Bei der Initialisierung wird einem Kanal ein Anspruch auf ein USB-Buszugriff und die Ver
wendung einer Bandbreite zugeordnet. Diese Zuordnung bestimmt die Priorität für die Über
tragung der Daten über einen bestimmten Kanal zu einem Endpunkt. Die Eigenschaften des
Endpunktes werden ebenfalls bei der Initialisierung des Kanals zugeordnet. Solche Eigen
schaften umfassen die maximalen Datenbelastungsgrößen, die Richtung der Übertragung und
andere geeignete charakteristische Daten. Diese Eigenschaften werden von dem Host dazu
verwendet, die Datenübertragungen über den Kanal auszuführen.
Die Zuordnung eines Anspruchs auf den USB-Buszugriff und die Bandbreite zu einem Kanal
erlaubt es der Hoststeuereinrichtung, optimal sicherzustellen, daß alle Eingangs-/Ausgangs
datenanforderungen an die Endpunkte über der verfügbaren Bandbreite des USB-Busses rich
tig bedient werden. Die Zuweisung der Ansprüche auf den Buszugriff und die Bandbreite zu
einem Kanal begrenzt die Zuordnung zu später konfigurierten Einrichtungen. Wenn die
Bandbreite eines USB-Busses einmal vollständig zugewiesen ist, können nachfolgend konfi
gurierte Einrichtungen dieser Busbandbreite nicht mehr zugewiesen werden. Die später konfi
gurierten Einrichtungen werden also den Kanälen nicht mehr zugeordnet werden.
Nach einer gewissen Zeit nach der Beendigung der Initialisierung ist die Zuordnung des Ka
nals zu bestimmten Endpunkten einer Einrichtung festgelegt. Sie kann verändert werden,
wenn sich die erforderliche Funktionsweise der Einrichtung weiter entwickelt. Einrichtungen,
die mehrere Endpunktfunktionen aufweisen, werden somit mehreren Kanälen zugewiesen
(von denen jede einen bestimmten Endpunkt zugeordnet ist).
Jeder Endpunkt ist eine adressierbare Einheit auf dem USB und muß auf EIN- und AUS-
Token von der USB-Hoststeuereinrichtung reagieren. Die EIN-Token zeigen an, daß der Host
angefordert hat, Information von einem Endpunkt zu empfangen, und AUS-Token zeigen an,
daß der Host gleich Informationen zu einem Endpunkt sendet.
Bei Erfassung eines EIN-Tokens, der zu einem Endpunkt gerichtet ist, ist der Endpunkt dafür
verantwortlich, mit einem Datenpaket zu antworten. Wenn der Endpunkt derzeit blockiert ist,
wird ein STALL-Quittungspaket zurückgegeben. Wenn der Endpunkt enabled (freigegeben)
ist, jedoch keine Daten vorliegen, wird ein NAK-Quittungspaket (NAK = Negative Acknow
ledgement; negative Bestätigung) gesendet.
Ähnlich ist bei der Erfassung eines AUS-Tokens, der an einen Endpunkt gerichtet ist, der
Endpunkt dafür verantwortlich, ein Datenpaket zu empfangen, das von dem Host gesendet
wird, und es in einem Puffer zu speichern. Wenn der Endpunktkanal momentan blockiert ist,
wie am Ende der Datenübertragung, wird kein Quittungspaket gesendet. Wenn der Endpunkt
kanal enabled ist, jedoch kein Puffer vorhanden ist, in dem die Daten gespeichert werden
können, wird ein NAK-Quittungspaket gesendet.
Ein disabled (gesperrter) Endpunkt, oder Endpunkte, die momentan keinem Endpunktkanal
zugeordnet sind, reagieren nicht auf EIN-, AUS- oder SETUP-Token.
Der USB definiert vier Arten von Datenübertragungen über einen Kanal: Steuerung (control),
Volumen (bulk), Unterbrechung (interrupt) und Isochron.
Steuer-Übertragungen werden von dem Host dazu verwendet, eine Einrichtung bei ihrer Ver
wendung mit einem Verteilerknoten zu konfigurieren. Steuer-Übertragungen können von der
Hoststeuereinrichtung auch dazu verwendet werden, bestimmte Transaktionen mit einer Ein
richtung zu realisieren.
Volumen-Übertragungen sind sequentielle Übertragungen von im allgemeinen großen Da
tenmengen. Volumen-Übertragungen bieten zuverlässige Transaktionen, in denen sie Fehler
erfassen und beschädigte Daten erneut senden. Die für eine Volumen-Übertragung zugewie
sene Busbandbreite kann die gerade verfügbare Bandbreite sein, wobei Volumen-
Übertragungen nicht zeitkritisch sind.
Interrupt-Übertragungen sind kurze, spontane Datentransaktionen, die von einer Einrichtung
ausgehen.
Isochrone Übertragungen sind kontinuierliche Echtzeit-Datentransaktionen. Isochrone Über
tragungen werden einem eigenen Teil der Bandbreite eines USB-Netzes zugewiesen, um die
rechtzeitige Beendigung der isochronen Übertragungen sicherzustellen.
Obwohl eine Einrichtung mehrere Endpunktfunktionen aufweisen kann, müssen diese End
punktfunktionen nicht notwendig gleichzeitig arbeiten. Beispielsweise kann ein Multifunkti
onsgerät ein Fax und eine digitale Telefonfimktion umfassen. Während der Initialisierung
wird dem Multifunktionsgerät eine eindeutige Funktionsadresse zugewiesen, und die Fax-
und digitalen Telefonfunktionen werden jeweils unterschiedlichen Endpunktnummern zuge
ordnet. Nach außen gehende Kanäle zum Senden von Daten zu jeder der Funktionen werden
während der Initialisierung ebenfalls zugeordnet. Einem Ausgangskanal wird eine End
punktnummer für die Faxfunktion zugewiesen, und einem Ausgangskanal wird eine End
punktnummer für die Druckerfunktion zugewiesen. Ein Fax und digitales Telefon benötigen
üblicherweise beide einen isochronen Ausgangskanal, weil ihre Transaktionen in Echzeit ab
laufen sollten.
Während des Betriebs des Multifunktionsgerätes greift die Hoststeuereinrichtung zu jeweils
einer Zeit nur auf eine der Funktionen zu. Zu jeder gegebenen Zeit wird also nur einer der
Ausgangskanäle verwendet, die für die Fax- und digitalen Telefonfunktionen zugewiesen
sind.
Wenn mehrere Einrichtungen an einen USB-Bus angeschlossen sind, kann es sein, daß die
verfügbare Bandbreite nicht die Anforderungen aller Einrichtungen erfüllen. Die Zuweisun
gen eines Anspruches auf einen Buszugriff und eine Bandbreite an sowohl den Ausgangska
nal des Faxes als auch den Ausgangskanal des digitalen Telefons können daher die Zuord
nung der Ressourcen zu später konfigurierten Einrichtungen begrenzen. Diese Beschränkung
betrifft die nachfolgenden Zuweisungen selbst dann, wenn das Fax und das digitale Telefon
nicht gleichzeitig verwendet werden.
Eine Art, dieses Problem zu vermeiden, besteht darin, eine Einrichtung so zu konfigurieren,
daß sie eine bestimmte Persönlichkeit hat, und wenn eine andere Persönlichkeit benötigt wird,
die Einrichtung zurückzusetzen und sie mit einer anderen Persönlichkeit zu konfigurieren. Ein
Multifunktions-Faxgerät könnte zum Beispiel zuerst so konfiguriert werden, daß es als ein
Fax arbeitet. Später, wenn der Host-PC einen Drucker benötigt, könnte der Host-PC das Gerät
zurücksetzen, um das Multifunktionsgerät dann als Drucker zu konfigurieren. Durch Zurück
setzen eines Multifunktionsgerätes kann dieses also mehrere Persönlichkeiten annehmen. Das
Zurücksetzen eines Multifunktionsgerätes erfordert jedoch eine Steuer-Übertragung, um je
weils die Persönlichkeitsänderung auszuführen.
Alternativ können mehrere Schnittstellen einen Endpunkt gemeinsam verwenden. Dies kann
man erreichen, indem eine zusätzliche Software-Schicht vorgesehen wird. Die USB-
Merkmalsspezifikation beschreibt eine solche Anordnung, bei der ein Endpunkt von mehreren
Schnittstellen gemeinsam genutzt wird. Diese Anordnung erfordert jedoch einen Software
gesteuerten Multiplexbetrieb, zusätzliche Felder für Endpunktdeskriptoren und einen Ablauf
steuermechanismus.
Es ist eine Aufgabe der Erfindung, einen Mechanismus zum dynamischen Verändern der Per
sönlichkeit eines Multifunktions-USB-Gerätes vorzusehen.
Eine weitere Aufgabe der Erfindung ist, einen einzelnen Kanal mehreren Funktionen dyna
misch zuzuordnen.
Es ist ein Merkmal eines Aspektes der Erfindung, einen einzelnen Kanal mehreren Endpunk
ten zuzuordnen, welche die selbe Funktionsadresse haben.
Es ist ein weiteres Merkmal eines Aspektes der Erfindung, einen einzelnen Kanal mehreren
Endpunkten zuzuordnen, die unterschiedliche Funktionsadressen haben.
Es ist eine weiteres Merkmal der Erfindung, einen grundsätzlichen Mechanismus vorzusehen,
um eine Abbildung zwischen den Endpunktnummern, Tokentypen, einer oder mehreren
Funktionsadressen und Endpunktkanälen vorzusehen.
Es ist ein Vorteil eines Aspektes der Erfindung, daß Token desselben Typs einem bestimmten
Endpunkt zugewiesen werden.
Ein weiterer Vorteil besteht darin, daß effiziente Ausführungsformen der erfindungsgemäßen
Einrichtung auf Gateebene vorgesehen werden.
Gemäß eines Aspektes der Erfindung werden mit einem Verfahren zum Abbilden von End
punktkanälen auf mehrere logische Knoten in einer universellen seriellen Buseinrichtung
mehrere Endpunkte konfiguriert, die jeweils eine Endpunktnummer und eine zugehörige
Funktionsadresse haben; mehrere Endpunktkanäle werden eingerichtet; eine Abbildung zwi
schen den mehreren Kanälen und den mehreren Endpunkten wird definiert; ein Token wird
über einen ersten Kanal von den mehreren Kanälen empfangen, wobei der Token eine End
punktnummer enthält; und der erste Kanal wird mit einem ausgewählten Endpunkt verbun
den, indem die Abbildung auf die Token-Endpunktnummer angewendet wird, wobei die End
punktnummer des Token sich von der Endpunktnummer des ausgewählten Endpunktes unter
scheidet.
Gemäß eines weiteren Aspektes der Erfindung wird bei einem Verfahren zum Abbilden von
Kanälen auf mehrere logische Knoten einer universellen seriellen Buseinrichtung ein Token
empfangen, der eine erste Endpunktnummer hat; der Token wird auf einen Endpunkt mit ei
ner zweiten Endpunktnummer abgebildet, wobei die erste Endpunktnummer sich von der
zweiten Endpunktnummer unterscheidet.
Gemäß eines weiteren Aspektes der Erfindung konfiguriert ein Verfahren zum Abbilden von
Kanälen auf mehrere logische Knoten einer universellen seriellen Buseinrichtung einen ersten
Endpunkt mit einer ersten Funktionsadresse und einer ersten Endpunktnummer; es konfigu
riert einen zweiten Endpunkt mit einer zweiten Funktionsadresse und einer zweiten End
punktnummer, wobei die zweite Funktionsadresse sich von der ersten Funktionsadresse unter
scheidet; es empfängt einen Token, der an die erste Funktionsadresse und die erste End
punktnummer gerichtet ist; und es bildet den Token auf dem zweiten Endpunkt ab.
Gemäß eines weiteren Aspektes der Erfindung verwendet eine universelle serielle Busein
richtung mehrere Endpunkte; mehrere Kanalabbildungen zum Zuordnen eines Kanals zu ei
nem Endpunkt; und ein Konfigurationsregister zum Auswählen unter den mehreren Kanalab
bildungen.
Gemäß eines weiteren Aspektes der Erfindung umfaßt ein Multifunktions-USB-Gerät eine
erste Abbildungsfunktion zum Abbilden empfangener Token auf Endpunktkanäle; eine zweite
Abbildungsfunktion, die sich von der ersten Abbildungsfunktion unterscheidet zum Abbilden
empfangener Token auf Endpunktkanälen; und ein Konfigurationsregister, das mehrere Zu
stände aufweist, wobei wenigstens einer der Zustände die erste Abbildungsfunktion auswählt
und wenigstens einer der Zustände die zweite Abbildungsfunktion auswählt. Ein Verfahren
zum dynamischen Ändern der Persönlichkeit der Einrichtung initialisiert die Einrichtung, um
eine erste Persönlichkeit zu definieren, welche die erste Abbildungsfunktion realisiert, und um
eine zweite Persönlichkeit zu definieren, welche die zweite Abbildungsfunktion realisiert; es
setzt das Konfigurationsregister in einen ersten Zustand, um die erste Persönlichkeit auszu
wählen; und es setzt das Konfigurationsregister in einen zweiten Zustand, um die zweite Per
sönlichkeit auszuwählen.
Diese, sowie weitere Aufgaben, Merkmale und Vorteile der Erfindung ergeben sich deutlicher
aus der folgenden Beschreibung im Bezug auf die Zeichnungen. In den Figuren zeigen:
Fig. 1 ein Blockdiagramm eines universellen seriellen Busnetzes;
Fig. 2 ein Blockdiagramm einer bevorzugten Ausführungsform eines Schnittstel
lenmoduls für eine universelle serielle Buseinrichtung;
Fig. 3 ein Diagramm eines Kanalabbildungsindizes einer bevorzugten Ausführungs
form;
Fig. 4 eine Tabelle, die eine beispielhafte Abbildung wiedergibt, welche von einer
bevorzugten Ausführungsform einer Endpunktsteuereinrichtung realisiert wird;
Fig. 5 eine Tabelle, welche eine andere beispielhafte Abbildung wiedergibt, die von
einer bevorzugten Ausführungsform einer Endpunktsteuereinrichtung realisiert
wird;
Fig. 6 ist ein Blockdiagramm einer bevorzugten Ausführungsform der Endpunktsteu
ereinrichtung der Fig. 2;
Fig. 7 ist ein Blockdiagramm einer bevorzugten Ausführungsform einer USB-
Einrichtung, welche das Schnittstellenmodul der Fig. 2 enthält.
Die in dieser Anmeldung beschriebene Erfindung ist ein Aspekt einer größeren Gruppe von
Erfindungen, die in den folgenden, ebenfalls anhängigen Anmeldungen derselben Anmelderin
beschrieben sind und auf die hier Bezug genommen wird: US-Patentanmeldung Nr.
09/003,963, angemeldet am 7. Januar 1998, mit dem Titel "Apparatus and Method for Im
plementing a Versatile USB Endpoint Pipe"; US-Patentanmeldung Nr. 09/004,003, angemel
det am 7. Januar 1998, mit dem Titel "Apparatus and Method of Implementing a USB End
point Pipe with Double Buffering Support"; US-Patentanmeldung Nr. 09/003,897, angemel
det am 7. Januar 1998, mit dem Titel "An Apparatus and Method for Transmitting and Recei
ving Data Into and Out of a Universal Serial Bus Device"; US-Patentanmeldung Nr.
09/004,002, angemeldet am 7. Januar 1998, mit dem Titel "Apparatus and Method of Trans
mitting and Receiving USB Isochronous Data"; US-Patentanmeldung Nr. 09/004,005, ange
meldet am 7. Januar 1989, mit dem Titel "An Apparatüs and Method for Handling Universal
Serial Bus Control Transfers"; US-Patentanmeldung Nr. 09/003,925, angemeldet am 7. Januar
1998, mit dem Titel "Apparatus and Method for Initializing a Universal Serial Bus Device".
Zusätzlich wird auf das Dokument von National Semiconductor "USB Node Interface Archi
tecture Specification", Version 0.6, Bezug genommen, das als Anhang A dieser Anmeldung
beigefügt ist.
Mit Bezug auf Fig. 7 wird nun eine USB-Einrichtung 710 gemäß den Grundsätzen der Erfin
dung beschrieben. Die bevorzugte Ausführungsform der Einrichtung entspricht der Version
1.0 der USB-Spezifikation, während sie eine Reihe von Vorteilen gegenüber den herkömmli
chen USB-Einrichtungen aufweist. Die USB-Einrichtung 710 umfaßt ein USB-
Schnittstellenmodul 220, einen Registersatz 714, ein RAM 712 und ein BIU (Busschnittstel
leneinheit) 716.
Das Schnittstellenmodul 200 dient als Verbindung zu einem USB-Netz, um Daten zu senden
und zu empfangen. Das Schnittstellenmodul 200 ist auch mit dem Registersatz 714, dem
RAM 712 und dem BIU 716 über einen Kernbus 718 verbunden. Der Kernbus 718 ermöglicht
es dem Schnittstellenmodul 200, auf den Registersatz 714 und das RAM 712 zuzugreifen.
Die BIU 716 bietet Zugang zu dem Adressraum des Kernbusses 718.
Mit Bezug auf Fig. 2 ist nun das USB-Schnittstellenmodul 200 der Fig. 7 beschrieben. Das
USB-Schnittstellenmodul 200 bildet die Schnittstelle für die USB-Einrichtung 710 zur Ver
bindung mit einem USB-Netz. Das Schnittstellenmodul 200 umfaßt einen integrierten USB-
Transceiver 206 (Sender-Empfänger), eine serielle Schnittstelleneinrichtung (SIE; seriell in
terface engine) 204 und die Endpunktsteuereinrichtung (Endpunkt-Controller) 202.
Der Transceiver (Sender-Empfänger) 206 bildet die physische Schnittstelle zu einem USB-
Netz. Der Transceiver umfaßt sowohl Treiber als auch Empfänger, welche die Spezifikationen
für die physische Schicht der Version 1.0 der USB-Spezifikation erfüllen.
Die serielle Schnittstelleneinrichtung 204 ist mit dem Transceiver 206 funktionell gekoppelt
und sie besteht aus einer PHY- (physischen) und einer MAC-Ebene (MAC = Media Access
Control; Medienzugriffssteuerung). Die physische Schicht umfaßt eine Digitaltakt-
Wiederherstellungsschaltung, ein digitales Störimpulsfilter (Glitch-Filter), eine Paketende-
Erfassungsschaltung und eine Logikschaltung zum Zuführen und Abführen von Bits (bit-
stuffing und de-stuffing).
Die Steuerebene für den Medienzugriff umfaßt die Paketformatierung, die Erzeugung und
Überprüfung einer zyklischen Redundanzprüfung (CRC), die Erfassung der Endpunktadresse,
und sie sieht die nötige Steuerung vor, um die NAK-, ACK- und STALL-Antworten zu ge
ben, die von der Endpunktsteuereinrichtung 202 für den spezifizierten Endpunktkanal ermit
telt werden. Die serielle Schnittstelleneinrichtung 204 ist auch verantwortlich für das Erfassen
und Berichten von USB-spezifischen Ereignissen, wie Zurücksetzen, Aussetzen und Wieder
aufnehmen.
Die Endpunktsteuereinrichtung 202 ist mit der seriellen Schnittstelleneinrichtung 204 funk
tionell gekoppelt und sieht die Schnittstelle für den USB-Funktionsendpunkt vor.
Die Endpunktsteuereinrichtung 202 arbeitet als Master und Slave auf dem Kernbus 718 und
unterstützt alle USB-Klassen: Steuern, Volumen, Isochron und Interrupt. Der Slave-Zugriff
wird dazu verwendet, auf interne Steuerregister des Registersatzes 714 zurückzugreifen, und
der Masterzugriff wird dazu verwendet, Daten zwischen Endpunkten und einem RAM 712 zu
übertragen.
Die Endpunktsteuereinrichtung 202 hält für jeden Endpunktkanal getrennte Zustandsinforma
tionen aufrecht. Zustandsinformation, die für sofortige Entscheidungen benötigt wird, wie die
Antwort auf eine NAK- oder STALL-Quittung, wird für jeden Endpunktkanal zu jeder Zeit in
der Endpunktsteuereinrichtung 202 aufbewahrt. Diese Information wird dazu verwendet, die
Medienzugriffssteuerebene der seriellen Schnittstelleneinrichtung 204 einzuleiten, damit sie
die richtigen ACK-, NAK- und STALL-Antworten gibt. Andere für den Endpunktbetrieb be
nötigte Information wird in einem Endpunktfeld des RAM 712 aufbewahrt. Die Endpunkt
steuereinrichtung 202 umfaßt auch eine Endpunktablaufsteuereinrichtung 206. Da zu jeder
gegebenen Zeit nur ein Endpunktkanal aktiv ist, kann die Endpunktkanal-Ablaufsteuer
einrichtung 206 von allen Endpunktkanälen gemeinsam genutzt werden.
Bei EIN-Token ist die Endpunktsteuereinrichtung 202 für die Übertragung von Daten von
einem ausgewählten Puffer zu dem Host verantwortlich. Bei AUS-Token ist die Endpunkt
steuereinrichtung 202 für die Übertragung von Daten von dem Host zu einem ausgewählten
Puffer verantwortlich. Um mehr Flexibilität zu ermöglichen, wenn Puffer einem Endpunktka
nal zugewiesen werden, ist bei jedem Endpunktkanal ein Doppelpufferungsverfahren zulässig.
Dadurch kann die Endpunktsteuereinrichtung 202 auf alle Transaktionen prompt antworten,
ohne auf NAKs zurückzugreifen.
Die Endpunktsteuereinrichtung 202 sieht eine Abbildung von der Funktionsadresse, dem To
kentyp (EIN, AUS, SETUP) und einer Endpunktnummer auf einem der Endpunktkanäle vor.
Eine bevorzugte Ausführungsform unterstützt zwei feste Abbildungen auf Endpunktkanäle.
Die Auswahl dieser Abbildungen wird von der Einstellung der Abbildungsauswahl-Bits des
Endpunktkanals in einem Gerätekonfigurationsregister gesteuert, das in dem Steuerregister
714 liegt. Die Host-Steuereinrichtung 102 kann die Einstellung der Kanalsabbildungsaus
wahlbits steuern.
Die Endpunktsteuereinrichtung 202 verwendet ein Tokenpaket, um einen Kanalabbildungsin
dex 300 von einem Byte Breite zu erzeugen, der in Fig. 3 gezeigt ist. Die Bits 0 bis 3 des Ka
nalsabbildungsindex 900 werden dazu verwendet; die Endpunktnummer (EN) zu identifizie
ren. Die Bits 4 bis 5 werden dazu verwendet, den Tokentyp zu identifizieren, wobei 00 einen
AUS-Token angibt, 10 gibt einen EIN-Token an, 11 gibt einen SETUP-Token an, und 01
zeigt einen SOF-Token an. Die Bits 6 bis 7 werden dazu verwendet, die ausgewählte Funkti
onsadresse anzuzeigen.
Beim Empfang eines Tokenpakets erzeugt die Endpunktsteuereinrichtung 202 den Kanalab
bildungsindex 300. Die Endpunktsteuereinrichtung 202 greift dann auf die Abbildungsaus
wahlbits des Endpunktkanals zu, um die richtige Abbildung für den Token auszuwählen.
Eine bevorzugte Ausführungsform der USB-Einrichtung 710 unterstützt zwei Abbildungen.
Die Auswahlbits für den Endpunktkanal umfassen daher ein einziges Bit. Eine Abbildung für
den Fall, daß das Abbildungsauswahlbit des Endpunktkanals 0 ist, ist in Fig. 4 gezeigt. Eine
Abbildung für den Fall, daß das Abbildungsauswahlbit des Endpunktkanals 1 ist, ist in Fig. 5
gezeigt.
Durch Verändern des Auswahlbits des Endpunktkanals kann die Host-Steuereinrichtung 102
die Abbildung des Endpunktkanals über verschiedenen Funktionen verändern. Die Host-
Steuereinrichtung 102 kann somit ein Gerät so konfigurieren, daß es mehrere Persönlichkeiten
hat. Die Host-Steuereinrichtung 102 kann dann die Persönlichkeit der Einrichtung dynamisch
verändern, indem sie einfach auf das Abbildungsauswahlbit für den Endpunktkanal zugreift.
Dies erlaubt der Host-Steuereinrichtung ferner, Endpunktkanäle über Funktionsadressen, To
kentyp und Endpunkt dort zuzuweisen, wo der Endpunktkanal am meisten benötigt wird.
In Fig. 4 wird die Endpunktabbildung gemäß der Funktionsadresse und Endpunktnummer des
Adressenpakets geführt. Die Bezeichnung FA0 gibt die Funktionsadresse wieder, welche der
Einrichtung 710 während der Initialisierung zugewiesen wurde. Wie gezeigt, wird ein Token
paket mit der Funktionsadresse FA0 dem Tokentyp EIN, AUS oder SETUP und dem End
punkt 0 des Endpunktkanals Nummer 0 zugeordnet. Ähnlich wird ein Tokenpaket mit der
Funktionsadresse FA0 dem Token EIN, AUS oder SETUP und einem Endpunkt 1 bis 15 den
Endpunktkanälen Nummer 1 bis 15 entsprechend der Endpunktnummer zugewiesen. Ein To
kenpaket mit einem SOF-Token wird automatisch einem SOF-Endpunktkanal zugewiesen.
Ein Tokenpaket mit einer anderen Funktionsadresse als FA0 wird ignoriert.
Mit Bezug auf Fig. 5 wird nun die Abbildung oder Zuordnung beschrieben, wenn das End
punktkanal-Abbildungsauswahlbit gesetzt ist. Tokenpakete mit der Funktionsadresse FA0,
Tokentypen EIN, AUS oder SETUP und mit einem Endpunkt 0 werden dem Endpunktkanal
Nummer 0 zugeordnet. Tokenpakete mit der Funktionsadresse FA0, Tokentypen EIN, AUS
oder SETUP und dem Endpunkt 8 werden dem Endpunktkanal Nummer 1 zugeordnet. To
kenpakete mit der Funktionsadresse FA0, Tokentyp AUS und Endpunkt EIN werden dem
Endpunktkanal Nummer 2 zugeordnet. Tokenpakete mit der Funktionsadresse FA0, Token
typ EIN und Endpunkt 1 werden dem Endpunktkanal Nummer 3 zugeordnet. Tokenpakete
mit der Funktionsadresse FA0, Tokentyp AUS und Endpunkt 2 werden dem Endpunktkanal
Nummer 4 zugeordnet. Tokenpakete mit der Funktionsadresse FA0, Tokentyp EIN und
Endpunkt 2 werden dem Endpunktkanal Nummer 5 zugeordnet. Tokenpakete mit der Funk
tionsadresse FA0, Tokentyp AUS und Endpunkt 3 werden dem Endpunktkanal Nummer 6
zugeordnet. Tokenpakete mit der Funktionsadresse FA0, Tokentyp EIN und Endpunkt 3
werden dem Endpunktkanal Nummer 7 zugeordnet. Tokenpakete mit der Funktionsadresse
FA0, Tokentyp AUS und Endpunkt 4 werden dem Endpunktkanal Nummer 8 zugeordnet.
Tokenpakete mit der Funktionsadresse FA0, Tokentyp EIN und Endpunkt 4 werden dem
Endpunktkanal Nummer 9 zugeordnet. Tokenpakete mit der Funktionsadresse FA0, Token
typ AUS und Endpunkt 5 werden dem Endpunktkanal Nummer 10 zugeordnet. Tokenpakete
mit der Funktionsadresse FA0, Tokentyp EIN und Endpunkt 5 werden dem Endpunktkanal
Nummer 11 zugeordnet. Tokenpakete mit der Funktionsadresse FA0, Tokentyp AUS und
Endpunkt 6 werden dem Endpunktkanal Nummer 12 zugeordnet. Tokenpakete mit der
Funktionsadresse FA0, Tokentyp EIN und Endpunkt 6 werden dem Endpunktkanal Nummer
13 zugeordnet. Tokenpakete mit der Funktionsadresse FA0, Tokentyp AUS und Endpunkt 7
werden dem Endpunktkanal Nummer 14 zugeordnet. Tokenpakete mit der Funktionsadresse
FA0, Tokentyp EIN und Endpunkt 7 werden dem Endpunktkanal Nummer 15 zugeordnet.
Tokenpakete mit der Funktionsadresse FA0, dem Tokentyp SETUP und dem Endpunkt 1 bis
7 werden keinem Endpunktkanal zugeordnet. Tokenpakete mit der Funktionsadresse FA0,
einem beliebigen Tokentyp und dem Endpunkt 0 bis 15 werden keinem Endpunktkanal zuge
ordnet. Tokenpakete mit dem Tokentyp SOF werden einem SOF Endpunktkanal zugeordnet.
Tokenpakete mit einer beliebigen Funktionsadresse, die nicht FA0 ist, werden keinem End
punktkanal zugeordnet.
Diese Zuordnung oder Abbildung erlaubt eine Zuweisung der ersten acht Endpunktnummern
für EIN- und AUS-Operationen. Die Endpunktkanäle können entweder für die Eingabe oder
für die Ausgabe, jedoch nicht für beides simultan verwendet werden. Mit dieser Art der Ab
bildung kann es daher einen Endpunkt 1 EIN und einen Endpunkt 1 AUS geben.
Obwohl die Endpunktabbildung der Fig. 4 und 5 nur FA0 zeigt, umfassen die Abbildungen
für eine zusammengesetzte Einrichtung zusätzliche Funktionsadressen. Die bevorzugte Aus
führungsform weist zwei Bits des Kanalsabbildungsindex 900 für Funktionsadressen zu, so
daß vier Funktionsadressen unterstützt werden können. Eine bevorzugte Ausführungsform
einer solchen Einrichtung bildet alle Steuerfunktionen zusammen auf einen Endpunktkanal
ab. Dies reduziert die Gesamtzahl der erforderlichen Endpunktkanäle.
Bei einer bevorzugten Ausführungsform eines Programmiermodels können die Endpunktka
näle quer über die Funktionsadressen, den Tokentyp und die Endpunktnummern abgebildet
oder zugeordnet werden. Dadurch vermeidet man die neue Neukonfiguration der Einrichtung
und erlaubt eine vollständig dynamische Zuweisung der Endpunktkanäle zwischen den Funk
tionsadressen gestützt auf die Bedürfnisse der aktiven Anwendungen. Ferner können mehrere
Abbildungen in einem Datenregister dynamisch programmiert werden. Diese Abbildungen
können ihrerseits von einem Indexregister dynamisch ausgewählt werden.
Alle von den Endpunktkanälen während der Datenübertragung verwendete Information wird
in einem Endpunktfeld aufbewahrt, das in einem RAM 812 liegt. Dieses Feld wird über einen
Endpunktkanal von einer Basisadresse aus indexiert, die in einem Endpunktfeld-
Basisadressenregister definiert wird, das in dem Registersatz 814 liegt. Dieses Feld enthält
Steuerworte für jeden Endpunkt. Die Steuerworte enthalten Befehle und Statusinformationen
für den zugehörigen Endpunktkanal, wie einen Zeiger zum Anfang eines verknüpften Puffers,
die Größe des Puffers und den Zustand des Puffers sowie weitere relevante Parameter.
Der Pufferzustand definiert, ob der Puffer für Eingangs- oder Ausgangstransaktionen verwen
det wird und ob momentan auf ihn zugegriffen wird oder ob die gewünschte Operation been
det ist.
Wenn eine EIN- oder AUS-Übertragung angefordert wird, ordnet die Endpunktsteuereinrich
tung 202 zunächst den Token dem richtigen Endpunktkanal zu. Wenn der Token einem End
punktkanal zugewiesen wird, wenn ein Puffer vorhanden ist, liest die Endpunktsteuereinrich
tung 202 das entsprechende Steuerwort. Dieses Steuerwort teilt der Endpunktsteuereinrich
tung 202 mit, wie die Transaktion ablaufen soll. Am Ende einer Transaktion schreibt die End
punktsteuereinrichtung das Steuerwort mit dem Status, der von der Software dazu verwendet
wird, diesen Puffer freizugeben, und sieht ein neues vor.
Die Endpunktsteuereinrichtung 202 minimiert die Anzahl der Speicherzugriffe, die zum Ver
arbeiten einer Transaktion benötigt werden. Nur bei Empfang eines Tokens ist ein Speicher
zugriff erforderlich, um auf das Endpunktfeld zuzugreifen. Bei diesem Zugriff wird die In
formation in Bezug auf die Lage und die Größe für die Datenübertragung gelesen. Die Daten
übertragung erfolgt in aufeinanderfolgenden Zwei-Wort-Lese- oder Schreiboperationen.
Die Endpunktsteuereinrichtung 202 des Schnittstellenmoduls 200 hat die höchste Priorität auf
dem Kernbus 118 für Übertragungen, und die Übertragungsrate ist wesentlich höher als die
des USB. Die Anforderungen an die Datenpufferung innerhalb der Endpunktsteuereinrichtung
sind daher minimal, abgesehen von einem Extrawort, um eine Überlappung von nachfolgen
den Zugriffen mit einem aktuellen Zugriff vorzusehen. Ein Bytezähler registriert die Anzahl
der Bytes, die übertragen werden. Der letzte Zugriff bei einer Übertragung kann das partielle
Lesen oder Schreiben des Speichers erfordern. Das partielle Schreiben des letzten Zugriffs
wird von dem letzten Byte-Zählwert bestimmt. Am Ende einer Übertragung wird das aktuelle
Steuerwort mit dem Status für die Übertragung geschrieben, und das andere Steuerwort für
diesen Endpunkt wird gelesen, um zu überprüfen, ob ein weiterer Puffer vorbereitet wurde.
Nach den Steuerwort-Operationen wird der Zustand der Endpunktkanäle in dem Endpunktka
nalzustand-Feld aktualisiert. Dies beendet die Verarbeitung einer Transaktion durch die End
punktsteuereinrichtung 202 des Schnittstellenmoduls 200.
Mit Bezug auf Fig. 6 ist im folgenden die Struktur der Endpunktsteuereinrichtung 202 mit
weiteren Einzelheiten beschrieben. Die Endpunktsteuereinrichtung 202 besteht aus mehreren
Funktionsblöcken. Insbesondere umfaßt die Endpunktsteuereinrichtung 202 eine Medienzu
griffs-Steuerschnittstelle 602, einen Gerätefunktionsblock 604, eine Endpunkt-Ablauf
steuerung 606, eine Endpunktkanal-Teilspeichereinrichtung (PEPS; partial endpoint pipe sto
rage) 608, einen Adressengenerator 610 und ein Datenausricht-Multiplexer 612.
Die Medienzugriffs-Steuerschnittstelle 602 ist mit der Endpunkt-Ablaufsteuereinrichtung 606
und dem Datenausricht-Mulitplexer 612 gekoppelt, um die Schnittstelle für die Medienzu
griffs-Steuerebene der seriellen Schnittstelle 204 vorzusehen. Einige Bereiche der Endpunkt
steuereinrichtung 202 arbeiten mit einem Takt auf dem Kernbus 718, andere Bereiche arbei
ten mit einem lokalen Takt der Endpunktsteuereinrichtung 202. Die Medienzugriffs-
Steuerschnittstelle 602 synchronisiert Datenbites zwischen den verschiedenen Bereichen mit
einer asynchronen Quittung für jedes Byte, das aus der Endpunktsteuereinrichtung 202 her
ausgesendet wird.
Der Gerätefunktionsblock 604 führt Gerätefunktionen aus, wie die Adressenprüfung und
-erzeugung. Der Gerätefunktionsblock 604 ist funktionell mit der Endpunkt-Ablaufsteuer
einrichtung 606 gekoppelt, um Informationen in Bezug auf den Endpunktkanal vorzusehen,
auf den momentan zugegriffen wird.
Die Endpunkt-Ablaufsteuereinrichtung 606 führt die Funktionen aus, die sich auf die Auf
rechterhaltung des Zustands eines aktiven Endpunktkanals beziehen. Die Ablaufsteuerein
richtung 606 behält den Zustand eines aktiven Endpunktkanals mit genau definierten Über
gängen aufrecht, um Hardware- und Softwareinteraktionen zu synchronisieren. Der aktuelle
Zustand ist für eine Host-Steuereinrichtung über ein Endpunktzustandsregister einsehbar.
Die Endpunktkanal-Teilspeichereinrichtung 608 enthält eine minimale Informationsmenge für
jeden Endpunktkanal. Der Rest wird in einem Feld im lokalen RAM gespeichert.
Der Adressengenerator 610 erzeugt die Adressen für die Übertragung auf dem Kernbus. Die
Adresse ist üblicherweise eine Speicheradresse.
Der Datenausricht-Multiplexer sieht die notwendigen Ausrichtungen der Datenbytes vor der
Übertragung über den Kernbus 718 vor.
Obwohl die hier beschriebenen Ausführungsformen sich auf bestimmte Abbildungen oder
Zuordnungen beziehen, kann die vorliegende Erfindung mit einer Vielzahl anderer Abbil
dungsfunktionen realisiert werden, ohne den Bereich der Erfindung zu verlassen. Dies umfaßt
programmierbare Abbildungen durch Schreiben an Stellen, die von dem UIR bestimmt wer
den. Der Durchschnittsfachmann wird leicht aus den hier offenbarten Ausführungsformen
erkennen, daß viele Modifikationen möglich sind, ohne die Lehre der Erfindung zu verlassen.
All diese Modifikationen liegen im Bereich der folgenden Ansprüche. Die in der vorstehen
den Beschreibung, den Ansprüchen und der Zeichnung offenbarten Merkmale können sowohl
einzeln als auch in beliebiger Kombination für die Realisierung der Erfindung in ihren ver
schiedenen Ausführungsformen von Bedeutung sein.
Die Architektur der USB-Knotenschnittstelle ist in dem folgenden Anhang, der Teil der Be
schreibung ist, näher spezifiziert.
Das USB-Schnittstellenmodul (UNIM) bildet eine Schnittstelle zu dem universellen seriellen
Bus für einen Hochgeschwindigkeitsknoten auf einem USB-Bus. Das Modul entspricht der
Version 1.0 der USB-Spezifikation.
Das Modul umfaßt einen integrierten USB-Transceiver, eine vollständige serielle Schnittstel
leneinrichtung und den Endpunkt-Controller. Der Endpunkt-Controller arbeitet als Master und
Slave auf dem Kernbus (Core Bus) und unterstützt alle USB-Endpunktklassen: Steuerung,
große Mengen (Bulk), Isochron und Unterbrechung (Interrupt). Der Slavezugang wird dazu
verwendet, auf interne Steuerregister zuzugreifen, und der Masterzugang wird dazu verwen
det, Endpunktdaten zu und von einem RAM zu übertragen.
Der Endpunktcontroller verarbeitet auf den Endpunkt bezogene Operationen einschließlich
des Endpunktkanalzustands, der Pufferung und Übertragungen. Bis zu 16 Endpunktkanäle
können zu jeder gegebenen Zeit unterstützt werden. Jeder Endpunktkanal kann in dem Adreß
raum des Kernbusses zwei Puffern zugewiesen werden, die für Empfangs- und Sen
deoperationen verwendet werden. Wenn einem Endpunktkanal keine Puffer zugewiesen sind,
ist der Controller verantwortlich, die richtigen Handshakes (Quittungen) für Eingangs- und
Ausgangstoken vorzusehen.
Die serielle USB-Schnittstelleneinrichtung umfaßt USB PHY und USB MAC. USB PHY ist
verantwortlich für die NRZI-Codierung, die Erfassung des Anfangs und Endes von Paketen,
Bitstuffing und Unstuffing und für die Parallel-Seriell- und Seriell-Parallel-Wandlung. USB
MAC ist verantwortlich für das Erkennen und Erzeugen geeigneter Paketformate und für das
Verarbeiten der Handshakesequenzen zusammen mit dem Endpunktkanal-Controller. USB
MAC ist auch verantwortlich zum Erzeugen und Überprüfen der geeigneten CRCs in den Pa
ketformaten. Es gibt eine eng gekoppelte Schnittstelle zwischen dem USB MAC und dem
Endpunkt-Controller.
Der USB-Transceiver sieht die analoge Verbindbarkeit zu dem USB-Bus gemäß Kapitel 7 der
Universal Serial Bus Specification Version 1.0 vor. Dies umfaßt die notwendige Signal
formung und Erfassungsfunktionen. Das Modul unterstützt den Hochgeschwindigkeitsbetrieb.
Der Betrieb mit niedriger Geschwindigkeit ist für diese Anwendung kein Erfordernis. Das
Modul unterstützt auch einen Niederleistungsbetrieb, bei dem der Transceiver sehr wenig Lei
stung benötigt (die ganze USB-Einrichtung erhält nur 100 µA) und dennoch der Walk-up-
Übergang auf den Bus erfassen kann.
Das Modul unterstützt auch eine Verbindung zu einem externen Stand-Alone USB-Transcei
ver, wie dem PDIUSBP11 von Phillips.
Da die Architektur des Endpunktcontrollers modular ist, kann die Anzahl der unterstützten
Endpunktkanäle verändert werden, indem die Anzahl der gespeicherten Teilendpunktkanal-
Zustandsvektoren verändert wird. Zusätzlich kann die Abbildung von
- a) bis zu vier Funktionsadressen
- b) des Tokentyps
- c) der Endpunktnummer
auf die Endpunktkanalnummer über die Kanalabbildungsfunktion programmiert werden.
Ein USB HUB-Schnittstellenmodul kann hinzugefügt werden, um eine HUB-Funktion mit bis
zu vier zusätzlichen stromabwärtigen Ports zu ermöglichen. Dieses Modul wird zwischen dem
USB SIE-Modul und dem USB-Transceivermodul eingefügt. Dadurch kann die Einrichtung
die Verbindungsmöglichkeit zu einem oder mehreren zusätzlichen Peripheriegeräten schaffen.
Die Architektur ermöglicht eine Realisierung eines Stand-Alone-USB-Knotencontrollers mit
internem oder externem RAM. Zusätzlich könnte die Architektur für Peripheriegeräte mit
unterschiedlichem Leistungsniveau und für einen 16-Bit-Bus oder den Peripheriebus mit ei
nem privaten Speicher verwendet werden. Zusätzlich könnten mehrere solche Zellen in einer
Ausführung eingerichtet werden, um zusammengesetzte Multifunktionsgeräte zu unterstützen.
Das Design ist für Niedergeschwindigkeits-Knoten nicht optimiert, es könnte jedoch modifi
ziert werden, um auch mit Niedergeschwindigkeits-Geräten zu arbeiten.
Das USB-Knotenschnittstellenmodul (UNIM) bildet die Schnittstelle zu einem universellen
seriellen Bus (USB). Das Modul umfaßt einen integrierten USB-Transceiver, eine voll
ständige serielle Schnittstelleneinrichtung (SIE; Serial Interface Engine) und den Endpunkt
controller. Der Endpunktcontroller arbeitet als Master und Slave auf dem Kernbus und unter
stützt alle USB-Entpunktldassen: Steuerung, Bulk, Isochron und Interrupt. Der Slavezugang
wird dazu verwendet, auf interne Steuerregister zuzugreifen, und der Masterzugang wird dazu
verwendet, Daten zwischen Endpunkten und dem RAM zu übertragen.
- - Kompatibilität mit der USB 1.0 Spezifikation
- - Unterstützt eine USB-Funktion und bis zu 16 Endpunktkanäle
- - Unterstützt alle Klassen der USB-Endpunkte
- - Unterstützt Doppelpuffer auf jedem Endpunktkanal
- - Unterstützt Betrieb als eine Bus-getriebene Einrichtung
- - Optimiert für Hochgeschwindigkeitsknotenbetrieb
- - USB-kompatible serielle Schnittstelleneinrichtung (SIE)
- - USB-kompatible Hochgeschwindigkeitstransceiver
- - Unterstützt Niederleistungs-Aussetzbetrieb
- - Unterstützt Aufwecken von Normandy aufgrund USB-Wiederaufnahme
- - Unterstützt Auslösung von Wiederaufnahme durch Fern-Weckruf
- - Unterstützt Synchronisierung des USB-Takts zu externem Bezugstakt.
Das USB-Knotenschnittstellenmodul sieht eine Schnittstelle zum USB für verschiedene An
wendungen vor. Der Endpunkt-Controller sieht eine vielseitige Anordnung zum Steuern meh
rere USB-Endpunkte vor. Die USB-Knotenschnittstelle umfaßt eine voll anpassungsfähige
serielle Schnittstelleneinrichtung (SIE) und einen integrierten Transceiver. Zusätzlich unter
stützt sie einen externen Transceiver.
Fig. 2-1 zeigt die obere Ebene dieses Moduls.
Der interne USB-Transceiver umfaßt drei Hauptfunktionsblöcke: Den Differenzialempfänger,
den unsymmetrischen Empfänger und den Sender. Zusätzlich sind eine Bezugsspannung für
den unsymmetrischen Empfänger und eine Stromquelle für den Sender vorgesehen.
Normandy unterstützt nur einen Hochgeschwindigkeitstransceiver. Die Leistungserfordernis
se dieses Transceivers sind im Kapitel 7 der Universal Serial Bus Specification Version 1.0
angegeben.
Um die Signalverschiebung zu minimieren, werden Differentialausgangsschwingungen des
Senders gut ausgeglichen. Für den Treiber wird eine Anstiegsgeschwindigkeitssteuerung ver
wendet, um abgestrahltes Rauschen und Übersprechen zu minimieren. Die Treiber unterstüt
zen den TRI-STATE-Betrieb, um einen bidirektionalen Half-Duplex-Betrieb des Transcei
vers zu ermöglichen.
Der Differentialempfänger muß im gesamten Gleichtaktbereich arbeiten, und er muß eine
Verzögerung aufweisen, die sicher größer als die des unsymmetrischen Empfängers ist, um
Spannungsspitzen in der seriellen Schnittstelleneinrichtung (SIE) nach unsymmetrischen
Nullen (Single-Ended Zeros) zu vermeiden.
Unsymmetrische Empfänger sind auf jeder der beiden Datenleitungen vorhanden. Diese sind
zusätzlich zu den Differentialempfängern erforderlich, um eine Absolutspannung mit einer
Schaltschwelle zwischen 0,8 V und 2,0 V (TTL-Eingänge) zu erfassen. Zur Erhöhung der
Vcc-Unterdrückung ohne Spannungsspitzen wird der unsymmetrische Schalt-Bezugswert mit
einer Bezugsspannung eingestellt. Ein externer 1,5 ± 5% kOhm Widerstand, der mit einer
Spannungsquelle zwischen 3,0 V und 3,6 V bezogen auf lokale Masse verbunden ist, ist an
D+ erforderlich, um anzuzeigen, daß es sich um einen Hochgeschwindigkeitsknoten handelt.
Es kann auch ein externer Transceiver verwendet werden. Um den Betrieb für einen externen
Transceiver zu konfigurieren, muß das externe Transceiver-Enable-Bit (NCR. ETE) gesetzt
werden. Wenn es gesetzt ist, gibt es an, daß die Ausgänge ihre "1"-Zustände verlassen sollten,
und alle Eingänge sollten gewählt sein.
Die serielle Schnittstelleneinrichtung des USB besteht aus einer PHY und einer MAC-Ebene.
Die PHY-Ebene umfaßt die digitale Taktwiedergewinnungsschaltung, ein digitales Span
nungsspitzenfilter, eine Paket-Ende-Erfassungsschaltung und eine bit-stuffing und de-stuffing
Logik. Die MAC-Ebene umfaßt die Paketformatierung, CRC-Erzeugung und -Überprüfung,
Endpunktadressenerfassung, und sie sieht die notwendige Steuerung vor, um NAK, ACK und
STALL Antworten zu liefern, die von dem Endpunktcontroller für den spezifizierten End
punktkanal ermittelt werden. Die SIE ist auch verantwortlich für die Erfassung und Mitteilung
von Ereignissen bei Erfassung von 11SB-spezifischen Ereignissen, wie Reset, Warten und
Wiederaufnehmen. Die Ausgangssignale des Senders des UNIM-Moduls, die zu dem
Transceiver gehen, sind gut abgeglichen (unter 1 ns), um Verschiebungen auf den USB-
Signalen zu minimieren.
Der Endpunktkanal-Controller (EPC) bildet die Schnittstelle für USB-Funktionsendpunkte
vor. Ein Endpunkt ist die letztendliche Quelle oder der Ursprung der Daten. Ein Endpunktka
nal sorgt für die Bewegung der Daten zwischen dem USB und dem Speicher und vervollstän
digt den Weg zwischen dem USB-Host und dem Funktionsendpunkt. Bis zu 16 solche End
punktkanäle werden zu jeder gegebenen Zeit unterstützt, jeder mit derselben Funktionsadres
se.
Eine USB-Funktion ist eine USB-Einrichtung, die Informationen auf dem Bus senden und
empfangen kann. Eine Funktion kann eine oder mehrere Konfigurationen haben, von denen
jede die Schnittstellen definiert, welche die Einrichtung umfaßt. Jede Schnittstelle weist ih
rerseits einen oder mehrere Endpunkte auf.
Jeder Endpunkt ist eine adressierbare Einheit auf dem USB und ist erforderlich, um auf IN-
und OUT-Token von dem USB-Host (üblicherweise ein PC) zu reagieren. IN Token geben
an, daß der Host angefordert hat, von einem Endpunkt Informationen zu empfangen, und
OUT-Token geben an, daß der Host dabei ist, Information zu einem Endpunkt zu senden.
Bei Erfassung eines IN-Tokens, der an einen Endpunkt gerichtet ist, ist dieser Endpunkt dafür
verantwortlich, mit einem Datenpaket zu antworten. Wenn der Endpunkt momentan unterbro
chen ist, wird ein STALL-Handshakepaket gesendet. Wenn der Endpunkt enabelt ist, jedoch
keine Daten vorliegen, wird ein NAK (negative Bestätigung) zum Handshakepaket gesendet.
Ähnlich ist bei der Erfassung eines OUT-Tokens, der an einen Endpunkt gerichtet ist, der
Endpunkt dafür verantwortlich, ein Datenpaket zu empfangen, das von dem Host gesendet
wird, und in einem Puffer zu speichern. Wenn der Endpunktkanal momentan blockiert ist,
wird am Ende der Datenübertragung ein STALL-Handshakepaket gesendet. Wenn der End
punktkanal momentan disabled ist, wird am Ende der Datenübertragung kein Handshakepaket
gesendet. Wenn der Endpunktkanal enabled ist, jedoch kein Puffer vorhanden ist, in dem die
Daten gespeichert werden können, wird ein NAK- (negative Bestätigung) Handshakepaket
gesendet.
Ein disabelter Endpunkt oder Endpunkte, die momentan nicht auf einen Endpunktkanal ab
gebildet sind, reagieren nicht auf IN-, OUT- oder SETUP-Token.
Der EPC bewahrt getrennte Zustandsinformation für jeden Endpunktkanal auf. Die Zustand
sinformation, die für unmittelbare Entscheidungen erforderlich ist (z. B. für das Antworten
mit einer NAK oder STALL-Quittung) wird zu allen Zeiten für jeden Endpunkt in dem Modul
bereitgehalten. Andere Information, die für den Endpunktbetrieb notwendig ist, wird in dem
Endpunktfeld (Array) aufbewahrt. Da zu einer gegebenen Zeit nur ein Endpunktkanal aktiv
ist, wird die Endpunktkanal-Ablaufsteuereinheit (state machine) von allen Endpunktkanälen
gemeinsam benutzt.
Bei IN-Token ist der EPC für die Übertragung der Daten von dem definierten Puffer zum
Host verantwortlich. Bei OUT-Token ist der EPC für die Übertragung von Daten von dem
Host zu dem definierten Puffer verantwortlich. Um eine größere Flexibilität zu ermöglichen,
wenn Puffer einem Endpunktkanal zugewiesen werden, ist für jeden Endpunktkanal ein Dop
pelpufferverfahren zulässig. Dadurch dann der EPC eine schnelle Antwort auf alle Transak
tionen an dieses Modul liefern, ohne auf NAKs zurückzugreifen.
Der EPC sieht die Abbildung der Funktionsadresse, Tokentyp (IN, OUT, SETUP) und End
punktnummer auf einen der Endpunktkanäle vor. Zwei feste Abbildungen auf Endpunktkanä
le werden unterstützt und von den Einstellungen des Endpunktkanal-Abbildungsauswahl-Bits
des Einrichtungs-Konfigurationsregisters (DCR.EPMS) gesteuert.
Wenn EPMS = 0:
Wenn EPMS = 1:
Alle von den Endpunktkanälen während der Datenübertragungen verwendete Information
wird in dem Endpunktfeld aufbewahrt, das im RAM liegt. Dieses Feld ist durch den End
punktkanal auf der Basis indexiert, die in dem Endpunktfeld-Basisadressen-Register (EABA)
definiert ist. Dieses Feld enthält zwei Doppelworte pro Endpunkt. Jedes Doppelwort ist ein
Steuerwort, das Steuer- und Statusinformation für den Endpunktkanal enthält, wie einen Zei
ger zum Anfang des Puffers, die Größe des Puffers, den Zustand des Puffers und andere rele
vante Parameter.
Der Pufferzustand definiert, ob der Puffer für Eingangs- oder Ausgangstransaktionen verwen
det werden soll und ob auf ihn momentan zugegriffen wird oder ob er die gewünschte Opera
tion beendet hat.
Wenn eine IN- oder OUT-Übertragung von einem Endpunktkanal angefordert wird und ein
Puffer vorhanden ist, wird das geeignete Steuerwort gelesen. Dieses Steuerwort teilt dem
Endpunkt-Controller mit, wie die Transaktion zu beenden ist. Am Ende einer Transaktion
wird in das Steuerwort der Status geschrieben, der von der Software als Anzeige zum Freige
ben dieses Puffers verwendet wird, und ein neues wird vorgesehen.
Der Endpunkt-Controller besteht aus mehreren Funktionsblöcken. Die Endpunkt-
Ablaufsteuereinrichtung (state machine) sieht die zentralisierte Steuerung für die Dienstblöc
ke des Datenausricht-Mux (DALM; data alignment max), Adressengenerators (ADGen),
Teilendpunktkanal-Speichers (PEP-Speichers) vor. Die Gerätefunktion, wie die Adreßüber
prüfung und -erzeugung werden in dem Gerätefunktionsblock realisiert.
Alle Ablaufsteuereinrichtungen laufen mit dem USB-Takt von 12 MHz. Alle Datenübertra
gungen arbeiten mit dem Kernbus-Takt. Teile des ADGen-Blocks und der gesamte DALM-
Block arbeiten mit dem Kernbus-Takt. Alle anderen Blöcke des Endpunkt-Controllers ver
wenden ausschließlich den lokalen Takt von 12 MHz. Datenbytes zwischen den Bereichen
werden bei der MAC-Benutzerschnittstelle mit einem asynchronen Handshake für jedes
übertragene Byte synchronisiert.
Der Endpunktcontroller minimiert die Anzahl der erforderlichen Speicherzugriffe. Nur bei
Empfang eines Tokens ist ein Speicherzugriff auf das Endpunktfeld notwendig. Ein einzelner
Doppelwort-Zugriff, zusammen mit dem systemeigenen Endpunktzustand, ist ausreichend,
damit der Endpunktkanal die Hostanfrage verarbeiten kann. Dieser Zugriff liest die Positions-
und Größeninformation für die Datenübertragung. Die Datenübertragung erfolgt in aufeinan
derfolgenden Doppelwort-Lese- oder Schreib-Operationen.
Das Modul hat die höchste Priorität auf dem Kernbus für Übertragungen, und die Übertra
gungsrate ist deutlich höher als die des USB. Es besteht somit eine minimale Notwendigkeit
der Datenpufferung innerhalb des Endpunkt-Cöntrollers, abgesehen von einem extra Wort,
um nachfolgende Zugriffe mit dem aktuellen Zugriff überlappen zu lassen. Ein Bytezähler
überwacht die Anzahl der Bytes, die übertragen werden. Der letzte Zugriff einer Übertragung
kann ein teilweises Lesen oder Schreiben des Speichers erfordern. Das teilweise Schreiben
des letzten Zugriffs wird von dem letzten Bytezählwert bestimmt. Am Ende einer Übertra
gung wird der Status für die Übertragung in das aktuelle Steuerwort geschrieben, und das an
dere Steuerwort für diesen Endpunkt wird gelesen, um zu überprüfen, ob ein weiterer Puffer
vorbereitet wurde. Nach den Steuerwort-Operationen wird der Zustand des Endpunktkanals
akualisiert.
Durch eine Kombination aus Hardware und Software unterstützt das UNIM alle drei USB
definierten Synchronisationsklassen, asynchron, synchron und adaptiv. Der Endpunkt-Con
troller sieht eine Hardwareunterstützung für die Überwachung des USB-Bustaktes von 1 kHz
im Verhältnis zu einem externen Bezugstakt, von z. B. 8 kHz, und zum Überwachen der
Qualität und Konsistenz des USB-Bustaktes von 1 kHz vor.
Steigende Flanken eines externen Bezugstaktes werden in dem Bezugs-Zählregister gezählt.
Es kann dazu verwendet werden, die USB-Blocknummer zu vergleichen. Die Frequenzdiffe
renz zwischen dem Bezugstakt und dem USB-Takt kann dem Host in Paketen signalisiert
werden, so daß der Host die USB-Bustaktfrequenz einstellen kann; somit kann der USB-Takt
mit dem Bezugstakt synchronisiert werden.
Der Endpunkt-Controller hält auch einen Status aufrecht, um anzuzeigen, wenn er zu dem
USB-Bustakt von 1 kHz sychronisiert ist und wenn aufgrund eines fehlenden oder falschen
Block-Anfang-Pakets eine Diskontinuität in dem USB-Bustakt auftritt. Er wird von der Soft
ware dazu verwendet, die Warteschlange der isochronen Pakete einzustellen. Die aktuelle
Blocknummer wird von dem Endpunkt-Controller dazu verwendet, zu ermitteln, welcher
isochrone Puffer als nächstes gesendet werden soll.
Es wird erwartet, daß eine USB-Einrichtung abhängig von dem Aussetzereignis, das auftritt,
nachdem 3 ms verstrichen sind, ohne daß irgendwelche Busaktivität erfaßt wurde, in den
Aussetzzustand geht. Das UNIM erfaßt dieses Ereignis und zeigt es dem CR32A an, indem
das ISR.SD Bit gesetzt und ein Interrupt gesendet wird, wenn es enabelt ist. Das CR32A
sollte abhängig davon das UNIM in den Aussetzzustand versetzen und nach 5 ms ohne Erfas
sung irgendwelcher Aktivität in den Haltemodus umschalten (ISR.SD5).
Im Aussetzzustand geht der Transceiver in einen speziellen Niederleistungsmodus, und die
Takte können unterbrochen werden. Der gespeicherte Zustand und das Kernbus-RAM bleiben
statisch, so daß bei der Wiederaufnahme keine weiteren Operationen notwendig sind.
Normandy kann aufgrund eines für den CR32A lokalen Ereignisses den Betrieb nach dem
Aussetzzustand wieder aufnehmen, wodurch seinerseits der USB-Bus über eine Fern-Wieder
aufnahme oder bei Erfassung eines Fern-Befehls auf dem USB-Bus, der den CR32A über die
MIWU unterbricht, geweckt werden kann.
Man beachte, daß eine Einrichtung im Aussetzbetrieb maximal 500 µA von dem Bus ziehen
darf, siehe "GERÄTESPEZIFIKATIONEN" auf Seite 3-55 für Einzelheiten des Stromver
brauchs von Normandy.
Wenn der Host Fernweckrufe von diesem Knoten enabelt hat, sendet Normandy einen sol
chen abhängig von einem lokalen Ereignis, wie einem Interrupt.
Wenn die Firmware das Ereignis erfaßt, nimmt sie die Prozessoraktivität im aktiven Modus
wieder auf. Sie weckt dann das UNIM aus dem Niederleistungs-Aussetzzustand und löst eine
Fernwiederaufnahme auf dem USB unter Verwendung des FSR-Registers aus. Die Knoten
firmware muß sicherstellen, daß wenigstens 5 ms Leerlauf auf dem USB stattfanden. Im Wie
deraufnahmezustand wird auf dem USB eine Konstante "K" angezeigt. Diese sollte wenig
stens 1 ms andauern, wobei danach der USB-Host damit fortfährt, das Wiederaufnahmesignal
während wenigstens zusätzlicher 20 ms zu senden, und dann die Wiederaufnahmeoperation
abschließt, indem er die Paketende-Sequenz ausgibt. Sollte innerhalb von 100 ms kein Paket
ende-Signal vom Host empfangen werden, sollte die Fernwiederaufnahme erneut durch Soft
ware gestartet werden.
Bei Erfassung eines Wiederaufnahme- oder Reset-Signals während des Aussetzzustands ist
das UNIM-Modul dafür verantwortlich, Normandy aufzuwecken. Dies erfolgt, indem das
UNIM ein Signal (ohne Beitrag irgendwelcher Takte) an die MIWU sendet, das die Erfassung
einer Wiederaufnahme auf dem USB anzeigt und den Normandy-Weckruf anfordert, um den
CR32A zu aktivieren und zu unterbrechen. Dabei werden die Takte für das USB-Modul er
neut enabelt, und der Rest des Chips wird aufgeweckt.
Die USB Spezifikation erfordert, daß eine Einrichtung innerhalb von 10 ms auf USB-Token
antworten kann.
Es gibt zwei Fälle, in denen dieser Knoten aktiviert werden kann; wenn der Knoten in einen
bereits aktivierten USB-Verteilerport eingesteckt wird, und wenn bei dem Verteilerknoten die
Energie eingeschaltet wird. Um eine Interoperabilität zwischen den Bus-Geräten zu erreichen,
erfordert die USB-Spezifikation, daß der Knoten innerhalb von 100 ms auf einen USB-Reset
reagiert können muß, nachdem die Energie eingeschaltet und beim Verteilerport stabil ist.
Ähnlich muß ein Knoten, der in Betrieb eingesteckt wird, auf ein USB-Reset innerhalb von
100 ms reagieren, nachdem seine Verbindung von einem Verteilerport erfaßt wurde. Der
USB-Reset wird während wenigstens 10 ms beibehalten. Nachdem der USB-Reset gelöst
wurde, liefert der Verteiler 100 mA Busleistung an das Gerät. Erst nachdem das Gerät konfi
guriert wurde, darf es die in der USB-Standardkonfiguration beschriebene Energiemenge auf
nehmen (bis zu 500 mA). Das UNIM führt eine USB-definierte, Bus-getriebene Hochlei
stungs-Funktion aus.
Das USB-Model enthält Register, die dazu verwendet werden, den Betrieb der USB-Ein
richtung und ein Endpunktfeld im Speicher zu steuern und zu überwachen, das zum Steuern
der Endpunkparameter verwendet wird, die für eine bestimmte Endpunktübertragung spezi
fisch sind. Die Beziehung zwischen den verschiedenen Registern und Speicherparametern ist
unten angegeben.
Das Endpuntkanalfeld besteht aus 32 Steuerworten, 2 für jeden Endpunktkanal. Das End
punktkanalfeld liegt im Speicher bei einer Adresse, auf die EABAR weist. Diese Adresse
muß eine ausgerichtete 128-Byte Adresse sein (d. h. 7 LSBs der Adresse sind 0). Das End
punktkanalfeld erhält über die 4-Bit Endkanalnummer einen Index, und das Steuerwort, auf
das zugegriffen wird, wird von dem 1-Bit Zeiger des Endpunktkanal-Steuerwortes bestimmt.
Zusammen erzeugen das 250-Bit EABR, das 4-Bit EP und das 1-Bit CW eine 32-Bit Adresse,
die zu einer Doppelwort-(32-Bit)Grenze ausgerichtet ist, und sie werden dazu verwendet, auf
das 32-Bit Steuerwort zuzugreifen. Das Format jedes Eintrags in der Tabelle ist unten be
schrieben.
Das 32-Bit Steuerwort enthält die gesamte Information, die zum Betreiben dieses Endpunkt
kanals notwendig ist, wenn er aktiv ist. Es gibt zwei solche Einträge für jeden Endpunktkanal.
Das Steuerwort, auf das als nächstes zugegriffen werden soll, wird von dem Wert des End
punktkanal-Steuerwortzeigers (CWP) bestimmt. Unmittelbar nach dem Empfang eines To
kens IN, OUT oder SETUP durch einen Endpunktkanal, der momentan in einem betriebsbe
reiten Zustand ist, wird das Steuerwort des ausgewählten Endpunktkanals bei dem aktuellen
Steuerwortzeiger gelesen, um zu ermitteln, wie auf den Token reagiert werden soll. Am Ende
einer Übertragung, wenn ein Beendigungsstaatus geschrieben wird, wird das Steuerwort mit
dem aktuellen Status aktualisiert, der CWP wird inkrementiert, und das nächste Steuerwort
wird gelesen. Wenn ein Zwischenstatus geschrieben wird, wird nur das höchstwertige Byte
des Steuerwortes aktualisiert.
4-Bit-Wert. Von Software und EPC aktualisiert, um die Steuerung dieses Puffers zwischen
ihnen zu synchronisieren. Der EPC schreibt den Status; der die Verwendung des EPCs angibt.
Dieses Feld wird von der Knoten-Firmware auf Ausgang bereit (Output Ready), Eingang be
reit (Input Ready) Setup bereit (Setup Ready), Überspringen (Skip), Unterbrechen (Stall) und
Disable eingestellt. Alle anderen Werte werden von dem EPC eingestellt. Der EPC kann auch
die Werte von Stall und Disable bei Fehlerbedingungen schreiben. Der Puffer kann von der
Knoten-Firmware wieder beansprucht werden, wenn der Pufferzustand den Wert eines Fertig-
Status hat; dies umfaßt den Eingabe/Ausgabe-Fertigstatus und die Fehler Codes.
0: Skip Skip. Wird zusammen mit dem Ausgabe-Fertigbefehl verwendet. Skip bewirkt, daß das nächste empfangene Datenpaket ignoriert und der Steuerwortzeiger inkrementiert wird. Bei Steuerendpunkten bewirkt es auch, daß der Endpunktkanalzustand von dem Eingabe/Ausgabe-Bereitzustand auf den Eingabe/Ausgabe-Wartezustand schaltet. Das Einstellen von TE und TI bestimmt, welche Quittung (Handshake) zurückgegeben wird, sowie den nächsten Zustand des Endpunktkanals. NAK wird zurückgegeben, wenn ent weder TE oder TI gesetzt ist. Wenn TI gesetzt ist und nicht TE, wird keine Quittung zu rückgegeben. Wenn TE gesetzt ist, wird ACK zurückgegeben, und ein vollständiger Sta tus wird geschrieben, wenn ein Paket mit der richtigen PID empfangen wird.
1: IRDY Input Ready (Eingang bereit). In den Puffer wurden Daten geschrieben, die ab hängig von einem IN-Token gesendet werden sollen.
2: ORDY Output Ready (Ausgang bereit). Der Puffer wurde für das Schreiben zugewiesen.
3: SRDY Setup Ready. Der Puffer wurde für das Schreiben zugewiesen. Dies wird nur wäh rend der ersten Übertragung von Steuerlese- und Schreiboperationen bei einem Steuer endpunkt verwendet. Es wird nur in das Steuerwort 0 geschrieben.
4: OWT Output Wait (Ausgabe warten). Gibt an, daß ein Fehler aufgetreten ist, während OUT-Daten von dem Host empfangen wurden. Dies umfaßt die Erfassung eines Bit- Stuffing-Fehlers. Ein erneuter Versuch wird erwartet, weil dies als Zwischenzustand be trachtet wird, außer in dem Fall eines isochronen OUT-Endpunkts, wo es als Beendi gungsstatus behandelt wird.
5: CRCE CRC Error. Gibt an, daß ein fehlerhafter CRC am Ende einer Ausgabetransaktion erfaßt wurde. Ein erneuter Versuch wird erwartet, weil dies als Zwischenzustand be trachtet wird, außer in dem Fall eines isochronen OUT-Endpunkts, wo es als ein Beendi gungszustand behandelt wird.
6: BUFE Buffer Error (Pufferfehler). Während einer Ausgabetransaktion, wurden Daten von dem USB schneller Empfangen, als sie in den Speicher geschrieben werden konnten. Während einer Eingabe wurden Daten aus dem Speicher nicht schnell genug gelesen, um mit der USB-Datenrate mitzuhalten. An diesem Endpunkt wird ein erneuter Versuch er wartet.
7: IWT Input Wait (Eingabe warten). Der Puffer wird von dem Endpunkt-Controller ange halten und wartet darauf, diesen Puffer bei der nächsten Gelegenheit zu senden oder er neut zu senden. Dies gilt für den Fall einer fehlenden Bestätigung (ACK).
8: ICMP Input Complete (Eingabe beendet). Erfolgreiche Beendigung der Eingabe- Operation. Der Puffer kann freigegeben werden.
9: OCMP Output Complete (Ausgabe beendet). Der Puffer ist mit Daten gefüllt, und es wurde kein Fehler erfaßt.
10: TKNE Token Error. Ein Token des falschen Typs für den momentanen Kontext des Steuerendpunktkanals wurde empfangen. Wenn es ein Ausgangspuffer war, wird der Endpunkt angehalten. Wenn es ein Eingangspuffer war, wird NAK gesendet, und der Zu stand des anderen Steuerworts wird untersucht. Dies wird als ein Beendigungsstatus an gesehen.
11: SYNE Iso Synchronisation Error. Daten wurden in einem Puffer mit TE = 1 und TI = 1 empfangen, der CWP war jedoch nicht gleich dem LSB des FNR. Dies wird als ein Be endigungsstatus angesehen.
12: DATE Data Error (Datenfehler). Für OUT-Daten, wenn CW.BR nicht gesendet wurde und die Menge der vom Host empfangenen Daten geringer als erwartet war oder der zu gewiesene Puffer war nicht groß genug, um die OUT-Daten zu speichern. Für Eingangs daten wird es gesetzt, wenn ein Pufferfehler aufgetreten ist und CW.TE nicht gesetzt oder CW.TI gesetzt war. Dies wird als ein Beendigungsstatus angesehen.
13: rsvd Reserviert.
14: HALT Halt. Bewirkt, daß der aktuelle Endpunktkanal in seinen Halt-Zustand geht, oder gibt an, daß der Endpunkt in den Halt-Zustand gegangen ist.
15: DIS Disable. Bewirkt, das der aktuelle Endpunktkanal in seinen Disable-Zustand geht, oder zeigt an, daß der Endpunktkanal in den Disable-Zustand gegangen ist.
TI Type isocbron. 1 isochron, 0 Steuerung, Bulk, Interrupt.
TE Toggle Enable. Wird zum Vergleichen/Erzeugen des Wertes des Datenpaket- Identifikators (PID) (Data0/Data1) mit dem Steuerwortzeiger verwendet.
0: Der Daten-Toggle-PID wird bei Ausgangstransaktionen nicht überprüft, und er wird gestützt auf den aktuellen Wert des CWP abhängig von IN-Token erzeugt. Der CWP wird nach jeder Transaktion inkrementiert (invertiert), selbst wenn kein ACK empfan gen wurde. Bei isochronen Endpunkten werden Ausgangsdaten nicht in den Speicher geschrieben, bis der CWP gleich dem niedrigstwertigem Bit der Blocknummer FNR.FN(0) ist. Dies hat keinen Einfluß auf Daten, die abhängig von IN-Token gesen det werden. Daten-Toggle sollte für Puffer nicht enabelt werden, die dafür bestimmt sind, mit dem SETUP-Token gesendete Daten zu empfangen.
1: Der Daten-Toggle-PID wird bei Ausgangstransaktionen überprüft und gestützt auf den aktuellen Wert von CWP abhängig von IN-Token erzeugt. Bei Ausgangstransak tionen wird ein ACK abhängig von Ausgangspaketen gesendet, deren PID-Wert (Data 0/1) nicht mit dem CWP übereinstimmt. Bei Eingangstransaktionen wird CWP nach jeder Transaktion nur inkrementiert (invertiert), wenn eine ACK-Quittung abhängig von einer Zeitablaufperiode zurückgegeben wurde. Bei isochronen Endpunkten wer den die Ausgangsdaten immer in den Speicher geschrieben, wenn jedoch FNR. FN(0) nicht gleich CWP ist, wird der ISO-Sync-Fehlerpufferzustand zurückgeschrieben.
BR Buffer Rounding (Pufferrundung). Gibt für Ausgangstransaktionen an, ob es zulässig ist, einen Puffer mit einer anderen Größe als der des empfangenen Datenpakets zu verwenden.
0: Das Datenpaket sollte den definierten Datenpuffer genau füllen. Der Pufferüberlauf- oder Unterlaufstatus wird zurückgegeben, wenn das Datenpaket nicht genau in den Puffer paßt.
1: Das Datenpaket kann kleiner als der definierte Puffer sein, ohne eine Fehlerbedin gung am Endpunkt zu erzeugen.
Wenn es zusammen mit einem Ausgabeende- oder Datenfehlerpuffer-Status gelesen wird, gibt dieses Feld den Wert des empfangenen PID an - 0 für Data0,1 für Data1.
IC Interrupt on Packet Complete (bei Paketende). Dies bewirkt, daß an diesem End punkt ein Ereignis gesetzt wird, (EER.EPn), wenn der Pufferstatus mit Eingabeende oder Ausgabeende beschrieben wird, bei einem Paketfehler, oder wenn der Endpunkt kanal unterbrochen wird.
IE Interrupt on Packet Error (bei Paketfehler). Dies bewirkt, daß an diesem Endpunkt ein Ereignis gesetzt wird (EER. Epn), wenn der Pufferzustand einem der Pufferfehler codes entspricht, oder wenn der Endpunkt unterbrochen wird. Wenn sowohl IC als auch IE gesetzt sind, bewirken auch CRC- und Bit-Stuffingfehler, daß ein Ereignis er zeugt wird und diese Puffer nicht mehr verwendet werden, wie im normalen Betrieb. Dies dient hauptsächlich der Diagnose.
res Reserviert. 1 Bit.
BP Buffer Page (Pufferseite).
0: Verwende Pufferseite A als obere Adresse des Eingabe/Ausgabepuffers.
1: Verwende Pufferseite B als obere Adresse des Eingabe/Ausgabepuffers.
BA Buffer Address (Pufferadresse). 11 Bit. Die unteren 11 Bit der Pufferadresse. Der Puffer muß bei einer ausgerichteten Doppelwortgrenze beginnen, und er kann bei jeder Byte-Grenze enden. Am Ende aller vollständigen Übertragungen wird der Restwert der Pufferadresse geschrieben. Am Ende unvollständiger Übertragungen, z. B. wenn der Status mit Eingab- oder Ausgabe-Warten beschrieben wird, wird dieses Feld nicht überschrieben. Bei OUT-Puffern ist das erste gespeicherte Byte das Byte, daß dem PID folgt. Ähnlich zeigt bei IN-Puffern die Adresse auf das erste Byte der zu übertra genden Daten, d. h. das Byte, das dem PID in dem Paket unmittelbar folgt. Der CRC wird automatisch berechnet und an das Paket angehängt, außer wenn der IN-Token aus dem IS RDY-Zustand empfangen wird und das IS-Feld des Steuerworts nicht auf 1 gesetzt ist.
BC Byte Count. 10 Bit. Die Größe des zu verwendenden Datenpuffers. Der Puffer beginnt bei einer geraden Doppelwortgrenze, und er kann bei jeder Bytegrenze enden. Bei IN- Transaktionen zeigt dies die Größe der zu übertragenden Daten an. Bei OUT- Transaktionen gibt dies die Größe des Puffers an, in dem Daten empfangen werden können. 0 ist ein zulässiger Wert für den Byte-Zählwert. Am Ende aller vollständigen Übertragungen wird der Restwert des Bytezählers geschrieben. Am Ende unvollstän diger Übertragungen, z. B. wenn der Zustand als Eingabe-Warten oder Ausgabe- Warten beschrieben wird, wird dieses Feld nicht überschrieben.
0: Skip Skip. Wird zusammen mit dem Ausgabe-Fertigbefehl verwendet. Skip bewirkt, daß das nächste empfangene Datenpaket ignoriert und der Steuerwortzeiger inkrementiert wird. Bei Steuerendpunkten bewirkt es auch, daß der Endpunktkanalzustand von dem Eingabe/Ausgabe-Bereitzustand auf den Eingabe/Ausgabe-Wartezustand schaltet. Das Einstellen von TE und TI bestimmt, welche Quittung (Handshake) zurückgegeben wird, sowie den nächsten Zustand des Endpunktkanals. NAK wird zurückgegeben, wenn ent weder TE oder TI gesetzt ist. Wenn TI gesetzt ist und nicht TE, wird keine Quittung zu rückgegeben. Wenn TE gesetzt ist, wird ACK zurückgegeben, und ein vollständiger Sta tus wird geschrieben, wenn ein Paket mit der richtigen PID empfangen wird.
1: IRDY Input Ready (Eingang bereit). In den Puffer wurden Daten geschrieben, die ab hängig von einem IN-Token gesendet werden sollen.
2: ORDY Output Ready (Ausgang bereit). Der Puffer wurde für das Schreiben zugewiesen.
3: SRDY Setup Ready. Der Puffer wurde für das Schreiben zugewiesen. Dies wird nur wäh rend der ersten Übertragung von Steuerlese- und Schreiboperationen bei einem Steuer endpunkt verwendet. Es wird nur in das Steuerwort 0 geschrieben.
4: OWT Output Wait (Ausgabe warten). Gibt an, daß ein Fehler aufgetreten ist, während OUT-Daten von dem Host empfangen wurden. Dies umfaßt die Erfassung eines Bit- Stuffing-Fehlers. Ein erneuter Versuch wird erwartet, weil dies als Zwischenzustand be trachtet wird, außer in dem Fall eines isochronen OUT-Endpunkts, wo es als Beendi gungsstatus behandelt wird.
5: CRCE CRC Error. Gibt an, daß ein fehlerhafter CRC am Ende einer Ausgabetransaktion erfaßt wurde. Ein erneuter Versuch wird erwartet, weil dies als Zwischenzustand be trachtet wird, außer in dem Fall eines isochronen OUT-Endpunkts, wo es als ein Beendi gungszustand behandelt wird.
6: BUFE Buffer Error (Pufferfehler). Während einer Ausgabetransaktion, wurden Daten von dem USB schneller Empfangen, als sie in den Speicher geschrieben werden konnten. Während einer Eingabe wurden Daten aus dem Speicher nicht schnell genug gelesen, um mit der USB-Datenrate mitzuhalten. An diesem Endpunkt wird ein erneuter Versuch er wartet.
7: IWT Input Wait (Eingabe warten). Der Puffer wird von dem Endpunkt-Controller ange halten und wartet darauf, diesen Puffer bei der nächsten Gelegenheit zu senden oder er neut zu senden. Dies gilt für den Fall einer fehlenden Bestätigung (ACK).
8: ICMP Input Complete (Eingabe beendet). Erfolgreiche Beendigung der Eingabe- Operation. Der Puffer kann freigegeben werden.
9: OCMP Output Complete (Ausgabe beendet). Der Puffer ist mit Daten gefüllt, und es wurde kein Fehler erfaßt.
10: TKNE Token Error. Ein Token des falschen Typs für den momentanen Kontext des Steuerendpunktkanals wurde empfangen. Wenn es ein Ausgangspuffer war, wird der Endpunkt angehalten. Wenn es ein Eingangspuffer war, wird NAK gesendet, und der Zu stand des anderen Steuerworts wird untersucht. Dies wird als ein Beendigungsstatus an gesehen.
11: SYNE Iso Synchronisation Error. Daten wurden in einem Puffer mit TE = 1 und TI = 1 empfangen, der CWP war jedoch nicht gleich dem LSB des FNR. Dies wird als ein Be endigungsstatus angesehen.
12: DATE Data Error (Datenfehler). Für OUT-Daten, wenn CW.BR nicht gesendet wurde und die Menge der vom Host empfangenen Daten geringer als erwartet war oder der zu gewiesene Puffer war nicht groß genug, um die OUT-Daten zu speichern. Für Eingangs daten wird es gesetzt, wenn ein Pufferfehler aufgetreten ist und CW.TE nicht gesetzt oder CW.TI gesetzt war. Dies wird als ein Beendigungsstatus angesehen.
13: rsvd Reserviert.
14: HALT Halt. Bewirkt, daß der aktuelle Endpunktkanal in seinen Halt-Zustand geht, oder gibt an, daß der Endpunkt in den Halt-Zustand gegangen ist.
15: DIS Disable. Bewirkt, das der aktuelle Endpunktkanal in seinen Disable-Zustand geht, oder zeigt an, daß der Endpunktkanal in den Disable-Zustand gegangen ist.
TI Type isocbron. 1 isochron, 0 Steuerung, Bulk, Interrupt.
TE Toggle Enable. Wird zum Vergleichen/Erzeugen des Wertes des Datenpaket- Identifikators (PID) (Data0/Data1) mit dem Steuerwortzeiger verwendet.
0: Der Daten-Toggle-PID wird bei Ausgangstransaktionen nicht überprüft, und er wird gestützt auf den aktuellen Wert des CWP abhängig von IN-Token erzeugt. Der CWP wird nach jeder Transaktion inkrementiert (invertiert), selbst wenn kein ACK empfan gen wurde. Bei isochronen Endpunkten werden Ausgangsdaten nicht in den Speicher geschrieben, bis der CWP gleich dem niedrigstwertigem Bit der Blocknummer FNR.FN(0) ist. Dies hat keinen Einfluß auf Daten, die abhängig von IN-Token gesen det werden. Daten-Toggle sollte für Puffer nicht enabelt werden, die dafür bestimmt sind, mit dem SETUP-Token gesendete Daten zu empfangen.
1: Der Daten-Toggle-PID wird bei Ausgangstransaktionen überprüft und gestützt auf den aktuellen Wert von CWP abhängig von IN-Token erzeugt. Bei Ausgangstransak tionen wird ein ACK abhängig von Ausgangspaketen gesendet, deren PID-Wert (Data 0/1) nicht mit dem CWP übereinstimmt. Bei Eingangstransaktionen wird CWP nach jeder Transaktion nur inkrementiert (invertiert), wenn eine ACK-Quittung abhängig von einer Zeitablaufperiode zurückgegeben wurde. Bei isochronen Endpunkten wer den die Ausgangsdaten immer in den Speicher geschrieben, wenn jedoch FNR. FN(0) nicht gleich CWP ist, wird der ISO-Sync-Fehlerpufferzustand zurückgeschrieben.
BR Buffer Rounding (Pufferrundung). Gibt für Ausgangstransaktionen an, ob es zulässig ist, einen Puffer mit einer anderen Größe als der des empfangenen Datenpakets zu verwenden.
0: Das Datenpaket sollte den definierten Datenpuffer genau füllen. Der Pufferüberlauf- oder Unterlaufstatus wird zurückgegeben, wenn das Datenpaket nicht genau in den Puffer paßt.
1: Das Datenpaket kann kleiner als der definierte Puffer sein, ohne eine Fehlerbedin gung am Endpunkt zu erzeugen.
Wenn es zusammen mit einem Ausgabeende- oder Datenfehlerpuffer-Status gelesen wird, gibt dieses Feld den Wert des empfangenen PID an - 0 für Data0,1 für Data1.
IC Interrupt on Packet Complete (bei Paketende). Dies bewirkt, daß an diesem End punkt ein Ereignis gesetzt wird, (EER.EPn), wenn der Pufferstatus mit Eingabeende oder Ausgabeende beschrieben wird, bei einem Paketfehler, oder wenn der Endpunkt kanal unterbrochen wird.
IE Interrupt on Packet Error (bei Paketfehler). Dies bewirkt, daß an diesem Endpunkt ein Ereignis gesetzt wird (EER. Epn), wenn der Pufferzustand einem der Pufferfehler codes entspricht, oder wenn der Endpunkt unterbrochen wird. Wenn sowohl IC als auch IE gesetzt sind, bewirken auch CRC- und Bit-Stuffingfehler, daß ein Ereignis er zeugt wird und diese Puffer nicht mehr verwendet werden, wie im normalen Betrieb. Dies dient hauptsächlich der Diagnose.
res Reserviert. 1 Bit.
BP Buffer Page (Pufferseite).
0: Verwende Pufferseite A als obere Adresse des Eingabe/Ausgabepuffers.
1: Verwende Pufferseite B als obere Adresse des Eingabe/Ausgabepuffers.
BA Buffer Address (Pufferadresse). 11 Bit. Die unteren 11 Bit der Pufferadresse. Der Puffer muß bei einer ausgerichteten Doppelwortgrenze beginnen, und er kann bei jeder Byte-Grenze enden. Am Ende aller vollständigen Übertragungen wird der Restwert der Pufferadresse geschrieben. Am Ende unvollständiger Übertragungen, z. B. wenn der Status mit Eingab- oder Ausgabe-Warten beschrieben wird, wird dieses Feld nicht überschrieben. Bei OUT-Puffern ist das erste gespeicherte Byte das Byte, daß dem PID folgt. Ähnlich zeigt bei IN-Puffern die Adresse auf das erste Byte der zu übertra genden Daten, d. h. das Byte, das dem PID in dem Paket unmittelbar folgt. Der CRC wird automatisch berechnet und an das Paket angehängt, außer wenn der IN-Token aus dem IS RDY-Zustand empfangen wird und das IS-Feld des Steuerworts nicht auf 1 gesetzt ist.
BC Byte Count. 10 Bit. Die Größe des zu verwendenden Datenpuffers. Der Puffer beginnt bei einer geraden Doppelwortgrenze, und er kann bei jeder Bytegrenze enden. Bei IN- Transaktionen zeigt dies die Größe der zu übertragenden Daten an. Bei OUT- Transaktionen gibt dies die Größe des Puffers an, in dem Daten empfangen werden können. 0 ist ein zulässiger Wert für den Byte-Zählwert. Am Ende aller vollständigen Übertragungen wird der Restwert des Bytezählers geschrieben. Am Ende unvollstän diger Übertragungen, z. B. wenn der Zustand als Eingabe-Warten oder Ausgabe- Warten beschrieben wird, wird dieses Feld nicht überschrieben.
Um den Betrieb und die Steuerung aufrechtzuerhalten, hält jeder Endpunktkanal einen Zu
stand mit genau definierten Bedingungen für Übertragungen zwischen den Zuständen auf
recht, die eine implizite Hardware/Software-Synchronisierung benötigen. Endpunktkanal-
Zustandsübergänge treten auf:
- - bei expliziten Softwarebefehlen an einen Endpunkt über das Endpunktbefehlsregister (ECR)
- - durch Lesen des Pufferstatus des anderen Puffers in dem anderen Steuerwort für diesen Endpunkt am Ende einer Übertragung, und
- - als eine Folge von Ereignissen auf dem USB, wie dem Empfang von IN, OUT und SETUP-Token und ACK-Quittungen.
Fig. 2-4 zeigt eine vereinfache Endpunktkanal-Ablaufsteuereinrichtung zum Verarbeiten
von IN und OUT-Transaktionen. Die Verarbeitung von Steuer-Lese- und Schreibtransaktio
nen erfolgt auf ähnliche Weise.
Der aktuelle Endpunktkanalzustand ist im Endpunktzustandsregister sichtbar, auf das über
den USB-Index und Datenregister zugegriffen werden kann. Maximal ist immer ein End
punktkanal zu einer gegebenen Zeit in einem der aktiven Zustände. Dies ermöglicht eine ge
meinsame Nutzung der aktiven Zustandslogik durch alle Endpunktkanäle.
Disable. Der Disable-Zustand wird bei einem Reset, bei einem Disable-Befehl an diesen
Endpunktkanal und bei Erfassung eines Disable-Zustands im Pufferzustand eines Steuerwor
tes ausgelöst. Jeder Token, der von diesem Endpunktkanal empfangen wird, während er in
diesem Zustand ist, wird ohne Handshake zurückgegeben. Ein Eingreifen mittels Software ist
notwendig, um den Endpunktkanal aus diesem Zustand zu holen, üblicherweise über einen
Enable-Befehl an einen der Wartezustände.
Halt. Der Halt-Zustand wird aktiviert, wenn der Stall-Befehl (Unterbrechen) an den End
punktkanal geht, wenn ein Stall-Zustand im Pufferzustand eines Steuerworts erfaßt wird, so
wie bei bestimmten Fehlerbedingungen. Jeder von diesem Endpunktkanal empfangene Token
wird als Stall-Handshake zurückgegeben, während dieser in diesem Zustand ist, um anzuzei
gen, daß der Endpunkt momentan unterbrochen ist. Ein Eingreifen mittels Software ist erfor
derlich, um den Endpunktkanal aus diesem Zustand zu bringen, üblicherweise über einen En
ablebefehl an einen der Wartezustände.
Input Idle I_IDL. In diesem Zustand erwartet der Endpunkt, daß bald ein Puffer zugewiesen
wird. Ein NAK-Handshake wird zurückgegeben, wenn ein IN-Token auf diesen Endpunktka
nal abgebildet wird. Keine Antwort wird bei Out-Token von diesem Endpunktkanal zurück
gegeben.
Input Ready I_RDY. Dieser Zustand wird über einen Eingang-Bereit-Befehl an diesen End
punktkanal oder bei Erfassung eines anderen Eingabepuffers am Ende einer Übertragung ak
tiviert. Der Befehl sollte nur erfolgen, nachdem diesem Endpunkt ein Puffer zugewiesen wur
de, indem das Steuerwort bei der richtigen Position in dem Endpunktfeld geschrieben wird.
Diese Steuerwort sollte auf einen Datenpuffer zeigen, der Daten enthält, die abhängig von
dem nächsten IN-Token, welcher von diesem Endpunktkanal empfangen wird, an den Host
zurückgegeben werden sollen. Der PID-Wert wird als Data0 übertragen, wenn CWP gleich 0
ist, und als Data1, wenn CWP gleich 1 ist.
Input Aetive I_ACT. Dieser Zustand wird bei Empfang eines IN-Tokens aktiviert, wenn der
ausgewählte Endpunktzustand momentan Eingang-Bereit ist. In diesem Zustand werden Da
ten von dem Speicher an den USB übertragen. Bei Beendigung der Datenübertragung sollte
ein ACK-Handshake innerhalb von 16 Bitzeiten empfangen werden. Am Ende dieser Zeitab
laufperiode wird der Pufferwartezustand in das Steuerwort zurückgeschrieben, wenn kein
ACK empfangen wurde. Der Adreß- und Bytezähler werden jedoch nicht überschrieben, weil
eine erneute Übertragung erfolgt und die momentanen Werte nicht neu verwendet werden
müssen. Wenn ein ACK empfangen wird, werden der Pufferstatus zusammen mit dem aktu
ellen Wert des Adreß- und Bytezählers geschrieben. Dann wird das andere Steuerwort an die
sem Endpunkt gelesen, um den nächsten Zustand des Endpunktes zu ermitteln, der das näch
ste Mal verwendet werden soll, wenn ein Token an diesen Endpunktkanal gerichtet wird.
Wenn dieser Endpunkt für eine Steuerübertragung verwendet wird, kann ein Übergang zu
dem Ausgang-Bereit- oder Ausgang-Ruhe-Zustand erfolgen, um die Statusphase der Steuer-
Leseübertragung zu beenden.
Input ISO Ready IS_RDY. Dieser Zustand wird über einen Eingang-Bereit-Befehl an diesen
Endpunktkanal oder bei Erfassung eines weiteren Eingangspuffers am Ende einer Übertra
gung aktiviert. Der Befehl sollte nur erfolgen, nachdem diesem Endpunkt ein Puffer zugewie
sen wurde, indem das Steuerwort an die geeignete Stelle in dem Endpunktfeld geschrieben
wird. Dieses Steuerwort sollte zu einem Datenpuffer weisen, der Daten enthält, die abhängig
von dem nächsten, von diesem Endpunktkanal empfangenen IN-Token an den Host zurück
gegeben werden sollen. Der PID-Wert wird unabhängig vom Wert des CWP immer als DAT0
übertragen.
Input ISO Active IS_ACT. Dieser Zustand wird bei Empfang eines iN-Tokens aktiviert,
wenn der ausgewählte Endpunktzustand Eingang-momentan-bereit ist. Während dieses Zu
stands werden Daten vom Speicher zu dem USB übertragen. Bei Beendigung der Datenüber
tragung werden der Pufferstatus zusammen mit dem aktuellen Wert des Adreß- und Bytezäh
lers am Ende der Übertragung geschrieben. Dann wird das andere Steuerwort bei diesem
Endpunkt gelesen, um den nächsten Zustand des Endpunktes zu bestimmen, der das nächste
Mal verwendet werden soll, wenn ein Token an diesen Endpunktkanal gerichtet wird.
Output Idle O_IDL. In diesem Zustand erwartet der Endpunkt, daß bald ein Puffer zugewie
sen wird. Ein NAK-Handshake wird zurückgegeben, wenn ein OUT-Token auf diesen End
punktkanal abgebildet wird. Keine Antwort wird zurückgegeben, wenn IN-Token an diesen
Endpunktkanal gehen.
Output Ready O_RDY. Dieser Zustand wird aktiviert, nachdem dem Endpunktkanal ein
Puffer zugewiesen wurde, in den Daten geschrieben werden sollen. Er kann über einen Aus
gangs-Bereit-Befehl von dem O_IDL-Zustand aktiviert werden, nachdem das passende Wort
aus dem Endpunktfeld geschrieben wurde, oder bei Erfassung eines weiteren Ausgabepuffers
am Ende einer Übertragung.
Output Active O_ACT. Dieser Zustand wird bei Empfang eines OUT-Tokens aktiviert.
Während dieses Zustandes werden Daten von dem USB in den Speicher geschrieben. Am
Ende einer Ausgangsübertragung wird der Status in das Steuerwort bei dem CWP geschrie
ben. Wenn die Übertragung nicht erfolgreich war, d. h. wenn ein CRC oder Bitstuffing-Fehler
erfaßt wurde, wird dies als Pufferstatus geschrieben. Wenn die Übertragung erfolgreich war,
wird der Ausgabe-Beendet-Pufferstatus geschrieben, CWP wird invertiert, und das andere
Steuerwort für diesen Endpunktkanal wird gelesen. Gestützt auf den Pufferzustand erfolgt der
richtige Übergang. Wenn dieser Endpunkt für eine Steuerübertragung verwendet wird, kann
ein Übergang zu dem Eingang-Bereit- oder zu dem Eingang-Warte-Zustand erfolgen, um die
Statusphase einer Steuer-Schreibübertragung zu beenden.
Output ISO Idle OS_IDL. In diesem Zustand erwartet der Endpunkt, daß bald ein Puffer
zugewiesen wird. Kein Handshake wird zurückgegeben, wenn ein OUT-Token auf diesen
Endpunkt ausgebildet wird. Keine Daten oder Handshakes wird bei IN-Token auf diesem
Endpunktkanal zurückgegeben.
Output ISO Ready OS_RDY. Dieser Zustand wird aktiviert, nachdem diesem Endpunktka
nal ein Puffer zugewiesen wurde, in den Daten geschrieben werden sollen. Er kann über einen
OS-Bereit-Befehl von dem OS_IDL-Zustand aktiviert werden, nachdem das entsprechende
Wort aus dem Endpunktfeld geschrieben wurde, oder bei Erfassung eines weiteren Ausgabe
puffers am Ende einer Übertragung.
Output ISO Active OS_ACT. Dieser Zustand wird bei Empfang eines OUT-Tokens von
dem OS_RDY-Zustand aktiviert. Während dieses Zustandes werden Daten in dem USB in
den Speicher geschrieben. Am Ende einer Ausgangsübertragung wird der Status bei dem
CWP in das Steuerwort geschrieben. Wenn die Übertragung nicht erfolgreich war, d. h. wenn
ein CRC oder Bitstuffing-Fehler erfaßt wurde, wird dies als der Pufferstatus geschrieben.
Wenn die Übertragung erfolgreich war, wird der Ausgabe-Beendet-Pufferstatus geschrieben.
Am Ende der Statusübertragung wird CWP invertiert, und das andere Steuerwort für diesen
Endpunktkanal wird gelesen. Der richtige Übergang erfolgt gestützt auf den Pufferzustand.
Setup Ready S_RDY. Dieser Zustand wird aktiviert, nachdem diesem Endpunktkanal ein
Puffer zugewiesen wurde, in den Daten geschrieben werden sollen. Dieser Zustand wird über
einen Setup-Bereit-Befehl aktiviert, nachdem das richtige Wort aus dem Endpunktfeld ge
schrieben wurde, oder bei Erfassung des Setup-Bereit-Pufferzustands.
Setup Active S_ACT. Dieser Zustand wird bei Empfang eines Setup-Tokens von dem Setup-
Bereit-Zustand aktiviert. In diesem Zustand werden Daten von dem USB in den Speicher ge
schrieben. Am Ende einer Ausgangsübertragung wird der Status bei CWP in das Steuerwort
geschrieben, CWP wird invertiert, und das andere Steuerwort für diesen Endpunktkanal wird
gelesen. Der richtige Übergang erfolgt gestützt auf den Pufferzustand zu Ausgang-Warten,
Ausgang-Bereit, Eingang-Warten oder Eingang-Bereit, abhängig vom Typ der Steuerübertra
gung und des gelesenen Pufferzustands.
Nach dem Reset werden alle Endpunkte disabelt. Ein Endpunkt wird enabelt, indem ein En
able-Befehl an den Endpunkt geschickt wird. Dies sollte nur erfolgen, wenn die Eingabe-
und/oder Ausgabepuffer diesem Endpunkt bald zugewiesen werden. Alle Endpunkte, die
momentan nicht auf einem Endpunktkanal abgebildet sind, werden als disabelt angesehen.
Die Software weist den Endpunktkanälen Puffer nach Bedarf zu. Nachdem jeder Puffer zu
gewiesen ist, führt er den Eingang- oder Ausgang-Bereit-Befehl an dem Endpunktkanal
durch. Wenn der Endpunktkanal momentan im Ruhezustand ist, geht er in den geeigneten
Bereit-Zustand. Wenn der Endpunktkanal momentan in einem Bereit- oder Aktiv-Zustand ist,
ignoriert er alle Befehle außer den Disable- und Stall-Befehlen an den Endpunktkanal, die er
sofort verarbeitet. Die Software muß diese Schreiboperation durchführen, um mögliche Syn
chronisierungsprobleme zu verhindern, weil die Behandlung des Endpunktkanals durch das
UNIM zu den Softwareoperationen asynchron erfolgt.
Da jedem Endpunkt bis zu zwei Puffer zugewiesen werden können, kann der nächste Puffer
vorbereitet werden, während der aktuelle abgearbeitet wird, um die Datenübertragung zu be
schleunigen und unnötige NAK-Handshakes zu vermeiden.
Beim Lesen sollten Daten aus reservierten Registern ignoriert werden, und beim Schreiben
sollten diese Bits auf 0 geschrieben werden. - Dieser Vermerk ist in dem Chip global gültig.
Ein ein Wort breites Lese/Schreibregister. Das Gerätesteuerregister steuert die Einschaltse
quenz des USB-Knotens. Bei einem Reset wird dieses Register gelöscht. Das DCR-
Registerformat ist unten angegeben:
NAT. Node Attached (Knoten angeschlossen). Gibt an, daß dieser Knoten bereit ist und als
an den USB angeschlossen erfaßt werden kann. Wenn es nicht gesetzt ist, erzwingt der
Transceiver, daß das SEO an dem USB-Port verhindert, daß der Verteiler (Hub), mit dem die
ser Knoten verbunden ist, eine Verbindung erfaßt. Nach einem Reset ist es nicht gesetzt, so
daß das Gerät Zeit hat, bevor es auf Befehle reagieren muß. Nachdem dieses Bit gesetzt ist,
steuert das Gerät den USB nicht mehr an und sollte bereit sein, Reset-Befehle von dem Ver
teiler zu empfangen.
ECE. Endpunkt Controller Enable. Enabelt den Betrieb der Endpunktkanäle des Endpunkt
controllers, der die Endpunktfeld-Basisadresse und die Einstellung des Kanalabbildungs-
Auswahlregisters verwendet. Wenn nicht gesetzt, werden alle Endpunkte als disabelt ange
nommen.
DEF 0-3. Default Address (Voreinstellungsadresse) 0-3. Enabelt die Voreinstellungsadresse
und ignoriert den aktuellen Wert von FA. Dieses Bit wird gelöscht, wenn das entsprechende
Adreß-Enable-Bit (AE) gesetzt wird, wenn das nächste Mal ein ACK abhängig von dem
nächsten IN-Token empfangen wird, der seinerseits von einem Endpunktkanal empfangen
wird, der für Steueroperationen verwendet wird. Wenn kein ACK innerhalb der Zeitablaufpe
riode empfangen wird, wird das nächste Mal auch dieses Bit zurückgesetzt, wenn ein Setup
unmittelbar vor dem neuen Adreßfeld empfangen wird.
Man beachte, daß dann, wenn mehr als eine Adresse unterstützt wird, das niedrigstwertige
DEF-Bit, für das das entsprechende AE-Bit gesetzt ist, das DEF-Bit ist, das beim nächsten
Eintritt in den aktiven Eingabezustand auf einem Steuerendpunktkanal gelöscht wird. Es wird
empfohlen, daß dann, wenn mehrere Funktionsadressen zugewiesen werden, dies von der
niedrigsten zur höchsten Zahl erfolgt.
EPMS. Endpoint Pipe Map Select (Endpunktkanal-Abbildungsauswahl). Wählt die aktuelle
Einstellung der Kanalabbildungstabelle aus. Eine Funktionsadreßübereinstimmung wird als
gültig betrachtet, wenn das entsprechende AE-Bit gesetzt ist und das entsprechende DEF-Bit
nicht gesetzt ist und die empfangene Adresse mit dem FA übereinstimmt. Wenn das DEF-Bit
gesetzt ist, wird eine Übereinstimmung angenommen, wenn die 0-Adresse empfangen wird.
Sollte mehr als eine Adresse realisiert sein, hat im Falle, daß mehrere DEF-Bits gesetzt sind,
die niedrigste Zahl Priorität. In dem UNIM wird das Blocknummernregister als der SOF-
Kanal (Paketanfang) angesehen. Bei anderen Ausführungsformen ist denkbar, sie an andere
SOF-Kanäle zu senden.
ETE. External Transceiver Enable. Enabelt die Verwendung eines externen USB-
Transceivers, im Gegensatz zu dem internen USB-Transceiver. Die Voreinstellung ist 0.
Wenn sie nicht enabelt sind, werden alle Ausgaben der externen Transceiver-Schnittstelle
bestätigt und alle Eingaben werden ignoriert. Dieses Bit kann nur modifiziert werden, wenn
der Funktionszustand rückgesetzt ist (FSR.FS = 0).
SFM. Short Frame (Kurzblock) Enable. Enabelt die Verwendung kürzerer Blockgrößen.
Dies wird exklusiv für die Diagnose und Prüfung verwendet, um die Zeit zum Emulieren ei
nes gesamten Blockes zu reduzieren.
DIAG. Diagnostic Mode (Dioagnosemodus). Enabelt den Diagnosemodus, in dem zusätzli
che Diagnosefunktionen zugänglich sind. Dies umfaßt den Zugriff auf Diagnoseregister und
die Möglichkeit in solche Register, wie das TCR (siehe unten), zu schreiben.
Ein ein Wort breites Lese/Schreibregister. Es wird zum Steuern des Funktionszustands des
Gerätes verwendet. Beim Reset wird dieses Register gelöscht. Das FSR-Registerformat ist
unten angegeben:
FS1, FS0 wird von der Software verwendet, um den Funktionszustand des Gerätes zu steuern.
00: USB-Reset: Dies ist der USB-Reset-Zustand. Er wird bei einem Modulreset oder
mittels Software bei Erfassung eines USB-Resets aktiviert. Bei Aktivierung wer
den alle Endpunktkanäle disabelt. DCR.DEF und DCR.AE sollten mittels Soft
ware bei Aktivierung dieses Zustandes gelöscht werden. Bei Verlassen dieses Zu
standes sollte DCR.DEF gesetzt werden, so daß das Gerät auf die voreingestellte
Adresse anspricht.
01: Resume. In diesem Zustand wird eine Wiederaufnahme-"K"-Signal erzeugt. Die ser Zustand wird abhängig von einer externen Weckanforderung von dem Gerät aktiviert. Der Knoten muß während wenigstens einer Millisekunde in diesem Zu stand sein und darf nicht länger als fünfzehn Millisekunden in diesem Zustand bleiben.
10: Operational. Dies ist der normale Betriebszustand. In diesem Zustand ist der Knoten für den Betrieb auf dem USB konfiguriert.
11: Suspend. Der Aussetzzustand wird bei Erfassung eines Aussetzereignisses wäh rend des Betriebszustandes aktiviert. Während des Aussetzzustandes arbeiten die Transceiver in ihrem Niederleistungs-Aussetzmodus, und es ist zulässig, Takte von dem USB-Modul zu nehmen, um zusätzlich Energie zu sparen. Alle End punktfeld- und interne Zustände bleiben konserviert. Bei Erfassung von Busakti vität werden die Takte wieder aufgenommen, und das Bit ISR.RSMD wird ge setzt. Davon abhängig kann Software den Wiedereintritt in den Betriebszustand bewirken. Bei Erfassung einer externen Weckanforderung durch das Gerät löst die Software die Fernwiederaufnahme aus und erzwingt den Eintritt in den Wieder aufnahmezustand.
01: Resume. In diesem Zustand wird eine Wiederaufnahme-"K"-Signal erzeugt. Die ser Zustand wird abhängig von einer externen Weckanforderung von dem Gerät aktiviert. Der Knoten muß während wenigstens einer Millisekunde in diesem Zu stand sein und darf nicht länger als fünfzehn Millisekunden in diesem Zustand bleiben.
10: Operational. Dies ist der normale Betriebszustand. In diesem Zustand ist der Knoten für den Betrieb auf dem USB konfiguriert.
11: Suspend. Der Aussetzzustand wird bei Erfassung eines Aussetzereignisses wäh rend des Betriebszustandes aktiviert. Während des Aussetzzustandes arbeiten die Transceiver in ihrem Niederleistungs-Aussetzmodus, und es ist zulässig, Takte von dem USB-Modul zu nehmen, um zusätzlich Energie zu sparen. Alle End punktfeld- und interne Zustände bleiben konserviert. Bei Erfassung von Busakti vität werden die Takte wieder aufgenommen, und das Bit ISR.RSMD wird ge setzt. Davon abhängig kann Software den Wiedereintritt in den Betriebszustand bewirken. Bei Erfassung einer externen Weckanforderung durch das Gerät löst die Software die Fernwiederaufnahme aus und erzwingt den Eintritt in den Wieder aufnahmezustand.
Man beachte: Bei Realisierungsformen mit der HUB-Funktion (Verteiler) kann der Übergang
vom Aussetzen zum Wiederaufnehmen und vom Wiederaufnehmen zum Betrieb automatisch
erfolgen. Bei der Schnittstellendefinition sollten Vorkehrungen für Signale getroffen werden,
welche die Zeitbereiche überschreiten, um diese Übergange zu erzeugen.
Ein ein Wort breites Lese/Schreib-Register. Dieses Register steuert den Betrieb des Transcei
vers. Die unsymmetrischen Empfängerschwellwerte und die Treiberflankensteigungen kön
nen eingestellt werden. Dieses Register kann nur modifiziert werden, wenn DCR.DIAGE 1
ist. Bei HUB-Ausführungsformen steuert dieses Register alle Transceiver. Der Rücksetzwert
ist {8'b00000000, 3'b100, 5'b10000}. Das TCR-Registerformat ist unten gezeigt:
VADJ Spannungsschwellwert-Einstellung. Steuert die unsymmetrischen Empfänger
schwellwerte.
CADJ Stromeinstellung. Steuert den Steuerstrom für die Treiberflankensteigung.
Ein doppelwortbreites Lese/Schreibregister. Enthält das Adreß-Enablebit und die sieben Bit
breite USB-Funktionsadresse, die während des normalen Betriebs verwendet wird, nachdem
alle Setup-Operationen beendet sind. Bei einem USB-Reset wird dieses Register gelöscht. Bis
zu vier Funktionsadressen können in diesem Register unterstützt werden - FA0 bis FA3. Das
FAR-Registerformat ist unten gezeigt:
[Entwurfsverbesserung für Mehrfachendpunktgerät]
FA[6:0] Funktionsadresse. Die 7 Bit breite Funktionsadresse wird von diesem Gerät ver
wendet.
AE Adreß-Enable. Enäbelt die Verwendung der Funktionsädresse; die in FAR gesetzt ist,
wenn das entsprechende Voreinstellungsadreßbit (DEF) nicht gesetzt ist.
40381 00070 552 001000280000000200012000285914027000040 0002019900325 00004 40262
Ein ein Wort breites Lese/Schreibregister. ECD wird verwendet, um Befehle bei einem spezi
fizierten Endpunkt auszuführen. Bei einem Reset wird dieses Register gelöscht. Das ECR-
Registerformat ist unten gezeigt:
CMD Command. Dieser Befehl betrifft den Betrieb eines Endpunktes. Ein Wert 0 zeigt an,
daß der Befehlsprozessor bereit für den nächsten Befehl ist.
0000: Complete. Gibt an, daß der vorhergehende Befehl abgeschlossen ist und der Endpunktcontroller bereit ist, einen weiteren Befehl anzunehmen.
0001: Input Enable. Bewirkt, daß der spezifizierte Endpunktkanal aus dem Stall- oder Disable-Zustand in den Eingang-Wartezustand geht. Der Steuerwortzeiger für den spezifizierten Endpunktkanal wird auf 0 zurückgesetzt. Wenn der aktuelle Zustand nicht Disable oder Stall ist, wird ein "F" zurückgegeben, um anzuzei gen, daß ein unzulässiger Befehl bei diesem Endpunkt versucht wurde, und der Befehl wird ignoriert.
0010: Input Ready. Bewirkt, daß der spezifizierte Endpunktkanal in den Eingang- Bereit-Zustand geht, wenn er momentan in dem Eingang-Warte-Zustand ist. Dieser Befehl wird nach einem Steuerwort ausgegeben, wobei ein Eingang- Bereit-Pufferzustand in das Endpunktfeld für den entsprechenden Endpunkt ge schrieben wird.
Dieser Befehl bewirkt nicht, daß das Steuerwort in dem Speicher gelesen wird, sondern er erlaubt vielmehr, daß es abhängig von dem Empfang eines IN- Tokens gelesen wird. Wenn der aktuelle Zustand des Endpunkts nicht der War tezustand ist, wird der Befehl ignoriert. Wenn der aktuelle Zustand der Ausgabe- oder Setup-Zustand oder Disable oder Stall ist, wird ein "F" zurückgegeben, um anzuzeigen, daß bei diesem Endpunkt ein unzulässiger Befehl versucht wurde.
0011: Input Iso Ready. Bewirkt, daß der spezifizierte Endpunktkanal in den Eingang- ISO-Bereit-Zustand geht, wenn er momentan in dem Eingang-Wartezustand ist. Dieser Befehl wird nach einem Steuerwort ausgegeben, wobei der Eingang- Bereit-Puffer-Zustand in das Endpunktfeld für den entsprechenden Endpunkt ge schrieben wird.
Dieser Befehl bewirkt nicht, daß das Steuerwort in dem Speicher gelesen wird, sondern erlaubt vielmehr, daß es abhängig von dem Empfang eines IN-Tokens gelesen wird. Es wird erwartet, daß das Typfeld des Steuerwortes (TI) auf isochron gesetzt wird, dies wird jedoch nicht überprüft. Wenn der aktuelle Zu stand des Endpunktes nicht Eingang-Warten ist, wird der Befehl ignoriert. Wenn der aktuelle Zustand einer der Ausgangs- oder Setupzustände oder Disabled oder Stall ist, wird "F" zurückgegeben, um anzuzeigen, daß bei diesem Endpunkt ein unzulässiger Befehl versucht wurde.
0100: Output Enable. Bewirkt, daß der spezifizierte Endpunktkanal aus dem Stall- oder Disabled-Zustand in den Ausgang-Wartezustand geht. Der Steuerwort zeiger für den spezifizierten Endpunkt wird auf 0 zurückgesetzt. Wenn der aktu elle Zustand nicht Disable oder Stall ist, wird ein "F" zurückgegeben, um anzu zeigen, daß ein unzulässiger Befehl bei diesem Endpunkt versucht wurde, und der Befehl wird ignoriert.
0101: Output Ready. Bewirkt, daß der spezifizierte Endpunktkanal in den Ausgang- Bereit-Zustand geht, wenn er momentan in dem Ausgang-Wartezustand ist. Die ser Befehl wird nach einem Steuerwort ausgegeben, wobei ein Ausgang-Bereit- Zustand in das Endpunktfeld für den entsprechenden Endpunkt geschrieben wird.
Dieser Befehl bewirkt nicht, daß das Steuerwort in dem Speicher gelesen wird, sondern erlaubt vielmehr, daß es abhängig von dem Empfang eines OUT-Tokens gelesen wird. Wenn der aktuelle Zustand des Endpunktes nicht Ausgang-Warte ist, wird der Befehl ignoriert. Wenn der aktuelle Zustand einer der Eingangszu stände, Stall oder Disable ist, wird ein "F" zurückgegeben, um anzuzeigen, daß bei diesem Endpunkt ein unzulässiger Befehl versucht wurde, und dieser Befehl wird ignoriert.
0110: Output Iso Enable. Bewirkt, daß der spezifizierte Endpunktkanal aus dem Stall- oder Disable-Zustand in den Ausgang-Isochron-Wartezustand geht. Der Steuerwortzeiger für den spezifizierten Endpunkt wird auf 0 zurückgesetzt.
Wenn der aktuelle Zustand nicht Disable oder Stall ist, wird ein "F" zurückge geben, um anzuzeigen, daß bei diesem Endpunkt ein unzulässiger Befehl ver sucht wurde, und der Befehl wird ignoriert.
0111: Output Iso Ready. Bewirkt, daß der spezifizierte Endpunktkanal in den Aus gang-Iso-Bereit-Zustand geht, wenn er momentan in dem Ausgang-Iso- Wartezustand ist. Dieser Befehl wird nach einem Steuerwort ausgegeben, wobei ein Ausgang-Bereit-Zustand in das Endpunktfeld für den entsprechenden End punkt geschrieben wird.
Dieser Befehl bewirkt nicht, daß das Steuerwort im Speicher gelesen wird, son dern er erlaubt vielmehr, daß es abhängig von dem Empfang eines OUT-Tokens gelesen wird. Wenn der aktuelle Zustand des Endpunktes nicht Ausgang-Iso- Warten ist, wird der Befehl ignoriert. Wenn der aktuelle Zustand einer der Ein gangszustände, Stall oder Disable ist, wird ein "F" zurückgegeben, um anzuzei gen, daß bei diesem Endpunkt ein unzulässiger Befehl versucht wurde.
1000: Setup Ready. Bewirkt, daß der spezifizierte Endpunktkanal in den Setup- Bereit-Zustand geht. Dieser Befehl wird nach einem Steuerwort ausgegeben, wobei ein Ausgang-Bereit-Zustand in das Endpunktfeld für den entsprechenden Endpunkt geschrieben wird.
Dieser Befehl bewirkt nicht, daß das Steuerwort im Speicher gelesen wird, son dern er erlaubt vielmehr, daß es abhängig von dem Empfang eines SETUP- Tokens gelesen wird. Wenn der aktuelle Zustand des Endpunktes nicht Stall oder Disable ist, wird der Befehl ignoriert.
1001: Disable. Bewirkt, daß der spezifizierte Endpunktkanal in den Disable-Zustand geht. Dies erfolgt unmittelbar nach einem beliebigen anderen Zustand. Wenn der Endpunktkanal momentan aktiv ist, wird der Status bei der Steuerung geschrie ben, wodurch angezeigt wird, daß der Endpunkt disabelt wurde.
1010: Stall. Bewirkt, daß der spezifizierte Endpunkt aus einem beliebigen Zustand in den Stall-Zustand geht. Dies erfolgt unmittelbar nach jedem beliebigen Zustand. Wenn der Endpunktkanal momentan aktiv ist, wird der Zustand in die Steuerung geschrieben, wodurch angezeigt wird, daß der Endpunkt angehalten wurde.
1011-1101: Reserviert. Bewirkt die Ausführung keiner Funktion. Gibt 0 zurück.
1110: Toggle CWP. Bewirkt, daß der Steuerwortzeiger umgeschaltet (getoggelt) wird. Dies wird in Verbindung mit Steuerübertragungen verwendet, wenn eine unge rade Anzahl Pakete während der Datenphase gesendet oder empfangen wird.
1111: Error. Gibt an, daß ein für den momentanen Zustand unzulässiger Befehl des aktuellen Endpunktkanals versucht wurde, und daß ein neuer Befehl angenom men werden könnte.
0000: Complete. Gibt an, daß der vorhergehende Befehl abgeschlossen ist und der Endpunktcontroller bereit ist, einen weiteren Befehl anzunehmen.
0001: Input Enable. Bewirkt, daß der spezifizierte Endpunktkanal aus dem Stall- oder Disable-Zustand in den Eingang-Wartezustand geht. Der Steuerwortzeiger für den spezifizierten Endpunktkanal wird auf 0 zurückgesetzt. Wenn der aktuelle Zustand nicht Disable oder Stall ist, wird ein "F" zurückgegeben, um anzuzei gen, daß ein unzulässiger Befehl bei diesem Endpunkt versucht wurde, und der Befehl wird ignoriert.
0010: Input Ready. Bewirkt, daß der spezifizierte Endpunktkanal in den Eingang- Bereit-Zustand geht, wenn er momentan in dem Eingang-Warte-Zustand ist. Dieser Befehl wird nach einem Steuerwort ausgegeben, wobei ein Eingang- Bereit-Pufferzustand in das Endpunktfeld für den entsprechenden Endpunkt ge schrieben wird.
Dieser Befehl bewirkt nicht, daß das Steuerwort in dem Speicher gelesen wird, sondern er erlaubt vielmehr, daß es abhängig von dem Empfang eines IN- Tokens gelesen wird. Wenn der aktuelle Zustand des Endpunkts nicht der War tezustand ist, wird der Befehl ignoriert. Wenn der aktuelle Zustand der Ausgabe- oder Setup-Zustand oder Disable oder Stall ist, wird ein "F" zurückgegeben, um anzuzeigen, daß bei diesem Endpunkt ein unzulässiger Befehl versucht wurde.
0011: Input Iso Ready. Bewirkt, daß der spezifizierte Endpunktkanal in den Eingang- ISO-Bereit-Zustand geht, wenn er momentan in dem Eingang-Wartezustand ist. Dieser Befehl wird nach einem Steuerwort ausgegeben, wobei der Eingang- Bereit-Puffer-Zustand in das Endpunktfeld für den entsprechenden Endpunkt ge schrieben wird.
Dieser Befehl bewirkt nicht, daß das Steuerwort in dem Speicher gelesen wird, sondern erlaubt vielmehr, daß es abhängig von dem Empfang eines IN-Tokens gelesen wird. Es wird erwartet, daß das Typfeld des Steuerwortes (TI) auf isochron gesetzt wird, dies wird jedoch nicht überprüft. Wenn der aktuelle Zu stand des Endpunktes nicht Eingang-Warten ist, wird der Befehl ignoriert. Wenn der aktuelle Zustand einer der Ausgangs- oder Setupzustände oder Disabled oder Stall ist, wird "F" zurückgegeben, um anzuzeigen, daß bei diesem Endpunkt ein unzulässiger Befehl versucht wurde.
0100: Output Enable. Bewirkt, daß der spezifizierte Endpunktkanal aus dem Stall- oder Disabled-Zustand in den Ausgang-Wartezustand geht. Der Steuerwort zeiger für den spezifizierten Endpunkt wird auf 0 zurückgesetzt. Wenn der aktu elle Zustand nicht Disable oder Stall ist, wird ein "F" zurückgegeben, um anzu zeigen, daß ein unzulässiger Befehl bei diesem Endpunkt versucht wurde, und der Befehl wird ignoriert.
0101: Output Ready. Bewirkt, daß der spezifizierte Endpunktkanal in den Ausgang- Bereit-Zustand geht, wenn er momentan in dem Ausgang-Wartezustand ist. Die ser Befehl wird nach einem Steuerwort ausgegeben, wobei ein Ausgang-Bereit- Zustand in das Endpunktfeld für den entsprechenden Endpunkt geschrieben wird.
Dieser Befehl bewirkt nicht, daß das Steuerwort in dem Speicher gelesen wird, sondern erlaubt vielmehr, daß es abhängig von dem Empfang eines OUT-Tokens gelesen wird. Wenn der aktuelle Zustand des Endpunktes nicht Ausgang-Warte ist, wird der Befehl ignoriert. Wenn der aktuelle Zustand einer der Eingangszu stände, Stall oder Disable ist, wird ein "F" zurückgegeben, um anzuzeigen, daß bei diesem Endpunkt ein unzulässiger Befehl versucht wurde, und dieser Befehl wird ignoriert.
0110: Output Iso Enable. Bewirkt, daß der spezifizierte Endpunktkanal aus dem Stall- oder Disable-Zustand in den Ausgang-Isochron-Wartezustand geht. Der Steuerwortzeiger für den spezifizierten Endpunkt wird auf 0 zurückgesetzt.
Wenn der aktuelle Zustand nicht Disable oder Stall ist, wird ein "F" zurückge geben, um anzuzeigen, daß bei diesem Endpunkt ein unzulässiger Befehl ver sucht wurde, und der Befehl wird ignoriert.
0111: Output Iso Ready. Bewirkt, daß der spezifizierte Endpunktkanal in den Aus gang-Iso-Bereit-Zustand geht, wenn er momentan in dem Ausgang-Iso- Wartezustand ist. Dieser Befehl wird nach einem Steuerwort ausgegeben, wobei ein Ausgang-Bereit-Zustand in das Endpunktfeld für den entsprechenden End punkt geschrieben wird.
Dieser Befehl bewirkt nicht, daß das Steuerwort im Speicher gelesen wird, son dern er erlaubt vielmehr, daß es abhängig von dem Empfang eines OUT-Tokens gelesen wird. Wenn der aktuelle Zustand des Endpunktes nicht Ausgang-Iso- Warten ist, wird der Befehl ignoriert. Wenn der aktuelle Zustand einer der Ein gangszustände, Stall oder Disable ist, wird ein "F" zurückgegeben, um anzuzei gen, daß bei diesem Endpunkt ein unzulässiger Befehl versucht wurde.
1000: Setup Ready. Bewirkt, daß der spezifizierte Endpunktkanal in den Setup- Bereit-Zustand geht. Dieser Befehl wird nach einem Steuerwort ausgegeben, wobei ein Ausgang-Bereit-Zustand in das Endpunktfeld für den entsprechenden Endpunkt geschrieben wird.
Dieser Befehl bewirkt nicht, daß das Steuerwort im Speicher gelesen wird, son dern er erlaubt vielmehr, daß es abhängig von dem Empfang eines SETUP- Tokens gelesen wird. Wenn der aktuelle Zustand des Endpunktes nicht Stall oder Disable ist, wird der Befehl ignoriert.
1001: Disable. Bewirkt, daß der spezifizierte Endpunktkanal in den Disable-Zustand geht. Dies erfolgt unmittelbar nach einem beliebigen anderen Zustand. Wenn der Endpunktkanal momentan aktiv ist, wird der Status bei der Steuerung geschrie ben, wodurch angezeigt wird, daß der Endpunkt disabelt wurde.
1010: Stall. Bewirkt, daß der spezifizierte Endpunkt aus einem beliebigen Zustand in den Stall-Zustand geht. Dies erfolgt unmittelbar nach jedem beliebigen Zustand. Wenn der Endpunktkanal momentan aktiv ist, wird der Zustand in die Steuerung geschrieben, wodurch angezeigt wird, daß der Endpunkt angehalten wurde.
1011-1101: Reserviert. Bewirkt die Ausführung keiner Funktion. Gibt 0 zurück.
1110: Toggle CWP. Bewirkt, daß der Steuerwortzeiger umgeschaltet (getoggelt) wird. Dies wird in Verbindung mit Steuerübertragungen verwendet, wenn eine unge rade Anzahl Pakete während der Datenphase gesendet oder empfangen wird.
1111: Error. Gibt an, daß ein für den momentanen Zustand unzulässiger Befehl des aktuellen Endpunktkanals versucht wurde, und daß ein neuer Befehl angenom men werden könnte.
EPN Enpoint Pipe Number (Endpunktkanalnummer). Dieser Parameter bestimmt den End
punktkanal, auf den der Befehl ausgeführt werden soll.
Vermerk für den Entwurf: Dieses Register sollte in der Hochgeschwindigkeitsbus-Schnitt
stellenlogik realisiert werden, wobei Daten über die asynchrone Schnittstelle weitergegeben
werden. Zwei Signale werden von dem Endpunktcontroller zurückgegeben - eines, um anzu
zeigen, daß der Befehl verarbeitet wurde und daß der Befehlswert auf "0" gelöscht werden
sollte, und ein anderes, um anzuzeigen, daß der Befehl nicht verarbeitet werden konnte und
auf "F" gesetzt werden sollte.
Ein ein Wort breites Lese/Schreibregister. Benachrichtigt die Software über Ereignisse, die
aufgetreten sind, die einen Interrupt verursacht haben und weitere Verarbeitung erfordern.
Bits werden gelöscht, indem 1 in das Bit/die Bits geschrieben wird, welche gelöscht werden
sollen. Beim Reset wird dieses Register gelöscht. Das ISR-Registerformat ist unten gezeigt:
ECI Endpoint Controller Interrupt (Endpunktcontroller-Interrupt). Es ist an einem der
Endpunkte ein Ereignis aufgetreten, daß Softwareunterstützung benötigt. Dies ist das ODER
aller EER.Epn, die mit EEM.Epn UND-verknüpft sind.
SECI Synchronized Endpoint Controller Interrupt (synchronisierter ECI). Eine verzögerte
Version des ECI, der bei einem Inkrement oder dem Laden von FNR.FN abgetastet wird.
RSTD Reset Detected (Reset erfaßt). Ein Übergang auf SEO wurde erfaßt und während mi
nimal 2,5 µs gehalten, während der Funktionszustand nicht USB Reset war. Als Reaktion
sollte der Funktionszustand (DCR.FS) auf USBReset gesetzt werden und während wenigstens
100 µs USBReset bleiben. Nach dem Reset kann der Funktionszustand auf dem USB-
Betriebszustand zurückgehen.
SD Suspend Detected (Aussetzen erfaßt). Ein Minimum von 3,0 µs Wartezustand wurde
erfaßt, wodurch angezeigt wird, daß der Betrieb dieses Gerätes ausgesetzt werden sollte. Das
Aussetzen (Suspend) erfolgt softwaregesteuert durch Schreiben von DCR.FS in den Aussetz
wert.
SDS Suspend Detected (Aussetzen erfaßt) 5. Ein Minimum von 5,0 µs Wartezustand wurde
erfaßt, wodurch angezeigt wird, daß dieses Gerät nun eine Fern-Weckrufoperation ausführen
darf. Sollten die Takte in dem Intervall, nachdem SD gesetzt, SD5 jedoch nicht gesetzt ist,
disabled werden, dann sollte der verbleibende Teil der zusätzlichen 2 ms abgemessen werden,
wenn die Takte wieder aufgenommen werden.
RSMD Resume Detected (Wiederaufnahme erfaßt). Ein Wiederaufnahmesignal wurde auf
dem USB erfaßt, während dieses Gerät in dem Aussetzzustand (DCR. FS = Suspend) war,
wodurch angezeigt wird, daß dieses Gerät seine Aufwecksequenz beginnen und in den Be
triebszustand gehen sollte. Wenn die Takte disabled sind, wenn die Wiederaufnahme neu er
faßt wird, wird dieses Bit gesetzt, nachdem die Takte wieder enabelt sind. Diese Wiederauf
nahmebedingung sollte in dem USB-Modul ohne Taktunterstützung zwischengespeichert und
dann gelöscht werden, wenn das Wiederaufnahme-Erfaßt-Bit gesetzt ist.
EOPD End of Packet Detected. Eine gültige Packetendesequenz wurde auf dem USB erfaßt.
Dies wird verwendet, wenn das Gerät eine Fernwiederaufnahme auslöst, um anzuzeigen, daß
die Wiederaufnahmesequenz bestätigt und von dem Host beendet wurde.
SOFD Start of Frame Detected. Ein gültiges Blockanfangspacket wurde auf dem USB er
faßt.
FCI Frame Counter Interrupt. Der Blockzähler hat den programmierten Offset erreicht,
d. h. TR. TI[7:0] = FNR. FN[7:0].
ULD Unlocked Locked Detected. Gibt an, daß der Blockzeitgeber aus einem verriegelten in
einen unverriegelten Zustand gegangen ist oder aus einem unverriegelten in den verriegelten
Zustand zurückgegangen ist, was durch den aktuellen Wert von FNR.UL bestimmt wird, das
Unlocked-Statusbit.
Man beachte, daß eine Einstellung der isochronen Warteschlange bei isochronen Endpunkten
notwendig sein kann, weil FNR.FN[0] verwendet wird, um die nächste isochrone Übertra
gung zu wählen.
HST Holding Setup Token. Ein Setup-Token wurde empfangen, für den im voraus kein
SRDY-Puffer zugewiesen wurde. Dieses Setup-Paket wird in dem Datenpfad gehalten, wäh
rend darauf gewartet wird, daß dem Steuerendpunkt ein SRDY-Puffer zugewiesen wird.
Wenn dies bei mehr als einem Endpunkt möglich ist, muß der Endpunktzustand untersucht
werden, um zu ermitteln, welcher Endpunkt auf den Puffer wartet. In diesem Fall sollte ein
SRDY-Puffer auf CW0 gesetzt werden, ein OCMP-Puffer wird auf CW1 gesetzt, und ein
SRDY-Befehl wird an den zugehörigen Endpunktkanal übergeben. Man beachte, daß dieser
Zustand vermieden wird, außer bei ungünstigen Bedingungen. Im Intervall zwischen dem
Setzen dieses Bits und dem Zuweisen des Puffers werden alle gültigen IN- und OUT-Token
mit NAK quittiert.
Man beachte: Eines der reservierten Bits ist für einen Hub-Interrupt reserviert, falls diese
Funktion enthalten ist.
Ein ein Wort breites Lese/Schreibregister. IMR hat dasselbe Bitlayout wie das Interrupt-
Statusregister. Die Bits werden mit den entsprechenden Bits in dem Interrupt-Statusregister
UND-verknüpft, das Ergebnis wird ODER-verknüpft, um das USB_INT-Signal zu erzeugen.
Bei einem Reset wird dieses Register gelöscht.
Ein doppelwortbreites Lese/Schreibregister. EER wird verwendet, um anzuzeigen, auf wel
chem Endpunktkanal Ereignisse aufgetreten sind, die einen Dienst erfordern. Bei einem Reset
wird dieses Register gelöscht. Das EER-Registerformat ist unten angegeben:
{Konzept für zukünftige Verbesserungen}:
EE(0:15) Endpoint Event. Ein Bit pro Endpunkt. Das Bit 0 wird dem Endpunkt 0 zugewie
sen. Das Bit 1 dem Endpunkt 1, etc. Gibt an, daß ein Ereignis bei einem Endpunkt aufgetreten
ist, daß Softwareunterstützung benötigen könnte. Die Bits werden gelöscht, indem 1 in die zu
löschenden Bits geschrieben wird.
Dieses Bit wird gesetzt, nachdem der Status von dem Endpunktcontroller in dem Speicher auf
CW.BS geschrieben wurde.
Wenn das CW.IC-Bit des Steuerwortes für diesen Endpunkt gesetzt ist, tritt das Ereignis auf,
wenn CW.BS in eine der Fertig- oder Fehlerbedingungen geschrieben wird oder disabled oder
unterbrochen ist. {8, 9, 10, 11, 12, 13, 14, 15}. Für isochrone Übertragungen wird der Aus
gangs-Wartestatus auch als Beendigungsstatus angesehen {4, 5, 6}.
Wenn das CW.IE-Bit des Steuerwortes für diesen Endpunkt gesetzt ist, tritt das Ereignis auf,
wenn CW.IS in einen der Fehlercodes geschrieben wird oder disabelt {10, 11, 12, 13, 14, 15}.
Dies umfaßt nicht den CRC-Fehler und Bitstuffingfehler-Codes außer für isochrone Übertra
gungen.
Wenn sowohl das CW.IC- als auch das CW.IE-Bit des Steuerwortes für diesen Endpunkt ge
setzt sind, tritt das Ereignis auf, wenn CW.IS in einen der Fehlercodes geschrieben wird oder
disabled oder unterbrochen ist. Dies umfaßt den CRC-Fehler und Bitstuffingfehler-Codes {3,
4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}.
Bemerkung für den Entwurf: Diese Ereignisbits sollten erst nach dem Aktualisieren des Spei
cherwortes im Speicher gesetzt werden, nicht nach dem Schreiben des internen CW. BS-
Wertes. Dies dient dazu, zu verhindern, daß der Software-Interrupt angezeigt wird, bevor die
Software den richtigen Status lesen kann.
Ein doppelwortbreites Lese/Schreibregister. Beim Reset wird dieses Register gelöscht. Das
EMR-Registerformat ist unten angezeigt:
{Entwurf für zukünftige Verbesserungen}:
EM(0:15) Endpoint Mask. Wird für jeden Endpunkt enabelt, um zu ermitteln, ob ein Inter
rupt erzeugt werden sollte, wenn das entsprechende Bit gesetzt ist. Das Bit 0 wird dem End
punkt 0 zugeordnet, das Bit 1 dem Endpunkt 1, etc.
Ein ein Wort breites Nur-Lese-Register. FNR sieht die aktuelle Blocknummer vor, die in dem
SOF-Packet empfangen wird. Bei USB-Reset wird dieses Register auf C000h gesetzt. Das
FNR-Registerformat ist unten gezeigt:
FN Frame Number (Blocknummer). Die aktuelle Blocknummer, wie sie in dem letzten
SOF-Paket empfangen wurde. Der Wert wird inkrementiert, wenn ein SOF verpaßt wird.
Wenn zwei aufeinanderfolgende Blöcke fehlen oder fehlerhaft sind, wird die Blocknummer
mit der nächsten Blocknummer aus einem gültigen SOF-Paket geladen. Das niedrigstwertige
Bit der Blocknummer wird dazu verwendet, zu ermitteln, welcher isochrone Puffer als näch
stes verwendet werden sollte.
UL Unlocked Flag. Das unlocked. Flag (UL) wird gesetzt, um anzuzeigen, daß wenigstens
zwei Blöcke ohne eine erwartete Blocknummer empfangen wurden und daß diese
Blocknummer aus dem nächsten SOF-Paket in FN geladen wird. Bei einem Reset wird dieses
Flag auf 1 gesetzt.
MF Missed SOF-Flag. Das verpaßte SOF-Flag (MF) wird gesetzt und zeigt eine Diskonti
nuität der Blocknummer an. Dieses Flag wird gesetzt, wenn die Blocknummer in einem gülti
gen empfangen SOF nicht mit dem erwarteten nächsten Wert übereinstimmt. Das Flag wird
auch gesetzt, wenn innerhalb von 12060 Bitzeiten (FLMAX mit Toleranz) nach einer vorher
gehenden Änderung von FNR.FN kein SOF empfangen wird. Bei einem Reset wird dieses
Flag auf 1 gesetzt.
Bei Empfang eines gültigen SOF-Pakets:
Ohne Empfang eines gültigen SOF-Pakets innerhalb von 12060 Bitzeiten (oder 796, wenn das
Kurzblockbit DCR.SFM gesetzt ist) seit dem vorhergehenden Laden von FNR.FN
FNR.FN ← FNR.FN + 1;
Wenn ((FNR.MF ist 1 und FNR.UL ist 0) {FNR.UL ← 1; ISR.ULD ← 1}
FNR.MF ← 1;
FNR.FN ← FNR.FN + 1;
Wenn ((FNR.MF ist 1 und FNR.UL ist 0) {FNR.UL ← 1; ISR.ULD ← 1}
FNR.MF ← 1;
Ein ein-Wort-breites Nur-Leseregister. Wird zum Überwachen eines externen Bezugstaktes
verwendet. Bei Reset wird dieses Register gelöscht. Das RCR-Registerformat ist unten ge
zeigt:
RC Reference Count (Bezugszählwert). Dies ist ein Zählwert der Anzahl der steigenden
Flanken, die bei dem Bezugseingangssignal des Taktes des UNIM erfaßt werden (siehe TBD).
Wenn es zusammen mit der Blocknummer gelesen wird, kann es einen präzise Erfassung der
relativen Frequenz des externen Bezugstaktes im Verhältnis zum USB-Takt liefern. Die Dif
ferenz kann dem USB-Host über Feedback-Pakete angezeigt werden, um das SOF-Paket zu
verzögern oder zu beschleunigen, damit der USB-Takt sich mit dem externen Takt synchroni
siert. Um für die Software einen gemeinsamen Bezugspunkt aufrechtzuerhalten, wird der Re
ferenzzählwert in dieses Register eingelesen, wenn FNR.FN mit einem neuen Wert geladen
oder inkrementiert wird.
Ein ein Wort breites Lese/Schreibregister. Enthält eine Anforderung eines Interrupts, wenn
der Blockzähler den programmierten Offset das nächste Mal erreicht. Bei Reset wird dieses
Register gelöscht. Das TIR-Registerformat ist unten gezeigt:
TI Timer Interrupt Interval. Bewirkt, daß ISR.FCI das nächste Mal gesetzt wird, wenn der
Blockzähler FNR.FN diesen Wert erreicht.
Ein ein Wort breites Lese/Schreibregister. Indexiert die Register, die in dem USB-Bereich
liegen und auf die nicht häufig zugegriffen werden muß. Das UIR-Registerformat ist unten
gezeigt:
SEL Selector. Wählt den Block der Register, auf die zugegriffen werden soll.
0: Endpunktkanal-Zustandsregister
1: Kanalabbildungsregister
2: Reserviert für USB-Hubregister
3: Diagnoseregister
andere: reserviert
0: Endpunktkanal-Zustandsregister
1: Kanalabbildungsregister
2: Reserviert für USB-Hubregister
3: Diagnoseregister
andere: reserviert
Index Index. Sieht den Blockindex für den ausgewählten Registerblock gemäß nachstehender
Beschreibung vor.
Ein ein Wort breites Nur-Lese/Schreibregister. Lesezugriffe sind auf alle Stellen erlaubt. Das
Datenregister wird mit den Daten geladen, die für das von dem UIR zu jeder Zeit ausgewählte
Register gelesen werden. Das Schreiben in dieses Register ist in dem USB-Hubregister nur
erlaubt, wenn UIR.SIL 2 ist. Ein Statusbit wird im Bit 15 definiert, um anzuzeigen, daß eine
Schreiboperation erfolgreich war. Dies ist nur notwendig, wenn die Hubfunktion enthalten ist.
Indexiert den Endpunktkanal-Zustandsvektor gemäß des unten gezeigten Indexierschemas:
EPN Endpoint Pipe Number (Endpunktkanalnummer). Gibt die Endpunktkanalnummer an,
für die der Endpunktkanal-Zustandsvektor in dem USB-Datenregister lesen kann.
Dies ist der 8 Bit-Endpunktkanalzustand, der für jeden Endpunktkanal gespeichert ist, und der
für den momentan indexierten Endpunktkanal zurückgegeben wird. Wenn ein ungültiger
Endpunktkanal indexiert wird, wird 0 zurückgegeben.
EPS Endpoint Pipe State (Endpunktkanalzustand). Der 4-Bit-Endpunktkanalzustand:
Man beachte: Zu einer gegebenen Zeit ist nur ein Endpunktkanal aktiv.
CTL Control. Dies wird bestätigt, wenn der Endpunktkanal Steuerfolgen annehmen kann,
welche den SETUP-Token betreffen. Dieses Bit wird gesetzt, nachdem für diesen Endpunkt
kanal CMD. Setup-Bereit vorlag, und bleibt gesetzt, bis der Endpunkt disabled wird.
CWP Control Word Pointer (Steuerwortzeiger). Wenn das Steuerwortbit 0 ist, wird auf das
Steuerwort 0 dieses Endpunkts in dem Endpunktfeld als nächstes zugegriffen. Wenn das
Steuerwortbit 1 ist, wird auf das Steuerwort 1 für diesen Endpunkt als nächstes zugegriffen.
Es wird auf 0 gesetzt, wenn der Endpunkt enabelt wird.
Indexiert die Kanalabbildung, um die Abbildung auf den Endpunktkanal mit den folgenden
Eingangsparametern zu bestimmen:
FAN Function Address Number (Funktionsadreßnummer). Gibt bis zu einer von vier mög
lichen Funktionsadressen an. Bei allen Ausführungsformen ist die Funktionsadresse 0 immer
vorhanden.
TT Token Type. Gibt den Tokentyp an:
00 OUT
10 IN
11 SETUP
01 SOF
00 OUT
10 IN
11 SETUP
01 SOF
EN Endpoint Number (Endpunktnummer). Gibt die Endpunktnummer an, die auf dem USB
empfangen wird - 0 bis 15 einschließlich.
Ein ein Byte breites Register. Gibt dem Endpunktkanal den aktuellen Wert des USB-
Indexregisters zurück, das sich hierauf bezieht. Das Lesen und Schreiben dieses Registers ist
nur gültig wenn DCR.ECE gleich 0 ist. In dieses Register kann nicht bei allen Ausführungs
formen geschrieben werden. Bestimmte Werte der Endpunktnummer sind reserviert.
'h FF zeigt an, daß der Wert von PMIR nicht auf einen Endpunktkanal abgebildet wird. 'h FE
zeigt an, daß der Wert von PMIR auf den speziellen SOF-Kanal abgebildet wird, der das
FNR-Register enthält.
EPN Endpoint Pipe Number. Gibt die Endpunktkanalnummer an, auf welche die Funkti
onsadresse, der Tokentyp und die Endpunktnummer abgebildet werden.
Indexiert die USB-Hubregister gemäß dem folgenden Format:
HREG Hub Register. Gibt die Hub-Register an, auf die über das USB-Datenregister zuge
griffen werden soll. Für die tatsächlichen Registerdefinitionen dieser Register
Hub Data. Ein ein Byte breites Register. Erlaubt das Lesen und Schreiben der einzelnen
Hubregister. Siehe das LM1050-Datenblatt für Einzelheiten dieser Register.
Indexiert die USB-Diagnoseregister gemäß dem folgenden Format:
DREG Diagnostic Register. Gibt die Diagnose-Register an, auf die durch das USB-
Datenregister zugegriffen werden soll.
Ein Doppelwort-breites Lese/Schreibregister. Basisadresse im Speicher des Blocks, der das
Endpunktfeld enthält. Es muß zu einer 128-Bytegrenze ausgerichtet werden, d. h. die unteren
sieben Bits werden auf 0 gesetzt (dies ist eine 25 Bit-Adresse). Bei Reset wird dieses Register
gelöscht. Das EABAR-Registerformat ist unten gezeigt:
Merke: Diese Basisadresse kann modifiziert werden, um schnell zwischen verschiedenen
Konfigurationen umzuschalten. Nach dem Aufwecken aus einem Aussetzmodus während der
Konfiguration kann zum Beispiel eine Konfiguration der Endpunkte wünschenswert sein, und
nach der Konfiguration mehrerer verschiedener Konfigurationen kann es wünschenswert sein,
verschiedene Kombinationen aus Schnittstellen und Endpunkten zu verwenden. Beim Um
schalten der Konfigurationen sollten alle Endpunkte disabelt oder angehalten werden, und der
Kontext aller Endpunkte wird dann durch einen Schreibvorgang in dieses Register verändert.
Ein Doppelwort-breites Lese/Schreibregister. Die oberen Bits der Pufferseite A. Ein 21 Bit-
Register, das eine 2K-Byte-Seite definiert, in der Puffer für die Datenübertragung definiert
sind. Diese Pufferseite wird von dem Pufferseitenauswahl-Bitwert in dem Steuerwort be
stimmt, das in den Speicher des Endpunktfeldes geschrieben ist. Bei einem Reset wird dieses
Register gelöscht. Das BPA-Registerformat ist unten gezeigt:
Ein Doppelwort-breites Lese/Schreibregister. Die oberen Bits der Pufferseite B. Ein 21-Bit-
Register, das eine 2K-Byte-Seite definiert, in der Puffer für die Datenübertragung definiert
sind. Diese Pufferseite wird von dem Pufferseitenauswahl-Bitwert von dem Steuerwort be
stimmt, das in den Speicher in dem Endpunktfeld geschrieben ist. Bei einem Reset wird die
ses Register gelöscht. Das BPB-Registerformat ist unten gezeigt:
Dieser Abschnitt sieht Anmerkungen vor, die zum Entwickeln von Treibern nützlich sind,
welche das UNIM verwenden. Dies umfaßt die Initialisierung, Setup/Aufzählung und Daten
übertragung für die Steuerung, Bulk-Endpunkte, Interrupt-Endpunkte und isochrone End
punkte.
Nach einem Modul-Reset erscheint das Modul als ein nichtangeschlossenes Gerät auf dem
USB, weil beide USB-Datenleitungen auf einen niedrigen Pegel gezogen sind. Zu dieser Zeit
sind alle Endpunktkanäle disabelt, und der Funktionszustand ist zurückgesetzt.
Um ein Gerät als an einen stromaufwärtigen USB-Port angeschlossen zu erfassen, muß
DCR.NAT gesetzt sein. Dadurch zieht das Gerät die USB-Datenleitung nicht mehr auf den
niedrigen Pegel.
Wenn das Gerät einmal angeschlossen ist, muß der Endpunktkanalbetrieb initialisiert werden.
Zunächst wird ermittelt, wieviele Endpunkte für eine Anwendung notwendig sind, sowie die
Arten der Endpunkte und die Speichermenge, die für den Betrieb zugewiesen werden muß.
Gestützt hierauf werden EABAR, BPA und BPB initialisert. Das EABAR ist der Basiszeiger
für das Feld, welche die Steuerworte enthält. Für jeden Endpunkt werden zwei Doppelworte
zugewiesen. Dieser Zeiger muß in eine 128-Byte-Grenze fallen. Die BPA und BPB werden,
wenn notwendig, zugewiesen, um den Basiszeiger für alle Datenübertragungen vorzusehen.
Da zu dieser Zeit noch nicht ganz feststehen kann, welche Endpunkt enabelt werden sollen
und wieviel Speicher diesen zugewiesen werden soll, müssen nur EABAR und BPA geladen
werden, damit die erste Steuerübertragung verarbeitet werden kann.
Ein SRDY-Puffer wird in den CW0 des Endpunktkanals 0 gelegt und ein SRDY-Befehl wird
ausgegeben, ECR.(SRDY,0).
Zu dieser Zeit werden die anderen Bits in dem DCR-Register modifiziert, einschließlich ETE,
EPMS nach Bedarf, und ECE und DEFO werden gesetzt.
Danach wird das Funktionszustandsregister in den Betriebszustand gesetzt (FSR.Operational).
Der empfangene Setup wird in den SRDY-Puffer geladen. Nachdem der Setup empfangen
wurde, wird er analysiert, um zu ermitteln, wie reagiert werden muß. Wenn es sich um ein
SET-ADDRESS-Setup-Paket handelt, wird die Funktionsadresse (FAR) mit der empfangenen
Adresse geladen und das Enable-Bit wird gesetzt (FAR.AE). Das DEF-Bit wird mittels
Hardware beim nächsten ACK zurückgesetzt, welches abhängig von einem IN-Token emp
fangen wird, oder bei dem nächsten Setup, der an diesem Endpunkt empfangen wird, falls das
ACK verloren wurde.
Interrupt-Endpunkte sehen neue Interruptinformation für den Host vor, falls vorhanden. Wenn
keine Interruptinformation anhängig ist, wird NAK zurückgegeben. Zum Initialisieren eines
Interrupt-Endpunktkanals wird ein Eingang-Enable-Befehl an den richtigen Eingangskanal
gegeben (ECR.(IENB, EPN)). Dies bewirkt, daß der Endpunktkanal in seinen Eingangs-
Wartezustand geht, I_IDL. Abhängig von dem Empfang eines IN-Tokens bei einem End
punkt, der auf diesen Endpunktkanal abgebildet ist, wird NAK als Handshake zurück
gegeben. Wenn Interruptdaten vorhanden sind, werden sie in einen Puffer geschrieben, das
nächste Steuerwort an dem Endpunkt wird in I_RDY geschrieben, und ein Befehl wird ausge
geben (ECR.(IRDY, EPN)), damit der Endpunktkanal in den IRDY-Zustand geht. Abhängig
vom Empfang des nächsten IN-Tokens wird das Steuerwort bei EABAR + EPN + CWP gele
sen, und dann werden die Daten übertragen. Wenn dem Toggle-Protokoll gefolgt wird, muß
das Toggle-Enable-Bit des Steuerworts in dem Steuerwort gesetzt werden. Wenn dieser End
punkt für ein Ratensteuerungs-Feedback verwendet wird, muß das Toggle-Enable-Bit nicht
gesetzt werden.
Am Ende der Übertragung, wenn ACK vom Host empfangen wird, wird ein ICMP-Status in
den Puffer geschrieben. Dies bestätigt dann, daß die Übertragung beendet ist. Wenn kein
ACK empfangen wurde und Toggle enabelt ist, wird ein Zwischenstatus ACK-verpaßt
(IMAK) geschrieben. Nach dem Schreiben des Status wir der andere Endpunktpuffer gelesen.
Falls der Status eine Beendigung anzeigt, beginnt der Eingang-Warte-Zustand. Wenn in der
Zwischenzeit ein weiteres Ereignis aufgetreten ist und ein weitere IRDY-Puffer auf das ande
re Steuerwort gelegt wurde, wird es zu dieser Zeit gelesen, und der Endpunkt geht wieder in
den I_RDY-Zustand.
Bulk-Endpunkte arbeiten ähnlich wie die Interrupt-Endpunkte, abgesehen davon, daß übli
cherweise größere Datenübertragungen betroffen sind, und daß sie in der IN- und OUT-
Richtung verlaufen. Bulk-Endpunkte folgen immer dem Toggle-Protokoll, so daß in allen
Steuerworten TE gesetzt ist.
Ein besonderer Bulk-Endpunkt wird entweder in der Eingangs- oder Ausgangsrichtung ver
wendet. Wenn ein Endpunkt das erste Mal initialisiert wird, wird ein Eingangs- oder Aus
gangs-Enable-Befehl an die richtige Endpunktkanalnummer geschickt (ECR.(I/OENB,
EPN)).
Bei Eingangsendpunkten werden Daten, wenn sie vorhanden sind in einen Puffer geschrieben,
und ein Steuerwort wird mit einem IRDY-Zustand beschrieben, und TE wird gesetzt. Dann
wird ein IRDY-Befehl ausgeführt. Maximal können zwei Datenpuffer zu einer gegebenen
Zeit auf einem Endpunktkanal anhängig sein. Dies ermöglicht ein Doppelpuffer-Verfahren,
falls nötig, um das Senden von NAKs während großer Datenübertragungen zu vermeiden. Die
Software-Synchronisierung erfolgt durch Untersuchen des Pufferzustandes. Nur die vollstän
digen Pufferzustände können überschrieben werden.
Bei Ausgangsendpunkten muß ein Puffer vorbereitet werden, in den die Daten übertragen
werden. Wenn dieser Puffer vorhanden ist, wird ein Steuerwort mit einem Zeiger darauf in
das richtige Steuerwort geschrieben. Das Toggle-Enable-Bit sollte hier ebenfalls gesetzt wer
den. Ein ORDY-Befehl wird an den Endpunktkanal übergeben. Nachdem die Daten für diesen
Puffer als Teil des OUT-Tokens empfangen wurden, wird das Steuerwort im Speicher aktua
lisiert.
Wenn die Größe des Datenpakets nicht bekannt ist, sollte das Pufferrundungsbit des Steuer
wortes gesetzt werden. Dies erlaubt, Pakete, die kleiner als die Puffergröße sind, zu empfan
gen, ohne daß ein Fehlerstatus geschrieben wird. Wenn das Pufferrundungsbit nicht gesetzt
ist, werden empfangene Pakete, die den zugewiesenen Puffer nicht genau füllen, mit einem
Datenfehler-Statusfehler geschrieben. In jedem Fall wird der Statusfehler geschrieben, wenn
mehr Daten als erwartet für diesen Endpunkt empfangen werden.
Wenn das Auftreten eines Fehlers während des Empfangs dieser Daten erfaßt wird, wird ein
Pufferzwischenzustand in den Speicher zurückgeschrieben, und beim nächsten OUT-Token
wird der Puffer erneut verwendet. Dies bedeutet, daß die Software sich nur mit dem Vorsehen
der Puffer befassen muß, welche die Daten empfangen sollen, und nicht mit den Verstrickun
gen der Protokolle für erneute Versuche.
Isochrone Endpunkte folgen demselben Schema wie Bulk-Endpunkte, sie folgen jedoch kei
nem Toggle-Protokoll. Vielmehr werden sie zu dem niedrigstwertigen Bit des Blocknum
mernregisters synchronisiert.
Bei isochronen Eingangsendpunkten werden Daten in eine Warteschlange gelegt, wobei die
selben IRDY-Puffer verwendet werden. Wenn ein IN-Token bei einem isochronen Endpunkt
empfangen wird, wird das Datenpaket gesendet, wenn das niedrigstwertige Bit des Block
nummernregisters mit dem Steuerwortzeiger übereinstimmt. Sonst werden keine Daten ge
sendet. Dies erlaubt die Synchronisierung der Datenübertragung zu einer bestimmten
Blocknummer. Zum Auslösen der Übertragung bei einer bestimmten Blocknummer kann das
Blocknummernregister gelesen werden. Ein Interrupt kann angefordert werden (ISR.FCI),
indem TIR auf den angeforderten Wert des FNR gesetzt wird, zu dem die Übereinstimmung
vorliegen muß. Ein Abgleich erfolgt nur mit den unteren acht Bit, so daß dieses Ereignis bis
zu 256 ms in eine Warteschlange gelegt werden kann, bevor es benötigt wird. Wenn dieser
Interrupt verarbeitet wird, kann der passende Puffer auf dem Endpunktkanal in eine Warte
schlange gelegt werden.
Bei isochronen Ausgangs-Endpunkten bestimmt das Toggle-Enable-Bit, wie das LSB des
Blocknummernregisters verwendet wird. Wenn TE nicht gesetzt ist, werden alle Daten in den
Speicher geschrieben, wenn jedoch FNR.LSB nicht gleich CWP ist, wird ein Synchronisie
rungsfehlerstatus (SYNE) als Pufferzustand geschrieben. Wenn TE gesetzt ist, werden Daten
nur gespeichert, wenn FNR.LSB gleich CWP ist. Wenn ein isochroner Ausgangsstrom mit
der Blocknummer synchronisiert wird, kann der erste Puffer auf TE gesetzt werden, so daß
das Schreiben nur beginnt, wenn eine Übereinstimmung der Blocknummer vorliegt. Dann
können alle nachfolgenden Blöcke erfassen, ob es einen Synchronisierungsfehler gibt.
Man beachte, daß das Blocknummernregister bis zu zwei Blöcke weiterzählt, selbst wenn der
SOF vorübergehend verlorengeht. Sollte der SOF für mehr als zwei Blöcke verlorengehen,
wird Unlocked angezeigt (ISR.UL), wobei zu dieser Zeit alle nachfolgenden isochronen
Übertragungen mit Vorsicht behandelt oder beendet werden sollen, bis der Blocknummern
zähler wieder synchron läuft.
In einem üblichen System ist der Endpunkt 0 immer ein Steuerendpunkt. Andere Endpunkte
dürfen auch Steuerendpunkte werden. Diese Funktion wird unterstützt.
Bei einem Steuerendpunkt sollten das Steuerwort 1 und das Steuerwort 0 immer zusammen
geschrieben werden. Die Statusphase und das SRDY für die nächste Steuerübertragung soll
ten zum Beispiel immer zusammengeschrieben werden. Erst nach der Erfassung eines OCMP
in CW0 aufgrund eines Empfangs eines neuen Setup sollten das Steuerwort und/oder CW0
aktualisiert werden. Wenn eine ungerade Anzahl Datenpakete während der Datenphase einer
Steuerwort-Lese- oder Schreiboperation gesendet werden, bevor die Statusphase gesendet
wurde, kann es notwendig sein, den Steuerwortzeiger einzustellen, weil die Statusphase in das
Steuerwort 1 gelegt werden muß, und der nächste SRDY-Puffer muß in das Steuerwort 0 ge
legt werden. Um dies zu erreichen, ist es möglich, entweder einen SKIP-Puffer einzufügen
oder einen CWP-Toggle-Befehl auszuführen, bevor der ORDY/IRDY-Befehl für den Status
phasen-Puffer ausgeführt wird.
Sollte ein SETUP-Token bei einem Steuerendpunkt erfaßt werden, für den momentan kein
SRDY-Puffer zur Verfügung steht, wird das Möglichste getan, den Setup zu empfangen und
in dem Datenpfad zu speichern. Wenn ein gültiger Setup empfangen wurde, wird das
ISR. HST-Ereignis bestätigt. Abhängig von dem ISR. HST-Interrupt sollten ein SRDY-Puffer
in das Steuerwort 0 und ein SRDY-Befehl geschrieben werden. Dies bewirkt, daß der anhän
gige Setup in den Speicher geschrieben wird. Der SRDY-Befehl bewirkt, das der Endpunkt
als ein Steuerendpunkt behandelt wird, und er bleibt gesetzt, bis ein Eingabe-Enable oder
Ausgabe-Enable-Befehl ausgeführt wird. Der SRDY-Puffer sollte so schnell wie möglich
vorgesehen werden, weil dann, wenn das HST-Bit gesetzt ist, es den Datenpfad für mögliche
zusätzliche Datenübertragungen blockiert. In der Zwischenzeit werden alle Token mit NAK
quittiert, falls anwendbar. Die Implikationen dieses ISO-Verkehrs können beträchtlich sein
und müssen beachtet werden, geradeso wie der Fall eines Dienstverlustes.
Nach dem Empfang eines Setups wird er von der Firmware überprüft, um die richtige Ant
wort zu bestimmen. An diesem Punkt setzt die Firmware zusätzliche Eingangs- oder Aus
gangspuffer nach Bedarf ein. Wenn der Setup ein von der Funktion nicht unterstützter Befehl
ist, wird ein neuer SRDY-Puffer in das Steuerwort 0 gelegt, und der SRDY-Befehl wird aus
gegeben. Dies bewirkt, daß alle Token an diesem Endpunkt eine STALL-Quittung zurückge
ben, bis der nächste Setup empfangen wird. In der Zwischenzeit, während die Firmware den
Setup analysiert, werden als Antwort auf Token NAKs gesendet.
Man beachte, daß alle Register in dem Kernbus-Taktbereich realisiert sind. Register, auf die
mit dem USB-Index zugegriffen wird, und Datenregister sind in dem USB-Taktbereich reali
siert. Viele der Register erfordern asynchrone Handshakes, um die Taktbereiche zu über
schreiten.
Während ein Endpunktkanal in einem seiner Bereitzustände ist, muß abhängig von dem Emp
fang eines IN-, OUT- und SETUP-Tokens eine Antwort innerhalb von 6,5 USB-Bitzeiten
gegeben werden. Für einen IN-Token besteht diese Antwort aus einem STALL- oder NAK-
Handshakepaket oder einem Datenpaket. Für OUT- und SETUP-Token muß sich der End
punktkanal darauf vorbereiten, das Datenpaket zu empfangen. In allen Fällen wird das ent
sprechende Steuerwort gelesen und dazu verwendet, zu ermitteln, wie die Daten zu übertragen
sind.
Die Operation, welche den Datenpfad am stärksten prüft, erfolgt bei Empfang eines IN-
Tokens, während der ausgewählte Endpunkt in dem Eingabe-Bereit-Zustand ist. In diesem
Fall muß das Steuerwort bereit sein, und Daten müssen bis zu der Zeit bei der MAC-
Schnittstelle zur Verfügung stehen, bei der die PID fertig übertragen ist. Der Entwurf sollte
für diesen Fall optimiert werden.
Beachte: Systemanforderungen für USB-Transceiver
Beachte: USBXCU0 und USBXCU1, Wechselstrom und Gleichstrom erfüllen die Anforde
rung, die in Kapitel 7 der Universal Serial Bus Specification Version 1.0 spezifiziert sind.
Claims (18)
1. Verfahren zum Abbilden von Endpunktkanälen zwischen mehreren logischen Knoten
in einer universellen seriellen Buseinrichtung mit folgenden Verfahrensschritten:
Konfigurieren mehrerer Endpunkte, die jeweils eine Endpunktnummer und eine zuge hörige Funktionsadresse haben,
Einrichten mehrerer Endpunktkkanäle,
Definieren einer Abbildung zwischen den mehreren Endpunktkanälen und den mehre ren Endpunkten,
Empfangen eines Tokens über einen ersten Kanal von den mehreren Kanälen, wobei der Token eine Endpunktnummer aufweist, und
Verbinden des ersten Kanals mit einem ausgewählten Endpunkt durch Anwenden der Abbildung auf die Tokenendpunktnummer, wobei die Endpunktnummer des Tokens sich von der Endpunktnummer des ausgewählten Endpunktes unterscheidet.
Konfigurieren mehrerer Endpunkte, die jeweils eine Endpunktnummer und eine zuge hörige Funktionsadresse haben,
Einrichten mehrerer Endpunktkkanäle,
Definieren einer Abbildung zwischen den mehreren Endpunktkanälen und den mehre ren Endpunkten,
Empfangen eines Tokens über einen ersten Kanal von den mehreren Kanälen, wobei der Token eine Endpunktnummer aufweist, und
Verbinden des ersten Kanals mit einem ausgewählten Endpunkt durch Anwenden der Abbildung auf die Tokenendpunktnummer, wobei die Endpunktnummer des Tokens sich von der Endpunktnummer des ausgewählten Endpunktes unterscheidet.
2. Verfahren nach Anspruch 1, bei dem beim Abbilden mehrere Endpunktkanäle einem
Endpunkt zugeordnet werden.
3. Verfahren nach Anspruch 1 oder 2, bei dem bei der Definition der Abbildung zwi
schen den Endpunkten und den Endpunktkanälen ferner eine Abbildung zwischen ei
nem Tokentyp und den mehreren Endpunkten definiert wird
wobei der empfangene Token einen Tokentyp aufweist, und
wobei beim Verbinden des ersten Kanals mit einem der Endpunkte die Abbildung auch auf den Datentyp angewendet wird.
wobei der empfangene Token einen Tokentyp aufweist, und
wobei beim Verbinden des ersten Kanals mit einem der Endpunkte die Abbildung auch auf den Datentyp angewendet wird.
4. Verfahren nach Anspruch 3, bei dem beim Abbilden mehrere Tokentypen einem ein
zigen Endpunktkanal zugeordnet werden.
5. Verfahren nach einem der vorangehenden Ansprüche, bei dem die mehreren End
punkte einen ersten Endpunkt umfassen, der eine erste Funktionsadresse hat, sowie ei
nen zweiten Endpunkt, der eine zweite Funktionsadresse hat, wobei die erste Funkti
onsadresse sich von der zweiten Funktionsadresse unterscheidet,
wobei der Schritt des Definierens einer Abbildung zwischen den Endpunkten und den Kanälen ferner das Definieren der Abbildung zwischen einer Funktionsadresse und den mehreren Endpunkten umfaßt,
wobei der empfangene Token Funktionsadreßdaten aufweist, und
wobei der Schritt des Verbindens des ersten Kanals mit einem der Endpunkte ferner die Anwendung der Abbildung auf die Funktionsadreßdaten umfaßt.
wobei der Schritt des Definierens einer Abbildung zwischen den Endpunkten und den Kanälen ferner das Definieren der Abbildung zwischen einer Funktionsadresse und den mehreren Endpunkten umfaßt,
wobei der empfangene Token Funktionsadreßdaten aufweist, und
wobei der Schritt des Verbindens des ersten Kanals mit einem der Endpunkte ferner die Anwendung der Abbildung auf die Funktionsadreßdaten umfaßt.
6. Verfahren nach einem der vorangehenden Ansprüche, bei dem der Schritt des Definie
rens einer Abbildung ferner das Definieren einer ersten Abbildungsfunktion und einer
zweiten Abbildungsfunktion umfaßt, wobei zwischen der ersten und zweiten Abbil
dungsfunktion ausgewählt wird.
7. Verfahren zum Abbilden von Kanälen über mehreren logischen Knoten in einer uni
versellen seriellen Buseinrichtung mit folgenden Verfahrensschritten:
Empfangen eines Tokens mit einer ersten Endpunktnummer, und
Abbilden des Tokens auf einen Endpunkt mit einer zweiten Endpunktnummer, wobei sich die erste Endpunktnummer von der zweiten Endpunktnummer unterscheidet.
Empfangen eines Tokens mit einer ersten Endpunktnummer, und
Abbilden des Tokens auf einen Endpunkt mit einer zweiten Endpunktnummer, wobei sich die erste Endpunktnummer von der zweiten Endpunktnummer unterscheidet.
8. Verfahren nach Anspruch 7 mit den weiteren Verfahrensschritten:
Empfangen eines Tokens mit einer dritten Endpunktnummer, und
Abbilden des Tokens auf den Endpunkt mit der zweiten Endpunktnummer, wobei sich die erste, die zweite und die dritte Endpunktnummer alle voneinander unterscheiden.
Empfangen eines Tokens mit einer dritten Endpunktnummer, und
Abbilden des Tokens auf den Endpunkt mit der zweiten Endpunktnummer, wobei sich die erste, die zweite und die dritte Endpunktnummer alle voneinander unterscheiden.
9. Verfahren zum Abbilden von Kanälen über mehreren logischen Knoten in einer uni
versellen seriellen Buseinrichtung, mit folgenden Verfahrensschritten:
Konfigurieren eines ersten Endpunktes mit einer ersten Funktionsadresse und einer er sten Endpunktnummer,
Konfigurieren eines zweiten Endpunktes mit einer zweiten Funktionsadresse und einer zweiten Endpunktnummer, wobei sich die zweite Funktionsadresse von der ersten Funktionsadresse unterscheidet,
Empfangen eines Tokens, der an die erste Funktionsadresse und die erste End punktnummer gerichtet ist, und
Abbilden des Tokens auf den zweiten Endpunkt.
Konfigurieren eines ersten Endpunktes mit einer ersten Funktionsadresse und einer er sten Endpunktnummer,
Konfigurieren eines zweiten Endpunktes mit einer zweiten Funktionsadresse und einer zweiten Endpunktnummer, wobei sich die zweite Funktionsadresse von der ersten Funktionsadresse unterscheidet,
Empfangen eines Tokens, der an die erste Funktionsadresse und die erste End punktnummer gerichtet ist, und
Abbilden des Tokens auf den zweiten Endpunkt.
10. Verfahren nach Anspruch 9, bei dem der Token eine Steuerfunktion definiert.
11. Verfahren nach Anspruch 9 oder 10, bei dem die erste Endpunktnummer gleich der
zweiten Endpunktnummer ist.
12. Universelle serielle Buseinrichtung mit
mehreren Endpunkten
mehreren Kanalabbildungen zum Zuordnen eines Kanals zu einem Endpunkt, und
einem Konfigurationsregister zum Auswählen unter den mehreren Kanalabbildungen.
mehreren Endpunkten
mehreren Kanalabbildungen zum Zuordnen eines Kanals zu einem Endpunkt, und
einem Konfigurationsregister zum Auswählen unter den mehreren Kanalabbildungen.
13. Einrichtung nach Anspruch 12, bei der die mehreren Endpunkte mehrere Funktions
adressen aufweisen.
14. Einrichtung nach Anspruch 12 oder 13, bei der die mehreren Kanalabbildungen meh
reren Kanälen einem einzigen Endpunkt zuweisen.
15. Einrichtung nach einem der Ansprüche 12 bis 14, bei dem die mehreren Kanalabbil
dungen einen Kanal einem Endpunkt gestützt auf eine Funktionsadresse, einen To
kentyp und eine Endpunktnummer zuweisen.
16. Einrichtung nach Anspruch 15, bei dem eine erste Endpunktnummer und ein erster
Tokentyp auf einem ersten Endpunkt abgebildet werden, und die erste Endpunktnum
mer und ein zweiter Tokentyp auf einem zweiten Endpunkt abgebildet werden.
17. Einrichtung nach einem der Ansprüche 12 bis 16, bei dem das Konfigurationsregister
von einem Hostrechner eingestellt werden kann, der mit der universellen seriellen
Buseinrichtung verbunden ist.
18. Verfahren zum dynamischen Ändern der Persönlichkeit einer Multifunktions-USB-
Einrichtung, wobei die Einrichtung eine erste Abbildungsfunktion zum Abbilden emp
fangener Token auf Endpunktkanäle aufweist, eine zweite Abbildungsfunktion auf
weist, die sich von der ersten Abbildungsfunktion unterscheidet, um empfangene To
ken auf Endpunktkanäle abzubilden, und ein Konfigurationsregister mit mehreren Zu
ständen aufweist, wobei wenigstens einer der Zustände die erste Abbildungsfunktion
auswählt und wenigstens einer der Zustände die zweite Abbildungsfunktion auswählt,
mit folgenden Verfahrensschritten:
Initialisieren einer USB-Einrichtung, um eine erste Persönlichkeit zu definieren, wel che die erste Abbildungsfunktion realisiert und eine zweite Persönlichkeit zu definie ren, welche die zweite Abbildungsfunktion realisiert,
Einstellen des Konfigurationsregisters auf einen ersten Zustand, um die erste Persön lichkeit auszuwählen, und
Einstellen des Konfigurationsregisters auf einen zweiten Zustand, um die zweite Per sönlichkeit auszuwählen.
Initialisieren einer USB-Einrichtung, um eine erste Persönlichkeit zu definieren, wel che die erste Abbildungsfunktion realisiert und eine zweite Persönlichkeit zu definie ren, welche die zweite Abbildungsfunktion realisiert,
Einstellen des Konfigurationsregisters auf einen ersten Zustand, um die erste Persön lichkeit auszuwählen, und
Einstellen des Konfigurationsregisters auf einen zweiten Zustand, um die zweite Per sönlichkeit auszuwählen.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US004004 | 1998-01-07 | ||
US09/004,004 US6122676A (en) | 1998-01-07 | 1998-01-07 | Apparatus and method for transmitting and receiving data into and out of a universal serial bus device |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19900325A1 true DE19900325A1 (de) | 2000-03-16 |
DE19900325B4 DE19900325B4 (de) | 2005-12-22 |
Family
ID=21708661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19900325A Expired - Fee Related DE19900325B4 (de) | 1998-01-07 | 1999-01-07 | Vorrichtung und Verfahren zum Senden und Empfangen von Daten in eine und aus einer universellen seriellen Buseinrichtung |
Country Status (3)
Country | Link |
---|---|
US (1) | US6122676A (de) |
KR (1) | KR100290942B1 (de) |
DE (1) | DE19900325B4 (de) |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4026948B2 (ja) * | 1997-09-29 | 2007-12-26 | キヤノン株式会社 | ネットワークシステム、デバイス、デバイスの制御方法、及び、記憶媒体 |
KR100290729B1 (ko) | 1998-01-07 | 2001-05-15 | 클라크 3세 존 엠. | 유에스비 등시 데이타를 전송 및 수신하는 장치 및 방법 |
US6363085B1 (en) * | 1998-03-23 | 2002-03-26 | Multivideo Labs, Inc. | Universal serial bus repeater |
US6311294B1 (en) * | 1998-10-20 | 2001-10-30 | Cypress Semiconductor Corp. | Device and method for efficient bulk data retrieval using a universal serial bus |
US6611552B2 (en) * | 1999-01-28 | 2003-08-26 | Intel Corporation | Universal serial bus transceiver and associated methods |
US6601109B1 (en) * | 1999-03-31 | 2003-07-29 | International Business Machines Corporation | USB-based networking and I/O hub |
JP3641169B2 (ja) * | 1999-08-06 | 2005-04-20 | 株式会社エヌ・ティ・ティ・ドコモ | Usb対応電子機器 |
US6629220B1 (en) * | 1999-08-20 | 2003-09-30 | Intel Corporation | Method and apparatus for dynamic arbitration between a first queue and a second queue based on a high priority transaction type |
US6523081B1 (en) * | 1999-11-22 | 2003-02-18 | Texas Instruments Incorporated | Architecture using dedicated endpoints and protocol for creating a multi-application interface and improving bandwidth over universal serial bus |
US6804243B1 (en) * | 1999-11-22 | 2004-10-12 | Texas Instruments Incorporated | Hardware acceleration for segmentation of message packets in a universal serial bus peripheral device |
JP4553279B2 (ja) * | 2000-03-09 | 2010-09-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ転送システム、データ転送端末、コントローラ、およびインターフェイス方法 |
US6941114B1 (en) * | 2000-03-28 | 2005-09-06 | Behavior Tech Computer Corporation | USB-based wireless transmitting/receiving system |
US6718412B2 (en) * | 2000-12-14 | 2004-04-06 | Agilent Technologies, Inc. | Apparatus and method for universal serial bus communications |
US7076536B2 (en) * | 2000-12-21 | 2006-07-11 | Microsoft Corporation | Method and system to access software pertinent to an electronic peripheral device at an address based on a peripheral device identifier |
US7165109B2 (en) * | 2001-01-12 | 2007-01-16 | Microsoft Corporation | Method and system to access software pertinent to an electronic peripheral device based on an address stored in a peripheral device |
US6895520B1 (en) | 2001-03-02 | 2005-05-17 | Advanced Micro Devices, Inc. | Performance and power optimization via block oriented performance measurement and control |
JP2002312296A (ja) * | 2001-04-10 | 2002-10-25 | Nec Microsystems Ltd | 周辺装置のusbインタフェース装置、その制御方法およびプログラム並びにusbインタフェースシステム |
KR100419278B1 (ko) * | 2001-10-11 | 2004-02-18 | 삼성전자주식회사 | 유에스비 장치 구동 방법 및 이 구동 방법을 사용하는내장형 시스템 |
US20030229811A1 (en) * | 2001-10-31 | 2003-12-11 | Cross Match Technologies, Inc. | Method that provides multi-tiered authorization and identification |
US20030167347A1 (en) * | 2002-02-11 | 2003-09-04 | Combs James Lee | Home network printer adapter |
US6978339B2 (en) * | 2002-02-22 | 2005-12-20 | Canon Kabushiki Kaisha | Communication system and method of controlling same |
US7080189B1 (en) * | 2002-05-31 | 2006-07-18 | Cypress Semiconductor Corp. | USB device communication |
US6959350B1 (en) * | 2002-06-28 | 2005-10-25 | Cypress Semiconductor Corp. | Configurable USB interface with virtual register architecture |
DE10234991B4 (de) * | 2002-07-31 | 2008-07-31 | Advanced Micro Devices, Inc., Sunnyvale | Hostcontrollerdiagnose für einen seriellen Bus |
US7441708B2 (en) * | 2003-03-28 | 2008-10-28 | Peter Arthur Schade | Memory card socket using a dual-ported USB interface |
US7823133B2 (en) * | 2003-04-23 | 2010-10-26 | Stmicroelectronics, Inc. | Smart card device and method for debug and software development |
US6783078B1 (en) | 2003-05-09 | 2004-08-31 | Stmicroelectronics, Inc. | Universal serial bus (USB) smart card having read back testing features and related system, integrated circuit, and methods |
US7373522B2 (en) * | 2003-05-09 | 2008-05-13 | Stmicroelectronics, Inc. | Smart card with enhanced security features and related system, integrated circuit, and methods |
US7080789B2 (en) * | 2003-05-09 | 2006-07-25 | Stmicroelectronics, Inc. | Smart card including a JTAG test controller and related methods |
US7181649B2 (en) * | 2003-05-09 | 2007-02-20 | Stmicroelectronics, Inc. | Universal serial bus (USB) smart card having enhanced testing features and related system, integrated circuit, and methods |
US7143224B2 (en) * | 2003-05-09 | 2006-11-28 | Stmicroelectronics, Inc. | Smart card for performing advance operations to enhance performance and related system, integrated circuit, and methods |
US7044390B2 (en) * | 2003-06-02 | 2006-05-16 | Stmicroelectronics, Inc. | Smart card emulator and related methods using buffering interface |
US7369982B2 (en) * | 2003-06-04 | 2008-05-06 | Stmicroelectronics, Inc. | Multi-mode smart card emulator and related methods |
US7127649B2 (en) * | 2003-06-09 | 2006-10-24 | Stmicroelectronics, Inc. | Smartcard test system and related methods |
US20040260823A1 (en) * | 2003-06-17 | 2004-12-23 | General Instrument Corporation | Simultaneously transporting multiple MPEG-2 transport streams |
GB2412757B (en) * | 2004-03-31 | 2006-02-15 | Mentor Graphics | Multi-point USB connection |
US8234421B2 (en) * | 2004-04-21 | 2012-07-31 | Stmicroelectronics, Inc. | Smart card with selectively allocatable data buffers and associated methods |
US8046508B2 (en) * | 2004-04-21 | 2011-10-25 | Stmicroelectronics, Inc. | Smart card with self-detachment features and related methods |
US7328849B2 (en) * | 2004-04-21 | 2008-02-12 | Stmicroelectronics, Inc. | Smart card providing data mapping for multiple applications and related methods |
US7904607B2 (en) * | 2004-04-21 | 2011-03-08 | Stmicroelectronics, Inc. | Smart card with self-reconfiguration features and related methods |
US7685328B2 (en) * | 2004-09-09 | 2010-03-23 | Stmicroelectronics, Inc. | Generic universal serial bus device operable at low and full speed and adapted for use in a smart card device |
US7188206B2 (en) * | 2004-10-22 | 2007-03-06 | Conwise Technology Corporation Ltd. | USB compound device without embedded hub and implement method in USB system |
US8315269B1 (en) | 2007-04-18 | 2012-11-20 | Cypress Semiconductor Corporation | Device, method, and protocol for data transfer between host device and device having storage interface |
US20080276009A1 (en) * | 2007-05-04 | 2008-11-06 | Joe Mesa | Enabling Efficient Communication Between a Host and Multiple USB Devices |
TW200903262A (en) * | 2007-07-05 | 2009-01-16 | Weltrend Semiconductor Inc | Method and related integrated circuit for dynamically configuring USB endpoint resource |
TWI448902B (zh) * | 2007-08-24 | 2014-08-11 | Cypress Semiconductor Corp | 具頁存取基礎處理器介面之橋接裝置 |
US8090894B1 (en) | 2007-09-21 | 2012-01-03 | Cypress Semiconductor Corporation | Architectures for supporting communication and access between multiple host devices and one or more common functions |
US7895387B1 (en) | 2007-09-27 | 2011-02-22 | Cypress Semiconductor Corporation | Devices and methods for sharing common target device with two different hosts according to common communication protocol |
US7984197B2 (en) * | 2008-05-27 | 2011-07-19 | Eyran Lida | Methods and devices for on the fly CEC modification |
US20100180064A1 (en) * | 2009-01-14 | 2010-07-15 | Huawei Device Co., Ltd. | Method and device for implementing USB endpoint multiplexing |
KR101566004B1 (ko) * | 2009-03-05 | 2015-11-06 | 삼성전자주식회사 | 엔드 포인트를 복수개로 분할 가능한 반도체 장치 |
JP6531446B2 (ja) * | 2015-03-20 | 2019-06-19 | 富士電機株式会社 | Hid_usb通信を用いたups管理装置及び方法 |
GB202001700D0 (en) * | 2020-02-07 | 2020-03-25 | Blancco Tech Group Ip Oy | USB controller endpoint resource management |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996041274A1 (en) * | 1995-06-07 | 1996-12-19 | Advanced Micro Devices, Inc. | Dynamically reconfigurable data bus |
US5751951A (en) * | 1995-10-30 | 1998-05-12 | Mitsubishi Electric Information Technology Center America, Inc. | Network interface |
US5848293A (en) * | 1995-11-03 | 1998-12-08 | Sun Microsystems, Inc. | Method and apparatus for transmission and processing of virtual commands |
US5729721A (en) * | 1995-11-13 | 1998-03-17 | Motorola, Inc. | Timebase synchronization in separate integrated circuits or separate modules |
US5774680A (en) * | 1995-12-11 | 1998-06-30 | Compaq Computer Corporation | Interfacing direct memory access devices to a non-ISA bus |
US5943506A (en) * | 1996-03-25 | 1999-08-24 | Intel Corporation | System for facilitating data I/O between serial bus input device and non-serial bus cognition application by generating alternate interrupt and shutting off interrupt triggering activities |
US5835791A (en) * | 1996-03-26 | 1998-11-10 | Vlsi Technology, Inc. | Versatile connection of a first keyboard/mouse interface and a second keyboard/mouse interface to a host computer |
US5841471A (en) * | 1996-09-12 | 1998-11-24 | Eastman Kodak Company | Timing control for a digitally interfaced camera using variable line readout intervals |
US5818948A (en) * | 1996-10-23 | 1998-10-06 | Advanced Micro Devices, Inc. | Architecture for a universal serial bus-based PC speaker controller |
US5778218A (en) * | 1996-12-19 | 1998-07-07 | Advanced Micro Devices, Inc. | Method and apparatus for clock synchronization across an isochronous bus by adjustment of frame clock rates |
-
1998
- 1998-01-07 US US09/004,004 patent/US6122676A/en not_active Expired - Lifetime
-
1999
- 1999-01-06 KR KR1019990000085A patent/KR100290942B1/ko not_active IP Right Cessation
- 1999-01-07 DE DE19900325A patent/DE19900325B4/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR100290942B1 (ko) | 2001-05-15 |
US6122676A (en) | 2000-09-19 |
KR19990067730A (ko) | 1999-08-25 |
DE19900325B4 (de) | 2005-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19900325A1 (de) | Vorrichtung und Verfahren zum Senden und Empfangen von Daten in eine und aus einer universellen seriellen Buseinrichtung | |
DE19900290B4 (de) | Verfahren zum Betreiben einer universellen seriellen Buseinrichtung und universelle serielle Buseinrichtung | |
DE19900345B4 (de) | Schnittstellenmodul für einen Universellen Seriellen Bus (USB) zur Verbindung mit einem USB über eine Programmierschnittstelle für eine USB-Funktion und Vorrichtung zum Anschluß an einen universellen seriellen Bus | |
DE19900369B4 (de) | Vorrichtung zum Anschluß an einen Universal Serial Bus (USB) und Verfahren zum Betreiben eines Steuerendpunktes an einem Universal Serial Bus (USB) | |
DE19900369A9 (de) | Vorrichtung und Verfahren zur Ausführung einer Steuerübertragung auf einem Universal Serial Bus | |
DE19900290A9 (de) | Verfahren zum Betreiben einer universellen seriellen Buseinrichtung und universelle serielle Buseinrichtung | |
DE19900245B4 (de) | Vorrichtung und Verfahren zum Senden von Daten von einem USB-Endpunkt an einen USB-Host | |
DE69836426T2 (de) | Steuergerät für einen universellen seriellen Bus | |
DE60215833T2 (de) | Mehrkanalschnittstelle für die kommunikation zwischen einrichtungen | |
DE102012208803B4 (de) | System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten | |
DE69936060T2 (de) | Verfahren und Vorrichtung für eine verbesserte Schnittstelle zwischen Computerkomponenten | |
DE19900345A9 (de) | Vorrichtung und Verfahren für die Bereitstellung einer Schnittstelle für eine Verbundsteuereinheit eines Universellen Seriellen Buses | |
DE60309391T2 (de) | Datenübertragungssteuerungssystem, Programm und Datenübertragungssteuerungsverfahren | |
DE3506118C2 (de) | ||
DE19900331A9 (de) | Vorrichtung und Verfahren zur Implementierung eines USB-Endpunktkanals mit doppelter Pufferunterstützung | |
DE69334165T2 (de) | Netzwerkanpassungseinrichtung mit hauptrechnerunterbrechung und indikationsverwaltung | |
DE60205305T2 (de) | Datensteueranlage, elektronisches Gerät und Verfahren zur Übertragungssteuerung | |
DE102012209011B4 (de) | System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten | |
DE102012209009B4 (de) | System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten | |
DE4307449C2 (de) | Verfahren und Schaltung zur Resynchronisation einer synchronen seriellen Schnittstelle | |
DE19900331A1 (de) | Vorrichtung und Verfahren zur Implementierung eines USB-Endpunktkanals mit doppelter Pufferunterstützung | |
DE102007029833B4 (de) | Mikrocontroller mit Datenmodifikationsmodul und System umfassend ein Datenmodifikationsmodul | |
DE69432726T2 (de) | Verfahren und System zur seriellen Datenübertragung | |
EP1941377A2 (de) | Teilnehmerschnittstelle zwischen einem mikrocontroller und einem flexray-kommunikationsbaustein, flexray-teilnehmer und verfahren zur übertragung von botschaften über eine solche schnittstelle | |
DE102013102912A1 (de) | System und Verfahren zur Verarbeitung von Ablaufverfolgungsinformationen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8364 | No opposition during term of opposition | ||
R082 | Change of representative | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |