DE69836426T2 - Steuergerät für einen universellen seriellen Bus - Google Patents

Steuergerät für einen universellen seriellen Bus Download PDF

Info

Publication number
DE69836426T2
DE69836426T2 DE69836426T DE69836426T DE69836426T2 DE 69836426 T2 DE69836426 T2 DE 69836426T2 DE 69836426 T DE69836426 T DE 69836426T DE 69836426 T DE69836426 T DE 69836426T DE 69836426 T2 DE69836426 T2 DE 69836426T2
Authority
DE
Germany
Prior art keywords
data
endpoint
fifo
control unit
control
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.)
Expired - Fee Related
Application number
DE69836426T
Other languages
English (en)
Other versions
DE69836426D1 (de
Inventor
Mahesh San Jose SIDDAPPA
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.)
Atmel Corp
Original Assignee
Atmel 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 Atmel Corp filed Critical Atmel Corp
Publication of DE69836426D1 publication Critical patent/DE69836426D1/de
Application granted granted Critical
Publication of DE69836426T2 publication Critical patent/DE69836426T2/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/14Handling requests for interconnection or transfer
    • 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/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft im Allgemeinen Vorrichtungssteuereinheiten für Vorrichtungen, die in Verbindung mit Personalcomputern verwendet werden, und insbesondere Vorrichtungssteuereinheiten für Vorrichtungen, die gemäß der Definition des universellen seriellen Busses arbeiten.
  • STAND DER TECHNIK
  • Die Spezifikation des universellen seriellen Busses (USB) ist eine von der Industrie definierte Schnittstelle zum Verbinden von Peripheriegeräten mit dem Systembus eines Personalcomputers. Der USB zeichnet sich durch eine einzelne Schnittstelle für eine breite Vielfalt von Peripheriegeräten, einschließlich Mäusen, Tastaturen, Monitoren, Druckern, Massenspeicherlaufwerken, Modems, Faxgeräten und dergleichen, aus. Dies verringert die Herstellungskosten und macht es für Personalcomputerbenutzer leichter, ihre Systeme zu konfigurieren.
  • Der USB verwendet eine Busarchitektur auf Token-Basis ähnlich anderen Bussen auf ähnlicher Basis, wie z.B. des Token-Ring-Netzwerks. Ein USB-Hauptrechner sendet Tokens auf dem Bus und eine USB-Vorrichtung, die einer in einem Token enthaltenen Adresse entspricht, antwortet entweder durch Senden von Daten zum Hauptrechner oder Annehmen von Daten vom Hauptrechner.
  • Um die funktionale Vielseitigkeit zu verbessern, kann eine USB-Vorrichtung mehrere logische Kanäle zur Kommunikation mit dem Hauptrechner unterstützen. Im Sprachgebrauch der USB-Spezifikation werden solche logischen Kanäle als "Pipe" bezeichnet. Jede Pipe stellt einen unidirektionalen Strom von Daten zwischen einem im Hauptrechner befindlichen Software-Client und einem innerhalb der Vorrichtung definierten Endpunkt bereit. Funktionen, die innerhalb der Vorrichtung implementiert werden, empfangen Daten vom Hauptrechner an ihrem (ihren) jeweiligen Endpunkt(en) und senden Daten zum Hauptrechner durch Schreiben in ihre(n) jeweiligen Endpunkt(e).
  • Eine USB-Vorrichtung 10 ist schematisch in 10 gezeigt. Daten werden über ein Paar von differentiell angesteuerten Signalleitungen D+, D– übertragen. Eine serielle Schnittstellenmaschine (SIE) 12 stellt eine Paketerzeugung und -decodierung, NRZI-Umwandlung, CRC-Erzeugung und -überprüfung und Bitfüllung, alles gemäß der USB-Spezifikation, bereit. Eine Steuereinheit 14 bearbeitet den Datenfluss für die verschiedenen Transaktionen, nämlich IN, OUT und SETUP. Wie in 11A und 11B gezeigt, umfasst eine Transaktion bis zu drei Pakete: TOKEN, DATA und HANDSHAKE. Eine Bustransaktion beginnt damit, dass der Hauptrechner ein Paket vom TOKEN-Typ mit einem PID-Feld, einem Adressenfeld, das die Vorrichtung identifiziert, und einem Endpunktfeld, das einen Kanal innerhalb der Vorrichtung identifiziert, ausgibt. Diesem folgt ein Paket vom DATA-Typ, das in einer Richtung von der adressierten Vorrichtung zum Hauptrechner, 11A, oder vom Hauptrechner zur adressierten Vorrichtung, 11B, fließt. Im letzteren Fall werden die von der Vorrichtung empfangenen Daten in einem FIFO entsprechend dem im TOKEN-Paket identifizierten Endpunkt gespeichert. Der Empfänger der Daten sendet dann ein HANDSHAKE-Protokoll zum Sender der Daten.
  • Mit Rückkehr zu 10 umfassen typische Implementierungen einer USB-Vorrichtung eine Gruppe von n FIFOs 16, wobei ein FIFO (FIFO1 – FIFOn) für jeden Endpunkt E1 – En, der von der Vorrichtungssoftware 18 unterstützt wird, zugeordnet ist. Der Intel® x8930Ax USB-Mikrosteureinheitschip definiert beispielsweise sechs Endpunkte jeweils mit einem zugehörigen Sende-FIFO und Empfangs-FIFO. Die Cypress CY7C634xx-Familie von Steuereinheiten scheint zwei Vorrichtungsadressen zu unterstützen: "A" und "B". Die Vorrichtungsadresse "A" weist drei zugehörige Endpunkte auf, während die Vorrichtung "B" zwei zugehörige Endpunkte aufweist, wobei jeder Endpunkt einen entsprechenden FIFO aufweist. Die Xilinx® Steuereinheit zeichnet sich durch die Unterstützung für drei Endpunkte mit FIFOs auf dem Chip für jeden Endpunkt aus. Eine flexiblere Alternative ist eine durch die CAE-Technologie bereitgestellte, die einen Funktionskern für FPGAs bietet. Der Funktionskern zeichnet sich durch eine vom Benutzer definierbare Anzahl von Endpunkten und einen FIFO für jeden Endpunkt mit einer vom Benutzer definierbaren Tiefe aus.
  • Unter Fortsetzung mit 10 stellt die Vorrichtungssoftware 18 die funktionalen Fähigkeiten der Vorrichtung bereit. Jede Funktionalität kommuniziert mit ihrem zugehörigen Endpunkt E1 – En, der Daten über die diesen Endpunkten entsprechenden FIFOs empfängt oder sendet. Ein spezieller Endpunkt, der Endpunkt 0, ist für den Zweck des Schaffens eines Zugriffs auf die Konfigurations-, Zustands- und Steuerinformation der Vorrichtung reserviert.
  • Die vorstehend erwähnten Konstruktionen teilen sich die gemeinsame Eigenschaft, dass die Anzahl von Endpunkten, die in einer Vorrichtung möglich ist, fest ist. Dies gilt selbst für den Funktionskern der CAE-Technologie. Obwohl der CAE-Funktionskern eine vom Benutzer definierbare Anzahl von Endpunkten bereitstellt, ist diese Anzahl fest, sobald die Konstruktion auf Silizium übertragen ist.
  • Das Erhöhen der Anzahl von Endpunkten in einer gegebenen Konstruktion führt einen weiteren Mangel dieser Konstruktionsmethoden herbei, die zum Unterstützen der FIFOs verbrauchte Siliziumnutzfläche wird nämlich untragbar, da jeder Endpunkt einen FIFO erfordert. Dies gilt insbesondere bei der INTEL®-Konstruktion, bei der jeder Endpunkt zwei FIFOs zugeordnet ist, einem zum Empfangen und dem anderen zum Senden.
  • Was erforderlich ist, ist eine Steuereinheit, die, sobald sie entworfen und getestet ist, in der Lage ist, eine beliebige Anzahl von Endpunkten in einer Vorrichtung bis zu dem vom USB definierten Maximum von sechzehn zu unterstützen. Es ist erwünscht, dass die Steuereinheit eine effiziente Nutzung von Silizium aufweist, während sie gleichzeitig leicht konfigurierbar ist, um eine beliebige Anzahl von Endpunkten zu verwenden.
  • Ein weiteres Merkmal von USB ist seine Unterstützung für ein Verfahren, das als Busidentifikation bekannt ist, wobei der Hauptrechner eine Vorrichtung bei ihrer Anbringung am Bus identifiziert und konfiguriert. Wenn die Vorrichtung vom Hauptrechner erfasst wurde, fragt die Systemsoftware die Vorrichtung ab, ermittelt ihre Fähigkeiten, weist eine Vorrichtungsadresse zu und konfiguriert die Vorrichtung. Obwohl der USB Situationen vorsieht, in denen eine Vorrichtung nicht mehr mit dem Hauptrechner kommunizieren kann, wäre es erwünscht, dass die Vorrichtung vollständig neu gebootet wird, so dass der Hauptrechner die Vorrichtung rekonfigurieren kann, als ob die Vorrichtung gerade von einem Benutzer am Hauptrechner angebracht worden wäre.
  • US 4 979 167 offenbart eine TOKEN-Ring-Kommunikation unter Verwendung eines FDDI-Netzwerks. Durch eine Zustandsmaschine werden Parameter für ein eingeschränktes Token unter Verwendung von Befehlen gesteuert, um in den eingeschränkten Modus einzutreten und diesen zu verlassen. Datenpakete vom TOKEN-Typ werden empfangen und eine Identifikationsadresse wird verwendet, um Daten in einem Speicher unter der festgelegten Adresse zu speichern.
  • Es ist eine Aufgabe der Erfindung, eine höhere Fähigkeit einer USB-Kommunikationssteuereinheit unter Verwendung einer Vielzahl von Endpunktkonfigurationen und ein Verfahren zum entsprechenden Betreiben einer Steuereinheit bereitzustellen.
  • Die Erfindung ist im Anspruch 1 bzw. 12 definiert.
  • Spezielle Ausführungsbeispiele sind in den abhängigen Ansprüchen dargelegt.
  • OFFENBARUNG DER ERFINDUNG
  • Die vorliegende Erfindung betrifft eine Vorrichtung, die dazu ausgelegt ist, eine Vorrichtung gemäß der Spezifikation des universellen seriellen Busses (USB) zu betreiben. Die Erfindung umfasst ein Mittel zum Empfangen von Paketen von einem Hauptrechner und einen FIFO zum Speichern von in empfangenen Paketen enthaltenen Daten. Ein Paketsteuerspeicher identifiziert den in einem empfangenen Paket vom TOKEN-Typ enthaltenen Endpunkt, der als aktueller Endpunkt bezeichnet wird. Die anschließend im FIFO gespeicherten Daten werden somit dem aktuellen Endpunkt zugeordnet. Beim Empfang eines zweiten TOKEN-Pakets wird der im Paket enthaltene Endpunkt zum neuen aktuellen Endpunkt. Daten, die anschließend im FIFO gespeichert werden, werden daher dem zweiten Endpunkt-Identifikator zugeordnet. Unter Verwendung eines einzelnen FIFO, um zwei oder mehr Endpunkte zu unterstützen, wird die Siliziumfläche minimiert.
  • In einem alternativen Ausführungsbeispiel wird ein zweiter FIFO bereitgestellt. Die durch die Vorrichtung unterstützten Endpunkte werden dem ersten FIFO oder dem zweiten FIFO zugeordnet. Dies hat den Vorteil, dass die Verarbeitungslast der Steuereinheit verringert wird, während gleichzeitig das für die Implementierung von FIFOs zugeordnete Silizium begrenzt wird. Da die Anzahl von in der vorliegenden Erfindung verwendeten FIFOs geringer ist als die Anzahl von unterstützten Endpunkten, kann jeder FIFO tiefer gemacht werden als in dem Fall, in dem jeder Endpunkt durch einen entsprechenden FIFO unterstützt wird.
  • Die vorliegende Erfindung verwendet eine einzelne Zustandsmaschine, um die Ablaufsteuerung aller USB-Transaktionsarten zwischen dem Hauptrechner und der Vorrichtung zu steuern. Eine einzelne Universal-Zustandsmaschine ermöglicht, dass die Endpunkte einer Vorrichtung jede Art von Datenübertragung unterstützen, nämlich Steuerungs-, Masse-, Unterbrechungs- und isochrone Übertragungen.
  • Ein weiterer Aspekt der Erfindung verbessert die Geschwindigkeit des Betriebs der Vorrichtung. Dies wird durch Zugreifen auf den FIFO vor der Beendung der die Daten erfordernden Transaktion erreicht.
  • Die Vorrichtungssteuereinheit der vorliegenden Erfindung umfasst ferner einen Hauptrechner-Verbindungsanschluss mit einem Mittel zum Simulieren der Abtrennung und Anbringung der Vorrichtung. Dies ermöglicht, dass eine Vorrichtung, die gesperrt wurde, die Busidentifikation automatisch erneut einleitet, wodurch bewirkt wird, dass der Hauptrechner die Vorrichtung rekonfiguriert, als ob sie gerade von einem Benutzer physikalisch trennt und wieder angebracht worden wäre, ohne dies tatsächlich tun zu müssen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt eine Steuereinheit gemäß der vorliegenden Erfindung.
  • 2A2C umfassen ein Blockdiagramm der Steuereinheit.
  • 3A3C stellen die Registerorganisation der PCS dar.
  • 4A4I zeigen Transaktionsdiagramme der vom USB definierten Transaktionen.
  • 5A5D sind ein Zustandsdiagramm der Protokollzustandsmaschine.
  • 6 ist eine Schaltung zum Simulieren eines Anbringungs/Lösungs-Ereignisses.
  • 7 stellt eine typische Sequenz von Hauptrechner/Vorrichtungs-Transaktionen dar.
  • 8 zeigt die Datensequenz einer Transaktion.
  • 9 zeigt eine Variation des bevorzugten Ausführungsbeispiels.
  • 10 stellt schematisch eine typische USB-Steuereinheit des Standes der Technik dar.
  • 11A und 11B stellen allgemeine vom USB definierte Datenübertragungen dar.
  • BESTE ART ZUR AUSFÜHRUNG DER ERFINDUNG
  • Mit Bezug auf 1 wird die USB-Steuereinheit 100 in Computer-Peripheriegeräten (Vorrichtungen), wie z.B. einer Maus, einer Tastatur, einem Massenspeicherlaufwerk, einer Digitalkamera usw., verwendet, die über einen mit USB kompatiblen Bus kommunizieren. Die Steuereinheit stellt die Synchronisation von Transaktionen zwischen einer USB-Hauptrechnereinheit und einer Vielzahl von für die gegebene Vorrichtung definierten Endpunkten bereit.
  • Gemäß der Erfindung umfasst die Steuereinheit 100 eine Protokollsteuer- und Status-(PCS)Einheit 110, die den USB-Zustand der Vorrichtung speichert und während der Übertragung von Daten eine Steuerung vorsieht. Die Übertragung von USB-Datenpaketen wird über eine serielle Schnittstellenmaschine (SIE) 140 durchgeführt, die in Verbindung mit einem Datenausgabe- und Quittierungs-(DOH) Modul 150 arbeitet. Eine Protokollzustandsmaschine (PSM) 120 stellt eine Ablaufsteuerung einer Transaktion zwischen der Vorrichtung und dem USB-Hauptrechner bereit, mit dem die Vorrichtung gekoppelt ist. Empfangene Daten und zu sendende Daten sind im FIFO 130 enthalten. Die Steuereinheit 100 umfasst eine Schnittstelle zu einer Mikrosteuereinheit, die den größten Teil der Funktionalität in der Vorrichtung bereitstellt.
  • Wenn man sich nun 2A2C zuwendet, werden die Schnittstellen zwischen den Modulen beschrieben. Man betrachte zuerst die serielle Schnittstellenmaschine SIE 140, die in 2A gezeigt ist. Die SIE 140 stellt eine Schnittstelle zwischen dem USB-Hauptrechner und der Vorrichtung bereit. Eine Sendeempfängerschaltung (nicht dargestellt) ist enthalten, die Daten auf Signalleitungen D+ und D– übermittelt und Daten empfängt, beides in Form eines differentiellen Signals. Die elektrischen Eigenschaften des Sendeempfängers sind durch die USB-Spezifikation vollständig definiert. Die Funktionen der SIE 140 umfassen die Serialisierung und Entserialisierung von USB-Übertragungen, die Decodierung und Codierung von Paketen vom TOKEN-Typ, die NRZI-Codierung und -Decodierung, die CRC-Erzeugung und -Prüfung, die Bitfüllung und die Erzeugung des SYNC-Feldes.
  • Nach Empfang eines gültigen Pakets aktiviert die SIE 140 die PacketOK- und PacketEnd-Signalleitungen, um der Protokollzustandsmaschine PSM 120 den Empfang eines gültigen Pakets vom Hauptrechner zu signalisieren. Die SIE gewinnt dann den PID (SOF, SETUP, IN, OUT, DATA0/1, ACK) vom empfangenen Paket und sendet ihn zur PCS 110 über SiePID. Ein Paket vom TOKEN-Typ besteht aus dem Folgenden: PID (4 Bits), Vorrichtungsadresse (7 Bits), Endpunktadresse (4 Bits) und CRC (5 Bits); von dem die Vorrichtungsadresse SieAddr und die Endpunktadresse SieEndpt gewonnen werden und zur PCS gesandt werden. Ein Paket vom DATA-Typ besteht aus: PID, Datenbytes und CRC; aus dem die Daten gewonnen und zur PCS mit einem Byte auf einmal über die SieData-Leitungen gesandt werden. Verfälschte Vorrichtungsadressen und Daten werden durch CRC-Validierung und -prüfung auf Bitfüllungsverletzungen durch die USB-Spezifikation erfasst. Die Signalleitungen AddrEndpValid und SieDataValid werden aktiviert, um jeweils eine gültige Vorrichtungsadresse und gültige Daten anzugeben. Die NextData-Signalleitung, die beim Stromaufwärtsübertragen von Daten verwendet wird, gibt an, dass die SIE bereit ist, ein weiteres Datenbyte (vom DOH 150) für die Stromaufwärtsübertragung zu empfangen.
  • Wenn man sich für einen Moment 6 zuwendet, so ist ein Merkmal der vorliegenden Erfindung in einer Darstellung der Hauptrechner-Vorrichtungs-Schnittstelle gezeigt. Die USB- Spezifikation sieht zwei Betriebsgeschwindigkeiten vor: niedrige Geschwindigkeit und volle Geschwindigkeit. Ein Pull-up-Abschlusswiderstand, der mit einer Spannungsquelle zwischen 3,0 V und 3,6 V verbunden ist, legt die Betriebsgeschwindigkeit fest. Eine Vorrichtung mit voller Geschwindigkeit ist durch einen Pull-up-Widerstand auf der Leitung D+ abgeschlossen. Eine Vorrichtung mit niedriger Geschwindigkeit ist durch einen Pull-up auf der Leitung D– abgeschlossen. Gemäß der vorliegenden Erfindung besitzt jeder von zwei Erdungstransistoren 142 eine Drain/Source-Kopplung zwischen den Datenleitungen D+, D– und der Erdung. Die Erdungstransistoren 142 werden durch ihre jeweiligen Gates durch einen Zeitgeber 144 wie z.B. einen Zähler, der ein LO ausgibt, bis er ausgelöst wird, durchgesteuert und gesperrt.
  • Ein Pull-up-Widerstand 146 mit voller Geschwindigkeit ist mit der Leitung D+ über einen Durchgangstransistor 145 gekoppelt und ein Pull-up-Widerstand 148 mit niedriger Geschwindigkeit ist mit der Leitung D– über einen Durchgangstransistor 147 gekoppelt. Ein Selektor 143 stellt sicher, dass nur einer der beiden Durchgangstransistoren durchgesteuert wird, so dass er als Bauelement mit voller Geschwindigkeit oder als Bauelement mit niedriger Geschwindigkeit arbeitet. 6 stellt eine typische Konstruktion des Selektors 143 mit einem 1:2-Decodierer 141 und zwei UND-Gattern dar. Ein GESCHWINDIGKEITSAUSWAHL-Signal aktiviert eines der zwei Ausgangssignale aus dem Decodierer 141, um das Gate des entsprechenden Durchgangstransistors anzusteuern, wobei somit der entsprechende Pull-up-Widerstand mit der Datenleitung gekoppelt wird. Der Selektor 143 wird über den Zeitgeber 144 durch Speisen des Zeitgeber-Ausgangssignals durch die UND-Gatter aktiviert und deaktiviert.
  • Wenn der Zeitgeber 144 ausgelöst wird, schaltet das Ausgangssignal des Zeitgebers auf HI, um die Erdungstransistoren 142 durchzusteuern, wobei somit die Datenleitungen D+, D– auf die Erdung gebracht werden. Gleichzeitig wird der Selektor 143 aufgrund des LO-Eingangssignals in seine UND-Gatter deaktiviert. Dies hat den Effekt der Trennung des ausgewählten Pull-up-Widerstandes durch Sperren seines entsprechenden Durchgangstransistors. Wenn dagegen der Zeitgeber abläuft, kehrt das Ausgangssignal des Zeitgebers 144 auf seinen LO-Zustand zurück, wobei somit die Transistoren 142 gesperrt werden. Gleichzeitig wird der Selektor 143 wiederum aktiviert, so dass der der ausgewählten Geschwindigkeit entsprechende Durchgangstransistor durchgesteuert wird. Dies dient zum erneuten Verbinden des entsprechenden Pull-up-Widerstandes mit der Datenleitung. Auf diese Weise wird das Potential auf jeder der Datenleitungen auf seinen ursprünglichen Pegel wiederhergestellt.
  • Wenn der Zeitgeber 144 eingestellt ist, um eine Verzögerung von mindestens 2,5 μs vorzusehen, erzeugen das Durchsteuern der Erdungstransistoren 142 und das Sperren der Durchgangstransistoren 145, 147 eine unsymmetrische Null-(SE0) Bedingung, die die Vorrichtungstrennbedingung ist, wie in der USB-Spezifikation definiert. Wenn das Potential der Datenleitung (D+, D–) dadurch, dass der Zeitgeber 144 abschaltet, wiederhergestellt wird, tritt eine Verbindungsbedingung auf (durch USB). Die Erdungstransistoren 142 und die Durchgangstransistoren 145, 147 sehen daher ein Mittel vor, durch das ein automatisches Neubooten der Vorrichtung stattfinden kann. Wenn die Vorrichtung beispielsweise sperrt, kann ein Totmann-(Zeitüberwachungs-) Zeitgeber in der Vorrichtung den Zeitgeber 144 auslösen, um eine Trennungs/Verbindungs-Sequenz einzuleiten. Beim Erfassen der Verbindungsbedingung kann der Hauptrechner die Vorrichtung rekonfigurieren. In einer Hub-Anwendung kann dieses Neuboot-Merkmal aktiviert werden, um zwischen einem durch den Bus gespeisten Hub und einem selbstgespeisten Hub umzuwandeln. Das Neuboot-Merkmal würde ermöglichen, dass die Vorrichtung die Anwendung ändert (z.B. von FAX zu Scanner und umgekehrt). Änderungen der Vorrichtungsdeskriptoren, wie z.B. verbrauchte Leistung, Unterbrechungsverzögerung usw., können in den Hauptrechner durch das Neuboot-Merkmal "hochgeladen" werden, da eine solche Information vom Hauptrechner nur während einer Aufzählungssequenz nach einer Verbindung gelesen wird.
  • Im bevorzugten Ausführungsbeispiel ist die in 6 gezeigte Schaltung in den Vorrechner der SIE 140 der Steuereinheit 100 integriert. Alternativ kann die Schaltung außerhalb des Chips vorgesehen sein. Das GESCHWINDIGKEITSAUSWAHL-Signal kann auf eine Vielfalt von Weisen geliefert werden: Signalisierung von der Mikrosteuereinheit, Vorsehen von Brücken-Optionen auf der PC-Platine, Signalisierung von der USB-Steuereinheit 100. Wenn die Vorrichtung ursprünglich mit einer niedrigeren Geschwindigkeit hochbootet, ermöglicht die Schaltung von 6, dass die Vorrichtung selbst neu bootet, so dass sie mit einer höheren Geschwindigkeit hochkommt. Alternativ kann nur ein Pull-up-Widerstand/Durchgangstransistor-Paar vorgesehen sein. In einem solchen Fall ist die Vorrichtungsgeschwindigkeit entweder auf eine Vorrichtung mit voller Geschwindigkeit oder eine Vorrichtung mit niedriger Geschwindigkeit festgelegt. Tatsächlich sind nur die Komponenten 145, 146 in einer Hub-Konfiguration nützlich. Der Selektor 143 würde dann einfach aus einem UND-Gatter bestehen, um den Zeitgeber 144 mit dem Durchgangstransistor zu koppeln. Die Erdungstransistoren 142 wären immer noch erforderlich, um die SE0-Bedingung vorzusehen.
  • Unter Fortsetzung der Erörterung der SIE-Schnittstellen wende man sich 2C zu. Das DOH-Modul 150, das in 2C gezeigt ist, sendet Daten zur SIE 140 unter der Steuerung der PCS 110. Die SendPID-Signalleitung informiert das DOH, einen PID (ACK, NAK und STALL) auszugeben, der von der PCS 110 über ResponsePID geliefert wird. Die SendData-Signalleitung signalisiert dem DOH, die Übertragung von Daten vom FIFO zu beginnen. Wenn es aktiviert wird, aktiviert SendData das DOH 150, um Daten vom FIFO 130 über die fifoData-Leitungen zwischenzuspeichern und Daten über die UMIData-Leitungen zur SIE 140 zu senden. Die NextData-Signalleitung arbeitet in Verbindung mit SendData, was bewirkt, dass das DOH 150 vorher zwischengespeicherte Daten überträgt und neue Daten vom FIFO zwischenspeichert. Wenn Daten von der SIE 140 empfangen werden, wird der CRC kontinuierlich berechnet. Wenn die PCS SendData deaktiviert, aktiviert das DOH LastData, was bewirkt, dass die SIE 140 den berechneten CRC sendet und ein EOP erzeugt. Das EndPtBusTurnaround gibt die maximale Verzögerung vor dem Begin einer Übertragung zum Hauptrechner an. Diese Verzögerung variiert in Abhängigkeit vom aktiven Endpunkt, wie nachstehend in Verbindung mit 8 erläutert wird. Die Signalleitung SendSYNC befiehlt der SIE, das SYNC-Feld zu senden. Das Synchronisations- (SYNC) Feld geht allen zum Hauptrechner gesandten Datenpaketen voran. Das DOH liefert auch ein Taktsignal StepPSM zum Takten der PSM 120 während der Ablaufsteuerung einer Transaktion.
  • Man wende sich nun 2B zu. Der FIFO 130 besitzt eine Tiefe von sechzehn Bytes und speichert eingehende und ausgehende USB-Daten. Daten, die für den FIFO 130 bestimmt sind, werden zuerst auf fifoWrData übertragen. Als nächstes wird die FIFO-Schreibadresse auf fifoWrAddr übertragen, gefolgt vom Aktivieren der Schreibdatenleitung fifoWR. Eingehende Daten vom Hauptrechner werden über die PCS 110 im FIFO gespeichert, wo sie anschließend von der Mikrosteuereinheit gelesen werden. In den FIFO kann auch durch die Mikrosteuereinheit geschrieben werden, indem Daten auf MData übertragen werden, die FIFO-Adresse MAddr angegeben wird und MWR aktiviert wird.
  • Aus dem FIFO 130 auszulesende Daten werden über fifoRdAddr adressiert und auf die fifoData-Leitungen übertragen. von dort werden die Daten entweder im DOH 150 für die anschließende Übertragung durch die SIE 140 zum Hauptrechner zwischengespeichert oder von fifoData über die PCS 110 durch die Mikrosteuereinheit über PCSData entnommen.
  • Die Übertragung von Daten zwischen der PCS 110 und der Mikrosteuereinheit geschieht über die MData- und PCSData-Leitungen. Auf Register innerhalb der PCS 110 wird durch Aktivieren ihrer Adressen auf MAddr zugegriffen, wie nachstehend gezeigt wird. Die Eingabe und Ausgabe von Daten geschieht durch Aktivieren von MWR bzw. MRD.
  • Man nehme nun auf die Protokollzustandsmaschine Bezug, die auch in 2B gezeigt ist. Die PSM 120 arbeitet in Verbindung mit der PCS 110. Die PSM sieht eine Transaktionsablaufsteuerung für alle Endpunkttypen vor: BULK, CONTROL, INTERRUPT und ISOCHRONOUS. Während der Ablaufsteuerung einer Transaktion für den aktuellen Endpunkt überträgt die PCS zur Zustandsmaschine Informationen, die mit dem Endpunkt in Beziehung stehen, und die Zustandsmaschine antwortet durch Informieren der PCS darüber, was zu tun ist. Obwohl die PCS 110 die Steuersignale ausgibt, um die Transaktion zu steuern, geht die Hauptzeitsteuerung von der PSM 120 aus.
  • Der PSM wird durch PacketOK und PacketEnd signalisiert, dass die SIE 140 ein gültiges Paket empfangen hat. Wie nachstehend erläutert wird, ermöglicht dies, dass die PSM zum nächsten Zustand durch das Taktsignal (StepPSM) weitergeht. Die PSM empfängt von der PCS 110 den PID-Namen (IN, OUT, SOF, SETUP, DATA0 und DATA1) über PCSPID. Von der PCS werden auch empfangen: der Endpunkttyp (EndPtType: BULK, ISOCHRONOUS, INTERRUPT und CONTROL), die Datenflussrichtung des Endpunkts (EndPtDir), der Zustand des Datenumschaltbits für den Endpunkt (DataToggle), eine Statusstufenangabe (StatusStage) für CONTROL-Übertragungen und eine Paketantwort (PacketResponse). Diese Daten werden von der PSM 120 als zustandsvariablen beim Festlegen der Ablaufsteuerung einer Transaktion verwendet. Das Ausgangssignal der PSM 120 ist eine Steuersignalisierung über PSMState, die die Handlungen der PCS 110 während einer Transaktion lenkt.
  • Die PCS 110 sieht eine Speicherung von Informationen hinsichtlich der mit dem USB in Beziehung stehenden Aktivitäten der Vorrichtung vor und liefert Daten zur Mikrosteuereinheit oder einer anderen ähnlichen Steuerhardware der Vorrichtung. Informationen, die in der PCS enthalten sind, werden in Registern gespeichert und können vom Hauptrechner oder von der Mikrosteuereinheit oder durch Zustandsänderungen, während eine Transaktion verarbeitet wird, ausgehen. Das Folgende ist eine Liste der in der PCS enthaltenen Register, die für jedes Register angibt, ob es durch die PCS lesbar/schreibbar ist und ob es durch die Mikrosteuereinheit lesbar/schreibbar ist:
    Figure 00150001
    Figure 00160001
  • Das Vorrichtungsadressenregister enthält die Vorrichtungsadresse der Vorrichtung. Es wird durch die Mikrosteuereinheit während einer Busidentifikationssequenz mit dem Hauptrechner initialisiert und wird anschließend zur Vorrichtungsadresse, auf die die PCS reagiert. Insbesondere überträgt der Hauptrechner Informationen zur Mikrosteuereinheit während der Busidentifikationssequenz. Die Mikrosteuereinheit überträgt dann bestimmte dieser Informationen zur PCS 110, um in das Vorrichtungsadressen register und das Register für den globalen Zustand zu schreiben.
  • Das Datenblocknummerregister enthält die Datenblocknummer, die gemäß der USB-Spezifikation durch den Hauptrechner mit einer nominalen Rate von 1,0 ms inkrementiert wird. Beim Empfang eines Datenblockpakets lädt die PCS 110 die im Paket enthaltene Datenblocknummer in das Datenblocknummerregister und setzt eine Unterbrechung (EOF1, EOF2, siehe nachstehend).
  • Das Register für den globalen Zustand enthält globale Informationen hinsichtlich des USB-Zustandes der Vorrichtung und in dieses wird anfänglich durch die Mikrosteuereinheit geschrieben. Die Informationen sind in einer Sieben-Bit-Datenstruktur mit der folgenden Definition enthalten: das Bit 0 gibt an, ob der Vorrichtung vom Hauptrechner eine Vorrichtungsadresse gegeben wurde; das Bit 1 gibt an, ob die Vorrichtung konfiguriert wurde; das Bit 2 gibt an, ob der Vorrichtung erlaubt ist, einem Hauptrechner zu signalisieren, der in einen Leistung sparenden Unterbrechungszustand eingetreten ist, wobei somit der Hauptrechner aufgeweckt wird (Fernaufwecken); das Bit 3 gibt an, dass die Vorrichtung in einen Leistung sparenden Unterbrechungszustand eingetreten ist; in das Bit 4 wird durch die Mikrosteuereinheit geschrieben, um ein Fernaufwecken einzuleiten. Diese Bits können entweder von der PCS in Reaktion auf den Empfang von Befehlen vom Hauptrechner wie z.B. während einer Bitidentifikationssequenz oder durch die Mikrosteuereinheit gesetzt werden.
  • In das Paketsteuerregister wird von der PCS 110 geschrieben und es enthält die Informationen für den aktuellen Endpunkt. In der Sieben-Bit-Struktur sind enthalten: eine Endpunktadresse des aktuellen Endpunkts (Bits 2 – 0); ein Indikator für ein vollendetes Paket (d.h. vom Hauptrechner empfangen) (Bit 3); und ein Paketidentifikator (PID, Bits 7 – 4). Die PIDs sind in der USB-Spezifikation definiert und umfassen: OUT (0x1), IN (0x9), SOF (0x5), SETUP (0xd), DATA0 (0x3), DATA1 (0xb), ACK (0x2) und PRE (0xc). Diese Bits werden von der PCS gesetzt und von der Mikrosteuereinheit gelesen.
  • In das Paketantwortregister wird durch die Mikrosteuereinheit geschrieben und es kann einen vom USB definierten Antwort-PID, nämlich NAK (0xa) und STALL (0xe), enthalten. Außerdem kann die Mikrosteuereinheit bestimmte interne Codes schreiben, die die PCS 110 lenken, um bestimmte Handlungen zu unternehmen. DAVAIL (0x4) ist ein interner Code, der der PCS angibt, dass mindestens ein Datenbyte im FIFO 130 vorhanden ist. DACCEPT (0x6) ist ein interner Code, der der PCS angibt, dass die Mikrosteuereinheit alle erwarteten Daten aus dem FIFO ausgelesen hat. DEND (0x7) ist ein interner Code, der der PCS angibt, dass die Mikrosteuereinheit das letzte Byte in den FIFO geschrieben hat oder das letzte Byte aus dem FIFO gelesen hat.
  • Die PCS 110 umfasst eine Unterbrechungsleitung, die verwendet wird, um die Mikrosteuereinheit zu unterbrechen. Ein Satz von Registern wird verwendet, um diese Unterbrechungen zu handhaben. In das Unterbrechungsregister wird von der PCS geschrieben und es wird durch die Mikrosteuereinheit gelesen, um die Ursache der Unterbrechung festzustellen, wenn die Unterbrechung hervorgebracht wird. Das Bit 0 wird gesetzt, um eine allgemeine Unterbrechung (INT) durch die PCS anzugeben. In einer Hub-Anwendung werden die folgenden zusätzlichen Unterbrechungen verwendet: das Bit 1 wird gesetzt, um einen Datenblockende-Zeitpunkt #1 anzugeben (EOF1); das Bit 2 wird gesetzt, um einen Datenblockende-Zeitpunkt #2 anzugeben (EOF2); das Bit 3 wird gesetzt, um das Auftreten eines Starts eines Datenblocks anzugeben (SOF). In das Unterbrechungs-Ack-Register wird durch die Mikrosteuereinheit geschrieben, um der PCS anzugeben, dass die spezielle Unterbrechung (INTA, EOF1, EOF2, SOF) bearbeitet wurde (d.h. die entsprechende Unterbrechungsroutine geendet hat). Die Bits 0–3 entsprechen den Bits 0–3 des Unterbrechungsregisters. Ein zusätzliches Bit (Bit 4) ist für CONTROL-Übertragungen definiert. Es wird durch die Mikrosteuereinheit geschrieben, um anzugeben, dass sie bereit ist, in die STATUS-Stufe einer CONTROL-Übertragung einzutreten. Das Unterbrechungsfreigabe-Register ist ein Maskierungsregister zum Maskieren von einer oder mehreren der vorstehend beschriebenen Unterbrechungsarten mit denselben entsprechenden Bits 0–3.
  • Das Gesamtbytezählwert-Register gibt die Anzahl von Bytes in einem vom Hauptrechner empfangenen Paket an.
  • Das FIFO-Adressenregister zeigt auf den nächsten Eintrag im FIFO 130 für zum Hauptrechner zu übertragende Daten und für Daten, die vom Hauptrechner empfangen wurden.
  • Das Bytezählwert-Register gibt die Anzahl von Bytes an, die sich derzeit im FIFO befinden. Diese Information wird durch die PCS aktualisiert. Das Register wird jedes Mal inkrementiert, wenn ein Byte in den FIFO 130 geschrieben wird, ob durch die PCS 110 (über die SIE 140) oder durch die Mikrosteuereinheit. Das Register wird jedes Mal dekrementiert, wenn ein Byte aus dem FIFO ausgelesen wird, ob durch die PCS während einer Stromaufwärtsübertragung oder durch die Mikrosteuereinheit.
  • Das Transaktionsantwortregister gibt an, ob die Transaktion erfolgreich geendet hat oder nicht.
  • Die Endpunktsteuerregister umfassen einen Satz von Registern, die Informationen für jeden der von der Steuereinheit bereitgestellten Endpunkte gemäß der vorliegenden Erfindung enthalten. Das aktuelle Ausführungsbeispiel der Erfindung unterstützt acht Endpunkte, die mit 0–7 adressiert sind. Diese Anzahl kann bis auf die in der USB-Spezifikation definierte maximale Anzahl für insgesamt sechzehn Endpunkte erhöht werden. Der Endpunkttyp wird durch die Bits 0 & 1 angegeben, nämlich CONTROL-, BULK-, INTERRUPT- und ISOCHRONOUS-Übertragungen. Die Richtung des Datenflusses zum Hauptrechner oder vom Hauptrechner wird durch das Bit 2 angegeben. Das DATA-Umschaltbit wird im Bit 3 gespeichert, um die Datensynchronisation gemäß der USB-Spezifikation aufrechtzuerhalten. Der Busdurchlaufzeitablauf für den Endpunkt ist in den Bits 4 & 5 festgelegt. Diese Zeitablaufbits legen einen von vier möglichen Zeitablaufwerten, die vom DOH 150 verwendet werden, fest, wobei eine Verzögerungsperiode vor dem Beginn einer Übertragung zum Hauptrechner festgelegt wird. Das Bit 6 ist unbenutzt. Das Bit 7 wird verwendet, um für eine gegebene Vorrichtung anzugeben, ob der Endpunkt verwendet wird, da die Anzahl von Endpunkten, die für eine gegebene Vorrichtung erforderlich sind, variiert. In das Bit 7 wird durch die Mikrosteuereinheit beim Rücksetzen geschrieben.
  • In das Register für gestoppten Endpunkt wird durch die Mikrosteuereinheit geschrieben, um anzugeben, ob ein Endpunkt vorübergehend deaktiviert wird. In einem solchen Fall werden irgendwelche Übertragungen, die an einen deaktivierten Endpunkt gerichtet sind, von der PCS ignoriert und die PCS antwortet mit einem NAK für diejenigen Transaktionen, die eine solche Antwort unterstützen.
  • Man wende sich nun der Registerorganisation der PCS 110 zu, wie in der schematischen Darstellung von 3A3C gezeigt. Die Figuren zeigen die verschiedenen vorstehend beschriebenen Register, einschließlich des Flusses von Informationen zwischen den Registern und den anderen Komponenten, die die USB-Steuereinheit bilden. Der Informationsaustausch zwischen der PCS 110 und der Mikrosteuereinheit findet über einen "Bus" 10 statt. Im bevorzugten Ausführungsbeispiel wird eine gemeinsame Konstruktion für die Implementierung des Busses 10 übernommen. Das Lesen vom "Bus" besteht aus dem Speisen des Ausgangssignals jedes Registers in der PCS 110 in einen Mux (nicht dargestellt) und der Verwendung der Registeradresse (MAddr, 2B) als Mux-Selektor, um das gewünschte Register auszuwählen. Der PCSData-Bus wird vom Ausgang des Mux genommen. Das Schreiben in ein Register in der PCS 110 wird durch Speisen der zu schreibenden Daten (MData) in den Eingang jedes Registers durchgeführt. Jedes Register besitzt eine Schreibfreigabe, die mit einer Ausgangsleitung eines Decodierers gekoppelt ist. Durch Einspeisen von MAddr in den Decodierer wird folglich das entsprechende Register freigegeben, um die Daten einzulesen.
  • Von der SIE 140 bewegen sich SiePID (OUT, IN, SOF, SETUP, DATA0, DATA1, ACK und PRE) und SieEndPt in das Paketsteuerregister der PCS 110. SieAddr bewegt sich in den Vergleicher 32 (3B), um festzustellen, ob die vom Hauptrechner gesandte Vorrichtungsadresse derjenigen entspricht, die im Vorrichtungsadressenregister der PCS enthalten ist, was ein Freigabesignal erzeugt, wenn eine Übereinstimmung auftritt. Eingehende Daten bewegen sich von SieData in den FIFO-Steuerblock 42 (3C), damit sie im FIFO 130 gespeichert werden. NextData signalisiert dem FIFO-Steuerblock 42, auf die nächste FIFO-Stelle zu inkrementieren und ihren Inhalt auszulesen.
  • Eine Gruppe von Endpunktsteuerregistern 50 (3A) sieht ein Endpunktsteuerregister für jeden Endpunkt vor. Die Auswahl eines Registers aus der Registergruppe 50 wird über den Selektor 20 durchgeführt. SieEndPt von der SIE 140 bildet einen internen Endpunktadressen-Identifikator PCSEndPtAddr, den aktuellen Endpunkt für die spezielle Transaktion. Der aktuelle Endpunktidentifikator wählt das entsprechende Endpunktsteuerregister aus, dessen Inhalt zur Zustandsmaschine 120 und zum DOH 150 gesandt wird. Insbesondere fließen die Informationen EndPtType, EndPtDir und DataToggle in die PSM 120, während die EndPtBusTurnaround-Information in das DOH 150 fließt. Obwohl die Steuereinheit der vorliegenden Erfindung einen einzelnen FIFO in Betracht zieht, ist zu sehen, dass trotzdem mehrere Endpunkte von nur einem FIFO unterstützt werden können, da für jeden Endpunkt spezifische Informationen in der Registergruppe 50 enthalten sind und über den Selektor 20 unter Verwendung des vom Hauptrechner über SieEndPt gelieferten Endpunktspezifizierers ausgewählt werden. Solche Informationen steuern die Ablaufsteuerung für diesen Endpunkt und seinen Typ und beliebige Daten, die übertragen werden, werden über den FIFO 130 bewerkstelligt. Zusätzlich zu EndPtType, EndPtDir und DataToggle empfängt die PSM 120 StatusStage vom Bit 4 des Unterbrechungsbestätigungsregisters und PacketResponse von den Bits [3:0] des Paketantwortregisters. Wie nachstehend erläutert wird, bilden diese Informationen die von der PSM 120 verwendeten zustandsvariablen.
  • Die PCS 110 arbeitet unter der Steuerung von PSMState-Signalen während der Ablaufsteuerung einer Transaktion. Während einer BULK-Transaktion erfordert beispielsweise jede Übertragung das Umschalten des DATA0/1-Pakets durch die USB-Spezifikation. Wie in 3A gezeigt, beinhaltet das Datenumschalten das Umschalten des Datenumschaltbits (Bit 3) des ausgewählten Endpunktsteuerregisters gegenüber PCSEndPtAddr durch Ausgeben von PSMState-Signalen in der PCS. Ebenso wird der DOH-Steuerblock 44 durch PSMState gesteuert, um einen Stromaufwärtsantwort-PID (d.h. ACK, NAK, STALL) über das DOH 150 auszugeben, wobei der Antwort-PID vom Paketantwortregister erhalten wird.
  • Man wende sich nun den Transaktionsdiagrammen von 4A4I für eine kurze Beschreibung der in der USB-Spezifikation definierten Transaktionssequenzen zu. Die für den USB definierten Transaktionen umfassen: BULK, CONTROL, INTERRUPT und ISOCHRONOUS. Jede von diesen Transaktionen umfasst typischerweise eine Kombination von zwei oder mehr der nachstehend zu erörternden Basisdatenübertragungen (4A4E).
  • 4A stellt die Transaktionssequenz für eine Datenübertragung vom IN-Typ dar, die die Übertragung von Daten zum Hauptrechner beinhaltet. Diese Art von Datenübertragung ist den BULK-, CONTROL- und INTERRUPT-Übertragungen gemeinsam. Der Hauptrechner sendet ein Paket vom IN-Typ zur Vorrichtung. In Reaktion sendet die Vorrichtung ein DATA-Paket zum Hauptrechner, das durch eine Rückkehr-ACK zur Vorrichtung bestätigt wird. Wie in 4A gezeigt, kann die Vorrichtung alternativ entweder mit NAK oder STALL antworten, wenn die Vorrichtung ein Problem erleidet.
  • 4B zeigt eine ähnliche Sequenz für ein Datenpaket vom OUT-Typ, die die Übertragung von Daten vom Hauptrechner beinhaltet. Der Hauptrechner sendet ein Paket vom OUT-Typ, gefolgt von einem DATA-Paket. Die Vorrichtung antwortet dann mit ACK, NAK oder STALL in Abhängigkeit vom Erfolg, von einer Verzögerung oder einem Fehlschlag der Transaktion.
  • Eine BULK-Übertragung von Daten (ob von der Vorrichtung oder zur Vorrichtung) umfasst eine oder mehrere Datenübertragungen vom IN- oder OUT-Typ. 4F zeigt beispielsweise eine BULK-Lesetransaktion mit einer Vielzahl von IN-Datenübertragungen (4A) zum Übertragen von Daten zum Hauptrechner. Die Null- und Eins-Schreibweise bedeutet die Abwechslung von DATA0- und DATA1-Paketen für jede aufeinander folgende Datenübertragung gemäß dem in der USB-Spezifikation definierten Bitumschaltschema. Eine BULK-Übertragung von Daten kann in der anderen Richtung laufen, nämlich vom Hauptrechner in die Vorrichtung, die mit einer Reihe von Datenübertragungen vom OUT-Typ durchgeführt wird (4B).
  • Eine INTERRUPT-Transaktion (nicht dargestellt) besteht im Gegensatz zu einer BULK-Übertragung aus einer oder mehreren Datenübertragungen vom IN-Typ (4A). Wenn mehr als eine Datenübertragung erforderlich ist, geschieht das Bitumschalten für aufeinander folgende Übertragungen. Im Gegensatz zu BULK-Übertragungen beinhaltet ein INTERRUPT nur die Übertragung von Daten von der Vorrichtung zum Hauptrechner; d.h. Datenübertragungen vom IN-Typ.
  • 4C zeigt eine Datenübertragung vom SETUP-Typ. Diese umfasst ein vom Hauptrechner gesandtes SETUP-Paket, gefolgt von einem DATA-Paket, das auch vom Hauptrechner gesandt wird. Diese Art von Datenübertragung wird während einer CONTROL-Transaktion verwendet, die mit einer Aufbaustufe beginnt, wahlweise gefolgt von einer Datenstufe, und mit einer Statusstufe endet. 4G stellt eine Variation der CONTROL-Transaktion dar, die nur aus einer Aufbaustufe (Datenübertragung vom SETUP-Typ) und einer Statusstufe (Datenübertragung vom IN-Typ, 4A) besteht. 4H und 4I zeigen eine zweite Variation der CONTROL-Transaktion, die eine Datenstufe mit einer oder mehreren IN- oder OUT-Datenübertragungen umfasst. Die Statusstufe ist durch eine Datenübertragung in der entgegengesetzten Richtung angedeutet.
  • 4D und 4E zeigen die Transaktionssequenzen für eine ISOCHRONOUS-Transaktion. Für die in 4D gezeigte Stromaufwärts-ISO-Transaktion sendet der Hauptrechner ein Paket vom IN-Typ. Die Vorrichtung antwortet durch Senden eines DATA-Pakets. Die Menge an Daten, die während einer ISO-Transaktion übertragen werden, kann mehr als eine solche Transaktion erfordern, und somit können zusätzliche Transaktionen (in Durchsicht gezeigt) mit Bitumschalten stattfinden. 4E zeigt eine ähnliche Sequenz, jedoch für eine Stromabwärts-ISO-Transaktion. Im Gegensatz dazu werden die anderen Übertragungsarten, ISO-Übertragungen, nicht durch eine Quittierungsphase beendet.
  • Nachdem die verschiedenen vom USB definierten Transaktionen erörtert wurden, nehme man nun auf die Protokollzustandsmaschine PSM 120, die in 5A5D dargestellt ist, Bezug. Man erinnere sich daran, dass die PSM eine Ablaufsteuerung für alle vom USB definierten Transaktionen bereitstellt. Die Eingangssignale in die PSM 120 (PacketEnd, PacketOK, PCSPID, EndPtType, EndPtDir, DataToggle, StatusPhase und PacketResponse) dienen als Zustandsvariablen der Zustandmaschine, die die Handlung(en) festlegen, die während jedes Zustands unternommen wird (werden). Der Ausgang der PSM 120 ist PSMState, ein Satz von Steuerleitungen zum Signalisieren an die PCS 110.
  • Vom IDLE-Zustand, der in 5A gezeigt ist, geht die PSM 120 in einen der Datenübertragungsstartzustände über: SETUP, ISO-IN, ISO-OUT, ST-IN, ST-OUT, INT-IN, IN und OUT. In den SETUP-Zustand wird für die SETUP-Stufe einer CONTROL-Transaktion eingetreten. In den ISO-IN-(ISO-OUT-)Zustand wird für isochrone Transaktionen von Daten zum (vom) Hauptrechner eingetreten. In den ST-IN-(ST-OUT-)Zustand wird für die STATUS-Stufe einer CONTROL-Schreib (Lese) Sequenz eingetreten. In den INT-IN-Zustand wird für Transaktionen eingetreten, die Endpunkte vom Unterbrechungstyp beinhalten. In den IN-(OUT-)Zustand wird für Übertragungen vom IN-(OUT-)Typ während BULK- und CONTROL-Transaktionen eingetreten. Die Übergänge sind durch die USB-Spezifikation vollständig definiert und entsprechen dieser. Die Fehler-, NAK- und STALL-Übergänge entsprechen auch der USB-Spezifikation.
  • Ein Übergang vom IDLE-Zustand geschieht, wenn PacketOK und PacketEnd durch die SIE 140 aktiviert werden. Der Startzustand (SETUP, ISO-IN, ISO-OUT, ST-IN, ST-OUT, INT-IN, IN, OUT), bei dem der Übergang stattfindet, basiert auf dem PCSPID-Eingangssignal von der PCS 110. Ein anschließender Übergang aus dem Startzustand geschieht, wenn die SIE 140 das nächste Paket empfängt und wieder PacketOK und PacketEnd aktiviert. Die PSM gibt dann über PSMState ein Signal aus, das der PCS angibt, welche Handlung erforderlich ist. Anschließende Übergänge werden dann eingeleitet, wenn das DOH 150 StepPSM aktiviert.
  • Zustandsübergänge geschehen auf der Basis der an der Schnittstelle der PCS 110 gelieferten PSM-Zustandsvariablen. Das Folgende ist eine Zusammenfassung dessen, welche Zustandsvariablen betrachtet werden und welche Handlung(en) für jeden Zustand unternommen wird (werden). Obwohl die PSM 120 in einer digitalen Logik implementiert wird, wird die Beschreibung, die folgt, in einem Pseudocode-Format vorgesehen, um die Erläuterung von 5A5D zu erleichtern. In Anbetracht der folgenden Zusammenfassung ist es eine Frage der Grundprinzipien in der Logikkonstruktion, die für Fachleute verständlich und bekannt sind, eine Zustandsmaschine mit dem beschriebenen Verhalten zu implementieren:
    Figure 00270001
    Figure 00280001
    Figure 00290001
  • Die Operation der Steuereinheit wird nun in Verbindung mit zwei in 7 gezeigten Transaktionen erörtert, die darstellen, wie die Steuereinheit mehrere Endpunkte unter Verwendung eines einzelnen FIFO handhabt. Man nehme an, dass der Endpunkt 2 für Stromaufwärts-BULK-Übertragungen definiert ist und der Endpunkt 3 für Stromabwärts-ISOCHRONOUS-Übertragungen definiert ist. Ferner nehme man an, dass die Hauptübertragung mit der isochronen Übertragung zeitweise verschachtelt ist.
  • Man nehme an, dass zu irgendeinem Zeitpunkt vor dem Zeitpunkt t0 die Mikrosteuereinheit zum Hauptrechner hochzuladende Daten erhält; z.B. hat ein Videokamera-Peripheriegerät ein Bild aufgenommen und ist bereit, es zum Hauptrechner zu senden. Man nehme an, dass die Übertragung des Videobildes zum Hauptrechner zwei Datenpakete erfordert.
  • Zum Zeitpunkt t0 empfängt die SIE 140 ein IN-Paket für die Endpunktadresse 2 vom Hauptrechner. Die Vorrichtungsadresse wird in die PCS 110 weitergeleitet und mit dem Inhalt des Vorrichtungsadressenregisters verglichen. Die Endpunktadresse wird in die PCS 110 weitergeleitet, was bewirkt, dass der Selektor 20 das dem Endpunkt 2 entsprechende Endpunktsteuerregister auswählt. Der PID des empfangenen Pakets wird im Paketsteuerregister gespeichert. Die PCS 110 initialisiert die PSM mit der folgenden auf den Endpunkt bezogenen Information: EndPtType = BULK, EndPtDir = "0" für Stromaufwärtsübertragungen und DataToggle = "0".
  • Die Mikrosteuereinheit wird unterbrochen und stellt fest (über das Paketsteuerregister), dass ein IN-Paket für den Endpunkt 2 empfangen wurde. Die Mikrosteuereinheit beginnt, Daten in den FIFO 130 zu laden. Unterdessen beginnt die PSM 120 zu arbeiten, wenn die SIE 140 PacketOK und PacketEnd aktiviert, was zu einem Übergang vom IDLE-Zustand in den IN-Zustand führt (5C). Diesem folgt ein Übergang in den W-DATAT-Zustand. Im W-DATAT-Zustand signalisiert die PSM 120 der DOH-Steuereinheit 44 in der PCS 110 über PSMState, Daten, die im FIFO 130 enthalten sind, zum Hauptrechner zu senden. Insbesondere betrachtet die PSM DataToggle ("0") und signalisiert der PCS, DATA0 zu senden.
  • Die SIE 140 liefert eine anschließende Taktung (NextData) zum Ausgeben von jedem zu sendenden Byte. Wenn das letzte Byte in den FIFO 130 geschrieben wurde, informiert die Mikrosteuereinheit die PCS 110 über die Tatsache durch Schreiben eines internen Codes DEND (0x7) in das Paketantwortregister. Wenn der FIFO leer ist, deaktiviert die PCS 110 SendData. Das DOH 150 aktiviert LastData, was der SIE 140 signalisiert, den berechneten CRC stromaufwärts zu senden. Das DOH 150 aktiviert dann PSMStep, was bewirkt, dass die PSM 120 vom W-DATAT-Zustand in den ACK5-Zustand übergeht. Als nächstes prüft die PSM, ob der Hauptrechner ein ACK gesandt hat, an welchem Punkt ein Übergang in den DT-Zustand geschieht. Beim Eintritt in den DT-Zustand signalisiert die PSM 120 der PCS, das DATA-Umschaltbit des dem Endpunkt 2 entsprechenden Endpunktsteuerregisters umzuschalten, und geht dann in den IDLE-Zustand über.
  • An diesem Punkt wurde ein Paket der Videodaten zum Hauptrechner gesandt. Zu einem späteren Zeitpunkt t1 empfängt die SIE ein OUT-Paket für die Endpunktadresse 3. Wiederum wird die Vorrichtungsadresse in die PCS 110 geleitet und mit dem Inhalt des Vorrichtungsadressenregisters verglichen. Die Endpunktadresse wird in die PCS 110 geleitet, was bewirkt, dass der Selektor 20 das dem Endpunkt 3 entsprechende Endpunktsteuerregister auswählt. Der PID des empfangenen Pakets wird im Paketsteuerregister gespeichert. Die PCS 110 initialisiert die PSM mit der folgenden auf den Endpunkt bezogenen Information: EndPtType = ISOCHRONOUS, EndPtDir = "1" für Stromaufwärtsübertragungen und DataToggle = "0".
  • Die SIE 140 bewirkt, dass die PSM 120 (PacketOK und PacketEnd) vom IDLE-Zustand in den ISO-OUT-Zustand übergeht (5B). Diesem folgt ein Übergang in den R2-DATA0-Zustand, wo die PSM auf die Beendung der Stromabwärtsübertragung wartet. Unterdessen empfängt die SIE 140 Daten vom Hauptrechner und speichert sie im FIFO 130. Da eine isochrone Übertragung keine Quittierungsphase besitzt, markiert die Beendung der heruntergeladenen Daten (einschließlich des CRC) selbst das Ende der Transaktion. PSMStep wird aktiviert, um zu veranlassen, dass die PSM in den IDLE-Zustand übergeht.
  • Man betrachte als nächstes den Zeitpunkt t2, zu dem die nächste Transaktion eine Stromaufwärtsübertragung von Daten vom Endpunkt 2 ist. Der Hauptrechner beginnt durch Ausgeben eines IN-Pakets, das den Endpunkt 2 festlegt. Dies bewirkt, dass der Selektor 20 wieder auf das entsprechende Endpunktsteuerregister zugreift. Die PCS 110 initialisiert die PSM mit der folgenden auf den Endpunkt bezogenen Information: EndPtType = BULK, EndPtDir = "0" für Stromaufwärtsübertragungen und DataToggle = "1". Man beachte, dass das Datenumschaltbit nun aufgrund des Umschaltens von der vorherigen Endpunkttransaktion "1" ist.
  • Die Mikrosteuereinheit wird unterbrochen und stellt (über das Paketsteuerregister) fest, dass ein IN-Paket für den Endpunkt 2 empfangen wurde. Die Mikrosteuereinheit beginnt, den zweiten Satz von Daten in den FIFO 130 zu laden. Unterdessen beginnt die PSM 120 zu arbeiten, wenn die SIE 140 PacketOK und PacketEnd aktiviert, was zu einem Übergang vom IDLE-Zustand in den IN-Zustand führt (5C). Diesem folgt ein Übergang in den W-DATAT-Zustand. Im W-DATAT-Zustand signalisiert die PSM der DOH-Steuereinheit 44 in der PCS 110 über PSMState, Daten, die im FIFO 130 enthalten sind, zum Hauptrechner zu senden. Insbesondere betrachtet die PSM DataToggle ("1") und signalisiert der PCS, DATA1 zu senden.
  • Die SIE 140 liefert eine anschließende Taktung (NextData) zum Ausgeben jedes zu sendenden Bytes. Wenn das letzte Byte in den FIFO 130 geschrieben wurde, informiert die Mikrosteuereinheit die PCS 110 über die Tatsache durch Schreiben eines internen Codes DEND (0x7) in das Paketantwortregister. Wenn der FIFO leer ist, deaktiviert die PCS 110 SendData. Das DOH 150 aktiviert LastData, was der SIE 140 signalisiert, den CRC zu berechnen und ihn stromaufwärts zu senden. Das DOH 150 aktiviert dann PSMStep, was bewirkt, dass die PSM 120 vom W-DATAT-Zustand in den ACK5-Zustand übergeht. Als nächstes prüft die PSM, ob der Hauptrechner ein ACK gesandt hat, an welchem Punkt ein Übergang in den DT-Zustand stattfindet. Beim Eintritt in den DT-Zustand signalisiert die PSM 120 der PCS, das DATA-Umschaltbit des dem Endpunkt 2 entsprechenden Endpunktsteuerregisters umzuschalten, und geht dann in den IDLE-Zustand über.
  • Zwei Beobachtungen sind an diesem Punkt erwähnenswert:
    Erstens ist zu sehen, dass eine Datenübertragung (wie z.B. die Videodaten mit dem Endpunkt 2), die mehrere Datentransaktionen erfordert, mit anderen Transaktionen verschachtelt werden kann (in diesem Fall ein OUT-Paket mit dem Endpunkt 3). Jede Transaktion (IN, OUT, usw.) ist in der Hinsicht atomar, als die Transaktion enden muss, bevor eine weitere Transaktion verarbeitet wird. Außerdem sind Zustandsinformationen in Bezug auf jeden Endpunkt in seinem eigenen Endpunktsteuerregister enthalten (z.B. der Datenumschaltzustand des Endpunkts 2), so dass kein Verlust von Zustandsinformationen besteht, wenn Transaktionen unter mehreren Endpunkten verschachtelt werden. Die zweite Beobachtung besteht darin, dass ein einzelner FIFO ausreicht, um die Datenpufferung zwischen dem Hauptrechner und den in einer Vorrichtung definierten Endpunkten vorzusehen. Da jede Transaktion atomar ist, enthält der FIFO niemals Teildaten von einer vorherigen Transaktion.
  • Die vorliegende Erfindung umfasst gewisse Zeitablaufmerkmale der USB-Steuereinheit, die die Menge an Zeit, die eine Mikrosteuereinheit zur Ausführung einer Datenübertragung hat, maximieren. Der Zeitablaufplan in 8 stellt die Datensequenz für sowohl eine IN- als auch eine OUT-Transaktion dar. Eine Transaktion beginnt mit einem Acht-Bit-SYNC und endet mit einem Drei-Bit-EOP. Beim Empfang eines IN- oder eines OUT-PID erzeugt die USB-Steuereinheit eine Unterbrechung für die Mikrosteuereinheit eine gewisse Zeit nach dem Empfang der vier Bits, die den Endpunkt-Spezifizierer ENDP bilden, wobei die früheste unmittelbar nach dem Empfang von ENDP liegt. An diesem Punkt enthält die PCS die Endpunktadresse der eingehenden Transaktion. Obwohl der Hauptrechner die Transaktion nicht beendet hat, kann die Mikrosteuereinheit folglich die Endpunktinformation für die PCS-Register erhalten und das Einrichten für die anschließende DATA-Transaktion beginnen.
  • Im Fall einer IN-Transaktion kann die Mikrosteuereinheit mit dem Schreiben von Daten in den FIFO 130 kurz nach dem Empfang der Unterbrechung beginnen. Wie in 8 zu sehen ist, hat die Mikrosteuereinheit einen Kopfstart von vierundzwanzig Bitzeiten (CRC + EOP + SYNC + DATA0/1) plus die Busdurchlaufzeit, die nachstehend zu erörtern ist. Bis dahin muss die Mikrosteuereinheit das erste Byte in den FIFO für die Stromaufwärtsübertragung geschrieben haben. Für eine OUT-Transaktion besitzt die Mikrosteuereinheit zusätzliche acht Bitzeiten, um Dinge zum Empfang von Daten vom Hauptrechner einzurichten. Die zusätzliche Zeit resultiert aus der Tatsache, dass das erste Byte in den FIFO geschrieben werden muss, bevor die Mikrosteuereinheit es aufgreifen kann.
  • Der Busdurchlaufzeitablauf legt die Verzögerung zwischen Transaktionen fest, wie in 8 gezeigt. Sein Wert kann sich von Endpunkt zu Endpunkt unterscheiden und ist durch die BusTurnaround-Bits (2 Bits) der Endpunktsteuerregister festgelegt. Im bevorzugten Ausführungsbeispiel liefert das DOH 150 die den BusTurnaround-Bits entsprechende Verzögerung, drei Bitzeiten für "00", sieben Bitzeiten für "01", elf Bitzeiten für "10" und fünfzehn Bitzeiten für "11". Idealerweise wäre die Busdurchlaufzeit Null, um den maximalen Durchsatz zu erhalten. Einige Vorrichtungen können jedoch langsam sein oder der Hauptrechner kann eine langsamere Geschwindigkeit erfordern. Die BusTurnaround-Bits sehen eine beliebige erforderliche Einstellung vor.
  • Während einer Datenübertragung kann in den FIFO 130 zur gleichen Zeit geschrieben werden, wie er ausgelesen wird. Folglich kann die USB-Steuereinheit im Fall einer IN-Übertragung Daten vom FIFO lesen, um Daten stromaufwärts zum Hauptrechner zu senden, während die Mikrosteuereinheit gleichzeitig Daten in den FIFO schreibt. Das Bytezählwert-Register sieht die erforderliche Datensatzaufrechterhaltung vor, um sicherzustellen, dass der FIFO nicht leer ist, wenn ein Byte stromaufwärts übertragen wird, und dass der FIFO nicht voll ist, wenn ein Byte in den FIFO geschrieben wird. Ebenso kann die Mikrosteuereinheit im Fall einer OUT-Übertragung den FIFO leeren, während er durch den Hauptrechner gefüllt wird.
  • Noch ein weiteres Merkmal der Erfindung besteht darin, einen zweiten FIFO 130' zu haben, wie in 9 gezeigt. In einer Situation, in der die Mikrosteuereinheit viele Hochgeschwindigkeitsendpunkte unterstützen muss, kann ein zweiter FIFO verwendet werden, um zusätzliche Pufferfähigkeit bereitzustellen. Folglich kann der erste FIFO einer ersten Teilmenge von Endpunkten zugeordnet werden und der zweite FIFO einem zweiten Satz von Endpunkten zugeordnet werden. Als Beispiel kann der erste FIFO Daten vom Hauptrechner empfangen, während die Mikrosteuereinheit Daten in den zweiten FIFO für eine Stromaufwärtsübertragung schreibt. Sobald die Stromabwärtsübertragung endet, kann die USB-Steuereinheit unmittelbar eine Stromaufwärtsübertragung von Daten im zweiten FIFO beginnen, während die Mikrosteuereinheit die im ersten FIFO empfangenen Daten verarbeitet.

