DE60205531T2 - Datentransfersteueranlage, elektronisches Gerät und Datentransfersteuerverfahren - Google Patents

Datentransfersteueranlage, elektronisches Gerät und Datentransfersteuerverfahren Download PDF

Info

Publication number
DE60205531T2
DE60205531T2 DE60205531T DE60205531T DE60205531T2 DE 60205531 T2 DE60205531 T2 DE 60205531T2 DE 60205531 T DE60205531 T DE 60205531T DE 60205531 T DE60205531 T DE 60205531T DE 60205531 T2 DE60205531 T2 DE 60205531T2
Authority
DE
Germany
Prior art keywords
status
information
data
memory area
phase
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 - Lifetime
Application number
DE60205531T
Other languages
English (en)
Other versions
DE60205531D1 (de
Inventor
Takuya Suwa-shi Ishida
Yoshiyuki Suwa-shi Kamihara
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Application granted granted Critical
Publication of DE60205531D1 publication Critical patent/DE60205531D1/de
Publication of DE60205531T2 publication Critical patent/DE60205531T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory

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)
  • Communication Control (AREA)

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft ein Steuerungsgerät zur Datenübertragung, elektronische Ausrüstung und ein Verfahren zur Steuerung der Datenübertragung.
  • Der universelle serielle Bus- (universal serial bus – USB) Standard ist seit kurzem als Schnittstellenstandard für Verbindungen zwischen Personal Computern und Peripheriegeräten (im weitgefassten Sinn elektronische Ausrüstung) von Interesse. Dieser USB-Standard hat den Vorteil, dass er die Verwendung von Anschlüssen desselben Standards zum Anschließen von Peripheriegeräten wie Mäusen, Tastaturen und Druckern, die im Stand der Technik durch Anschlüsse anderer Standards angeschlossen sind, sowie die Implementierung von Plug-and-Play- sowie Hot-Plug- (heiße Verbindung) Merkmalen ermöglicht.
  • Im Vergleich zum Standard IEEE 1394, der ebenfalls als ein Standard für dieselbe serielle Busschnittstelle in Betracht gezogen wird, ist dieser USB-Standard mit dem Problem behaftet, dass seine Übertragungsgeschwindigkeit geringer ist.
  • In diesem Fall konzentriert sich die Entscheidung auf die Verwendung des Standards USB 2.0, der eine Datenübertragungsgeschwindigkeit von 480 Mbps (im HS-Modus) implementieren kann, die weit schneller ist als die des vorigen Standards USB 1.1, während die Abwärtskompatibilität mit USB 1.1 erhalten bleibt.
  • Mit USB 2.0 erfolgt die Datenübertragung mit 480 Mbps im Hochgeschwindigkeits- (HS – high speed) Modus. Deshalb hat er den Vorteil, dass seine Verwendung als Schnittstelle für ein Speichergerät wie ein Festplattenlaufwerk oder ein optisches Plattenlaufwerk, das hohe Übertragungsgeschwindigkeiten erfordert, möglich ist.
  • Dies bedeutet jedoch, dass das Steuerungsgerät für die Datenübertragung, das mit dem USB-Bus verbunden ist, die Daten verarbeiten muss, die mit der hohen Geschwindigkeit von 480 Mbps übertragen werden. Wenn die Verarbeitungsgeschwindigkeit des Steuerungsgeräts für die Datenübertragung oder der Firmware (CPU), die das Steuerungsgerät für die Datenübertragung steuert, niedrig ist, kann die eigentliche Übertragungsgeschwindigkeit nicht sichergestellt werden und es tritt ein Problem dadurch auf, dass die Buszone verloren gehen könnte.
  • Die EP-A-0 893 755 offenbart ein Steuerungsgerät zur Datenübertragung über einen Bus, das einen Puffer aufweist, der einen ersten Speicherbereich für eine erste Information und einen zweiten Speicherbereich für eine zweite Information aufweist, wobei der erste und der erste und der zweite Speicherbereich für einen Endpunkt bereitgestellt werden, wenn eine Mehrzahl Informationstypen die diese erste und zweite Information enthalten, als Informationen zugewiesen worden sind, die über den einen Endpunkt zu übertragen sind; sowie eine Puffer-Managementschaltung zum Lesen von Informationen aus den Speicherbereichen. Bei diesem Stand der Technik wird der Puffer entweder in einem Einzelpuffer-Modus oder in einem Doppelpuffer-Modus verwendet. Im ersteren Modus wird nur einer der zwei Speicherbereiche für einen Endpunkt verwendet. Im letzteren Modus wird ein Speicherbereich zur Datenübertragung in einer Richtung und der andere Speicherbereich zur Datenübertragung in der anderen Richtung verwendet.
  • Die US-A-6,185,641 offenbart ein Steuerungsgerät zur Datenübertragung gemäß dem Oberbegriff des Anspruchs 1 in Form einer peripheren Mikrosteuerung zur Bereitstellung eines Hochleistungs-USB-Anschlusses. Die USB-periphere Mikrosteuerung enthält drei Einheiten. Eine serielle Schnittstellenmaschine (SIE) verbindet mit einem USB-Host oder einem USB-Verteiler. Eine Mikrosteuerungs- (MCU) Schnittstelleneinheit verbindet mit einem oder mehr Peripheriegeräten wie z.B. ISA-ähnlichen Peripheriegeräten. Eine Speicherverwaltungseinheit (MMU) stellt einen Puffermechanismus zwischen der SIE und der MCU-Schnittstelleneinheit bereit. Die MMU verwendet eine einzige Datenpaket-Pufferarchitektur. Bei der MMU von einem Peripheriegerät eingegangene Pakete zur Übertragung an den USB-Host und bei der MMU vom USB-Host eingegangene Pakete zur Übertragung an ein Peripheriegerät werden in einem RAM zwischengespeichert. Die Kapazität des RAM ist zwischen verschiedenen USB-Endpunkten und dem USB-Host dynamisch zuteilbar, so dass die Größe des RAM minimiert ist.
  • ZUSAMMENFASSUNG
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein Gerät und ein Verfahren bereitzustellen, die eine Datenübertragung mit hoher Geschwindigkeit ermöglichen, während die Verarbeitungslast der auf der CPU laufenden Firmware verringert wird, so dass eine kostengünstige CPU verwendet werden kann.
  • Diese Aufgabe wird durch ein Steuerungsgerät für die Datenübertragung gemäß Anspruch 1 und ein Verfahren gemäß Anspruch 11 gelöst. Bevorzugte Ausführungsformen der Erfindung sind Gegenstand der Unteransprüche.
  • Beim Steuerungsgerät für die Datenübertragung werden ein erster Speicherbereich für Datenpakete als erste Information, die einem gegebenen Endpunkt zugewiesen ist, und ein zweiter Speicherbereich für Statusblockpakete als zweite Information, die demselben Endpunkt zugewiesen ist, in einem Puffer bereitgestellt. Während einer ersten oder Datenphase (erster Transport) wird die vom Endpunkt zum Host zu übertragende Information aus dem ersten Speicherbereich gelesen, und während einer zweiten oder Statusphase (zweiter Transport) wird die vom Endpunkt zum Host zu übertragende Information aus dem zweiten Speicherbereich gelesen.
  • Dadurch kann eine zweite Information im zweiten Speicherbereich verarbeitet werden, während die erste Information aus dem ersten Speicherbereich gelesen wird, auch wenn mehrere Informations typen dem einen Endpunkt zugewiesen worden sind. Es ist deshalb möglich, die Verarbeitung der zweiten Information während der zweiten Phase schnell zu beenden, nachdem eine Phase von der ersten Phase zur zweiten Phase umgeschaltet hat, wodurch eine Erhöhung der effektiven Busübertragungsgeschwindigkeit erzielt wird.
  • Beim Steuerungsgerät für die Datenübertragung kann der erste Speicherbereich als ein Bereich eingestellt werden, dass Informationen, die dort als erste eingegeben werden, von dort als erste ausgegeben werden; und der zweite Speicherbereich kann als Bereich mit Direktzugriff eingestellt werden.
  • Dies ermöglicht eine effektive Ausführung der Verarbeitung der in den zweiten Speicherbereich geschriebenen Information, wodurch eine Erhöhung der effektiven Busübertragungsgeschwindigkeit erzielt wird.
  • Beim Steuerungsgerät für die Datenübertragung kann ein Statusblockpaket im zweiten Speicherbereich erstellt werden, während aus dem ersten Speicherbereich ein Datenpaket ausgelesen wird.
  • Dies ermöglicht es, mit der Verarbeitung wie das Lesen der zweiten Information aus dem zweiten Speicherbereich rasch zu beginnen, nachdem eine Phase von der ersten Phase zur zweiten Phase umgeschaltet hat, wodurch eine Erhöhung der effektiven Busübertragungsgeschwindigkeit erzielt wird.
  • Beim Steuerungsgerät für die Datenübertragung kann der zweite Speicherbereich einen dritten Speicherbereich aufweisen, in den ein erstes Statusblockpaket für einen Erfolgsstatus geschrieben wird, und einen vierten Speicherbereich, in den ein zweites Statusblockpaket für einen Nicht-Erfolgsstatus geschrieben wird, und das erste Statusblockpaket für den Erfolgsstatus kann aus dem dritten Speicherbereich gelesen werden, wenn der Status ein Erfolg ist, und das zweite Statusblockpaket für den Nicht-Erfolgsstatus kann aus dem vierten Speicherbereich, wenn der Status ein Nicht-Erfolg ist.
  • Dadurch wird es möglich, den Informationslesebereich dem dritten Speicherbereich fest zuzuordnen, außer wenn der Nicht-Erfolgsstatus eintritt, wodurch die Verarbeitungslast wie die für die Schaltbereiche verringert wird.
  • Beim Steuerungsgerät für die Datenübertragung kann ein Statusblockpaket, in dem voreingestellte Informationen für den Erfolgsstatus eingestellt sind, zuvor in den dritten Speicherbereich geschrieben werden.
  • Dadurch ist es möglich, auf die Verarbeitung zur Aktualisierung von Informationen in Abschnitten der voreingestellten Informationen zu verzichten, wodurch die Verarbeitungslast bezüglich der zweiten Information verringert wird.
  • Beim Steuerungsgerät für die Datenübertragung können Tag-Informationen zum Verknüpfen eines Statusblockpakets und eines Befehlsblockpakets aus Informationen für das Statusblockpaket aktualisiert werden, in dem voreingestellte Informationen eingestellt sind, und das aktualisierte Statusblockpaket kann als das erste Statusblockpaket aus dem dritten Speicherbereich gelesen werden.
  • Dadurch ist es möglich, die Verarbeitungslast bezüglich der zweiten Information weiter zu verringern, da nur die Tag-Information aktualisiert (überschrieben) werden muss.
  • Beim Steuerungsgerät für die Datenübertragung kann ein Schreibbereich für von einem Endpunkt zu einem Host zu übertragende Informationen vom ersten Speicherbereich zum zweiten Speicherbereich umgeschaltet werden, wenn bestimmt worden, dass eine Phase von der ersten Phase zur zweiten Phase umgeschaltet hat.
  • Dadurch ist es möglich, den Informationslesebereich umzuschalten, indem einfach bestimmt wird, dass eine Phase umgeschaltet hat, wodurch die Verarbeitungslast auf dem Steuerungsgerät für die Datenübertragung verringert wird.
  • Beim Steuerungsgerät für die Datenübertragung kann bestimmt werden, dass eine Phase von der ersten Phase auf die zweite Phase umgeschaltet hat, wenn die Bedingung erfüllt ist, dass die Übertragungsverarbeitung zur Übertragung der ersten Information über einen zweiten Bus und das Schreiben der Information in den ersten Speicherbereich beendet ist und außerdem der erste Speicherbereich leer geworden ist.
  • Dadurch ist die Bestimmung, dass eine Phase umgeschaltet hat, mit einer einfachen Schaltungssteuerung und Schaltungskonfiguration möglich, so dass das Steuerungsgerät für die Datenübertragung kompakter und kostengünstiger wird.
  • Bei der Steuerungseinheit für die Datenübertragung kann ein Datenpaket in den zweiten Speicherbereich geschrieben werden, während eine Verarbeitungseinheit das Befehlsblockpaket auswertet.
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung ist es möglich, eine Verarbeitung bezüglich eines Statusblockpakets auszuführen, während die Verarbeitung zum Lesen eines Datenpakets aus dem Datenspeicherbereich durchgeführt wird, auch wenn sowohl ein Datenpaket als auch ein Statusblockpaket dem einen Endpunkt zugewiesen worden sind. Daher kann die Verarbeitungsgeschwindigkeit des Steuerungsgeräts für die Datenübertragung erhöht und die Last der Einheit, die das Statusblockpaket verarbeitet, verringert werden, wodurch die effektive Busübertragungsgeschwindigkeit erhöht wird.
  • Beim Steuerungsgerät für die Datenübertragung kann die Datenübertragung gemäß dem universellen seriellen Bus- (USB) Standard erfolgen.
  • Es sollte jedoch beachtet werden, dass diese Konfiguration auch auf andere Standards als den USB-Standard (oder andere Standards, die auf dem USB-Konzept basieren) angewendet werden kann.
  • Die elektronische Ausrüstung gemäß einem Aspekt der vorliegenden Erfindung umfasst alle oben beschriebenen Steuerungsgeräte zur Datenübertragung sowie ein Gerät, das die Ausgangsverarbeitung, die Abrufverarbeitung oder die Speicherverarbeitung von Daten ausführt, die über das Steuerungsgerät für die Datenübertragung und den Bus übertragen worden sind.
  • Da die vorliegende Erfindung es ermöglicht, die Verarbeitungslast der Verarbeitungseinheit (wie der Firmware), die die Datenübertragung des Steuerungsgeräts für die Datenübertragung steuert, zu verringern, lassen sich damit Vorteile wie eine Senkung der Kosten und des Umfangs der elektronischen Ausrüstung erzielen. Die vorliegende Erfindung ermöglicht außerdem Datenübertragung in schnellen Übertragungsmodi, wodurch die Verarbeitungsgeschwindigkeit der elektronischen Ausrüstung erhöht wird.
  • KURZBESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNG
  • 1A, 1B, 1C und 1D stellen Endpunkte und Transaktionskonfigurationen unter USB beispielhaft dar;
  • 2A und 2B sind beispielhafte Darstellungen der CBI-Spezifikation und der Bulk-Only- (nur Massen) Spezifikation;
  • 3 zeigt das CBW-Format;
  • 4 zeigt das CSW-Format;
  • 5A und 5B stellen Schreiben und Lesen der Daten während Bulk-Only beispielhaft dar;
  • 6A, 6B, 6C und 6D stellen ein Verfahren gemäß einem Vergleichsbeispiel dar;
  • 7A, 7B und 7C stellen ein Verfahren gemäß einer Ausführungsform der vorliegenden Erfindung dar;
  • 8A und 8B stellen den Vorteil eines Verfahrens zur Bereitstellung eines CSW0-Bereichs für den Erfolgsstatus und eines CSW1-Bereichs für den Nicht-Erfolgsstatus dar;
  • 9A und 9B zeigen beispielhafte Statusblockpakete, die zuvor in den CSW0-Bereich und den CSW1-Bereich geschrieben worden sind;
  • 10 zeigt ein beispielhaftes Verfahren zur Bestimmung des Umschaltens von der Datenphase zur Statusphase;
  • 11 zeigt ein weiteres beispielhaftes Verfahren zur Bestimmung des Umschaltens von der Datenphase zur Statusphase;
  • 12 zeigt ein Konfigurationsbeispiels des Steuerungsgeräts für die Datenübertragung dieser Ausführungsform;
  • 13 zeigt ein detailliertes Beispiel der Konfiguration der Transaktions-Managementschaltung, der Endpunkt-Managementschaltung, der Puffer-Managementschaltung und des Puffers;
  • 14 zeigt ein weiteres detailliertes Beispiel der Konfiguration der Transaktions-Managementschaltung, der Endpunkt-Managementschaltung, der Puffer-Managementschaltung und des Puffers;
  • 15 ist ein Impulsdiagramm, das für die Wirkungsweise dieser Ausführungsform zu Beginn der Statusphase beispielhaft ist;
  • 16 ist ein Impulsdiagramm, das für die Wirkungsweise dieser Ausführungsform bei erfolgreicher Datenübertragung beispielhaft ist;
  • 17 ist ein Impulsdiagramm, das für die Wirkungsweise dieser Ausführungsform beispielhaft ist, wenn ein ACK-Fehler auftritt;
  • 18 ist ein Impulsdiagramm, das für die Wirkungsweise dieser Ausführungsform beispielhaft ist, wenn der Status der Datenübertragung über den EBUS nicht erfolgreich war;
  • 19 ist ein weiteres Impulsdiagramm, das für die Wirkungsweise dieser Ausführungsform der vorliegenden Erfindung beispielhaft ist, wenn der Status der Datenübertragung über den EBUS nicht erfolgreich war;
  • 20 ist ein weiteres Impulsdiagramm, das für die Wirkungsweise dieser Ausführungsform der vorliegenden Erfindung beispielhaft ist, wenn der Status der Datenübertragung über den EBUS nicht erfolgreich war;
  • 21A und 21B sind Impulsdiagramme des Vergleichsbeispiels und dieser Ausführungsform;
  • 22A und 22B sind Flussdiagramme der Firmware-Verarbeitung des Vergleichsbeispiels und dieser Ausführungsform;
  • 23A, 23B und 23C sind interne Blockdiagramme verschiedener Teile der elektronischen Ausrüstung; und
  • 24A, 24B und 24C zeigen typische Außenansichten verschiedener Teile der elektronischen Ausrüstung.
  • DETAILLIERTE BESCHREIBUNG
  • Nachstehend werden verschiedene Ausführungsformen der vorliegenden Erfindung beschrieben.
  • Es ist zu beachten, dass die im Folgenden beschriebenen Ausführungsformen den Gültigkeitsbereich der Erfindung, der durch die hierin dargelegten Ansprüche definiert ist, in keiner Weise einschränken. Gleichermaßen sollte die Gesamtkonfiguration der nachstehenden Ausführungsformen nicht dahingehend ausgelegt werden, dass sie den hierin in den Ansprüchen definierten Gegenstand einschränkt.
  • 1. USB
  • 1.1 Datenübertragungsverfahren
  • Zunächst wird das Datenübertragungsverfahren gemäß USB (USB 2.0) kurz beschrieben.
  • USB unterscheidet sich von anderen Verfahren wie IEEE 1394 dadurch, dass ein Host die Initiative ergreift. Mit anderen Worten, die Aktivierung einer Datenübertragungstransaktion erfolgt seitens des Host und der größere Teil der Steuerung hinsichtlich der Datenübertragung wird vom Host ausgeführt. Dies erhöht die Verarbeitungslast für den Host, aber da der Personal Computer (PC), der den Host bildet, eine hochschnelle Hochleistungs-CPU (Prozessor) hat, stellt die Verarbeitung solcher großen Lasten kein allzu schwerwiegendes Problem dar.
  • Da das Gerät (Ziel) unter USB nur auf eine Anforderung vom Host zu antworten braucht, können die Verarbeitung und die Konfiguration auf der Geräteseite vereinfacht werden. Es ist deshalb nicht erforderlich, auf der Geräteseite eine schnelle Hochleistungs-CPU wie den Host vorzusehen, wodurch eine kostengünstige CPU (Mikroprozessor) verwendet werden kann, was zu einer Kostensenkung führt.
  • Zur Implementierung dieser Datenübertragung unter USB, wobei der Host die Führungsrolle übernimmt, werden geräteseitig Endpunkte (EP0 bis EP15) vorgesehen wie in 1A dargestellt. In diesem Fall entspricht ein Endpunkt einem Eingang zu einem Puffer (FIFO) für die Datenübertragung zwischen dem Host und dem Gerät, wobei die gesamte Datenübertragung unter USB über diese Endpunkte erfolgt.
  • Jeder dieser Endpunkte kann eindeutig durch eine Geräteadresse und eine Endpunktnummer adressiert werden. Mit anderen Worten, der Host kann eine Datenübertragung frei an einen gewünschten Endpunkt oder einen Datenempfang von einem gewünschten Endpunkt ausführen, indem er eine Geräteadresse und eine Endpunktnummer vorgibt.
  • Die Vorgabe der Endpunkte erfolgt frei seitens des Geräts und der Host kann über Einzelheiten wie die Zuordnung der Endpunktnummern und die Größe der diesen Endpunkten zugeordneten Speicherbereiche während der Verarbeitung der Aufzählung informiert werden.
  • Es ist zu beachten, dass USB Steuerungsübertragung, isochrone Übertragung, Unterbrechungsübertragung und Massenübertragung als Datenübertragungstypen bereitstellt.
  • In diesem Fall ist die Steuerungsübertragung ein Übertragungsmodus für die Steuerung, der über einen Steuerungsendpunkt zwischen dem Host und dem Gerät (Ziel) ausgeführt wird. Diese Steuerungsübertragung sendet Informationen wie Konfigurationsinformationen zur Initialisierung des Geräts.
  • Die isochrone Übertragung ist ein Übertragungsmodus, der für die Datenübertragung bereitgestellt wird, wenn es wichtiger ist, die Bandbreite als die Korrektheit sicherzustellen, wie bei Bild- oder Audiodaten. Da diese isochrone Übertragung sicherstellt, dass eine feste Datenmenge in einer festen Periode übertragen werden kann, stellt sie einen wirksamen Übertragungsmodus für Anwendungen dar, bei denen Echtzeit-Datenfunktionen wichtig sind.
  • Die Unterbrechungsübertragung ist ein Übertragungsmodus, der zur Übertragung einer kleinen Datenmenge bei vergleichsweise niedriger Übertragungsgeschwindigkeit vorgesehen ist.
  • Die Massenübertragung ist ein Übertragungsmodus, der zur Übertragung einer großen Datenmenge vorgesehen ist, die in unregelmäßigen Perioden vorliegt. Diese Massenübertragung ermöglicht die Datenübertragung in unbelegten Zeiten und nicht in den Zeiten, die von isochronen Übertragungen oder Unterbrechungsübertragungen genutzt werden, und erlaubt außerdem die Prüfung der Daten auf Korrektheit. Sie stellt deshalb einen wirksamen Übertragungsmodus zur Datenübertragung dar, wenn Echtzeitfunktionen nicht von Bedeutung sind, aber die Datenzuverlässigkeit sichergestellt werden soll.
  • 1.2 Transaktionskonfiguration
  • Eine Transaktion im USB-Massenübertragungsmodus setzt sich grundsätzlich aus drei Paketen zusammen, wie in 1B dargestellt ist: einem Token-Paket, einem Datenpaket und einem Handshake- (Quittungs-) Paket. Es ist zu beachten, dass bei der isochronen Übertragung kein Handshake-Paket erforderlich ist.
  • In diesem Fall ist ein Token-Paket ein Paket, das z.B. in solchen Situationen verwendet wird, in denen der Host Lesen oder Schreiben bezüglich eines Endpunktes des Geräts (Ziel) anfordert. Dieses Token-Paket hat Felder wie PID (eine Paket-ID wie OUT, IN, SOF oder SETUP), ADDR (Geräteadresse), ENDP (Nummer des Endpunktes) und CRC (zyklische Redundanzkontrolle), um einige Beispiele zu nennen.
  • Ein Datenpaket ist ein Paket zum Senden der tatsächlichen Daten und hat die Felder PID (DATA0, DATA1), DATA (tatsächliche Daten) und CRC.
  • Ein Handshake-Paket ist ein Paket, das empfängerseitig verwendet wird, um die Senderseite zu informieren, ob der Datenempfang erfolgreich war oder nicht, und hat ein PID- (ACK, NAK oder STALL) Feld.
  • Bei einer OUT-Transaktion (Transaktion, mit der der Host Informationen an das Gerät ausgibt) sendet der Host zunächst ein OUT-Token-Paket an das Gerät wie in 1C gezeigt. Danach sendet der Host ein OUT-Datenpaket an das Gerät. Wenn das Gerät das OUT-Datenpaket erfolgreich empfängt, sendet es ein ACK-Handshake-Paket an den Host.
  • Bei einer IN-Transaktion (Transaktion, mit der der Host Informationen vom Gerät eingibt) dagegen sendet der Host zunächst ein IN-Token-Paket an das Gerät wie in 1D gezeigt. Bei Empfang des IN-Token-Pakets sendet das Gerät ein IN-Datenpaket an den Host. Wenn der Host das IN-Datenpaket erfolgreich empfängt, sendet er ein ACK-Handshake-Paket an das Gerät.
  • Es ist zu beachten, dass in den 1C und 1D "D ← H" bedeutet, dass Informationen vom Host zum Gerät übertragen werden und "D → N", dass Informationen vom Gerät zum Host übertragen werden (diese Vereinbarung wird im Folgenden in den Figuren und in der Beschreibung verwendet).
  • 1.3 Nur Massen (Bulk-Only)
  • USB-Geräte sind in eine Reihe von Klassen eingeteilt. Geräte wie Festplattenlaufwerke und optische Plattenlaufwerke gehören zu einer als Massenspeicher bezeichneten Klasse; die Lieferanten elektronischer Ausrüstung im Rahmen dieser Massenspeicherklasse haben Spezifikationen wie Steuerung/Massen/Unterbrechung (CBI)-Spezifikationen und Nur-Massen-Spezifikationen erstellt.
  • Gemäß der CBI-Spezifikation stellt das Gerät die Endpunkte EP0, EP1, EP2 und EP3 zur Steuerung, Masse EIN, Masse AUS und Unterbrechung bereit, wie aus 2A ersichtlich ist. In diesem Fall dient der Endpunkt EP0 für die Übertragung von Steuerungspaketen auf USB-Ebene oder von Befehlspaketen. EP1 dient zur Übertragung von OUT-Daten (Daten, die vom Host zum Gerät übertragen werden), EP2 dient zur Übertragung von IN-Daten (Daten, die vom Gerät zum Host übertragen werden) und EP3 dient zur Übertragung von Unterbrechungs-IN-Paketen. Es ist zu beachten, dass EP1 bis EP15 geräteseitig beliebig als Massen-OUT-, Massen-IN- und Unterbrechungs-IN-Endpunkte zugeordnet werden können.
  • Gemäß der Spezifikation Nur-Massen dagegen stellt das Gerät die Endpunkte EP0, EP1 und EP2 zur Steuerung, Massen-OUT und Massen-IN bereit, wie aus 2B ersichtlich ist. In diesem Fall dient der Endpunkt EP0 zur Übertragung von Steuerungspaketen auf USB-Ebene. EP1 dient zur Übertragung von Befehlen (CBW) und OUT-Daten und EP2 dient zur Übertragung des jeweiligen Status (CSW) und von IN-Datenpaketen. Es ist zu beachten, dass EP1 bis EP15 geräteseitig beliebig als Massen-OUT- und Massen-IN-Endpunkte zugeordnet werden können.
  • In diesem Fall ist eine Befehlsblock-Umwicklung (command block wrapper – CBW) ein Paket, das einen Befehlsblock und den Befehlsblock betreffende Informationen aufweist und das in 3 dargestellte Format hat. Eine Befehlsstatus-Umwicklung (command status wrapper – CSW) ist ein Paket, das den Status des Befehlsblocks aufweist und das in 4 dargestellte Format hat.
  • In 3 bedeutet dCBWSignature Informationen zur Kennzeichnung des betreffenden Pakets als eine CBW, dCBWTag ist ein Befehlsblock-Tag und dCBWDataTransferLength gibt die Länge der in der Datenphase zu übertragenden Daten an. Das Feld bmCBWFlags ist ein Kennzeichen zur Angabe der Übertragungsrichtung oder dgl., dCBWLUN ist eine logische Einheitenzahl, bCBWCBLength ist die Befehlslänge und CBWCB ist ein Befehlsblock, in dem ein ATA/ATAPI- oder SCSI-Befehl gekapselt und beschrieben ist.
  • In 4 bedeutet dCSWSignature Informationen zur Kennzeichnung des betreffenden Pakets als eine CSW, dCBWTag ist ein Statusblock-Tag und der Wert von dCBWTag der CBW, die dieser CSW entspricht, ist darin eingeschrieben. Das Feld CSWDataResidue gibt die Differenz zwischen von dCBWDataTransferLength der CBW angegebenen Datenlänge und der Datenlänge an, die das Gerät tatsächlich verarbeitet hat, und bCSWStatus ist ein Statusblock.
  • Die Beschreibung geht nun zur Verarbeitung zum Schreiben oder Lesen von Daten unter der Nur-Massen-Spezifikation von 2B unter Bezugnahme auf die 5A und 5B über.
  • Wenn der Host Daten nach einem Gerät schreibt, führt er zuerst eine Befehlsphase (Befehlstransport) aus, in der er eine CBW an das Gerät überträgt, wie aus 5A ersichtlich ist. Im Einzelnen überträgt der Host ein Token-Paket, das den Endpunkt EP1 angibt, an das Gerät und dann eine CBW (siehe A1 in den 2B und 3) an den Endpunkt EP1 des Geräts. Diese CBW weist einen Schreibbefehl auf. Wenn das Gerät einen Handshake (H.S. – Quittierung) an den Host zurückschickt, endet die Befehlsphase.
  • Wenn die Befehlsphase (Befehlstransport) endet, beginnt die Datenphase (Datentransport). In dieser Datenphase überträgt der Host zuerst ein Token-Paket, das den Endpunkt EP1 des Geräts angibt, und dann die OUT-Daten (siehe A2 in 2B) an den Endpunkt EP1 des Geräts. Jede Transaktion endet, wenn ein ACK-Handshake vom Gerät an den Host zurückgeschickt wird. Die Transaktionen werden auf diese Weise wiederholt und die Datenphase endet, wenn die Daten bis zu der in dCBWDataTransferLength der CBW angegebenen Datenlänge übertragen worden sind (siehe 3).
  • Wenn die Datenphase (Datentransport) endet, beginnt eine Statusphase (Statustransport). In dieser Statusphase überträgt der Host zuerst ein Token-Paket, das den Endpunkt EP2 angibt, an das Gerät. Wenn dies geschieht, überträgt das Gerät die am Endpunkt EP2 befindliche CSW (siehe A3 in den 2B und 4) an den Host. Die Statusphase endet, wenn ein ACK-Handshake vom Host an das Gerät zurückgeschickt wird.
  • Wenn der Host Daten liest, überträgt er zuerst ein Token-Paket, das den Endpunkt EP1 angibt, an das Gerät wie in 5B gezeigt und dann die CBW an den Endpunkt EP1 des Geräts. Diese CBW weist einen Lesebefehl auf. Wenn ein Handshake vom Gerät zum Host zurückkommt, endet die Befehlsphase.
  • Wenn die Befehlsphase endet, beginnt die Datenphase. In dieser Datenphase überträgt der Host zuerst ein Token-Paket, das den Endpunkt EP2 angibt, an das Gerät. Wenn dies geschieht, überträgt das Gerät die am Endpunkt EP2 befindlichen IN-Daten (siehe A4 in 2B) an den Host und eine Transaktion endet. Die Transaktionen werden auf diese Weise wiederholt und die Datenphase endet, wenn die Daten bis zu der in dCBWDataTransferLength der CBW angegebenen Datenlänge übertragen worden sind.
  • Wenn die Datenphase endet, beginnt die Statusphase. Die Verarbeitung in dieser Statusphase ist ähnlich der Verarbeitung beim Schreiben von Daten, die unter Bezugnahme auf 5A beschrieben worden ist.
  • 2. Merkmale dieser Ausführungsform
  • 2.1 Bereichsumschaltung
  • Die in 2A dargestellte CBI-Spezifikation bezieht sich auf eine Spezifikation, durch die der Host ein Token innerhalb einer festgelegten Zeitdauer zum Gerät überträgt. Dieses hat daher den Nachteil, dass die Verarbeitungslast auf dem Host und die Verarbeitungslast auf dem Gerät, das dieses Token empfängt, groß sind.
  • Aus diesem Grund ist die Spezifikation Nur-Massen der 2B derzeit verbreitet.
  • Mit dieser Spezifikation Nur-Massen werden jedoch mehrere Informationstypen als Informationen zugewiesen, die über einen Endpunkt zu übertragen sind. Genauer gesagt, es werden wie in 2B gezeigt eine CBW (Befehl) und OUT-Daten als Informationen zugewiesen, die über den Endpunkt EP1 Massen-OUT zu übertragen sind, und es werden eine CSW (Status) und IN-Daten als Informationen zugewiesen, die über den Endpunkt EP2 Massen-IN zu übertragen sind. Der Host und das Gerät müssen daher unterscheiden, welcher Informationstyp über jeden der Endpunkte zu übertragen ist. Mit der Spezifikation Nur-Massen bestimmen der Host und das Gerät, welche Phase die aktuelle Phase ist, und unterscheiden auch diese Informationen.
  • Da beispielsweise die aktuelle Phase die Befehlsphase bei B1 und B2 in 5A und 5B ist, wird bestimmt, dass die über den Endpunkt EP1 zu übertragenden Informationen ein Befehl (CBW) sind. Da die aktuelle Phase die Datenphase bei B3 und B4 ist, wird bestimmt, dass die über den Endpunkt EP1 zu übertragenden Informationen OUT-Daten und die über den Endpunkt EP2 zu übertragenden Informationen IN-Daten sind. Ferner wird bestimmt, da die aktuelle Phase die Statusphase bei B5 und B6 ist, dass die über den Endpunkt EP2 zu übertragenden Informationen ein Status (CSW) sind.
  • Da die Spezifikation Nur-Massen sicherstellt, dass die Datenübertragung in der Weise erfolgt, dass die Phasen am Host und am Gerät immer abgeglichen sind, ist eine einwandfreie Datenübertragung möglich, auch wenn mehrere Informationstypen (CBW und OUT-Daten oder CSW und IN-Daten) einem Endpunkt zugewiesen werden.
  • Bei der Spezifikation Nur-Massen hat sich jedoch folgendes Problem gezeigt.
  • Ein Verfahren gemäß einem Vergleichsbeispiel zu dieser Ausführungsform wird z.B. in den 6A bis 6D gezeigt. In diesem Vergleichsbeispiel wird eine CBW (Befehl) von einem Gerät wie einem Festplattenlaufwerk HDD nach einem FIFO (EP2) 602 geschrieben, der den Zugangspunkt EP2 während der Datenphase wie in 6A gezeigt darstellt. Genauer gesagt, es werden Lesedaten vom HDD durch DMA-Übertragung über den EBUS (ein zweiter Bus, der später unter Bezugnahme auf 12 beschrieben wird) zum FIFO 602 übertragen.
  • Wenn die DMA-Übertragung über den EBUS endet, wartet das System, bis wie in 6B gezeigt der FIFO 602 leer wird (bis das Signal Empty aktiv wird).
  • Wenn der FIFO 602 leer wird und ein Übergang von der Datenphase zur Statusphase erfolgt, erfasst die CPU (Firmware oder Verarbeitungseinheit) den Status der Datenübertragung (IDE Datenübertragung) von der Seite des Festplattenlaufwerks HDD (EBUS) wie in 6C gezeigt wird. Das Schreiben der erzeugten CSW (siehe 4) zum FIFO 602 basiert auf dem auf diese Weise erfassten Status. Beim Vergleichsbeispiel ist es in diesem Fall nicht möglich, ein IN-Datenpaket als Antwort auf das IN-Token vom Host zurückzusenden, bevor die von der CPU durchgeführte CSW-Schreibverarbeitung beendet ist, so dass NAK zurückgeschickt wird.
  • Die auf diese Weise geschriebene CSW wird in den FIFO 602 gelesen, der das FIFO-Verfahren benutzt, und über den USB zum Host übertragen, wie in 6D gezeigt wird.
  • So besteht bei diesem Vergleichsbeispiel ein Problem in der Art, dass der FIFO gemeinsam zum Übertragen sowohl der Daten (IN-Daten) als auch der CSW verwendet wird, so dass das Ende der CSW-Schreibverarbeitung verzögert und damit die effektive Datenübertragungsgeschwindigkeit stark verringert wird.
  • Genauer gesagt, es kann zuerst die Verarbeitung des Schreibens der CSW zum FIFO 602 bei diesem Vergleichsbeispiel nicht beginnen, bevor der FIFO wie in 6B gezeigt leer geworden ist. Es sei beispielsweise angenommen, dass die 13-Byte-CSW (siehe 4) in einem Zustand zum FIFO 602 geschrieben worden ist, in dem noch 499 Datenbytes im FIFO 602 verblieben sind. Wenn dies geschieht, beträgt die Datenmenge im FIFO 602 499 + 13 = 512 Bytes, was die maximale Paketgröße ist, so dass eine Situation auftritt, in der die Status-CSW als Daten zum Host übertragen wird.
  • Aus diesem Grund muss bei diesem Vergleichsbeispiel gewartet werden, bis der FIFO 602 leer geworden ist und ein Übergang von der Datenphase zur Statusphase erfolgt ist, um die CSW in den FIFO 602 zu schreiben. Das Ende der CSW-Schreibverarbeitung wird daher um diese Wartezeit verzögert, wodurch die effektive Datenübertragungsgeschwindigkeit verringert wird.
  • Bei diesem Vergleichsbeispiel kann die CSW während des Zeitraums der Datenphase nicht in den FIFO 602 geschrieben werden, so dass die CSW wie in 6C gezeigt nach dem Übergang in die Statusphase geschrieben. Außerdem wird als Antwort auf IN-Tokens vom Host NAK bis zum Ende dieses CSW-Schreibvorgangs zurückgesendet und diese Verzögerung verringert weiter die effektive Datenübertragungsgeschwindigkeit.
  • Da in diesem Fall die Busübertragungsgeschwindigkeiten unter USB 1.1 so niedrig waren, verursachten die Verzögerungen bei der Verarbeitung an der Geräteseite wie in 6B und 6C gezeigt im Wesentlichen keine Probleme.
  • Allerdings führt der HS-Modus des USB 2.0 eine Datenübertragung mit einer hohen Geschwindigkeit von 480 Mbps durch. Daher werden Daten mit hoher Geschwindigkeit vom Host über USB übertragen. Wenn Verzögerungen bei der Verarbeitung an der Geräteseite auftreten, werden dadurch die Hochgeschwindigkeitsübertragungen des USB 2.0 behindert und somit wird die effektive Datenübertragungsgeschwindigkeit des gesamten Systems stark beeinträchtigt.
  • Insbesondere geschieht es oft, dass aus Gründen der Kostenreduzierung an der Geräteseite eine niedrigpreisige CPU verwendet wird, die mit einer Taktfrequenz von 20 bis 50 MHz arbeitet. Wenn die Verarbeitung in 6B und 6C sehr zeitaufwendig ist, werden die Verzögerungen bei der effektiven Datenübertragungsgeschwindigkeit noch größer.
  • Um derartige Probleme zu lösen, verwendet die vorliegende Ausführungsform ein Verfahren, bei dem zwischen Speicherbereichen im Puffer gemäß der Phasenumschaltung (Transport) umgeschaltet wird.
  • Genauer gesagt, ein Puffer, der eine Paketspeichereinheit gemäß der vorliegenden Ausführungsform darstellt, wird mit einem CSW-Bereich 16 (zweiter Speicherbereich: Statusspeicherbereich) zum Lesen der CSW (zweite Information: Statusblock) zusätzlich zu einem EP2-Bereich 14 (erster Speicherbereich: Datenspeicherbereich) zum Lesen der IN-Daten (erste Information) wie in 7A gezeigt versehen.
  • In diesem Fall sind sowohl der EP2-Bereich 14 als auch der CSW-Bereich 16 Speicherbereiche, die den Endpunkt Massen-ein EP2 als Eingang verwenden. Der EP2-Bereich 14 wird so eingestellt, dass Informationen, die dort als erste eingegeben werden, von dort als erste ausgegeben werden (FIFO-Einstellung) und der CSW-Bereich 16 wird so eingestellt, dass auf dort enthaltene Informationen direkt zugegriffen werden kann (Direktzugriffseinstellung).
  • Bei dieser Ausführungsform wird während der Datenphase (erste Phase) ein Schalter SW (Schalteinheit) zur Seite des EP2-Bereichs 14 hin gedreht, wie in 7A gezeigt wird, so dass die zum Host zu übertragenden Daten (Daten vom Festplattenlaufwerk HDD) aus dem EP2-Bereich 14 gelesen werden.
  • Wenn die Datenübertragung über den EBUS (zweiter Bus) endet, erfasst die CPU (Firmware oder Verarbeitungseinheit) den Status der Datenübertragung über den EBUS von der Seite des Festplattenlaufwerks HDD, erzeugt die CSW auf Basis des so erfassten Status und schreibt die so erzeugte CSW (siehe 4) in den CSW-Bereich 16, wie in 7B gezeigt wird. Mit anderen Worten, diese Ausführungsform stellt sicher, dass die Erzeugung (Erstellung) der CSW und das Schreiben der CSW während des Zeitraums der Datenphase (erste Phase) beginnt, in dem das IN-Datenpaket aus dem EP2-Bereich 14 (erster Speicherbereich) gelesen wird. Da der CSW-Bereich 16 auf Direktzugriff eingestellt ist, kann die CPU Informationen in jede Adresse im CSW-Bereich 16 schreiben.
  • Wenn der EP2-Bereich 14 leer wird (das Signal Empty wird aktiv) und die Datenphase (erste Phase) auf die Statusphase (zweite Phase) umschaltet, wird der Schalter SW (Schalteinheit) wie in 7D gezeigt von der Seite des EP2-Bereichs 14 zur Seite des CSW-Bereichs 16 gedreht. Dadurch kann die in den CSW-Bereich 16 geschriebene CSW (Statusblockpaket) über den USB zum Host übertragen werden.
  • Beim Vergleichsbeispiel der 6B und 6C kann beispielsweise die CSW nicht in den FIFO 602 geschrieben werden, bevor der FIFO 602 leer geworden ist und ein Übergang von der Datenphase zur Statusphase erfolgt ist. Als Antwort auf IN-Tokens vom Host wird zwangsläufig NAK zurückgeschickt, bis das Schreiben dieser CSW beendet ist.
  • Im Gegensatz dazu erstellt diese Ausführungsform wie in 7B gezeigt die CSW während des Zeitraums der Datenphase und ermöglich dadurch das Schreiben in den CSW-Bereich 16. Daher kann ein Datenpaket (CSW) als Antwort auf ein IN-Token vom Host zu einem frühen Zeitpunkt nach dem Übergang von der Datenphase zur Statusphase wie in 7C gezeigt zurückgeschickt werden, wodurch die Verarbeitungsgeschwindigkeit erhöht werden kann.
  • Insbesondere ermöglicht USB 2.0 Hochgeschwindigkeits-Datenübertragungen zum und vom Host. Wenn wie beim Vergleichsbeispiel in 6C als Antwort auf IN-Tokens vom Host wiederholt NAK zurückgesendet wird, wird die Buszone verloren und es kann von den Hochgeschwindigkeits-Datenübertragungen des USB 2.0 kein Gebrauch gemacht werden.
  • Im Gegensatz dazu kann bei dieser Ausführungsform in Datenpaket (CSW) als Antwort auf ein IN-Token vom Host zu einem frühen Zeitpunkt wie in 7C gezeigt zurückgeschickt werden. Daher kann der Verlust der Buszone auf einem Minimum gehalten werden, wodurch von den Hochgeschwindigkeits-Datenübertragungen des USB 2.0 Gebrauch gemacht und damit die effektive Datenübertragungsgeschwindigkeit erhöht werden kann.
  • Es ist zu beachten, dass die CSW-Schreibverarbeitung früh enden kann, da der CSW-Bereich 16 gemäß dieser Ausführungsform auf Direktzugriff eingestellt ist, wie in den 7A bis 7C gezeigt wird. Daher kann das Datenpaket (CSW) als Antwort auf das IN-Token vom Host zu einem früheren Zeitpunkt zurückgeschickt werden, wodurch die Verarbeitungsgeschwindigkeit erhöht werden kann.
  • Um andererseits sicherzustellen, dass Daten über DMA von einem Gerät wie z, B. einem Festplattenlaufwerk HDD wirksam übertragen werden können, ist es wünschenswert, den EP2-Bereich 14 derart einzustellen, dass dort eingegebene Informationen von dort als erste ausgegeben werden (FIFO-Einstellung). In einem solchen Fall könnte der EP2-Bereich 14 als First-in-First-out-Bereich eingestellt werden, indem er aus seriell verbundenen Registern oder einem Speicher konfiguriert wird, oder er könnte durch eine Einheit wie eine der RAM-Adressensteuerung als First-in-First-out-Bereich eingestellt werden, was weiter unten beschrieben wird.
  • 2.2 Speicherbereich für den Erfolgsstatus
  • Bei dieser Ausführungsform werden ein CSW0-Bereich 18 (dritter Speicherbereich), in den ein Erfolgs-Status CSW0 (erstes Statusblockpaket) geschrieben wird, und ein CSW1-Bereich 19 (vierter Speicherbereich), in den ein Nichterfolgs-Status CSW1 (zweites Statusblockpaket) geschrieben wird, als CSW-Bereiche (zweite Speicherbereiche) im Puffer wie in 8A gezeigt bereitgestellt.
  • Mit anderen Worten, wenn der Status einer Datenübertragung über den EBUS (zweiter Bus: siehe 12) erfolgreich ist, stellt eine in 8A dargestellte SW2 (Schalteinheit) eine Verbindung mit der Seite des CSW0-Bereichs 18 her und ein Erfolgsstatus CSW0 wird aus dem CSW0-Bereich 18 gelesen und zum Host übertragen.
  • Wenn der Status einer Datenübertragung über den EBUS nicht erfolgreich ist, stellt die in 8B dargestellte SW2 (Schalteinheit) eine Verbindung mit der Seite des CSW1-Bereichs 19 her wie in 88 dargestellt und ein Nichterfolgs-Status CSW1 wird aus dem CSW1-Bereich 19 gelesen und zum Host übertragen.
  • Im Allgemeinen ist die Wahrscheinlichkeit, dass während der Datenübertragung ein Fehler auftritt, äußerst gering. Daher ist die Konfiguration so ausgelegt, dass normalerweise die SW2 mit der Seite des CSW0-Bereichs 18 verbunden ist, so dass der Erfolgsstatus CSW0 zum Host übertragen wird.
  • Nur wenn eine Datenübertragung erfolgt, stellt die SW2 eine Verbindung mit der Seite des CSW1-Bereichs 19 her, um einen dem Fehler entsprechenden Nichterfolgs-Status CSW1 zum Host zu übertragen.
  • Dadurch braucht SW2 nicht geschaltet zu werden, vorausgesetzt, dass während der Datenübertragung über den EBUS kein Fehler auftritt. Da die Wahrscheinlichkeit, dass während der Datenübertragung ein Fehler auftritt, äußerst gering ist, ist die Häufigkeit, mit der SW2 geschaltet wird, ebenso äußerst klein. Daher kann die Verarbeitungslast auf der CPU (Firmware), die die SW2-Schaltverarbeitung ausführt, verringert werden.
  • Bei dieser Ausführungsform wird ein Statusblockpaket DEFCSW0, das die voreingestellte Information für den Erfolgsstatus enthält, vorher in den CSW0-Bereich 18 wie in 9A gezeigt geschrieben. Wenn der Datenübertragungsstatus erfolgreich ist, wird eine durch Verwendung dieses DEFCSW0 erhaltene CSW0 aus dem CSW0-Bereich 18 gelesen und zum Host übertragen.
  • Genauer gesagt, die Werte von dCSWSignature, dCSWDataResidue, bCSWStatus dieses Erfolgs status DEFCSW0 sind voreingestellte Werte (wie 53425355h, 00000000h und 00h = guter Status). Beispielsweise wird das dCSWTag-Feld (eine Tag-Information, die ein Statusblockpaket mit einem Befehlsblockpaket verknüpft) mittels dCSWTag der CSW aktualisiert (überschrieben), wenn die CBW empfangen wurde. Mit anderen Worten, der Wert von dCBWTag der CBW wird unverändert in dCSWTag geschrieben.
  • Auf diese Weise kann die CPU (Firmware) dCSWTag einfach aktualisieren, wenn DEFCSW0, die die voreingestellte Information für den Erfolgsstatus enthält, zuvor in den CSW0-Bereich 18 geschrieben wird. Daher kann die Verarbeitungslast auf der CPU stark verringert werden, wodurch die effektive Übertragungsgeschwindigkeit erhöht wird.
  • Es ist zu beachten, dass in den CSW1-Bereich 19 für den Nichterfolgs-Status DEFCSW1 geschrieben ist, wie in 9B dargestellt ist. Wenn der Datenübertragungsstatus nicht erfolgreich ist, wird eine durch Verwendung dieses DEFCSW1 erhaltene CSW1 aus dem CSW1-Bereich 19 gelesen und zum Host übertragen.
  • Genauer gesagt, es wird ein voreingestellter Wert wie dCSWSignature in diesen Nichterfolgs-Status DEFCSW1 gesetzt.). Ferner wird beispielsweise wird dCSWTag mittels dCBWTag der CBW aktualisiert, wenn die CBW empfangen wurde. Weiterhin wird bCSWStatus mittels des über den EBUS erfassten Status aktualisiert. Dadurch kann die Verarbeitungslast auf der CPU verringert werden, wenn ein Fehler auftritt.
  • 2.3 Phasenumschaltung
  • Bei dieser Ausführungsform wird der Informationslesebereich umgeschaltet, wenn die Phase umgeschaltet worden ist.
  • Genauer gesagt, wenn die Datenphase (erste Phase) auf die Statusphase (zweite Phase) umschaltet, wird der vom Endpunkt EP2 zum Host zu übertragende Lesebereich für Informationen (IN-Daten, Status) vom EP2-Bereich 14 (erster Speicherbereich) zum CSW-Bereich 16 (zweiter Speicherbereich: CSW0-Bereich und CSW1-Bereich) geschaltet, wie in den 7B und 7C gezeigt wird.
  • Wenn die Konfiguration so ausgelegt ist, dass die Phasenumschaltung bestimmt wird und der Informationslesebereich umgeschaltet wird, kann eine angemessene Bereichsumschaltverarbeitung bei niedriger Verarbeitungslast implementiert werden.
  • Die Bestimmung der Phasenumschaltung in diesem Fall wird nachfolgend genauer beschrieben.
  • Wenn OUT-Daten vom Host zum Gerät (Datenübertragung in eine erste Richtung) übertragen werden, kann die Phasenumschaltung wie in 10 gezeigt bestimmt werden. Mit anderen Worten, es wird bestimmt, dass die Datenphase zum Zeitpunkt der Beendigung der Datenübertragung (DMA-Übertragung) über den EBUS (zweiter Bus: siehe 12), der mit dem Festplattenlaufwerk HDD oder dgl. verbunden ist, zur Statusphase umgeschaltet hat, wie bei G1 in 10 dargestellt ist. Der Zeitpunkt dieses G1 wird bis nach dem Zeitpunkt von G2 verzögert, bei dem die Datenübertragung über USB (Datenphase) endet. Der Zeitpunkt von G1 stimmt auch mit dem Zeitpunkt von G3 überein, bei dem der Bereich (OUT-Daten-Speicherbereich) leer wird und das Signal Empty aktiv wird. Ein an der EBUS-Seite bereitgestellter Zähler (ein in 12 dargestellter DMA-Zähler 82) kann durch Zählen der vom EBUS übertragenen Datengröße (Anzahl der Übertragungen und Datenlänge) den Zeitpunkt von G1 bestimmen.
  • Wenn andererseits IN-Daten vom Gerät zum Host (Datenübertragung in eine zweite Richtung) übertragen werden, kann die Phasenumschaltung wie in 11 gezeigt bestimmt werden. Mit anderen Worten, es wird bestimmt, dass die Datenphase zu dem Zeitpunkt, an dem der EP2-Bereich (IN-Daten-Speicherbereich: der erste Speicherbereich) leer wird und wie bei G4 in 11 dargestellt das Signal Empty aktiv wird, auf die Statusphase umgeschaltet hat, nachdem bestimmt worden ist, dass die Datenübertragung über den EBUS (Übertragungsverarbeitung zum Schreiben einer ersten Information in den ersten Speicherbereich über den zweiten Bus) beendet ist. In diesem Fall kann der Zeitpunkt von G4 mittels eines Zählers an der EBUS-Seite (der DMA-Zähler 82) bestimmt werden, der die über den EBUS übertragene Datengröße zählt. Am Ende der Datenübertragung über USB stimmt der Zeitpunkt von G5 mit dem von G6 überein.
  • Wenn die Phasenumschaltung mit den in den 10 und 11 gezeigten Verfahren bestimmt wird, braucht kein Zähler an der Seite des USB (erster Bus) bereitgestellt zu werden, da der Zähler an der Seite des EBUS (zweiter Bus) (der DMA-Zähler 82) ausreicht. Daher können die Schaltungssteuerung und auch die Schaltungskonfiguration vereinfacht werden, so dass ein kleineres und kostengünstigeres Steuerungsgerät zur Datenübertragung möglich ist.
  • Bei dieser Ausführungsform wird zum Zeitpunkt von G5 in 11 bestimmt, dass die Datenphase zur Statusphase umgeschaltet hat, und es wird die Umschaltverarbeitung vom EP2-Bereich 14 zum CSW-Bereich 16 zu diesem Zeitpunkt durchgeführt, wie in den 7B und 7C dargestellt ist. Dadurch kann der Informationslesebereich einfach durch Überwachung der Zählung des Zählers (des DMA-Zählers 82) an der EBUS-Seite und des Signals Empty umgeschaltet werden, wodurch eine Bereichsumschaltung mit niedriger Verarbeitungslast implementiert werden kann.
  • 2.4 Konfigurationsbeispiel
  • Ein Konfigurationsbeispiel des Steuerungsgeräts zur Datenübertragung dieser Ausführungsform ist in 12 dargestellt.
  • Das Steuerungsgerät zur Datenübertragung dieser Ausführungsform weist ein Sender-/Empfänger-Makro 20, eine SIE (serial interface engine – serielle Schnittstellenmaschine) 30, eine Endpunkt-Managementschaltung 40, eine Puffer-Managementschaltung 50, einen Puffer 60, eine Massenübertragungs-Managementschaltung 70 und eine DMAC (DMA-Steuerung) 80 auf. Es ist zu beachten, dass nicht alle in 12 dargestellten Schaltungsblöcke für das Steuerungsgerät zur Datenübertragung der vorliegenden Erfindung erforderlich sind, so dass auf einige von ihnen verzichtet werden könnte.
  • In diesem Fall ist das Sender-/Empfänger-Makro 20 eine Schaltung zur Implementierung der Datenübertragung im FS- oder HS-Modus durch den USB (erster Bus). Eine Makrozelle, die der Sender-(Empfänger-Makrozellenschnittstelle (UTMI) gemäß USB 2.0 entspricht, die Schnittstellenspezifikationen für Teile der Schaltung der physikalischen Ebene und der logischen Ebene unter USB 2.0 definiert, könnte beispielsweise als dieses Sender-/Empfänger-Makro 20 verwendet werden. Dieses Sender-/Empfänger-Makro 20 weist eine Sender-/Empfänger-Schaltung 22 und eine Taktgeneratorschaltung 24 auf.
  • Die Sender-/Empfänger-Schaltung 22 weist eine analoge Vorstufenschaltung (Empfangs- und Sendeschaltung) zum Senden und Empfangen der Daten durch den USB (erster Bus) unter Verwendung von Differenzsignalen DP und DM auf. Außerdem weist sie Schaltungen zur Verarbeitung wie Bitstopfen, Bitentstopfen, Seriell-/Parallel-Wandlung, Parallel-/Seriell-Wandlung, NRZI-Decodierung, NRZI-Codierung und Abtasttakterzeugung auf.
  • Die Taktgeneratorschaltung 24 ist eine Schaltung zum Erzeugen von Takten wie diejenigen, die bei der Erzeugung des Betriebstaktes oder des Abtasttaktes vom Steuerungsgerät zur Datenübertragung verwendet werden, und weist Komponenten wie PLLs und Oszillatorschaltungen zum Erzeugen von 480 MHz- und 60 MHz-Takten auf.
  • Eine serielle Schnittstellenmaschine (SIE) ist eine Schaltung zur Ausführung verschiedener Verarbeitungstypen wie die USB-Paketübertragungsverarbeitung und sie weist eine Paketsteuerungsschaltung 32, eine Wartebetriebsschaltung 34 und eine Transaktions-Managementschaltung 36a auf.
  • Die Paketsteuerungsschaltung 32 ist eine Schaltung zum Zusammensetzen (Erstellen) oder Analysieren von Paketen, die aus Datenköpfen und Daten gebildet sind, und sie weist eine CRC-Verarbeitungsschaltung 33 auf, die CRCs erzeugt und decodiert.
  • Die Wartebetriebsschaltung 34 ist eine Schaltung zur Folgesteuerung während der Wartezeit und Wiederaufnahme der Verarbeitung.
  • Die Transaktions-Managementschaltung 36 ist eine Schaltung zur Verwaltung von Transaktionen, die aus Token-, Daten-, Handshake- und anderen Paketen bestehen. Im Einzelnen bestätigt diese Schaltung bei Empfang eines Token-Pakets, ob sie die eigene Adresse des Geräts hat oder nicht, und wenn sie diese Adresse hat, führt sie die Verarbeitung zur Übertragung von Paketen zum oder vom Host, dann die Verarbeitung zur Übertragung eines Handshake-Pakets aus.
  • Die Endpunkt-Managementschaltung 40 ist eine Schaltung zum Verwalten der Endpunkte, die Eingänge zu den verschiedenen Speicherbereichen des Puffers bilden, und sie weist Komponenten wie Register (einen Registersatz) zum Speichern von Attributinformationen für diese Endpunkte auf.
  • Die Puffer-Managementschaltung 50 ist eine Schaltung zum Verwalten des Puffers 60 und besteht aus Komponenten wie RAMs. Im Einzelnen erzeugt sie Schreib- oder Leseadressen und führt die Verarbeitung zum Schreiben der Daten nach dem Puffer 60 oder zum Lesen der Daten aus dem Puffer 60 aus.
  • Der Puffer 60 (Paketspeichereinheit) ist zur vorübergehenden Speicherung von Daten (Paketen) zur Übertragung über den USB ausgelegt und hat verschiedene Funktionen wie den Ausgleich eventueller Geschwindigkeitsdifferenzen zwischen der Datenübertragungsgeschwindigkeit des USB (erster Bus) und der Datenübertragungsgeschwindigkeit des EBUS (zweiter Bus oder DMA-Bus). Es ist zu beachten, dass der EBUS ein externer Bus ist, der Geräte wie Festplattenlaufwerke, CD-Laufwerke und Scanner miteinander verbindet.
  • Wenn bei dieser Ausführungsform mehrere Informationstypen als Informationen zugewiesen werden, die über einen Endpunkt zu übertragen sind, werden am Puffer 60 ein erster Speicherbereich (z.B. ein Datenspeicherbereich) für eine erste Information (z.B. Daten) und ein zweiter Speicherbereich (z.B. ein Statusspeicherbereich) für eine zweite Information (z.B ein Statusblock) bereitgestellt (sichergestellt).
  • Die Massenübertragungs-Managementschaltung 70 ist eine Schaltung zur Verwaltung von Massenübertragungen unter USB.
  • Der DMAC 80 ist eine DMA-Steuerung zur Ausführung von DMA-Übertragungen über den EBUS und weist einen DMA-Zähler 82 auf. Der DMA-Zähler 82 ist eine Schaltung zum Zählen der Größe der Daten (Anzahl von Übertragungen), die vom EBUS zu senden oder zu empfangen sind.
  • 2.5 Detailliertes Konfigurationsbeispiel
  • Ein detailliertes Beispiel der Konfiguration der Transaktions-Managementschaltung 36 (SIE), der Endpunkt-Managementschaltung 40, der Puffer-Managementschaltung 50 und des Puffers 60 ist in 13 dargestellt.
  • Der Puffer 60 (RAM) enthält einen CSW0-Bereich 61 zum Speichern einer CSW (Statusblock), die aus dem Endpunkt EP2 zugewiesenen Informationen besteht, einen CSW1-Bereich 62 (für den Nichterfolgs-Status), einen EP0-Bereich 63 zum Speichern der Steuerung, die aus dem EP0 zugewiesenen Informationen besteht, einen EP1-Bereich 64 zum Speichern von OUT-Daten, die aus dem EP1 zugewiesenen Informationen besteht, und einen EP2-Bereich 65 zum Speichern von IN-Daten, die aus dem EP2 zugewiesenen Informationen bestehen.
  • In 13 sind der CSW0-Bereich 61 und der CSW1-Bereich 62 so eingestellt, dass auf sie von der CPU (Firmware oder Verarbeitungseinheit) direkt zugegriffen werden kann. Die EP0-, EP1- und EP2-Bereiche 63, 64 und 65 sind andererseits so eingestellt, dass Informationen, die dort als erste eingegeben werden, von dort wieder als erste ausgegeben werden (FIFO).
  • Die Transaktions-Managementschaltung 36 gibt zum Puffer 60 Schreibdaten SIEWrData (ein Schreibpaket) aus, die über USB übertragen worden sind, und gibt Lesedaten SIERdData (ein Lesepaket) vom Puffer 60 ein.
  • Die Transaktions-Managementschaltung 36 gibt auch ein Schreibanforderungssignal SIEWrReq und ein Leseanforderungssignal SIERdReq zur Puffer-Managementschaltung 50 aus und empfängt ein Schreibquittierungssignal SIEWrAck und ein Lesequittierungssignal SIERdAck von der Puffer-Managementschaltung 50.
  • Die Transaktions-Managementschaltung 36 gibt ferner ein Transaktionsbeendigungssignal TranEndPulse, ein Transaktionsstatussignal TranStatus, ein Endpunktnummer-Spezifikationssignal EPnum und ein Übertragungsrichtungs-Spezifikationssignal Direction zur Endpunkt-Managementschaltung 40 aus und empfängt von der Endpunkt-Managementschaltung 40 ein Endpunkt-Anwesenheitssignal EPexist.
  • Die Endpunkt-Managementschaltung 40 weist Register (einen Registersatz) 42, 43 und 44 zur Beschreibung von Attributinformationen jedes Endpunkts (z.B. Endpunktnummer und maximale Paketgröße) auf. Sie erzeugt auch ein Endpunkt-Auswahlsignal EPsel auf der Basis verschiedener Signale von der Transaktions-Managementschaltung 36 und die Attributinformationen zur Ausgabe an die Puffer-Managementschaltung 50.
  • Die Endpunkt-Managementschaltung 40 gibt auch ein Schreibanforderungssignal CPUWrReq und ein Leseanforderungssignal CPURdReq von der CPU zur Puffer-Managementschaltung 50 aus und empfängt ein Schreibquittierungssignal CPUWrAck und ein LesequittierungssignalCPURdAck, die von der Puffer-Managementschaltung 50 zur CPU gesandt werden.
  • Das in der Endpunkt-Managementschaltung 40 enthaltene EP0-Register 42 ist ein Register zur Beschreibung von Attributinformationen des Steuerungsendpunkts, der von der USB-Spezifikation als Standard definiert ist.
  • Die EP1- und EP2-Register 43 und 44 sind Register, die zur Beschreibung von Attributinformationen der Endpunkte Massen-aus und Massen-ein dienen, die durch die Nur-Massen-Spezifikation definiert werden. Es wird darauf hingewiesen, dass jeder der Endpunkte EP1 bis EP15 geräteseitig als Endpunkt Massen-aus oder Massen-ein eingestellt werden kann.
  • Das EP1-Register 43 veranlasst, dass ein Flag DIR, das die Datenübertragungsrichtung meldet, auf OUT gesetzt wird und EP1 als Endpunkt Massen-aus eingestellt wird.
  • Das EP1-Register 43 setzt ferner ein Flag EnCSW auf 0. Dieses Flag EnCSW dient zur Verbindung des Endpunkts entweder mit dem CSW0-Bereich 61 oder dem CSW1-Bereich 62 des Puffers 60, so dass, wenn EnCSW auf 1 gesetzt wird, der Endpunkt Massen-ein mit dem CSW0-Bereich 61 oder dem CSW1-Bereich 62 verbunden wird.
  • Das EP1-Register veranlasst außerdem, dass ein Flag SelCSW auf 0 gesetzt wird. Dieses Flag SelCSW dient zur Anwahl, welcher CSW0-Bereich 61 und CSW1-Bereich 62 mit dem Endpunkt Massen-ein verbunden werden soll. Beispielsweise wird ein Endpunkt Massen-ein, bei dem EnCSW auf 1 und SelCSW ebenfalls auf 1 gesetzt wird, mit dem CSW0-Bereich 61 verbunden. Andererseits wird ein Endpunkt Massen-ein, bei dem EnCSW auf 1 und SelCSW auf 0 gesetzt wird, mit dem CSW1-Bereich 62 verbunden.
  • Beim EP2-Register 44 wird das Flag DIR, das die Datenübertragungsrichtung wird ein Endpunkt Massen-ein, bei dem EnCSW auf 1 und SelCSW ebenfalls auf 1 gesetzt ist, mit dem CSW0-Bereich 61 verbunden meldet, auf IN gesetzt und EP2 wird als Endpunkt Massen-ein eingestellt.
  • Beim EP2-Register 44 wird EnCSW auf 1 und SelCSW auf 0 gesetzt. Dieser gesetzte Zustand veranlasst daher, dass der Endpunkt EP2 mit dem CSW0-Bereich 61 verbunden wird. In diesem Fall wird, wenn SelCSW z.B. auf 1 gesetzt wird, der Endpunkt EP2 mit dem CSW1-Bereich 62 verbunden, wenn aber EnCSW auf 0 gesetzt wird, wird EP2 mit dem EP2-Bereich 65 verbunden.
  • Die Puffer-Managementschaltung 50 empfängt ein Schreib- oder Leseanforderungssignal von der Transaktions-Managementschaltung 36 oder der Endpunkt-Managementschaltung 40 und das Endpunkt-Auswahlsignal EPsel von der Endpunkt-Managementschaltung 40 und gibt zum Puffer 60 eine Adresse Address und einen Schreibimpuls xWR (wobei „x" negativ logisch bedeutet) aus. Diese Puffer-Managementschaltung 50 enthält die CSW0, CSW1-, EP0-, EP1- und EP2-Adressenerzeugungsschaltungen 51, 52, 53, 54 und 55 sowie einen Wähler 56.
  • In diesem Fall erzeugt die CSW0-Adressenerzeugungsschaltung 51 für den CSW0-Bereich 61 eine Schreib- oder Leseadresse AD0 für SIEWrData oder SIERdData (Startadresse a0).
  • Die CSW1-Adressenerzeugungsschaltung 52 erzeugt für den CSW1-Bereich 62 eine Schreib- oder Leseadresse AD1 für SIEWrData oder SIERdData (Startadresse a1).
  • In gleicher Weise erzeugen die EP0-, EP1- und EP2-Adressenerzeugungsschaltungen 53, 54 und 55 für den EP0-, EP1- oder EP2-Bereich 63, 64 bzw. 65 (Startadresse a2, a3 oder a4) je eine Schreib- oder Leseadresse AD2, AD3 oder AD4 für SIEWrData oder SIERdData. Genauer gesagt, sie erzeugen sequentiell aufwärtsgezählte (oder abwärtsgezählte) Adressen AD2, AD3 und AD4 als Startadressen a2, a3 und a4.
  • Der Wähler 56 wählt auf Basis von EPsel eine von AD0 bis AD3 und gibt sie als Address zum Puffer 60 aus und gibt außerdem den Schreibimpuls xWR zum Puffer 60 aus. Genauer gesagt, es wird AD0 als Address zur Ausgabe an den Puffer 60 gewählt, wenn CSW0 durch EPsel spezifiziert wird, daher wird AD1 gewählt, wenn CSW1 spezifiziert wird, AD2 wird daher gewählt, wenn EP0 spezifiziert wird, AD3 wird deshalb gewählt, wenn EP1 spezifiziert wird, und es wird daher AD4 gewählt, wenn EP2 spezifiziert wird.
  • Es wird darauf hingewiesen, dass die Konfiguration derart ausgelegt ist, dass CPURdData von der CPU zum CSW0-Bereich 61 und CSW1-Bereich 62 geschrieben werden können. In diesem Fall wird die Puffer-Managementschaltung 50 so konfiguriert, dass Address und xWr zum Schreiben von CPUWrData zum Puffer 60 auf Basis von EPsel und CPUWrReq von der Endpunkt-Managementschaltung 40 ausgegeben werden.
  • Ein weiteres Beispiel der Konfiguration der Transaktions-Managementschaltung 36, der Endpunkt-Managementschaltung 40, der Puffer-Managementschaltung 50 und des Puffers 60 ist in 14 dargestellt.
  • 14 unterscheidet sich von 13 dadurch, dass der Puffer 60 die FIFO, 66, 67, 68 und 69 (z.B. als seriell verbundene Register oder Speicher) für CSW (CSW0, CSW1), EP0, EP1 und EP2 enthält.
  • Ein in der Puffer-Managementschaltung 50 enthaltener Wähler 57 gibt SIEWrData von der Transaktions-Managementschaltung 36 zum Puffer 60 als eine von WrDataCSW, WrDataEP0, WrDataEP1 oder WrDataEP2 auf Basis von EPsel von der Endpunkt-Managementschaltung 40 aus.
  • Alternativ wählt der Wähler 57 eine von RdDataCSW, RdDataEP0, RdDataEP1 oder RdDataEP2 auf Basis von EPsel aus dem Puffer 60 und gibt sie als SIERdData zur Transaktions-Managementschaltung 36 aus.
  • Genauer gesagt, es werden WrDataCSW und RdDataCSW gewählt, wenn CSW durch EPsel spezifiziert wird, WrDataEP0 und RdDataEP0 werden gewählt, wenn EP0 spezifiziert wird, WrDataEP1 und RdDataEP1 werden gewählt, wenn EP1 spezifiziert wird, und es werden WrDataEP2 und RdDataEP2 gewählt, wenn EP2 spezifiziert wird.
  • Das Schreiben der Daten zum Puffer 60 erfolgt durch einen Schreibimpuls SIEWR von der Transaktions-Managementschaltung 36 und das Lesen der Daten aus dem Puffer 60 erfolgt durch einen Leseimpuls SIERD von der Transaktions-Managementschaltung 36.
  • Es ist zu beachten, dass der FIFO 66 (CSW) in 14 als Speicherbereich mit Direktzugriff eingestellt werden kann.
  • 2.6 Funktionsweise
  • Impulsdiagramme, die Einzelheiten der Funktionsweise des Steuerungsgeräts zur Datenübertragung dieser Ausführungsform zeigen, sind 15 bis 20 dargestellt.
  • 2.6.1 Erfolgsstatus
  • Die Impulsdiagramme in den 15, 16 und 17 zeigen die Datenübertragung über den EBUS (zweiter Bus), wenn der Status erfolgreich ist, 15 ist ein Impulsdiagramm für den Beginn der Statusphase (die Phase, in der der Erfolgsstatus übertragen wird) und die 16 und 17 zeigen das Ende der Statusphase.
  • Wenn die Transaktions-Managementschaltung 36 EPnum auf 2 (Endpunktnummer = 2) und Direction auf IN setzt wie bei H1 und H2 in 15 dargestellt, veranlasst das Vorhandensein des Registers 44 für den Endpunkt EP2 Masse-aus (siehe 13), dass die Endpunkt-Managementschaltung 40 EPexist bei H3 auf aktiv (H) gehen lässt.
  • Da EnCSW für den Endpunkt EP2 an diesem Punkt auf H (1) gesetzt ist wie bei H4 gezeigt, gibt die Endpunkt-Managementschaltung 40 EPsel, die die Adresse AD0 des CSW0-Bereichs 61 spezifiziert, zur Puffer-Managementschaltung 50 aus. Dadurch wird der Wähler 56 der Puffer-Managementschaltung 50 veranlasst, die von der CSW0-Adressenerzeugungsschaltung 51 erzeugte Adresse AD0 zu wählen.
  • Wenn die Transaktions-Managementschaltung 36 SIEdReq auf aktiv gehen lässt wie bei H6 gezeigt, gibt die Puffer-Managementschaltung 50 AD0 = a0 von der CSW0-Adressenerzeugungsschaltung 51 als Address aus wie bei H7 gezeigt. Dadurch werden die Bytes 0 bis 3 der CSW0 (SIERdData) gelesen, wobei a0 des CSW0-Bereichs 61 des Puffers 60 als die Startadresse verwendet wird, wie bei H9 dargestellt ist. Anschließend geht SIERdAck bei H10 auf aktiv und es wird zur Transaktions-Managementschaltung 36 eine Quittierung zurückgeschickt.
  • Wenn dann die Transaktions-Managementschaltung 36 SIERdReq wie bei H11 gezeigt auf aktiv gehen lässt, gibt die Puffer-Managementschaltung 50 AD0 = (a0 + 4) als Address zum Puffer 60 aus, wie bei H12 gezeigt wird. Dadurch werden die Bytes 4 bis 7 der CSW0 (SIERdData) gelesen, wobei (a0 + 4) des CSW0-Bereichs 61 als die Startadresse verwendet wird, wie bei H14 dargestellt ist. Anschließend geht SIERdAck bei H15 auf aktiv und es wird zur Transaktions-Managementschaltung 36 eine Quittierung zurückgeschickt.
  • Durch Wiederholung der obigen Leseverarbeitung werden alle Bytes von 0 bis 12 der CSW0 (insgesamt 13 Bytes) aus dem CSW0-Bereich 61 gelesen und zum Host übertragen.
  • Wenn ein entsprechendes ACK vom Host zurückgeschickt worden ist, wie bei H17 (in 16) gezeigt wird, lässt die Transaktions-Managementschaltung 36 TranEndPulse auf aktiv gehen wie bei H18 gezeigt und setzt außerdem TranStatus auf Success wie bei H19 gezeigt, um die Endpunkt-Managementschaltung 40 zu informieren, dass die Transaktion erfolgreich war.
  • Wenn dies geschieht, wird EnCSW des Endpunkts EP2 (das Register 44 in 13) auf L (0) gesetzt, wie bei H20 dargestellt ist. Dies veranlasst ein Umschalten der Bereiche wie bei H21 gezeigt und der Wähler 56 der Puffer-Managementschaltung 50 wählt die Adresse AD4 des EP2-Bereichs 65 als Address, wenn der Endpunkt EP2 für die nachfolgende Datenphase gewählt worden ist.
  • Das Impulsdiagramm in 17 zeigt die Funktionsweise, wenn eine ACK-Störung durch eine Transaktion der Statusphase erzeugt wird.
  • Wenn vom Host kein ACK bezüglich des Erfolgsstatus zurückgeschickt wird, der zum Host übertra gen worden ist, wie bei I1 in 17 gezeigt wird, gibt die Transaktions-Managementschaltung 36 wie bei I2 gezeigt TranStatus zur Endpunkt-Managementschaltung 40 aus, wodurch gemeldet wird, dass eine ACK-Störung aufgetreten ist. Wenn dies geschieht, geht EnCSW des Endpunkts EP2 anders als bei H20 in 16 bei I3 in 17 nicht auf L. Aus diesem Grund schaltet EPsel bei I4 nicht um und es erfolgt keine Bereichsumschaltung vom CSW0-Bereich 61 zum EP2-Bereich 65.
  • 2.6.2 Nichterfolgs-Status
  • Die Impulsdiagramme der 18, 19 und 20 zeigen die Datenübertragung über den EBUS (zweiter Bus), wenn der Status nicht erfolgreich ist. 18 ist ein Impulsdiagramm für den Beginn der Statusphase (die Phase, in der der Nichterfolgs-Status übertragen wird) und die 19 und 20 zeigen das Ende der Statusphase.
  • J0 in 18 unterscheidet sich darin von H0 in 15, dass SelCSW (EP2), das das Bereichswählsignal ist, auf H (0) ist und der CSW1-Bereich 62 gewählt wird. J5 in 18 unterscheidet sich daher von H5 in 15 darin, dass die Endpunkt-Managementschaltung 40 EPsel ausgibt, das die Adresse AD1 des CSW1-Bereichs 62 spezifiziert. Dadurch wird die Puffer-Managementschaltung 50 veranlasst, AD1 = a1 von der CSW1-Adressenerzeugungsschaltung 52 als Address zum Puffer 60 auszugeben.
  • Wenn dann alle Bytes 0 bis 12 der CSW1 (insgesamt 13 Bytes) aus dem CSW1-Bereich 62 wie bei J16 in 19 gezeigt gelesen werden und vom Host wie bei J17 gezeigt ein entsprechendes ACK zurückgeschickt wird, geht TranEndPulse bei J18 auf aktiv und Success wird bei J19 als TranStatus ausgegeben. Dadurch wird die Endpunkt-Managementschaltung 40 informiert, dass die Transaktion, die den Host über den Nichterfolgs-Status informiert, erfolgreich war. EnCSW (EP2) geht dann bei J20 auf L und der Bereich wird bei J21 umgeschaltet.
  • Das Impulsdiagramm in 20 zeigt die Funktionsweise, wenn eine ACK-Störung durch eine Transaktion der Statusphase (die Phase, in der der Nichterfolgs-Status übertragen wird) erzeugt wird.
  • Wenn vom Host kein ACK bezüglich des Nichterfolgs-Status zurückgeschickt wird, der zum Host übertragen worden ist, wie bei K1 in 20 gezeigt wird, gibt die Transaktions-Managementschal-tung 36 wie bei K2 gezeigt TranStatus aus, wodurch gemeldet wird, dass eine ACK-Störung aufgetreten ist. Wenn dies geschieht, geht EnCSW anders als bei J2 in 19 bei K3 in 20 nicht auf L. Aus diesem Grund schaltet EPsel bei K4 nicht um und es erfolgt keine Bereichsumschaltung vom CSW0-Bereich 61 zum EP2-Bereich 65.
  • 2.7 Vergleich zwischen dem Vergleichsbeispiel und dieser Ausführungsform
  • Ein Beispiel eines Impulsdiagramms eines Vergleichsbeispiels (siehe die 6A bis 6D) wird in 21 und ein Beispiel eines Impulsdiagramms dieser Ausführungsform wird in 22 gezeigt.
  • Im Vergleichsbeispiel der 21A ist es durch das Vorhandensein von IN-Daten im FIFO für den Endpunkt EP2 nicht möglich, CSW in den FIFO (EP2) zu schreiben. Daher beginnt die CSW-Schreibverarbeitung nach dem Übergang in die Statusphase, wie bei L1 in 21A gezeigt wird. Dies bedeutet, dass als Antwort auf jedes IN-Token vom Host bis zum Ende der Schreibverarbeitung ein NAK zurückgeschickt werden muss, wie bei L2 und L3 gezeigt wird. Aus diesem Grund wird die Übertragung der CSW wie bei L4 gezeigt vom Host verzögert, womit auch der Übergang zur nächsten Befehlsphase wie bei L5 gezeigt verzögert wird. Als Folge geht die Buszone verloren, wodurch die effektive Übertragungsgeschwindigkeit verringert wird.
  • Andererseits werden bei dieser in 21B gezeigten Ausführungsform die CSW-Bereiche (CSW0-Bereich und CSW1-Bereich) getrennt vom EP2-Bereich bereitgestellt, so dass die Verarbeitung zur Erstellung der CSW und die Verarbeitung zum Schreiben dieser CSW in den CSW-Bereich während der Datenphase begonnen werden können. Obwohl die Möglichkeit besteht, dass zuerst NAK bezüglich eines IN-Token vom Host wie bei L6 gezeigt zurückgeschickt wird, wenn EnCSW bei L7 auf H geht und eine Umschaltung vom EP2-Bereich zum CSW-Bereich erfolgt, kann die CSW im CSW-Bereich wie bei L8 gezeigt sofort zum Host übertragen werden. Der Übergang zur Befehlsphase erfolgt daher früher als beim Vergleichsbeispiel in 21A wie bei L9 gezeigt. Deshalb kann der Verlust der Buszone möglichst niedrig gehalten werden, wodurch gegenüber dem Vergleichsbeispiel eine Steigerung der effektiven Übertragungsgeschwindigkeit ermöglicht wird.
  • 22A zeigt ein Flussdiagramm der von der Firmware (CPU) des Vergleichsbeispiels durchgeführten Verarbeitung und 22B zeigt ein Flussdiagramm der Firmware-Verarbeitung gemäß dieser Ausführungsform.
  • Beim Vergleichsbeispiel der 22A bestimmt die Firmware zuerst, ob die Datenphase beendet ist oder nicht (Schritt S21).
  • Wenn bestimmt wird, dass die Datenphase beendet ist, schreibt die Firmware die CSW in den FIFO für EP2 (Schritt S22, siehe L1 in 21A). Da die CSW aus 13 Bytes besteht, weniger als die maximale Paketgröße, aktiviert die Firmware die Übertragung eines kurzen Pakets (Schritt S23).
  • Sie bestimmt dann, ob die IN-Transaktion, die die CSW zum Host überträgt, beendet ist oder nicht (Schritt S24), und die Verarbeitung endet, wenn bestimmt wird, dass sie beendet ist (Schritt S25). Wenn andererseits die Transaktion nicht beendet ist, bestimmt die Firmware, ob eine andere Transaktion als eine IN-Transaktion (z.B. eine OUT-Transaktion) durchgeführt worden ist (Schritt S26). Wenn bestimmt wird, dass dies keine IN-Transaktion ist, besteht die Möglichkeit, dass die aktuelle Phase zwischen dem Host und dem Gerät nicht angepasst ist, so dass ein Übergang zur Fehlerverarbeitung erfolgt (Schritt S27). Wenn andererseits bestimmt wird, dass keine Transaktion erfolgt ist, geht der Programmablauf zurück zu Schritt S24.
  • Bei der in 22B gezeigten Ausführungsform bestimmt die Firmware zuerst, ob die Datenphase beendet ist oder nicht (Schritt S31).
  • In diesem Fall bestimmt die Firmware, wenn die Datenübertragung über den EBUS beendet ist und auch der EP2-Bereich leer ist (Empty ist aktiv), dass die Datenphase beendet ist und die Phase zur Statusphase umgeschaltet hat, wie unter Bezugnahme auf 11 beschrieben ist.
  • Da diese Ausführungsform mit CSW-Bereichen versehen ist, die vom EP2-Bereich getrennt sind, ist es anders als beim Vergleichsbeispiel möglich, den CSW-Bereich während der Datenphase zu erstellen und die CSW-Schreibverarbeitung früher zu beenden.
  • Wenn bestimmt wird, dass die Datenphase beendet ist, wählt die Firmware mittels SelCSW einen CSW-Bereich (entweder den CSW0- oder den CSW1-Bereich) aus und setzt außerdem EnCSW auf 1 (Schritt S32: siehe L7 in 21).
  • Die Firmware bestimmt dann, ob die Transaktion, die die CSW zum Host überträgt, beendet ist oder nicht (Schritt S33), und wenn bestimmt wird, dass sie beendet ist, beendet sie die Verarbeitung (Schritt S34). Wenn andererseits die Transaktion nicht beendet ist, bestimmt die Firmware, ob eine andere Transaktion als eine IN (CSW)-Transaktion durchgeführt worden ist (Schritt S35). Wenn bestimmt wird, dass keine Transaktion durchgeführt worden ist, erfolgt ein Übergang zur Fehlerverarbeitung (Schritt S36). Wenn andererseits bestimmt wurde, dass es eine CSW-Transaktion war, geht der Programmablauf zurück auf Schritt S33.
  • 3. Elektronische Ausrüstung
  • Die Beschreibung geht nunmehr zu Beispielen elektronischer Ausrüstung über, die das Steuerungsgerät zur Datenübertragung dieser Ausführungsform der Erfindung aufweisen.
  • Ein internes Blockdiagramm eines Druckers, der ein Beispiel für eine derartige elektronische Ausrüstung ist, ist in 23A dargestellt, während 24A eine Außenansicht desselben zeigt. Eine CPU (Mikrocomputer) 510 hat verschiedene Funktionen einschließlich der Steuerung des gesamten Systems. Ein Bedienungsabschnitt 511 ist so ausgelegt, dass er es dem Benutzer ermöglicht, den Drucker zu betreiben. Daten wie ein Steuerprogramm und Schriftarten sind in einem ROM 516 gespeichert und ein RAM 517 dient als Arbeitsspeicher für die CPU 510. Eine DMAC 518 ist eine DMA-Steuerung zur Übertragung von Daten über die CPU 510. Ein Anzeigefeld 519 ist so gestaltet, dass sich der Benutzer über den Betriebszustand des Druckers informieren kann.
  • Serielle Druckdaten, die von einem anderen Gerät wie einem Personal Computer über den USB gesendet worden sind, werden vom Steuerungsgerät 500 zur Datenübertragung zu parallelen Druckdaten gewandelt. Die so gewandelten parallelen Druckdaten werden von der CPU 510 oder der DMAC 518 zu einem Druckverarbeitungsabschnitt (einer Druckermaschine) 512 geschickt. Diese parallelen Druckdaten werden im Druckverarbeitungsabschnitt 512 einer gegebenen Verarbeitung unterzogen und werden zum Drucken auf Papier durch einen Druckabschnitt (Gerät zur Datenausgabe) 514, der Komponenten wie einen Druckkopf aufweist, ausgegeben.
  • Ein internes Blockdiagramm eines Scanners, bei dem es sich um ein anderes Beispiel für die elektronische Ausrüstung handelt, ist in 23B dargestellt, während 24B eine Außenansicht desselben zeigt. Eine CPU 520 hat verschiedene Funktionen einschließlich der Steuerung des gesamten Systems. Ein Bedienungsabschnitt 521 ist so ausgelegt, dass er es dem Benutzer ermöglicht, den Scanner zu betreiben. Daten wie ein Steuerprogramm sind in einem ROM 526 gespeichert und ein RAM 527 dient als Arbeitsspeicher für die CPU 520. Eine DMAC 528 ist eine DMA-Steuerung.
  • Ein Bild eines Dokuments wird durch einen Bildleseabschnitt (Gerät zum Abrufen von Daten) 522 eingelesen, der Komponenten wie eine Lichtquelle und einen optoelektrischen Wandler aufweist, und die Daten des eingelesenen Bildes werden durch einen Bildverarbeitungsabschnitt (Scanner-Maschine) 524 verarbeitet. Die verarbeiteten Bilddaten werden von der GPU 520 oder der DMAC 528 an das Steuerungsgerät 500 zur Datenübertragung geschickt. Das Steuerungsgerät 500 zur Datenübertragung wandelt diese parallelen Bilddaten zu seriellen Daten und sendet sie über den USB an ein anderes Gerät wie einen Personal Computer.
  • Ein internes Blockdiagramm eines CD-RW (Lesen/Schreiben)-Laufwerks, bei dem es sich um ein weiteres Beispiel für die elektronische Ausrüstung handelt, ist in 23C dargestellt, während 24C eine Außenansicht desselben zeigt. Eine CPU 530 hat verschiedene Funktionen einschließlich der Steuerung des gesamten Systems. Ein Bedienungsabschnitt 531 ist so ausgelegt, dass er es dem Benutzer ermöglicht, das CD-RW-Laufwerk zu betreiben. Daten wie ein Steuerprogramm sind in einem ROM 536 gespeichert und ein RAM 537 dient als Arbeitsspeicher für die CPU 530. Eine DMAC 538 ist eine DMA-Steuerung.
  • Die aus einem CD-RW 532 durch einen Lese-(Schreibabschnitt (Gerät zum Abrufen von Daten oder Gerät zum Speichern von Daten) 533 ausgelesenen Daten, der Komponenten wie einen Laser, einen Motor und ein optisches System aufweist, werden in einen Signalverarbeitungsabschnitt 534 eingegeben, wo sie einer gegebenen Signalverarbeitung wie einer Fehlerkorrektur unterzogen werden. Die Daten, die dieser Signalverarbeitung unterzogen worden sind, werden von der CPU 530 oder der DMAC 538 an das Steuerungsgerät 500 zur Datenübertragung geschickt. Das Steuerungsgerät 500 zur Datenübertragung wandelt diese parallelen Daten zu seriellen Daten und sendet sie dann über den USB an ein anderes Gerät wie einen Personal Computer.
  • Serielle Daten dagegen, die von einem anderen Gerät über den USB eingehen, werden vom Steuerungsgerät 500 zur Datenübertragung zu parallelen Daten gewandelt. Diese parallelen Daten werden von der CPU 530 oder der DMAC 538 an den Signalverarbeitungsabschnitt 534 geschickt. Diese parallelen Druckdaten werden vom Signalverarbeitungsabschnitt 534 einer gegebenen Signalverarbeitung unterzogen und dann vom Lese-/Schreib-Abschnitt 533 im CD-RW 532 gespeichert.
  • Es ist zu beachten, dass eine getrennte CPU zur Steuerung der Datenübertragung durch das Steuerungsgerät 500 zur Datenübertragung zusätzlich zur CPU 510, 520 oder 530 der 23A, 23B und 23C bereitgestellt werden könnte.
  • Die Verwendung des Steuerungsgeräts zur Datenübertragung dieser Ausführungsform der vorliegenden Erfindung in elektronischer Ausrüstung ermöglicht die Datenübertragung im HS-Modus gemäß USB 2.0. Wenn ein Benutzer einen Personal Computer oder dgl. verwendet, um einen Ausdruck anzufordern, kann Drucken deshalb mit einer nur geringen Zeitverzögerung erfolgen. Der Benutzer kann gleichermaßen ein eingelesenes Bild mit einer nur geringen Zeitverzögerung betrachten, nachdem ein Scanner angewiesen worden ist, das Bild abzurufen. Außerdem ermöglicht es das Lesen von Daten von einem CD-RW und das Schreiben von Daten nach einem CD-RW mit hoher Geschwindigkeit.
  • Die Verwendung des Steuerungsgeräts zur Datenübertragung dieser Ausführungsform in elektronischer Ausrüstung ermöglicht die Fertigung eines Steuerungsgeräts zur Datenübertragung, das eine Datenübertragung im HS-Modus auch bei üblicher Halbleiterverarbeitung bei günstigen Herstellungskosten gestattet. Es ist daher möglich, die Kosten des Steuerungsgeräts zur Datenübertragung und damit die Kosten der elektronischen Ausrüstung zu verringern. Ferner ist es möglich, die Zuverlässigkeit der Datenübertragung und damit die Zuverlässigkeit der elektronischen Ausrüstung zu steigern.
  • Die Verwendung des Steuerungsgeräts zur Datenübertragung dieser Ausführungsform in elektronischer Ausrüstung verringert die Verarbeitungslast der auf der CPU laufenden Firmware, so dass eine kostengünstige CPU verwendet werden kann. Da es ferner möglich ist, die Kosten und die Baugröße des Steuerungsgeräts zur Datenübertragung zu verringern, ist es möglich, eine Verringerung der Kosten und der Baugröße der elektronischen Ausrüstung anzustreben.
  • Es ist zu beachten, dass die elektronische Ausrüstung, die ein Steuerungsgerät zur Datenübertragung gemäß der vorliegenden Erfindung verwendet, nicht auf die oben beschriebene Ausführungsform beschränkt ist, und dass verschiedene andere Beispiele in Betracht gezogen werden können, wie verschiedene Typen optischer Plattenlaufwerke (CD-ROM oder DVD), magnetooptische (MO) Plattenlaufwerke, Festplattenlaufwerke, Fernsehempfänger, Videokassettenrecorder, Videokameras, Audioausrüstung, Telefone, Projektoren, Personal Computer, elektronische Terminkalender und spezielle Textverarbeitungssysteme.
  • Außerdem ist zu beachten, dass die vorliegende Erfindung nicht auf die hierin beschriebene Ausführungsform beschränkt ist und verschiedene Modifikationen innerhalb des Gültigkeitsbereichs der Erfindung, wie im Folgenden festgelegt ist, möglich sind.
  • So ist beispielsweise die Konfiguration des Steuerungsgeräts zur Datenübertragung gemäß der vorliegenden Erfindung nicht auf die in den 12, 13 und 14 dargestellte begrenzt, so dass verschiedene Modifikationen derselben möglich sind.
  • Ferner ist diese Ausführungsform anhand eines Falles beschrieben worden, bei dem der erste Speicherbereich der EP2-Bereich (Datenspeicherbereich) und der zweite Speicherbereich der CSW-Bereich (Statusspeicherbereich) war, aber die vorliegende Erfindung ist nicht darauf beschränkt. Anders ausgedrückt können die im ersten und im zweiten Speicherbereich gespeicherten Informa tionen aus jedem Typ bestehen. Weiterhin können drei oder mehr Informationen auf die Endpunkte eingestellt und die Informationstypen frei gewählt werden.
  • Diese Ausführungsform ist anhand eines Beispiels beschrieben worden, bei dem die vorliegende Erfindung auf eine Bulk-Only- (nur Massen) USB-Spezifikation angewendet wird; die Anwendung der vorliegenden Erfindung ist jedoch nicht auf die Bulk-Only-USB-Spezifikation beschränkt.
  • Weiterhin ist das Verfahren zum Umschalten zwischen dem ersten und dem zweiten Speicherbereich nicht auf das unter Bezugnahme auf die 7A bis 22B im Einzelnen beschriebene Verfahren beschränkt, so dass verschiedene Modifikationen davon möglich sind.
  • Ferner ist es zwar besonders wünschenswert, die vorliegende Erfindung auf die Datenübertragung unter USB 2.0 anzuwenden, aber die vorliegende Erfindung ist nicht darauf beschränkt. So kann die vorliegende Erfindung beispielsweise auch auf die Datenübertragung gemäß einem Standard angewendet werden, der auf einem Konzept ähnlich dem des USB 2.0 oder einem aus dem USB 2.0 entwickelten Standard beruht.

Claims (11)

  1. Steuerungsgerät zur Datenübertragung für die Datenübertragung über einen Bus, aufweisend: einen Puffer mit einem ersten Speicherbereich (14) für eine erste Information und einem zweiten Speicherbereich (16) für eine zweite Information, wobei der erste und der zweite Speicherbereich (14, 16) für einen Endpunkt bereitgestellt werden, wenn eine Mehrzahl Informationstypen, die die erste und die zweite Information enthalten, als Informationen zugewiesen worden sind, die über diesen einen Endpunkt zu übertragen sind; und eine Puffer-Managementschaltung (50) zum Lesen von Informationen, die vom Endpunkt zu einem Host aus dem ersten Speicherbereich (14) für die erste Information während einer ersten Phase zu übertragen sind, in der die erste Information über den Bus übertragen wird, und zum Lesen von Informationen, die vom Endpunkt zu dem Host aus dem zweiten Speicherbereich (16) für die zweite Information während einer zweiten Phase zu übertragen sind, in der die zweite Information über den Bus übertragen wird; die erste Information ein Datenpaket ist; und die zweite Information ein Statusblockpaket; dadurch gekennzeichnet, dass der zweite Speicherbereich (16) einen dritten Speicherbereich für ein erstes Statusblockpaket für den Erfolgsstatus und einen vierten Speicherbereich für ein zweites Statusblockpaket für den Nichterfolgs-Status aufweist; und die Puffer-Managementschaltung (50) zum Lesen des ersten Statusblockpakets für den Erfolgsstatus aus dem dritten Speicherbereich, wenn der Status ein Erfolg ist, und zum Lesen des zweiten Statusblockpakets für den Nichterfolgs-Status aus dem vierten Speicherbereich, wenn der Status ein Nichterfolg ist, ausgeführt ist.
  2. Gerät nach Anspruch 1, bei dem der erste Speicherbereich (14) ein Speicherbereich in der Weise ist, dass dort zuerst eingegebene Informationen von dort wieder zuerst ausgegeben werden; und der zweite Speicherbereich (16) ein Speicherbereich mit Direktzugriff ist.
  3. Gerät nach Anspruch 1 oder 2, so eingerichtet, dass ein Statusblockpaket im zweiten Speicherbereich (16) erstellt wird, während ein Datenpaket aus dem ersten Speicherbereich (14) gelesen wird.
  4. Gerät nach einem der Ansprüche 1 bis 3, so eingerichtet, dass ein Statusblockpaket, in das eine voreingestellte Information für den Erfolgsstatus gesetzt wird, vorab in den dritten Speicherbereich geschrieben wird.
  5. Gerät nach Anspruch 4, bei dem Tag-Informationen zum Verknüpfen eines Statusblockpakets und eines Befehlsblockpakets aus Informationen für das Statusblockpaket, in das eine voreingestellte Information gesetzt ist, aktualisiert werden, und das aktualisierte Statusblockpaket als das erste Statusblockpaket aus dem dritten Speicherbereich gelesen wird.
  6. Gerät nach einem der Ansprüche 1 bis 5, bei dem ein Lesebereich für Informationen, die von einem Endpunkt zu einem Host zu übertragen sind, vom ersten Speicherbereich (14) zum zweiten Speicherbereich (16) umgeschaltet wird, wenn bestimmt worden ist, dass eine Phase von der ersten Phase zur zweiten Phase umgeschaltet hat.
  7. Gerät nach Anspruch 6, so ausgeführt, dass bestimmt wird, dass eine Phase von der ersten Phase zur zweiten Phase umgeschaltet hat, wenn die Bedingung erfüllt ist, dass die Übertragungsverarbeitung zum Übertragen des Datenpakets über einen zweiten Bus und das Schreiben der Information in den ersten Speicherbereich (14) abgeschlossen sind und außerdem der erste Speicherbereich (14) leer geworden ist.
  8. Steuerungsgerät zur Datenübertragung gemäß einem der Ansprüche 1 bis 7, bei dem der erste Speicherbereich (14) ein Statusspeicherbereich und der zweite Speicherbereich (16) ein Datenspeicherbereich ist; die erste Phase eine Statusphase und die zweite Phase eine Datenphase ist; und die Puffer-Managementschaltung (50) so ausgeführt ist, dass sie einen Informationslesebereich vom Datenspeicherbereich zum Statusspeicherbereich umschaltet und das Statusblockpaket, das vom Endpunkt zum Host zu übertragen ist, aus dem Statusspeicherbereich liest, wenn die Phase von der Datenphase zur Statusphase umschaltet.
  9. Gerät nach einem der Ansprüche 1 bis 6, bei dem die Datenübertragung gemäß dem Universal Serial Bus (USB) Standard erfolgt.
  10. Elektronische Ausrüstung, aufweisend: das Gerät nach einem der Ansprüche 1 bis 9; und ein Gerät zum Ausführen der Ausgabeverarbeitung, Abrufverarbeitung oder Speicherungsverarbeitung mit Daten, die über das Gerät und den Bus übertragen worden sind.
  11. Verfahren zur Datenübertragung über einen Bus, aufweisend a) Bereitstellen eines ersten Speicherbereichs (14) für eine erste Information und eines zweiten Speicherbereichs (16) für eine zweite Information für einen Endpunkt in einem Puffer, wenn eine Mehrzahl Informationstypen, die die erste und die zweite Information enthalten, als Informationen zugewiesen worden sind, die über deren einen Endpunkt zu übertragen sind; b) Lesen von Informationen, die vom Endpunkt zu einem Host zu übertragen sind, aus dem ersten Speicherbereich (14) für die erste Information während einer ersten Phase, in der die erste Information über den Bus übertragen wird, und Lesen von Informationen, die vom Endpunkt zum Host zu übertragen sind, aus dem zweiten Speicherbereich (16) für die zweite Information während einer zweiten Phase, in der die zweite Information über den Bus übertragen wird; und die erste Information als ein Datenpaket und die zweite Information als ein Statusblockpaket dadurch gekennzeichnet, dass der zweite Speicherbereich (16) einen dritten Speicherbereich für ein erstes Statusblockpaket für den Erfolgsstatus und einen vierten Speicherbereich für ein zweites Statusblockpaket für den Nichterfolgs-Status aufweist, und Schritt b) das Lesen des ersten Statusblockpakets für den Erfolgsstatus aus dem dritten Speicherbereich, wenn der Status ein Erfolg ist, und das Lesen des zweiten Statusblockpakets für den Nichterfolgs-Status aus dem vierten Speicherbereich, wenn der Status ein Nichterfolg ist, aufweist.
