[go: up one dir, main page]

DE60205809T2 - Datensteueranlage, elektronisches Gerät und Datenübertragungssteuerverfahren - Google Patents

Datensteueranlage, elektronisches Gerät und Datenübertragungssteuerverfahren Download PDF

Info

Publication number
DE60205809T2
DE60205809T2 DE60205809T DE60205809T DE60205809T2 DE 60205809 T2 DE60205809 T2 DE 60205809T2 DE 60205809 T DE60205809 T DE 60205809T DE 60205809 T DE60205809 T DE 60205809T DE 60205809 T2 DE60205809 T2 DE 60205809T2
Authority
DE
Germany
Prior art keywords
data
information
host
area
memory area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE60205809T
Other languages
English (en)
Other versions
DE60205809D1 (de
Inventor
Takuya Suwa-shi Ishida
Yoshiyuki Suwa-shi Kamihara
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Publication of DE60205809D1 publication Critical patent/DE60205809D1/de
Application granted granted Critical
Publication of DE60205809T2 publication Critical patent/DE60205809T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Landscapes

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

Description

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

Claims (9)

  1. Steuerungsgerät zur Datenübertragung für die Datenübertragung über einen Bus, aufweisend: einen Puffer mit einem ersten Speicherbereich (12) für eine erste Information und einem zweiten Speicherbereich (10) für eine zweite Information, wobei der erste und der zweite Speicherbereich (10) für einen Endpunkt bereitgestellt werden, wenn eine Mehrzahl Informationstypen, die die erste und die zweite Information enthalten, als Informationen bestimmt worden sind, die über diesen Endpunkt zu übertragen sind; und eine Puffer-Managementschaltung (50), die für das Schreiben einer Information ausgeführt ist, die von einem Host zu einem Endpunkt in den ersten Speicherbereich (12) für die erste Information während einer ersten Phase übertragen wird, in der die erste Information über den Bus übertragen wird, sowie für das Schreiben einer Information, die vom Host zum Endpunkt in den zweiten Speicherbereich (10) für die zweite Information während einer zweiten Phase übertragen wird, in der die zweite Information über den Bus übertragen wird; wobei die erste Information ein Befehlsblockpaket und die zweite Information ein Datenpaket ist, das gemäß einer Angabe des Befehlsblocks zu übertragen ist; dadurch gekennzeichnet, dass die Puffer-Managementschaltung (50) für das Schreiben eines Datenpakets zum zweiten Speicherbereich (10) ausgeführt ist, während eine Verarbeitungseinheit das Befehlsblockpaket auswertet.
  2. Gerät nach Anspruch 1, bei dem der erste Speicherbereich (12) ein Speicherbereich mit Direktzugriff ist; und der zweite Speicherbereich (10) ein Speicherbereich der Art ist, dass dort zuerst eingegebene Informationen von dort wieder zuerst ausgegeben werden.
  3. Gerät nach Anspruch 2, so eingerichtet, dass ein Befehlsblock, der die Übertragung der zweiten Information angibt, oder/und Längeninformation der zweiten Information, deren Übertragung durch einen Befehlsblock angegeben wird, in einen anderen Bereich als in eine Startadresse des ersten Speicherbereichs (12) für die erste Information geschrieben wird/werden.
  4. Gerät nach einem der Ansprüche 1 bis 3, so eingerichtet, dass ein Schreibbereich für vom Host zum Endpunkt übertragene Informationen vom ersten Speicherbereich (12) zum zweiten Speicherbereich (10) unter der Bedingung umgeschaltet wird, dass eine Quittierung bezüglich der Datenübertragung in der ersten Phase an den Host zurückgeschickt worden ist.
  5. Gerät nach Anspruch 4, so eingerichtet, dass eine Umschaltung vom ersten Speicherbereich (12) zum zweiten Speicherbereich (10) unter der Bedingung nicht durchgeführt wird, dass in einem Datenschaltbit zur Synchronisierung einer Transaktionssequenz mit dem Host ein Fehler auftritt, auch wenn zum Host eine Quittierung zurückgeschickt worden ist.
  6. Gerät nach einem der Ansprüche 1 bis 5, bei dem der erste Speicherbereich (12) ein Befehlsspeicherbereich und der zweite Speicherbereich (10) ein Datenspeicherbereich ist; die erste Phase eine Befehlsphase und die zweite Phase eine Datenphase ist; und die Puffer-Managementschaltung (50) so ausgeführt ist, dass sie einen Informationsschreibbereich vom Befehlsspeicherbereich für einen Befehlsblock zum Datenspeicherbereich umschaltet und ein vom Host zum Endpunkt übertragenes Datenpaket in den Datenspeicherbereich schreibt, wenn die Phase von der Befehlsphase, in der das Befehlsblockpaket über den Bus übertragen wird, zur Datenphase umschaltet, in der das Datenpaket über den Bus übertragen wird.
  7. Gerät nach einem der Ansprüche 1 bis 6, bei dem die Datenübertragung gemäß dem Universal Serial Bus (USB) Standard erfolgt.
  8. Elektronische Ausrüstung, aufweisend: das Gerät nach einem der Ansprüche 1 bis 7; und ein Gerät zum Ausführen der Ausgabeverarbeitung, Abrufverarbeitung oder Speicherungsverarbeitung mit Daten, die über das Gerät und den Bus übertragen worden sind.
  9. Verfahren zur Datenübertragung über einen Bus, aufweisend a) Bereitstellen eines ersten Speicherbereichs (12) für eine erste Information und eines zweiten Speicherbereichs (10) für eine zweite Information für einen Endpunkt in einem Puffer, wenn eine Mehrzahl Informationstypen, die die erste und die zweite Information enthalten, als Informationen bestimmt worden sind, die über den einen Endpunkt zu übertragen sind; und b) Schreiben von vom Host zu einem Endpunkt übertragenen Informationen in den ersten Speicherbereich (12) für die erste Information während einer ersten Phase, in der die erste Information über den Bus übertragen wird, und Schreiben von vom Host zu einem Endpunkt übertragenen Informationen in den zweiten Speicherbereich (10) für die zweite Information während einer zweiten Phase, in der die zweite Information über den Bus übertragen wird; wobei die erste Information ein Befehlsblockpaket und die zweite Information ein Datenpaket ist, das gemäß einer Angabe des Befehlsblocks zu übertragen ist: dadurch gekennzeichnet, dass Schritt b) das Schreiben eines Datenpakets in den zweiten Speicherbereich (10) aufweist, während das Befehlsblockpaket ausgewertet wird.