Claims (17)

  1. Steuereinheit, die dazu ausgelegt ist, ein Peripheriegerät gemäß der Spezifikation des universellen seriellen Busses (USB) zu betreiben, wobei die Steuereinheit aufweist: ein Mittel (140), das dazu ausgelegt ist, Datenpakete vom TOKEN-Typ zu empfangen; gekennzeichnet durch einen FIFO (130), der dazu ausgelegt ist, Daten, die in empfangenen Datenpaketen enthalten sind, zu speichern, wobei der FIFO mindestens zwei Endpunktadressen zugeordnet ist; einen Paketsteuerspeicher (110), der dazu ausgelegt ist, als aktuelle Endpunktadresse einen Identifikator zu speichern, der in einem Endpunktfeld eines empfangenen Datenpakets enthalten ist und aus diesem gewonnen wird, wobei die im FIFO gespeicherten Daten der aktuellen Endpunktadresse zugeordnet sind; eine Zustandmaschine (120) zum Steuern der Ablaufsteuerung einer Transaktion auf der Basis der aktuellen Endpunktadresse, wobei die Transaktion den Empfang einer Vielzahl von Datenpaketen umfasst, wobei die Zustandsmaschine dadurch in der Lage ist, die Ablaufsteuerung von Transaktionen mit einer beliebigen Endpunktadresse zu steuern; eine Vielzahl von Endpunktsteuerspeichern (50); und einen Selektor (20), der mit der Vielzahl von Endpunktsteuerspeichern (50) gekoppelt ist und dazu ausgelegt ist, einen der Endpunktsteuerspeicher auf der Basis der aktuellen Endpunktadresse auszuwählen; wobei die Zustandsmaschine (120) zum Empfangen des Inhalts eines ausgewählten der Endpunktsteuerspeicher gekoppelt ist.
  2. Steuereinheit nach Anspruch 1, wobei das Mittel (140), das dazu ausgelegt ist, Datenpakete vom TOKEN-Typ zu empfangen, auch dazu ausgelegt ist, Datenpakete vom TOKEN-Typ zu senden, und mit dem FIFO (130) gekoppelt ist.
  3. Steuereinheit nach Anspruch 2, wobei die Endpunktsteuerspeicher (50) einen Busdurchlaufverzögerungs-Spezifizierer aufweisen und wobei das Mittel (140), das dazu ausgelegt ist, Datenpakete zu senden, zum Empfangen des Busdurchlaufverzögerungs-Spezifizierers des ausgewählten Endpunktsteuerspeichers (50) gekoppelt ist.
  4. Steuereinheit nach Anspruch 1, wobei das Mittel (140), das dazu ausgelegt ist, Datenpakete zu senden, ferner einen an einem Hauptrechner angebrachten Anschluss aufweist.
  5. Steuereinheit nach Anspruch 2 oder 3, welche ferner aufweist: eine Mikrosteuereinheits-Schnittstelle, die mit einer Mikrosteuereinheit verbunden ist; wobei das Mittel (140), das dazu ausgelegt ist, Datenpakete zu empfangen und zu senden, ein serielles Mittel ist und ferner einen an einem USB-Hauptrechner angebrachten Anschluss aufweist, wobei das serielle Mittel mit dem Anschluss gekoppelt ist, dazu ausgelegt ist, die Datenpakete vom TOKEN-Typ zu empfangen und zu senden, und ein Mittel aufweist, das dazu ausgelegt ist, eine aktuelle Endpunktadresse von einem Datenpaket vom TOKEN-Typ zu gewinnen; wobei die Mikrosteuereinheits-Schnittstelle ferner dazu ausgelegt ist, die Übertragung von Paketen zwischen dem USB-Hauptrechner und der Mikrosteuereinheit zu handhaben; wobei der Paketsteuerspeicher ein erstes Speichermittel, das dazu ausgelegt ist, die aktuelle gewonnene Endpunktadresse zu speichern, und ein zweites Speichermittel, das dazu ausgelegt ist, die Konfiguration und Zustandsinformation für jede Endpunktadresse zu speichern, aufweist; wobei die Zustandsmaschine (120) mit der Mikrosteuereinheits-Schnittstelle gekoppelt ist, und wobei die Zustandsmaschine (120) mit dem zweiten Speichermittel gekoppelt ist, um die Konfiguration und Zustandsinformation entsprechend der aktuellen Endpunktadresse zu empfangen.
  6. Steuereinheit nach Anspruch 5, welche ferner ein Mittel aufweist, das dazu ausgelegt ist, während des Empfangs eines Datenpakets vom TOKEN-Typ eine Unterbrechung zu erzeugen, wodurch der Mikrosteuereinheit signalisiert wird, sich auf das Speichern von Daten oder auf das Lesen von Daten aus dem FIFO (130) vorzubereiten.
  7. Steuereinheit nach Anspruch 6, wobei das Mittel, das dazu ausgelegt ist, eine Unterbrechung zu erzeugen, dadurch gekennzeichnet ist, dass es dazu ausgelegt ist, eine Unterbrechung vor dem Empfang des EOP-Begrenzers eines Datenpakets vom TOKEN-Typ zu erzeugen.
  8. Steuereinheit nach Anspruch 6, wobei das Mittel, das dazu ausgelegt ist, eine Unterbrechung zu erzeugen, dadurch gekennzeichnet ist, dass es dazu ausgelegt ist, eine Unterbrechung während des Empfangs des CRC-Teils eines Datenpakets vom TOKEN-Typ zu erzeugen.
  9. Steuereinheit nach Anspruch 4 oder 5, wobei der Anschluss ferner ein Mittel aufweist, das dazu ausgelegt ist, eine Trennung von einem USB-Hauptrechner und eine anschließende erneute Verbindung mit dem USB-Hauptrechner zu simulieren.
  10. Steuereinheit nach Anspruch 9, wobei der Anschluss eine Signalleitung D+, eine Signalleitung D– und einen Pull-up-Widerstand (146, 148), der mit einer der Signalleitungen gekoppelt ist, aufweist und wobei das Mittel, das dazu ausgelegt ist zu simulieren, einen ersten Transistorschalter (143, 145, 147), der zum vorübergehenden Setzen des Potentials der Leitungen D+ und D– im Bereich von 2,0 bis 0,8 Volt gekoppelt ist, und einen zweiten Transistorschalter (143, 144, 145, 147), der zum Abtrennen des Pull-up-Widerstandes gekoppelt ist, aufweist, wodurch eine unsymmetrische Nullbedingung erzeugt wird.
  11. Steuereinheit nach Anspruch 5, welche ferner aufweist einen zweiten FIFO (130'), wobei jeder der FIFOs (130, 130') einer Vielzahl von Endpunktadressen zugeordnet ist; und ein Mittel, das dazu ausgelegt ist, Daten in einem der FIFOs in Abhängigkeit von der durch die aktuelle Endpunktadresse identifizierten Endpunktadresse zu speichern.
  12. Verfahren zum Betreiben einer Steuereinheit gemäß der Spezifikation des universellen seriellen Busses (USB), wobei die Steuereinheit (100, 100') ein Mittel (140) zum Empfangen von Paketen von einem Hauptrechner, einen FIFO (130) zum Speichern von Daten, die in empfangenen Datenpaketen vom TOKEN-Typ enthalten sind, und einen Paketsteuerspeicher aufweist; wobei das Verfahren die Schritte umfasst: der Paketsteuerspeicher identifiziert eine aktuelle Endpunktadresse, die in einem empfangenen Datenpaket vom TOKEN-Typ enthalten ist, anschließend Speichern von ersten Daten im FIFO (130), wobei die gespeicherten ersten Daten der aktuellen Endpunktadresse zugeordnet werden, beim Empfangen eines zweiten Datenpakets vom TOKEN-Typ wird die im Paket enthaltene Endpunktadresse zur neuen aktuellen Endpunktadresse, und anschließend Speichern von zweiten Daten im FIFO (130), wobei die gespeicherten zweiten Daten der neuen aktuellen Endpunktadresse zugeordnet werden.
  13. Verfahren nach Anspruch 12, wobei die Steuereinheit (100, 100') ferner einen zweiten FIFO (130') aufweist, wobei die aktuelle und die neue aktuelle Endpunktadresse dem FIFO (130) oder dem zweiten FIFO (130') zugewiesen werden.
  14. Verfahren nach Anspruch 13, wobei die Anzahl von FIFOs, die in der Steuereinheit (100, 100') enthalten sind, geringer ist als die Anzahl von unterstützten Endpunktadressen.
  15. Verfahren nach einem der Ansprüche 12, 13 oder 14, wobei die Steuereinheit (100, 100') eine einzelne Zustandsmaschine (120) verwendet, um die Ablaufsteuerung aller USB-Transaktionsarten zwischen dem Hauptrechner und der Steuereinheit zu steuern.
  16. Verfahren nach Anspruch 12, wobei die Steuereinheit (100, 100') auf den FIFO (130) vor der Beendung der Transaktion, die die Daten erfordert, zugreift.
  17. Verfahren nach Anspruch 12, wobei die Steuereinheit (100, 100') ferner einen Hauptrechner-Verbindungsanschluss mit einem Mittel zum Simulieren des Lösens und Anbringens der Steuereinheit aufweist.
DE69836426T 1997-08-12 1998-06-19 Steuergerät für einen universellen seriellen Bus Expired - Fee Related DE69836426T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US909988 1992-07-07
US08/909,988 US5974486A (en) 1997-08-12 1997-08-12 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
PCT/US1998/012918 WO1999008196A1 (en) 1997-08-12 1998-06-19 A universal serial bus device controller

Publications (2)

Publication Number Publication Date
DE69836426D1 DE69836426D1 (de) 2006-12-28
DE69836426T2 true DE69836426T2 (de) 2007-09-27

Family

ID=25428152

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69836426T Expired - Fee Related DE69836426T2 (de) 1997-08-12 1998-06-19 Steuergerät für einen universellen seriellen Bus

Country Status (12)

Country Link
US (1) US5974486A (de)
EP (1) EP1002275B1 (de)
JP (1) JP2001512870A (de)
KR (1) KR100572165B1 (de)
CN (1) CN1129852C (de)
CA (1) CA2297084C (de)
DE (1) DE69836426T2 (de)
HK (1) HK1027878A1 (de)
MY (1) MY114073A (de)
NO (1) NO20000699D0 (de)
TW (1) TW385393B (de)
WO (1) WO1999008196A1 (de)

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10207804A (ja) * 1997-01-16 1998-08-07 Alps Electric Co Ltd 偽装端末システムおよび偽装端末装置
US6219736B1 (en) * 1997-04-24 2001-04-17 Edwin E. Klingman Universal serial bus (USB) RAM architecture for use with microcomputers via an interface optimized for integrated services device network (ISDN)
US6145027A (en) * 1997-07-09 2000-11-07 Texas Instruments Incorporated DMA controller with split channel transfer capability and FIFO buffering allowing transmit channel to get ahead of corresponding receive channel by preselected number of elements
US6230226B1 (en) * 1997-09-30 2001-05-08 Intel Corporation Compound device implementing hub and function endpoints on a single chip
JP3011157B2 (ja) * 1997-10-30 2000-02-21 日本電気株式会社 画像読取方法及び装置
KR100290729B1 (ko) * 1998-01-07 2001-05-15 클라크 3세 존 엠. 유에스비 등시 데이타를 전송 및 수신하는 장치 및 방법
US6070208A (en) * 1998-01-07 2000-05-30 National Semiconductor Corporation Apparatus and method for implementing a versatile USB endpoint pipe
US6205501B1 (en) * 1998-01-07 2001-03-20 National Semiconductor Corp. Apparatus and method for handling universal serial bus control transfers
US6157975A (en) * 1998-01-07 2000-12-05 National Semiconductor Corporation Apparatus and method for providing an interface to a compound Universal Serial Bus controller
EP0933711B1 (de) * 1998-01-29 2006-12-20 Infineon Technologies AG Anordnung und Verfahren zum Bereitstellen von Daten zur Charakterisierung von verschiedenen Einheiten an einem Bussystem
US6058441A (en) * 1998-02-19 2000-05-02 Shu; Han USB multi-function connecting device
US6233640B1 (en) * 1999-03-19 2001-05-15 In-System Design, Inc. Universal serial bus peripheral bridge with sequencer
US6266715B1 (en) * 1998-06-01 2001-07-24 Advanced Micro Devices, Inc. Universal serial bus controller with a direct memory access mode
US6321335B1 (en) 1998-10-30 2001-11-20 Acqis Technology, Inc. Password protected modular computer method and device
US6393588B1 (en) * 1998-11-16 2002-05-21 Windbond Electronics Corp. Testing of USB hub
US6279060B1 (en) * 1998-12-04 2001-08-21 In-System Design, Inc. Universal serial bus peripheral bridge simulates a device disconnect condition to a host when the device is in a not-ready condition to avoid wasting bus resources
US6389495B1 (en) * 1999-01-16 2002-05-14 Cypress Semiconductor Corp. Dedicated circuit and method for enumerating and operating a peripheral device on a universal serial bus
US6389560B1 (en) * 1999-01-19 2002-05-14 Sun Microsystems, Inc. Universal serial bus interpreter
US6148354A (en) * 1999-04-05 2000-11-14 M-Systems Flash Disk Pioneers Ltd. Architecture for a universal serial bus-based PC flash disk
US6567875B1 (en) 1999-04-05 2003-05-20 Opti, Inc. USB data serializer
US6643777B1 (en) 1999-05-14 2003-11-04 Acquis Technology, Inc. Data security method and device for computer modules
US6718415B1 (en) 1999-05-14 2004-04-06 Acqis Technology, Inc. Computer system and method including console housing multiple computer modules having independent processing units, mass storage devices, and graphics controllers
JP3641169B2 (ja) 1999-08-06 2005-04-20 株式会社エヌ・ティ・ティ・ドコモ Usb対応電子機器
JP3795712B2 (ja) * 1999-09-02 2006-07-12 アルプス電気株式会社 周辺機器の接続装置
EP1226505B1 (de) * 1999-11-05 2005-01-26 Analog Devices, Inc. Architektur und system von einem generischen und seriellen port
CN1088218C (zh) * 1999-11-14 2002-07-24 邓国顺 用于数据处理系统的快闪电子式外存储方法及其装置
US6697763B1 (en) * 1999-12-07 2004-02-24 Pei Electronics, Inc. Measurement module and system for monitoring the status of armored vehicle electronic components
US6684272B1 (en) * 1999-12-23 2004-01-27 Intel Corporation Throughput enhancement for a universal host controller interface in a universal serial bus
EP1183611B1 (de) * 1999-12-24 2007-03-14 Koninklijke Philips Electronics N.V. Emulation einer geräteabschaltung
US6742076B2 (en) * 2000-01-03 2004-05-25 Transdimension, Inc. USB host controller for systems employing batched data transfer
US6658515B1 (en) * 2000-01-25 2003-12-02 Dell Usa, L.P. Background execution of universal serial bus transactions
US6505263B1 (en) 2000-01-25 2003-01-07 Dell U.S.A. L.P. Bus controller operating code in system memory
JP4553279B2 (ja) * 2000-03-09 2010-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション データ転送システム、データ転送端末、コントローラ、およびインターフェイス方法
US6779061B1 (en) * 2000-05-09 2004-08-17 Cypress Semiconductor Corp. Method and apparatus implementing a FIFO with discrete blocks
JP3415567B2 (ja) * 2000-06-21 2003-06-09 エヌイーシーマイクロシステム株式会社 Usb転送制御方法およびusbコントローラ
FR2810833B1 (fr) 2000-06-27 2002-09-20 Thomson Multimedia Sa Appareil multimedia de reception d4emission audiovisuelle
FR2817058B1 (fr) * 2000-11-21 2003-01-24 St Microelectronics Sa Dispositif et procede de traitement des interruptions dans une transmission d'informations sur un bus
US6931465B1 (en) 2001-03-31 2005-08-16 Cypress Semiconductor Corp. Intelligent, extensible SIE peripheral device
KR100422586B1 (ko) * 2001-04-30 2004-03-12 주식회사 하이닉스반도체 유에스비 마이크로 컨트롤러 유닛 디버깅 방법
JP3680763B2 (ja) * 2001-05-14 2005-08-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US6801959B1 (en) 2001-05-16 2004-10-05 Lexmark International, Inc. Relaxed-timing universal serial bus with a start of frame packet generator
KR100407563B1 (ko) * 2001-06-16 2003-12-01 삼성전자주식회사 유니버셜 시리얼 버스 장치
US7228366B2 (en) * 2001-06-29 2007-06-05 Intel Corporation Method and apparatus for deterministic removal and reclamation of work items from an expansion bus schedule
TW518502B (en) * 2001-07-13 2003-01-21 Prolific Technology Inc USB compound device and the realization method thereof
US7054975B2 (en) * 2001-08-10 2006-05-30 Koninklijke Philips Electronics N.V. Interrupt generation in a bus system
KR20040041623A (ko) * 2001-09-27 2004-05-17 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 버스 시스템 및 버스 인터페이스
DE60237379D1 (de) * 2001-09-28 2010-09-30 Nxp Bv Bussystem und busschnittstelle zur verbindung mit einem bus
JP3609051B2 (ja) * 2001-11-21 2005-01-12 Necエレクトロニクス株式会社 Usb−hubデバイスおよびその制御方法
US20030167347A1 (en) * 2002-02-11 2003-09-04 Combs James Lee Home network printer adapter
AU2003213650A1 (en) * 2002-03-13 2003-09-29 Advanced Micro Devices, Inc. Usb host controller
JP3755594B2 (ja) * 2002-04-19 2006-03-15 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP3636157B2 (ja) * 2002-04-19 2005-04-06 セイコーエプソン株式会社 データ転送制御装置、電子機器及びデータ転送制御方法
JP3636160B2 (ja) * 2002-04-26 2005-04-06 セイコーエプソン株式会社 データ転送制御装置、電子機器及びデータ転送制御方法
US20030212841A1 (en) * 2002-05-12 2003-11-13 Ju-Yung Lin Method and apparatus of controlling an operational mode of a USB device
US7080189B1 (en) * 2002-05-31 2006-07-18 Cypress Semiconductor Corp. USB device communication
KR20040009955A (ko) * 2002-07-26 2004-01-31 삼성전자주식회사 호스트와 휴대용 저장장치간의 데이터 전송속도를향상시키는 유에스비 인터페이스 장치 및 그 인터페이스방법
US7069347B1 (en) * 2002-09-27 2006-06-27 Cypress Semiconductor Corporation Device and method for adapting speed of a USB device based on available power
US7072989B1 (en) 2002-09-27 2006-07-04 Cypress Semiconductor, Inc. USB peripheral device storing an indication of an operating power mode when a host went into hibernate and restarting at the power mode accordingly
US7069373B2 (en) * 2002-11-07 2006-06-27 Nec Electronics America, Inc. USB endpoint controller flexible memory management
DE602004008060T2 (de) * 2003-05-15 2008-04-17 Nxp B.V. Usb host controller mit speicher für transferdeskriptoren
KR100480084B1 (ko) * 2003-07-23 2005-04-06 엘지전자 주식회사 범용 직렬버스를 이용한 데이터 전송 시스템
US8984199B2 (en) * 2003-07-31 2015-03-17 Intel Corporation Inter-processor interrupts
JP2005071273A (ja) * 2003-08-27 2005-03-17 Canon Inc 電子機器及びそのインターフェース制御方法
JP4750379B2 (ja) * 2004-05-31 2011-08-17 キヤノン株式会社 電子機器
US8159485B2 (en) * 2004-07-30 2012-04-17 Logic Controls, Inc. Customer pole display and interface
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
GB2423165B (en) * 2005-02-14 2007-01-10 Elan Digital Systems Ltd Host controller device and method
KR101351585B1 (ko) 2005-11-25 2014-01-16 삼성전자주식회사 A/v 시스템과 휴대형 기기 간의 인터페이스를 위한 장치및 방법
JP2007249938A (ja) * 2006-02-14 2007-09-27 Matsushita Electric Ind Co Ltd Usbホストシステム、avデータ再生装置およびavデータ記録装置
US8046506B2 (en) * 2006-03-21 2011-10-25 Mediatek Inc. FIFO system and operating method thereof
US7711863B2 (en) * 2006-09-11 2010-05-04 Research In Motion Limited Method and apparatus for variably enabling USB interaction
US7707323B2 (en) 2006-09-11 2010-04-27 Research In Motion Limited Method and apparatus for enabling enhanced USB interaction
US7990724B2 (en) 2006-12-19 2011-08-02 Juhasz Paul R Mobile motherboard
CN100462952C (zh) * 2007-02-06 2009-02-18 南京大学 接口可配置的通用串行总线控制器
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
US8412975B2 (en) 2007-05-15 2013-04-02 Chronologic Pty. Ltd. USB based synchronization and timing system
US7631126B2 (en) 2007-05-24 2009-12-08 Research In Motion Limited System and method for interfacing an electronic device with a host system
DE602007001594D1 (de) * 2007-05-24 2009-08-27 Research In Motion Ltd System und Verfahren zum Ankoppeln einer elektronischen Vorrichtung an ein Hostsystem
JP2009048444A (ja) * 2007-08-21 2009-03-05 Seiko Epson Corp Usbデバイスの制御方法、コントローラ及び電子機器
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
JP4724206B2 (ja) * 2008-06-16 2011-07-13 三洋電機株式会社 マイクロコンピュータ
US8332557B2 (en) * 2008-12-12 2012-12-11 Qualcomm, Incorporated System, apparatus, and method for broadcasting USB data streams
DE102009033360A1 (de) * 2009-07-16 2011-01-20 Giesecke & Devrient Gmbh Verfahren zum Bekanntgeben einer Speicherkonfiguration
JP5403680B2 (ja) * 2009-12-15 2014-01-29 Necビッグローブ株式会社 情報転送システム、情報呈示装置、情報転送方法、およびプログラム
US8495271B2 (en) * 2010-08-04 2013-07-23 International Business Machines Corporation Injection of I/O messages
US9336029B2 (en) 2010-08-04 2016-05-10 International Business Machines Corporation Determination via an indexed structure of one or more partitionable endpoints affected by an I/O message
US8549202B2 (en) 2010-08-04 2013-10-01 International Business Machines Corporation Interrupt source controller with scalable state structures
US8990592B2 (en) 2012-01-25 2015-03-24 Smsc Holdings S.A.R.L. Overcoming limited common-mode range for USB systems
CN103019983B (zh) * 2012-11-23 2016-03-30 北京宏思电子技术有限责任公司 Usb接口控制模块和usb设备的数据传输控制方法
CN103217930B (zh) * 2013-05-02 2016-01-27 浙江中控技术股份有限公司 一种工业控制器间的数据交互系统
US9030228B1 (en) * 2013-12-03 2015-05-12 Atmel Corporation Intelligent current drive for bus lines
CN105335320B (zh) 2014-08-14 2020-05-15 恩智浦美国有限公司 具有可动态配置的端点分配的usb设备
CN108134599B (zh) * 2017-12-04 2019-03-08 山东高云半导体科技有限公司 一种i3c总线控制接口电路
CN108874700B (zh) * 2018-06-01 2021-07-16 联想(北京)有限公司 电子设备
KR20210069481A (ko) * 2019-12-03 2021-06-11 삼성전자주식회사 메모리 컨트롤러를 포함하는 스토리지 장치 및 비휘발성 메모리 시스템과 이의 동작 방법
TWI736092B (zh) * 2019-12-31 2021-08-11 新唐科技股份有限公司 通用串列匯流排裝置以及存取方法
CN111930648B (zh) * 2020-08-07 2023-01-10 山东云海国创云计算装备产业创新中心有限公司 一种缓存配置方法、装置及电子设备和存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4203001A (en) * 1978-06-02 1980-05-13 Siemens Aktiengesellschaft Apparatus for establishing multi-address and conference call connections
US4958342A (en) * 1987-03-11 1990-09-18 Aristacom International, Inc. Adaptive digital network interface
US4979167A (en) * 1988-12-02 1990-12-18 Advanced Micro Devices, Inc. Methods and apparatus for performing restricted token operations on an FDDI network
JPH04251338A (ja) * 1990-10-10 1992-09-07 Fuji Xerox Co Ltd プロセス間通信の制御方式
US5535197A (en) * 1991-09-26 1996-07-09 Ipc Information Systems, Inc. Shared buffer switching module
US5455572A (en) * 1992-10-19 1995-10-03 Motorola, Inc. Selective call receiver with computer interface message notification
JPH0950312A (ja) * 1995-05-31 1997-02-18 Mitsubishi Electric Corp Faコントローラのデータ処理方法
US5860119A (en) * 1996-11-25 1999-01-12 Vlsi Technology, Inc. Data-packet fifo buffer system with end-of-packet flags

Also Published As

Publication number Publication date
CA2297084C (en) 2005-09-27
JP2001512870A (ja) 2001-08-28
EP1002275B1 (de) 2006-11-15
WO1999008196A1 (en) 1999-02-18
KR20010022816A (ko) 2001-03-26
KR100572165B1 (ko) 2006-04-19
CA2297084A1 (en) 1999-02-18
HK1027878A1 (en) 2001-01-23
DE69836426D1 (de) 2006-12-28
WO1999008196A9 (en) 2000-03-16
EP1002275A1 (de) 2000-05-24
CN1266515A (zh) 2000-09-13
CN1129852C (zh) 2003-12-03
EP1002275A4 (de) 2002-01-23
US5974486A (en) 1999-10-26
MY114073A (en) 2002-07-31
NO20000699L (no) 2000-02-11
TW385393B (en) 2000-03-21
NO20000699D0 (no) 2000-02-11

Similar Documents

Publication Publication Date Title
DE69836426T2 (de) Steuergerät für einen universellen seriellen Bus
DE69932400T2 (de) Steuerungsvorrichtung für einen Portverwalter zur Verbindung von verschiedenen Funktionsmodulen
DE19900325B4 (de) Vorrichtung und Verfahren zum Senden und Empfangen von Daten in eine und aus einer universellen seriellen 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
DE60215833T2 (de) Mehrkanalschnittstelle für die kommunikation zwischen einrichtungen
DE60013470T2 (de) Gerät zur initialisierung einer rechnerschnittstelle
DE69733857T2 (de) Steuerungsübertragungsbus für Netzwerkgeräte
DE4121446C2 (de) Terminal-Server-Architektur
EP0951682B1 (de) IO- UND SPEICHERBUSSYSTEM FÜR DFPs SOWIE BAUSTEINE MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN
DE19900369B4 (de) Vorrichtung zum Anschluß an einen Universal Serial Bus (USB) und Verfahren zum Betreiben eines Steuerendpunktes an einem Universal Serial Bus (USB)
DE69233664T2 (de) Schnittstelle eines sender-empfängers
DE19581234B4 (de) Bussteuereinrichtung und Verfahren für eine hierarchische serielle Busanordnung unter Verwendung von Kommunikationspaketen
DE60035882T2 (de) Protokoll einer zerteilten transaktion für ein bussystem
DE10234991B4 (de) Hostcontrollerdiagnose für einen seriellen Bus
DE60132872T2 (de) Anordnung und Verfahren für eine Schnittstelleneinheit um Daten zwischen einem Hauptprozessor und einem digitalen Signalprozessor im asynchronen Übertragungsmodus zu übertragen
DE19900369A9 (de) Vorrichtung und Verfahren zur Ausführung einer Steuerübertragung auf einem Universal Serial Bus
DE602004004442T2 (de) Kartenidentifikationssystem
DE69928603T2 (de) Medienzugriffssteuerung
DE19900290A9 (de) Verfahren zum Betreiben einer universellen seriellen Buseinrichtung und universelle serielle Buseinrichtung
DE102004057756B4 (de) USB-Steuerungseinrichtung mit OTG-Steuerungseinheit
DE102005009021A1 (de) Vereinheitliche USB OTG-Steuerungseinheit
DE102007012054B4 (de) Mehrmasterverkettungszweidrahtseriellbus
DE102008055892A1 (de) Abspeichern von Abschnitten eines Datenübertragungsdeskriptors in einem gecachten und einem nicht gecachten Adressbereich
DE10239814A1 (de) Erweiterte Testmodusunterstützung für Hostcontroller
DE60029118T2 (de) Asynchrone zentralisierte multikanal-dma-steuerung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee