DE60205305T2 - Datensteueranlage, elektronisches Gerät und Verfahren zur Übertragungssteuerung - Google Patents

Datensteueranlage, elektronisches Gerät und Verfahren zur Übertragungssteuerung Download PDF

Info

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

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)
  • Selective Calling Equipment (AREA)
  • Small-Scale Networks (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 Busschnittstelle in Betracht gezogen wird, ist dieser USB-Standard mit dem Problem behaftet, dass seine Übertragungsgeschwindigkeit geringer ist.
  • In diesem Fall konzentriert sich die Entscheidung auf die Verwendung des Standards USB 2.0, der eine Datenübertragungsgeschwindigkeit von 480 Mbps (im HS-Modus) implementieren kann, die weit schneller ist als die des vorigen Standards USB 1.1, während die Abwärtskompatibilität mit USB 1.1 erhalten bleibt.
  • Mit USB 2.0 erfolgt die Datenübertragung mit 480 Mbps im Hochgeschwindigkeits-(HS – high speed)Modus. Deshalb hat er den Vorteil, dass seine Verwendung als Schnittstelle für ein Speichergerät wie eine Festplatte 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.
  • Das Dokument WO 99/63448 offenbart ein Gerät und ein Verfahren zur Datenübertragung über einen Bus mit einem ersten Puffer, der einen Datenspeicherbereich zum Speichern von Daten hat, die über einen ersten Bus empfangen und über einen zweiten Bus während der Datenübertragung in einer ersten Richtung gesendet werden, und einem zweiten Puffer, der einen Datenspeicherbereich zum Speichern von Daten hat, die über den zweiten Bus empfangen und über den ersten Bus während der Datenübertragung in einer zweiten Richtung gesendet werden, sowie einer Puffer-Management-Schaltung zum Verwalten des Schreibens der Daten in die Datenspeicherbereiche und des Lesens der Daten aus den Datenspeicherbereichen. Bei diesem Stand der Technik ist der erste Bus ein USB-Bus und der zweite Bus ist ein DMA-Bus, der die UCB-Steuerung mit einer DMA-Steuerung verbindet.
  • KURZE ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist eine Aufgabe der vorliegenden Erfindung, eine Vereinfachung der Schaltungskonfiguration und der Schaltungssteuerung zu ermöglichen, so dass die Verarbeitungslast einer Verarbeitungseinheit, die das Steuerungsgerät für die Datenübertragung steuert, verringert werden kann.
  • Diese Aufgabe wird durch ein Steuerungsgerät für die Datenübertragung gemäß Anspruch 1 und ein Verfahren gemäß Anspruch 11 gelöst. Bevorzugte Ausführungsformen der Erfindung sind Gegenstand der Unteransprüche.
  • Mit der vorliegenden Erfindung ist es möglich, das Ende einer Datenphase (Datentransport: Übertragung sämtlicher Daten) während der Datenübertragung in einer ersten Richtung unter der Bedingung, dass die Datenübertragung (wie eine DMA-Übertragung) über den zweiten Bus beendet ist, zu bestimmen. Während der Datenübertragung in der zweiten Richtung dagegen wird das Ende der Datenphase unter der Bedingung bestimmt, dass der Datenempfang über den zweiten Bus beendet ist und der Datenspeicherbereich anschließend leer geworden ist.
  • Dies ermöglicht die einfache Bestimmung des Endes der Datenphase während der Datenübertragung sowohl in der ersten als auch in der zweiten Richtung, indem einfach die Übertragungsdatengröße (Datenlänge) an der Seite des zweiten Busses geprüft wird. Dadurch können die Schaltungskonfiguration und die Schaltungssteuerung vereinfacht werden, so dass die Verarbeitungslast einer Verarbeitungseinheit, die das Steuerungsgerät für die Datenübertragung steuert, verringert werden kann.
  • Das Steuerungsgerät für die Datenübertragung kann ferner einen Zähler aufweisen, der die Größe der Daten, die über den zweiten Bus gesendet oder empfangen, werden, zählt.
  • Die Bereitstellung eines solchen Zählers ermöglicht die Prüfung der Größe der Daten, die an der Seite des zweiten Busses übertragen worden sind, auf einfache Weise. Außerdem wird die Vereinfachung der Steuerung des Zählers ermöglicht, da es nicht erforderlich ist, einen Zähler an der Seite des ersten Busses bereitzustellen.
  • Im Steuerungsgerät für die Datenübertragung kann der Status des Datenempfangs über den zweiten Bus erfasst werden und der so erfasste Status kann über den ersten Bus während einer Statusphase nach dem Ende der Datenphase übertragen werden.
  • Dadurch kann eine Periode nach dem Ende des Datenempfangs über den zweiten Bus und bis zum Ende der Datenphase zur statusrelevanten Verarbeitung wirksam genutzt werden, wodurch die effektive Übertragungsgeschwindigkeit erhöht werden kann.
  • Beim Steuerungsgerät für die Datenübertragung kann ein kurzes Paket im Datenspeicherbereich automatisch über den ersten Bus gesendet werden, wenn der Datenempfang über den zweiten Bus endet und außerdem die Größe der im Datenspeicherbereich des Puffers verbleibenden Daten kleiner ist als die maximale Paketgröße.
  • Dadurch wird die automatische Übertragung eines kurzen Pakets im Datenspeicherbereich durch Hardware ohne Beteiligung der Verarbeitungseinheit möglich. Dies ermöglicht die Verringerung der Bearbeitungslast auf der Verarbeitungseinheit, wodurch eine Erhöhung der effektiven Übertragungsgeschwindigkeit möglich wird.
  • Das Steuerungsgerät für die Datenübertragung kann ferner eine Einheit enthalten, die die automatische Übertragung eines kurzen Pakets aus dem Datenspeicherbereich entweder auf aktiviert oder deaktiviert einstellt.
  • Damit kann die Vielseitigkeit des Steuerungsgeräts für die Datenübertragung erhöht werden, indem sowohl ein Gerät unterstützt wird, dem erlaubt ist, ein kurzes Paket automatisch zu übertragen, als auch ein Gerät, dem nicht erlaubt ist, ein kurzes Paket automatisch zu übertagen.
  • Beim Steuerungsgerät für die Datenübertragung kann die automatische Übertragung so eingestellt werden, dass sie deaktiviert wird, wenn Daten, die über den zweiten Bus empfangen worden sind, Informationen geliefert haben und über den ersten Bus übertragen werden.
  • Damit ist es auf wirksame Weise möglich, eine Situation zu vermeiden, in der ein mit dem ersten Bus verbundener Host oder dgl. das Ende der Datenphase fälschlich erkennt, wenn die Datenphase noch nicht beendet ist.
  • Beim Steuerungsgerät für die Datenübertragung kann eine Verarbeitungseinheit über die Anwesenheit eines kurzen Pakets im Datenspeicherbereich informiert werden, wenn der Datenempfang über den zweiten Bus endet und außerdem die Größe der im Datenspeicherbereich des Puffers verbliebenen Daten kleiner ist als die maximale Paketgröße.
  • Dies ermöglicht der Verarbeitungseinheit die der Situation angemessene Verarbeitung auszuführen, wodurch die Implementierung einer geeigneten Datenübertragungssteuerung selbst z. B. bei einem Gerät ermöglicht wird, dem die automatische Übertragung eines kurzen Pakets nicht gestattet ist.
  • Beim Steuerungsgerät für die Datenübertragung können die Informationen, die zuerst in den Datenspeicher eingegeben worden sind, zuerst aus dem Datenspeicherbereich ausgegeben werden.
  • Damit ist es möglich, einen effizienten Empfang und ein effizientes Senden von Daten während der Speicherdirektzugriff-(direct memory access – DMA)Übertragung oder dgl. zu implementieren, indem der Datenspeicherbereich als ein First-in-first-out-Speicherbereich eingestellt 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 Ausführungsform auch auf andere Standards als den USB-Standard (oder künftige Standards, die auf dem USB-Konzept basieren) angewendet werden kann.
  • Elektronische Ausrüstung gemäß 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 der 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.
  • 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;
  • 6 zeigt die Konfiguration eines Steuerungsgeräts für die Datenübertragung gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 7 zeigt einen detaillierten Anschlussplan des Steuerungsgeräts für die Datenübertragung gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 8A, 8B, 8C und 8D sind Impulsdiagramme, die für die OUT- und PING-Transaktionen beispielhaft sind;
  • 9A, 9B und 9C sind Impulsdiagramme, die für die IN-Transaktionen beispielhaft sind;
  • 10 ist ein Impulsdiagramm, das für die DMA-Übertragung während der Übertragung an ein Festplattenlaufwerk (HDD) beispielhaft ist;
  • 11 ist ein Impulsdiagramm, das für die DMA-Übertragung während des Empfangs von einem HDD beispielhaft ist;
  • 12 ist ein Impulsdiagramm, das für die Operation einer Ausführungsform der vorliegenden Erfindung während einer OUT-Transaktion (Datenübertragung in einer ersten Richtung) beispielhaft ist;
  • 13 ist ein Impulsdiagramm, das für die Operation einer Ausführungsform der vorliegenden Erfindung während einer IN-Transaktion (Datenübertragung in einer zweiten Richtung) beispielhaft ist;
  • 14 ist ein Impulsdiagramm, das für ein Verfahren der automatischen Übertragung eines kurzen Pakets beispielhaft ist;
  • 15 zeigt einen anderen detaillierten Anschlussplan des Steuerungsgeräts für die Datenübertragung gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 16 ist ein Impulsdiagramm, das für ein Verfahren zur Information der Firmware über das Vorhandensein eines kurzen Pakets beispielhaft ist;
  • 17A und 17B sind Flussdiagramme der Firmware-Verarbeitung anhand eines Vergleichsbeispiels und einer Ausführungsform der vorliegenden Erfindung;
  • 18 ist ein Flussdiagramm der Firmware-Verarbeitung während des Verfahrens zur Information der Firmware über das Vorhandensein eines kurzen Pakets;
  • 19A, 19B und 19C sind interne Blockdiagramme verschiedener Teile der elektronischen Ausrüstung; und
  • 20A, 20B und 20C 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.
  • Diese Ausführungsform wird nachstehend unter Bezugnahme auf die beiliegenden Figuren beschrieben.
  • 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 für 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 Auflistungsverarbeitung informiert werden.
  • Es ist zu beachten, dass USB Steuerungsübertragung, isochrone Übertragung, Unterbrechungsübertragung und Massenübertragung als Datenübertragungstypen bereitstellt.
  • In diesem Fall ist die Steuerungsübertragung ein Übertragungsmodus für die Steuerung, der über einen Steuerungsendpunkt zwischen dem Host und dem Gerät (Ziel) ausgeführt wird. Diese Steuerungsübertragung sendet Informationen wie Konfigurationsinformationen zur Initialisierung des Geräts.
  • Die isochrone Übertragung ist ein Übertragungsmodus, der für die Datenübertragung bereitgestellt wird, wenn es wichtiger ist, die Bandbreite als die Korrektheit sicherzustellen, wie bei Bild- oder Audiodaten. Da diese isochrone Übertragung sicherstellt, dass eine feste Datenmenge in einer festen Periode übertragen werden kann, stellt sie einen wirksamen Übertragungsmodus für Anwendungen dar, bei denen Echtzeit-Datenfunktionen wichtig sind.
  • Die Unterbrechungsübertragung ist ein Übertragungsmodus, der zur Übertragung einer kleinen Datenmenge bei vergleichsweise niedriger Übertragungsgeschwindigkeit vorgesehen ist.
  • Die Massenübertragung ist ein Übertragungsmodus, der zur Übertragung einer großen Datenmenge vorgesehen ist, die in unregelmäßigen Perioden vorliegt. Diese Massenübertragung ermöglicht die Datenübertragung in unbelegten Zeiten und nicht in den Zeiten, die von isochronen Übertragungen oder Unterbrechungsübertragungen genutzt werden, und erlaubt außerdem die Prüfung der Daten auf Korrektheit. Sie stellt deshalb einen wirksamen Übertragungsmodus zur Datenübertragung dar, wenn Echtzeitfunktionen nicht von Bedeutung sind, aber die Datenzuverlässigkeit sichergestellt werden soll.
  • 1.2 Transaktionskonfiguration
  • Eine Transaktion im USB-Massenübertragungsmodus setzt sich grundsätzlich aus drei Paketen zusammen, wie in 1B dargestellt ist: einem Token-Paket, einem Datenpaket und einem Handshake-(Quittungs-)Paket. Es ist zu beachten, dass bei der isochronen Übertragung kein Handshake-Paket erforderlich ist.
  • In diesem Fall ist ein Token-Paket ein Paket, das z. B. in solchen Situationen verwendet wird, in denen der Host Lesen oder Schreiben bezüglich eines Endpunktes des Geräts (Ziel) anfordert. Dieses Token-Paket hat Felder wie PID (eine Paket-ID wie OUT, IN, SOF oder SETUP), ADDR (Geräteadresse), ENDP (Nummer des Endpunktes) und CRC (zyklische Redundanzkontrolle), um einige Beispiele zu nennen.
  • Ein Datenpaket ist ein Paket zum Senden der tatsächlichen Daten und hat die Felder PID (DATA0, DATA1), DATA (tatsächliche Daten) und CRC.
  • Ein Handshake-Paket ist ein Paket, das empfängerseitig verwendet wird, um die Senderseite zu informieren, ob der Datenempfang erfolgreich war oder nicht, und hat ein PID-(ACK, NAK oder STALL)Feld.
  • Bei einer OUT-Transaktion (Transaktion, mit der der Host Informationen an das Gerät ausgibt) sendet der Host zunächst ein OUT-Token-Paket an das Gerät wie in 1C gezeigt. Danach sendet der Host ein OUT-Datenpaket an das Gerät. Wenn das Gerät das OUT-Datenpaket erfolgreich empfängt, sendet es ein ACK-Handshake-Paket an den Host.
  • Bei einer IN-Transaktion (Transaktion, mit der der Host Informationen vom Gerät eingibt) dagegen sendet der Host zunächst ein IN-Token-Paket an das Gerät wie in 1D gezeigt. Bei Empfang des IN-Token-Pakets sendet das Gerät ein IN-Datenpaket an den Host. Wenn der Host das IN-Datenpaket erfolgreich empfängt, sendet er ein ACK-Handshake-Paket an das Gerät.
  • Es ist zu beachten, dass in den 1C und 1D "D ← H" bedeutet, dass Informationen vom Host zum Gerät übertragen werden und "D → 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-Kennzeichen 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-Kennzeichen 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 und dann die CBW an den Endpunkt EP1 des Geräts. Diese CBW weist einen Lesebefehl auf. Wenn ein Handshake vom Gerät zum Host zurückkommt, endet die Befehlsphase.
  • Wenn die Befehlsphase endet, beginnt die Datenphase. In dieser Datenphase überträgt der Host zuerst ein Token-Paket, das den Endpunkt EP2 angibt, an das Gerät. Wenn dies geschieht, überträgt das Gerät die am Endpunkt EP2 befindlichen IN-Daten (siehe A4 in 2B) an den Host und eine Transaktion endet. Die Transaktionen werden auf diese Weise wiederholt und die Datenphase endet, wenn die Daten bis zu der in dCBWDataTransferLength der CBW angegebenen Datenlänge übertragen worden sind.
  • Wenn die Datenphase endet, beginnt die Statusphase. Die Verarbeitung in dieser Statusphase ist ähnlich der Verarbeitung beim Schreiben von Daten, die unter Bezugnahme auf 5A beschrieben worden ist.
  • 2. Merkmale dieser Ausführungsform
  • 2.1 Konfiguration
  • Die Konfiguration des Steuerungsgeräts zur Datenübertragung gemäß einer Ausführungsform der vorliegenden Erfindung ist in 6 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 6 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übertra gung 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 CRC's erzeugt und decodiert.
  • Die Wartebetriebsschaltung 34 ist eine Schaltung zur Folgesteuerung während der Wartezeit und Wiederaufnahme der Verarbeitung.
  • Die Transaktions-Managementschaltung 36 ist eine Schaltung zur Verwaltung von Transaktionen, die aus Token-, Daten-, Handshake- und anderen Paketen bestehen. Im Einzelnen bestätigt diese Schaltung bei Empfang eines Token-Pakets, ob sie die eigene Adresse des Geräts hat oder nicht, und wenn sie diese Adresse hat, führt sie die Verarbeitung zur Übertragung von Paketen zum oder vom Host, dann die Verarbeitung zur Übertragung eines Handshake-Pakets aus.
  • Die Endpunkt-Managementschaltung 40 ist eine Schaltung zum Verwalten der Endpunkte, die Eingänge zu den verschiedenen Speicherbereichen des Puffers bilden, und sie weist Komponenten wie Register (einen Registersatz) zum Speichern von Attributinformationen für diese Endpunkte auf.
  • Die Puffer-Managementschaltung 50 ist eine Schaltung zum Verwalten des Puffers 60 und besteht aus Komponenten wie RAM's. 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 (Paketspeichermittel) ist zur vorübergehenden Speicherung von Daten (Paketen) zur Übertragung über den USB ausgelegt und hat verschiedene Funktionen wie den Ausgleich eventueller Geschwindigkeitsdifferenzen zwischen der Datenübertragungsgeschwindigkeit des USB (erster Bus) und der Datenübertragungsgeschwindigkeit des EBUS (zweiter Bus oder DMA-Bus). Es ist zu beachten, dass der EBUS ein externer Bus ist, der Geräte wie Festplattenlaufwerke, CD-Laufwerke und Scanner miteinander verbindet.
  • Bei dieser Ausführungsform der vorliegenden Erfindung hat der Puffer 60 einen Datenspeicherbereich 62 (FIFO: für FIFO eingestellter Speicherbereich) zum Speichern von Daten (OUT-Daten), die über den USB (erster Bus) zu empfangen und über den EBUS (zweiter Bus) während der Datenübertragung in einer ersten Richtung zu senden sind (OUT-Transaktion) sowie von Daten (IN-Daten), die über den EBUS zu empfangen und über den USB während der Datenübertragung in einer zweiten Richtung zu senden sind (IN-Transaktion).
  • Das Steuerungsgerät zur Datenübertragung dieser Ausführungsform bestimmt außerdem, dass eine Datenphase (Datentransport: die Übertragung sämtlicher Daten) während der Datenübertragung in der ersten Richtung beendet ist, vorausgesetzt, die Datenübertragung über den EBUS ist beendet. In ähnlicher Weise bestimmt es, dass die Datenphase während der Datenübertragung in der zweiten Richtung beendet ist, vorausgesetzt, der Datenempfang über den EBUS ist beendet und der Datenspeicherbereich 62 des Puffers 60 ist leer geworden (eine Quittung bezüglich des letzten Datenpakets ist über den USB zurückgesendet worden).
  • Wenn der Datenempfang über den EBUS endet und die verbliebene Datengröße (Datenlänge, Anzahl der Übertragungen) im Datenspeicherbereich 62 (FIFO: für FIFO eingestellter Bereich) des Puffers 60 kleiner ist als die maximale Paketgröße, überträgt das Steuerungsgerät zur Datenübertragung dieser Ausführungsform automatisch ein kurzes Paket (Paket mit einer kleineren Größe als die maximale Paketgröße) des Datenspeicherbereichs 62 über den USB, und die CPU (Firmware oder Verarbeitungseinheit) wird durch ein Unterbrechungssignal oder dgl. vom Vorhandensein des kurzen Pakets informiert.
  • Bei dieser Ausführungsform sind ein Befehlsspeicherbereich (erster Speicherbereich) für Befehlsblöcke und ein Datenspeicherbereich (zweiter Speicherbereich) für Daten im Puffer 60 vorgesehen, wenn ein Befehlsblock (erste Informationen) und Daten (zweite Informationen: OUT-Daten) als Informationen zugewiesen worden sind (siehe A1 und A2 in 2B), die über einen Endpunkt (EP1 in 2B) zu übertragen sind.
  • Während der Befehlsphase (erste Phase), in der ein Befehlsblock über den USB übertragen wird, übernimmt die Puffer-Managementschaltung 50 die vom Host an den Endpunkt (EP1) zu übertragenden Informationen und schreibt sie nach einem Befehlsspeicherbereich für den Befehlsblock. Während der Datenphase (zweite Phase), in der Daten (OUT-Daten) über den USB übertragen werden, übernimmt sie die vom Host an den Endpunkt zu übertragenden Informationen und schreibt sie nach dem Datenspeicherbereich für die Daten. Mit anderen Worten, sie wechselt den Schreibbereich für Informationen (Befehlsblock oder Daten), vorausgesetzt, dass die Phase gewechselt worden ist.
  • Alternativ könnte diese Ausführungsform der vorliegenden Erfindung auf eine solche Weise konfiguriert werden, dass ein Datenspeicherbereich (dritter Speicherbereich) für Daten und ein Statusspeicherbereich (vierter Speicherbereich) für einen Statusblock im Puffer vorgesehen sind, wenn Daten (dritte Informationen: IN-Daten) und ein Statusblock (vierte Informationen) als Informationen zugewiesen worden sind (A3 und A4 in 2B), die über einen Endpunkt (EP2 in 2B) zu übertragen sind.
  • Die Puffer-Managementschaltung 50 übernimmt die vom Endpunkt (EP2) an den Host übertragenen Daten und liest sie während einer Datenphase (dritte Phase), in der Daten (IN-Daten) über den USB übertragen werden, in den Datenspeicherbereich für Daten ein, übernimmt die vom Endpunkt an den Host übertragenen Informationen und liest sie während einer Statusphase (vierte Phase), in der ein Statusblock über den USB übertragen wird, in einen Statusspeicherbereich für Status-Zustände ein. Mit anderen Worten, der Lesebereich für Informationen (Daten oder Statusblock) wird gewechselt, vorausgesetzt, dass die Phase gewechselt worden ist.
  • Diese Konfiguration ermöglicht die Verarbeitung von OUT-Daten in einem Datenspeicherbereich, während Befehlsblöcke in einem Befehlsspeicherbereich verarbeitet werden, selbst dann, wenn einem Endpunkt eine Mehrzahl Informationstypen (Befehlsblock, OUT-Daten, IN-Daten, Statusblock) zugewiesen worden ist. Wahlweise ermöglicht sie die Verarbeitung eines Statusblocks im Statusspeicherbereich, während IN-Daten im Datenspeicherbereich verarbeitet werden. Es wird deshalb möglich, die Verarbeitungsgeschwindigkeit des Steuerungsgeräts zur Datenübertragung zu erhöhen und somit die Last auf der Firmware (Verarbeitungseinheit) zu verringern, wodurch die effektive Busübertragungsgeschwindigkeit erhöht werden kann.
  • 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 und Datenlänge), die vom EBUS (zweiter Bus) zu senden oder zu empfangen sind.
  • 2.2 Detaillierter Anschlussplan
  • 7 zeigt einen detaillierten Anschlussplan zwischen der SIE 30, der Endpunkt-Managementschaltung 40, der Puffer-Managementschaltung 50, dem Puffer 60, der Massenübertragungs-Managementschaltung 70 und der DMAC 80.
  • In 7 bedeutet SIEReadData Daten (IN-Daten), die aus dem Puffer 60 (Datenspeicherbereich 62) auszulesen und an den Host über den USB (erster Bus) zu übertragen sind. SIEWriteData sind Daten (OUT-Daten), die vom Host durch den USB zu übertragen und nach dem Puffer 60 zu schreiben sind. DMAReadData sind Daten, die aus dem Puffer 60 auszulesen und (durch DMA-Übertragung) an ein Gerät wie ein Festplattenlaufwerk HDD durch den EBUS (zweiter Bus) zu übertragen sind. DMAWriteData sind Daten, die vom HDD oder dgl. über den EBUS zu übertragen und nach dem Puffer 60 zu schreiben sind.
  • Ein Signal SIEReadReq, das von der SIE 30 ausgegeben wird, ist ein Signal, das das Lesen von SIEReadData anfordert, und SIEReadAck, das von der Endpunkt-Managementschaltung 40 ausgegeben wird, ist ein Quittierungssignal bezüglich SIEReadReq. Auf ähnliche Weise ist SIEWriteReq ein Signal, das das Schreiben von SIEWriteData anfordert, und SIEWriteAck ist ein Quittierungssignal bezüglich SIEWriteReq.
  • Das Signal DMAReadReq, das von der DMAC 80 ausgegeben wird, ist ein Signal, das das Lesen von DMAReadData anfordert, und DMAReadAck, das von der Endpunkt-Managementschaltung 40 ausgegeben wird, ist ein Quittierungssignal bezüglich DMAReadReq. Auf ähnliche Weise ist DMAWriteReq ein Signal, das das Schreiben von DMAWriteData anfordert, und DMAWriteAck ist ein Quittierungssignal bezüglich DMAWriteReq.
  • Das Signal Full meldet, ob der Datenspeicherbereich 62 des Puffers 60 voll ist oder nicht, und das Signal Empty meldet, ob der Datenspeicherbereich 62 leer ist oder nicht. In diesem Fall basiert die Bestimmung, ob der Datenspeicherbereich 62 voll ist oder nicht oder ob der Datenspeicherbereich 62 leer ist oder nicht, auf einem Zählwert von einem Zähler 41 für die verbliebene Datengröße, der die Größe der im Datenspeicherbereich 62 verbliebenen Daten (Restdatenbereich) zählt.
  • Es ist zu beachten, dass der Datenspeicherbereich 62 dieser Ausführungsform ein Bereich ist, bei dem zuerst eingegebene Daten zuerst daraus ausgegeben werden (FIFO: für FIFO eingestellter Bereich). In diesem Fall kann der Datenspeicherbereich 62 so eingestellt werden, dass er ein First-in, First-out-Bereich ist, indem er aus seriell verbundenen Registern oder einem Speicher konfiguriert wird, oder er könnte durch sorgfältige Adresssteuerung des RAM als First-in, First-out-Bereich eingestellt werden.
  • Ein Signal HaveMPS, das von der Endpunkt-Managementschaltung 40 ausgegeben wird, meldet, ob die Größe (Datenlänge) der im Datenspeicherbereich 62 des Puffers 60 verbliebenden Daten der maximalen Paketgröße entspricht oder nicht. Wird als Beispiel angenommen, dass die maximale Paketgröße 512 Byte beträgt, ist HaveMPS aktiv (High), wenn die verbliebene Datengröße 512 Byte (oder mehr) beträgt, und HaveMPS wird inaktiv (Low), wenn die verbliebene Datengröße zwischen 0 und 511 Byte liegt. In diesem Fall wird die verbliebene Datengröße vom Zähler 41 für die verbliebene Datengröße erhalten.
  • Ein Signal HDDATA bedeutet Daten, die durch DMA über den EBUS (zweiter Bus) zu übertragen sind, xDMACK ist ein Quittierungssignal bezüglich dieser DMA-Übertragung und xDMARQ ist ein Anforderungssignal für eine DMA-Übertragung. Es ist zu beachten, dass xHIOR ein Leseimpulssignal und xHIOW ein Schreibimpulssignal ist.
  • Die CPU (Firmware) verwendet ein Signal DMA_Start, um den Beginn einer DMA-Übertragung zu melden. Ein Signal DMA_Running meldet, dass die DMA-Übertragung über den EBUS im Gange ist; es geht beim Beginn der der DMA-Übertragung durch den EBUS nach aktiv (High) und am Ende der DMA-Übertragung nach inaktiv (Low). Mit anderen Worten, DMA_Running ist während der Periode der Datenübertragung (Datenphase) durch den EBUS aktiv.
  • Ein Signal AutoEnShort dient zur Einstellung der automatischen Übertragung eines kurzen Pakets, das im Datenspeicherbereich 62 des Puffers 60 vorhanden ist, auf entweder aktiviert oder deaktiviert. Ein Signal EnShortPkt meldet die Übertragung eines kurzen Pakets an die SIE 30.
  • Wenn der Datenempfang über den EBUS endet und außerdem die Größe der im Datenspeicherbereich 62 verbliebenen Daten kleiner ist als die maximale Paketgröße, wenn AutoEnShort z. B. auf High gesetzt ist, wird EnShortPkt aktiv. Dies bewirkt die automatische Übertragung des kurzen Pakets (ein Paket unter der maximalen Paketgröße), das im Datenspeicherbereich 62 vorhanden ist, über den USB durch die SIE 30.
  • Im Einzelnen bedeutet dies, dass dann, wenn HaveMPS inaktiv wird (um eine kleinere als die maximale Paketgröße zu melden), nachdem DMA_Running inaktiv wird (Ende des Datenempfangs), EnShortPkt aktiv wird und das kurze Paket im Datenspeicherbereich 62 automatisch von der SIE 30 übertragen wird.
  • Ein Signal INTranACK ist eine Quittierung der IN-Transaktion; es geht nach aktiv, wenn der Host entsprechend antwortet. Ein Signal BulkDMACmp meldet während der Massenübertragung, dass die Datenphase (Übertragung sämtlicher Daten) beendet worden ist.
  • Wenn der Datenspeicherbereich 62 leer wird und eine Quittierung der Übertragung des letzten Datenpakets (IN-Daten) vom Host zurückgeschickt wird, nachdem der Datenempfang über den EBUS beendet ist, geht INTranACK nach aktiv. Wenn dies geschieht, wird BulkDMACmp aktiv und die Firmware (CPU) wird informiert, dass die Datenphase (Übertragung sämtlicher Daten) beendet ist. Dies ermöglicht es der Firmware, mit der Verarbeitung der anschließenden Statusphase fortzufahren.
  • 2.3 Funktionsweise
  • Nunmehr wird die Funktionsweise dieser Ausführungsform beschrieben.
  • Ein in 8A dargestelltes Impulsdiagramm zeigt einen Fall, bei dem die Größe des verbliebenen Bereichs (leerer Bereich) des Datenspeicherbereichs 62 (FIFO) des Puffers 60 größer oder gleich ist der Größe der Daten (Datenlänge), die während einer OUT-Transaktion (Datenübertragung in einer ersten Richtung zur Übertragung von Daten vom Host zum Gerät) vom Host übertragen werden. Da in diesem Fall sämtliche Daten vom Host in den Datenspeicherbereich 62 geschrieben werden können, kann ein ACK zum Host zurückgeschickt werden, wie bei C1 in 8A dargestellt ist.
  • Es ist zu beachten, dass dann, wenn der Datenspeicherbereich 62 eine Ein-Puffer-Struktur anstelle einer Doppelpufferstruktur hat, das nächste Paket vom Host im HS-Modus erst empfangen werden kann, wenn der Datenspeicherbereich 62 geleert worden ist. In einem solchen Fall wird deshalb NYET anstelle von ACK an den Host zurückgeschickt. Selbst bei einer Doppelpufferstruktur könnte es vorkommen, dass die nächsten Daten nicht empfangen werden können, weil beide Puffer belegt sind, wobei in diesem Fall auf ähnliche Weise NYET anstelle von ACK an den Host zurückgeschickt wird.
  • Ein in 8B dargestelltes Impulsdiagramm zeigt einen Fall, bei dem die Datengröße während einer OUT-Transaktion kleiner ist als die Größe des verbliebenen Bereichs des Datenspeicherbereichs 62.
  • In diesem Fall ist es nicht möglich, alle Daten vom Host in den Datenspeicherbereich 62 zu schreiben, so dass NAK zum Host zurückgeschickt wird, wie bei C2 in 8B dargestellt ist. Um die Daten zu löschen, die durch die Datenübertragung entsprechend dem aktuellen OUT-Token empfangen worden sind, wird ein Signal Rewind aktiv wie bei C3 dargestellt.
  • Es ist zu beachten, dass dann, wenn die SIE 30 SIEWriteReq bei C4 und C5 in den 8A und 8B aktiv macht, die Puffer-Managementschaltung 50 die Schreibadresse für SIEWriteData gemäß der Anweisung von der Endpunkt-Managementschaltung 40 erzeugt und sie zum Puffer 60 ausgibt. Dies bewirkt, dass SIEWriteData (z. B. aus vier Bytes) in den Datenspeicherbereich 62 des Puffers 60 geschrieben und SIEWriteAck zur SIE 30 zurückgeschickt wird. Die Daten vom Host (z. B. 512 Datenbytes) werden sequentiell in den Datenspeicherbereich 62 geschrieben, indem diese Schreibverarbeitung mit jeweils vier Bytes wiederholt wird.
  • Die Impulsdiagramme in den 8C und 8D zeigen die PING-Transaktion (PING-Protokoll), mit der der Host das Gerät dahingehend abfragt, ob der Datenspeicherbereich 62 leer ist oder nicht. Diese PING-Transaktion wird im USB HS-Modus unterstützt. Dieses Protokoll wird verwendet, wenn NYET vom Gerät bezüglich eines OUT-Token oder OUT-Daten vom Host empfangen worden ist.
  • Wenn während dieser PING-Transaktion die Größe des im Datenspeicherbereich 62 verbliebenen Bereichs (die leere Größe) größer oder gleich der Datengröße ist, wird ACK zum Host zurückgeschickt, wie bei C6 in 8C dargestellt ist. Ist dagegen die Größe des im Datenspeicherbereich 62 verbliebenen Bereichs kleiner als die Datengröße, wird NAK zum Host zurückgeschickt wie bei C7 in 8D gezeigt.
  • Ein in 9A dargestelltes Impulsdiagramm zeigt den Fall, in dem die Größe der Daten (gültige Daten), die im Datenspeicherbereich 62 verblieben sind, größer oder gleich ist der maximalen Paketgröße während einer IN-Transaktion (Datenübertragung in einer zweiten Richtung zur Übertragung von Daten vom Gerät zum Host). In diesem Fall wird ACK vom Host zum Gerät zurückgeschickt, wenn Daten mit maximaler Paketgröße zum Host übertragen worden sind, wie bei D1 in 9A gezeigt ist.
  • Es ist zu beachten, dass dann, wenn die SIE 30 SIEReadReq bei D2 in 9A aktiv macht, die Puffer-Managementschaltung 50 die Leseadresse für SIEReadData gemäß der Anweisung von der Endpunkt-Managementschaltung 40 erzeugt und sie zum Puffer 60 ausgibt. Dies bewirkt, dass SIEReadData (z. B. aus vier Bytes) in den Datenspeicherbereich 62 des Puffers 60 geschrieben und SIEReadAck zur SIE 30 zurückgeschickt wird. Die zum Host zu übertragenden Daten werden sequentiell in den Datenspeicherbereich 62 eingelesen, indem diese Leseverarbeitung mit jeweils vier Bytes wiederholt wird.
  • Ein in 9B dargestelltes Impulsdiagramm zeigt den Fall, in dem die Größe der im Datenspeicherbereich 62 verbliebenen Daten kleiner ist als die maximale Paketgröße und außerdem EnShortPkt (siehe 7) auf Low (inaktiv) liegt. In diesem Fall wird die Übertragung eines kurzen Pakets (kleineres Paket als die maximale Paketgröße) durch EnShortPkt auf Low gesperrt, wie bei D3, D4 und D5 in 9B gezeigt. Als Antwort auf IN-Token vom Host wird deshalb NAK zurückgeschickt, wie bei D6, D7 und D8 dargestellt ist.
  • Ein in 9C dargestelltes Impulsdiagramm zeigt den Fall, in dem die Größe der im Datenspeicherbereich 62 verbliebenen Daten kleiner ist als die maximale Paketgröße und außerdem EnShortPkt auf High (aktiv) liegt. In diesem Fall wird die Übertragung eines kurzen Pakets zugelassen, da EnShortPkt auf High liegt wie bei D9 in 9C gezeigt und ein im Datenspeicherbereich 62 vorhandenes kurzes Paket wird dementsprechend an den Host übertragen wie bei D10 gezeigt.
  • Es ist zu beachten, dass der Datenspeicherbereich 62 des Puffers 60 ein Bereich sein könnte, der gemeinsam für OUT- und IN-Transaktionen verwendet werden könnte, oder er könnte getrennte Bereiche bereitstellen.
  • Ein in 10 dargestelltes Impulsdiagramm betrifft eine DMA-Übertragung während der Datenübertragung an ein Gerät wie ein Festplattenlaufwerk HDD.
  • Wenn sowohl HDMARQ (siehe 7) vom Festplattenlaufwerk HDD als auch DMA_Start von der CPU aktiv werden wie bei E1 und E2 in 10 gezeigt, beginnt die DMA-Übertragung und DMA_Running wird aktiv wie bei E3 gezeigt.
  • DMAReadReq und DMAReadAck werden dann zur Quittierung verwendet wie bei E4 und E5 gezeigt und eine Datenmenge, z. B. vier Bytes (32 Bits) wird aus dem Datenspeicherbereich 62 des Puffers 60 ausgelesen. Die so ausgelesenen vier Byte-Daten werden z. B. als jeweils zwei Bytes über den 16-Bit-Bus EBUS unter Verwendung des Schreibimpulssignals xHIOW an das HDD übertragen wie bei E6 und E7 gezeigt.
  • Mit jeder Datenübertragung wird der Wert Count (Anzahl der Datenübertragungen) im DMA-Zähler 82 heruntergezählt wie bei E8 gezeigt. Es ist zu beachten, dass die Einstellung des Anfangswerts N von Count auf dCBWDTransferLength der CBW von 3 basiert.
  • Wenn Count 0 erreicht wie bei E9 gezeigt und die Übertragung sämtlicher Daten über den EBUS beendet ist, wird DMA_Running inaktiv wie bei E10 gezeigt.
  • Ein in 11 dargestelltes Impulsdiagramm betrifft eine DMA-Übertragung während des Datenempfangs von einem Gerät wie einem Festplattenlaufwerk HDD.
  • Wenn HDMARQ und DMA_Start aktiv werden wie bei F1 und F2 in 11 gezeigt, beginnt die DMA-Übertragung und DMA_Running wird aktiv wie bei F3 gezeigt.
  • Daten vom HDD werden dann unter Verwendung des Leseimpulssignals xHIOR über den EBUS empfangen wie bei F4 und F5 gezeigt. Die so empfangenen Daten werden nach dem Datenspeicherbereich 62 des Puffers 60 durch Quittierung mittels DMAWriteReq und DMAWriteAck geschrieben wie bei F6 und F7 gezeigt.
  • Mit jedem Datenempfang wird Count (Anzahl der Datenübertragungen) heruntergezählt wie bei F8 gezeigt. Wenn Count 0 erreicht wie bei F9 gezeigt und die Übertragung sämtlicher Daten über den EBUS beendet ist, wird DMA_Running inaktiv wie bei F10 gezeigt.
  • 2.4 Erkennen des Endes der Datenphase (Datentransport)
  • Unter USB muss sichergestellt werden, dass die Phasen an der Host- und der Geräteseite während der Datenübertragung stets koordiniert sind, wie zuvor unter Bezugnahme auf die 5A und 5B beschrieben worden ist.
  • Es sei z. B. angenommen, dass der Host in 5B bestimmt hat, dass die aktuelle Phase die Datenphase ist, während das Gerät als die aktuelle Phase die Statusphase bestimmt hat. Wenn dies geschieht, wird der vom Host übertragene IN-Token (der Token bei B4 in 5B) fälschlich als ein IN-Token bezüglich der CSW (B6) erkannt, was einen Datenübertragungsfehler verursachen könnte.
  • Bei der Bulk-Only-(nur Massen)Spezifikation von 2B werden mehrere Informationstypen als Informationen zugeordnet, die über einen Endpunkt zu übertragen sind. Im Einzelnen werden eine CBW (Befehl) und OUT-Daten als Informationen zugeordnet, die über den Masse-Aus Endpunkt EP1 zu übertragen sind, und eine CSW (Status) und IN-Daten werden als Informationen zugeordnet, die über den Masse-Ein Endpunkt EP2 zu übertragen sind. Der Host und das Gerät müssen deshalb unterscheiden, welcher Informationstyp über jeden der Endpunkte zu übertragen ist. Bei der Bulk-Only-(nur Massen)Spezifikation bestimmen der Host und das Gerät, welche Phase die aktuelle Phase ist, und erkennen außerdem diese Informationen.
  • Da die aktuelle Phase z. B. die Befehlsphase bei B1 und B2 in den 5A und 5B ist, wird bestimmt, dass die über den Endpunkt EP1 zu übertragenden Informationen eine CBW sind. Da die aktuelle Phase eine 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. Da ferner die aktuelle Phase die Statusphase bei B5 und B6 ist, wird bestimmt, dass die über den Endpunkt EP2 zu übertragende Information eine CSW ist.
  • Unter USB ist es erforderlich, dass sowohl der Host als auch das Gerät genau erkennen, welche Phase die aktuelle Phase ist. Es ist deshalb wünschenswert, eine genaue Bestimmung selbst während des Wechsels z. B. von der Datenphase zur Statusphase zu ermöglichen.
  • Bei dieser Ausführungsform wird die Bestimmung des Wechsels von der Datenphase zur Statusphase, mit anderen Worten, die Bestimmung des Endes der Datenphase, durch das nachstehend beschriebene Verfahren implementiert.
  • Für eine OUT-Transaktion (Datenübertragung in einer ersten Richtung), in der z. B. OUT-Daten vom Host zum Gerät übertragen werden, wird das Ende der Datenphase (das Ende der gesamten Datenübertragung und der Wechsel der Phasen) gemäß 12 bestimmt.
  • Im Einzelnen beginnt die Datenübertragung (Datenphase) über den USB (erster Bus) wie bei G1 in 12 gezeigt. Wenn die so übertragenen Daten in den Datenspeicherbereich 62 des Puffers 60 geschrieben werden, wird das Signal Empty, das meldet, ob der Datenspeicherbereich 62 leer ist oder nicht, inaktiv wie bei G2 gezeigt, um zu melden, dass der Datenspeicherbereich 62 nicht leer ist.
  • Die CPU veranlasst dann, dass DMA_Running nach aktiv geht, indem DMA_Start auf aktiv gesetzt wird, wie bei G3 und G4 gezeigt ist, und die Datenübertragung (EBUS-Datenphase) über den EBUS (zweiter Bus) beginnt.
  • Wenn die Datenübertragung über den USB bei G5 endet und die Datenübertragung (DMA-Übertragung) über den EBUS bei G6 endet, endet die Datenphase und es wird bestimmt, dass ein Wechsel von der Datenphase zur Statusphase erfolgt.
  • Die Taktung von G6 wird bis nach der Taktung von G5 verzögert, die die USB-Datenübertragung beendet. Diese G6-Taktung stimmt auch die Taktung bei G7 ab, bei der das Signal Empty nach aktiv geht, da der Datenspeicherbereich 62 des Puffers 60 leer ist.
  • Bei dieser Ausführungsform wird die Taktung von G6 unter Verwendung des DMA-Zählers 82 von 12 bestimmt, der an der EBUS-Seite vorgesehen ist, um die Datengröße (Anzahl der Übertragungen und Datenlänge) zu zählen (siehe E9 in 10).
  • Bei dieser Ausführungsform wird das Ende der Datenphase aufgrund der Bedingung, dass die Datenübertragung über den EBUS (zweiter Bus) während einer OUT-Transaktion (Datenübertragung in der ersten Richtung) beendet worden ist, bestimmt.
  • Bei einer IN-Transaktion (Datenübertragung in der zweiten Richtung) dagegen, bei der IN-Daten vom Gerät zum Host übertragen werden, wird das Ende der Datenphase (Ende der gesamten Datenübertragung und Wechsel der Phasen) wie in 13 gezeigt bestimmt.
  • Im Einzelnen geht DMA_Running nach aktiv und die Datenübertragung über den EBUS beginnt, wenn die CPU DMA_Start auf aktiv setzt, wie bei H1 und H2 gezeigt. Wenn die Daten, die über den EBUS übertragen worden sind, in den Datenspeicherbereich 62 des Puffers 60 geschrieben werden, wird Empty inaktiv, wie bei H3 gezeigt, um zu melden, dass der Datenspeicherbereich 62 nicht leer ist.
  • Dann beginnt wie bei H4 gezeigt die Datenübertragung durch den USB. Die durch den USB zu übertragenden Daten werden aus dem Datenspeicherbereich 62 ausgelesen und Empty wird aktiv, wenn der Datenspeicherbereich 62 leer wird.
  • Nachdem bei dieser Ausführungsform bestimmt worden ist, dass die Datenübertragung über den EBUS (zweiter Bus) beendet ist wie bei H6 gezeigt, wird bestimmt, dass die Datenphase (Übertragung sämtlicher Daten) zu dem Zeitpunkt beendet worden ist, zu dem der Datenspeicherbereich 62 leer und das Signal Empty aktiv wird wie bei H7 gezeigt. In diesem Fall kann die Taktung von H6 bestimmt werden, indem der DMA-Zähler 82 verwendet wird, der an der EBUS-Seite vorgesehen ist, um die Größe der vom EBUS übertragenen Daten zu zählen. Die Taktung von H7 stimmt mit der Taktung von H8 am Ende der Datenübertragung (Datenphase) über den USB (erster Bus) überein.
  • Bei dieser wie oben beschrieben konfigurierten Ausführungsform wird das Ende der Datenphase während einer IN-Transaktion (Datenübertragung in der zweiten Richtung) aufgrund der Bedingung, dass der Datenempfang durch den EBUS (zweiter Bus) beendet ist und auch der Datenspeicherbereich des Puffers 60 leer geworden ist, bestimmt.
  • Ein anderes Verfahren, das beispielsweise in Betracht gezogen werden könnte, unterscheidet sich von dieser in den 12 und 13 dargestellten Ausführungsform dahingehend, dass sowohl an der EBUS- als auch an der USB-Seite Zähler zum Zählen der Datengröße bereitgestellt sind. Bei einem solchen Verfahren wird das Ende der Datenphase während einer OUT-Transaktion aufgrund der Bedingung, dass der Zählwert des Zählers an der EBUS-Seite 0 erreicht hat, bestimmt, während das Ende der Datenphase in einer IN-Transaktion aufgrund der Bedingung, dass der Zählwert des Zählers an der USB-Seite 0 erreicht hat, bestimmt wird.
  • Bei diesem Verfahren ist jedoch die Bereitstellung von zwei Zählern erforderlich und die Verarbeitung zur Steuerung dieser beiden Taktgeber ist schwierig. Als Ergebnis werden die Schaltungssteuerung und die Schaltungskonfiguration kompliziert, was zu einer Zunahme der Größe und einem Anstieg der Kosten des resultierenden Steuerungsgeräts zur Datenübertragung führt. Die Verarbeitung der Firmware (CPU), die das Steuerungsgerät zur Datenübertragung steuert, wird ebenfalls kompliziert und es besteht die Gefahr, dass sich die effektive Datenübertragungsgeschwindigkeit aufgrund eines solchen Verarbeitungszusatzaufwands verschlechtert.
  • Im Gegensatz dazu ist beim Verfahren der in den 12 und 13 dargestellten Ausführungsform die Bereitstellung nur eines Zählers an der EBUS-Seite (zweiter Bus) erforderlich wie in 7 gezeigt, so dass es nicht notwendig ist, einen Zähler an der USB-Seite (erster Bus) bereitzustellen. Es ist deshalb möglich, die Schaltungssteuerung sowie die Schaltungskonfiguration zu vereinfachen, wodurch das Steuerungsgerät zur Datenübertragung kompakter und preisgünstiger hergestellt werden kann. Die Firmware-Verarbeitung zur Steuerung des Steuerungsgeräts zur Datenübertragung kann ebenfalls vereinfacht werden, was eine Erhöhung der effektiven Datenübertragungsgeschwindigkeit ermöglicht.
  • Es ist zu beachten, dass dann, wenn der Datenempfang über den EBUS (zweiter Bus) bei dieser Ausführungsform endet, wie bei H9 in 13 dargestellt ist, der Status dieses Datenempfangs von der Seite des Festplattenlaufwerks HDD abgefragt wird und die in 4 dargestellte Erzeugung der CSW (Status) auf dem so abgefragten Status basiert. Diese Verarbeitung zur CSW-Erzeugung könnte z. B. durch die Firmware erfolgen.
  • Die so erzeugte CSW wird über den USB (erster Bus) in der Statusphase nach dem Ende der Datenphase zur Host-Seite übertragen wie bei H10 in 13 dargestellt.
  • Dies ermöglicht es, die Periode, während der die Datenübertragung über den USB erfolgt, wirksam zu nutzen, um den Status von der HDD-Seite abzufragen und die CSW zu erzeugen wie bei H9 in 13 dargestellt. Nach dem Übergang von der Datenphase zur Statusphase ist es möglich, sofort eine CSW bezüglich eines IN-Token vom Host zurückzuschicken wie bei H10 gezeigt. Es ist deshalb möglich, die Häufigkeit, mit der NAK als Antwort auf IN-Token vom Host zurückgeschickt wird, zu verringern, wodurch die effektive Datenübertragungsgeschwindigkeit erhöht wird.
  • 2.5 Automatische Übertragung eines kurzen Pakets
  • Unter USB hat ein kurzes Paket eine spezielle Bedeutung als Nutzlastgröße, die kleiner ist als die maximale Paketgröße.
  • Mit anderen Worten, wenn ein kurzes Paket vom Gerät eingeht, bestimmt der Host, dass dies das Ende der Datenphase ist und geht weiter zur Statusphase. Das Gerät steuert deshalb die Datenübertragung, um sicherzustellen, dass kein kurzes Paket zum Host geschickt wird, ausgenommen, die Datenphase soll beendet werden.
  • Im Einzelnen prüft das Gerät stets die Größe der im Datenspeicherbereich 62 des Puffers 60 verbliebenen Daten. Wenn die verbliebene Datengröße größer oder gleich ist der maximalen Paketgröße, wird aus den verbliebenen Daten ein Datenpaket der maximalen Paketgröße für die Übertragung zum Host erzeugt. Wenn bestimmt wird, dass die verbliebene Datengröße kleiner ist als die maximale Paketgröße, gestattet es die Übertragung eines kurzen Pakets und sendet ein Paket aus dieser verbliebenen Datengröße als kurzes Paket an den Host. Dies aktiviert das Ende der Datenphase.
  • Wenn jedoch die Größe der im Datenspeicherbereich 62 verbliebenen Daten stets auf diese Weise geprüft und die Verarbeitung entsprechend dem Ergebnis dieser Prüfung angepasst wird, könnte es geschehen, dass die Verarbeitungslast der Firmware (CPU), die diese Prüfungsverarbeitung ausführt, extrem hoch wird. Außerdem könnte dies zu einer Situation führen, in der dieser Zusatzaufwand der Firmware-Verarbeitung eine Verschlechterung der effektiven Datenübertragung verursachen könnte.
  • Das ist der Grund, warum diese Ausführungsform sich eines Verfahrens bedient, bei dem ein kurzes Paket im Datenspeicherbereich 62 automatisch (durch Hardware-Verarbeitung, nicht durch Firmware-Verarbeitung) über den USB (erster Bus) übertragen wird, wenn der Datenempfang (DMA-Übertragung) über den EBUS (zweiter Bus) beendet ist und auch die Größe der im Datenspeicherbereich 62 verbliebenen Daten (gültige Daten) kleiner ist als die maximale Paketgröße.
  • Ein in 14 dargestelltes Impulsdiagramm zeigt den z. B. Fall, in dem die Größe der im Datenspeicherbereich 62 verbliebenen Daten kleiner ist als die maximale Paketgröße während einer IN-Transaktion (Datenübertragung in der zweiten Richtung).
  • In 14 wird ein Signal AutoEnShort (siehe 7), das die automatische Übertragung eines kurzen Pakets (automatische Übertragung) entweder aktiviert oder deaktiviert, auf aktiv (High) gelegt wie bei I1 dargestellt. Der Pegel von AutoEnShort wird von der Firmware (CPU) eingestellt, die einen gegebenen Wert in ein Register AutoEnShort während der Auflistung schreibt. In diesem Fall könnte AutoEnShort für ein Gerät, bei dem die automatische Übertragung kurzer Pakete stets gültig wäre, wie beispielsweise ein Massenspeichergerät, immer auf aktiv eingestellt werden.
  • Es sei angenommen, dass die Datenübertragung über den EBUS in dem Zustand endet, wie bei I2 dargestellt, in dem AutoEnShort auf aktiv eingestellt worden ist, wie bei I1 in 14 dargestellt, und ein letztes Paket Dn – 1 mit maximaler Paketgröße (z. B. 512 Bytes) zu übertragen ist, wie bei I3 dargestellt ist.
  • Wenn in diesem Fall die Größe der im Datenspeicherbereich 62 verbliebenen Daten kleiner ist als die maximale Paketgröße, geht EnShortPkt nach aktiv, wie bei I4 dargestellt, um der SIE 30 die automatische Übertragung eines kurzen Pakets zu melden. Mit anderen Worten, EnShortPkt geht nach aktiv, wenn AutoEnShort aktiv und HaveMPS, das meldet, ob die Größe der verbliebenen Daten der maximalen Paketgröße entspricht oder nicht, inaktiv ist.
  • Wenn EnShortPkt nach aktiv geht, wird das im Datenspeicherbereich 62 vorhandene kurze Paket von der Hardware (SIE 30) und nicht durch Firmware-Verarbeitung automatisch an den Host übertragen, wie bei I5 in 14 dargestellt ist. Wenn ein kurzes Paket über den USB übertragen wird, endet die Datenphase bei I6 und die Statusphase beginnt.
  • Mit dem Verfahren gemäß dieser in 14 dargestellten Ausführungsform kann ein kurzes Paket im Datenspeicherbereich 62 automatisch von der Hardware übertragen werden, indem AutoEnShort auf aktiv eingestellt wird. Die Firmware braucht deshalb keine Verarbeitung auszuführen, um die Größe der im Datenspeicherbereich 62 verbliebenen Daten zu prüfen. Als Ergebnis kann die Verarbeitungslast der Firmware verringert werden, was eine Zunahme der effektiven Datenübertragungsgeschwindigkeit ermöglicht.
  • Es kommt häufig vor, dass eine kostengünstigere CPU, die mit einer Taktfrequenz von 20 bis 50 MHz arbeitet, an der Geräteseite verwendet wird, um die Kosten zu senken. Wenn der Prozess der Prüfung der Größe der verbliebenen Daten von der Firmware, die auf der CPU läuft, ausgeführt wird, ist es deshalb möglich, dass der Zeitpunkt des Übergangs zur Statusphase bei I6 stark verzögert wird.
  • Im Gegensatz dazu macht es das Verfahren dieser in 14 dargestellten Ausführungsform möglich, in einem früheren Stadium zur Statusphase zu wechseln, da der Prozess der Prüfung der Größe der verbliebenen Daten nicht von der Firmware ausgeführt wird. Als Ergebnis kann die effektive Datenübertragungsgeschwindigkeit weitaus deutlicher erhöht werden als in dem Fall, in dem der Prozess der Prüfung der Größe der verbliebenen Daten von der Firmware ausgeführt wird.
  • Es ist zu beachten, dass es bei dieser Ausführungsform möglich ist, frei einzustellen, ob die automatische Übertragung eines kurzen Pakets aktiviert oder deaktiviert werden soll, indem die Einstellung von AutoEnShort geändert wird.
  • Beispielsweise bei einem Massenspeichergerät wie einem Festplattenlaufwerk oder einem CD-Laufwerk, bei dem die automatische Übertragung eines kurzen Pakets immer gültig ist, wird AutoEnShort auf aktiv eingestellt. Dies ermöglicht die automatische Übertragung eines kurzen Pakets und den Wechsel zur Statusphase ohne Firmware-Verarbeitung.
  • Bei einem Gerät wie einem Scanner dagegen, bei dem Informationen wie die Datengröße den über den EBUS (zweiter Bus) empfangenen Daten zur Übertragung über den USB (erster Bus) angefügt sind, wird AutoEnShort auf inaktiv (Low) eingestellt.
  • Mit anderen Worten, es ist nicht möglich die endgültige Datengröße bei einem Scanner zu definieren, bevor nicht das Abrufen der Daten abgeschlossen ist. Das Steuerungsgerät zur Datenübertragung fügt deshalb Steuerinformationen (Datenkopf und Fußzeile) hinzu, die die Datengröße angeben, nachdem die Daten vom Scanner empfangen worden sind, die dann zum Host übertragen werden. Aus diesem Grund stimmt die Größe der über den EBUS übertragenen Daten nicht mit der Größe der über den USB übertragenen Daten überein, so dass die bedingungslose Übertragung eines kurzen Pakets an den Host nicht zugelassen werden kann, und deshalb ist es erforderlich, AutoEnShort auf inaktiv zu legen.
  • Diese Ausführungsform ermöglicht deshalb auch die flexible Einstellung der Datenübertragung bei Geräten wie Scannern abgesehen von Massenspeichergeräten wie Festplattenlaufwerken, indem die automatische Übertragung eines kurzen Pakets frei auf aktiviert oder deaktiviert eingestellt werden kann.
  • 2.6 Meldung des Vorliegens eines kurzen Pakets
  • Das in 14 dargestellte Signal AutoEnShort dient zur automatischen Übertragung eines kurzen Pakets im Datenspeicherbereich 62.
  • Andererseits könnte die CPU (Firmware) über das Vorhandensein eines kurzen Pakets im Datenspeicherbereich 62 informiert werden. Im Einzelnen ist die Konfiguration so beschaffen, dass ein Unterbrechungssignal (Interrupt) verwendet wird, um die CPU (Verarbeitungseinheit) über das Vorhandensein eines kurzen Pakets im Datenspeicherbereich 62 zu informieren, wenn der Datenempfang über den EBUS (zweiter Bus) endet und außerdem die Größe der im Datenspeicherbereich 62 verbliebenen Daten kleiner ist als die maximale Paketgröße.
  • Ein detailliertes Beispiel der Anschlüsse zwischen der SIE 30, der Endpunkt-Managementschaltung 40, der Puffer-Managementschaltung 50, dem Puffer 60, der Massenübertragungs-Managementschaltung 70 und der DMAC 80 bei Verwendung eines derartigen Verfahrens ist in 15 dargestellt.
  • 15 unterscheidet sich von der zuvor beschriebenen 7 darin, dass die Massenübertragungs- Managementschaltung 70 ein Unterbrechungssignal ShortINT an die CPU (an ein Register, auf das die CPU zugreifen kann) ausgibt und EnShortPkt von der CPU eingestellt und in die SIE 30 eingegeben wird.
  • In diesem Fall ist ShortINT ein Unterbrechungssignal, mit dem die CPU über das Vorhandensein eines kurzen Pakets im Datenspeicherbereich 62 informiert wird, und EnShortPkt ist ein Signal, das der SIE 30 die Übertragung des kurzen Pakets durch die CPU meldet.
  • Wenn z. B. HaveMPS inaktiv wird (kleiner als die maximale Paketgröße), nachdem DMA_Running inaktiv geworden ist (Ende des Datenempfangs), wird ShortINT aktiv, um die CPU über das Vorhandensein eines kurzen Pakets im Datenspeicherbereich 62 zu informieren, das übertragen werden kann.
  • Wenn dies geschieht, führt die CPU eine Bestimmungsverarbeitung zur Übertragung des kurzen Pakets aus, und wenn bestimmt wird, dass ein kurzes Paket übertragen werden kann, stellt sie EnShortPkt auf aktiv ein. Dies veranlasst die SIE 30, das kurze Paket, das sich im Datenspeicherbereich 62 befindet, zu lesen und eine Verarbeitung auszuführen, um es über den USB an den Host zu übertragen.
  • 16 ist ein Impulsdiagramm, das die Funktionsweise während einer IN-Transaktion (Datenübertragung in der zweiten Richtung) zeigt, wenn die Größe der im Datenspeicherbereich 62 verbliebenen Daten kleiner ist als die maximale Paketgröße.
  • In 16 wird AutoEnShort, das einstellt, ob die automatische Übertragung eines kurzen Pakets aktiviert oder deaktiviert wird, bei J1 inaktiv (Low). In diesem Zustand endet die Datenübertragung über den EBUS bei J2 und das letzte Paket Dn – 1 mit maximaler Paketgröße wird bei J3 vom USB übertragen.
  • Wenn in einem solchen Fall die Größe der im Datenspeicherbereich 62 verbliebenen Daten kleiner ist als die maximale Paketgröße, geht das Unterbrechungssignal ShortINT nach aktiv, um die CPU über das Vorhandensein des kurzen Pakets zu informieren, wie bei J4 gezeigt. Mit anderen Worten, ShortINT geht nach aktiv, wenn DMA_Running inaktiv ist und HaveMPS, das meldet, ob die verbliebene Datengröße der maximalen Paketgröße entspricht oder nicht, inaktiv ist.
  • Wenn dies geschieht, führt die CPU (Firmware), die dieses ShortINT erhalten hat, eine Verarbeitung aus, um Informationen wie die Datengröße zu den empfangenen Daten hinzuzufügen (Verarbeitung zum Schreiben der angefügten Informationen nach dem Datenspeicherbereich 62). EnShortPkt geht dann nach aktiv, wie bei J5 dargestellt ist. Dies bewirkt die Übertragung der Daten im Datenspeicherbereich 62 von der SIE 30 an den Host wie bei J6 gezeigt. Die Datenphase endet dann und die Statusphase beginnt wie bei J7 gezeigt.
  • Bei dem Verfahren der in 16 dargestellten Ausführungsform wird ShortINT verwendet, um die auf der CPU laufende Firmware über das Vorhandensein des kurzen Pakets im Datenspeicherbe reich 62 zu informieren. Dies ermöglicht die Implementierung einer geeigneten Datenübertragung sogar in einem Gerät wie einem Scanner, bei dem Informationen wie die Datengröße schließlich zu den empfangenen Daten hinzugefügt werden.
  • 2.7 Firmware-Verarbeitung
  • Ein Flussdiagramm der von der Firmware eines Vergleichsbeispiels während einer IN-Transaktion ausgeführten Verarbeitung ist in 17A dargestellt. In ähnlicher Weise zeigt 17B ein Flussdiagramm der von der Firmware gemäß dem Verfahren dieser Ausführungsform, das ein kurzes Paket automatisch überträgt, ausgeführten Verarbeitung.
  • Im Vergleichsbeispiel von 17A legt die Firmware zuerst DMA_Start auf 1 (High), um den Beginn einer DMA-Übertragung über den EBUS zu veranlassen (Schritt S1). Dann prüft sie DMA_Running, um zu bestimmen, ob die DMA-Übertragung über den EBUS beendet ist oder nicht (Schritt S2).
  • Wenn bestimmt worden ist, dass die DMA-Übertragung beendet ist, verwendet die Firmware IntranACK, um ACK von der USB-Seite zu erkennen (Schritt S3). Wenn ACK erkannt worden ist, prüft die Firmware die Größe der im Datenspeicherbereich des Puffers verbliebenen Daten RSD (Schritt S4). Wenn RDS größer oder gleich ist der maximalen Paketgröße MaxPacketSize, geht der Prozess zu Schritt S3 zurück, um auf das Eintreffen des nächsten ACK zu warten.
  • Wenn dagegen RDS kleiner ist als MaxPacketSize, wird EnShortPkt auf 1 gelegt (Schritt S5). Dies bewirkt die Übertragung eines kurzen Pakets vom Datenspeicherbereich zum Host. Der Prozess geht dann zu Schritt S3 zurück, um auf das nächste ACK zu warten.
  • Wenn RDS 0 ist, wird angenommen, dass sämtliche Daten im Datenspeicherbereich überfragen worden sind, so dass die Firmware den EBUS-seitigen Status abfragt (Schritt S6). Die Firmware erzeugt die CSW auf Basis des so abgefragten Status und stellt den an die USB-Seite zu sendenden Status ein (Schritt S7).
  • Bei dieser in 17B dargestellten Ausführungsform stellt die Firmware zuerst DMA_Start auf 1, um den Beginn der DMA-Übertragung über den EBUS zu veranlassen (Schritt S11). Es ist zu beachten, dass AutoEnShort vor der DMA-Übertragung auf 1 gesetzt wird. Die Firmware prüft DMA_Running, um zu bestimmen, ob die DMA-Übertragung über den EBUS beendet ist oder nicht (Schritt S12).
  • Wenn bestimmt worden ist, dass die DMA-Übertragung beendet worden ist (I2 in 14), fragt die Firmware den EBUS-seitigen Status ab (Schritt S13). Die Firmware bestimmt dann, ob die Datenphase (Übertragung sämtlicher Daten) beendet worden ist oder nicht (Schritt S14). Mit anderen Worten, sie bestimmt, ob der Datenspeicherbereich des Pufferbereichs leergeworden ist und das das letzte Paket betreffende ACK vom Host zurückgeschickt worden ist oder nicht. Wenn bestimmt worden ist, dass die Datenphase beendet ist, erzeugt die Firmware die CSW auf Basis des in Schritt S13 abgefragten Status und stellt den an die USB-Seite zu sendenden Status ein (Schritt S15).
  • Auf diese Weise ist die Verarbeitung zur Prüfung der Größe der verbliebenen Daten (Schritt S4), die beim Vergleichsbeispiel von 17A notwendig ist, bei der Ausführungsform von 17B nicht erforderlich. Die Verarbeitung zum Einstellen von EnShortPkt auf aktiv erfolgt ebenfalls hardwaremäßig, so dass keine Notwendigkeit besteht, dies durch die Firmware auszuführen. Es ist deshalb möglich, die Verarbeitungslast der Firmware zu verringern, wodurch die effektive Datenübertragungsgeschwindigkeit erhöht wird.
  • Das Flussdiagramm von 18 zeigt die Verarbeitung, die von der Firmware in dem Verfahren ausgeführt wird, bei dem ein Unterbrechungssignal (Interrupt) verwendet wird, um die Firmware über das Vorhandensein eines kurzen Pakets zu informieren (15 und 16).
  • In 18 veranlasst die Firmware zunächst den Beginn der DMA-Übertragung durch den EBUS und bestimmt dann, ob die DMA-Übertragung beendet worden ist oder nicht (Schritte S21 und S22).
  • Wenn bestimmt worden ist, dass die DMA-Übertragung beendet ist, bestimmt die Firmware, ob das Unterbrechungssignal ShortINT erkannt worden ist oder nicht (bei J4 in 16) (Schritt S23). Wenn ShortINT erkannt worden ist, schreibt die Firmware die an die empfangenen Daten der DMA-Übertragung anzufügenden Informationen (wie die Datengröße) nach dem Datenspeicherbereich (FIFO) (Schritt S24).
  • Wenn bestimmt worden ist, dass alle Informationen angefügt worden sind (Schritt S25), setzt die Firmware EnShortPkt auf 1 (Schritt S26).
  • Dann erkennt sie ACK von der USB-Seite (Schritt S27). Wenn ACK erkannt worden ist, prüft die Firmware, ob die Größe der verbliebenen Daten RDS im Datenspeicherbereich 0 ist oder nicht (Schritt S28). Wenn RDS nicht 0 ist, geht der Prozess zu Schritt S27 zurück und die Firmware wartet auf das nächste zu erkennende ACK.
  • Ist dagegen RDS 0, wird angenommen, dass sämtliche Daten im Datenspeicherbereich übertragen worden sind, so dass die Firmware den EBUS-seitigen Status abfragt (Schritt S29). Die Firmware erzeugt die CSW auf Basis des so abgefragten Status und stellt den an die USB-Seite zu sendenden Status ein (Schritt S30).
  • 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 19A dargestellt, während 20A 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 19B dargestellt, während 20B 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 19C dargestellt, während 20C 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 19A, 19B und 19C bereitgestellt werden könnte.
  • Die Verwendung des Steuerungsgeräts zur Datenübertragung dieser Ausführungsform in elektronischer Ausrüstung verringert die Verarbeitungslast der auf der CPU laufenden Firmware, so dass eine kostengünstige CPU verwendet werden kann. Da es ferner möglich ist, die Kosten und die Baugröße des Steuerungsgeräts zur Datenübertragung zu verringern, ist es möglich, eine Verringerung der Kosten und der Baugröße der elektronischen Ausrüstung anzustreben.
  • 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.
  • 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 6, 7 und 15 dargestellte begrenzt, so dass verschiedene Modifikationen derselben möglich sind.
  • 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.
  • Des Weiteren 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 (13)

  1. Steuerungsgerät zur Datenübertragung für die Datenübertragung über einen Bus, aufweisend: einen Puffer (60) mit einem Datenspeicherbereich (62) zum Speichern von Daten, die während der Datenübertragung in einer ersten Richtung über einen ersten Bus (DM) empfangen und über einen zweiten Bus (EBUS) gesendet werden, und zum Speichern von Daten, die während der Datenübertragung in einer zweiten Richtung über den zweiten Bus (EBUS) empfangen und über den ersten Bus (DM) gesendet werden; und eine Puffer-Managementschaltung (50) zum Verwalten des Schreibens von Daten in den Datenspeicherbereich (62) des Puffers (60) und zum Lesen von Daten aus dem Datenspeicherbereich (62); bei dem das Ende einer Datenphase zur Übertragung von Daten während der Datenübertragung in der ersten Richtung bestimmt wird und die Datenphase unter der Bedingung, dass die Datenübertragung über den zweiten Bus (EBUS) beendet worden ist, zur Statusphase wechselt; und bei dem das Ende einer Datenphase zur Übertragung von Daten während der Datenübertragung in der zweiten Richtung bestimmt wird und die Datenphase unter der Bedingung, dass der Datenempfang über den zweiten Bus (EBUS) beendet worden und auch der Datenspeicherbereich (62) des Puffers (60) leer geworden ist, zur Statusphase wechselt.
  2. Gerät nach Anspruch 1, ferner aufweisend: einen Zähler (82) zum Zählen der Größe der Daten, die über den zweiten Bus (EBUS) gesendet oder empfangen werden.
  3. Gerät nach Anspruch 1 oder 2, ferner aufweisend: Mittel zum Erfassen des Status des Datenempfangs über den zweiten Bus (EBUS); und Mittel zum Übertragen des so erfassten Status während einer Statusphase nach dem Ende der Datenphase über den ersten Bus (DM).
  4. Gerät nach einem der Ansprüche 1 bis 3, das zur automatischen Übertragung eines kurzen Pakets im Datenspeicherbereich (62) über den ersten Bus (DM) ausgeführt ist, wenn der Datenempfang über den zweiten Bus (EBUS) endet und außerdem die Größe der im Datenspeicherbereich (62) des Puffers (60) verbliebenen Daten kleiner ist als die maximale Paketgröße.
  5. Gerät nach einem der Ansprüche 1 bis 4, ferner aufweisend: Mittel zum Informieren einer Verarbeitungseinheit über das Vorhandensein eines kurzen Pakets im Datenspeicherbereich (62), wenn der Datenempfang über den zweiten Bus (EBUS) endet und außerdem die Größe der im Datenspeicherbereich (62) des Puffers (60) verbliebenen Daten kleiner ist als die maximale Paketgröße.
  6. Gerät nach Anspruch 4, ferner aufweisend: eine Einheit zum Einstellen der automatischen Übertragung eines kurzen Pakets aus dem Datenspeicherbereich (62) auf entweder aktiviert oder deaktiviert.
  7. Gerät nach Anspruch 6, bei dem die automatische Übertragung auf deaktiviert eingestellt wird, wenn Daten, die über den zweiten Bus (EBUS) empfangen worden sind, bestimmte Informationen enthalten und über den ersten Bus (DM) übertragen werden.
  8. Gerät nach einem der Ansprüche 1 bis 7, bei dem der Datenspeicherbereich (62) ein First-in-First-out-Speicherbereich ist.
  9. Gerät nach einem der Ansprüche 1 bis 8, bei dem die Datenübertragung gemäß dem Universal Serial Bus-Standard erfolgt.
  10. Elektronische Anordnung, aufweisend: ein Steuerungsgerät zur Datenübertragung gemäß einem der Ansprüche 1 bis 9; und ein Gerät zum Ausführen der Ausgabeverarbeitung, Abrufverarbeitung oder Speicherungsverarbeitung mit Daten, die über das Steuerungsgerät zur Datenübertragung und den Bus übertragen worden sind.
  11. Verfahren zur Datenübertragung über einen Bus, aufweisend: Bereitstellen eines Datenspeicherbereichs (62) in einem Puffer (60) zum Speichern von Daten, die über einen ersten Bus (DM) empfangen und während der Datenübertragung in einer ersten Richtung über einen zweiten Bus (EBUS) gesendet werden, und zum Speichern von Daten, die über den zweiten Bus (EBUS) empfangen und während der Datenübertragung in einer zweiten Richtung über den ersten Bus (DM) gesendet werden; Verwalten des Schreibens von Daten in den Datenspeicherbereich (62) des Puffers (60) und des Lesens von Daten aus dem Datenspeicherbereich (62); Bestimmen des Endes einer Datenphase zur Übertragung von Daten während der Datenübertragung in der ersten Richtung und Wechseln von der Datenphase zur Statusphase unter der Bedingung, dass die Datenübertragung über den zweiten Bus (EBUS) beendet worden ist; und Bestimmen des Endes einer Datenphase zur Übertragung von Daten während der Datenübertragung in der zweiten Richtung und Wechseln von der Datenphase zur Statusphase unter der Bedingung, dass der Datenempfang über den zweiten Bus (EBUS) beendet worden und außerdem der Datenspeicherbereich (62) des Puffers (60) leer geworden ist.
  12. Verfahren nach Anspruch 11, ferner aufweisend: automatisches Übertragen eines kurzen Pakets im Datenspeicherbereich (62) über den ersten Bus (DM), wenn der Datenempfang über den zweiten Bus (EBUS) endet und außerdem die Größe der im Datenspeicherbereich (62) des Puffers (60) verbliebenen Daten kleiner ist als die maximale Paketgröße.
  13. Verfahren nach Anspruch 11, ferner aufweisend: Veranlassen, dass eine Verarbeitungseinheit über das Vorhandensein eines kurzen Pakets im Datenspeicherbereich (62) informiert wird, wenn der Datenempfang über den zweiten Bus (EBUS) endet und außerdem die Größe der im Datenspeicherbereich (62) des Puffers (60) verbliebenen Daten kleiner ist als die maximale Paketgröße.
