-
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.