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 Buseinrichtung

Info

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
Application number
DE19900325A
Other languages
English (en)
Other versions
DE19900325B4 (de
Inventor
David Brief
Gregory Lewis Dean
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Semiconductor Corp
Original Assignee
National Semiconductor Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National Semiconductor Corp filed Critical National Semiconductor Corp
Publication of DE19900325A1 publication Critical patent/DE19900325A1/de
Application granted granted Critical
Publication of DE19900325B4 publication Critical patent/DE19900325B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information 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.
Vorläufige Version Spezifikation für USB-Knotenschnittstellenarchitektur Überarbeitete Version 0.6 Kapitel 1 Einführung
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.
1.1 Externe Schnittstelle
Tabelle 1-1
Modulpins, die mit externen Pins verbunden sind
1.2 Interne Architektur auf Chipebene 1.2.1 Endpunktcontroller
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.
1.2.2 Serielle USB-Schnittstelleneinrichtung
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.
1.2.3 USB-Transceiver
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.
1.2.4 Zukünftige Modulerweiterungen
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.
Kapitel 2 UNIM Modul 2.1 USB-Knotenschnittstelle
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.
2.1.1 Merkmale
  • - 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.
2.1.2 Funktionsbeschreibung
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.
2.1.3 Transceiver
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.
Verwendung eines externen Transceivers
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.
2.1.4 Serielle Schnittstelleneinrichtung (SIE; serial interface engine)
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.
2.1.5 Endpunktkanal-Controller (EPC)
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.
Abbildung auf Endpunktkanäle
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:
Endpunktsteuerung
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.
Endpunkt-Controller-Blockdiagramm
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.
Speicherzugriffsleistung
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.
Synchronisationssupport
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.
Betrieb aussetzen/wieder aufnehmen Aussetzbetrieb
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.
Fernwiederaufnahme
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.
USB-Wiederaufnahmeoperation
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.
Einschalt-Resets
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.
2.1.6 UNIM Programmiermodel
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.
Endpunktkanalfeld
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.
Steuerwortformat
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.
BS Pufferzustand
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.
2.1.7 Endpunktkanalbetrieb Endpunktkanalzustände
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.
Hardware/Software-Synchronisierung
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.
2.1.8 UNIM-Register
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.
Gerätesteuerregister (DCR)
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.
Funktions-Zustandsregister (FSR)
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.
Funktionszustand
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.
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.
Transceiver-Konfigurationsregister (TCR)
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.
Funktionsadreßregister (FAR)
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
Endpunktsteuerregister (ECR)
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.
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.
Interrupt Status Register (ISR)
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.
Interrupt Maskenregister (IMR)
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.
Endpunkt Ereignisregister (EER)
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.
Endpunktmaskenregister (EMR)
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.
Blocknummernregister (FNR)
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.
Blocknummer-Operation
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;
Referenzzählregister (RCR)
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.
Zeitintervallregister (TIR)
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.
USB-Indexregister (UIR)
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
Index Index. Sieht den Blockindex für den ausgewählten Registerblock gemäß nachstehender Beschreibung vor.
USB-Datenregister (UDR)
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.
Endpunktkanal-Zustandsindex
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.
Endpunktkanalzustand
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.
Kanalabbildungsindex
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
EN Endpoint Number (Endpunktnummer). Gibt die Endpunktnummer an, die auf dem USB empfangen wird - 0 bis 15 einschließlich.
Kanalabbildungsdaten
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.
Hub-Register
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.
Diagnose-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.
Endpunktfeld-Basisadreßregister (EABAR)
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.
Pufferseite A-Register (BPA)
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:
Pufferseite B-Register (BPB)
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:
2.1.9 Verwendungstips
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.
Initialisierung
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 Endpunkt Operation
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-Endpunkt Operation
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 Endpunktoperation
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.
Steuerendpunkt-Operation
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.
2.1.10 Bemerkungen für die Umsetzung Registerschnittstelle
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.
Kapitel 3 Gerätespezifikationen
Tabelle 3-1
Ausgangssignale
Tabelle 3-1
Eingangssignale
USB
Beachte: Systemanforderungen für USB-Transceiver
Fig. 3-4 Verzögerung der USB-Empfangssignale
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.
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.
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.
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.
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.
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.
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.
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.
DE19900325A 1998-01-07 1999-01-07 Vorrichtung und Verfahren zum Senden und Empfangen von Daten in eine und aus einer universellen seriellen Buseinrichtung Expired - Fee Related DE19900325B4 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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