-
HINTERGRUND
DER ERFINDUNG
-
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 Bus-Schnittstelle
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, der einen Puffer
aufweist, der entweder in einem Einzelpuffer-Modus oder in einem
Doppelpuffer-Modus verwendet wird. 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
DE-A-199 00 331 offenbart ein Gerät und ein Verfahren zur Implementierung
eines USB-Endpunkts
mit Doppelpufferunterstützung.
Wenn gemäß diesem
Stand der Technik Daten vom USB-Endpunkt an
einen Host geschickt werden sollen, wird ein erstes Datenpaket vorbereitet
und in einem ersten Speicherbereich gespeichert und es wird ein
zweites Datenpaket vorbereitet und in einem zweiten Speicherbereich
gespeichert. Es wird ein erster Zeiger erzeugt, der zum ersten Speicherbereich
zeigt, und es wird dann das erste Datenpaket weggeschickt, bis ein
Quittierungssignal vom Host empfangen wird. Nach Empfang des Quittierungssignals wird
ein zweiter Zeiger, der zum zweiten Speicherbereich zeigt, erzeugt
und das zweite Datenpaket wird weggeschickt. Wenn der USB-Endpunkt
Daten vom Host empfangen soll, wird ein erster Zeiger erzeugt, der
zu einem ersten Speicherbereich zeigt, dann wird ein erstes Datenpaket
empfangen und im ersten Speicherbereich gespeichert. Wenn kein Fehler
auftritt, wird ein zweiter Zeiger, der zu einem zweiten Speicherbereich
zeigt, erzeugt und es wird ein zweites Datenpaket empfangen und
im zweiten Speicherbereich gespeichert.
-
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.
-
KURZE ZUSAMMENFASSUNG
DER ERFINDUNG
-
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
9 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 eine erste Information, die
einem gegebenen Endpunkt zugewiesen ist, und ein zweiter Speicherbereich
für eine zweite
Information, die demselben Endpunkt zugewiesen ist, in einem Puffer
bereitgestellt. Während
einer ersten Phase (erster Transport) wird die von einem Host zu
einem Endpunkt übertragene
Information in den ersten Speicherbereich geschrieben, und während einer
zweiten Phase (zweiter Transport) wird die vom Host zum Endpunkt übertragene
Information in den zweiten Speicherbereich geschrieben. Wenn beispielsweise
eine Phase von der ersten Phase zur zweiten Phase umgestellt wird,
wird der Informations-Schreibbereich für den Endpunkt vom ersten Speicherbereich
zum zweiten Speicherbereich umgestellt. Die erste Information ist
ein Befehlsblockpaket; und die zweite Information ist ein durch
eine Meldung des Befehlsblocks zu übertragendes Datenpaket.
-
Dadurch
kann eine zweite Information in den zweiten Speicherbereich geschrieben
werden, während
eine erste Information, die in den ersten Speicherbereich geschrieben
worden ist, verarbeitet wird, auch wenn eine Mehrzahl Informationstypen
einem einzigen Endpunkt zugewiesen worden ist. Daher kann die Verarbeitungsgeschwindigkeit
des Steuerungsgeräts
für die
Datenübertragung
erhöht
und die Last der Einheit, die die erste Information verarbeitet,
verringert werden, wodurch die effektive Busübertragungsgeschwindigkeit
erhöht
wird.
-
Beim
Steuerungsgerät
für die
Datenübertragung
kann der erste Speicherbereich für
die erste Information als ein Bereich mit Direktzugriff eingestellt werden;
und der zweite Speicherbereich für
die zweite Information kann als ein derartiger Bereich eingestellt
werden, dass Informationen, die in ihm als erste eingegeben werden,
von ihm als erste ausgegeben werden.
-
Dies
ermöglicht
verschiedene Verbesserungen wie z. B. bei der Verarbeitungsgeschwindigkeit der
Einheit, die die erste Information verarbeitet, die in den ersten
Speicherbereich geschrieben worden ist.
-
Beim
Steuerungsgerät
für die
Datenübertragung
kann mindestens ein Befehlsblock, der die Übertragung der zweiten Information
und die Informationslänge
der zweiten Information meldet, wobei deren Übertragung durch einen Befehlsblock
gemeldet wird, in einen anderen Bereich als in eine Startadresse
des ersten Speicherbereichs für
die erste Information geschrieben werden.
-
In
einem derartigen Fall ermöglicht
es diese Erfindung, Informationen wie einen Befehlsblock und Längeninformationen
durch Direktzugriff zu lesen, wodurch verschiedene Verbesserungen
wie bei der Verarbeitungsgeschwindigkeit der die erste Information
verarbeitenden Einheit möglich
werden.
-
Beim
Steuerungsgerät
für die
Datenübertragung
kann ein Schreibbereich für
vom Host zum Endpunkt übertragene
Informationen vom ersten Speicherbereich auf den zweiten Speicherbereich unter
der Bedingung umgeschaltet werden, dass eine Quittierung bezüglich der
Datenübertragung
in der ersten Phase zum Host zurückgeschickt
worden ist.
-
Dadurch
ist es möglich,
eine fehlerfreie zuverlässige
Datenumstellung mit niedriger Verarbeitungslast zu implementieren.
-
Beim
Steuerungsgerät
für die
Datenübertragung
kann eine Umschaltung vom ersten Speicherbereich zum zweiten Speicherbereich
unter der Bedingung nicht durchgeführt werden, dass in einem Daten-Schaltbit
zur Synchronisierung einer Transaktionssequenz mit dem Host ein
Fehler auftritt, auch wenn zum Host eine Quittierung zurückgeschickt worden
ist.
-
Dies
ermöglicht
die Implementierung einer geeigneten Datenübertragungsverarbeitung, auch wenn
im Daten-Schaltbit (fehlende Umschaltung) ein Fehler auftritt.
-
Beim
Steuerungsgerät
für die
Datenübertragung
kann ein Datenpaket in den zweiten Speicherbereich geschrieben werden,
während
eine Verarbeitungseinheit das Befehlsblockpaket auswertet.
-
Dadurch
kann die Verarbeitung der Datenübertragung über den
zweiten Speicherbereich zu einem früheren Zeitpunkt beginnen, so
dass eine Erhöhung
der effektiven Bus-Übertragungsgeschwindigkeit
möglich
wird, wenn eine Phase von einer Befehlsphase (Befehlstransport)
zu einer Datenphase (Datentransport) umschaltet.
-
Gemäß einem
anderen Aspekt der vorliegenden Erfindung ist es möglich, ein
Datenpaket in den Datenspeicherbereich zu schreiben, während die
Verarbeitung eines Befehlsblockpakets durchgeführt wird, das in den Befehlsspeicherbereich
geschrieben worden ist, auch wenn sowohl ein Befehlsblockpaket als
auch ein Datenspeicherpaket einem einzigen 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 Befehlsblockpaket 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 Einstellung des CBW-Bereichs auf
direkten Zugriff dar;
-
9 zeigt
eine Konfiguration eines Steuerungsgeräts für die Datenübertragung gemäß einer Ausführungsform
der vorliegenden Erfindung;
-
10 zeigt
ein detailliertes Beispiel der Konfiguration der Transaktions-Managementschaltung,
der Endpunkt-Managementschattung, der Puffer-Managementschaltung
und des Puffers;
-
11 zeigt
ein weiteres detailliertes Beispiel der Konfiguration der Transaktions-Managementschaltung,
der Endpunkt-Managementschaltung, der Puffer-Managementschaltung
und des Puffers;
-
12 ist
ein Impulsdiagramm, das für
die Wirkungsweise einer Ausführungsform
der vorliegenden Erfindung zu Beginn der Befehlsphase beispielhaft
ist;
-
13 ist
ein Impulsdiagramm, das für
die Wirkungsweise einer Ausführungsform
der vorliegenden Erfindung bei erfolgreicher Datenübertragung beispielhaft
ist;
-
14 ist
ein Impulsdiagramm, das für
die Wirkungsweise einer Ausführungsform
der vorliegenden Erfindung beispielhaft ist, wenn ein Fehler der Datenlänge auftritt;
-
15 ist
ein Impulsdiagramm, das für
die Wirkungsweise einer Ausführungsform
der vorliegenden Erfindung beispielhaft ist, wenn ein CRC-Fehler auftritt;
-
16 ist
ein Impulsdiagramm, das für
die Wirkungsweise einer Ausführungsform
der vorliegenden Erfindung beispielhaft ist, wenn ein Schaltbit-Fehler
(fehlende Umschaltung) auftritt;
-
17A und 17B sind
beispielhaft für das
Schaltbit und die fehlende Umschaltung;
-
18A und 18B sind
Impulsdiagramme des Vergleichsbeispiels und einer Ausführungsform
der vorliegenden Erfindung;
-
19A und 19B sind
Flussdiagramme der Firmware-Verarbeitung des Vergleichsbeispiels und
einer Ausführungsform
der vorliegenden Erfindung;
-
20A, 20B und 20C sind interne Blockdiagramme verschiedener
Teile der elektronischen Ausrüstung;
und
-
21A, 21B und 21C zeigen typische Außenansichten verschiedener
Teile der elektronischen Ausrüstung.
-
DETAILLIERTE
BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
-
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.
Außerdem
ist zu beachten, dass alle Elemente dieser Ausführungsformen nicht als wesentliche
Erfordernisse für
den eigentlichen Inhalt der vorliegenden Erfindung zu betrachten
sind.
-
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 CR.
-
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→H", 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
enthält
und das in 3 dargestellte Format hat. Eine
Befehlsstatus-Umwicklung (command status wrapper – CSW) ist
ein Paket, das den Status des Befehlsblocks enthält 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 Date nlä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) vom Host zu
einem FIFO (EP1) 600 geschrieben, das den Endpunkt EP1 während einer
Befehlsphase wie in 6A dargestellt als Eingang verwendet.
-
Wenn
dies geschieht, liest die CPU (Firmware oder Verarbeitungseinheit)
an der Geräteseite die
in den Puffer 60 geschriebene CBW in der Eingabereihenfolge
wie in 6B dargestellt und wertet den
Befehl aus. In diesem Fall werden keine Daten mehr vom Host zum
FIFO 600 geschrieben, bis die CPU-Befehlsauswertung (Befehlsdecodierung)
beendet ist. Daher sendet das Gerät NAK zum Host zurück, auch
wenn ein Übergang
zur Datenphase erfolgt und ein Token zur Übertragung von OUT-Daten vom Host ausgegeben
wird, wie in 6C gezeigt wird.
-
Die
OUT-Daten vom Host werden in den FIFO 600 geschrieben und
diese OUT-Daten werden durch DMA-Übertragung zu einem Gerät wie z.
B. einem Festplattenlaufwerk in einem späteren Stadium unter der Bedingung übertragen,
dass die CPU-Befehlsauswertung beendet ist und der FIFO leer geworden
ist, wie in 6D gezeigt wird.
-
Bei
dem in den 6A bis 6D gezeigten Vergleichsbeispiel
können
OUT-Daten nicht in dem Zeitraum, in dem die CPU einen Befehl auswertet (decodiert),
zum FIFO 600 geschrieben werden. Die Verarbeitung an der
Geräteseite
wird daher um diesen Zeitraum verschoben, wodurch die effektive
Datenübertragungsgeschwindigkeit
verringert wird.
-
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
ermöglicht
der HS-Modus des USB 2.0 eine Datenübertragung mit einer hohen
Geschwindigkeit von 480 Mbps. Daher werden Daten mit hoher Geschwindigkeit
vom Host über
den USB übertragen.
Jedoch erzeugt die Verarbeitung an der Geräteseite eine Verzögerung und
die Hochgeschwindigkeitsübertragungen
des USB 2.0 werden dadurch behindert. 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 Befehlsauswertung in 6B und 6C sehr zeitaufwändig 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 CBW-Bereich 12 (erster Speicherbereich:
Befehlsspeicherbereich) zum Lesen der CBW (erste Information: Befehlsblock)
zusätzlich
zu einem EP1-Bereich 10 (zweiter Speicherbereich: Datenspeicherbereich)
zum Lesen der OUT-Daten (zweite Information) wie in 7A gezeigt
versehen.
-
In
diesem Fall sind sowohl der EP1-Bereich 10 als auch der
CBW-Bereich 12 Speicherbereiche, die den Endpunkt Massen-aus
EP1 als Eingang verwenden. Der EP1-Bereich 10 wird so eingestellt, dass
Informationen, die dort als erste eingegeben werden, von dort als
erste ausgegeben werden (FIFO-Einstellung) und der CBW-Bereich 12 wird
so eingestellt, dass auf dort enthaltene Informationen direkt zugegriffen
werden kann (Direktzugriffseinstellung).
-
Bei
dieser Ausführungsform
wird während der
Befehlsphase (erste Phase) ein Schalter SW (Schalteinheit) zur Seite
des CBW-Bereichs 12 hin gedreht, so dass die vom Host eingegangene
CBW zum CBW-Bereich 12 geschrieben wird. Wenn dies erfolgt,
liest die CPU (Firmware oder Verarbeitungseinheit) die zum CBW-Bereich 12 geschriebene
CBW und wertet den Befehl aus. Da der CBW-Bereich 12 in
einem derartigen Fall auf freien Zugriff eingestellt ist, kann die
CPU Informationen bei jeder Adresse im CBW-Bereich 12 mit
hoher Geschwindigkeit lesen.
-
Wenn
ein Übergang
von der Befehlsphase (erste Phase) zur Datenphase (zweite Phase)
erfolgt, wird der Schalter SW zur Seite des EP1-Bereichs 10 gedreht
wie in 7B gezeigt. Dadurch können die OUT-Daten
vom Host zum EP1-Bereich 10 geschrieben werden. Wenn die
CPU-Befehlsauswertung endet, beginnt die DMA-Übertragung die OUT-Daten des
EP1-Bereichs 10 in einem späteren Stadium zu einem Gerät wie einem
Festplattenlaufwerk zu übertragen.
-
Bei
dem Vergleichsbeispiel in 6C können z.
B. OUT-Daten vom Host nicht empfangen werden, während die CPU einen Befehl
auswertet, so dass zwangsläufig
NAK zum Host zurückgesendet wird.
-
Im
Gegensatz dazu ist es mit dieser Ausführungsform möglich, OUT-Daten
vom Host zu empfangen und diese in den EP1-Bereich 10 zu
schreiben, während
die CPU einen Befehl auswertet. Daher kann ACK zum Host zurückgesendet
werden, was zu einer Erhöhung
der Verarbeitungsgeschwindigkeit führt.
-
Insbesondere
ermöglicht
USB 2.0 Datenübertragung
vom Host mit hoher Geschwindigkeit. Wenn wie im Vergleichsbeispiel
von 6C zum Host wiederholt NAK zurückgesendet wird, wird dadurch
die Bus-Zone verloren und es kann von der Hochgeschwindigkeitsdatenübertragung
des USB 2.0 kein Gebrauch gemacht werden.
-
Im
Gegensatz dazu ermöglicht
es diese Ausführung,
ACK an den Host zurückzusenden,
wie in 7B dargestellt ist, wodurch
der Verlust der Bus-Zone auf einem Minimum gehalten werden kann,
die Verwendung der Hochgeschwindigkeitsdatenübertragungen des USB 2.0 ermöglicht wird
und damit die effektive Datenübertragungsgeschwindigkeit
erhöht
wird.
-
Im
Vergleichsbeispiel wird die CBW im First-in-First-out FIFO 600 gespeichert,
wie in 8A gezeigt wird. Die CPU muss
daher während der
Befehlsauswertung die CBW von der Startadresse im FIFO 600 aus
der Reihe nach lesen. Im Ergebnis dauert es lange, bis die Datenlänge (dCBWDataTransferLength
in 3) und der Befehl (CBWCB), die für die Befehlsauswertung
wichtig sind, gelesen sind, wodurch die Befehlsauswertung noch mehr
verzögert
wird.
-
Im
Gegensatz dazu gewährleistet
diese Ausführungsform,
dass die CBW im CBW-Bereich 12 mit Direktzugriff gespeichert
wird, wie in 8B gezeigt wird. Die CPU kann
daher zuerst die Datenlänge
und den Befehl lesen, die für
die Befehlsauswertung von Bedeutung sind, wodurch die Verarbeitungszeit
für die
Befehlsauswertung eingespart werden kann. Dies ermöglicht eine
weitere Steigerung der effektiven Datenübertragungsgeschwindigkeit.
-
Da
der CBW-Bereich 12 dieser Ausführungsform auf direkten Zugriff
eingestellt ist, können
die Datenlänge
und der Befehl zuerst gelesen werden, selbst wenn die Datenlänge (Längeninformation
für die
zweite Information) und der Befehl (Befehlsblock, der die Übertragung
der zweiten Information meldet) in zu einem anderen Bereich als
zur Startadresse des CBW-Bereichs 12 (der erste Speicherbereich,
in dem die erste Information gespeichert wird) geschrieben werden,
wodurch die effektive Datenübertragungsgeschwindigkeit
erhöht
wird.
-
Um
sicherzustellen, dass Daten über
DMA im Hinblick auf ein Gerät
eines späteren
Stadiums (wie z. B. ein Festplattenlaufwerk) wirksam übertragen
werden können,
ist es wünschenswert,
den EP1-Bereich 10 derart
einzustellen, dass dort eingegebene Informationen von dort als erste
ausgegeben werden (FIFO-Einstellung). In einem solchen Fall könnte der
EP1-Bereich 10 als First-in-First-out-Bereich eingestellt werden, indem er
aus seriell verbundenen Registern oder einem Speicher konfiguriert wird,
oder er könnte
durch Steuerung der RAM-Adresse als First-in-First-out-Bereich eingestellt
werden, was weiter unten beschrieben wird,
-
2.2 Konfigurationsbeispiel
-
Ein
Konfigurationsbeispiel des Steuerungsgeräts zur Datenübertragung
dieser Ausführungsform
ist in 9 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 9 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 36 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 es 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). 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. ein Befehlsblock) und ein zweiter
Speicherbereich (z. B. Daten) 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.3 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 10 dargestellt.
-
Der
Puffer 60 (RAM) enthält
einen CBW-Bereich 61 zum Speichern einer CBW (Befehlsblock), die
aus dem Endpunkt EP1 zugewiesenen Informationen besteht, einen EP0-Bereich 62 zum
Speichern von dem EP0 zugewiesenen Informationen, einen EP1-Bereich 63 zum
Speichern von dem EP1 zugewiesenen Informationen und einen EP2-Bereich 64 zum
Speichern von dem EP2 zugewiesenen Informationen.
-
In 10 ist
der CBW-Bereich 61 so eingestellt, dass auf ihn von der
CPU (Firmware oder Verarbeitungseinheit) direkt zugegriffen werden
kann. Die EP0-, EP1- und EP2-Bereiche 62, 63 und 64 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 den 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 enthält Register (einen Registersatz) 42, 43 und 44 zur Beschreibung
von Attributinformationen jedes Endpunkts (z. B. Endpunktnummer
und maximale Paketgröße). Sie
erzeugt auch ein Endpunkt-Auswahlsignal EPsel auf der Basis verschiedener
Signale von der Transaktions-Managementschaltung 36 und
die Attributinformationen in den Registern 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 Lesequittierungssignal
CPURdAck, die von der Puffer-Managementschaltung 50 zur
CPU gesendet werden.
-
Das
in der Endpunkt- 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 EnCBW auf 0. Dieses
Flag EnCBW dient zur Verbindung des Endpunkts mit dem CBW-Bereich 61 des Puffers 60,
so dass, wenn EnCBW auf 1 gesetzt wird, der Endpunkt Massen-ein
mit dem CBW-Bereich 61 verbunden wird.
-
Beim
EP2-Register 44 wird das Flag DIR, das die Datenübertragungsrichtung
meldet, auf IN gesetzt und EP2 wird als Endpunkt Massen-ein eingestellt.
-
Beim
EP2-Register 44 wird EnCBW auf 0 gesetzt.
-
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 CBW-, EP0-,
EP1- und EP2-Adressenerzeugungsschaltungen 51, 52, 53 und 54 sowie
einen Wähler 56.
-
In
diesem Fall erzeugt die CBW-Adressenerzeugungsschaltung 51 für den CBW-Bereich 61 eine Schreib-
oder Leseadresse AD0 für
SIEWrData oder SIERdData (Startadresse a0).
-
In
gleicher Weise erzeugen die EP0-, EP1- und EP2-Adressenerzeugungsschaltungen 52, 53 und 54 für den EP0-,
EP1- oder EP2-Bereich 62, 63 bzw. 64 (Startadresse
a2, a3 oder a4) je eine Schreib- oder
Leseadresse AD1, AD2 oder AD3 für SIEWrData
oder SIERdData. Genauer gesagt, sie erzeugen sequentiell aufwärtsgezählte (oder
abwärtsgezählte) Adressen
AD1, AD2 und AD3 als Startadressen a1, a2 und a3.
-
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
CBW durch EPsel spezifiziert wird, daher wird AD1 gewählt, wenn
EP0 spezifiziert wird, AD2 wird gewählt, wenn EP1 spezifiziert
wird, und es wird AD3 gewählt,
wenn EP2 spezifiziert wird.
-
Es
wird darauf hingewiesen, dass die Konfiguration derart ausgelegt
ist, dass CPURdData von der CPU zum CBW-Bereich 61 geschrieben
werden können.
In diesem Fall wird die Puffer-Managementschaltung 50 so
konfiguriert, dass Address zum Lesen von CPURdData zum Puffer 60 auf
Basis von EPsel und CPURdReq von der Endpunkt-Managementschaltung 40 ausgegeben
wird.
-
Ein
weiteres Beispiel der Konfiguration der Transaktions-Managementschaltung 36,
der Endpunkt-Managementschaltung 40,
der Puffer-Managementschaltung 50 und des Puffers 60 ist
in 11 dargestellt.
-
11 unterscheidet
sich von 10 dadurch, dass der Puffer 60 die
FIFO 65, 66, 67 und 68 (z. B.
als seriell verbundene Register oder Speicher) für CBW, 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 WrDataCBW, WrDataEP0, WrDataEP1 oder
WrDataEP2 auf Basis von EPsel von der Endpunkt-Managementschaltung 40 aus.
-
Alternativ
wählt der
Wähler 57 eine
von RdDataCBW, RdDataEP0, RdDataEP1 oder RdDataEP2 auf Basis von
EPsel aus dem Puffer und gibt sie als SIERdData zur Transaktions-Managementschaltung 36 aus.
-
Genauer
gesagt, es werden WrDataCBW und RdDataCBW gewählt, wenn CBW 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 FIFO 65 (CBW) in 11 als
Speicherbereich mit Direktzugriff eingestellt werden kann.
-
2.3 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 10 dargestellt.
-
Der
Puffer 60 (RAM) enthält
einen CBW-Bereich 61 zum Speichern einer CBW (Befehlsblock), die
aus dem Endpunkt EP1 zugewiesenen Informationen besteht, einen EP0-Bereich 62 zum
Speichern von dem EP0 zugewiesenen Informationen, einen EP1-Bereich 63 zum
Speichern von dem EP1 zugewiesenen Informationen und einen EP2-Bereich 64 zum
Speichern von dem EP2 zugewiesenen Informationen.
-
In 10 ist
der CBW-Bereich 61 so eingestellt, dass auf ihn von der
CPU (Firmware oder Verarbeitungseinheit) direkt zugegriffen werden
kann. Die EP0-, EP1- und EP2-Bereiche 62, 63 und 64 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 enthält Register (einen Registersatz) 42, 43 und 44 zur Beschreibung
von Attributinformationen jedes Endpunkts (z. B. Endpunktnummer
und maximale Paketgröße). Sie
erzeugt auch ein Endpunkt-Auswahlsignal EPsel auf der Basis verschiedener
Signale von der Transaktions-Managementschaltung 36 und
die Attributinformationen in den Registern 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 Lesequittierungssignal
CPURdAck, die von der Puffer-Managementschaltung 50 zur
CPU gesendet 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überfragungsrichtung
meldet, auf OUT gesetzt wird und EP1 als Endpunkt Massen-aus eingestellt
wird.
-
Das
EP1-Register 43 setzt ferner ein Flag EnCBW auf 0. Dieses
Flag EnCBW dient zur Verbindung des Endpunkts mit dem CBW-Bereich 61 des Puffers 60,
so dass, wenn EnCBW auf 1 gesetzt wird, der Endpunkt Massen-ein
mit dem CBW-Bereich 61 verbunden wird.
-
Beim
EP2-Register 44 wird das Flag DIR, das die Datenübertragungsrichtung
meldet, auf IN gesetzt und EP2 wird als Endpunkt Massen-ein eingestellt.
-
Beim
EP2-Register 44 wird EnCBW auf 0 gesetzt.
-
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 CBW-, EP0-,
EP1- und EP2-Adressenerzeugungsschaltungen 51, 52, 53 und 54 sowie
einen Wähler 56.
-
In
diesem Fall erzeugt die CBW-Adressenerzeugungsschaltung 51 für den CBW-Bereich 61 eine Schreib-
oder Leseadresse AD0 für
SIEWrData oder SIERdData (Startadresse a0).
-
In
gleicher Weise erzeugen die EP0-, EP1- und EP2-Adressenerzeugungsschaltungen 52, 53 und 54 für den EP0-,
EP1- oder EP2-Bereich 62, 63 bzw. 64 (Startadresse
a2, a3 oder a4) je eine Schreib- oder
Leseadresse AD1, AD2 oder AD3 für SIEWrData
oder SIERdData. Genauer gesagt, sie erzeugen sequentiell aufwärtsgezählte (oder
abwärtsgezählte) Adressen
AD1, AD2 und AD3 als Startadressen a1, a2 und a3.
-
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
CBW durch EPsel spezifiziert wird, daher wird AD1 gewählt, wenn
EP0 spezifiziert wird, AD2 wird gewählt, wenn EP1 spezifiziert
wird, und es wird AD3 gewählt,
wenn EP2 spezifiziert wird.
-
Es
wird darauf hingewiesen, dass die Konfiguration derart ausgelegt
ist, dass CPURdData von der CPU in den CBW-Bereich 61 geschrieben
werden können.
In diesem Fall wird die Puffer-Managementschaltung 50 so
konfiguriert, dass Address zum Lesen von CPURdData zum Puffer 60 auf
Basis von EPsel und CPURdReq von der Endpunkt-Managementschaltung 40 ausgegeben
wird.
-
Ein
weiteres Beispiel der Konfiguration der Transaktions-Managementschaltung 36,
der Endpunkt-Managementschaltung 40,
der Puffer-Managementschaltung 50 und des Puffers 60 ist
in 11 dargestellt.
-
11 unterscheidet
sich von 10 dadurch, dass der Puffer 60 die
FIFO 65, 66, 67 und 68 (z. B.
als seriell verbundene Register oder Speicher) für CBW, 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 WrDataCBW, WrDataEP0, WrDataEP1 oder
WrDataEP2 auf Basis von EPsel von der Endpunkt-Managementschaltung 40 aus.
-
Alternativ
wählt der
Wähler 57 eine
von RdDataCBW, RdDataEP0, RdDataEP1 oder RdDataEP2 auf Basis von
EPsel aus dem Puffer und gibt sie als SIERdData zur Transaktions-Managementschaltung 36 aus.
-
Genauer
gesagt, es werden WrDataCBW und RdDataCBW gewählt, wenn CBW 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 nach dem 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 65 (CBW) in 11 als
Speicherbereich mit Direktzugriff eingestellt werden kann.
-
2.4 Funktionsweise
-
Impulsdiagramme,
die Einzelheiten der Funktionsweise des Steuerungsgeräts zur Datenübertragung
dieser Ausführungsform
zeigen, sind in den 12 bis 16 dargestellt.
-
2.4.1 Wenn erfolgreich
-
Das
Impulsdiagramm in 12 zeigt den Beginn der Befehlsphase
(B1 in 5A) und das Impulsdiagramm in 13 zeigt
das Ende der Befehlsphase.
-
Wenn
die Transaktions-Managementschaltung 36 EPnum auf 1 (Endpunktnummer
= 1) und Direction auf OUT setzt wie bei C1 und C2 in 12 dargestellt,
veranlasst das Vorhandensein des Registers 43 für den Endpunkt
EP1 Masse-aus (siehe 10), dass die Endpunkt-Managementschaltung 40 EPexist
bei C3 auf aktiv gehen lässt.
-
Da
EnCBW für
den Endpunkt EP1 an diesem Punkt auf H (1) gesetzt ist wie bei C4
gezeigt, gibt die Endpunkt-Managementschaltung 40 EPsel,
die die Adresse A0 des CBW-Bereichs 61 spezifiziert, zur Puffer-Managementschaltung 50 aus.
Dadurch wird der Wähler 56 der
Puffer-Managementschaltung 50 veranlasst, die von der CBW-Adressenerzeugungsschaltung 51 erzeugte
Adresse AD0 zu wählen.
-
Wenn
die Transaktions-Managementschaltung 36 SIEWrReq auf aktiv
gehen lässt
wie bei C6 gezeigt, gibt die Puffermanagementschaltung 50 AD0
= a0 von der CBW-Adressenerzeugungsschaltung 51 als Address
aus wie bei C7 gezeigt und lässt außerdem xWR
wie bei C8 gezeigt auf aktiv (L) gehen. Dadurch werden die Bytes 0 bis 3 der
CBW (SIEWrData) geschrieben, wobei a0 des CBW-Bereichs 61 des
Puffers 60 als die Startadresse verwendet wird, wie bei
C9 dargestellt ist. Anschließend geht
SIEWrAck bei C10 auf aktiv und es wird zur Transaktions-Managementschaltung 36 eine
Quittierung zurückgeschickt.
-
Wenn
dann die Transaktions-Managementschaltung 36 SIEWrReq wie
bei C11 gezeigt auf aktiv gehen lässt, gibt die Puffer-Managementschaltung 50 AD0
= a0 + 4 als Address zum Puffer 60 aus und lässt außerdem xWR
auf aktiv gehen, wie bei C12 und C13 gezeigt wird. Dadurch werden
die Bytes 4 bis 7 der CBW (SIEWrData) geschrieben, wobei a0 + 4
des CBW-Bereichs 61 als die Startadresse verwendet wird,
wie bei C14 dargestellt ist. Anschließend geht SIEWrAck bei C15
auf aktiv und es wird zur Transaktions-Managementschaltung 36 eine
Quittierung zurückgeschickt.
-
Durch
Wiederholung des obigen Schreibprozesses werden alle Bytes von 0
bis 30 der CBW (insgesamt 31 Bytes) zum CBW-Bereich 61 geschrieben.
-
Wenn
ein entsprechendes ACK vom Host zurückgeschickt worden ist, wie
bei C17 (in 13) gezeigt wird, lässt die
Transaktions-Managementschaltung 36 TranEndPulse auf aktiv
gehen wie bei C18 gezeigt und setzt außerdem TranStatus auf Success
wie bei C19 gezeigt, um die Endpunkt-Managementschaltung 40 zu informieren,
dass die Transaktion erfolgreich war.
-
Wenn
dies geschieht, wird EnCBW des Endpunkts EP1 (das Register 43 in 10)
auf L (0) gesetzt, wie bei C20 gezeigt wird. Dies veranlasst die Endpunkt-Managementschaltung 40,
EPsel, das die Adresse AD2 des EP1-Bereichs 63 angibt,
zur Puffer-Managementschaltung 50 auszugeben, wie bei C21
gezeigt wird. Als Ergebnis wählt
der Wähler 56 der
Puffer-Managementschaltung 50 die Adresse AD2 des EP1-Bereichs 63 als
Address, die zum Puffer 60 während der nächsten Datenphase auszugeben
ist (siehe B3 in 5A).
-
Bei
der auf diese Weise konfigurierten Ausführungsform wird EnCBW des Endpunkts
EP1 auf L (siehe C20) gesetzt und der Schreibbereich für Daten,
die vom Host zum Endpunkt EP1 zu übertragen sind, werden vom
CBW-Bereich 61 (erster Speicherbereich) zum EP1-Bereich 63 (zweiter
Speicherbereich) unter der Bedingung umgeschaltet (siehe C21), dass
zum Host eine Quittierung ACK für
die Datenübertragung
in der Befehlsphase (erste Phase) zurückgeschickt worden ist (siehe
C17). Die Konfiguration ist derart, dass während der Datenphase nach dem
Umschalten Daten vom Host zum EP1-Bereich 63 geschrieben
werden.
-
Auf
diese Weise ermöglicht
die Verwendung der Bereichsumschaltung in Abhängigkeit davon, ob ein ACK
zurückgeschickt
worden ist oder nicht, eine fehlerfreie und zuverlässige Bereichsumschaltung mit
niedriger Verarbeitungslast zu implementieren.
-
2.4.2 Datenlängenfehler
oder CRC-Fehler
-
Das
Impulsdiagramm in 14 zeigt die Abläufe, wenn
in der während
der Befehlsphase geschriebenen Datenlänge (CBW-Länge) ein Fehler vorhanden ist.
-
Wenn
ein Datenlängenfehler
auftritt (die Datenlänge
ist zu kurz oder zu lang), wird wie bei D1 in 14 gezeigt
statt ACK ein NAK zum Host zurückgeschickt.
Die Transaktions-Managementschaltung 36 gibt zur Endpunkt-Managementschaltung 40 TranStatus
aus und meldet damit, dass in der Datenlänge ein Fehler vorhanden ist,
wie bei D2 dargestellt ist. Wenn sich das in diesem Fall ereignet,
geht EnCBW des Endpunkts nicht wie bei C20 in 13 gezeigt
auf L, wie dies bei D3 in 14 dargestellt
ist. Aus diesem Grund ändert
sich EPsel bei D4 nicht und der Bereich wird nicht vom CBW-Bereich 61 auf
den EP1-Bereich 63 umgeschaltet. Ein Fehler in der Datenlänge erhöht die Wahrscheinlichkeit,
dass zwischen dem Host und dem Gerät eine Phasenabweichung besteht,
wodurch dieser Endpunkt ausfallen kann.
-
Das
Impulsdiagramm in 15 zeigt die Abläufe, wenn
während
der Befehlsphase ein CRC-Fehler auftritt.
-
Wenn
ein CRC-Fehler aufgetreten ist, wird kein ACK zum Host zurückgeschickt,
wie bei E1 in 15 gezeigt wird. Die Transaktions-Managementschaltung 36 gibt
zur Endpunkt-Managementschaltung 40 TranStatus aus und
meldet damit einen CRC-Fehler, wie bei E2 dargestellt ist. Wenn
sich das in diesem Fall ereignet, geht EnCBW des Endpunkts nicht
wie bei C20 in 13 gezeigt auf L, wie dies bei E3
in 15 dargestellt ist. Aus diesem Grund ändert sich
EPsel wie bei E4 gezeigt nicht und es wird nicht vom CBW-Bereich 61 auf
den EP1-Bereich 63 umgeschaltet. Als Ergebnis führt der
Host, der kein ACK empfangen hat, eine Wiederholungsverarbeitung
durch, und falls die CBW nicht erneut übertragen werden kann, ist
die Konfiguration derart, dass die CBW zum CBW-Bereich 61 statt zum EP1-Bereich 63 geschrieben
wird. Dies ermöglicht
die Implementierung geeigneter Datenübertragungsverarbeitung.
-
2.4.3 Fehlende Umschaltung
-
Das
Impulsdiagramm in 16 zeigt die Abläufe, wenn
während
der Befehlsphase ein "Umschaltung
fehlt" auftritt.
-
Die
Beschreibung behandelt zuerst "Umschaltung
fehlt" unter Bezugnahme
auf 17A und 17B.
-
Um
eine Synchronisation der Transaktionssequenz zwischen dem Host und
dem Gerät
unter USB sicherzustellen, werden DATA0 und DATA1 als PID für die Daten
bereitgestellt und es gibt ferner ein Schaltbit (ein Bit, das die
Synchronisation der Transaktionssequenz zwischen dem Host und dem
Gerät sicherstellt)
wie in 17A gezeigt.
-
DATA0,
DATA1 und das Schaltbit, die in der PID der Daten enthalten sind,
werden unter der Bedingung umgeschaltet, dass der Host und das Gerät bestimmt
haben, dass die Transaktion erfolgreich war, wie in 17A dargestellt ist.
-
Wenn
z. B. ein ACK gemäß gesendeten
Daten (DATA1) zurückgeschickt
worden ist, bestimmt der Host, dass die Transaktion erfolgreich
war, und es wird das Schaltbit an der Hostseite umgeschaltet, wie
bei G1 in 17A gezeigt wird.
-
Wenn
die nächsten
ankommenden Daten (PID = DATA1) vom Host übertragen werden und ACK zum
Host zurückgeschickt
wird, bestimmt das Gerät,
dass die Transaktion erfolgreich war, und es wird das Schaltbit
an der Geräteseite
umgeschaltet, wie bei G2 gezeigt wird.
-
Wenn
andererseits ein ACK gemäß gesendeten
Daten (PID = DATA1) nicht in entsprechender Weise zurückgeschickt
worden ist, bestimmt der Host, dass die Transaktion nicht erfolgreich
war, und es wird das Schaltbit an der Hostseite nicht umgeschaltet,
wie bei G3 in 17B gezeigt wird. Die Daten
mit PID = DATA1 werden wie bei G4 gezeigt erneut zum Gerät gesendet.
-
Wenn
dies geschieht, hat das Gerät
die zu ihm übertragenen
Daten mit PID = DATA1 wie bei G5 gezeigt, obwohl es auf die Daten
mit PID = DATA0 wartet, so dass es bestimmt, dass ein "Schaltbit fehlt" aufgetreten ist,
und das Schaltbit an der Geräteseite nicht
umschaltet. In diesem Fall löscht
das Gerät
die Daten mit PID = DATA1 und schickt ACK zum Host zurück. Durch
diese Konfiguration kann eine stetige Folge von Transaktionen zwischen
dem Host und dem Gerät
sichergestellt werden.
-
Wenn
bei dieser Ausführungsform
ein "Schaltbit fehlt" auftritt, ist die
Konfiguration derart, dass keine Bereichsumschaltung vom CBW-Bereich 61 zum
EP1-Bereich 63 erfolgt, auch wenn zum Host die Quittierung
ACK zurückgeschickt
wird.
-
Mit
anderen Worten, es wird ACK zum Host zurückgeschickt, wenn ein "Schaltbit fehlt" auftritt, wie bei
F1 in 16 gezeigt wird. Die Transaktions-Managementschaltung 36 gibt
TranStatus, das ein "Schaltbit
fehlt" meldet, zur
Endpunkt-Managementschaltung 40 wie bei F2 gezeigt aus.
Wenn das in diesem Fall erfolgt, geht EnCBW des Endpunkts EP1 bei
F3 in 16 nicht auf L. Aus diesem Grund stellt
EPsel bei F4 nicht um und der Bereich wird nicht vom CBW-Bereich 61 zum
EP1-Bereich 63 umgeschaltet.
Ries ermöglicht
die Implementierung einer angemessenen Datenübertragungsverarbeitung, selbst
wenn ein "Schaltbit
fehlt" auftritt.
-
2.5 Vergleich zwischen
dem Vergleichsbeispiel und dieser Ausführungsform
-
Ein
Beispiel eines Impulsdiagramms eines Vergleichsbeispiels (siehe 6A bis 6D)
wird in 18A und ein Beispiel eines Impulsdiagramms dieser
Ausführungsform
wird in 18B gezeigt. Die 18A und 18B sind
Impulsdiagramme, die den Fall zeigen, wenn der Pufferspeicherbereich
eine Doppelpufferstruktur hat.
-
Im
Vergleichsbeispiel der 18A wird
beispielsweise in der Befehlsphase die CBW vom Host zum FIFO (600 in 6A)
für EP1
wie bei H1 gezeigt geschrieben. Wenn der FIFO in diesem Fall eine Doppelpufferstruktur
hat, kann ein OUT-Daten vom Host zum FIFO wie bei H2 gezeigt geschrieben
werden. Da jedoch die nächsten
OUT-Daten nicht zum FIFO geschrieben werden können, wird als Antwort auf
die nächste
OUT-Daten-Anforderung vom Host NYET zurückgeschickt, wie bei H3 gezeigt
wird.
-
Das
Gerät schickt
sogar wie bei H5 gezeigt als Antwort auf ein PING-Paket vom Host
mit der Frage, ob der FIFO geleert worden ist, NAK zurück. Mit anderen
Worten, das Gerät
schickt zum Host immer wieder NAK zurück, bis die CPU-Befehlsauswertung beendet
ist. Wenn die CPU-Befehlsauswertung beendet und der FIFO leer geworden
ist, können OUT-Daten
vom Host empfangen und in den FIFO geschrieben werden, wie bei H6
gezeigt wird.
-
Wenn
im Gegensatz dazu die CBW zum CBW-Bereich dieser Ausführungsform
wie bei H7 in 18B gezeigt geschrieben wird
und ein passendes ACK zurückgeschickt
wird, geht EnCBW wie bei H8 gezeigt (siehe C20 in 13)
auf L. Wenn dies geschieht, wird der Bereich vom CBW-Bereich zum EP1-Bereich
wie unter Bezugnahme auf 7B beschrieben
umgeschaltet und der Endpunkt EP1 wird mit dem EP1-Bereich verbunden.
-
Daher
kann sichergestellt werden, dass in der Datenphase OUT-Daten vom
Host zu diesem EP1-Bereich
geschrieben werden und wie bei H9 gezeigt ACK zum Host zurückgeschickt
wird. Wenn die Befehlsauswertung bei H10 endet, ist die Konfiguration
derart, dass unter Verwendung des EP1-Bereichs wie bei H11 gezeigt eine DMA-Übertragung
in Hinsicht auf ein Festplattenlaufwerk oder dgl. beginnen kann,
wodurch eine wirksame Datenübertragung vom
USB ermöglicht
wird.
-
Die
DMA-Datenübertragung
kann bei dieser Ausführungsform
früher
als beim Vergleichsbeispiel beginnen, wodurch der Verlust der Buszone
möglichst
gering gehalten und damit eine Steigerung der wirksamen Datenübertragungsgeschwindigkeit
im Vergleich zum Vergleichsbeispiel ermöglicht wird.
-
Ein
Flussdiagramm der Firmware-Verarbeitung (CPU) des Vergleichsbeispiels
ist in 19A und ein Flussdiagramm der
Firmware-Verarbeitung gemäß dieser
Ausführungsform
ist in 19B dargestellt.
-
Im
Vergleichsbeispiel in 19A bestimmt die
Firmware zuerst, ob die OUT-Transaktion ausgeführt worden ist oder nicht (Schritt
S1). Mit anderen Worten, sie wartet auf die Rücksendung von ACK vom Gerät, wie bei
H1 in 18A gezeigt wird.
-
Wenn
die Firmware bestimmt hat, dass die OUT-Transaktion durchgeführt worden
ist, liest sie die CBW aus dem EP1 FIFO (Schritt S2). Dann bestimmt
sie, ob die Datenlänge
31 Bytes erreicht hat oder nicht (ob die Datenlänge passend ist oder nicht) (Schritt
S3), und wenn diese 31 Bytes erreicht hat, geht sie weiter zur Befehlsverarbeitung
(schritt S5). Wenn sie andererseits 31 Bytes nicht erreicht hat, geht
die Firmware zur Fehlerverarbeitung über (Schritt S6).
-
Bei
dieser Ausführungsform
bestimmt die Firmware zuerst wie in 19B gezeigt,
ob die bei H7 in 18B gezeigte CBW-Transaktion
(das Schreiben zum CBW-Bereich) ordnungsgemäß abgeschlossen worden ist
oder nicht (Schritt S11). Wenn die CBW-Transaktion nicht abgeschlossen
ist, bestimmt die Firmware, ob ein CBW-Fehler aufgetreten ist (Schritt
S12), und wenn ein CBW-Fehler aufgetreten ist, geht sie über zur
Fehlerverarbeitung (Schritt S16). Wenn andererseits kein CBW-Fehler aufgetreten
ist, geht die Firmware zurück
zu Schritt S11, um auf die Beendigung der CBW-Transaktion zu warten.
-
Wenn
z. B. der Datenlängenfehler
von 14 aufgetreten ist, wird ein CBW-Fehler bestimmt
und die Firmware geht zur Fehlerverarbeitung in Schritt S16 über. Wenn
andererseits "Schaltbit fehlt" von 16 aufgetreten
ist, geht die Firmware von Schritt 12 zu Schritt 11 zurück, ohne
zu bestimmen, dass ein CBW-Fehler aufgetreten ist.
-
Wenn
andererseits die Datenübertragung von 13 erfolgreich
war, wird bestimmt, dass die CBW-Transaktion
abgeschlossen ist, und EnCBW geht auf L. Die Firmware liest dann
die CBW aus dem CBW-Bereich (Schritt S13), wertet den Befehl aus (Schritt
S14) und geht über
zur Befehlsverarbeitung (Schritt S15). Da der CBW-Bereich in diesem
Fall auf Direktzugriff eingestellt ist wie unter Bezugnahme auf 8A und 8B beschrieben,
kann die Befehlsauswertung früher
als beim Vergleichsbeispiel beendet werden, wodurch ein früherer Übergang
zur DMA-Übertragung
möglich
ist.
-
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 20A dargestellt, während 21A 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 20B dargestellt, während 21B 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 CPU 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 20C dargestellt, während 21C 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 20A, 20B und 20C 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 der elektronischen 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, Videokassettenrecoder,
Videokameras, Audioausrüstung,
Telefone, Projektoren, Personal Computer, elektronische Terminkalender
und spezielle Textverarbeitungssysteme.
-
Außerdem ist
zu beachten, dass die vorliegende Erfindung nicht auf das hierin
beschriebene Ausführungsbeispiel
beschränkt
ist und verschiedene Modifikationen innerhalb des Gültigkeitsbereichs 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 9, 10 und 11 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
ein CBW-Bereich (Befehlsspeicherbereich) und der zweite Speicherbereich
ein EP1-Bereich (Datenspeicherbereich) ist, aber die vorliegende
Erfindung ist nicht darauf beschränkt. Anders ausgedrückt können die
im ersten und im zweiten Speicherbereich gespeicherten Informationen
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 7A bis 19B 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.