DE60205305T 2001-05-14 2002-05-08 Datensteueranlage, elektronisches Gerät und Verfahren zur Übertragungssteuerung Expired - Lifetime DE60205305T2 (de)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
DE60205305D1 DE60205305D1 (de) 2005-09-08
DE60205305T2 true DE60205305T2 (de) 2006-05-24

Family

ID=18989584

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60205305T Expired - Lifetime DE60205305T2 (de) 2001-05-14 2002-05-08 Datensteueranlage, elektronisches Gerät und Verfahren zur Übertragungssteuerung

Country Status (8)

Country Link
US (1) US6901465B2 (de)
EP (1) EP1260908B1 (de)
JP (1) JP3870717B2 (de)
KR (1) KR100460650B1 (de)
CN (1) CN1282094C (de)
AT (1) ATE301307T1 (de)
DE (1) DE60205305T2 (de)
TW (1) TW556090B (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7386003B1 (en) * 2000-03-27 2008-06-10 Bbn Technologies Corp. Systems and methods for communicating in a personal area network
US6804232B1 (en) 2000-03-27 2004-10-12 Bbnt Solutions Llc Personal area network with automatic attachment and detachment
JP3680763B2 (ja) * 2001-05-14 2005-08-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US7421257B1 (en) 2001-11-30 2008-09-02 Stragent, Llc Receiver scheduling in ad hoc wireless networks
JP3703439B2 (ja) * 2002-03-19 2005-10-05 Necマイクロシステム株式会社 データ転送制御装置及び方法
JP2004029898A (ja) * 2002-06-21 2004-01-29 Renesas Technology Corp データプロセッサ
JP2005100064A (ja) * 2003-09-24 2005-04-14 Canon Inc 画像処理装置、画像処理方法およびプログラム
JP2005122372A (ja) 2003-10-15 2005-05-12 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
US20050268029A1 (en) * 2004-05-25 2005-12-01 Chih-Chiang Wen Optical Disc Drive that Downloads Operational Firmware from an External Host
US20080301358A1 (en) * 2004-05-25 2008-12-04 Chih-Chiang Wen Electronic device that Downloads Operational Firmware from an External Host
US20050265266A1 (en) * 2004-05-25 2005-12-01 Chih-Chiang Wen Optical disc drive that downloads operational firmware from an external host
US20050273541A1 (en) * 2004-06-04 2005-12-08 Texas Instruments Incorporated Circuit and method for adaptively recognizing a data packet in a universal serial bus network device
WO2005125093A2 (en) * 2004-06-15 2005-12-29 Koninklijke Philips Electronics N.V. Bus controller for handling split transactions
JP4567433B2 (ja) * 2004-12-27 2010-10-20 ルネサスエレクトロニクス株式会社 ホスト装置、デバイス装置、通信システム及びデータ送受信方法
JP2006215873A (ja) * 2005-02-04 2006-08-17 Toshiba Corp 制御装置、情報処理装置、及び転送処理方法
JP4412191B2 (ja) * 2005-02-04 2010-02-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP2006235994A (ja) 2005-02-24 2006-09-07 Nec Electronics Corp ブリッジシステム、ブリッジシステム制御方法、情報処理機器、周辺機器及びプログラム
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
JP4966505B2 (ja) * 2005-03-24 2012-07-04 ブラザー工業株式会社 パケット通信システム
CN101432762B (zh) * 2006-04-26 2012-05-09 松下电器产业株式会社 信号传送方法、发送接收装置和通信系统
GB0616025D0 (en) 2006-08-11 2006-09-20 Aspex Semiconductor Ltd Improvements relating to direct data input/output interfaces
JP4337891B2 (ja) * 2007-03-01 2009-09-30 セイコーエプソン株式会社 記憶端末および情報処理システム
US20090083475A1 (en) * 2007-09-24 2009-03-26 Mediatek Inc. Apparatus and method for updating firmware stored in a memory
CN101458672B (zh) * 2007-12-10 2011-08-24 联想(北京)有限公司 一种热插拔设备、电脑及数据传输指示方法
TW200945052A (en) * 2008-04-21 2009-11-01 Ralink Technology Corp Method for increasing USB transmission rate
US20160357462A1 (en) * 2015-06-08 2016-12-08 Samsung Electronics Co., Ltd. Nonvolatile Memory Modules and Data Management Methods Thereof
TWI812490B (zh) * 2022-09-27 2023-08-11 宏達國際電子股份有限公司 信號收發裝置及其信號收發方法

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5131081A (en) * 1989-03-23 1992-07-14 North American Philips Corp., Signetics Div. System having a host independent input/output processor for controlling data transfer between a memory and a plurality of i/o controllers
JP3515142B2 (ja) * 1992-06-11 2004-04-05 セイコーエプソン株式会社 データ転送制御装置
US5546546A (en) * 1994-05-20 1996-08-13 Intel Corporation Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge
US5771359A (en) * 1995-10-13 1998-06-23 Compaq Computer Corporation Bridge having a data buffer for each bus master
JP2996179B2 (ja) * 1996-07-22 1999-12-27 日本電気株式会社 Pciバス・システム
US6185641B1 (en) * 1997-05-01 2001-02-06 Standard Microsystems Corp. Dynamically allocating space in RAM shared between multiple USB endpoints and USB host
US5987554A (en) * 1997-05-13 1999-11-16 Micron Electronics, Inc. Method of controlling the transfer of information across an interface between two buses
US6073190A (en) * 1997-07-18 2000-06-06 Micron Electronics, Inc. System for dynamic buffer allocation comprising control logic for controlling a first address buffer and a first data buffer as a matched pair
US6128673A (en) * 1997-11-14 2000-10-03 Aronson; Michael D. Method and apparatus for communication and translation of a plurality of digital protocols
US6279087B1 (en) * 1997-12-22 2001-08-21 Compaq Computer Corporation System and method for maintaining coherency and improving performance in a bus bridge supporting write posting operations
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
US6154465A (en) * 1998-10-06 2000-11-28 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligenty bridged TDM and packet buses and methods for performing telephony and data functions using the same
JP3231017B2 (ja) * 1998-05-25 2001-11-19 日本電信電話株式会社 パケット網間転送方法
US6266715B1 (en) 1998-06-01 2001-07-24 Advanced Micro Devices, Inc. Universal serial bus controller with a direct memory access mode
US6628653B1 (en) * 1998-06-04 2003-09-30 Nortel Networks Limited Programmable packet switching device
US6161160A (en) * 1998-09-03 2000-12-12 Advanced Micro Devices, Inc. Network interface device architecture for storing transmit and receive data in a random access buffer memory across independent clock domains
US6202101B1 (en) * 1998-09-30 2001-03-13 Compaq Computer Corporation System and method for concurrently requesting input/output and memory address space while maintaining order of data sent and returned therefrom
JP3543647B2 (ja) * 1998-10-27 2004-07-14 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP3543648B2 (ja) * 1998-10-27 2004-07-14 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US6289406B1 (en) * 1998-11-06 2001-09-11 Vlsi Technology, Inc. Optimizing the performance of asynchronous bus bridges with dynamic transactions
US6405276B1 (en) * 1998-12-10 2002-06-11 International Business Machines Corporation Selectively flushing buffered transactions in a bus bridge
US6219737B1 (en) * 1998-12-10 2001-04-17 International Business Machines Corporation Read request performance of a multiple set buffer pool bus bridge
US6256699B1 (en) * 1998-12-15 2001-07-03 Cisco Technology, Inc. Reliable interrupt reception over buffered bus
TW413763B (en) * 1999-03-16 2000-12-01 Winbond Electronics Corp Data conversion device and data flow control method in between USB host and network end
US6460108B1 (en) * 1999-03-31 2002-10-01 Intel Corporation Low cost data streaming mechanism
JP2001036546A (ja) * 1999-07-16 2001-02-09 Hitachi Ltd 受信バッファ制御装置
US6708244B2 (en) * 1999-07-22 2004-03-16 Cypress Semiconductor Corp. Optimized I2O messaging unit
US6711181B1 (en) * 1999-11-17 2004-03-23 Sony Corporation System and method for packet parsing and data reconstruction in an IEEE 1394-1995 serial bus network
US6684272B1 (en) * 1999-12-23 2004-01-27 Intel Corporation Throughput enhancement for a universal host controller interface in a universal serial bus
US6529521B1 (en) * 1999-12-27 2003-03-04 Emc Corporation Data storage system
US6807585B2 (en) * 2001-02-22 2004-10-19 Ati Technologies, Inc. Method and system for parsing section data

Also Published As

Publication number Publication date
JP3870717B2 (ja) 2007-01-24
EP1260908B1 (de) 2005-08-03
US20020169904A1 (en) 2002-11-14
TW556090B (en) 2003-10-01
KR20020087859A (ko) 2002-11-23
KR100460650B1 (ko) 2004-12-09
EP1260908A2 (de) 2002-11-27
EP1260908A3 (de) 2003-05-14
ATE301307T1 (de) 2005-08-15
US6901465B2 (en) 2005-05-31
DE60205305D1 (de) 2005-09-08
CN1385791A (zh) 2002-12-18
CN1282094C (zh) 2006-10-25
JP2002342261A (ja) 2002-11-29

Similar Documents

Publication Publication Date Title
DE60205305T2 (de) Datensteueranlage, elektronisches Gerät und Verfahren zur Übertragungssteuerung
DE60205809T2 (de) Datensteueranlage, elektronisches Gerät und Datenübertragungssteuerverfahren
DE19900325B4 (de) Vorrichtung und Verfahren zum Senden und Empfangen von Daten in eine und aus einer universellen seriellen Buseinrichtung
DE19900290B4 (de) Verfahren zum Betreiben einer universellen seriellen Buseinrichtung und universelle serielle Buseinrichtung
DE60205531T2 (de) Datentransfersteueranlage, elektronisches Gerät und Datentransfersteuerverfahren
DE60309391T2 (de) Datenübertragungssteuerungssystem, Programm und Datenübertragungssteuerungsverfahren
DE19962768B4 (de) Verfahren zum Übertragen von Daten über einen Datenbus mit minimierter digitaler Intersymbolstörung
DE69836426T2 (de) Steuergerät für einen universellen seriellen Bus
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
DE19900331A9 (de) Vorrichtung und Verfahren zur Implementierung eines USB-Endpunktkanals mit doppelter Pufferunterstützung
DE19900369B4 (de) Vorrichtung zum Anschluß an einen Universal Serial Bus (USB) und Verfahren zum Betreiben eines Steuerendpunktes an einem Universal Serial Bus (USB)
DE19982872B4 (de) System zum dynamischen Ändern der Ablaufpriorität eines Empfangsfifos
DE60127890T2 (de) Verfahren zur Verarbeitung empfangener Daten in einer Kommunikationsvorrichtung zur Unterstützung drahtloser Bluetooth-Kommunikation
DE69935065T2 (de) Datenübertragungssteuerinrichtung und elektronisches gerät
DE19900245A1 (de) Vorrichtung und Verfahren zum Senden und Empfangen von USB-Isochrondaten
DE19900290A9 (de) Verfahren zum Betreiben einer universellen seriellen Buseinrichtung und universelle serielle Buseinrichtung
DE19900331A1 (de) Vorrichtung und Verfahren zur Implementierung eines USB-Endpunktkanals mit doppelter Pufferunterstützung
DE112006001547T5 (de) Verbesserungen bei Aussetz- und Wiederaufnahmeoperationen für einen universellen seriellen Bus (USB)
DE69829987T2 (de) E/a bus mit schnellen 16-bit zerteilten transaktionen
DE69834220T2 (de) Serielle Datenübertragung zwischen einem Datenverarbeitungsgerät und einer externen Speicheranordnung
DE112020000146T5 (de) Handhabung einer eingabe-/ausgabe-speicheranweisung
DE10234990B4 (de) Hostcontroller, Verfahren zum Betreiben, zugehöriges Southbridgebauelement und Computersystem zur Steuerung der Ersetzung im voraus geholter Deskriptoren in einem Cache
DE19900251B4 (de) Vorrichtung und Verfahren zum Steuern eines vielseitigen USB-Endpunktkanals
DE69730399T2 (de) Schnittstellengerät zur Anpassung von Datenbreite an Systembusbreite
JP3588005B2 (ja) 印刷システムにおける印刷方法

Legal Events

Date Code Title Description
8364 No opposition during term of opposition