DE3851676T2 - Datenpaketierungsverfahren. - Google Patents

Datenpaketierungsverfahren.

Info

Publication number
DE3851676T2
DE3851676T2 DE3851676T DE3851676T DE3851676T2 DE 3851676 T2 DE3851676 T2 DE 3851676T2 DE 3851676 T DE3851676 T DE 3851676T DE 3851676 T DE3851676 T DE 3851676T DE 3851676 T2 DE3851676 T2 DE 3851676T2
Authority
DE
Germany
Prior art keywords
box
host
channel
queue
peripheral
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE3851676T
Other languages
English (en)
Other versions
DE3851676D1 (de
Inventor
Bruce Eric Newman
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of DE3851676D1 publication Critical patent/DE3851676D1/de
Application granted granted Critical
Publication of DE3851676T2 publication Critical patent/DE3851676T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Selective Calling Equipment (AREA)

Description

    ZUGEHÖRIGE ANMELDUNGEN
  • Diese Anmeldung gehört zu den folgenden europäischen Patentanmeldungen, die am selben Tag wie die vorliegende Anmeldung eingereicht wurden. Diese Anmeldungen enthalten wenigstens teilweise eine gemeinsame Offenbarung bezüglich eines Ausführungsbeispiels einer peripheren Zwischenstellenbox. Jede enthält jedoch Ansprüche für eine unterschiedliche Erfindung.
  • EP-A-0 303 288: Periphere Zwischenstellenbox
  • EP-A-0 303 289: Gleichleistungsüberwacher
  • EP-A-0 310 788: System zum Zulassen einer peripheren Austauschbarkeit
  • HINTERGRUND DER ERFINDUNG
  • Diese Erfindung betrifft Computersysteme im allgemeinen, und insbesondere ein Verfahren zum Paketieren von Daten in einem System, wobei eine Kommunikation zwischen verschiedenen Vorrichtungen stattfindet.
  • In großen Computersystemen, und insbesondere in Systemen, die Graphikanzeigen erzeugen, ist eine Vielzahl unterschiedlicher Arten periphere Vorrichtungen zum Liefern einer Eingabe zu dem Computersystem vorgesehen. Beispielsweise kann ein einzelnes System eine Tastatur, eine Maus, eine Tafel, einen Lichtgriffel, Wählscheibenboxen, Schaltboxen usw. als Eingabevorrichtungen haben. In einem System mit einer Vielzahl solcher peripheren Einheiten ist es vorteilhaft, eine Vorrichtung zu haben, die Eingaben von jeder dieser peripheren Vorrichtung sammeln und dann die verschiedenen Eingaben über eine einzige Leitung zu dem Computersystem übertragen kann. Eine derartige Vorrichtung wird hierin periphere Zwischenstellenbox genannt, und zwar deshalb, weil sie als Zwischenstelle bzw. Relais für jede der einzelnen peripheren Vorrichtungen wirkt.
  • In einem derartigen System ist es eine notwendig, für eine Kommunikation mit den peripheren Vorrichtungen und mit dem Computersystem Datenprotokolle für die periphere Box aufzubauen. Idealerweise sollen diese einfach, störungsfrei und effizient sein.
  • ELEKTRONIK, Bd. 36, Nr. 13, Juni 1987, Seiten 102 bis 104; T. ROTHHAUPT: "16- Bit-Mikrocontroller steuert Multifunktions-Tastatur" offenbart ein System mit einem Host, einer peripheren Zwischenstelle, die einen Mikrocontroller HPC 16040 von National Semiconductors verwendet, und mit einer Anzahl von peripheren Vorrichtungen, wobei Daten paketiert und zu dem Host gesendet werden. Ein Paketieren wird mittels eines Unterbrechungs-Zeitgebers erreicht, der auf 50 ms eingestellt ist.
  • HEWLETT-PACKARD JOURNAL, Bd. 38, Nr. 6, Juni 1987, Seiten 8 bis 12; R. R. STARR: "The Hewlett-Packard human interface link" offenbart auch ein System mit einem Host und einer Anzahl peripherer Vorrichtungen und beschreibt verschiedene Datenübertragungsanordnungen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Das Verfahren der vorliegenden Erfindung bietet ein Verfahren zum Paketieren von Daten, das bei einer solchen Kommunikation hilft. Obwohl es für ein Einstellen einer peripheren Zwischenstellenbox offenbart wird, ist das Verfahren allgemein bei einem Datenübertragungssystem anwendbar.
  • Die periphere Zwischenstellenbox (PR-Box) der vorliegenden Erfindung wird zuallererst verwendet, damit die peripheren Vorrichtungen an dem Monitorplatz mit Leistung versorgbar sind. Die PR-Box sammelt die verschiedenen peripheren Signale unter Verwendung einer herkömmlichen RS-232-C- oder RS-423- Verbindung aus sieben peripheren Kanälen, die dann paketiert und zu einem Host, z. B. einem Computer und/oder einem Graphik-Steuerprozessor gesendet werden, und zwar unter Verwendung von RS-232-C-Signalen. Übertragungen zu den peripheren Vorrichtungen werden auf ähnliche Weise von dem Host aus durchgeführt, d. h. es erfolgt ein Empfangen von Paketen von dem Host, ein Entpaketieren der Daten und ein Kanalisieren der Daten zu einer geeigneten peripheren Einheit mit serieller Leitung (SLU).
  • Die periphere Zwischenstellenbox der vorliegenden Erfindung ist insbesondere zur Verwendung in einem Graphiksystem des Typs geeignet, der in der EP-A-0 303 290 290 offenbart ist, die den Titel "Console Emulation For A Graphics Workstation" hat und am selben Tag wie die vorliegende Anmeldung eingereicht wurde.
  • Die Kommunikationen zwischen der PR-Box und dem Host werden mit einem neuen Protokoll ausgeführt, das für eine zuverlässige fehlerfreie Übertragung sorgt.
  • Die PR-Box verwendet ein System mit ringförmigen Warteschlangen und Puffern, um zu den peripheren Vorrichtungen ankommende und von ihnen abgehende Nachrichten zwischenzuspeichern. Nachrichten sind zur Übertragung in Paketen angeordnet. Gemäß-dem Verfahren der vorliegenden Erfindung wird ein Ende einer Nachricht von einer peripheren Vorrichtung durch Zählen von Bytes erfaßt. Alternativ dazu wird, wenn die Zeit zwischen empfangenen Bytes einen vorbestimmten Wert überschreitet, dies dazu verwendet, das Ende einer Nachricht zu erfassen.
  • Zum Aktivhalten von Kommunikationen zwischen der PR-Box und dem System wird ein Zeitgeber zum "am Leben halten" verwendet. Dies führt dazu, daß eine Nachricht zum "am Leben halten" gesendet wird, wenn es innerhalb einer vorbestimmten Zeitdauer keine andere Kommunikation gegeben hat.
  • Periphere Vorrichtungen, die durch das offenbarte Ausführungsbeispiel der PR- Box unterstützt werden, enthalten:
  • eine Tastatur;
  • eine Maus;
  • eine Tafel; und
  • einen Wählscheibenbox.
  • Zusätzlich sind bei dem dargestellten Ausführungsbeispiel drei andere Kanäle für eine zukünftige Erweiterung vorgesehen, um für Knopfbox-Kanal, einen Reservetastatur-Kanal und einen allgemeinen Reserve-RS-232-C-Kanal bereitzustellen.
  • Die Erfindung ist im Anspruch 1 definiert. Ausführungsbeispiele sind in den abhängigen Ansprüchen 2 und 3 definiert.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist ein Blockdiagramm eines Computersystems, in dem die PR-Box der vorliegenden Erfindung verwendet werden kann.
  • Fig. 2 ist ein grundsätzliches Blockdiagramm de PR-Box der vorliegenden Erfindung.
  • Fig. 3A-C sind ein Flußdiagramm der Firmware, die in der PR-Box der vorliegenden Erfindung läuft.
  • Fig. 4A-H stellen die Übertragung von Paketen durch die Verwendung ringförmiger Warteschlangen und ringförmiger Puffer gemäß der vorliegenden Erfindung dar.
  • Fig. 5 ist eine Tabelle, die die Fehler-Baudraten für die verschiedenen peripheren Vorrichtungen auflistet, die bei dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung verwendet werden.
  • Fig. 6 ist eine Tabelle, die die Zeichen-Zeiten zeigt, die zu jeder Baudrate gehören, zur Verwendung bei einer Zwischenpaketierungs-Zeitgabe gemäß der vorliegenden Erfindung.
  • Fig. 7 ist ein Flußdiagramm, das die grundsätzliche Zeitgabe darstellt, die für eine Zwischenpaketierungs-Zeitgabe verwendet wird.
  • Fig. 8 ist ein Diagramm, das den Aufbau des Kopf-Bytefeldes zeigt, das bei der vorliegenden Erfindung verwendet wird.
  • Fig. 9A-C sind Diagramme, die das Nachrichten-Übertragungsprotokoll der vorliegenden Erfindung zeigen.
  • DETAILLIERTE BESCHREIBUNG Systemübersicht
  • Fig. 1 ist ein Blockdiagramm eines Computersystems, das zeigt, wo die periphere Zwischenstellenbox der vorliegenden Erfindung in das System eingepaßt ist. Das dargestellte System ist ein Graphiksystem. Jedoch ist die vorliegende Erfindung auf andere Computersysteme anwendbar. Somit ist ein Monitor 11 dargestellt, der eine Videoeingabe von einem RGB-Koaxkabel 13 empfängt, das mit einem berechnenden Gerät 14 gekoppelt ist, das die graphischen Berechnungen durchführt. In dem Gerät 14 ist, wie es dargestellt ist, ein Graphik-Prozessor 15, ein Hauptcomputer 17, z. B. ein Vax-8250-System, und ein Computer 19, der als Steuerprozessor wirkt, der ein Mikrovax-Computer sein kann, enthalten. Der Computer 17 ist ein Host für den Computer 19 und der Computer 19 ist ein Host für die PR-Box 21, die unten beschrieben ist. Somit ist nachfolgend, wenn auf einen Host Bezug genommen wird, durch diese Bezugnahme der Computer 19 gemeint. Die Operation dieses Teils des Systems ist ausführlicher in der EP-A-0 303 290 mit dem Titel "Console Emulation For A Graphics Workstation" beschrieben, die am selben Tag wie die vorliegende Anmeldung eingereicht wurde. Die periphere Zwischenstellenbox 21 ist in Fig. 1 zusammen mit den verschiedenen peripheren Vorrichtungen dargestellt, die in sie eingestöpselt werden können. Diese enthalten eine Tastatur 23, eine Maus 25, eine Tafel 27, Knöpfe 29, d. h. einen Wählscheibenbox, Tasten 31, einen Reserve-R5232-Kanal 33 und ein Reservetastatur-Eingabegerät 35.
  • Die periphere Zwischenstellenbox ist ein selbstenthaltenes Mikroprozessorsystem, das bei dem dargestellten Ausführungsbeispiel unterhalb des Monitors angeordnet ist. Es ist für die Handhabung von Information verantwortlich, die zwischen dem Host und den peripheren Vorrichtungen fließt. Dies ist ein freilaufendes Untersystem, das eine Selbstprüfung seines eigenen inneren Zustands beim Hochfahren durchführt. Nach Beenden dieser Aufgabe initialisiert es sich selbst und sucht kontinuierlich nach einer Aktivität von dem Host oder den peripheren Vorrichtungen.
  • Vier periphere Kanäle (für eine Tastatur 23, eine Maus 25, eine Tafel 27 und Knöpfe 29) und ein Befehlskanal (zur Kommunikation mit dem Host) sind vorgesehen, um alle unterstützten peripheren Vorrichtungen zu verbinden. Zusätzlich sind drei Reservekanäle für eine zukünftige Erweiterung oder besondere periphere Vorrichtungen, z. B. die Reservetastatur 35, die Tastenbox 31 und die Reserve 33 der Fig. 1, vorgesehen.
  • Das Untersystem besteht aus einem Minimalsystem, wie es in Fig. 2 gezeigt ist. So ist eine 8031-Mikroprozessor-CPU 41 dargestellt, der auf herkömmliche Weise eine Takt-/Rücksetzeinheit 43 mit einem 12 mHz-Kristalloszillator zugeordnet ist. Mit der 8031-CPU ist ein herkömmlicher Steuer-Decodierblock 45 gekoppelt, der die CPU mit einem Bus 47 koppelt. Der Bus 47 koppelt die CPU mit einem Speicher 49, der 16K eines RAM 51 und 8K eines ROM 53 enthält. Der 8031 hat keinen ROM auf dem Chip und einen ungenügenden RAM auf dem Chip. Deshalb wird der 8031 in einer erweiterten Buskonfiguration verwendet, die drei der vier verfügbaren Anschlußstellen für allgemeine Zwecke für eine Adresse, Daten und zur Steuerung verwendet. Diese sind über einen Block 45 mit dem Bus 47 gekoppelt. Ein Ermöglichen der externen Adressierungsfähigkeit für die erweiterte Buskonfiguration wird durch Erden (durch einen Jumper bzw. eine Drahtbrücke) des EA-Pins, d. h. des Pins für externen Zugriff, erreicht.
  • Die Adresse niedriger Ordnung und die Daten werden auf dem 8031 multiplext, die Adresse wird während einer Adreßzeit mit einer Verzögerung von oktal 74LS373 verzögert, die über das ALE-(Adreßverzögernngsfreigabe)-Signal abgetastet wird, das von dem 8031 ausgegeben wird.
  • Der Bus 47 ist auch mit einem Diagnoseregister 55 verbunden. Das Diagnoseregister liefert eine Ausgabe zu einer Anzeige 57 mit 8 LEDs. Mit dem Bus 47 ist auch ein Funktionsregister 59 gekoppelt, das seine Ausgabe zu einer dreifarbigen LED 61 liefert, die nachfolgend genauer beschrieben wird. In Fig. 2 ist auch der Gleichleistungsmonitor bzw. -überwacher 63 gezeigt, der seine Ausgabe zu einer zweifarbigen LED 64 liefert, um Unter- oder Überspannungsbedingungen anzuzeigen, wie es nachfolgend im Detail erklärt wird.
  • Der Bus 47 schafft auch eine Verbindung zu Einheiten mit serieller Leitung (SLU) 0- 7 zusammen mit einer Modemsteuerung, die in einem Block 62 enthalten ist. Der Block 62 ist das, was als oktaler asynchroner Empfänger/Sender oder als OCTALART bekannt ist. Eine derartige Vorrichtung wird von Digital Equipment Corporation in Maynard, MA. als DC 349 hergestellt. Grundsätzlich umfaßt der OCTALART acht identische Kommunikationskanäle (tatsächlich acht UARTS) und zwei Register, die eine zusammenfassende Information über die gemeinsamen Modem-Steuersignale und die Unterbrechungs-Kanaldefinition für Unterbrechungen bereitstellen. Einheiten mit serieller Leitung 0-6 sind mit den sieben peripheren Vorrichtungen gekoppelt, die in Fig. 1 gezeigt sind. SLU 7 ist die Hostverbindung, die in Fig. i gezeigt ist. Die Ausgänge der SLUs sind über Transceiver 69 gekoppelt, deren Ausgänge wiederum mit einem Verteilungseinschub 71 verbunden sind, in das die verschiedenen Verbindungsstücke eingestöpselt werden. Ein Block 69 enthält EIA-Leitungstreiber vom Typ 9636, die aufgrund einer bipolaren Versorgungsspannung von +/-12 Volt arbeiten und die Signale von TTL-Pegeln zu einem bipolaren RS-232-C- kompatiblen Signalpegel von etwa +/-10 Volt umsetzen.
  • Der Hostkanal (SLU 7), der Tastaturkanal und der Reservekanal haben keine Vorrichtungserfassungsfähigkeit. Die anderen fünf Kanäle haben eine Eingangsleitung, die mit dem DCD-(Datenträgererfassungs)-Pin der entsprechenden SLU des OCTALART 62 verbunden ist. Wenn der Pin an der Kanalanschlußseite geerdet ist, ist die Eingangsseite des OCTALART hoch, was anzeigt, daß an jenem Kanal eine Vorrichtung vorhanden ist.
  • Ein Dateneinstell-Änderungs-Zusammenfassungsregister im Block 62 wird eine Unterbrechung veranlassen, wenn sich der Zustand eines dieser Pins ändert, d. h. eine Änderung von einem hohen zu einem niedrigen oder von einem niedrigen zu einem hohen Pegel. Dies zeigt an, daß eine Vorrichtung hinzugefügt oder entfernt worden ist, nachdem das System in den Operationsmodus eingetreten ist. Beim Starten liest der 8031 dieses Register, um zu bestimmen, welche Vorrichtungen, die diese Fähigkeit haben, angeschlossen sind und diese Information in ein Konfigurationsbyte (einen Speicherbereich in der Software) eingeben, das als Teil des Selbsttestberichts zu dem Host gesendet wird. Diese Fähigkeit erlaubt ein Wissen darüber, welche peripheren Vorrichtungen an welchen Anschlüssen angeschlossen sind und erlaubt somit einen Austausch der peripheren Vorrichtungen. Die PR-Box sendet jedesmal, wenn eine periphere Vorrichtung eingestöpselt oder ausgestöpselt wird, eine Nachricht zu dem Host, was ihm erlaubt, eine periphere Vorrichtung abzufragen und eine Tabelle zu erneuern, die er behält.
  • In dem freilaufenden Operationsmodus nimmt die PR-Box Datenpakete von dem Host über die SLU 7 an und verifiziert die Unversehrtheit jener Daten. Wenn die Daten oder den Befehl aus dem Paket heraus und kanalisiert sie durch ihre zugehörige SLU zu der bestimmten peripheren Vorrichtung. Wenn die Daten schlecht sind, d. h. ein Prüfsummenfehler auftritt, sendet die PR-Box ein NAK-Signal zu dem Host, um nach einer nochmaligen Übertragung zu fragen, und wirft das Paket weg, das er empfangen hatte. Diese Kommunikationen sind nachfolgend unter Bezugnahme auf die Fig. 5C bis 9C detailliert beschrieben.
  • Die PR-Box kann auch Befehle empfangen, um sich selbst zu testen, und über einen Zustand/eine Konfiguration berichten, um die Diagnose-LEDs zu ändern, und um Baudraten zu ändern, während sie im Operationsmodus ist.
  • Der Selbsttest-Modus verifiziert die Unversehrtheit des Mikroprozessor- Untersystems. Nach einem Beenden der inneren Schleifenrückführung des OCTALART wird das Untersystem sich selbst erneut initialisieren und zu dem Operationsmodus zurückspringen. Ein Selbsttest wird beim Hochfahren oder durch Empfang eines ausgeführten Selbsttest-Befehls von dem Host eingegeben. Dies wird die Funktionsfähigkeit der PR-Box-Logik prüfen.
  • Ein Untertest für die innere Schleifenrückführung ist in dem Selbsttest vorgesehen, was dem System erlaubt, die Unversehrtheit der PR-Box-Logik Software-gesteuert zu verifizieren. Während der Selbsttest gerade arbeitet, gibt es keine logische Verbindung zwischen dem Host und der PR-Box. Dies ist nur während des Selbsttestes wahr. Es gibt keine Wirkung auf die peripheren Vorrichtungen, wenn die PR-Box den inneren Schleifenrückführungsteil des Selbsttestes durchläuft, weil keine Daten an den Übertragungspins der UART-Leitungen in dem OCTALART 67 ausgegeben werden. Zusätzlich werden Daten, die von den peripheren Vorrichtungen hereinkommen, während des Schleifenrückführungstests keine Wirkung auf die PR-Box haben, da alle Daten an den UART-Empfangspins des OCTALART 67 ignoriert werden.
  • Ein externes Schleifenrückführungstesten kann auf einem einzelnen peripheren Kanal unter Verwendung der geeigneten Schleifenrückführung auf dem zu testenden Kanal durchgeführt werden. Dies wird von der Host-Firmware durchgeführt. Die periphere Zwischenstelle ist von dieser Operation nicht betroffen. Dies ist das Testen, das weiter unten erklärt wird und eine Austauschbarkeit der peripheren Vorrichtungen zuläßt.
  • Ein Herstellungstest-Modus ist durch einen Jumper in dem Hostkanal- Schleifenrückführungs-Anschlußstück vorgesehen. Dieser Jumper wird an einem 8031 beim Hochfahren erfaßt. In diesem Modus durchläuft das Modul kontinuierlich alle Tests (wie beim Selbsttest) auf allen Kanälen, und einen "Vorrichtung vorhanden"-Test und einen Test für eine externe periphere Kanal- Schleifenrückführung. Zur Hilfe bei einer Reparatur ist eine "Schleife bei Fehler"- Funktion implementiert worden.
  • Das Acht-Bit-Diagnoseregister 55 mit acht angebrachten LEDs 57 stellt den PR- Box-Zustand und etwas vom Systemzustand bereit (unter der Annahme einiger Grundfunktionalität dem Hauptsystems). Dieses Register wird durch die PR-Box verwendet, um ihren dynamischen Zustand während eines Selbsttests oder eines Herstellungstests anzuzeigen, um auf einen Eintritt in einen Operationsmodus irgendeinen weichen oder harten Fehler anzuzeigen, der aufgetreten sein kann. Das MSB (Bit 7) wird verwendet, um anzuzeigen, daß ein PR-Box-Fehler aufgetreten ist, Bit 6 wird verwendet, um anzuzeigen, daß ein Systemfehler angezeigt wird. Wenn Bit 6 erleuchtet wird, dann ist der angezeigte Fehlercode der Systemfehler, ungeachtet des Bits 7. Dies läßt 6 Bits zum Erzeugen codierter Fehlerantworten. (Die LED-Fehlercodes sind unten aufgelistet.)
  • Der Leistungsüberwachungs-Schaltkreis
  • Der Schaltkreis 63 zum Überwachen der positiven und negativen 12 V- Versorgungen arbeitet aufgrund der +5 V-Versorgung. Eine einzelne rot-grüne zweifarbige LED 64 ist an den Ausgang des Leistungsüberwachungs-Schaltkreises 63 angeschlossen. Die Ausgangs-Indikatoren sind wie folgt:
  • LED-Anzeige Beschreibung Grün Alle Spannungen vorhanden und innerhalb des Bereichs
  • Rot Entweder die positive, die negative oder beide 12 V-Versorgungen sind etwa 15% außerhalb der Spezifikation oder vollständig ausgefallen
  • Keine +5 V-Versorgung, alle Versorgungsspannungen ausgefallen oder keine Wechselspannung
  • Der Gleichleistungs-Monitor ist ein Satz von vier Komparatoren zum Prüfen einer Unterspannung und einer Überspannung außerhalb des Bereichs, und zwar etwa von 15% vom Nennwert für die positive und negative 12 V-Versorgung. Der Schaltkreis arbeitet ab positiven fünf Volt und verwendet eine Präzisionsreferenz von positiven zwei Volt, die an den geeigneten Referenzeingang jedes Komparators angelegt wird. Der Ausgang ist an eine zweifarbige LED 64 angeschlossen. Präzisions-Widerstandsteiler, die an den anderen Eingang jedes Komparators angeschlossen sind, skalieren die Testspannung zu demselben Bereich nach unten, wie ihn der Referenzeingang aufweist.
  • Der Funktionsmonitor
  • Wie es in Fig. 2 gezeigt ist, ist eine LED 61 mit drei Zuständen an den Ausgang eines Zwei-Bit-Funktionsregisters 59 angeschlossen. Diese wird dazu verwendet, eine visuelle Anzeige von dem Modus oder der Funktion zu geben, welchen bzw. welche die PR-Box zu jenem Zeitpunkt gerade durchführt.
  • LED-Anzeige Beschreibung Gelb Selbsttestmodus, der ausgeführt wird
  • Rot Herstellungstest, der ausgeführt wird
  • Grün Operationsmodus aktiv
  • PR-Box-Operationsübersicht
  • Der PR-Box-ROM 53 enthält einen Selbsttest und eine Operations-Firmware. Diese Firmware ist in 4 K-Bytes des ROM enthalten, obwohl dafür 8 K-Bytes reserviert sind. Eine Auflistung der Firmware ist in Anhang A gezeigt. Ein Flußdiagramm für die Firmware ist in den Fig. 3A-C gezeigt.
  • Beim Einschalten, das durch Block 301 gezeigt ist, wird die Diagnose auf der Karte die PR-Box steuern, wie es im Block 303 gezeigt ist. Die Diagnose wird Tests an der PR-Box-Logik durchführen und eine externe Schleifenrückführung und einen Test durchführen, wenn ein Pin 7 an der 8031-Anschlußstelle 1 geerdet ist (was den Herstellungsmodus kennzeichnet). Im Herstellungsmodus wird die Diagnose fortwährend eine Schleife 305 durchlaufen und nicht in einen Operationsmodus gelangen. Dies wird über ein Erfassen des Schleifenrückführungs-Anschlußstücks (Pin 7) beim Einschalten durchgeführt. Wenn während des Herstellungsmodus ein Fehler auftritt, wird die Diagnose den Test fortwährend durchlaufen, bei dem der Fehler auftrat.
  • Register 55 und 59 mit angebrachten LEDs 57 und 61 (siehe Fig. 2) können von außerhalb der Systembox angesehen werden. Das Diagnoseregister 55 ist, wie es oben angemerkt ist, 8 Bits breit und hat rote LEDs. Diese LEDs berichten über Fehler für die PR-Box und/oder das System. Wie es auch beschrieben ist, ist das Funktionsregister 59 zwei Bits breit und hat eine einzelne Rot/Gelb/Grün-LED. Wenn der Herstellungsmodus eingestellt ist, ist die Funktions-LED rot, wie es im Block 303 gezeigt ist, auf ein Einschalten hin, während eines anderen als dem Herstellungsmodus, wird die Funktions-LED gelb sein. Im Operationsmodus wird sie grün sein.
  • Die verschiedenen beim Einschalten durchgeführten Tests sind durch Blöcke 307- 314 gezeigt. Wenn der Herstellungsmodus eingestellt ist, wird, wie es im Block 315 der Fig. 3B geprüft wird, der Test der Blöcke 316 und 317 auch vor einem Eintreten des Blocks 318 in eine Schleife 305 durchgeführt.
  • Wenn die PR-Box beim Einschalten einen Fehler aufweist, der das PR-System unbrauchbar macht, d. h. eine Unterbrechung, ein 8031-Fehler, wird die Funktions- LED gelb bleiben, und ein Versuch zum Bringen des Fehlercodes in das Diagnoseregister wird durchgeführt, und die PR-Box wird nicht in den Operationsmodus gelangen.
  • Wenn es keine Fehler gibt, oder Fehler, die das System nicht unbrauchbar machen, und das System nicht im Herstellungsmodus ist, wird einem Pfad 320 zum Block 401 der Fig. 3C gefolgt, und die Funktions-LED wird auf grün schalten und auf ein Signal ACK/NAK des Hosts warten, den Diagnosebericht zum Aufbauen der Verbindung zwischen dem Host und der PR-Box. Wenn die Verbindung nie aufgebaut wird, wird der Fehlercode für NO-Host in den Diagnose-LEDs angeordnet, und die PR-Box wird in den Operationsmodus gelangen. Wenn die Kommunikationsverbindung später aufgebaut wird, wird der Fehlercode gelöscht.
  • Wenn es weiche Fehler gibt (Diagnoseregister oder Funktionsregister) wird die PR- Box in den Operationsmodus der Fig. 3C gelangen und die Hintergrundverarbeitung ausführen. Jedoch kann jede LED-Anzeige unrichtig sein. Außer für ein totes System, d. h. 8031-Ausfälle bzw. -Fehler, wird die PR-Box versuchen, in den Operationsmodus zu gelangen, und wenn es möglich ist, die Stelle anzeigen, an der beim Selbsttest ein Fehler auftrat (Testzahl).
  • Nachdem die Einschaltdiagnose beendet worden ist, wird die Steuerung zu der Operations-Firmware geführt. In diesem Modus wird die Firmware die Verbindung zwischen dem Host und der PR-Box aktiv halten, und auch Befehle/Daten zwischen den peripheren Vorrichtungen und dem Host multiplexen/demultiplexen. Diese Operation ist nachfolgend im Detail beschrieben.
  • Das Diagnose-/Betriebssystem dieses Systems basieren auf einem ROM und laufen auf dem 8031-Mikroprozessor. Die PR-Box-Firmware ist kompatibel zu den existierenden peripheren Vorrichtungen und ist eng verbunden mit einem Kommunikationsprotokoll, das für die Host-PR-Box-Verbindung entwickelt ist, die nachfolgend erörtert ist.
  • Die Diagnosen sind der erste Teil der Firmware, der beim Einschalten der PR-Box läuft. Die Diagnosen lassen das System in einem bekannten Zustand, bevor eine Steuerung zu der Operations-Firmware geführt wird. Auf ein Beenden des Testens der PR-Box hin wird der System-RAM 51 initialisiert, Warteschlangen werden gelöscht, die UARTs in einem OCTALART 67 werden auf die Fehlergeschwindigkeiten und Datenformate eingestellt, das Diagnose- und das Modusregister 55 und 57 werden mit den geeigneten Werten besetzt, und ein Systemzustandsbereich wird eingestellt, der den Zustand der PR-Box enthält.
  • Wenn die Diagnosen einmal beendet sind, wird der Diagnosebericht zu dem Host gesendet, und die PR-Box gelangt in den Operationsmodus. Wenn es keine anderen Nachrichten gibt, die zu senden sind, wird die PR-Box 10 Sekunden auf ein ACK/NAK-Signal warten, bevor ein Fehlercode für "keine Kommunikationsverbindung" in dem Diagnoseregister 55 angeordnet wird. Ein ACK/NAK-Zeitgeber ist für alle anderen Pakete vorgesehen und läuft nach 20 ms ab. Wenn sie einmal arbeiten, werden die UARTS freigegeben, eine Kommunikation zwischen den peripheren Vorrichtungen und dem Host zuzulassen. Es wird auch ein Zeitgeber zum "am Leben halten" freigegeben, um die Hostverbindung aktiv zu halten.
  • Operationsmodus
  • In diesem Modus ist die PR-Box 21 die zentrale Kommunikationsvorrichtung, die zwischen den peripheren Vorrichtungen und dem Host 19 sitzt. (Siehe das Blockdiagramm der Fig. 1). Vor einer detaillierten Beschreibung dieses Modus müssen einige Grundausdrücke und eine bei der PR-Box verwendete Speicherzuordnung erörtert werden.
  • Eine Seite des Speichers ist 256 Bytes lang. Die Adresse niedriger Ordnung der Anfangsseite des Speichers ist null, das obere Byte läuft von 0 bis 255. In dieser Beschreibung wird der Ausdruck "Anschlußtor" austauschbar mit "Kanal" verwendet und bezeichnet das periphere Anschlußtor.
  • Der 8031 hat 128 Bytes eines RAM auf einem Chip. Von den 128 Bytes werden 36 für vordere, hintere, Empfangs- und Sende-Warteschlangenzeiger verwendet. Es gibt einen vorderen und einen hinteren Warteschlangenzeiger für jede Empfangs- und Sendewarteschlange. Empfangs- und Sendewarteschlangen sind jeder SLU- Anschlußstelle und die Befehlswarteschlange ist der PR-Box zugeordnet. Es gibt acht Anschlußstellen und einen Befehlskanal und somit gibt es 18 Warteschlangen und 36 Zeiger. Nachfolgend sind die Namen aufgelistet, die den jeweiligen Warteschlangenzeigern gegeben sind.
  • REAR-RX-QUE-PTR Eine Tabelle, die die hinteren Empfangs- Warteschlangenzeiger für Anschlußtore 0-7 und die Befehlswarteschlange 8 enthält.
  • FRONT-RX-QUE-PTR Eine Tabelle, die die vorderen Empfangs- Warteschlangenzeiger für Anschlußtore 0-7 und die Befehlswarteschlange 8 enthält.
  • REAR-TX-QUE-PTR Eine Tabelle, die die hinteren Sende- Warteschlangenzeiger für Anschlußtore 0-7 und die Befehlswarteschlange 8 enthält.
  • FRONT-TX-QUE-PTR Eine Tabelle, die die vorderen Sende- Warteschlangenzeiger für Anschlußtore 0-7 und die Befehlswarteschlange 8 enthält.
  • Die Empfangs- und Sende-Warteschlangen sind in dem RAM außerhalb des Chips gehalten. Jeder Warteschlangeneintrag ist eine Adresse des empfangenen Puffers oder des Puffers, der bereit ist, gesendet zu werden. Jeder Eintrag ist längenmäßig ein Wort, wobei ein Wort 16 Bits aufweist. Das erste Byte ist die Adresse niedriger Ordnung, und das zweite Byte ist die Adresse hoher Ordnung. Keine Puffer werden bewegt, nur Pufferadressen. Nachfolgend sind die Namen aufgelistet, die den kritischen Speicherstellen zugeordnet sind.
  • RX-i-QUE Wo i=0 bis 7, und die Befehlswarteschlange-1 Seite (256 Bytes-128 msg ptrs).
  • TX-i-QUE Wo i=0 bis 7, und die Befehlswarteschlange-1 Seite (256 Bytes-128 msg ptrs).
  • CHi-BUFFER Wo i=0 bis 7, Pufferraum für jede Anschlußstelle. Anschlußstellen 0 bis 7 sind jeweils die folgenden Größen 3/4K, 2K, 2K, 1,SK, 3/4K, 3/4K, 3/4K, 2,75K:
  • RX-BUFFERS 16 Bytes (8 Adressen, eine für jede SLU, der Befehlswarteschlange ist kein Puffer zugeordnet) - enthält das nächste freie Byte in jedem Anschlußstellenpuffer.
  • TX-BUFFERS 16 Bytes (8 Adressen, eine für jede SLU, der Befehlswarteschlange ist kein Puffer zugeordnet) - enthält das nächste Byte zum Senden für jede Anschlußstelle. (Eine Senderunterbrechung stellt dies ein).
  • TX-SIZE-TBL Anzahl von Bytes, die zum Senden für jeden Kanal gelassen sind. (8 Stellen)
  • RX-TIME-OUT Zeitgeber-Bytes für jeden Empfängerkanal. Für eine Zwischen-Zeichen-Zeitgabe. (8 Stellen)
  • PORT-TIME-OUT Zeitgeber für jeden Kanal. Stellt dann auf 10 ms ein, wenn eine Warteschlange übergelaufen ist. (Anschlußstelle wird für 10 ms ausgeschaltet) (8 Stellen)
  • KA-TIMER Zeitgeber zum "am Leben halten". Ein Zeitgeber für 10 Sekunden, der auf 10 zurückgesetzt wird, wann immer ein Paket zu dem Host gesendet wird. Wenn der Zeitgeber abläuft, wird ein Paket zum "am Leben halten" zu dem Host gesendet.
  • ACK-NACK-TIMER Zeitgeber stellt auf 20 ms ein, nachdem die Prüfsumme über ein Paket zu dem Host gesendet ist. (Der Zeitgeber wird gelöscht, wenn er in dieser Zeitperiode ein ACK- oder ein NACK-Signal empfängt. Wenn kein ACK/NACK-Signal empfangen wird, wird eine Fehler-LED an der PR- Box eingestellt.)
  • Das Verfahren, durch das auf alle Zeiger, Warteschlangen, Puffer und Tabellen zugegriffen wird, besteht im Bekommen der Basisadresse (oder Basisseite) und einem Addieren in die aktuelle Kanalzahl (oder ein Vielfaches der Kanalzahl). Beispielsweise wird zum Zug reifen auf eine Kanal-3-Warteschlange die Basisseite der Empfangswarteschlangen genommen. Die obere Adresse, z. B. BASE-Rx-PAGE, die die Basis für alle vorderen Warteschlangen ist, wird genommen, und die Kanalzahl (in diesem Fall 3) wird zu ihr addiert. Wenn dies einmal durchgeführt ist, wird der Wert, auf den durch FRONT-RX-QUE-PTR plus der Versatz von 3 als die untere Adresse für den vorderen Zeiger des Kanals 3 verwendet. Die Kanalzahl wird leicht durch Lesen von ihr aus einem Register in dem OCTALART erhalten, der während einer OCTALART-Unterbrechung die Zahl des Kanals speichert, der eine Unterbrechung verursacht. Somit verursachen Daten beispielsweise, wenn sie von dem Kanal 3 kommen, eine OCTALART- Unterbrechung. Der Kanal (3) wird in einem OCTALART-Register gespeichert. Die PR-Box liest dieses Register und addiert seinen Wert (3) zu den Basiswerten und erhält auf diese Weise schnell und leicht die notwendigen Adressen für die Zeiger etc. für den Kanal 3. Somit können alle Warteschlangen, Puffer, etc. durch gemeinsame Unterprogramme und Unterbrechungsprogramme gattungsmäßig behandelt werden, mit der Ausnahme des Kanals 7, der etwas unterschiedlich behandelt wird, weil er der Kanal ist, an den der Host angeschlossen ist.
  • Alle Warteschlangen und Puffer sind ringförmig. Die Warteschlangen sind ringförmig aufgrund der Tatsache, daß sie nur eine Seite lang sind. Die Adresse der oberen Seite wird direkt in das P2-Register des 8031 geladen. Die vorderen/hinteren Empfangs4Sende-Warteschlangenzeiger werden direkt in Register R0 oder R1 des 8031 geladen, der für externe Zugriffe verwendet werden kann. Da die Zeiger ein Byte haben (R0/R1), werden sie, wenn sie von hexadezimal FE (um 2) inkrementiert werden, automatisch auf 0 eingestellt. (FE hex + 2 = 100 hex, aber da es ein Byte- Wert ist, wird die 1 weggeworfen.) Es ist keine Datenprüfung notwendig, weil P2 und R0/R1 getrennte Register sind, und die eins läuft nicht zu dem oberen Adreßbyte über (P2).
  • Wenn sie einmal im Operationsmodus ist, wird die PR-Box alle Kanäle auf Fehler- Baudraten für die peripheren Vorrichtungen initialisieren, von denen sie erwartet, daß sie auf einem bestimmten Kanal sind. Die Fehler-Baudraten sind in der Tabelle der Fig. 5 gezeigt. Auf diese Erwartung hin wird die PR-Box auch Puffergrößen zuteilen, um eine maximale Verarbeitung von Daten zu erreichen, die von den jeweiligen peripheren Vorrichtungen empfangen und zu ihnen gesendet werden. Die Puffergröße wird derart gewählt, daß sie zur Speicherung ein Maximum von 256 Paketen ohne ein Überschreiben des Pufferraums bietet. Dies umfaßt 128 Pakete in der Warteschlange, die bereit sind, zu dem Host gesendet zu werden, und weitere 128 Pakete in einer peripheren Empfangswarteschlange, die darauf warten, zu der Host-Sendewarteschlange bewegt zu werden. Beispielsweise wird ein Kanal-0- Puffer zu 768 Bytes (3/4 K) initialisiert, um zu einer Tastatur zu passen, die eine Einzel-Zeichen-Vorrichtung ist. Jedes in dem Puffer gespeicherte Paket, das von der Tastatur empfangen wird, wird drei Bytes umfassen: Kanalzahl, Größenbyte, und das Datenbyte. Zum Speichern von 256 Paketen ist der zugeteilte Puffer 256 · 3 = 768 Bytes (314 K) lang. Wenn einmal eine Kommunikation zwischen dem Host und der PR-Box aufgebaut ist, wird der Host dann jede periphere Vorrichtung befragen, um zu bestimmen, welche Art peripherer Vorrichtung angeschlossen ist, und um Einstellungen an der Baudrate durchzuführen, wenn es notwendig ist.
  • Das Hauptprogramm, das in der PR-Box läuft, ist der oben angegebene Hintergrundprozeß. Fig. 3C ist ein Flußdiagramm, das den Hintergrundprozeß beschreibt. Zuerst wird im Block 401 auf ein Eintreten in diesen Teil der Firmware hin die Funktionsregister-Ausgabe auf grün geschaltet.
  • Dann tastet dieser Prozeß, wie es durch Block 403 gezeigt ist, die Empfangs- und Sendewarteschlangen ab, um zu sehen, ob sie leer sind. Er führt dies durch Vergleichen des vorderen Warteschlangenzeigers mit dem hinteren Warteschlangenzeiger für jede Warteschlange durch. Wenn die vordere der hinteren gleicht, ist die Warteschlange leer, und wenn sie nicht gleich sind, muß etwas unternommen werden. Der Wert 1, der in dem Hintergrundprogramm verwendet wird, ist natürlich die Kanalzahl. In diesem Fall wird i zu den Basiswerten hinzuaddiert, um die notwendigen Adressen zum Prüfen der vorderen und hinteren Zeiger zu bekommen.
  • Fig. 4A-E stellen dar, was passiert, wenn Daten in einer Empfangs-Warteschlange von einer peripheren Vorrichtung empfangen werden, und stellt auch das Verwenden ringförmiger Warteschlangen und ringförmiger Puffer gemäß der vorliegenden Erfindung dar. Fig. 4A zeigt den Zustand der Warteschlangen und Puffer, wie er anfangs ist, bevor ein Paket empfangen wird. Dargestellt ist die Warteschlange 410 für Kanal 2; der Kanal-2-Puffer 415 und eine Tabelle 417, die Zeiger für die nächste verfügbare Speicherstelle für jeden der Empfangskanäle Rx0- Rx7 und der Sendekanäle Tx0-Tx7 enthält. Wie es vorangehend angemerkt ist, werden Daten nicht von Puffer zu Puffer bewegt, sondern nur die Adressen werden von Warteschlange zu Warteschlange bewegt. Somit empfängt der Puffer 2 für den Kanal 2 die Daten, und Daten werden auch von diesem Puffer zu dem Host gesendet. Zu Beginn des Empfangs für dieses Paket ist die Warteschlange 410 leer, d. h. der vordere Zeiger 411 gleicht dem hinteren Zeiger 412. Es können viele Pakete gewesen sein, die empfangen worden sind, bevor der vordere und der hintere Zeiger 410 und 411 an der Spitze der Empfangs-Warteschlange 410 (Rx-2-Queue) sind. Der Zeiger 416 für Rx2 in Tabelle 417 zeigt zu dem nächsten freien Pufferraum im Puffer 415, der hexadezimal 44FD ist.
  • Fig. 4B zeigt, was geschieht, nachdem die erste Empfangsunterbrechung auf Kanal 2 auftritt. Adressen werden auf die oben beschriebene Weise durch Addieren der Kanalzahl (2) zu den Basisadressen erhalten. Ein Zeichen wird gelesen, das bei diesem Beispiel "A" ist. Die Adresse des Rx-Puffer-Zeigers 416 wird in die Rx-2-Warteschlange 410 bewegt. Das Paket wird in den Kanal-2-Puffer 415 geladen, und zwar zusammen mit der Kanalzahl 418, der Größe des Pakets 419, die zu 1 initialisiert ist, und dem gelesenen Zeichen, "A", wie es bei 420 gezeigt ist. Diese Handlung führt dazu, daß der Zwischen-Zeichen-Zeitgeber, der nachfolgend genauer erklärt wird, für Kanal 2 startet.
  • Der nächste freie Pufferraum ist in Tabelle 417 des Zeigers 416 gespeichert. Der Zeiger des nächsten freien Pufferraums ist bei hexadezimal 3D00. Der Zeiger des letzten freien Pufferraums war bei hexadezimal 44FF, was die Endstelle des Puffers war. Anstatt den Zeiger des freien Pufferraums nur bei hexadezimal 4500 zu erhöhen und dadurch in den Datenraum der nächsten SLU zu gehen und Daten zu verlieren, wird der freie Pufferraum zu dem Beginn des Kanal-2-Puffers gebracht. Aufgrund der Größe des Pakets und der Anzahl zugelassener Pakete, wie es nachfolgend beschrieben wird, wird kein Überlauf auftreten. Dies demonstriert die Verwendung ringförmiger Puffer in der PR-Box-Software.
  • Dieselbe Ablauffolge von Ereignissen, wie sie oben beschrieben ist und in Fig. 4B gezeigt ist, wird wiederholt, wie es in Fig. 4C und 4D gezeigt ist. Die Zeichen (B und C) werden gelesen und an den Beginn des Puffers 415 des Kanals 2 gespeichert, und die Paketgröße 419 wird entsprechend inkrementiert. Jedes Zeichen wird zu der Adresse im Kanal-2-Puffer 415 bewegt, die der Zeiger 416 (Zeiger des freien Pufferraums) der Tabelle 417 anzeigt. Der Zeiger 416 wird inkrementiert und der Zwischen-Zeichen-Zeitgeber wird erneut gestartet. Diese Ablauffolge von Ereignissen dauert an, bis der Zwischen-Zeichen-Zeitgeber abläuft.
  • Fig. 4A-E sind vereinfacht worden, um nur ein Paket in jeder Warteschlange zu einer Zeit zu zeigen. In Wirklichkeit kann jede Warteschlange viele Einträge haben und jede Anschlußstelle kann gleichzeitig Pakete empfangenisenden. Dadurch, daß jedem Kanal in der PR-Box eine Sende-Warteschlange, eine Empfangs- Warteschlange, ein Puffer und zugehörige Zeiger zugeordnet sind, ist diese Operation möglich.
  • Fig. 4E zeigt, daß, wenn der Zwischen-Zeichen-Zeitgeber einmal abläuft, der hintere Zeiger 412 zu der nächsten freien Stelle erhöht wird (FE Hex + 2 = 00). Dies bringt den hinteren Zeiger zu dem Beginn der Warteschlange, was somit wieder das Verwenden ringförmiger Warteschlangen in der PR-Box-Software als Ergebnis der zuvor erklärten Verwendung der P2- und R0/R1-Register demonstriert.
  • Alle empfangenen und gesendeten Daten von der PR-Box werden durch Unterbrechungsprogramme verarbeitet. Es gibt Programme, die beispielsweise während der Schritte der Fig. 4A-E auftreten, um die Datenpakete derart einzustellen, daß sie von den peripheren Vorrichtungen zu dem Host gesendet werden. Diese Pakete werden als beendet angesehen, wenn die Anzahl von Zeichen, die für jene periphere Vorrichtung empfangen sind, der maximalen zulässigen Paketgröße gleicht, die sechs Bytes beträgt, oder wenn es eine Auszeit des Zwischen-Zeichen-Zeitgebers für jene periphere Vorrichtung gibt. Beispielsweise beträgt die Tafel-Berichtsgröße 5 Bytes, so daß sie nach dem fünften Byte ablaufen wird und ein beendetes Paket sein wird. Eine Zwischen- Zeichen-Auszeit tritt auf, wenn eine Zeit von etwa zwei Zeichen ohne Empfang eines Bytes verstreichen.
  • Eine periphere Auszeit wird durch Zwischen-Zeichen-Zeitgeber verarbeitet, die initialisiert werden, bevor die Initialisierung eines Codes beginnt. Der Wert, der in den Zeitgeber geladen wird, bezieht sich auf die Baudrate. Es gibt eine Zeitgeberstelle für jeden Kanal. Eine Tabelle der Fig. 6 enthält eine Liste der Zeitgeberwerte, die für die unterschiedlichen Baudraten verwendet wird. Die Zeitgeberwerte werden in einem Unterbrechungsprogramm eines Zeitgebers 0 dekrementiert, was im Detail nachfolgend in Verbindung mit Fig. 7 beschrieben ist. Man betrachte beispielsweise den Fall, in dem die Tafel einen Bericht sendet, der bei 4800 Baud 5 Bytes lang ist. Bei 4800 Baud und 11 Bits pro Zeichen wird ein Senden etwa 2,3 ms pro Zeichen dauern. Dann würde der Zeitgeber in dem Fall, daß dieser Bericht gesendet wird, nach ungefähr 5 ms ablaufen, und der Puffer würde als beendet bezeichnet.
  • Wie es oben in Verbindung mit Fig. 4B offenbart ist, wird dann, wenn das erste Zeichen an Anschlußstellen 0-6 (periphere Anschlußstellen) empfangen wird, die Adresse des ersten freien Raums in jenem Puffer 415 der Anschlußstelle in der Warteschlange 410 gespeichert. Die aktuelle Anschlußstellenzahl wird in jener Stelle bei 418 gespeichert. Die nächste Pufferstelle 419 ist die Größe und wird auf 1 initialisiert. Schließlich wird das Zeichen, das eingelesen wurde, z. B. A, in dem Puffer gespeichert. Nachfolgende Bytes werden in dem Puffer 415 gespeichert, und das Größenbyte 419 wird inkrementiert.
  • Somit wird, nachdem jedes Byte gelesen ist, ein Zeitgeber für jene Anschlußstelle auf etwa das zweifache der Sendezeit für ein einzelnes Zeichen initialisiert. Dieser Zwischen-Zeichen-Zeitgeberwert wird eingestellt, wenn der Host die Baudrate auf irgendeinem Kanal ändert. Das Paket wird geschlossen, und der i-te hintere Zeiger 412 der Fig. 4A-E wird um 2 erhöht, wenn der Zeitgeber zu null zählt (abläuft), oder die Größe 6 gleicht, wobei i die Kanalzahl ist, wie es in Fig. 6E gezeigt ist.
  • Nachdem der Hintergrundprozeß eine nicht leere Rx-Warteschlange sieht, wie z. B. in Fig. 4E, wird die Pufferadresse am vorderen Ende 411 der Empfangs- Warteschlange zu dem hinteren Ende 422 der Tx-7-Warteschlange (Host) 420 bewegt. Der vordere Empfangszeiger 411 oder die Rx-Warteschlange wird zu der nächsten Stelle erhöht (die beliebig mehr Datenpuffer zum Senden haben kann oder nicht), und das hintere Ende 422 der Tx-7-Que wird zu der nächsten freien Stelle erhöht. Dies ist in Fig. 4F gezeigt.
  • Im allgemeinen wird der Sender für eine Anschlußstelle 7 eingeschaltet, wenn er es nicht bereits ist, wenn ein ACK/NACK-Signal oder ein Signal zum "am Leben halten" gesendet werden muß, oder die Warteschlange nicht leer ist. Wenn die Befehls- Warteschlange nicht leer ist, dann wird der Befehls-Analysealgorithmus ausgeführt. Senderunterbrechungen schalten sich selbst aus, wenn das letzte Zeichen gesendet ist. Das Hintergrundprogramm, ein Senden, ein Empfangen und Zeitunterbrechungen laufen alle asynchron zueinander.
  • Somit wird dann, wenn die Empfangs-Warteschlange nicht leer ist und die Warteschlange für eine Anschlußstelle 0-6 oder die Befehlswarteschlange ist, der Warteschlangen-Eintrag an dem vorderen Ende jener Warteschlange zu dem hinteren Ende 422 der Sende-Warteschlange 420 für die Anschlußstelle 7 gebracht. Das vordere Ende 411 der Empfangs-Warteschlange, bei der der Eintrag gerade herausgenommen wurde, wird um zwei inkrementiert, wie es oben in Verbindung mit Fig. 4F erklärt ist. Was gerade beschrieben worden ist, stellt dar, wie Information von einer peripheren Vorrichtung in einem Puffer empfangen wird, und die Pufferstellen in einer Empfangs-(Rx)-Warteschlange gespeichert werden und dann zu der Tx-7-Que übertragen werden, um zu dem Host gesendet zu werden.
  • Pakete von dem Host für die peripheren Vorrichtungen (0-6) oder die PR-Box (der Befehlskanal) werden auf ähnliche Weise verarbeitet, wobei zuerst die Stellen in der Rx-7-Warteschlange gespeichert werden und dann zu einer jeweiligen Tx- Warteschlange übertragen werden.
  • Wenn die Empfangs-Warteschlange für eine Anschlußstelle 7 Rx-7-Que (der Host), nicht leer ist, dann enthält das erste Byte des Puffers (bei dem Warteschlangeneintrag) die Anschlußstelle, wohin der Eintrag gerichtet sein sollte. Jener Anschlußstellenwert wird verwendet, um die geeignete Sende-Warteschlange auszuwählen, und die Pufferadresse + 1 ist der Wert, der auf jene Sende- Warteschlange gebracht wird. Wenn der Zielort die Anschlußstelle 7 ist (d. h. ein Befehl zu der PR-Box), dann wird dieser auf die Befehlswarteschlange gebracht.
  • Das erste Zeichen, das an der Anschlußstelle 7 empfangen wird, muß ein ACK-, ein NACK-, oder ein SOH-Signal sein. Wenn es ein SOH-Signal ist, wird die PR-Box erwarten, ein Paket zu empfangen. Alle folgenden Zeichen werden in dem Kanal-7- Puffer gespeichert. Nachdem das letzte Datenzeichen gelesen ist, wird die empfangene Prüfsumme mit der berechneten Prüfsumme verglichen. Wenn sie gleich sind, wird ein ACK-Signal zu dem Host gesendet, und der hintere Zeiger für Kanal 7 wird um 2 erhöht. Wenn die Prüfsumme nicht übereinstimmt, oder wenn der Zwischen-Zeichen-Zeitgeber abläuft (10 ms für den Host) wird ein NACK-Signal zu dem Host gesendet, und der hintere Zeiger für Kanal 7 wird nicht inkrementiert (die PR-Box ignoriert die Daten, die sie gespeichert hat).
  • Wenn einmal ein Eintrag auf eine Sende-Warteschlange für Anschlußstellen 0-6 gebracht ist und sie nicht leer ist, wird die Senderunterbrechung für diesen Kanal eingeschaltet, wenn sie nicht bereits eingeschaltet ist.
  • Eine Sendeunterbrechung an den Anschlußstellen 0-6 wird die Adresse bei dem iten vorderen Zeiger der Sende-Warteschlange für den Puffer nehmen, um zu senden. Das erste Byte ist die Größe, die nicht übertragen wird, aber die nachfolgenden Bytes werden übertragen, bis die Größe 0 ist. Wenn die Unterbrechung ein Senden aller Datenbytes beendet hat, wird der vordere Zeiger für den i-ten Sender um 2 erhöht, und die Unterbrechung für jene Anschlußstelle wird ausgeschaltet.
  • Eine Sende-Unterbrechung an der Anschlußstelle 7 könnte aus einigen Gründen erfolgen, wie beispielsweise dafür, ein ACK-Signal, ein NACK-Signal oder ein Paket zu dem Host zu senden. Eine Sendeunterbrechung an der Anschlußstelle 7 (Host- Anschlußstelle) wird dem Zeitgeber zum "am Leben halten" wieder zu 10 Sekunden initialisieren.
  • Wenn die PR-Box zum ersten Mal bei der Unterbrechung ein Paket zu dem Host senden soll, wird sie ein SOH-Signal senden. Das zweite Mal in dem Unterbrechungsprogramm wird sie eine Paketadresse bekommen, auf die durch den vorderen Zeiger 421 für die Sende-Warteschlange 420 des Kanals 7 gezeigt wird, wie es in Fig. 4G gezeigt ist. Das erste Byte bei jener Adresse wird der Kanal sein, von dem das Paket ist. Die PR-Box nimmt dieses Byte, sendet es und speichert die Adresse des nächsten Bytes, um es in eine Tx-Puffer-Tabelle 417 an der Stelle für den Kanal 7 zu senden. Beispielsweise stellt Fig. 4G ein Übertragen der Information für Kanal 2 dar, die erhalten wurde, wie es in den Fig. 4A-E gezeigt ist. Das nächste Mal darin wird es die Größe des Pakets senden und die Größe verwenden, um die nachfolgenden Datenbytes zu senden, bis die Größe null ist. Wenn jedes Byte gesendet ist, wird der Tx-Puffer (7) inkrementiert, um zu dem nächsten Byte zu zeigen. Wenn jedes Byte gesendet ist, wird es auch bezüglich der Prüfsumme berechnet, und die Prüfsumme wird dann gesendet, wenn die Größe null ist. Nachdem die Prüfsumme gesendet ist, wird ein Zeitgeber zu 20 ms initialisiert, um auf ein ACK-Signal oder ein NACK-Signal zu warten, und die Unterbrechung wird ausgeschaltet. Wenn ein ACK-Signal empfangen wird, wird der vordere Zeiger für den Kanal 7 um zwei erhöht, wie es in Fig. 6H gezeigt ist. Wenn der Zeitgeber abläuft, wird dieser Zeiger um zwei erhöht, und die LEDs werden den Fehlercode zum Anzeigen, daß der Host nicht geantwortet hat, aufweisen. Ein weiteres Paket kann nicht zu dem Host gesendet werden, bis ein ACK/NACK-Signal empfangen wird oder der Zeitgeber abläuft.
  • Wie es oben angemerkt ist, sendet der Host Daten zu einer physikalischen Kanaladresse. Der Host hält eine Tabelle, die anzeigt, welche Vorrichtung in einen bestimmten Kanal gestöpselt ist. Der Host kann Auskunft darüber geben, welche Vorrichtung an einem bestimmten Kanal ist, und zwar durch eine Anfrage an die Vorrichtung, einen Selbsttest-Bericht zu senden. Dies wird für Vorrichtungen durchgeführt, die gemeinsame Anschlußstücke haben, die ausgetauscht werden können (d. h. die Maus und das Tafel, die Wählscheibenbox und die Ziffernbox, etc.). Die PR-Box versucht, durch Suchen nach dem "Vorrichtung vorhanden"-Bit zu bestimmen, ob eine Vorrichtung an einen Kanal angeschlossen ist. Die Kanäle der Maus, der Tafel, der Tastenbox, der Wählscheibenbox und der Reservetastatur haben "Vorrichtung vorhanden"-Bits. Durch Verwenden dieser kann die PR-Box Auskunft darüber geben, daß es außerhalb eine Vorrichtung gibt, aber nicht, welche Vorrichtung es ist.
  • Wenn die PR-Box den Selbsttest-Bericht sendet, ist ein Byte die aktuelle Konfiguration des Systems (nur jene Vorrichtungen, die ein "Vorrichtung vorhanden"-Bit haben). Es gibt keinen Versuch, der durchgeführt wurde, ein Identifizieren zu versuchen, ob es eine Vorrichtung an dem Reservekanal, dem Hostkanal oder dem Tastaturkanal gibt.
  • Eine Empfangsunterbrechung wird an Kanälen 1-4 und 6 auftreten, wenn eine Vorrichtung eingestöpselt/nicht eingestöpselt ist. Wenn dies geschieht, wird eine Nachricht zu dem Host gesendet. Der Host befragt dann jene Anschlußstelle, um zu sehen, welche periphere Vorrichtung, wenn überhaupt, vorhanden ist, und zeichnet jene Information in einer Tabelle auf. Er stellt dann Baudraten durch Senden eines Befehls zu der peripheren Vorrichtung und darauffolgend eines Befehls zu der PR- Box ein, um die UART-Baudrate für die untersuchte Anschlußstelle einzustellen. Baudraten können zu anderen Zeiten durch den Host zurückgesetzt werden, um beispielsweise eine Übertragung von Daten zu verlangsamen, bei der exzessive Übertragungs-Fehler auftreten.
  • Die Zeitgeber-0-Unterbrechung enthält die Zähler für die Zwischen-Zeichen- Zeitgeber, Zähler für eine Anschlußstelle, die zuvor ausgeschaltet wurde, und den ACK/NACK-Zähler. Fig. 7 ist ein Flußdiagramm, das den Zeitgeber 0 darstellt.
  • Wie es in Fig. 7 gezeigt ist, erfolgt eine Zeitgeberunterbrechung etwa alle 1,38 ms. Auf das Auftreten einer Unterbrechung hin, wie es durch Block 501 gezeigt ist, werden Register gespeichert und die Registerbänke geändert. Die Zeit bis zu der nächsten Unterbrechung wird dann als 1,38 ms geladen, wie es durch Block 503 gezeigt ist. Der nächste Schritt besteht darin, die Basisadresse der Empfangs- Auszeittabelle der Zwischen-Zeichen-Zeitgeber zu bekommen. Diese Tabelle enthält dieselbe Information, die in den Fig. 5 und 6 hiervon enthalten ist, d. h. für jeden Kanal gibt sie den Wert für die Zwischen-Zeichen-Zeitgeber an. Der nächste Block zeigt an, daß der Prozeß mit i gleich 0 beginnt. Anders ausgedrückt beginnt er, wie Block 507 zeigt, mit Kanal 0. Es wird in einen Entscheidungsblock 509 eingetreten, in dem, während der ersten Zeit, eine Prüfung durchgeführt wird, um zu sehen, ob die Auszeit für einen Empfänger i gleich 0 ist. Wenn sie ungleich 0 ist, wird in einen Block 511 eingetreten, und die Auszeit wird um 1 dekrementiert. Eine Prüfung wird abermals im Entscheidungsblock 513 durchgeführt, um zu sehen, ob eine Auszeit 0 erreicht hat. Wenn die Antwort ja ist, dann ist dies das Ende der Nachricht, wie es durch Block 515 angezeigt ist, und, wie es oben gezeigt ist, wird das hintere Ende der Warteschlange i erhöht. Im Entscheidungsblock 509 bedeutet es, wenn die Auszeit gleich 0 ist, daß es für diesen Kanal nichts zu tun gibt. Wenn die Antwort im Entscheidungsblock 513 nein ist, bedeutet dies, daß die Auszeit nicht aufgetreten ist. In jedem Fall wird in einen Block 517 eingetreten, und i wird zu dem nächsten Kanal inkrementiert. Darauffolgend wird in einen Entscheidungsblock 519 eingetreten, um zu sehen, ob i gleich 7 ist. Wenn nicht, geht das Programm über eine Schleife 520 zum Entscheidungsblock 509 zurück, um eine Auszeit für den nächsten Kanal zu prüfen. Wenn der Kanal 7 erreicht ist, wie es durch eine Ja- Antwort vom Block 519 angezeigt ist, wird in einen Entscheidungsblock 521 eingetreten. Hier wird eine Prüfung durchgeführt, um herauszufinden, ob die PR- Box gerade auf dem Host-Kanal empfängt. Wenn es so ist, wird eine Auszeit gemäß Block 521 um 1 dekrementiert. Dann wird im Block 523 eine Prüfung durchgeführt, um zu sehen, ob die Auszeit gleich 0 ist. Wenn es so ist, gibt es auf dem Hostkanal eine Auszeit, und eine Anzahl von Schritten wird gemacht, wie es im Block 525 gezeigt ist. Wenn keine Auszeit aufgetreten ist, geht das Programm direkt zum Block 527 weiter. Wie es darin gezeigt ist, wird dann eine Prüfung füreine Auszeit an einer Anschlußstelle durchgeführt, die ausgeschaltet war. Dies wird unter Verwendung derselben Folge von Schritten durchgeführt, die gerade beschrieben wurden.
  • Nach einem Durchlaufen des Blocks 527 wird in einen Entscheidungsblock eingetreten, um zu sehen, ob die PR-Box auf ein ACK- oder ein NACK-Signal wartet oder nicht. Wenn die Antwort im Entscheidungsblock 529 nein ist, wird sofort in einen Block 531 eingetreten, der anzeigt, daß die Register nochmals gespeichert werden, und ein Rücksprung von der Unterbrechung zu dem Hauptprogramm erfolgt. Wenn die PR-Box wartet, wird dann in einen Block 533 eingetreten, und der ACK/NACK-Zeitgeber wird dekrementiert. Als nächstes wird im Block 535 eine Prüfung durchgeführt, um zu sehen, ob der Zeitgeber auf 0 gesetzt ist. Wenn er es nicht ist, wird in den Block 531 eingetreten. Sonst, wenn er 0 ist, wird das Warten auf ein ACK/NACK-Signal und das Flag des Senders 7 gelöscht, und der vordere Zeiger für die Warteschlange des Senders wird erhöht, wie es durch Block 537 angezeigt ist. Als nächstes wird in einen Block 539 eingetreten, und wenn es kein Hochfahren des Systems ist, wird der Host, der fehlerhaft geworden ist, in den LEDs 52 der Fig. 2 angezeigt. Danach wird wieder in den Block 531 eingetreten. Wie es in Fig. 9C gezeigt ist, wird dann, wenn einer End-Nachricht 515 begegnet wird, wie es durch Block 541 gezeigt ist, der hintere Zeiger für den Empfänger, der dem i-ten Kanal zugeordnet ist, für den die Nachricht beendet worden ist, um 2 inkrementiert. Als nächstes wird, wie es durch einen Block 543 angezeigt ist, der Empfang eines Fortschreit-Flags gelöscht, gefolgt durch ein Löschen der Auszeit des Empfangs, wie es durch einen Block 545 angezeigt ist. Als nächstes wird im Entscheidungsblock 547 eine Prüfung durchgeführt, um zu sehen, ob i gleich dem Hostkanal ist. Wenn es so ist, werden Handlungen, die im Block 549 vorgenommen wurden, ausgeführt. Wenn dies durchgeführt ist oder wenn die Antwort im Block 547 nein war, dann kehrt das Programm zum Block 517 der Fig. 9a zurück. (END-MSG wird auch irgendwo in der Firmware verwendet.)
  • Ein Zeitgeber wird nur dekrementiert, wenn er nicht null ist. Wenn er nicht null ist, und zu null übergeht, wird irgendeine Handlung vorgenommen. Wenn ein Zwischen- Zeichen-Zeitgeber abläuft, dann wird der hintere Zeiger 412 für den i-ten Empfänger um zwei erhöht. Wenn ein Zeitgeber für eine Anschlußstelle abläuft, die zuvor ausgeschaltet war, dann wird jene Anschlußstelle eingeschaltet. Eine Anschlußstelle wird ausgeschaltet, wenn sie zu viele Daten bekommt und ihre Warteschlange überläuft. Die Anschlußstelle wird dann für 10 ms ausgeschaltet. Wenn der ACK/NACK-Zeitgeber abläuft, dann wird der vordere Zeiger 421 für einen Sender des Kanals 7 um zwei erhöht, und der Fehler für den Host, der nicht antwortet, wird in den LEDs 57 angeordnet.
  • Die Unterbrechung des Zeitgebers 1 enthält den Zähler für den Zeitgeber zum "am Leben halten". Er wird auf jeden Eintrag hin um 1 dekrementiert. Wenn er zu null übergeht, wird ein Flag gesetzt, so daß der Hintergrundprozeß der Fig. 5C eine Nachricht zum "am Leben halten" zu dem Host senden wird.
  • Die Unterbrechungsprogramme zum Empfangen von Paketen von dem Host stellen sie somit in einem Speicher für die Hintergrundverarbeitung der Fig. SC zum Entziffern ein. Diese Hintergrundverarbeitung stellt auch die Verarbeitung für die Unterbrechungsprogramme ein, um Datenpakete zu dem Host und den peripheren Vorrichtungen zu senden.
  • Paketdefinition
  • Wie es oben angemerkt ist, werden Bytes, die durch die PR-Box von einer peripheren Vorrichtung empfangen werden, in ein Paket gruppiert, das zu dem Host zu senden ist. Die Paketdefinition ist wie folgt: SOH Byte Dezimal Kopf Byte siehe Bytezahl Byte Anzahl von Nachrichten/Nachricht/Daten Text-Datenbytes Nachricht/Bericht/Daten Bytes, Länge, abhängig von der peripheren Vorrichtung Prüfsumme Byte Prüfsumme für gesamte Übertragung Antwort auf das obige Paket Byte Dezimal
  • Das Kopf-Bytefeld ist in Fig. 8 dargestellt.
  • Der Drei-Bit-Vorrichtungscode verwendet alle verfügbaren Bits. Es gibt Vorrichtungscodes für die Tastatur, die Maus, die Tafel, eine Wählscheibenbox, eine Tastenbox, ein PR-Box-System und zwei Reserve-Anschlußstellen. Der Hostkanal wird angesehen, als ob er ein Teil des PR-Boxsystems sei, d. h. der Hostkanal verwendet eine DEV ID von 111.
  • Code Vorrichtung 000 Tastatur (DEC LK201)
  • 001 Maus
  • 010 Tafel
  • 011 Wählscheibenbox
  • 100 Tastenbox
  • 101 Reservekanal
  • 110 Reservetastatur
  • 111 PR-Box einschließlich des Hostkanals
  • Das Empfangs-Fehlerbit von Fig. 8 wird verwendet, um ein Problem bei der zugehörigen Vorrichtung anzuzeigen, das durch den Vorrichtungscode erkannt wird.
  • Dieses Bit wird gesetzt, wenn die PR-Box eine Parität, einen Rahmen oder einen Hardware-Überlauffehler auf der UART sieht, die zu der Vorrichtung gehört.
  • Ein Empfangs-Fehlerbit = logisch 1 um anzuzeigen, daß ein Fehler aufgetreten ist.
  • Das Antwortbit wird verwendet, um dem Host anzuzeigen, daß die PR-Box auf eine Anfrage antwortet, die durch den Host durchgeführt ist, und daß der Bericht oder Daten, der bzw. die folgen, den Ursprung nicht in der PR-Box oder einer peripheren Vorrichtung haben. Dieses Bit wird für eine Antwort auf die Befehle T und R verwendet, die nachfolgend jeweils unter Selbsttestbefehl und Zustandsberichtsbefehl erörtert sind.
  • Ein Antwortbit = logisch 1, um anzuzeigen, daß dies eine Antwort auf eine vorherige Anfrage von dem Host ist. Es wird nur für PR-Box-Befehle verwendet.
  • Das Bit zum "am Leben halten" wird verwendet, um innerhalb einer bestimmten Zeit (z. B. 10 Sekunden) keine Übertragungen zu dem Host zu senden, wenn es keinen Vorgang in jener Zeitperiode gegeben hat. Der Host-Überwachungszeitgeber ist auf 10 Sekunden eingestellt. Diese Funktionsweise berichtet dem Host, daß die PR-Box noch angeschlossen ist, aber keine Daten zum Senden hat. Der Host setzt seinen Überwachungs-Zeitgeber zurück und beginnt den Zyklus erneut.
  • Ein "am Leben halten" = logisch 1, um nur eine Funktion zum "am Leben halten" anzuzeigen.
  • Das Vorrichtungs-Änderungsbit wird gesetzt, um anzuzeigen, daß eine Vorrichtung mit einem "Vorrichtung vorhanden"-Bit mit der PR-Box verbunden bzw. von ihr getrennt worden ist. Wenn dieses Bit gesetzt ist, enthält das Paket ein Nachrichten- Byte. Dies ist das Konfigurations-Byte. Das Konfigurations-Byte wird ein Bit aufweisen, das für jede Vorrichtung gesetzt ist, die ein "Vorrichtung vorhanden"-Pin hat, das in das System eingestöpselt ist.
  • Ein Vorrichtungs-Änderungsbit = logisch 1, um anzuzeigen, daß eine Vorrichtung einen Zustand geändert hat.
  • Das System-Fehlerbit wird verwendet, um Fehlerberichte zu dem Host zu senden. Wenn dieses Bit gesetzt ist, gibt es ein Datenbyte in dem Paket. Jenes Datenbyte ist der Fehlercode. Die Fehlercodes, die gleichzeitig existieren, sind:
  • 1. 01 H - Schlechter Befehl, der vom Host gesendet ist.
  • 2. O2H Vorrichtungs-Warteschlange hatte einen Überlauf.
  • Zwei Verfahren einer Fehlererfassung werden verwendet:
  • 1. Eine Prüfsumme für die Übertragung (Addieren mit Übertrag).
  • 2. Ungerade Parität für jedes Byte.
  • Wenn das Bit zum "am Leben halten" gesetzt ist, werden das Antwortbit und das Fehlerbit durch den Host ignoriert. Die DEV ID zum "am Leben halten" muß die PR- Box-Vorrichtung sein.
  • Das Übertragungsprotokoll
  • Das Übertragungsprotokoll ist wie folgt:
  • Die Ursprungsvorrichtung sendet ihre Daten und wartet auf ein ACK-Signal (alle OK) oder ein NAK-Signal (etwas paßt nicht, nochmalige Übertragung). Eine Zustandsinformation ist etwas unterschiedlich darin, daß die Ursprungsvorrichtung, ein Host, etwas anderes als das ASCII-ACK/NAK-Zeichen zurückerwarten wird. Dies erfolgt, wo das Antwortbit verwendet wird.
  • Wenn ein NAK-Signal entweder von der PR-Box oder dem Host empfangen wird, wird die Quellenvorrichtung die vorherige Übertragung nochmals übertragen. Die Vorrichtung, die das NAK-Signal gesendet hat, wird die vorherige Übertragung räumen und auf die nochmalige Übertragung als neue Anfrage antworten.
  • Darstellende Diagramme sind in den Fig. 9A-C gezeigt, die jeweils einen Host, der Daten hervorgebracht hat, eine PR-Box, die Daten hervorgebracht hat, und eine Berichtsanfrage durch den Host zeigen.
  • Wenn ein Selbsttest-Befehl direkt zu einer peripheren Vorrichtung übertragen wird, d. h. als reguläre Daten, wird die zurückkommende Antwort auf dieselbe Weise verarbeitet, d. h. als Daten, und das Antwortbit wird nicht eingestellt, und die DEV ID wird jene der peripheren Vorrichtung sein. Die PR-Box hat keine bestimmten Befehle, um einzelne periphere Vorrichtungen einzeln zu testen.
  • Wenn ein Vorrichtungs-Überlauffehler auftritt, können Daten verloren werden. Wenn die PR-Box einen Überlauffehler bekommt und fortfährt, Daten von jener Vorrichtung zu empfangen, bevor sie ihre Warteschlange leeren kann, wird der Empfang für jene Vorrichtung für 10 ms ausgeschaltet.
  • Nach 10 ms wird der Empfang wieder eingeschaltet und die Daten, die hereinkommen, werden in der Warteschlange angeordnet, um zu dem Host gesendet zu werden. Während der 10 ms, während der der Empfang ausgeschaltet ist, werden Daten verloren.
  • Daten von einer peripheren Vorrichtung sind durch die PR-Box auf ein Maximum von sechs Bytes pro Paket beschränkt. Wenn eine periphere Vorrichtung mehr als sechs aufeinanderfolgende Datenbytes ohne irgendeine Auszeitperiode zwischen den Bytes aussendet, wird die PR-Box getrennte Pakete mit einem Maximum von sechs Datenbytes machen. Die Pakete von dem Host zu der PR-Box haben keine Datenbeschränkungsprüfung. Jedoch sollte der Host aus Sicherheitsgründen die Datengröße in einem Paket auf neun Datenbytes beschränken. Die PR-Box kann bis zu 256 Pakete aus neun Datenbytes sicher speichern und den Host über eine Warteschlangen-Überlaufbedingung warnen. Wenn der Host größere Pakete sendet, sollte er sie weniger häufig verwenden, d. h. 128 Pakete aus 18 Datenbytes, etc., und mit einer größeren Zeitspanne zwischen den Paketen.
  • Wie es oben erklärt ist, wird ein Paketieren von Daten von Vorrichtungen durch Zeitgeber verarbeitet. Wenn die PR-Box eine "Null"-Zeitperiode "sieht", die gleich dem zweifachen der Zeichenlänge einer peripheren Vorrichtung ist, wird das Paket ausgeschlossen und in der Warteschlange angeordnet, um es zu dem Host zu senden. (Siehe das obige Beispiel.) Es gibt auch einen Fehler für eine Übertragung von dem Host von einer Nullzeit von 10 ms zwischen zwei Bytes eines Pakets. Wenn dieser Zeitgeber abläuft, wird ein NAK-Signal zu dem Host gesendet. Wenn die Fehlergeschwindigkeit des Hosts geändert wird, wird der Zeitgeber zu einer Zeitperiode umkehren, die das zweifache der Zeichenlänge ist.
  • Wie es zuvor beschrieben ist, gibt es auch Zeitgeber für das "am Leben halten" (etwa 10 s) und das ACK/NAK-Signal (etwa 20 ms).
  • Befehle zu der PR-Box
  • Selbsttestbefehl
  • T-Testen des PR-Systems und Senden des Selbsttest-Berichts (einschließlich der Konfiguration).
  • Man beachte: Ein Test T wird die PR-Box von dem Host für weniger als 10 Sekunden zeitweilig trennen.
  • Zustandsberichts-Befehl
  • R-Berichten über den Zustand des PR-Systems einschließlich der Konfiguration peripherer Vorrichtungen.
  • Änderungs-Baudraten-Befehl (zwei Formen)
  • 0 Cnx - wobei "n" die Kanalzahl (0-Tastatur . . . 7-PR-Hostverbindung) und "x" die Baudrate ist.
  • 0 Cnxyz - wobei "n" der Reservekanal (5), "x" die Baudrate, "y" die Parität (ASCII 0 (Hex 4F) - für ungerade Zahlen, ASCIl E (Hex 45) - für gerade Zahlen, oder ASCIl N (Hex 4E) - für keine Zahl), und "z" die Bits/Zeichen (Hex 5, 6, 7 oder 8)/ ist.
  • Man beachte: Die Parität und Bits/Zeichen können nur an der Reserve- Anschlußstelle geändert werden, jedoch kann die Baudrate an dem Reservekanal ohne Änderung der Parität und der Bits/Zeichen geändert werden. An den anderen Anschlußstellen kann nur die Baudrate geändert werden.
  • Das folgende ist die Tabelle von Baudraten (x):
  • Baudrate Hexadezimalcode 50 00
  • 75 01
  • 110 02
  • 134,5 03
  • 150 04
  • 300 05
  • 600 06
  • 1200 07
  • 1800 08
  • 2000 09
  • 2400 0A
  • 3600 0B
  • 4800 0C
  • 7200 0D
  • 9600 0E
  • 19200 0F

Claims (3)

1. In einem System mit einem Hostgerät (19), einem peripheren Zwischenverstärker (21) und wenigstens einer Peripherieeinheit (23, 25, 27, 29, 31, 33, 35) ist ein Verfahren zum Paketieren von Daten in dem peripheren Zwischenverstärker und zum Senden von ihnen zu dem Hostgerät dadurch gekennzeichnet, daß das Verfahren die folgenden Schritte (Fig. 3c, 7) aufweist:
a) in dem peripheren Zwischenverstärker Bilden
i) einer Nachrichten-Bytelänge; und
ii) einer Baudrate, die für eine vorgegebene Peripherieeinheit spezifisch ist;
b) Akkumulieren von Zeichen in Nachrichten von der vorgegebenen Peripherieeinheit in Pakete; und
c) Beenden und Senden jedes Pakets jeweils dann:
i) wenn seine Größe gleich der Nachrichten-Bytelänge ist, oder
ii) wenn, nachdem wenigstens ein Byte von der Peripherieeinheit empfangen worden ist, eine vorbestimmte Zeit basierend auf der spezifischen Baudrate von der Zeit an verstrichen ist, seitdem das letzte Byte empfangen wurde, ohne ein nachfolgendes Byte von der gegebenen Peripherieinheit zu empfangen.
2. Verfahren nach Anspruch 1, wobei die Zeit nahezu gleich der Übertragungszeit ist, die zum Übertragen zweier Zeichen mit der Rate erforderlich ist.
3. Verfahren nach Anspruch 1 oder 2, wobei die Baudrate der Peripherieeinheit veränderbar ist, und das weiterhin ein Einstellen der Zeit enthält, wenn die Baudrate geändert wird.
DE3851676T 1987-08-13 1988-08-12 Datenpaketierungsverfahren. Expired - Fee Related DE3851676T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/085,098 US5123091A (en) 1987-08-13 1987-08-13 Data processing system and method for packetizing data from peripherals