DE60205809T 2001-05-14 2002-05-14 Datensteueranlage, elektronisches Gerät und Datenübertragungssteuerverfahren Expired - Fee Related DE60205809T2 (de)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
DE60205809D1 DE60205809D1 (de) 2005-10-06
DE60205809T2 true DE60205809T2 (de) 2006-06-22

Family

ID=18989582

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60205809T Expired - Fee Related DE60205809T2 (de) 2001-05-14 2002-05-14 Datensteueranlage, elektronisches Gerät und Datenübertragungssteuerverfahren

Country Status (8)

Country Link
US (1) US7051124B2 (de)
EP (1) EP1260909B1 (de)
JP (1) JP3680762B2 (de)
KR (2) KR100474220B1 (de)
CN (1) CN100351816C (de)
AT (1) ATE303632T1 (de)
DE (1) DE60205809T2 (de)
TW (1) TWI256551B (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3680763B2 (ja) * 2001-05-14 2005-08-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP3955512B2 (ja) * 2002-08-27 2007-08-08 富士通株式会社 データ処理装置及びパケット判別方法
US6993619B2 (en) 2003-03-28 2006-01-31 International Business Machines Corporation Single request data transfer regardless of size and alignment
JP4063200B2 (ja) 2003-11-18 2008-03-19 セイコーエプソン株式会社 データ転送制御装置、及び電子機器
JP3979381B2 (ja) * 2003-11-18 2007-09-19 セイコーエプソン株式会社 データ転送制御装置、及び電子機器
JP4412191B2 (ja) 2005-02-04 2010-02-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US7640378B2 (en) * 2005-03-11 2009-12-29 Icron Technologies Corporation Method and apparatus for improving the performance of USB mass storage devices in the presence of long transmission delays
JP4601467B2 (ja) * 2005-03-16 2010-12-22 三洋電機株式会社 記録装置、記録システム及びデータ記録方法
JP4404023B2 (ja) * 2005-06-30 2010-01-27 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP4442523B2 (ja) * 2005-06-30 2010-03-31 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP4337783B2 (ja) 2005-06-30 2009-09-30 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP2007172574A (ja) 2005-11-25 2007-07-05 Seiko Epson Corp 集積回路装置及び電子機器
JP4391548B2 (ja) 2007-04-20 2009-12-24 株式会社メディアロジック デバイスドライバ
TW200945052A (en) * 2008-04-21 2009-11-01 Ralink Technology Corp Method for increasing USB transmission rate
KR101012208B1 (ko) * 2008-06-17 2011-02-08 주식회사 동부하이텍 Usb디바이스 내의 엔드 포인트 메모리 효율 증대법
US7818486B2 (en) * 2008-08-15 2010-10-19 Icron Technologies Corporation Method and apparatus for connecting USB devices to a remote computer
US20100306442A1 (en) * 2009-06-02 2010-12-02 International Business Machines Corporation Detecting lost and out of order posted write packets in a peripheral component interconnect (pci) express network
CN102023957B (zh) * 2009-09-18 2012-10-17 联芯科技有限公司 Usb接口模拟多串口传输数据的方法及usb复合设备
TWI450101B (zh) * 2010-09-21 2014-08-21 Insyde Software Corp 遠端資料傳輸方法及使用此方法的虛擬媒體系統
US8566934B2 (en) 2011-01-21 2013-10-22 Gigavation, Inc. Apparatus and method for enhancing security of data on a host computing device and a peripheral device
WO2013023105A1 (en) 2011-08-10 2013-02-14 Srivastava Gita Apparatus and method for enhancing security of data on a host computing device and a peripheral device
TW201331925A (zh) * 2012-01-19 2013-08-01 Sitronix Technology Corp 傳輸介面與傳輸方法及其驅動電路與顯示裝置及電子裝置
JP6065542B2 (ja) * 2012-11-26 2017-01-25 ブラザー工業株式会社 画像処理装置および通信プログラム
US9244694B2 (en) * 2012-12-27 2016-01-26 Intel Corporation Executing a command within a transport mechanism based on a get and set architecture
CN107544936A (zh) * 2017-09-18 2018-01-05 珠海亿智电子科技有限公司 一种基于usb烧写的数据传输方法
CN108062281B (zh) * 2017-11-07 2020-06-30 珠海研果科技有限公司 一种解决大容量存储设备与pc端进行数据拷贝出现断线的方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5129072A (en) * 1989-03-08 1992-07-07 Hewlett-Packard Company System for minimizing initiator processor interrupts by protocol controller in a computer bus system
IL100127A0 (en) * 1991-03-11 1992-08-18 Future Domain Corp Scsi controller
JP2868141B2 (ja) * 1992-03-16 1999-03-10 株式会社日立製作所 ディスクアレイ装置
US5708668A (en) * 1992-05-06 1998-01-13 International Business Machines Corporation Method and apparatus for operating an array of storage devices
US5504868A (en) * 1994-03-01 1996-04-02 Adaptec, Incorporated SCSI command descriptor block parsing state machine
US5568443A (en) * 1995-09-08 1996-10-22 Smithills Multimedia Systems, Inc. Combination dual-port random access memory and multiple first-in-first-out (FIFO) buffer memories
US6185641B1 (en) * 1997-05-01 2001-02-06 Standard Microsystems Corp. Dynamically allocating space in RAM shared between multiple USB endpoints and USB host
US5944797A (en) 1997-05-28 1999-08-31 International Business Machines Corporation Data mover hardware controlled processing in a commanding system and in a commanded system for controlling frame communications on a link
DE59811308D1 (de) 1997-07-21 2004-06-09 Infineon Technologies Ag Pufferspeicheranordnung
WO1999027436A1 (fr) * 1997-11-25 1999-06-03 Seiko Epson Corporation Imprimante, procede de commande et support d'enregistrement
US6145045A (en) 1998-01-07 2000-11-07 National Semiconductor Corporation System for sending and receiving data on a Universal Serial Bus (USB) using a memory shared among a number of end points
DE19900245B4 (de) * 1998-01-07 2005-09-15 National Semiconductor Corp.(N.D.Ges.D.Staates Delaware), Santa Clara Vorrichtung und Verfahren zum Senden von Daten von einem USB-Endpunkt an einen USB-Host
US6157975A (en) * 1998-01-07 2000-12-05 National Semiconductor Corporation Apparatus and method for providing an interface to a compound Universal Serial Bus controller
KR19990069859A (ko) * 1998-02-13 1999-09-06 구본준 유에스비의 피포
US6065087A (en) * 1998-05-21 2000-05-16 Hewlett-Packard Company Architecture for a high-performance network/bus multiplexer interconnecting a network and a bus that transport data using multiple protocols
US6192446B1 (en) * 1998-09-03 2001-02-20 Micron Technology, Inc. Memory device with command buffer
US6463498B1 (en) * 1998-10-30 2002-10-08 Agilent Technologies, Inc. Transmission of FCP response in the same loop tenancy as the FCP data with minimization of inter-sequence gap
CA2299550A1 (en) * 1999-03-31 2000-09-30 International Business Machines Corporation Dynamic i/o allocation in a partitioned computer system
JP3608441B2 (ja) 1999-07-15 2005-01-12 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US6715055B1 (en) * 2001-10-15 2004-03-30 Advanced Micro Devices, Inc. Apparatus and method for allocating buffer space
US6834319B1 (en) * 2002-03-21 2004-12-21 Advanced Micro Devices, Inc. Tunnel device for an input/output node of a computer system

Also Published As

Publication number Publication date
KR20040103831A (ko) 2004-12-09
EP1260909A3 (de) 2003-05-07
DE60205809D1 (de) 2005-10-06
KR20020087861A (ko) 2002-11-23
EP1260909A2 (de) 2002-11-27
KR100485294B1 (ko) 2005-04-27
CN1385794A (zh) 2002-12-18
ATE303632T1 (de) 2005-09-15
JP2002344537A (ja) 2002-11-29
US7051124B2 (en) 2006-05-23
US20020167851A1 (en) 2002-11-14
TWI256551B (en) 2006-06-11
KR100474220B1 (ko) 2005-03-08
EP1260909B1 (de) 2005-08-31
CN100351816C (zh) 2007-11-28
JP3680762B2 (ja) 2005-08-10

Similar Documents

Publication Publication Date Title
DE60205809T2 (de) Datensteueranlage, elektronisches Gerät und Datenübertragungssteuerverfahren
DE60205305T2 (de) Datensteueranlage, elektronisches Gerät und Verfahren zur Übertragungssteuerung
DE60205531T2 (de) Datentransfersteueranlage, elektronisches Gerät und Datentransfersteuerverfahren
DE60309391T2 (de) Datenübertragungssteuerungssystem, Programm und Datenübertragungssteuerungsverfahren
DE3751091T2 (de) Übertragungsprotokoll zwischen Prozessoren.
DE2854485C2 (de) Datenverarbeitungsanlage
DE19900325B4 (de) Vorrichtung und Verfahren zum Senden und Empfangen von Daten in eine und aus einer universellen seriellen Buseinrichtung
DE69836426T2 (de) Steuergerät für einen universellen seriellen Bus
DE3280451T2 (de) Verfahren zur Initialisierung eines Datenverarbeitungssystems.
DE19900245B4 (de) Vorrichtung und Verfahren zum Senden von Daten von einem USB-Endpunkt an einen USB-Host
DE19900345B4 (de) Schnittstellenmodul für einen Universellen Seriellen Bus (USB) zur Verbindung mit einem USB über eine Programmierschnittstelle für eine USB-Funktion und Vorrichtung zum Anschluß an einen universellen seriellen Bus
DE19900290B4 (de) Verfahren zum Betreiben einer universellen seriellen Buseinrichtung und universelle serielle Buseinrichtung
DE69229992T2 (de) Ein-/Ausgabe Zusatzprozessor für einen Drucker
DE60035882T2 (de) Protokoll einer zerteilten transaktion für ein bussystem
DE60132872T2 (de) Anordnung und Verfahren für eine Schnittstelleneinheit um Daten zwischen einem Hauptprozessor und einem digitalen Signalprozessor im asynchronen Übertragungsmodus zu übertragen
DE69521256T2 (de) Verfahren zur Verwaltung der Speicherzuweisung in einem Druckersystem
DE69932400T2 (de) Steuerungsvorrichtung für einen Portverwalter zur Verbindung von verschiedenen Funktionsmodulen
DE69217664T2 (de) Multimedia-signalprozessor-rechnersystem
DE19900345A9 (de) Vorrichtung und Verfahren für die Bereitstellung einer Schnittstelle für eine Verbundsteuereinheit eines Universellen Seriellen Buses
DE4226052C2 (de) Drucksteuerungsverfahren und -gerät, die eine Vielzahl von Prozessoren verwenden
US6693640B2 (en) Image processing apparatus and image processing system using the apparatus
DE3838240A1 (de) Datenprozessor
DE19900331A9 (de) Vorrichtung und Verfahren zur Implementierung eines USB-Endpunktkanals mit doppelter Pufferunterstützung
DE19900331A1 (de) Vorrichtung und Verfahren zur Implementierung eines USB-Endpunktkanals mit doppelter Pufferunterstützung
DE19900369A1 (de) Vorrichtung und Verfahren zur Ausführung einer Steuerübertragung auf einem Universal Serial Bus

Legal Events

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