DE60205531T 2001-05-14 2002-05-14 Datentransfersteueranlage, elektronisches Gerät und Datentransfersteuerverfahren Expired - Lifetime DE60205531T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001143430 2001-05-14
JP2001143430A JP3680763B2 (ja) 2001-05-14 2001-05-14 データ転送制御装置及び電子機器

Publications (2)

Publication Number Publication Date
DE60205531D1 DE60205531D1 (de) 2005-09-22
DE60205531T2 true DE60205531T2 (de) 2006-03-30

Family

ID=18989583

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60205531T Expired - Lifetime DE60205531T2 (de) 2001-05-14 2002-05-14 Datentransfersteueranlage, elektronisches Gerät und Datentransfersteuerverfahren

Country Status (8)

Country Link
US (2) US7007112B2 (de)
EP (1) EP1258798B1 (de)
JP (1) JP3680763B2 (de)
KR (1) KR100474221B1 (de)
CN (1) CN1213372C (de)
AT (1) ATE302444T1 (de)
DE (1) DE60205531T2 (de)
TW (1) TW571232B (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596709B2 (en) * 2000-12-30 2009-09-29 Intel Corporation CPU power management based on utilization with lowest performance mode at the mid-utilization range
JP3680763B2 (ja) * 2001-05-14 2005-08-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US7080189B1 (en) * 2002-05-31 2006-07-18 Cypress Semiconductor Corp. USB device communication
JP2005293427A (ja) * 2004-04-02 2005-10-20 Matsushita Electric Ind Co Ltd データ転送処理装置及びデータ転送処理方法
JP4412191B2 (ja) * 2005-02-04 2010-02-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP4293141B2 (ja) * 2005-02-18 2009-07-08 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP2006235994A (ja) * 2005-02-24 2006-09-07 Nec Electronics Corp ブリッジシステム、ブリッジシステム制御方法、情報処理機器、周辺機器及びプログラム
JP2007080244A (ja) * 2005-08-19 2007-03-29 Ricoh Co Ltd データ転送装置及び画像形成装置
JP2007214786A (ja) * 2006-02-08 2007-08-23 Toshiba Corp 携帯型撮像装置
JP2007249938A (ja) * 2006-02-14 2007-09-27 Matsushita Electric Ind Co Ltd Usbホストシステム、avデータ再生装置およびavデータ記録装置
JP4369486B2 (ja) 2007-02-01 2009-11-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
US20080263242A1 (en) * 2007-04-18 2008-10-23 Adrian Bica Usb flash media extender
TW200844841A (en) * 2007-05-10 2008-11-16 Realtek Semiconductor Corp Method for expediting data access of universal serial bus stoarage device
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
TW200945052A (en) * 2008-04-21 2009-11-01 Ralink Technology Corp Method for increasing USB transmission rate
KR102208656B1 (ko) * 2015-04-09 2021-01-28 한국전자통신연구원 시리얼 통신 제어 장치 및 방법

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL100127A0 (en) * 1991-03-11 1992-08-18 Future Domain Corp Scsi controller
JP2868141B2 (ja) * 1992-03-16 1999-03-10 株式会社日立製作所 ディスクアレイ装置
US6185641B1 (en) 1997-05-01 2001-02-06 Standard Microsystems Corp. Dynamically allocating space in RAM shared between multiple USB endpoints and USB host
US5944797A (en) 1997-05-28 1999-08-31 International Business Machines Corporation Data mover hardware controlled processing in a commanding system and in a commanded system for controlling frame communications on a link
DE59811308D1 (de) 1997-07-21 2004-06-09 Infineon Technologies Ag Pufferspeicheranordnung
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
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
US6145045A (en) 1998-01-07 2000-11-07 National Semiconductor Corporation System for sending and receiving data on a Universal Serial Bus (USB) using a memory shared among a number of end points
US6065087A (en) * 1998-05-21 2000-05-16 Hewlett-Packard Company Architecture for a high-performance network/bus multiplexer interconnecting a network and a bus that transport data using multiple protocols
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
AU5774200A (en) * 1999-06-28 2001-01-31 Sangate Systems Inc. Intelligent splitter, system, and methods of use
JP3608441B2 (ja) 1999-07-15 2005-01-12 セイコーエプソン株式会社 データ転送制御装置及び電子機器
KR20010026922A (ko) * 1999-09-09 2001-04-06 윤종용 유에스비 디바이스의 엔드포인트 컨트롤러
JP4329188B2 (ja) * 1999-11-05 2009-09-09 船井電機株式会社 データ転送制御装置
JP2001229115A (ja) * 2000-02-17 2001-08-24 Matsushita Electric Ind Co Ltd Atapiコマンド処理方式
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コントローラ
US6618788B1 (en) * 2000-09-27 2003-09-09 Cypress Semiconductor, Inc. ATA device control via a packet-based interface
JP3870717B2 (ja) 2001-05-14 2007-01-24 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP3680762B2 (ja) 2001-05-14 2005-08-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP3680763B2 (ja) * 2001-05-14 2005-08-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器

Also Published As

Publication number Publication date
CN1385793A (zh) 2002-12-18
EP1258798B1 (de) 2005-08-17
US20020169905A1 (en) 2002-11-14
CN1213372C (zh) 2005-08-03
TW571232B (en) 2004-01-11
EP1258798A2 (de) 2002-11-20
DE60205531D1 (de) 2005-09-22
EP1258798A3 (de) 2003-05-21
ATE302444T1 (de) 2005-09-15
US7237047B2 (en) 2007-06-26
JP2002344538A (ja) 2002-11-29
US7007112B2 (en) 2006-02-28
JP3680763B2 (ja) 2005-08-10
KR100474221B1 (ko) 2005-03-08
KR20020087860A (ko) 2002-11-23
US20060053329A1 (en) 2006-03-09

Similar Documents

Publication Publication Date Title
DE60205809T2 (de) Datensteueranlage, elektronisches Gerät und Datenübertragungssteuerverfahren
DE60205531T2 (de) Datentransfersteueranlage, elektronisches Gerät und Datentransfersteuerverfahren
DE60205305T2 (de) Datensteueranlage, elektronisches Gerät und Verfahren zur Übertragungssteuerung
DE60309391T2 (de) Datenübertragungssteuerungssystem, Programm und Datenübertragungssteuerungsverfahren
DE3838240C2 (de)
DE69327703T2 (de) Mikroprozessor mit Busbreite-Wechselfunktion
DE69836426T2 (de) Steuergerät für einen universellen seriellen Bus
DE19900290B4 (de) Verfahren zum Betreiben einer universellen seriellen Buseinrichtung und universelle serielle Buseinrichtung
DE19982872B4 (de) System zum dynamischen Ändern der Ablaufpriorität eines Empfangsfifos
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
DE69935065T2 (de) Datenübertragungssteuerinrichtung und elektronisches gerät
DE69932400T2 (de) Steuerungsvorrichtung für einen Portverwalter zur Verbindung von verschiedenen Funktionsmodulen
DE3751514T2 (de) Adressieranordnung für RAM-Puffer-Steuereinrichtung.
DE60204687T2 (de) Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird
DE60132872T2 (de) Anordnung und Verfahren für eine Schnittstelleneinheit um Daten zwischen einem Hauptprozessor und einem digitalen Signalprozessor im asynchronen Übertragungsmodus zu übertragen
DE19900345A9 (de) Vorrichtung und Verfahren für die Bereitstellung einer Schnittstelle für eine Verbundsteuereinheit eines Universellen Seriellen Buses
DE19900369A9 (de) Vorrichtung und Verfahren zur Ausführung einer Steuerübertragung auf einem Universal Serial Bus
DE19900331A9 (de) Vorrichtung und Verfahren zur Implementierung eines USB-Endpunktkanals mit doppelter Pufferunterstützung
DE19900331A1 (de) Vorrichtung und Verfahren zur Implementierung eines USB-Endpunktkanals mit doppelter Pufferunterstützung
DE69616119T2 (de) Netzwerkschnittstellenkarte für digitales Kopiergerät
DE69918053T2 (de) Datenübertragungs-steuervorrichtung und elektronische vorrichtung
DE19900245A1 (de) Vorrichtung und Verfahren zum Senden und Empfangen von USB-Isochrondaten
DE19900290A9 (de) Verfahren zum Betreiben einer universellen seriellen Buseinrichtung und universelle serielle Buseinrichtung
DE112005000219T5 (de) Verfahren und Vorrichtung zum Verwalten von Speicherzugriffsanforderungen
DE19900251B4 (de) Vorrichtung und Verfahren zum Steuern eines vielseitigen USB-Endpunktkanals

Legal Events

Date Code Title Description
8364 No opposition during term of opposition