Publications (2)

Publication Number Publication Date
DE3851676D1 DE3851676D1 (de) 1994-11-03
DE3851676T2 true DE3851676T2 (de) 1995-03-09

Family

ID=22189453

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3851676T Expired - Fee Related DE3851676T2 (de) 1987-08-13 1988-08-12 Datenpaketierungsverfahren.

Country Status (7)

Country Link
US (1) US5123091A (de)
EP (1) EP0303991B1 (de)
JP (1) JPH0638613B2 (de)
KR (1) KR920005287B1 (de)
AU (1) AU599508B2 (de)
CA (1) CA1321843C (de)
DE (1) DE3851676T2 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4862355A (en) 1987-08-13 1989-08-29 Digital Equipment Corporation System permitting peripheral interchangeability during system operation
EP0412268B1 (de) * 1989-08-11 1996-09-11 International Business Machines Corporation Vorrichtung zur Verbindung von einer Steuereinheit mit parallelem Bus mit einem Kanal mit serieller Verbindung
US5404453A (en) * 1990-09-13 1995-04-04 Ncr Corporation Terminals coupling system using bridge interfaces, located inside the host controller, with timer to determine start and end of transmission period
JP2601960B2 (ja) * 1990-11-15 1997-04-23 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理方法及びその装置
USH1507H (en) * 1993-04-23 1995-12-05 The United States Of America As Represented By The Secretary Of The Navy Demand assigned multiple access (DAMA) device controller interface
JP3478565B2 (ja) * 1993-08-06 2003-12-15 ブラザー工業株式会社 パラレルインタフェース回路
US5598581A (en) * 1993-08-06 1997-01-28 Cisco Sytems, Inc. Variable latency cut through bridge for forwarding packets in response to user's manual adjustment of variable latency threshold point while the bridge is operating
US5761450A (en) * 1994-02-24 1998-06-02 Intel Corporation Bus bridge circuit flushing buffer to a bus during one acquire/relinquish cycle by providing empty address indications
JPH07261922A (ja) * 1994-03-18 1995-10-13 Internatl Business Mach Corp <Ibm> タッチパッド、入力装置及びコンピュータ・システム
US5598535A (en) * 1994-08-01 1997-01-28 International Business Machines Corporation System for selectively and cumulatively grouping packets from different sessions upon the absence of exception condition and sending the packets after preselected time conditions
US6108809A (en) * 1994-11-11 2000-08-22 Siemens Aktiengesellschaft Method for sending messages from a lower-level controller to a higher-level controller
US5680403A (en) * 1995-12-14 1997-10-21 Pitney Bowes Inc. Multiplex serial data communications with a single UART for a postage meter mailing machine system
US6098122A (en) * 1998-03-27 2000-08-01 International Business Machines Corporation Method and apparatus for adaptively blocking outgoing communication requests and adjusting the blocking factor according to the volume of requests being received in an information handling system
US6332173B2 (en) * 1998-10-31 2001-12-18 Advanced Micro Devices, Inc. UART automatic parity support for frames with address bits
US6260098B1 (en) * 1998-12-17 2001-07-10 International Business Machines Corporation Shared peripheral controller
GB0021988D0 (en) 2000-09-07 2000-10-25 Nokia Mobile Phones Ltd Management of portable radiotelephones
US20030115375A1 (en) * 2001-12-17 2003-06-19 Terry Robison Methods and apparatus for delayed event dispatching
US8407671B2 (en) * 2008-01-13 2013-03-26 Apple Inc. Accessory validation system
JP2016122382A (ja) * 2014-12-25 2016-07-07 株式会社リコー システム、描画方法、情報処理装置、プログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3693155A (en) * 1971-03-23 1972-09-19 Nat Telecommunications System Communication system
US4019174A (en) * 1971-12-08 1977-04-19 Monarch Marking Systems, Inc. Data collecting and transmitting system
JPS5846899B2 (ja) * 1979-07-31 1983-10-19 富士通株式会社 パケット伝送方式
JPS5730448A (en) * 1980-07-30 1982-02-18 Nippon Telegr & Teleph Corp <Ntt> Packet transmission system
US4454577A (en) * 1981-06-18 1984-06-12 The Bendix Corporation Linked data systems
US4408323A (en) * 1981-06-29 1983-10-04 Bell Telephone Laboratories, Incorporated Processor facilities for integrated packet and voice switching
IT1144965B (it) * 1981-10-20 1986-10-29 Cselt Centro Studi Lab Telecom Sistema a controllo distribuito per l accesso multiplo casuale alla linea di trasmissione di una rete locale per voce e dati
US4577314A (en) * 1983-03-31 1986-03-18 At&T Bell Laboratories Digital multi-customer data interface
US4577317A (en) * 1983-04-15 1986-03-18 Ics Electronics Corporation Method for extending a parallel data bus
JPS60247347A (ja) * 1984-05-23 1985-12-07 Hitachi Ltd 計測情報伝送方式
DE3479468D1 (en) * 1984-05-23 1989-09-21 Ibm Digital transmission system for a packetized voice
JPS6041347A (ja) * 1984-07-20 1985-03-05 Hitachi Ltd パケツト組立分解装置
JPS6220041A (ja) * 1985-07-19 1987-01-28 Nec Corp デ−タ処理装置の非同期デ−タ転送回路
JPS6240562A (ja) * 1985-08-17 1987-02-21 Casio Comput Co Ltd フアイル転送装置
FR2587159B1 (fr) * 1985-09-12 1987-11-13 Coatanea Pierre Equipements de multiplexage et demultiplexage pour liaison numerique synchrone a debit et rapiditite de modulation variables
US4730308A (en) * 1985-10-04 1988-03-08 International Business Machines Corporation Interface between a computer bus and a serial packet link
US4748618A (en) * 1986-05-21 1988-05-31 Bell Communications Research, Inc. Telecommunications interface
FR2601474A1 (fr) * 1986-07-08 1988-01-15 Pragma Dispositif pour l'echange d'informations entre un telecopieur et un micro-ordinateur

