DE19900251A1 - Vorrichtung und Verfahren zum Steuern eines vielseitigen USB-Endpunktkanals - Google Patents

Vorrichtung und Verfahren zum Steuern eines vielseitigen USB-Endpunktkanals

Info

Publication number
DE19900251A1
DE19900251A1 DE19900251A DE19900251A DE19900251A1 DE 19900251 A1 DE19900251 A1 DE 19900251A1 DE 19900251 A DE19900251 A DE 19900251A DE 19900251 A DE19900251 A DE 19900251A DE 19900251 A1 DE19900251 A1 DE 19900251A1
Authority
DE
Germany
Prior art keywords
command
state
endpoint
isochronous
ready
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
DE19900251A
Other languages
English (en)
Other versions
DE19900251B4 (de
Inventor
David Brief
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 DE19900251A1 publication Critical patent/DE19900251A1/de
Application granted granted Critical
Publication of DE19900251B4 publication Critical patent/DE19900251B4/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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/426Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using an embedded synchronisation, e.g. Firewire bus, Fibre Channel bus, SSA bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Description

Die Erfindung betrifft eine Vorrichtung zum Steuern eines vielseitigen USB-Endpunktkanals nach dem Oberbegriff des Anspruchs 1 und ein Verfahren nach dem Oberbegriff des Anspruchs 11.
Ein universeller serieller Bus (= USB = Universal Serial Bus) ist eine Standard-Peripheriegerätschnittstelle für den Anschluß von Personalcomputern an viele verschiedene Geräte: z. B. digitale Telephonleitungen, Monitore, Modems, Mäuse, Drucker, Scanner, Spiele-Controller, Tastaturen und andere Peripheriegeräte. Der USB ersetzt somit vorhandene Schnitt­ stellen wie etwa die seriellen RS-232C-Ports, parallele Ports, PS/2-Schnittstellen sowie Game/MIDI-Ports.
Bei dem USB sind sämtliche angeschlossenen Vorrichtungen über einen einzelnen Verbindertyp unter Verwendung einer in Stufen geordneten Sterntopologie mit einem Personalcomputer verbunden. Ein Host-Personalcomputer enthält einen einzigen USB-Controller. Der Host-Controller bildet die Schnittstelle zwischen dem USB-Netz und dem Host-Personalcomputer. Der Host-Controller steuert sämtliche Zugriffe auf die USB- Betriebsmittel und überwacht die Bustopologie. Ein USB- Netzknoten stellt USB-Anschlußpunkte für USB-Vorrichtungen bereit.
Eine USB-Funktion ist eine USB-Vorrichtung, die Informationen auf dem Bus senden und empfangen kann. Eine Funktion kann eine oder mehrere Konfigurationen besitzen, wovon jede die Schnittstellen definiert, die die Vorrichtung bilden. Jede Schnittstelle ist ihrerseits aus einem oder mehreren Endpunkten gebildet.
Ein Endpunkt ist die letzte Datenquelle oder -senke. Ein Endpunktkanal ermöglicht die Bewegung von Daten zwischen dem USB und dem Speicher und vervollständigt den Pfad zwischen dem USB-Host und dem Funktionsendpunkt.
Jeder Endpunkt ist eine adressierbare Entität auf dem USB und muß auf IN- und auf OUT-Tokens vom USB-Host (typischerweise ein PC) antworten. Die IN-Tokens geben an, daß der Host den Empfang von Informationen von einem Endpunkt angefordert hat, während die OUT-Tokens angeben, daß der Host im Begriff ist, Informationen an einen Endpunkt zu senden.
Bei Erfassung eines an einen Endpunkt adressierten TN-Token ist der Endpunkt für die Antwort durch ein Datenpaket ver­ antwortlich. Falls der Endpunkt momentan blockiert (Stalled) ist, wird ein STALL-Quittierungspaket geschickt. Falls der Endpunkt freigegeben (enabled) ist, jedoch keine Daten vorhanden sind, wird ein negatives Quittierungspaket (NAK- Paket) geschickt.
Ähnlich ist der Endpunkt bei Erfassung eines an einen End­ punkt adressierten OUT-Token für den Empfang eines vom Host geschickten Datenpakets und für dessen Speicherung in einen Puffer verantwortlich. Falls der Endpunktkanal momentan blockiert ist, wird am Ende der Datenübertragung ein STALL- Quittierungspaket geschickt. Falls der Endpunktkanal momentan gesperrt (disabled) ist, wird am Ende der Datenübertragung kein Quittierungspaket geschickt. Falls der Endpunktkanal freigegeben ist, jedoch kein Puffer vorhanden ist, in dem Daten gespeichert werden können, wird ein NAK-Paket geschickt.
Ein gesperrter Endpunkt oder gesperrte Endpunkte, die momen­ tan nicht auf einen Endpunktkanal abgebildet sind, antworten nicht auf IN-, OUT- oder SETUP-Tokens.
Eine Anzahl von Anbietern haben Implementierungen des USB- Standards entwickelt. Beispielsweise hat die Intel Corp. die 8×931Ax-, 8×931Hx-, 8×930Ax- und 8×930Hx-Vorrichtungen freigegeben.
Diese Vorrichtungen besitzen jedoch eine Anzahl von Be­ schränkungen. Beispielsweise ist die 8×931Ax-Vorrichtung auf drei Endpunktpaare eines Sende-Endpunkts und eines Empfangs- Endpunkts eingeschränkt, wovon jeder einen im voraus defi­ nierten und zugeordneten Datenspeicher (zugeordnete FIFOs) besitzt. Die anderen Intel-Vorrichtungen besitzen ähnliche Beschränkungen. Ferner kann jedes Endpunkt-Paar nur unter einer Untermenge der verfügbaren USB-Sendetypen arbeiten. Weiterhin verwendet die 8×931Ax eine große Anzahl von Regi­ stern, um Steuerinformationen zu speichern.
Aufgabe der Erfindung ist es, eine Vorrichtung zum Steuern eines vielseitigen USB-Endpunktkanals nach dem Oberbegriff des Anspruchs 1 und ein Verfahren nach dem Oberbegriff des Anspruchs 11 zu schaffen, wobei die Anzahl von Endpunkten, deren Typen und Datenspeicher je nach Anforderung definiert werden können, vergrößert und die Anzahl der Register verringert wird.
Diese Aufgabe wird entsprechend dem kennzeichnenden Teil des Anspruchs 1 bzw. des Anspruchs 11 gelöst.
Weitere Ausgestaltungen der Erfindung sind der nachfolgenden Beschreibung und den Unteransprüchen zu entnehmen.
Die Erfindung wird nachstehend anhand von in den beigefügten Abbildungen dargestellten Ausführungsbeispielen näher erläu­ tert.
Fig. 1a ist ein Blockschaltplan eines Aspekts der Erfindung;
Fig. 1b ist ein Zustandsdiagramm, das dem Blockschaltplan nach Fig. 1a entspricht;
Fig. 1c ist ein Zustandsdiagramm, das eine weitere Ausführung zeigt, die dem Blockschaltplan nach Fig. 1a entspricht;
Fig. 2a ist ein Blockschaltplan eines weiteren Aspekts der Erfindung;
Fig. 2b ist ein Zustandsdiagramm, das dem Blockschaltplan nach Fig. 2a entspricht;
Fig. 3a ist ein Blockschaltplan eines nochmals weiteren Aspekts der Erfindung;
Fig. 3b ist ein Zustandsdiagramm, das dem Blockschaltplan nach Fig. 3a entspricht,
Fig. 4 ist ein Zustandsdiagramm, das einer zweckmäßigen Ausführung entspricht.
Die Fig. 1a-1b veranschaulichen eine allgemeine Ausführung eines Aspekts der vorliegenden Erfindung für einen Endpunkt­ kanal. Fig. 1a zeigt einen ersten Speicher 110, einen zweiten Speicher 120 und eine Steuerschaltungsanordnung 130. Der Speicher 110 speichert einen Zustand des Endpunktkanals, während der Speicher 120 einen Endpunktbefehl speichert. Der Endpunktkanal besitzt einen Typ, der unbestimmt sein kann.
Fig. 1b zeigt einen Wartezustand (WAIT-Zustand) 150 und einen Leerlaufzustand (IDLE-Zustand) 160.
Die Vorrichtung der Fig. 1a-1b arbeitet folgendermaßen. Zunächst ist der Endpunkttyp undefiniert, wobei der Speicher 110 angibt, daß sich der Endpunkt im Wartezustand 150 befin­ det. Der im Speicher 120 gespeicherte Endpunktbefehl wird durch Firmware in einen Freigabebefehl (enable command) CMD.EMB geändert. Die Steuerschaltungsanordnung 130 ändert den Zustand vom Wartezustand 150 in den Leerlaufzustand 160. Schließlich bestimmt die Steuerschaltungsanordnung 130 auf der Grundlage einer Untermenge des Freigabebefehls den Endpunktkanal-Typ.
Fig. 1c zeigt eine weitere Ausführung. Der im Speicher 120 gespeicherte Endpunktbefehl wird durch Firmware in einen Bereit-Befehl (ready command) CMD.RDY geändert. Die Steuer­ schaltungsanordnung 130 ändert den Zustand vom Leerlaufzu­ stand 160 in einen Bereitzustand 170. Auf der Grundlage einer Untermenge des Freigabebefehls bestimmt die Steuer­ schaltungsanordnung 130 ferner den Endpunktkanal-Typ.
Die Fig. 2a-2b veranschaulichen eine allgemeine Ausführung eines Endpunktkanals. Fig. 2a zeigt einen ersten Speicher 210, einen zweiten Speicher 220 und eine Steuerschaltungsan­ ordnung 230. Der Speicher 210 speichert einen Zustand des Endpunktkanals, während der Speicher 220 einen Pufferbefehl speichert.
Fig. 2b zeigt einen aktiven Zustand (ACTIVE-Zustand) 280 und einen Differenz-Zustand (DIFFERENT-Zustand) 290.
Die Ausführung der Fig. 2a-2b arbeitet folgendermaßen. Zunächst gibt der Speicher 210 an, daß der Endpunkt in einem aktiven Zustand 280 ist. Der im Speicher 220 gespeicherte Pufferbefehl wird in einen Pufferbefehl (buffer command) BUF.CMD geändert. Die Steuerschaltungsanordnung 230 ändert den Zustand vom aktiven Zustand 280 in den Differenz-Zustand 290.
Dieser Aspekt ermöglicht das Lesen von Zustandsübergangsbe­ fehlen aus einem Speicher.
Die Fig. 3a-3b veranschaulichen eine allgemeine Ausführung einer Kombination der Ausführungen der Fig. 1a-1c und 2a-2b für einen Endpunktkanal. Fig. 3a zeigt einen ersten Speicher 310, einen zweiten Speicher 320, einen dritten Speicher 330 und eine Steuerschaltungsanordnung 340. Der Speicher 310 speichert einen Zustand des Endpunktkanals, der Speicher 320 speichert einen Endpunktbefehl und der Speicher 330 speichert einen Pufferbefehl. Der Endpunktkanal ist von einem Typ, der unbestimmt sein kann.
Fig. 3b zeigt einen Wartezustand 350, einen Leerlaufzustand 360, einen Bereitzustand 370, einen aktiven Zustand 380 und einen Differenz-Zustand 390.
Die Erfindung gemäß den Fig. 3a-3b arbeitet folgendermaßen. Zunächst ist der Endpunkt-Typ nicht definiert und der Spei­ cher 310 gibt an, daß sich der Endpunkt im Wartezustand 350 befindet. Der im Speicher 320 gespeicherte Endpunkt-Befehl wird durch Firmware in einen Freigabebefehl CMD.ENB geändert. Die Steuerschaltungsanordnung 340 ändert den Zustand vom Wartezustand 350 in den Leerlaufzustand 360. Auf der Grundlage einer Untermenge des Freigabebefehls bestimmt die Steuerschaltungsanordnung 130 den Endpunktkanal-Typ.
Dann wird der im Speicher 320 gespeicherte Endpunkt-Befehl durch Firmware in einen Bereit-Befehl CMD.RDY geändert. Die Steuerschaltungsanordnung 340 ändert den Zustand vom Leer­ laufzustand 360 in den Bereitzustand 370. Auf der Grundlage einer Untermenge des Freigabebefehls bestimmt die Steuer­ schaltungsanordnung 130 ferner den Endpunktkanal-Typ.
An einem weiteren Punkt in der Operation des Endpunktkanals gibt der Speicher 310 an, daß der Endpunkt sich in einem aktiven Zustand 380 befindet. Der im Speicher 330 gespei­ cherte Pufferbefehl wird in einen Pufferbefehl BUF.CMD geändert. Die Steuerschaltungsanordnung 340 ändert den Zustand vom aktiven Zustand 380 in den anderen Zustand 390.
Obwohl diese Beschreibung den Ausdruck "Speicher" verwendet, soll die Erfindung auch auf andere Typen von Datenablageele­ menten anwendbar sein.
Diese allgemeine Beschreibung wird im folgenden Abschnitt, der zweckmäßige Ausführungen veranschaulicht, genauer erläu­ tert.
In einer zweckmäßigen Ausführung ist die obenbeschriebene Erfindung durch Teile eines USB-Knoten-Schnittstellenmoduls (= UNIM = USB note interface modul) implementiert. Die Teile des UNIM, die für die Erfindung relevant sind, umfassen einen Endpunkt-Controller, einen Endpunktkanal-Controller, verschiedene Register, ein Steuerwort und ein Zustandsdia­ gramm. Diese Abschnitte sind der USB-Knoten-Schnittstellen­ architektur-Spezifikation, Überarbeitung 0.6, entnommen.
Endpunkt-Controller
In einer zweckmäßigen Ausführung handhabt der Endpunkt- Controller die auf den Endpunkt bezogenen Operationen ein­ schließlich des Endpunktkanal-Zustands, der Pufferung und der Übertragungen. In einer zweckmäßigen Ausführung können zu einem gegebenen Zeitpunkt bis zu sechzehn Endpunktkanäle unterstützt werden. Jedem Endpunktkanal können bis zu zwei Puffer im Kernbus-Adressenraum, die für Empfangs- und Sen­ deoperationen verwendet werden, zugeordnet werden. Falls einem Endpunktkanal keine Puffer zugewiesen sind, ist der Controller für die Erzeugung geeigneter Quittierungen für Input-Tokens und Output-Tokens verantwortlich.
Der Endpunkt-Controller enthält mehrere funktionale Blöcke. Die Endpunkt-Zustandsmaschine schafft die zentralisierte Steuerung für die Dienstprogrammblöcke des Datensynchronisa­ tions-Multiplexers (DALM), des Adressengenerators (ADGen) und des Teil-Endpunktkanal-Speichers (PEP-Speicher). Die Vorrichtungsfunktionen wie etwa die Adressenprüfung und die Adressenerzeugung werden in dem Vorrichtungsfunktionsblock erzielt. In einer zweckmäßigen Ausführung laufen sämtliche Zustandsmaschinen mit einem USB-Takt von 12 MHz. Sämtliche Datenübertragungen erfolgen mit einem Kernbustakt. Teile des ADGen-Blocks sowie der gesamte DALM-Block arbeiten unter Verwendung des Kernbustakts. Sämtliche anderen Blöcke des Endpunkt-Controllers verwenden ausschließlich den lokalen 12 MHz-Takt. Datenbytes zwischen den Bereichen werden bei der MAC-Anwenderschnittstelle mit einer asynchronen Quittierung für jedes übertragene Byte synchronisiert.
In einer zweckmäßigen Ausführung minimiert der Endpunkt- Controller die Anzahl der erforderlichen Speicherzugriffe. Nur beim Empfang eines Token ist für die Endpunktmatrix ein Speicherzugriff erforderlich. Ein einziger Doppelwort-Zugriff zusammen mit dem residenten Endpunkt zustand ist ausreichend, damit der Endpunktkanal die Host-Anforderung verarbeitet. Dieser Zugriff liest die Lokalisierungs- und Größeninformationen für die Datenübertragung. Die Datenüber­ tragung erfolgt nach Operationen des Lesens oder Schreibens eines Doppelworts. Das Modul besitzt die höchste Priorität auf dem Kernbus für Übertragungen, wobei die Übertragungsrate erheblich höher als jene des USB ist. Somit ist die Anforderung einer Datenpufferung innerhalb des Endpunkt- Controllers minimal, abgesehen von einem Extrawort, damit nachfolgende Zugriffe mit dem momentanen Zugriff überlappen.
Ein Bytezähler verfolgt die Anzahl der Bytes, die übertragen werden. Der letzte Zugriff einer Übertragung kann ein teil­ weises Lesen oder Schreiben im Speicher erfordern. Das teil­ weise Schreiben des letzten Zugriffs wird durch den endgül­ tigen Bytezählstand bestimmt.
Am Ende einer Übertragung wird das momentane Steuerwort mit dem Status für die Übertragung geschrieben, während das andere Steuerwort für diesen Endpunkt gelesen wird, um zu prüfen, ob ein weiterer Puffer vorbereitet wurde. Nach den Steuerwort-Operationen ist der Endpunktkanal-Zustand aktua­ lisiert.
Durch eine Kombination aus Hardware und Software unterstützt das UNIM alle drei für den USB definierten Synchronisations­ klassen, nämlich asynchron, synchron und adaptiv. Der End­ punkt-Controller schafft eine Hardware-Unterstützung für die Überwachung des USB-Takts von 1 kHz relativ zu einem externen Referenztakt wie etwa einem Referenztakt von 8 kHz, und für die Überwachung der Qualität und der Konsistenz des USB-Takts von 1 kHz. Die Anstiegsflanken des externen Referenztakts werden in dem Referenzzählregister gezählt. Dies kann für den Vergleich mit der USB-Rahmennummer verwendet werden. Die Differenz zwischen den Frequenzen des Referenztakts und des USB-Takts kann in Paketen dem Host gemeldet werden, so daß der Host die USB-Taktfrequenz einstellen kann; dadurch kann der USB-Referenztakt auf den Referenztakt verriegelt werden.
Der Endpunkt-Controller behält außerdem den Status bei, um anzugeben, wenn er auf den USB-Takt von 1 kHz verriegelt ist und wenn aufgrund eines Fehlens oder eines inkorrekten Rahmenbeginn-Pakets im USB-Takt eine Diskontinuität auftritt. Dies wird von der Software für die Einstellung der Warteschlangen für die isochronen Pakete verwendet. Die momentane Rahmennummer wird vom Endpunkt-Controller für die Bestimmung, welcher isochrone Puffer als nächstes senden soll, verwendet.
Endpunktkanal-Controller
In einer zweckmäßigen Ausführung schafft der Endpunkt-Con­ troller (EPC) die Schnittstelle für die USB-Funktionsend­ punkte. In einer zweckmäßigen Ausführung werden bis zu sechzehn derartige Endpunktkanäle zu irgendeinem gegebenen Zeitpunkt unterstützt, wobei jeder die gleiche Funktions­ adresse besitzt. Der EPC behält getrennte Zustandsinforma­ tionen für jeden Endpunktkanal bei.
Zustandsinformationen, die für sofortige Entscheidungen erforderlich sind (etwa Antwort auf NAK- oder STALL-Quittie­ rungen) werden im Modul jederzeit für jeden Endpunktkanal gehalten. Andere Informationen, die für eine Endpunktopera­ tion notwendig sind, werden in einer Endpunktmatrix im Speicher gehalten. In einer zweckmäßigen Ausführung ist nur ein Endpunktkanal zu irgendeinem gegebenen Zeitpunkt aktiv, wodurch eine einzige Endpunktkanal-Zustandsmaschine von sämtlichen Endpunktkanälen gemeinsam genutzt werden kann.
Für IN-Token ist der EPC für die Übertragung von Daten vom definierten Puffer zum Host verantwortlich. Für OUT-Token ist der EPC für die Übertragung von Daten vom Host zum definierten Puffer verantwortlich. Um eine größere Flexibi­ lität bei der Zuweisung von Puffern an einen Endpunktkanal zu ermöglichen, ist in einer zweckmäßigen Ausführung ein Doppelpufferungsschema in jedem Endpunktkanal zulässig. Dadurch kann der EPC eine prompte Antwort auf sämtliche Transaktionen dieses Moduls schaffen, ohne auf NAKs zurück­ zugreifen.
In einer zweckmäßigen Ausführung werden sämtliche Informa­ tionen, die von Endpunktkanälen während Datenübertragungen verwendet werden, in der Endpunktmatrix gehalten, die sich in einem RAM befindet. Diese Matrix wird durch den Endpunktkanal auf der Grundlage, die im Endpunktmatrix-Basisadres­ senregister (EABA) definiert ist, indexiert. Diese Matrix enthält zwei Doppelwörter pro Endpunkt. Jedes Doppelwort ist ein Steuerwort, das einen Befehl und Statusinformationen für den Endpunktkanal wie etwa einen Zeiger auf den Beginn des Puffers, die Größe des Puffers, den Zustand des Puffers und andere relevante Parameter enthält.
Der Pufferzustand definiert, ob der Puffer für Eingabe- oder Ausgabetransaktionen verwendet werden soll und ob auf ihn momentan zugegriffen wird oder ob die gewünschte Operation abgeschlossen ist.
Wenn eine IN- oder OUT-Übertragung eines Endpunktkanals mit einem vorhandenen Puffer angefordert wird, wird das geeignete Steuerwort gelesen. Dieses Steuerwort teilt dem Endpunkt- Controller mit, wie er die Transaktion abzuschließen hat. Am Ende einer Transaktion wird in das Steuerwort der Status geschrieben, der durch Software als ein Hinweis zur Freigabe dieses Puffers und zur Schaffung eines neuen Puffers verwendet wird.
Register
In einer zweckmäßigen Ausführung sind zwei für die Erfindung relevante Register das Endpunkt-Befehlsregister und das USB- Datenregister.
In einer zweckmäßigen Ausführung ist das Endpunkt-Befehlsre­ gister (ECR) ein wortbreites Schreib-Lese-Register. Das ECR wird für die Ausführung von Befehlen an einem spezifischen Endpunkt verwendet. Beim Zurücksetzen wird dieses Register gelöscht. Das ECR-Registerformat lautet folgendermaßen:
Bits
Funktionsetikett
15-8 (reserviert)
7-4 Endpunktkanal-Nummer (EPN)
3-0 Endpunkt-Befehl (CMD)
Die Endpunktkanal-Nummer EPN bestimmt den Endpunktkanal, über den der Befehl ausgeführt wird. In einer zweckmäßigen Ausführung kann dieses Register in der Hochgeschwindigkeits- Busschnittstellenlogik implementiert sein. Die Daten laufen über die asynchrone Schnittstelle. Zwei Signale werden vom Endpunkt-Controller zurückgeschickt; eines gibt an, daß der Befehl verarbeitet wurde und daß der Befehlswert auf "0" gelöscht werden soll, während das andere angibt, daß der Befehl nicht verarbeitet werden konnte, und soll auf "F" gesetzt werden.
Der Endpunkt-Befehl CMD kann die folgenden Werte annehmen:
0000: Complete. Dieser Wert gibt an, daß der vorhergehende Befehl abgeschlossen ist und daß der Endpunkt-Controller für die Annahme eines weiteren Befehls bereit ist.
0001: Input Enable (CMD.IENB). Dieser Wert bewirkt, daß der spezifizierte Endpunktkanal aus dem Stall (Halt)- oder Disable-Zustand in den Input-Idle-Zustand I_IDL eintritt. Der Steuerwortzeiger für den spezifizierten Endpunktkanal wird auf 0 zurückgesetzt. Falls der momentane Zustand nicht Disable oder Stall ist, wird "F" zurückgeschickt, um anzuge­ ben, daß an diesem Endpunkt ein unzulässiger Befehl versucht wurde, wobei der Befehl ignoriert wird.
0010: Input Ready (CMD.IRDY). Dieser Wert bewirkt, daß der spezifizierte Endpunktkanal in den Input-Ready-Zustand I_RDY eintritt, wenn er sich momentan im Input-Idle-Zustand I_IDL befindet. Dieser Befehl wird ausgegeben, nachdem ein Steuer­ wort mit einem Input-Ready-Pufferzustand I_RDY in die End­ punktmatrix für den entsprechenden Endpunkt geschrieben worden ist. Dieser Befehl bewirkt nicht, daß das Steuerwort im Speicher gelesen wird; statt dessen ermöglicht er, daß es als Antwort auf den Empfang eines IN-Tokens gelesen wird. Falls der momentane Zustand des Endpunkts nicht der Input- Idle-Zustand I_IDL ist, wird der Befehl ignoriert. Falls der momentane Zustand entweder der Output oder der SETUP-Zustand oder aber Disable oder Stall ist, wird ein "F" zurückge­ schickt, um anzugeben, daß an diesem Endpunkt ein unzulässi­ ger Befehl versucht wurde.
0011: Input Isochronus Ready (CMD.ISRDY). Dieser Wert bewirkt, daß der spezifizierte Endpunktkanal in den Input Isochronus Ready-Zustand IS_RDY eintritt, falls er sich momentan im Input-Idle-Zustand I_IDL befindet. Dieser Befehl wird ausgegeben, nachdem ein Steuerwort mit dem Input-Ready- Pufferzustand in die Endpunktmatrix für den entsprechenden Endpunkt geschrieben wird. Dieser Befehl bewirkt nicht, daß das Steuerwort im Speicher gelesen wird; statt dessen ermög­ licht er, daß es als Antwort auf den Empfang eines IN-Token gelesen wird. Es wird erwartet, daß das Typenfeld des Steu­ erworts (TI) auf isochron gesetzt ist, dies wird jedoch nicht geprüft. Falls der momentane Zustand des Endpunkts nicht der Input-Idle-Zustand I_IDL ist, wird der Befehl ignoriert. Falls der momentane Zustand entweder der Output- oder der SETUP-Zustand oder aber Disable oder Stall ist, wird ein "F" zurückgeschickt, um anzugeben, daß ein unzulässiger Befehl an diesem Endpunkt versucht wurde.
0100: Output Enable (CMD.OEMB). Dieser Wert bewirkt, daß der spezifizierte Endpunktkanal vom Stall- oder Disable- Zustand in den Output-Idle-Zustand O_IDL eintritt. Der Steuerwortzeiger für den spezifizierten Endpunkt wird auf 0 zurückgesetzt. Falls der momentane Zustand nicht Disable oder Stall ist, wird ein "F" zurückgeschickt, um anzugeben, daß an diesem Endpunkt ein unzulässiger Befehl versucht wurde, wobei der Befehl ignoriert wird.
0101: Output Ready (CMD.ORDY). Dieser Wert bewirkt, daß der spezifizierte Endpunktkanal in den Output-Ready-Zustand O_RDY eintritt, falls er sich momentan im Output-Idle-Zustand O_IDL befindet. Der Befehl wird ausgegeben, nachdem ein Steuerwort mit einem Output-Ready-Zustand in die Endpunktmatrix für den entsprechenden Endpunkt geschrieben wird. Dieser Befehl bewirkt nicht, daß das Steuerwort im Speicher gelesen wird; statt dessen ermöglicht er, daß es als Antwort auf den Empfang eines OUT-Tokens gelesen wird. Falls der momentane Zustand des Endpunkts nicht der Output-Idle-Zustand ist, wird der Befehl ignoriert. Falls der momentane Zustand entweder der Input-Zustand, der Stall-Zustand oder der Disable-Zustand ist, wird ein "F" zurückgeschickt, um anzugeben, daß an diesem Endpunkt ein unzulässiger Befehl versucht wurde.
0110: Output Isochronous Enable (CMD.OSENB). Dieser Wert bewirkt, daß der spezifizierte Endpunktkanal aus dem Stall- oder Disable-Zustand in den Output-Isochronous-Idle-Zustand OS_IDLE eintritt. Der Steuerwortzeiger für den spezifizierten Endpunkt wird auf 0 zurückgesetzt. Falls der momentane Zustand nicht Disable oder Stall ist, wird ein "F" zurückge­ schickt, um anzugeben, daß an diesem Endpunkt ein unzulässi­ ger Befehl versucht wurde, wobei dieser Befehl ignoriert wird.
0111: Output Isochronous Ready (CMD.OSRDY). Dieser Wert bewirkt, daß der spezifizierte Endpunktkanal in den Output- Isochronous-Ready-Zustand OS_RDY eintritt, falls er sich momentan im Output-Isochronous-Idle-Zustand OS_IDL befindet. Dieser Befehl wird ausgegeben, nachdem ein Steuerwort mit einem Output-Ready-Zustand in die Endpunktmatrix für den entsprechenden Endpunkt geschrieben worden ist. Dieser Befehl bewirkt nicht, daß das Steuerwort im Speicher gelesen wird; statt dessen ermöglicht er, daß es als Antwort auf den Empfang eines OUT-Token gelesen wird. Falls der momentane Zustand des Endpunkts nicht der Output-Isochronous-Idle- Zustand ist, wird der Befehl ignoriert. Falls der momentane Zustand entweder der Input-Zustand, der Stall-Zustand oder der Disable-Zustand ist, wird ein "F" zurückgeschickt, um anzugeben, daß an diesem Endpunkt ein unzulässiger Befehl versucht wurde.
1000: SETUP Ready (CMD.SRDY) Dieser Wert bewirkt, daß der spezifizierte Endpunktkanal in den SETUP-Ready-Zustand S_RDY eintritt. Dieser Befehl wird ausgegeben, nachdem ein Steuer­ wort für einen Output-Ready-Zustand in die Endpunktmatrix für den entsprechenden Endpunkt geschrieben worden ist. Dieser Befehl bewirkt nicht, daß das Steuerwort im Speicher gelesen wird; statt dessen ermöglicht er, daß es als Antwort auf den Empfang eines SETUP-Token gelesen wird. Falls der momentane Zustand des Endpunkts nicht Stall oder Disable ist, wird der Befehl ignoriert.
1001: Disable (CMD.DISAB). Dieser Wert bewirkt, daß der spezifizierte Endpunktkanal in den gesperrten Zustand Disable eintritt. Dies erfolgt unmittelbar nach irgendeinem Zustand. Falls der Endpunktkanal momentan aktiv ist, wird der Status in das Steuerwort geschrieben, um anzugeben, daß der Endpunkt gesperrt wurde.
1010: Stall (CMD.HALT). Dieser Wert bewirkt, daß der spezifizierte Endpunkt aus irgendeinem Zustand in den Stall- Zustand HALT eintritt. Dies erfolgt unmittelbar aus irgend­ einem Zustand. Falls der Endpunktkanal momentan aktiv ist, wird der Status in das Steuerwort geschrieben, um anzugeben, daß der Endpunkt blockiert wurde.
1011-1101: reserviert. Diese Werte bewirken keine auszufüh­ rende Aktion und schicken 0 zurück.
1110: Toggle CWP. Dieser Wert bewirkt, daß der Steuerwort­ zeiger geschaltet wird. Dies wird bei Steuerübertragungen mit einer ungeraden Anzahl von Paketen, die während der Datenphase geschickt oder empfangen werden, verwendet.
1111: Error. Dieser Wert gibt an, daß im momentanen End­ punktkanal für seinen momentanen Zustand ein unzulässiger Befehl versucht wurde und daß ein neuer Befehl akzeptiert werden kann.
In einer zweckmäßigen Ausführung ist das USB-Datenregister (UDR) ein wortbreites Schreib-Lese-Register. Lesezugriffe sind an sämtlichen Plätzen zugelassen. Das Datenregister wird mit den Daten geladen, die für das Register gelesen werden, das stets durch ein USB-Indexregister (UIR) gewählt wird. Schreibvorgänge dieses Registers sind nur in den USB-Hub- Registern zulässig, wenn die Wählbits des UIR (UIR.SEL) den Wert 2 haben. Im Bit 15 des UIR ist ein Statusbit definiert, das angibt, daß eine Schreiboperation erfolgreich gewesen ist. Dies ist nur notwendig, wenn die Hub-Funktionalität enthalten ist.
Der für die Erfindung relevante Teil des UDR ist der 8-Bit- Endpunktkanal-Zustand. Dieser Zustand ist für jeden End­ punktkanal gespeichert und wird für den momentan indexierten Endpunktkanal zurückgeschickt. Falls ein ungültiger End­ punktkanal indexiert ist, wird 0 zurückgeschickt. Das ECR- Registerformat ist im folgenden gezeigt:
Bits
Funktionsetikett
7 Steuerung (CTL)
6 Steuerwortzeiger (CWP)
5-4 (reserviert)
3-0 Endpunktkanal-Zustand (EPS)
Steuerung CTL: Dies wird bejaht, falls dieser Endpunktkanal Steuersequenzen annehmen kann, die das SETUP-Token enthalten. Dieses Bit wird gesetzt, nachdem CMD.SRDY für diesen Endpunktkanal ausgeführt worden ist, und bleibt gesetzt, bis der Endpunkt gesperrt (disabled) wird.
Steuerwortzeiger CWP: Wenn das Steuerwortbit 0 ist, wird als nächstes auf das Steuerwort 0 dieses Endpunkts in der End­ punktmatrix zugegriffen. Wenn das Steuerwortbit 1 ist, wird als nächstes auf das Steuerwort 1 für diesen Endpunkt zuge­ griffen. Dies wird auf 0 gesetzt, wann immer der Endpunkt freigegeben wird.
Der Endpunktkanal-Zustand EPS kann die folgenden Werte annehmen:
Wert
Zustand
0 Disabled DIS
1 Input Idle I_IDL
2 Input Ready I_RDY
3 Input Active I_ACT
4 Stall HALT
5 Input Missed ACK I_MAK
6 Input Isochronous Ready IS_RDY
7 Input Isochronous Active IS_ACT
8 SETUP Ready S_RDY
9 Output Idle O_IDL
10 Output Ready O_RDY
11 Output Active O_ACT
12 SETUP Active S_ACT
13 Output Isochronous Idle OS_IDL
14 Output Isochronous Ready OS_RDY
15 OUTPUT ISOCHRONOUS ACTIVE OS_ACT
In einer zweckmäßigen Ausführung ist nur ein Endpunktkanal zu irgendeiner gegebenen Zeit aktiv.
Steuerwort
In einer zweckmäßigen Ausführung enthält die Endpunktkanal- Matrix 32 Steuerwörter, 2 für jeden Endpunktkanal. Die Endpunktkanal-Matrix befindet sich in einem Speicher an einer Adresse, auf die ein Endpunktmatrix-Basisadressenregister EABAR zeigt. Diese Adresse muß 128-Byte-synchronisiert sein (d. h. die 7 LSBs der Adresse sind 0). Die Endpunktkanal- Matrix ist durch die 4-Bit-Endpunktkanal-Nummer EPN indexiert, ferner ist das Steuerwort, auf das zugegriffen wird, durch den 1-Bit-Endpunktkanal-Steuerwortzeiger CWP bestimmt. Das 25-Bit-EABAR, die 4-Bit-EPN und der 1-Bit-CWP erzeugen eine auf eine Doppelwortgrenze (32-Bit-Grenze) synchronisierte 32-Bit-Adresse und werden für den Zugriff auf das 32-Bit-Steuerwort verwendet.
Das 32-Bit-Steuerwort enthält sämtliche Informationen, die für den Betrieb dieses Endpunktkanals erforderlich sind, wenn dieser aktiv ist. Für jeden Endpunktkanal gibt es zwei derartige Einträge. Das Steuerwort, auf das als nächstes zugegriffen werden soll, ist durch den Wert des Endpunktka­ nal-Steuerwortzeigers CWP bestimmt. Sofort nach dem Empfang eines IN-Token, eines OUT-Token oder eines SETUP-Token durch einen momentan in Bereitschaftszustand befindlichen End­ punktkanal wird das Steuerwort des gewählten Endpunktkanals des momentanen Steuerwortzeigers gelesen, um zu bestimmen, wie auf das Token geantwortet werden soll. Am Ende einer Übertragung, wenn der Abschlußstatus geschrieben wird, wird das Steuerwort durch den momentanen Status aktualisiert, wird der CWP inkrementiert und wird das andere Steuerwort gelesen. Wenn ein Zwischenstatus geschrieben wird, wird nur das höchstwertige Byte des Steuerworts aktualisiert. Das Steuerwortformat ist im folgenden gezeigt:
Bits
Funktionsetikett
31-28 Pufferzustand BS
27 (reserviert)
26-16 Pufferadresse BA
15 Pufferseite BB
14 Pufferrundung BR
13 Schaltfreigabe (Toggle Enable) TE
12 Isochron-Typ TI
11 Unterbrechung bei vollständigem Paket IC
10 Unterbrechung bei Paketfehler IE
9-0 Bytezählstand BC
Der 4-Bit-Pufferzustand BS ist ein Teil des Steuerworts, der für die Erfindung relevant ist. Der Pufferzustand wird durch Software und den Endpunktkanal-Controller EPC aktualisiert um die Steuerung dieses Puffers zwischen ihnen zu synchroni­ sieren. Der EPC schreibt den Status, der die Verwendung des Puffers angibt. Dieses Feld wird durch eine Knoten-Firmware auf Output Ready, Input Ready, SETUP Ready, Skip, Stall und Disable gesetzt. Sämtliche anderen Werte werden durch den EPC gesetzt. Der EPC kann außerdem die Stall-Disable-Werte in Fehlerzuständen schreiben. Der Puffer kann durch die Knoten- Firmware erneut in Anspruch genommen werden, wenn der Pufferzustand irgendeiner der Abschlußwerte ist; diese umfassen den Eingangs-/Ausgangsabschluß-Status und die Fehlercodes.
Der Pufferzustand BS kann die folgenden Werte annehmen:
0: Skip. Dieser Wert wird zusammen mit dem Output Ready- Befehl verwendet. Skip bewirkt, daß das nächste empfangene Datenpaket ignoriert wird und daß der Steuerwortzeiger inkrementiert wird. Für Steuerendpunkte bewirkt Skip außer­ dem, daß der Endpunktkanal-Zustand vom Input-Ready-Zustand zum Output/Input-Idle-Zustand geschaltet wird. Das Setzen von TE und TI bestimmt, welche Quittung zurückgeschickt wird, sowie den nächsten Zustand des Endpunktkanals. Eine NAK wird zurückgeschickt, falls weder TE noch TI gesetzt ist. Falls TI gesetzt ist und TE nicht gesetzt ist, wird keine Quittung zurückgeschickt. Falls TE gesetzt ist, wird eine ACK zurückgeschickt und der Abschlußstatus wird geschrieben, wenn ein Paket mit dem richtigen PID empfangen wird.
1: Input Ready IRDY. Dieser Wert gibt an, daß in den Puffer Daten geschrieben worden sind, die als Antwort auf ein IN- Token gesendet werden sollen.
2: Output Ready ORDY. Dieser Wert gibt an, daß der Puffer zum Schreiben vorgesehen ist.
3: SETUP Ready SRDY. Dieser Wert gibt an, daß der Puffer zum Schreiben vorgesehen worden ist. Dies wird nur an einem Steuerendpunkt während der ersten Übertragung von Steuerlese- und Steuerschreib-Operationen verwendet. Geschrieben wird nur in das Steuerwort 0.
4: Output Wait OWT. Dieser Wert gibt an, daß während des Empfangs von OUT-Daten vom Host ein Fehler aufgetreten ist. Dies enthält die Erfassung eines Bitverstopfungsfehlers. Es wird eine Wiederholung erwartet, da dies als Zwischenstatus angesehen wird, es sei denn, es handelt sich um einen isochronen OUT-Endpunkt, wo der Status als Abschlußstatus behandelt wird.
5: CRC Error CRCE. Dieser Wert gibt an, daß am Ende einer OUT-Transaktion ein fehlerhafter CRC erfaßt wurde. Es wird eine Wiederholung erwartet, da der Status als Zwischenstatus angesehen wird, es sei denn, es handelt sich um einen isochronen OUT-Endpunkt, wo der Status als Abschlußstatus behandelt wird.
6: Buffer Error BUFE. Dieser Wert gibt an, daß während eines OUT Daten vom USB schneller empfangen wurden, als sie in den Speicher geschrieben werden können. Während eines IN wurden Daten nicht schnell genug aus dem Speicher ausgelesen, um mit der USB-Datenrate mit zuhalten. An diesem Endpunkt wird eine Wiederholung erwartet.
7: Input Wait IWT. Dieser Wert gibt an, daß der Puffer vom Endpunkt-Controller gehalten wird und darauf wartet, ein Senden bei der nächsten Gelegenheit zu versuchen oder erneut zu versuchen. Dies tritt im Fall einer fehlenden Bestätigung auf.
8: Input Complete ICMB. Dieser Wert gibt einen erfolgreichen Abschluß dieser Eingangsoperation an. Der Puffer kann freigegeben werden.
9: Output Complete OCMB. Dieser Wert gibt an, daß der Puffer mit Daten gefüllt ist und kein Fehler erfaßt wurde.
10: Token Error TKNE. Dieser Wert gibt an, daß ein Token des falschen Typs für den momentanen Kontext dieses Steuer- Endpunktkanals empfangen wurde. Falls es sich um einen Ausgangspuffer handelte, wird der Endpunkt angehalten. Falls es sich um einen Eingangspuffer handelte, wird eine NAK geschickt und der Zustand des anderen Steuerworts wird untersucht. Dies wird als ein Abschlußzustand angesehen.
11: Isochronous Synchronization Error SYNE. Dieser Wert gibt an, daß im Puffer mit TE = 1 und TI = 1 Daten empfangen wurden, daß jedoch der CWP nicht gleich dem LSB des FNR war. Dies wird als Abschlußzustand angesehen.
12: Data Error DATE. Für OUT-Daten, wenn CW.BR nicht gesetzt ist und die Datenmenge, die vom Host empfangen wurde, gerin­ ger als erwartet war, oder wenn der zugewiesene Puffer nicht groß genug war, um die OUT-Daten zu speichern. Für IN-Daten wird dies gesetzt, falls ein Pufferungsfehler auftrat und CW.TE nicht gesetzt war oder CW.TI gesetzt war. Dies wird als Abschlußzustand angesehen.
13: (Reserviert).
14: Halt. Dies bewirkt, daß der momentane Endpunktkanal in seinen HALT-Zustand eintritt, oder es gibt an, daß der Endpunkt in den HALT-Zustand eingetreten ist.
15: Disable. Bewirkt, daß der momentane Endpunktkanal in seinen DISABLE-Zustand eintritt, oder gibt an, daß der Endpunkt in den DISABLE-Zustand eingetreten ist.
Endpunktkanal-Zustände
In einer zweckmäßigen Ausführung kann ein Endpunkt die folgenden Zustände haben. Um die Operation und die Steuerung aufrechtzuerhalten, behält jeder Endpunktkanal einen Zustand mit wohldefinierten Bedingungen für die Übertragung zwischen den Zuständen, die eine implizite Hardware/Software-Synchro­ nisation umfassen, bei. Die Endpunktkanal-Zustandsübergänge treten auf:
  • - bei expliziten Software-Befehlen an einen Endpunkt über das Endpunkt-Befehlsregister ECR;
  • - durch Lesen des Pufferstatus des anderen Puffers im anderen Steuerwort für diesen Endpunkt am Ende einer Über­ tragung; und
  • - als Ergebnis von Ereignissen auf dem USB wie etwa ein Empfang von IN-, OUT- und SETUP-Tokens sowie ACK-Quittierun­ gen.
Fig. 4 zeigt die vereinfachte Endpunktkanal-Zustandsmaschine zur Handhabung von IN- und OUT-Transaktionen. Die Handhabung von Steuerlese- und Steuerschreib-Transaktionen erfolgt in ähnlicher Weise.
Der momentane Endpunktkanal-Zustand ist im Endpunkt-Zu­ standsregister sichtbar, auf das über den USB-Index und über Datenregister zugegriffen werden kann. In einer zweckmäßigen Ausführung ist höchstens ein Endpunktkanal zu irgendeinem gegebenen Zeitpunkt in einem der aktiven Zustände. Dadurch kann die Aktivzustandslogik von sämtlichen Endpunktkanälen gemeinsam genutzt werden.
Ein Endpunktkanal kann, wie in Fig. 4 gezeigt ist, die folgenden Zustände haben:
Disable. In den DISABLE-Zustand wird bei einem Zurücksetzen, bei einem Disable-Befehl für diesen Endpunktkanal sowie bei der Erfassung eines Disable-Zustands im Pufferzustand eines Steuerworts eingetreten. Irgendein Token, das von diesem Endpunktkanal empfangen wird, wenn er in diesem Zustand ist, wird ohne Quittierung zurückgeschickt. Es ist ein Software- Eingriff erforderlich, um den Endpunktkanal aus diesem Zustand zu entfernen, typischerweise über einen Enable-Befehl in einen der Idle-Zustände.
Halt. In den HALT-Zustand wird eingetreten bei dem Stall- Befehl für diesen Endpunktkanal, bei Erfassung eines Stall- Zustands im Pufferzustand eines Steuerworts und bei bestimm­ ten Fehlerbedingungen. Für irgendein Token, das von diesem Endpunktkanal empfangen wird, wenn er sich in diesem Zustand befindet, wird eine Stall-Quittierung zurückgeschickt, um anzugeben, daß der Endpunkt momentan blockiert ist. Es ist ein Software-Eingriff erforderlich, um den Endpunktkanal aus diesem Zustand zu entfernen, typischerweise über einen Enable-Befehl für einen der Leerlaufzustände.
Input Idle I_IDL. In diesem Zustand erwartet der Endpunkt, daß der Puffer bald zugewiesen wird. Eine NAK-Quittierung wird als Antwort auf ein IN-Token, das auf diesen Endpunkt­ kanal abgebildet wird, zurückgeschickt. Für OUT-Tokens wird keine Antwort von diesem Endpunktkanal zurückgeschickt.
Input Ready I_RDY. In diesen Zustand wird über einen Input- Ready-Befehl für diesen Endpunktkanal oder bei Erfassung eines weiteren Input-Puffers am Ende einer Übertragung eingetreten. Der Befehl sollte nur gegeben werden, nachdem ein Puffer diesem Endpunkt zugewiesen worden ist, indem das Steuerwort an den entsprechenden Platz in der Endpunktmatrix geschrieben wird. Dieses Steuerwort sollte auf einen Daten­ puffer zeigen, um Daten an den Host als Antwort auf das nächste von diesem Endpunktkanal empfangene IN-Token zurück­ zuschicken. Der PID-Wert wird als DATA0, wenn CWP 0 ist, und als DATA1, wenn CWP 1 ist, gesendet.
Input Active I_ACT. In diesen Zustand wird bei Empfang eines IN-Token eingetreten, wenn der gewählte Endpunktzustand momentan der Input-Ready-Zustand ist. Während dieses Zustands werden Daten vom Speicher an den USB übertragen. Bei Abschluß der Datenübertragung sollte innerhalb von 16 Bitzeiten eine ACK-Quittierung empfangen werden. Falls am Ende dieser Zeitabschaltperiode ein ACK nicht empfangen wurde, wird der Puffer-Wait-Status zurück in das Steuerwort geschrieben. Die Adresse und der Byte-Zähler werden jedoch nicht überschrieben, weil eine Rücksendung auftreten wird und weil die momentanen Werte erneut verwendet werden müssen. Falls eine ACK empfangen wird, werden der Pufferstatus zusammen mit dem momentanen Wert der Adresse und des Byte-Zählers geschrieben. Dann wird das andere Steuerwort in diesem Endpunkt gelesen, um den nächsten Zustand des Endpunkts zu bestimmen, der verwendet werden soll, wenn ein Token beim nächsten Mal an diesen Endpunktkanal gerichtet wird. Falls dieser Endpunkt für eine Steuerübertragung verwendet wird, kann eine Übertragung in den Output-Ready- oder in den Output-Idle-Zustand auftreten, um die Statusphase einer Steuerwortübertragung abzuschließen.
Input Isochronous Ready IS_RDY. In diesen Zustand wird über einen Input-Ready-Befehl in diesen Endpunktkanal oder bei Erfassung eines weiteren Input-Puffers am Ende einer Über­ tragung eingetreten. Der Befehl sollte nur gegeben werden, nachdem diesem Endpunkt ein Puffer zugewiesen worden ist, indem das Steuerwort an den geeigneten Platz in der End­ punktmatrix geschrieben wird. Dieses Steuerwort sollte auf einen Datenpuffer zeigen, wobei Daten zum Host als Antwort auf das nächste von diesem Endpunktkanal empfangene IN-Token zurückgeschickt werden. Der PID-Wert wird stets unabhängig vom Wert des CWP als DATA0 gesendet.
Input Isochronous Active IS_ACT. In diesen Zustand wird bei Empfang eines IN-Token eingetreten, wenn der gewählte End­ punktzustand momentan Input Ready ist. Während dieses Zu­ stands werden Daten vom Speicher an den USB übertragen. Bei Abschluß der Datenübertragung werden der Pufferstatus zusam­ men mit dem momentanen Wert der Adresse und des Byte-Zählers am Ende der Übertragung geschrieben. Dann wird das andere Steuerwort an diesem Endpunkt gelesen, um den nächsten Zustand des Endpunkts zu bestimmen, der verwendet werden soll, wenn ein Token zum nächsten Mal an diesen Endpunktkanal gerichtet ist.
Output Idle O_IDL. In diesem Zustand erwartet der Endpunkt, daß ein Puffer bald zugewiesen wird. Eine NAK-Quittierung wird als Antwort auf ein OUT-Token, das auf diesen Endpunkt abgebildet ist, zurückgeschickt. Für IN-Tokens wird an diesen Endpunktkanal keine Antwort zurückgeschickt.
Output Ready O_RDY. In diesen Zustand wird eingetreten, nachdem diesem Endpunktkanal ein Puffer zugewiesen worden ist, in den Daten geschrieben werden. Dies kann über einen Output-Ready-Befehl vom O_IDL-Zustand erfolgen, nachdem das geeignete Wort in die Endpunktmatrix geschrieben worden ist, oder bei Erfassung eines weiteren Output-Puffers am Ende einer Übertragung.
Output Active O_ACT. In diesen Zustand wird bei Empfang eines OUT-Token eingetreten. Während dieses Zustands werden Daten vom USB in den Speicher geschrieben. Am Ende einer Ausgangsübertragung wird der Status in das Steuerwort im CWP geschrieben. Falls die Übertragung nicht erfolgreich war, d. h., falls ein CRC- oder Bitverstopfungsfehler erfaßt wurde, wird dies als Pufferstatus geschrieben. Falls die Übertragung erfolgreich war, wird der Output-Complete-Puf­ ferstatus geschrieben, wird CWP invertiert und wird das andere Steuerwort für diesen Endpunktkanal gelesen. Der geeignete Übergang erfolgt anhand des Pufferzustands. Falls dieser Endpunkt für eine Steuerübertragung verwendet wird, kann eine Übertragung in den Input-Ready- oder in den Input- Idle-Zustand erfolgen, um die Statusphase einer Steuerwort­ übertragung abzuschließen.
Output Isochronous Idle OS_IDL. In diesem Zustand erwartet der Endpunkt, daß ein Puffer bald zugewiesen wird. Als Antwort auf ein OUT-Token, das auf diesen Endpunktkanal abgebildet ist, wird keine Quittierung zurückgeschickt. An diesem Endpunktkanal werden für IN-Tokens keine Daten oder Quittierungen zurückgeschickt.
Output Isochronous Ready OS_RDY. In diesen Zustand wird eingetreten, nachdem diesem Endpunktkanal ein Puffer zuge­ wiesen worden ist, in den Daten geschrieben werden. Dies kann über einen OS_RDY-Befehl vom OS_IDL-Zustand folgen, nachdem das geeignete Wort in die Endpunktmatrix geschrieben worden ist, oder bei Erfassung eines weiteren Output-Puffers am Ende einer Übertragung.
Output Isochronous Active OS_ACT. In diesen Zustand wird eingetreten bei Empfang eines OUT-Token vom OS_RDY-Zustand. Während dieses Zustands werden Daten vom USB in den Speicher geschrieben. Am Ende einer Ausgabeübertragung wird der Status in das Steuerwort bei CWP geschrieben. Falls die Übertragung nicht erfolgreich war, d. h. falls ein CRC- oder ein Bitverstopfungsfehler erfaßt wurde, wird dies als Puf­ ferstatus geschrieben. Falls die Übertragung erfolgreich war, wird der Ausgabeabschluß-Pufferstatus geschrieben. Am Ende der Statusübertragung wird CWP invertiert und wird das andere Steuerwort für diesen Endpunktkanal gelesen. Der geeignete Übergang erfolgt anhand des Pufferzustands.
Setup Ready S_RDY. In diesen Zustand wird eingetreten, nachdem diesem Endpunktkanal ein Puffer zugewiesen worden ist, in den Daten geschrieben werden. In diesen Zustand wird durch einen Setup-Ready-Befehl eingetreten, nachdem das geeignete Wort in die Endpunktmatrix geschrieben wird, oder bei Erfassung des Setup-Ready-Pufferzustands.
Setup Active S_ACT. In diesen Zustand wird aus dem Setup- Ready-Zustand eingetreten bei Empfang eines SETUP-Token. Während dieses Zustands werden Daten vom USB in den Speicher geschrieben. Am Ende einer Ausgangsübertragung wird der Status in das Steuerwort bei CWP geschrieben, wird CWP invertiert und wird das andere Steuerwort für diesen End­ punktkanal gelesen. Der geeignete Übergang erfolgt in Abhän­ gigkeit vom Typ der Steuerübertragung und des gelesenen Pufferzustands anhand des Pufferzustands in den Output-Idle-, Output-Ready-, Input-Idle- oder Input-Ready-Zustand.
Nach dem Zurücksetzen sind sämtliche Endpunkte gesperrt. Ein Endpunkt wird freigegeben, indem in einen Endpunkt ein Freigabebefehl eingegeben wird. Dies sollte nur geschehen, wenn Eingangs- und/oder Ausgangspuffer bald diesem Endpunkt zugewiesen werden. Sämtliche Endpunkte, die momentan nicht auf einen Endpunktkanal abgebildet sind, werden als gesperrt angesehen.
Eine Software weist die Puffer an Endpunktkanäle je nach Bedarf zu. Nachdem jeder Puffer zugewiesen ist, führt er den Input- oder Output-Ready-Befehl am Endpunktkanal aus. Falls der Endpunktkanal momentan im Leerlaufzustand ist, tritt er in den geeigneten Ready-Zustand ein. Falls der Endpunktkanal momentan in einem Ready- oder Active-Zustand ist, ignoriert er sämtliche Befehle mit Ausnahme des Disable- und des Stall- Befehls in den Endpunktkanal, die er sofort verarbeitet. Dieses Schreiben muß durch Software geschehen, um mögliche Synchronisationsprobleme zu vermeiden, da die UNIM- Endpunktkanal-Verarbeitung in bezug auf Software-Operationen asynchron ist.
Da jedem Endpunkt bis zu zwei Puffer zugewiesen werden können, kann der nächste Puffer vorbereitet werden, während der momentane verarbeitet wird, um die Datenübertragung zu beschleunigen und um unnötige NAK-Quittierungen zu vermeiden.

Claims (20)

1. Vorrichtung zum Steuern eines vielseitigen USB- Endpunktkanals, der einen Endpunktkanal-Zustand und einen Endpunktkanal-Typ besitzt,
dadurch gekennzeichnet, daß
ein erstes Datenspeicherelement (110, 210, 310), das einen Zustandswert speichert, der den Endpunktkanal-Zustand angibt,
ein zweites Datenspeicherelement (120, 220, 320), das einen Endpunkt-Befehl speichert, und
eine Steuerschaltungsanordnung (130, 230, 340), die den Zustandswert von einem Wartewert, der einen Wartezustand angibt, in einen Leerlaufwert, der einen Leerlaufzustand angibt, ändert, wenn der Endpunkt-Befehl ein Freigabebefehl ist, wobei der Endpunktkanal-Typ unbestimmt ist, wenn der Zustandswert den Wartezustand angibt, und wobei der Freiga­ bebefehl den Endpunktkanal-Typ bestimmt, vorgesehen sind.
2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der Wartezustand entweder ein Sperrzustand oder ein Blockierzustand ist.
3. Vorrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß der Endpunktkanal-Typ entweder als isochroner Aus­ gangskanal, als nicht-isochroner Ausgangskanal oder als Eingangskanal bestimmt wird.
4. Vorrichtung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß der Freigabebefehl entweder ein Ausgangsfreigabebe­ fehl, ein isochroner Ausgangsfreigabebefehl oder ein Ein­ gangsfreigabebefehl ist.
5. Vorrichtung nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß
die Steuerschaltungsanordnung (130) den Zustandswert vom Leerlaufwert in einen Bereitwert ändert, der einen Bereitzustand angibt, wenn der Endpunkt-Befehl ein Bereitbe­ fehl ist, und
der Bereitbefehl den Endpunktkanal-Typ bestimmt.
6. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, daß der Endpunktkanal-Typ entweder als isochroner Aus­ gangskanal, als nicht-isochroner Ausgangskanal, als isochro­ ner Eingangskanal oder als nicht-isochroner Eingangskanal bestimmt wird.
7. Vorrichtung nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß das mindestens eines der Datenspeicherelemente (110, 210, 310, 120, 220, 320) ein Register ist.
8. Vorrichtung zum Steuern eines vielseitigen USB- Endpunktkanals, insbesondere nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß
ein erstes Datenspeicherelement (210), das einen Zustandswert speichert, der den Endpunktkanal-Zustand angibt,
ein weiteres Datenspeicherelement (220), das einen Pufferbefehl speichert, und
eine Steuerschaltungsanordnung (230), die als Antwort auf den Pufferbefehl den Zustandswert von einem aktiven Wert, der einen aktiven Zustand (280) angibt, in einen differenten Wert, der einen anderen Zustand (290) angibt, ändert, vorgesehen sind.
9. Vorrichtung nach Anspruch 8, dadurch gekennzeichnet, daß der andere Zustand (290) entweder ein Leerlaufzustand ist, wenn der Pufferbefehl ein Pufferabschlußbefehl ist, oder ein Bereitzustand ist, wenn der Pufferbefehl ein Pufferbereitbefehl ist.
10. Vorrichtung nach Anspruch 8 oder 9, dadurch gekennzeichnet, daß
die Steuerschaltungsanordnung (340) den Zustandswert von einem Wartewert, der entweder ein Halte-Wert, der einen Halte-Zustand angibt, oder ein Sperrwert, der einen gesperrten Zustand angibt, ist, zu einem Leerlaufwert ändert, der entweder ein Eingangsleerlaufwert, der einen Eingangsleerlauf-Zustand angibt, wenn der Endpunkt-Befehl ein Eingangsfreigabebefehl ist, ein isochroner Ausgangsleerlaufwert, der einen isochronen Ausgangsleerlauf- Zustand angibt, wenn der Endpunkt-Befehl ein isochroner Ausgangsfreigabebefehl ist, oder ein nicht-isochroner Ausgangsleerlaufwert ist, der einen nicht-isochronen Leerlaufzustand angibt, wenn der Endpunkt-Befehl ein nicht­ isochroner Ausgangsleerlaufbefehl ist,
die Steuerschaltungsanordnung (340) den Zustandswert vom Eingangsleerlaufwert zu einem isochronen Eingang-Bereit- Wert ändert, der einen isochronen Eingang-Bereit-Zustand angibt, wenn der Endpunkt-Befehl ein isochroner Eingang- Bereit-Befehl ist, vom Eingangsleerlaufwert zur einem nicht­ isochronen Eingang-Bereit-Wert ändert, der einen nicht-iso­ chronen Eingang-Bereitzustand angibt, wenn der Endpunkt- Befehl ein nicht-isochroner Eingang-Bereit-Befehl ist, vom isochronen Ausgangsleerlaufwert zu einem isochronen Ausgang- Bereit-Wert ändert, der einen isochronen Ausgang-Bereit- Zustand angibt, wenn der Endpunkt-Befehl ein isochroner Ausgang-Bereit-Befehl ist, und vom nicht-isochronen Aus­ gangsleerlaufwert zu einem nicht-isochronen Ausgang-Bereit- Wert ändert, der einen nicht-isochronen Ausgang-Bereit- Zustand angibt, wenn der Endpunkt-Befehl ein nicht-isochroner Ausgang-Bereit-Befehl ist,
die Steuerschaltungsanordnung (340) den Zustandswert von einem isochronen Eingang-Aktiv-Wert, der einen isochronen Eingang-Aktiv-Zustand angibt, zu einem Eingangsleerlauf­ zustand ändert, wenn der Pufferbefehl ein Eingangspufferab­ schluß-Befehl ist, vom isochronen Eingang-Aktiv-Wert zum isochronen Bereit-Wert ändert, wenn der Pufferbefehl ein Eingang-Bereit-Befehl ist, von einem nicht-isochronen Ein­ gang-Aktiv-Wert, der einen nicht-isochronen Eingang-Aktiv- Zustand angibt, zum Eingangsleerlaufwert ändert, wenn der Pufferbefehl der Eingangspufferabschluß-Befehl ist, von dem nicht-isochronen Eingang-Aktiv-Wert zu dem nicht-isochronen Eingang-Bereit-Wert ändert, wenn der Pufferbefehl der Ein­ gangspufferbereit-Befehl ist, von einem isochronen Ausgang- Aktiv-Wert, der einen isochronen Ausgang-Aktiv-Zustand angibt, zum isochronen Ausgangsleerlaufwert ändert, wenn der Pufferbefehl ein Ausgangspufferabschluß-Befehl ist, vom isochronen Ausgang-Aktiv-Wert zum isochronen Ausgang-Bereit- Wert ändert, wenn der Pufferbefehl ein Ausgangspufferbereit- Befehl ist, von einem nicht-isochronen Ausgang-Aktiv-Wert, der einen nicht-isochronen Ausgang-Aktiv-Zustand angibt, zu dem nicht-isochronen Ausgangsleerlauf-Zustand ändert, wenn der Pufferbefehl der Ausgangspufferabschluß-Befehl ist, und vom nicht-isochronen Ausgang-Aktiv-Wert zu dem nicht­ isochronen Ausgang-Bereit-Wert ändert, wenn der Pufferbefehl der Ausgangspuffer-Bereit-Befehl ist,
der Endpunktkanal-Typ unbestimmt ist, wenn der Zustandswert der Wartewert ist und
der Endpunktkanal-Typ ein Eingangskanal ist, wenn der Endpunkt-Befehl der Eingangsfreigabebefehl ist, ein isochroner Ausgangskanal ist, wenn der Endpunkt-Befehl der isochrone Augangsfreigabebefehl ist, ein nicht-isochroner Ausgangskanal ist, wenn der Endpunkt-Befehl der nicht-iso­ chrone Ausgangsfreigabebefehl ist, ein isochroner Ein­ gangsbefehl ist, wenn der Endpunkt-Befehl der isochrone Eingang-Bereit-Befehl ist, und ein nicht-isochroner Ein­ gangskanal ist, wenn der Endpunkt-Befehl der nicht-isochrone Eingang-Bereit-Befehl ist.
11. Verfahren zum Steuern eines vielseitigen USB-End­ punktkanals, der einen Endpunktkanal-Zustand und einen Endpunktkanal-Typ enthält,
gekennzeichnet durch die folgenden Schritte:
Beibehalten des Endpunktkanal-Zustands in einem Wartezustand (350), wobei der Endpunktkanal-Typ unbestimmt ist, und
Ändern des Endpunktkanal-Zustands vom Wartezustand (350) in einen Leerlaufzustand (360) als Antwort auf einen Freigabebefehl, wobei der Freigabebefehl den Endpunktkanal- Typ bestimmt.
12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß der Wartezustand (350) entweder ein Sperr-Zustand oder ein Halte-Zustand ist.
13. Verfahren nach Anspruch 11 oder 12, dadurch gekennzeichnet, daß der Endpunktkanal-Typ in der Weise bestimmt wird, daß er entweder ein isochroner Ausgangskanal, ein nicht-iso­ chroner Ausgangskanal oder ein Eingangskanal ist.
14. Verfahren nach einem der Ansprüche 11 bis 13, dadurch gekennzeichnet, daß der Freigabebefehl als Ausgangsfreigabebefehl, als isochroner Ausgangsfreigabebefehl oder als Eingangsfreigabe­ befehl gewählt wird.
15. Verfahren nach einem der Ansprüche 11 bis 14, gekennzeichnet durch den folgenden Schritt:
Ändern des Endpunktkanal-Zustands vom Leerlaufzustand (360) zu einem Bereitzustand (370) als Antwort auf einen Bereit-Befehl, wobei der Bereit-Befehl den Endpunktkanal-Typ bestimmt.
16. Verfahren nach Anspruch 15, dadurch gekennzeichnet, daß der Endpunktkanal-Typ in der Weise bestimmt wird, daß er entweder ein isochroner Ausgangskanal, ein nicht­ isochroner Ausgangskanal, ein isochroner Eingangskanal oder ein nicht isochroner Eingangskanal ist.
17. Verfahren nach Anspruch 15 oder 16, dadurch gekennzeichnet, daß der Bereit-Befehl von einem Register erhalten wird.
18. Verfahren nach einem der Ansprüche 11 bis 17, dadurch gekennzeichnet, daß der Freigabebefehl von einem Register erhalten wird.
19. Verfahren zum Steuern eines USB-Endpunktkanals, insbesondere nach einem der Ansprüche 11 bis 18, gekennzeichnet durch die folgenden Schritte:
Lesen eines Pufferbefehls von einem Datenspeicher­ element, wenn der Endpunktzustand ein aktiver Zustand ist, und
Ändern des Endpunktkanal-Zustands vom aktiven Zustand zu einem anderen Zustand als Antwort auf den Pufferbefehl.
20. Verfahren nach Anspruch 19, dadurch gekennzeichnet, daß der andere Zustand entweder ein Leerlaufzustand ist, wenn der Pufferbefehl ein Pufferabschluß-Befehl ist, oder ein Bereit-Zustand ist, wenn der Pufferbefehl ein Pufferbereit- Befehl ist.
DE19900251A 1998-01-07 1999-01-07 Vorrichtung und Verfahren zum Steuern eines vielseitigen USB-Endpunktkanals Expired - Fee Related DE19900251B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/003,963 US6070208A (en) 1998-01-07 1998-01-07 Apparatus and method for implementing a versatile USB endpoint pipe
US09/003963 1998-01-07

Publications (2)

Publication Number Publication Date
DE19900251A1 true DE19900251A1 (de) 1999-07-08
DE19900251B4 DE19900251B4 (de) 2005-07-28

Family

ID=21708426

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19900251A Expired - Fee Related DE19900251B4 (de) 1998-01-07 1999-01-07 Vorrichtung und Verfahren zum Steuern eines vielseitigen USB-Endpunktkanals

Country Status (3)

Country Link
US (1) US6070208A (de)
KR (1) KR100290728B1 (de)
DE (1) DE19900251B4 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6175770B1 (en) * 1997-12-31 2001-01-16 Dana Corporation Electronic controller having automatic self-configuration capabilities
KR100290729B1 (ko) 1998-01-07 2001-05-15 클라크 3세 존 엠. 유에스비 등시 데이타를 전송 및 수신하는 장치 및 방법
JPH11308509A (ja) * 1998-04-17 1999-11-05 Minolta Co Ltd デジタルカメラシステム及びこのシステムに用いられる記録媒体
US6266715B1 (en) * 1998-06-01 2001-07-24 Advanced Micro Devices, Inc. Universal serial bus controller with a direct memory access mode
US20030167347A1 (en) * 2002-02-11 2003-09-04 Combs James Lee Home network printer adapter
JP4183429B2 (ja) * 2002-03-20 2008-11-19 三洋電機株式会社 データ転送システム
JP3636157B2 (ja) * 2002-04-19 2005-04-06 セイコーエプソン株式会社 データ転送制御装置、電子機器及びデータ転送制御方法
US6745264B1 (en) * 2002-07-15 2004-06-01 Cypress Semiconductor Corp. Method and apparatus for configuring an interface controller wherein ping pong FIFO segments stores isochronous data and a single circular FIFO stores non-isochronous data
US7222201B2 (en) * 2003-01-06 2007-05-22 Plx Technology, Inc. Virtual endpoint for USB devices
US7823133B2 (en) * 2003-04-23 2010-10-26 Stmicroelectronics, Inc. Smart card device and method for debug and software development
US7044390B2 (en) * 2003-06-02 2006-05-16 Stmicroelectronics, Inc. Smart card emulator and related methods using buffering interface
US7127649B2 (en) * 2003-06-09 2006-10-24 Stmicroelectronics, Inc. Smartcard test system and related methods
CN1302382C (zh) * 2003-06-13 2007-02-28 联想(北京)有限公司 基于usb闪存盘存储介质私有空间的验证方法
US7526590B2 (en) * 2006-03-31 2009-04-28 Intel Corporation Systems and methods for remote pipe resource management in wireless adapters
US10908671B2 (en) * 2016-09-30 2021-02-02 Maxim Integrated Products, Inc. Method and apparatus for disabling high speed bus operation under high common mode voltage conditions

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4979167A (en) * 1988-12-02 1990-12-18 Advanced Micro Devices, Inc. Methods and apparatus for performing restricted token operations on an FDDI network
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
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
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
US5974486A (en) * 1997-08-12 1999-10-26 Atmel Corporation Universal serial bus device controller comprising a FIFO associated with a plurality of endpoints and a memory for storing an identifier of a current endpoint

Also Published As

Publication number Publication date
KR19990067762A (ko) 1999-08-25
US6070208A (en) 2000-05-30
DE19900251B4 (de) 2005-07-28
KR100290728B1 (ko) 2001-05-15

Similar Documents

Publication Publication Date Title
DE19900245B4 (de) Vorrichtung und Verfahren zum Senden von Daten von einem USB-Endpunkt an einen USB-Host
DE3204905C2 (de)
DE19900331A1 (de) Vorrichtung und Verfahren zur Implementierung eines USB-Endpunktkanals mit doppelter Pufferunterstützung
DE2854485C2 (de) Datenverarbeitungsanlage
DE19882696B4 (de) Speichertransaktionen auf einem Bus geringer Leitungsanzahl
DE69828074T2 (de) Direkt-speicherzugriff / transaktionen auf ein bus mit niedriger pinanzahl
DE3152435C2 (de)
DE2856483C2 (de)
DE19900290B4 (de) Verfahren zum Betreiben einer universellen seriellen Buseinrichtung und universelle serielle Buseinrichtung
DE3751514T2 (de) Adressieranordnung für RAM-Puffer-Steuereinrichtung.
DE19900345A9 (de) Vorrichtung und Verfahren für die Bereitstellung einer Schnittstelle für eine Verbundsteuereinheit eines Universellen Seriellen Buses
DE3650092T2 (de) E/a-steuerung mit zwei funktionen.
DE19900345A1 (de) Vorrichtung und Verfahren für die Bereitstellung einer Schnittstelle für eine Verbundsteuereinheit eines Universellen Seriellen Buses
DE2523372B2 (de) Eingabe-ZAusgabe-Anschlußsteuereinrichtung
DE2854397A1 (de) Pufferspeichereinheit fuer ein datenverarbeitungssystem
DE3688363T2 (de) Unterbrechungsabwicklung in einem Multiprozessorrechnersystem.
DE19900369A1 (de) Vorrichtung und Verfahren zur Ausführung einer Steuerübertragung auf einem Universal Serial Bus
DE19900251A1 (de) Vorrichtung und Verfahren zum Steuern eines vielseitigen USB-Endpunktkanals
DE2448212A1 (de) Asynchrone sammelleitung zur selbstbestimmten kommunikation zwischen mutterrechnergeraeten und tochtergeraeten
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE2556624C2 (de) Verfahren und Schaltungsanordnung zur asynchronen Datenübertragung
DE69214702T2 (de) Speicherzugriff für die Datenübertragung in einer Ein-Ausgabevorrichtung
DE68923864T2 (de) Anordnung zur Speicher- und Peripherie-Bausteinauswahl.
EP0282877B1 (de) Verfahren und Einrichtung zur Steuerung der Fehlerkorrektur innerhalb einer Datenübertragungssteuerung bei von bewegten peripheren Speichern, insbesondere Plattenspeichern, eines Datenverarbeitungssystems gelesenen Daten
DE19753455C2 (de) SCSI-Controller

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