Also Published As

Publication number Publication date
AU599508B2 (en) 1990-07-19
CA1321843C (en) 1993-08-31
EP0303991A3 (en) 1990-06-06
DE3851676D1 (de) 1994-11-03
KR920005287B1 (ko) 1992-06-29
US5123091A (en) 1992-06-16
EP0303991B1 (de) 1994-09-28
KR890004224A (ko) 1989-04-20
JPH0638613B2 (ja) 1994-05-18
JPS6468160A (en) 1989-03-14
EP0303991A2 (de) 1989-02-22
AU2069588A (en) 1989-02-16

Similar Documents

Publication Publication Date Title
DE3855599T2 (de) System, das die Auswechselbarkeit der peripheren Einheiten ermöglicht
DE3851676T2 (de) Datenpaketierungsverfahren.
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
DE19900369B4 (de) Vorrichtung zum Anschluß an einen Universal Serial Bus (USB) und Verfahren zum Betreiben eines Steuerendpunktes an einem Universal Serial Bus (USB)
DE19900290B4 (de) Verfahren zum Betreiben einer universellen seriellen Buseinrichtung und universelle serielle Buseinrichtung
DE102012209016B4 (de) System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten
DE3280451T2 (de) Verfahren zur Initialisierung eines Datenverarbeitungssystems.
DE69334165T2 (de) Netzwerkanpassungseinrichtung mit hauptrechnerunterbrechung und indikationsverwaltung
DE3788355T2 (de) Eingangs/ausgangsnetz für ein rechnersystem.
DE3788539T2 (de) Gegenseitige Verriegelung zwischen mehreren zentralen Verarbeitungseinheiten.
DE3850097T2 (de) Rechnerverbinder für gruppen von datenverarbeitungseinrichtungen.
DE69028462T2 (de) Vorrichtung zur Verbindung von einer Steuereinheit mit parallelem Bus mit einem Kanal mit serieller Verbindung
DE102012208803B4 (de) System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten
DE69928603T2 (de) Medienzugriffssteuerung
DE69825915T2 (de) Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system
DE3586678T2 (de) Flexibel anwendbares serielles interface-system fuer eine verbindung zwischen einer und mehreren einheiten.
DE69829840T2 (de) Medienzugriffskontroller und Medienunabhängige Schnittstelle(MII) zum Verbinden an eine physikalische Schicht Vorrichtung
DE69123104T2 (de) Melden und Verifizieren von Zustandswechseln in einem Datenverarbeitungsein- / -ausgabesystem
DE19900331A1 (de) Vorrichtung und Verfahren zur Implementierung eines USB-Endpunktkanals mit doppelter Pufferunterstützung
DE102012209009B4 (de) System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten
DE3736550C2 (de)
DE19900290A9 (de) Verfahren zum Betreiben einer universellen seriellen Buseinrichtung und universelle serielle Buseinrichtung
DE4121446A1 (de) Terminal-server-architektur
DE2843609A1 (de) Bildschirm-datenendstation
DE4313190B4 (de) Vorrichtung und Verfahren zur Initialisierung einer Datenschnittstelle für eine programmierbare Steuerung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Free format text: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, 80538 MUENCHEN

8339 Ceased/non-payment of the annual fee