DE69515458T2 - Serielle Anschlussstelle für Ferndiagnose - Google Patents
Serielle Anschlussstelle für FerndiagnoseInfo
- Publication number
- DE69515458T2 DE69515458T2 DE69515458T DE69515458T DE69515458T2 DE 69515458 T2 DE69515458 T2 DE 69515458T2 DE 69515458 T DE69515458 T DE 69515458T DE 69515458 T DE69515458 T DE 69515458T DE 69515458 T2 DE69515458 T2 DE 69515458T2
- Authority
- DE
- Germany
- Prior art keywords
- network
- network card
- data
- port
- microprocessor
- 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
Links
- 238000004171 remote diagnosis Methods 0.000 title 1
- 238000012545 processing Methods 0.000 claims description 72
- 230000005540 biological transmission Effects 0.000 claims description 41
- 238000000034 method Methods 0.000 claims description 35
- 238000012546 transfer Methods 0.000 claims description 26
- 238000003860 storage Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 15
- 230000004913 activation Effects 0.000 claims description 8
- 230000010365 information processing Effects 0.000 claims description 6
- 238000007639 printing Methods 0.000 description 48
- 239000000872 buffer Substances 0.000 description 29
- 240000007320 Pinus strobus Species 0.000 description 17
- 238000005192 partition Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 15
- 101000741965 Homo sapiens Inactive tyrosine-protein kinase PRAG1 Proteins 0.000 description 14
- 102100038659 Inactive tyrosine-protein kinase PRAG1 Human genes 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000008672 reprogramming Effects 0.000 description 11
- 230000002452 interceptive effect Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000002457 bidirectional effect Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 239000013078 crystal Substances 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 101100172132 Mus musculus Eif3a gene Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 150000001768 cations Chemical class 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2294—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by remote test
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
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)
- Quality & Reliability (AREA)
- Computer And Data Communications (AREA)
- Bus Control (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf ein serielles Übertragungsverfahren, bei dem eine Verarbeitungseinrichtung direkt den Übertragungszustand steuert und Signale empfängt und bei dem ein nicht-maskierbarer Unterbrechungsanschluß der Verarbeitungseinrichtung in Verbindung mit einem Empfang serieller Übertragungen verwendet wird.
- Die unter der Nr. EP-A-0598513 veröffentlichte Anmeldung des Anmelders mit dem Titel "Method and Apparatus For Interfacing a Peripheral to a Local Area Network" offenbart eine interaktive Netzwerkkarte zur Verbindung einer Druckeinrichtung mit einem Local Area Network (LAN)bzw. einem örtlichen Netzwerk.
- Serielle Datenübertragungen sind in nahezu universeller Anwendung als eine einfache Technik zur Datenübertragung zwischen verschiedenen Verarbeitungseinrichtungen.
- Eine geeignete serielle Übertragungskonvention ist durch das synchrone serielle IEEE RS-232 Übertragungsprotokoll definiert.
- Ein derartiges Protokoll erfordert nur zwei Drähte für eine serielle Übertragung: einen Sendedraht und einen Empfangsdraht. Datenübertragungen werden seriell auf dem Empfangsdraht empfangen und seriell auf dem Sendedraht gesendet.
- Ein Datenformat für serielle Übertragungen, die entweder empfangen oder gesendet werden, ist einfach: einer Datenübertragung geht ein Startbit vorher, das immer eine binäre "1" ist und das die Empfangseinrichtung warnt, daß Daten gesendet werden, gefolgt von acht Datenbits, die entsprechend den Daten gemischte binäre Einsen und Nullen sind, und sie wird durch ein Stopbit beendet (das ein, eineinhalb oder zweimal so lang wie das Startbit ist). Eine binäre 1 ist durch einen hohen Spannungspegel kodiert, gewöhnlich +3 bis +15 Volt, und eine binäre 0 wird durch einen -3 bis -15 Volt-Pegel kodiert. Jedes der Bits wird seriell übertragen und wird von benachbarten Bits durch einen zur Übertragungsrate umgekehrt proportionalen Zeitraum getrennt. Somit wird für eine typische Übertragungsrate von 19.200 Bitpro-Sekunden jedes Bit durch 1/19,2 kHz oder 52 us getrennt.
- Eine breite Anzahl von Einrichtungen wurde vorgeschlagen, um die auf der seriellen Schnittstelle übertragenen seriellen Datenbits in ein herkömmliches paralleles Format umzuwandeln, das durch heutige Verarbeitungseinrichtungen einfacher verwendet wird. Eine derartige Einrichtung ist eine universelle asynchrone Empfangs-Sendeeinrichtung (UART), die in einer Empfangsbetriebsart das Startbit erfaßt und dann die nachfolgenden acht Datenbits in ein 8-Bit breites Byte zusammensetzt. Die universelle asynchrone Empfangs-Sendeeinrichtung unterbricht dann die Verarbeitungseinrichtung und führt das 8-Bit Byte der Verarbeitungseinrichtung zu.
- Es wurden in der vorstehend beschriebenen Anordnung dahingehend Schwierigkeiten aufgezählt, daß, bevor die universelle asynchrone Empfangs-Sendeeinrichtung sein 8-Bit Byte zur Verarbeitungseinrichtung übertragen kann, die Verarbeitungseinrichtung zuerst auf den Interrupt bzw. die Unterbrechung der universellen asynchronen Empfangs-Sendeeinrichtung antworten muß. Es gibt viele Situationen, in denen eine Verarbeitungseinrichtung eine derartige Unterbrechung ignorieren würde. Beispielsweise könnte die Verarbeitungseinrichtung in Berechnungen verwickelt sein, die Unterbrechungen der universellen asynchronen Empfangs-Sendeeinrichtung deaktivieren. Als ein anderes Beispiel kann die Verarbeitungseinrichtung in fehlerhafte Berechnungen verwickelt sein, die beispielsweise durch einen Hardwarefehler verursacht sind, und könnte daher nie in der Lage zu sein, auf die Unterbrechung der universellen asynchronen Empfangs-Sendeeinrichtung zu antworten.
- Eine typische Anwendung einer seriellen Anschlußeinrichtung erfolgt in Verbindung mit für die Verarbeitungseinrichtung ausgebildeten Ausprüffähigkeiten. Beispielsweise könnte die Verarbeitungseinrichtung Informationen zu einer zweiten Verarbeitungseinrichtung ausprüfen, um bei einer Bestimmung fehlerhafter oder falsch verstandener Funktion der Verarbeitungseinrichtung zu helfen. In diesen Situationen mit einer seriellen Anschlußeinrichtung, deren Unterbrechung während fehlerhafter Funktionen der Verarbeitungseinrichtung ignoriert wird, was genau die Situation ist, in der Ausprüfinformationen am wertvollsten sind, gibt es ein Problem. Weiterhin fügt die universelle asynchrone Empfangs-Sendeeinrichtung einige Kosten hinzu und beansprucht Platz in dem Gesamtcomputersystem. Demzufolge werden die universellen asynchronen Empfangs-Sendeeinrichtungen gewöhnlich nur auf Prototypen ausgebildet, so daß das endgültige System keinen Kosten- und Raumabzug enthält. Dies ist nachteilig, da es daher nicht möglich ist, endgültige Systeme nach Fehlern "im Gebiet" auszuprüfen.
- Die vorliegende Erfindung, wie in den anhängenden Ansprüchen definiert, richtet sich auf die Nachteile der herkömmlichen seriellen Übertragungsanordnungen, indem eine serielle Anschlußeinrichtung ausgebildet wird, die direkt durch eine Verarbeitungseinrichtung gesteuert wird, und in der ein Empfangssignal mit dem nicht-maskierbaren Unterbrechungsanschluß der Verarbeitungseinrichtung verbunden ist. Ein nicht-maskierbarer Interrupt bzw. eine nicht-maskierbare Unterbrechung (NMI) ist gewöhnlich in heutigen Mikroprozessoren enthalten, wie beispielsweise 80 · 86 Prozessoren von Intel, und wird verwendet, um eine Unterbrechung anzukündigen, auf die der Prozessor bzw. die Verarbeitungseinrichtung unabhängig von seinem gegenwärti gen Berechnungszustand antworten muß. Die nicht-maskierbare Unterbrechung ist unabhängig von anderen Unterbrechungen, die gewöhnlich zur Wechselwirkung mit Peripheriegeräten verwendet werden, wie beispielsweise einer von einer universellen asynchronen Empfangs-Sendeeinrichtung gesteuerten seriellen Anschlußeinrichtung.
- In einem Ausführungsbeispiel enthält eine serielle Anschlußeinrichtung Software, die angepaßt ist, Verarbeitungsschritte zur Informationsverarbeitung auszuführen, wobei die Verarbeitungseinrichtung einen nicht-maskierbaren Unterbrechungs(NMI)- Anschluß enthält, auf dessen Aktivierung ansprechend die Verarbeitungseinrichtung die fortlaufenden Verarbeitungsschritte einstellt und eine Ausführung von Unterbrechungsverarbeitungsschritten initiiert. Ein Sendebit, das in einem durch die Verarbeitungseinrichtung beschreibbaren Senderegister gespeichert werden kann, ist mit einem Sendeanschluß der seriellen Schnittstelle verbindbar, um ein Sendesignal ansprechend auf einen binären 1 oder 0 Zustand des Sendebits zu senden. Ein Empfangsbit, das in dem durch die Verarbeitungseinrichtung lesbaren Empfangsregister gespeichert werden kann, ist mit einem Empfangsanschluß der seriellen Schnittstelle verbindbar und wird auf einen binären 1 oder 0 Zustand eingestellt, der dem gegenwärtigen am Empfangsanschluß auftretenden Spannungssignal entspricht. Ein NMI-Aktivierungsschalter ist zwischen dem Empfangsanschluß und dem NMI-Anschluß der Verarbeitungseinrichtung verbunden. Der NMI-Aktivierungsschalter ist unter Steuerung der Verarbeitungseinrichtung betätigbar, um Signale auf dem Empfangsanschluß zum NMI-Anschluß der Verarbeitungseinrichtung zu übertragen, wenn er aktiviert ist, und um Signale zum NMI-Anschluß blockweise zu übertragen, wenn er deaktiviert ist. Ansprechend auf das Erscheinen eines Startbits auf dem Empfangsanschluß sendet der NMI-Aktivierungsschalter, der anfänglich in seinem Aktivierungszustand ist, das Startbit zum NMI-Anschluß der Verarbeitungseinrichtung. Ansprechend darauf hält die Verarbeitungseinrichtung fortlaufende Verarbeitungsschritte an und initiiert die Ausführung von Unterbrechungsverarbeitungsschritten, die Schritte enthalten, um den NMI-Aktivierungsschalter zu deaktivieren, um auf einen seriellen Zwischen-Bit Übertragungszeitraum zu warten, wie beispielsweise 1/19,2 kHz, und danach das Empfangsbit zu lesen, um ein gesendetes Datenbit zu erhalten. Dieser Warte-und-Lese- Zyklus wird wiederholt, bis acht gesendete Datenbits erhalten sind, und die acht gesendeten Datenbits werden in einer Schreib/Lese-Speichereinrichtung (RAM) gesammelt und gespeichert. Irgendwelche Stopbits, die empfangen werden, werden ignoriert. Der NMI-Aktivierungsschalter wird wieder aktiviert und danach wird die Ausführung der angehaltenen fortlaufenden Verarbeitungsschritte wieder aufgenommen.
- Zum Senden von Daten schreibt der Mikroprozessor ein Startbit in das Senderegister, wartet einen seriellen Zwischen-Bit- Übertragungszeitraum, wie beispielsweise 1/19,2 kHz, und schreibt danach ein Datenbit und wiederholt den Warte-und- Schreibe-Zyklus, bis acht Datenbits gesendet wurden. Dann wird ein Stopbit gesendet.
- In einem besonders bevorzugten Ausführungsbeispiel der Erfindung wird die serielle Anschlußeinrichtung in Verbindung mit Ausprüfaktivitäten einer Netzwerkkarte verwendet, die Netzwerkdienste einer Druckeinrichtung auf einem computerisierten lokalen Netzwerk ausbildet. In diesem Ausführungsbeispiel wird die serielle Anschlußeinrichtung in Verbindung mit Ausprüfdiensten für die Netzwerkkarte verwendet. Demgemäß überprüft die Verarbeitungseinrichtung nach einem Empfang eines 8-Bit Bytes von Daten von einem Empfangskanal, um zu bestimmen, ob das empfangene Byte eine asynchrone Unterbrechung gegenwärtiger, fortlaufender Netzwerkfunktionen anfordert. Wenn eine asynchrone Unterbrechnung angefordert wird, dann führt die Verarbeitungseinrichtung interaktive Ausprüfdienste, wie bei spielsweise ein Ausbilden des gegenwärtigen Zustands von Unterbrechungs-Registern, ein Einstellen von Unterbrechungspunkten und dergleichen vor einer Rückkehr zu den angehaltenen fortlaufenden Vorgängen durch. Da die serielle Anschlußeinrichtung mit dem Mikorprozessor durch den NMI-Anschluß der Verarbeitungseinrichtung eine Schnittstelle bildet, wird ohne Berücksichtigung der Unterbrechbarkeit der Verarbeitungseinrichtung eine empfangene serielle Übertragung immer die Verarbeitungseinrichtung unterbrechen und sie veranlassen, auf serielle Datenübertragungen und Anforderungen von asynchronen Unterbrechungen zu antworten.
- Diese kurze Zusammenfassung wurde gemacht, damit die Natur der Erfindung schnell verstanden werden kann. Ein vollständigeres Verständnis der Erfindung kann unter Bezugnahme auf die folgende genaue Beschreibung des bevorzugten Ausführungsbeispiels in Verbindung mit der Zeichnung erhalten werden.
- Es zeigen:
- Fig. 1 eine Darstellung eines lokalen Netzwerks und eines Weitverkehrsnetze, mit dem eine Netzwerkkarte verbunden ist,
- Fig. 2 eine aufgeschnittene perspektivische Ansicht einer in eine Canon LBP 1260 Laserdruckeinrichtung eingepaßte Netzwerkkarte,
- Fig. 3 ein Blockschaltbild der zwischen einer Druckeinrichtung und einem lokalen Netzwerk verbundenen Netzwerkkarte,
- Fig. 4 eine Darstellung des physikalischen Entwurfs von Komponenten auf der Netzwerkkarte,
- Fig. 5 eine Darstellung einer Frontplatte für die Netzwerkkarte,
- Fig. 6 ein Funktions-Blockschaltbild der Netzwerkkarte,
- Fig. 7 eine Darstellung von Beispielen für zahlreiche Softwaremodule, die in einem Flash-EPROM gespeichert werden können,
- Fig. 8 ein Blockschaltbild einer Anordnung, die zur Bestimmung verwendet wird, welche Verbindungseinrichtung mit dem Netzwerk verbunden ist,
- Fig. 9 ein Ablaufdiagramm, das zeigt, wie erfaßt wird, welche Verbindungseinrichtung mit dem Netzwerk verbunden ist,
- Fig. 10 ein Ablaufdiagramm der Funktion eines PRETASK-Softwaremoduls,
- Figuren 11(a) bis 11(d) Darstellungen möglicher Beziehungen von zahlreichen Netzwerk-Softwaremodulen,
- Fig. 12 ein Blockschaltbild eines mit einem lokalen Ethernet- Netzwerk und einem lokalen Token-Ring Netzwerk verbundenen Personalcomputers,
- Fig. 13 eine Darstellung von Inhalten eines Netzwerkinformationsdateiblocks, der zur Speicherung von Konfigurationsinformationen verwendet wird,
- Fig. 14 ein Ablaufdiagramm einer Neuprogrammierung der blitzlöschbaren programmierbaren Nur-Lese-Speichereinrichtung,
- Fig. 15 ein Blockschaltbild einer Speicherentscheidungseinrichtung,
- Fig. 16 ein Blockschaltbild einer bevorzugten Konstruktion einers gemeinsam genutzten Speicherarbiters bzw. -schiedseinrichtung in der Entscheidungseinrichtung,
- Fig. 17 eine Darstellung der zur Entscheidungseinrichtung zugeführten Zeitablaufsignale,
- Fig. 18 eine Darstellung der Konfiguration der gemeinsam genutzten Speichereinrichtung,
- Fig. 19 ein Ablaufdiagramm der beim Schreiben in die gemeinsam genutzte Speichereinrichtung einbezogenen Vorgänge,
- Fig. 20 ein Ablaufdiagramm der beim Lesen aus der gemeinsam genutzten Speichereinrichtung einbezogenen Vorgängen,
- Figur en 21(a) bis 21(c) zahlreiche Alternativen für eine Konfiguration der gemeinsam genutzten Speichereinrichtung,
- Fig. 22 ein Blockschaltbild eines seriellen Anschlusses,
- Figur en 23(a) und 24(a) Ablaufdiagramme von beim Empfang und Senden von seriellen Datenübertragungen über den seriellen Anschluß einbezogenen Vorgängen und
- Figur en 23(b) und 24(b) Darstellungen des Zeitablaufs von Signalen in den seriellen Empfangs- und Sendebetriebsarten.
- In seiner bevorzugtesten Form ist die vorliegende Erfindung in einer Netzwerkkarte (oder "NEB") verkörpert, die Hardware-, Software- und Firmwarelösungen zur Herstellung einer Netzwerkumgebung, wie beispielsweise einer Druckeinrichtung, eines intelligenten, interaktiven Netzwerkelements ausbildet, die nicht nur Daten von dem Netzwerk empfangen und verarbeiten können, sondern auch bedeutende Menge von Daten über die Umgebung, wie beispielsweise detaillierte Zustandsinformationen, Funktionsparameter und dergleichen, zum Netzwerk senden können. Es ist auch möglich, die Erfindung bei anderen vernetzten Umgebungen, wie beispielsweise Abtastung, Faksimile, Kopierer, Bildverarbeitung und anderen derartigen Umgebungseinrichtungen zu verwenden. Eine Integration derartiger Hardware, Software und Firmware in die Umgebungseinrichtung beseitigt die Notwendigkeit zur Überlassung einer Personalcomputers, damit er als ein Umgebungseinrichtungsserver dient.
- Fig. 1 ist eine Darstellung, die die vorliegende in einer Netzwerkkarte (NEB) 101 enthaltene Erfindung zeigt, die mit einer Druckeinrichtung 102 mit einer offenen Architektur verbunden ist. Die Netzwerkkarte 101 ist über eine lokale Netzwerkschnittstelle mit einem lokalen Netzwerk (LAN) 100 verbunden, beispielsweise einer Ethernet-Schnittstelle 10Basis2 mit einer Koaxverbindungseinrichtung oder 10BasisT mit einer RJ- 45-Verbindungseinrichtung.
- Zahlreiche Personalcomputer (PCs), wie beispielsweise PCs 103 und 104, sind auch mit dem lokalen Netzwerk 100 verbunden und unter der Steuerung des Netzwerkbetätigungssystems können diese Personalcomputer mit der Netzwerkkarte 101 in Verbindung stehen. Einer der Personalcomputer, wie beispielsweise der PC 103 kann zur Verwendung als der Netzwerkverwalter bestimmt werden. Ein Personalcomputer kann eine mit ihm verbundene Druckeinrichtung, wie beispielsweise eine mit dem Personalcomputer 104 verbundene Druckeinrichtung 105 besitzen.
- Auch ist ein Dateiserver 106 mit dem lokalen Netzwerk 100 verbunden, der einen Zugriff auf auf einer Netzwerkplatte 107 mit großer Kapazität (z. B. 10 Gigabyte) gespeicherte Dateien verwaltet. Ein Druckserver 108 führt Druckdienste zu damit verbundenen Druckeinrichtungen 109 und 110 ebenso wie Fernbedienungsdruckeinrichtungen, wie beispielsweise die Druckeinrichtung 105 zu. Andere nicht gezeigte Umgebungseinrichtungen können auch mit dem lokalen Netzwerk 100 verbunden sein.
- Genauer, das in Fig. 1 gezeigte Netzwerk kann irgendeine Netzwerksoftware verwenden, wie beispielsweise Novell- oder UNIX- Software, um eine Datenübertragung zwischen den zahlreichen Netzwerkelementen zu bewirken. Die vorliegenden Ausführungsbeispiele werden im Hinblick auf ein lokales Netzwerk beschrieben, das eine Novell NetWare® Software verwendet, obwohl irgendeine Netzwerksoftware verwendet werden könnte. Eine genaue Beschreibung dieses Softwarepackets kann in "NetWare® User's Guide" und "NetWare® Supervisor's Guide", veröffentlicht von M&T Books, Copyright 1990 gefunden werden.
- Siehe auch "NetWare® Printer Server" von Novell, Ausgabe März 1991, Novell Teil Nr. 100-000892-001.
- Kurz gesagt, der Dateiserver 106 wirkt als ein Dateiverwalter, der Dateien von Daten zwischen Elementen des lokalen Netzwerks empfängt, speichert, in eine Warteschlange einreiht, cachespeichert und sendet. Beispielsweise können jeweils in Personalcomputern 103 und 104 erzeugte Datendateien zum Dateiserver 106 geleitet werden, der diese Datendateien anordnen kann und dann die geordneten Datendateien beim Befehl von dem Druckserver 108 zur Druckeinrichtung 109 senden kann.
- Die Personalcomputer 103 und 104 können jeder einen Standard- Personalcomputer umfassen, der Datendateien erzeugen, sie auf das lokale Netzwerk 100 senden, Dateien von dem lokalen Netzwerk 100 empfangen und derartige Dateien anzeigen und/oder verarbeiten kann. Während das Personalcomputerzubehör in Fig. 1 veranschaulicht ist, kann auch jedes anderes Computerzubehör enthalten sein, das für die ausgeführte Netzwerksoftware geeignet ist. Beispielsweise können UNIX-Workstations in dem Netzwerk enthalten sein, wenn UNIX-Software verwendet wird, und dieser Workstations können unter geeigneten Umständen in Verbindung mit den gezeigten Personalcomputern verwendet werden.
- Typischerweise dient ein lokales Netzwerk, wie beispielsweise ein lokales Netzwerk 100 einer kaum lokalisierten Gruppe von Benutzern, wie beispielsweise einer Gruppe von Benutzern auf einer Etage oder fortgesetzten Etagen in einem Gebäude. Wenn Bediener beispielsweise in verschiedenen Gebäuden oder verschiedenen Zuständen voneinander entfernter sind, kann ein Weltverkehrsnetz (WAN) erzeugt werden, das im wesentlichen eine Sammlung aus zahlreichen lokalen Netzwerken ist, die alle durch digitale Hochgeschwindigkeitsleitungen verbunden sind, wie beispielsweise ISDN (integrierte Dienste eines digitalen Netzwerks)-Hochgeschwindigkeits-Telefonleitungen. Somit sind, wie in Fig. 1 gezeigt, lokale Netzwerke 100, 110 und 120 verbunden, um ein Weitverkehrsnetz über eine Modulationseinrichtung/Demodulationseinrichtung(MODEM)/Transponder 130 und einen Backbone 140 zu bilden, die einfach eine elektrische Verbindung zwischen zahlreichen Bussen sind. Jedes lokale Netzwerk enthält seine eigenen Personalcomputer und jeder enthält einfach seinen eigenen Dateiserver und Druckserver, obwohl es nicht notwendigerweise der Fall ist.
- Somit enthält, wie in Fig. 1 gezeigt, das lokale Netzwerk 110 Personalcomputer 111 und 112, einen Dateiserver 113, eine Netzwerkplatte 114, einen Druckserver 115 und Druckeinrichtungen 116 und 117. Das lokale Netzwerk 120 andererseits enthält nur Personalcomputer 121 und 122. Über Weitverkehrsnetz-Verbindungen können Einrichtungen in irgendwelchen lokalen Netz werken 100, 110 und 120 auf die Fähigkeiten der Einrichtungen in irgendeinem anderen der lokalen Netzwerke zugreifen.
- In dem Personalcomputer 104 kann ein RPRINTER-Softwareprogramm eingebettet sein und ein derartiges kann eine begrenzte Steuerung über Netzwerkumgebungseinrichtungen ausüben. Das RPRIN- TER-Programm ist ein MS-DOS-Programm, das nach Beendigung wieder aktiviert werden kann, weil es speicherresident bleibt ("TSR-Programm"), das Benutzern erlaubt, die mit dem Personalcomputer 104 verbundene Druckeinrichtung 105 zu teilen, während dem Personalcomputer 104 zur selben Zeit erlaubt wird, andere Nicht-Druck-Anwendungen auszuführen. RPRINTER ist ein relativ unintelligentes Programm, das nicht die Fähigkeit besitzt, Druckeinrichtungswarteschlangen für eine Arbeit zu suchen. RPRINTER bekommt seine Arbeit von einem Druckserver 108, der woanders im Netzwerk in Betrieb ist. Da es mit der zugehörigen Druckeinrichtung über den Parallelanschluß der Druckeinrichtung in Verbindung steht, kann ein Personalcomputer 104, auf dem RPRINTER läuft, nur begrenzte Zustandsinformationen von der Druckeinrichtung 105 erhalten und diese Zustandsinformationen über das lokale Netzwerk 100 zum Druckserver zurückgeben. Von einem Steuerstandpunkt aus erlaubt RPRINTER ein Anhalten eines Druckjobs (wenn beispielsweise die Druckeinrichtung kein Papier mehr hat oder nicht angeschlossen bzw. offline ist) und ein wenig mehr. Einige Druckeinrichtungen enthalten RPRINTER-Merkmale durch Anbieten von internen oder externen Schaltungskarten, die dieselben begrenzten Merkmale des RPRINTER TSR-Programms ausbilden, das in einem Personalcomputer läuft.
- Der Druckserver 108 kann eine bedeutendere Steuerung über die lokalen Netzwerk-Umgebungseinrichtungen ausüben, erfordert aber einen festgeschalteten Personalcomputer, der nicht für irgendeine andere Aufgabe verwendet werden kann. Der Druckserver 108, der selbst ein Personalcomputer sein kann, besitzt die Fähigkeit, eine Vielzahl von Benutzer-definierten Druckwarteschlangen zu unterhalten, eine dynamische Suchwarteschlangenmodifikation durchzuführen und definierte Bezeichnungsvorgänge für Ausnahme(Fehler)bedingungen und Zustands- und Steuerfähigkeiten auszubilden und kann beide lokalen Druckeinrichtungen 109 und 110 (d. h. physikalisch mit dem Druckserver 108 verbundene Druckeinrichtungen) und Ferndruckeinrichtungen steuern. Die lokalen Druckeinrichtungen 109 und 110 können entweder serielle oder parallele Anschlüsse sein, und die Ferndruckeinrichtungen, wie beispielsweise die Druckeinrichtung 105, sind Durckeinrichtungen, die irgendwo im System laufen, wobei der Druckserver 108 durch die RPRINTER-Software steuert.
- Der Druckserver 108 kann viele lokale oder Ferndruckeinrichtungen steuern und kann Druckinformationen von vielen Dateiserverwarteschlangen anfordern. Jedoch gibt es zahlreiche Nachteile beim Vertrauen auf den Druckserver 108 zur Steuerung der Netzwerkdruckdienste. Ein erster Nachteil besteht darin, daß eine Vielzahl von Druckeinrichtungsströmen alle durch einen einzelnen Netzwerkknoten geschleust werden müssen. Dies kann ein Flaschenhals werden. Ein zweiter Nachteil besteht darin, daß für die wirkungsvollste Funktion die Druckeinrichtungen lokal mit dem Druckserver, wie Druckeinrichtungen 109 und 110 verbunden sein sollten. Dies kann eine Unbequemlichkeit für Benutzer darstellen, da es erfordert, daß die Druckeinrichtungen rund um den Druckserver 108 gedrängt sind, und erfordert auch, daß Benutzer zu diesen gebündelten Druckeinrichtungen reisen. Ein dritter Nachteil besteht darin, daß bei einer Fernsteuerung der gesteuerten Druckeinrichtungen, wie im Fall der Druckeinrichtung 105, die durch RPRINTER bedient wird, dann Druckdaten zahlreiche Reisen, zuerst vom Dateiserver 106 zum Druckserver 108 und dann vom Druckserver 108 zur Druckeinrichtung, auf der RPRINTER läuft, machen müssen. Dies ist ineffizient.
- Ein vierter Nachteil ist das begrenzte Ausmaß von Druckeinrichtungszustands- und von Steuerinformationen, die durch den Druckserver 108 angeboten werden. Es wurde bereits festgestellt, daß RPRINTER nicht mehr erlaubt als rudimentäre Zustandsinformationen, wie beispielsweise "Papier aus" und "Offline". Der Druckserver 108 bietet nicht mehr als dies, da er unter Berücksichtigung der Beschränkungen des Parallelanschlusses des Personalcomputers entworfen wurde.
- Eine Installation einer Netzwerkkarte 101 in der Druckeinrichtung 102 bedeutet dahingehend viele Vorteile gegenüber den vorstehend diskutierten Netzwerk-Umgebungseinrichtungssteuergesamtheiten, da sie der Druckeinrichtung 102 erlaubt, ein intelligentes, interaktives Netzwerkelement zu werden.
- Wie in Fig. 2 gezeigt, ist die Netzwerkkarte 101 bevorzugterweise in einem internen Erweiterungs-Eingabe/Ausgabe(I/O)- Anschluß der Druckeinrichtung 102 enthalten, die in einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung ein Canon-LBP 1260-Laserdrucker ist. Dies macht die Netzwerkkarte 101 zu einem eingebetteten Netzwerkknoten mit nachstehend beschriebenen Verarbeitungs- und Datenspeichermerkmalen.
- Die Architektur der Netzwerkkarte 101 zeigt dahingehend einen Vorteil, daß sie einzigartige Unterstützungsmerkmale zur Verwaltung und zum Management von großen, Mehrfachbereichs-Weitverkehrsnetze besitzt. Diese Unterstützungsmerkmale könnten beispielsweise eine Druckeinrichtungssteuerung und Zustandsbeobachtung von einem Fernsteuerort auf dem Netzwerk (wie beispielsweise dem Büro eines Netzwerkadministrators), ein automatisches Management der Druckeinrichtungskonfiguration nach jedem Druckjob, um eine garantierte anfängliche Umgebung für einen nächsten Benutzer auszubilden, und Druckeinrichtungslogbücher oder Benutzungsstatistiken, die über das Netzwerk verfügbar sind, zur Kennzeichnung einer Druckeinrichtungsarbeitsbelastung und einer Festlegung eines Tonerpatronenersetzens sein.
- Ein wichtiger Parameter in dem Netzwerkkarten-Entwurf ist die Fähigkeit, auf den Drucksteuerzustand von Netzwerkkarte 101 durch eine bidirektionale Schnittstelle zuzugreifen, hier eine gemeinsam genutzte Speichereinrichtung, obwohl andere bidirektionale Schnittstellen, wie beispielsweise SCSI-Schnittstellen auch möglich sind. Dies erlaubt einen Export von Druckeinrichtungskonsoleninformationen zur Netzwerkkarte 101 oder einen externen Netzwerkknoten, um eine Programmierung vieler nützlicher Unterstützungsfunktionen zu erlauben. Blöcke von Druckbilddaten und Steuerinformationen werden durch einen Mikroprozessor auf der Tafel Netzwerkkarte 101 zusammengefügt, sie werden in die gemeinsam genutzte Speichereinrichtung geschrieben und sie werden dann durch die Druckeinrichtung 102 gelesen. Ähnlich werden Druckeinrichtungszustandsinformationen von der Druckeinrichtung 102 zur gemeinsam genutzten Speichereinrichtung übertragen, aus der sie durch den Netzwerkkarten- Mikroprozessor ausgelesen werden.
- Fig. 2 ist eine aufgeschnittene perspektivische Ansicht, die die Installation der Netzwerkkarte 101 in der Druckeinrichtung 102 zeigt. Wie aus Fig. 2 zu sehen, ist die Netzwerkkarte 101, die aus einer gedruckten Schaltungstafel 101a hergestellt ist, auf die eine Frontplatte 101b montiert ist, die Netzwerkverbindungen erlaubt, über eine Verbindungseinrichtung 170 mit einer Druckeinrichtungsschnittstellenkarte 150 verbunden. Wie nachstehend beschrieben, steuert die Druckeinrichtungsschnittstellenkarte 150 den Druckmotor in der Druckeinrichtung 102 direkt. Druckdaten und Druckeinrichtungszustandsbefehle werden der Druckeinrichtungsschnittstellenkarte 150 von der Netzwerk karte 101 über die Verbindungseinrichtung 170 zugeführt und Druckeinrichtungszustandsinformationen werden von der Karte 150 auch über die Verbindungseinrichtung 170 erhalten. Die Netzwerkkarte 101 überträgt diese Informationen über die Netzwerkverbindungseinrichtungen auf der Frontplatte 101b auf das lokale Netzwerk 100. Zur selben Zeit kann die Druckeinrichtung 102 auch Druckdaten von einem herkömmlichen seriellen Anschluß 102a und dem Parallelanschluß 102b empfangen.
- Fig. 3 ist ein Blockschaltbild, das eine elektrische Verbindung der Netzwerkkarte 101 zur Druckeinrichtung 102 zeigt. Die Netzwerkkarte 101 ist direkt über eine lokale Netzwerk- Schnittstelleneinrichtung mit dem lokalen Netzwerk 100 verbunden und über die Druckeinrichtungsschnittstellenkarte 150 mit der Druckeinrichtung 102. In einem bevorzugten Ausführungsbeispiel der Erfindung ist die Druckeinrichtungsschnittstellenkarte 150 eine Peerless LBP-860/1260-externe Standard Eingabe/Ausgabe-Kartenschnittstelle (Peerless LBP-860/1260-External Standard I/O-Board Interface), die von Peerless Systems Corp. verfügbar ist, deren Einzelheiten in der Peerless Standard Eingabe/Ausgabe-Schnittstellenentwurf-Beschreibung, Revision 2.07a, Peerless Systems Corp., vom 10. Mai 1994 gefunden werden kann. Die Karte enthält einen Intel 80960KB-20 Mikroprozessor 151. Obwohl es eine 32-Bit Einrichtung ist, greift der Mikroprozessor 151 auf Daten zu und von der Netzwerkkarte 101 in 2 Byte breiten (l6Bit) Übertragungen über eine auf der Netzwerkkarte 101 angeordnete gemeinsam genutzte Speichereinrichtung zu. Der Mikroprozessor 151 steht auch mit dem Druckmotor 160 in Verbindung, der gegenwärtig den Druckmechanismus antreibt.
- Fig. 4 zeigt die Ausmaße eines bevorzugten Ausführungsbeispiels der Netzwerkkarte 101 und das physikalische Layout seiner Hauptbestandteile. Die Netzwerkkarte mißt 10,0 cm mal 14,2 cm. Die Netzwerkkarte 101 enthält eine Druckeinrichtungsschnittstellenkartenverbindungseinrichtung 170 (die in dem Fall der Peerless Druckeinrichtungsschnittstellenkarte eine 80-Anschluß-Verbindungseinrichtung ist), die mit der Druckeinrichtungsschnittstellenkarte und der Frontplatte 300 verbindet, die Verbindungseinrichtungen 301 und 302 besitzt, die eine Verbindung zum lokalen Netzwerk 100 erlauben. Die Frontplatte enthält auch 4 Zustands-Lichtemissiondioden (LEDs) 303- 306. Auf der Netzwerkkarte sind eine Sende/Empfangseinrichtung 171, ein Kristalloszillator 172, eine Mikroprozessor 173, eine Schiedseinrichtungs-Steuerlogik 400, ein durch einfaches Steuersignal löschbarer, sofort neu programmierbarer Festwertspeicher bzw. Flash-EPROM 174, eine dynamische Direktzugriffs- Speichereinrichtung (DRAM) 175, eine erste statische Direktzugriffs-Speichereinrichtung (SRAM) 200, eine zweite statische Direktzugriffs-Speichereinrichtung 176, eine Netzwerk- und Netzwerkkarten-Steuerlogik 500 und eine serielle Anschlußverbindungseinrichtung 600. Jeder dieser Bestandteile wird nachstehend genauer diskutiert.
- Fig. 5 zeigt eine genauere Ansicht der Frontplatte 300, deren Ausmaße 11,6 cm mal 3,25 cm betragen. Wie vorstehend bemerkt, verbindet die Netzwerkkarte 101 über die Verbindungseinrichtungen 301 und 302 mit dem lokalen Netzwerk 100. Bevorzugterweise ist die Verbindungseinrichtung 301 eine RJ-45 Verbindungseinrichtung, der eine 10BasisT Verbindung annehmen kann, während die Verbindungseinrichtung 302 eine einfache Koaxverbindungseinrichtung sein kann, die eine 10Basis2 Verbindung annehmen kann. Eine Zustands-LED 303 wird erleuchtet, wenn die Netzwerkkarte 101 Daten über das lokale Netzwerk 100 überträgt, und eine Zustands-LED 304 wird erleuchtet, wenn die Netzwerkkarte 101 Daten von dem lokalen Netzwerk 100 empfängt. Eine Zustands-LED 305 wird erleuchtet, wenn die RJ-45 Verbindungseinrichtung 301 mit dem lokalen Netzwerk 100 verbunden ist, während eine Zustands-LED 306 während eine Selbsttestdia gnose der Netzwerkkarte 101 erleuchtet wird. Montagelöcher 307 nehmen Schrauben zur Befestigung der Netzwerkkarte 101 an der Druckeinrichtung 102 auf.
- Die Architektur des Netzwerkkarte 101 ist in Fig. 6 gezeigt. Energie für alle Schaltungen wird über eine +5 V Energiequelle 177 zur Netzwerkkarte 101 zugeführt. Ebenso wird Energiewandlereinrichtungen 178 und 179 +5 V Energie zugeführt. Der Energiewandler 178 führt einer Sende/Empfangseinrichtung 171 -9 V Energie zu, während der Energiewandler 179 dem Flash-EPROM 174 zum durch ein einfaches Steuersignal Löschen und sofort wieder neu Programniieren bzw. "Flashing"(d. h. zum Neuprogrammieren des EPROMs) +12 V Energie zu.
- Eine Netwerk- und Netzwerkkarten-Steuerlogik 500 ist bevorzugterweise eine einzelne bestimmte integrierte Schaltung für eine 144-Anschluß-Anwendung (ASIC), die eine Netzwerksteuereinrichtung 510 und eine Netzwerkkarten-Steuerlogik 520 enthält. Die Netzwerksteuereinrichtung 510 ist eine NCR-Makrozelle, die mit einer National DP83902A "ST-NIC" Ethernet-Steuereinrichtung kompatibel ist, deren Einzelheiten in National Semiconductor's Local Area Networks Databook, National Semiconductor p/n 400055, National Semiconductor, 1993 gefunden werden kann. Die Netzwerksteuereinrichtung 510 ist entworfen, an lokale Netzwerke vom CSMA/CA-Typ (Träger-empfindlicher Mehrfachzugriff mit Zusammenstoßerfassung) angeschlossen zu werden.
- Die Netzwerksteuereinrichtung 510 verbindet direkt mit der RJ- 45 Verbindungseinrichtung 301 und über die Sende/Empfangseinrichtung 171, die bevorzugterweise eine koaxiale National Semiconductor DP8392 Sende/Empfangseinrichtungs-Schnittstelle ist, deren Einzelheiten auch in National's Local Area Networks Databook gefunden werden können, mit der koaxialen Verbin dungseinrichtung 302. Die Netzwerksteuereinrichtung 510 ist auch mit einer statischen 8kB Direktzugriffs-Speichereinrichtung 176 verbunden, die als eine Eingabe/Ausgabe-Paketzwischenspeichereinrichtung für Ethernetdaten verwendet wird. Diese Speichereinrichtung sollte bevorzugt eine Zugriffszeit von ungefähr 70 ns oder weniger besitzen.
- Die Netzwerkkarten-Steuerlogik 520 bildet eine Schnittstelle zwischen der Netzwerksteüereinrichtung 510, dem Mikroprozessor 173 und Speichereinrichtungen EPROM 174 und DRAM 175. Die Netzwerkkarten-Steuerlogik 520 ist auch an eine nichtflüchtige Direktzugriffs-Speichereinrichtung (NVRAM) angeschlossen, die eine serielle elektrisch löschbare/programmierbare 256 Byte Speichereinrichtung ist, die zur Initialisierung einer Datenspeicherung während einer Energieperiode der Druckeinrichtung 102 verwendet wird, die die Netzwerkkarte 101 beherbergt. Die Netzwerk- und Druckeinrichtungskonfigurationsparameter werden in die nichtflüchtige Direktzugriffs-Speichereinrichtung bzw. in das NVRAM 180 geschrieben, wenn die Druckeinrichtung erstmals auf dem Netzwerk installiert wird, um der Netzwerkkarte-Software zu erlauben, die Installationsparameter wiederherzustellen, nachdem die Druckeinrichtungsenergieversorgung an- und abgelaufen ist.
- Die Netzwerkkarten-Steuerlogik 520 verbindet auch mit der seriellen Anschlußverbindungseinrichtung 600, die einen Empfangsdatenanschluß 601 und eine Sendedatenanschluß 602 umfaßt, der jeweils serielle Datenströme zu Austestzwecken empfangen und senden können. Die Netzwerkkarten-Steuerlogik 520 erfaßt auf der Empfangsdatenleitung vorhandene Daten und tastet die seriellen Bits in regelmäßigen Intervallen auf eine Weise ab, die später genauer diskutiert wird.
- Die zentrale Steuereinrichtung der Netzwerkkarte 101 ist ein Mikroprozessor 173, bevorzugterweise ein Intel 80C188EA-20 8- Bit Prozessor bzw. Verarbeitungseinrichtung, deren Einzelheiten in dem 80C186EA/80188EA Bedienerhandbuch, Intel p/n 270950-001, Intel Corp. gefunden werden können. Diese Verarbeitungseinrichtung ist eine 8-Bit Verarbeitungseinrichtung mit einem direkten Speichereinrichtungszugriff (DMA), Unterbrechungen, Zeitablaufeinrichtungen und einer DRAM-Wiederauffrischungssteuerung. Andere Mikroprozessoren, wie beispielsweise ein AMD 80C188-20 8-Bit Mikroprozesor, könnten alternativ verwendet werden. Das 256 kB Flash-EPROM 174 und das 512 kB DRAM 175 sind über die Netzwerkkarten-Steuerlogik 520 mit dem Mikroprozessor 173 verbunden, während ein 32 kB SRAM 200 (das mit der Druckeinrichtungsschnittstellenkarte 150 gemeinsam genutzt wird) über eine Schiedseinrichtungs-Steuerlogik 400 mit der Mikroprozessoreinrichtung 173 verbunden ist. Ein 40 MHz, 50 ppm Kristalloszillator 172 bildet den Mikroprozessor mit einem Taktsignal, das vollständig getrennt von und asynchron dem zum Mikroprozessor 151 auf der Druckeinrichtungsschnittstellenkarte 150 ausgebildeten Taktsignal ist.
- Der Mikroprozessor 173 führt Anweisungen in dem Flash-EPROM 174 aus, das Steuerfirmware und Druckanwendungssoftware speichert. Nach einem Energieeinschalt-Selbsttest (POST) wird ein Code ausgewählt zu einem 512 kB DRAM 175 mit höherer Leistung bewegt, die bevorzugterweise eine Zugriffszeit von ungefähr 80 ns für eine gegenwärtige Ausführung besitzen sollte. Das Flash-EPROM 174 kann von einem lokalen Netzwerk bzw. LAN 100, neu programmiert oder "geflasht" bzw. gelöscht werden, wie nachstehend diskutiert.
- Fig. 7 zeigt zahlreiche Beispiele für Blöcke von Codes oder Module, die in dem Flash-EPROM 174 gespeichert sind. Das XPL- Modul bildet eine standardisierte Schnittstelle zwischen der Druckeinrichtung 102 und der Netzwerkkarte 101. Eine Mehrfach- Übermittlungsabschnitt-Schnittstellenansteuereinrichtung (MLID) ist ein Teil des Novell-Codes (Medienunterstützungsmo dule oder MSM), der mit einem Teil des kundenspezifischen Codes (Hardwareunterstütungsmodul oder HSM) verbunden ist, das der niedrigste Pegel der Netzwerkverbindung ist, während eine Übermittlungsabschnittunterstützungsschicht (LSL) ein Teil des Novell-Codes ist, der als eine Multiplexereinrichtung zwischen der niedrigen Pegel Mehrfach-Übermittlungsabschnitt- Schnittstellensteuereinrichtung bzw. MLID und den zahlreichen Protokollstapeln darüber funktioniert. CNETX ist ein kundenspezifischer Code, der örtliche DOS-ähnliche Funktionsrufe in Netzwerkfunktionsrufe umkehrt, Dateifunktionen ausbildet, wie ÖFFNEN, LESEN, SCHREIBEN und SCHLIESSEN.
- Das PRETASK-Modul ist für eine Identifizierung verantwortlich, welche Arten von Datenübertragungsblöcken mit den zahlreichen möglichen Protokollstapeln verbunden sind, wie nachstehend beschrieben. Da die Netzwerkkarte 101 eine Vielzahl von Protokollstapeln unterstützt, existiert dieses Modul so lang, wie das Netzwerkkarte 101 läuft.
- Der IPX/SPX-Protokollstapel von Novell ist in dem Flash-EPROM 174 enthalten und wird von SAP oder einem Service Advertising Protokol bzw. Dienstwerbeprotokoll unterstützt. SAP ist ein Novell-Konzept, das Einrichtungen eine Registrierung von sich selbst in der Ablage des Dateiservers erlaubt, die aktive und inaktive Netzwerkobjekte auflistet. Da Druckeinrichtungsserver eine bestimmte Art von Ablageelement sind, registriert SAP über CPSOCKET die Netzwerkkarte 101 und, wenn die Netzwerkkarte 101 als ein Druckeinrichtungsserver ausgebildet ist, registriert SAP den Druckeinrichtungsserver mit der NetWare- Ablage.
- CPRINTSERVER ist eine gewöhnliche Implementation einer Novell- Druckserveranwendung. Dieses Modul erzeugt selbsterzeugte Druckbanner, eine Bedienerbezeichnung eines Beendigungs- und Ausnahmezustands und einer Übertragung von Druckdaten und Zu standsbefehlen zur Druckeinrichtung. Dies unterscheidet sich von Novell-Druckserver dahingehend, daß CPRINTSERVER zur Ansteuerung der örtlichen Druckeinrichtung (d. h. der Druckeinrichtung 102, in der die Netzwerkkarte 101 beinhaltet ist) bestimmt und irgendwelche Fernbedienungs-RPRINTER nicht ansteuern kann. Dieses Programm besitzt den Druckdatenkanal für die Dauer einer Druckaufgabe. RPRINTER ist eine gewöhnliche Implementation einer Novell-RPRINTER-Druckanwendung. Dieses Modul ist eine Slave- bzw. Nebengerätanwendung, die durch eine Novell-Druckserveranwendung irgendwo auf dem lokalen Netzwerk 100 gesendete Daten sind.
- Der TCP/IP-Protokollstapel besitzt ein Bediener-Datagramm- Protokoll (UDP), Rückadressierungs-Auflösungs-Protokoll (RARP) und eine BootP-Unterstützung innerhalb. INTERRUPT ist die Unterbrechungshandhabungseinrichtung für die TCP/IP-Aufgabe, während TIMERTICK der Zeitgebermoment für UNIX TCP/IP Netzwerkaufgaben ist. LPRINTSERVER ist die TCP/IP-Druckserveranwendung und besitzt auch den Druckdatenkanal für die Dauer einer Druckaufgabe.
- Das CPSOCKET-Programm läuft für alle Protokollstapel. Das Programm spricht auf alle Anforderungen nach einer Verbindung, Anforderungen für ein Datenherunterladen oder Anforderungen für Dienste von Fernsteuereinrichtungen an und stellt Zustand und eine Steuerung für andere Aufgaben über eine Zwischenverarbeitungsverbindung zur Verfügung. Da CPSOCKET typischerweise den Zustands- und Steuerkanal zwischen Netzwerkkarte 101 und der Druckeinrichtung 102 besitzt, ist es nur die Aufgabe, die die Fähigkeit besitzt, einen Druckeinrichtungszustand über den Zustandskanal zu erhalten. CPSOCKET ist veranwortlich für die Netzwerkverbindung und Paketinhalte zwischen den Novell-ausgerichteten Zustands- und Steuereinrichtungen (CPNET) oder zwischen den UNIX-ausgerichteten Zustands- und Steuereinrichtungen (cpnet).
- MONITOR ist eine angepaßter Mehrfachaufgaben- bzw. Multitasking-Monitor, der eine Aufgabenerzeugung, eine Aufgabenzerstörung und eine Mikroprozessorauswahl durchführt. MONITOR besitzt auch Speichereinrichtungsverwaltungs-Untermodule MEMGET und MEMFREE. RESIDENT ist ein Block von Routinen, der allgemeine Dienste anbietet, wie beispielsweise NVRAM-Lesen und - Schreiben, FLASH-Code, ROM-basierender Fehlersucheinrichtung, Hardware-Zeitgebermoment und andere grundlegende Merkmale ausbildet. POST ist eine Einschalt-Selbsttest-Modul, das die Integrität von Netzwerkkarten-Hardware und -Software beim Einschalten überprüft.
- Ein Flash-EPROM 174 speichert auch eine Netzwerk- Identifizierungs-Datei("Netzwerk-Identifizierungsdatei")- Block, der Kartenunveränderbare Informationen, wie beispielsweise die Medienzugriffsteuer("MAC")-Adresse, die einzigartig für jede Netzwerkkarte ist, die Hardwarekonfiguration, die Kartenrevisionsnummer und dergleichen, ebenso wie veränderbare Informationen, wie beispielsweise die Softwareversionsnummer. Die Informationen in dem NIF- bzw. Netzwerkidentifizierungsdatei-Block werden verwendet, um sicherzustellen, daß das Flash- EPROM 174 nicht mit einem inkompatiblen Bild neu programmiert wird. Der Netzwerk-Identifizierungsdatei-Block wird nachstehend in Verbindung mit Fig. 13 genauer diskutiert.
- Alle Datenübertragung zwischen der Netzwerkkarte 101 und der Druckeinrichtungsschnittstellenkarte 150 wird über ein gemeinsam genutztes 32 kB SRAM 200 ausgeführt. Eine Schiedseinrichtungs-Steuerlogik 400, bevorzugterweise ein einzelnes 100- Anschluß ASIC entscheidet zwischen den zwei Byte weiten Speichereinrichtungszugriffen des Druckeinrichtungsschnittstellen- Mikroprozessors 151 und den ein Byte weiten Speichereinrichtungszugriffen des Netzwerkkarten-Mikroprozessors 173, wobei jeder vollständig unabhängig vom anderen ist.
- Allgemein gesagt, der 8-Bit Datenbus des Mikroprozessors 173 auf der Netzwerkkarte 101 steht mit der Bussteuerlogik 410 in Verbindung, während der 32-Bit Datenbus des Mikroprozessors 151 auf der Karte der Druckeinrichtungsschnittstellenkarte 150 mit der Bussteuerlogik 420 in Verbindung steht. Speichereinrichtungszugriffe von jedem Bus werden zur gemeinsam genutzten Speichereinrichtungsschiedseinrichtung 430 geleitet, die bestimmt, welcher Bus die Priorität besitzt (entsprechend einer nachstehend diskutierten Entscheidungstechnik) und erlaubt dem Bus mit Priorität einen Zugriff auf die statische Direktzugriffs-Speichereinrichtung bzw. SRAM 200 über die SRAM- Schnittstelle. Auf die Unterbrechungssteuerregistereinrichtung 450 wird auch über die gemeinsam genutzte Speichereinrichtungsschiedseinrichtung 430 zugegriffen, um einem Mikroprozessor eine Unterbrechung des anderen zu erlauben.
- Allgemein gesagt, die Netzwerkkarte 101 ist eine interaktive Netzwerkschaltungskarte, die die Druckeinrichtung 102 mit dem lokalen Netzwerk 100 verbindet, was die Druckeinrichtung 102 zu einem ansprechenden und interaktiven Netzwerkelement macht. Die Netzwerkkarte 101 empfängt Druckaufgabeninformationen und Zustandsanforderungen von dem lokalen Netzwerk 100, überträgt die Druckdaten und Zustandsbefehle zur Ausführung an die Druckeinrichtung 102 und überträgt Zustandsinformationen zurück zum lokalen Netzwerk 100.
- Somit kann die Netzwerkkarte 101 nicht nur die RPRINTER-Fernbedienungs-Druckeinrichtungsdienste und PSERVER-Druckserverfunktionalitäten durchführen, sondern kann auch Netzwerkelementen eine breite Anzahl von Zustands- und Steuermerkmalen anbieten. Durch die Netzwerkkarte 101 können Netzwerkelemente auf langatmige Ausmaße von in der Netzwerkkarte gespeicherten Zustandsinformationen zugreifen, wie beispielsweise die Anzahl von Druckaufgaben, die Anzahl von Seiten pro Aufgabe, die Anzahl von Seiten pro Minute, die Zeit pro Aufgabe, die Anzahl von Gesamtseiten pro Tag und die Anzahl von Aufgaben pro Tag. Zusätzlich kann eine große Menge von Steuerinformationen vom Netzwerk zur Druckeinrichtung 102 zugeführt werden, wie beispielsweise eine Ausübung der Druckeinrichtungs-Fronttafelfunktionen von einem vernetzten Personalcomputer (PC).
- Aller Netzwerkverkehr betritt und verläßt die Netzwerkkarte 101 durch entweder eine BNC-Verbindungseinrichtung 302, die eine Schnittstelle mit der Netzwerksteuereinrichtung 510 durch die Sende/Empfangseinrichtung 171 bildet, oder eine RJ-45- Verbindungseinrichtung 301, die direkt mit der Netzwerksteuereinrichtung 510 eine Schnittstelle bildet. Zur Beseitigung der Notwendigkeit für einen Benutzer, einen Schalter physikalisch zu positionieren, enthält die Netzwerkkarte 101 Hardware und Software, die automatisch erfaßt, welche der zwei Verbindungseinrichtungen mit dem Netzwerk verbunden ist. Die Netzwerkdatenübertragungen werden zwischen der ausgewählten Verbindungseinrichtung und dem Rest der Karte übertragen, wobei die Netzwerksteuereinrichtung 510 zusammen mit der Netzwerkkarten- Steuerlogik 520 den Fluß der Daten zwischen dem Netzwerkverkehr auf der ausgewählten Verbindungseinrichtung und dem Datenbus des Mikroprozessors 173 steuert.
- Alle durch den Mikroprozessor 173 ausgeführten Softwaremodule sind in dem Flash-EPROM 174 gespeichert. Einige Module mit niedrigem Niveau, die immer benötigt werden, wie beispielsweise Zeitgebermoment und NVRAM-Lesen könnten direkt aus dem EPROM 174 ausgeführt werden, aber für die meisten Teile führt der Mikroprozessor 173 keine Softwaremodule direkt von dem Flash-EPROM 174 aus, sondern lädt eher selektiv diese Module, die benötigt werden, in die dynamische Direktzugriffs- Speichereinrichtung bzw. das DRAM 175 zur Ausführung von dem DRAM. Aufgrund dieser Anordnung ist es möglich, die bestimmten Module auszuwählen, die aus dem Flash-EPROM 174 für eine Ausführung aus dem DRAM 175 wiederhergestellt werden, um eine flexible Konfiguration der Netzwerkkarte 101 zu erlauben.
- Da beispielsweise viele Datenübertragungsprotokolltypen auf dem lokalen Netzwerk 100 gesendet werden können, enthält die Netzwerkkarte 101 in dem Flash-EPROM 174 Softwaremodule zur Unterstützung einer Vielzahl von Protokollen. Die Netzwerkkarte 101 überwacht allen Netzwerkverkehr auf dem heterogenen Netzwerk, um den verwendeten Protokoll-Typ oder die -Typen zu bestimmen, und lädt den oder die Protokollstapel, die den erfaßten Protokollen entsprechen, in das DRAM 175.
- Eine Neuprogrammierung des Flash-EPROMS 174 mit einem neuen Bild, die einen neuen Protokollstapel enthalten kann, wird auch über das DRAM 175 durchgeführt. Wenn ein neues Bild und ein Befehl zur Neuprogrammierung, wie beispielsweise ein über das Netzwerk oder eine serielle Anschlußverbindungseinrichtung 600 empfangener Befehl, empfangen wird, wird das Software- Neuprogrammierungsmodul vom EPROM 174 in das DRAM 175 geladen. Der Mikroprozessor 173, der dieses Modul von dem DRAM 1175 ausführt, bestätigt, daß das neuen Firmwarebild mit der Konfiguration der Netzwerkkarte 101 kompatibel ist, und programmiert das EPROM 174 neu, wenn die Kompatibilität bestätigt wird, wie nachstehend genauer beschrieben.
- Der Mikroprozessor 173, der einen geladenen Protokollstapel aus dem DRAM 175 ausführt, kann Netzwerkdatenübertragungen zu und von anderen lokalen Netzwerkelementen, die das Protokoll verwenden, senden und empfangen. Druckaufgabendaten werden durch die Netzwerksteuereinrichtung 510 empfangen und durch die Netzwerkkarten-Steuerlogik 520 zum Mikroprozessor 173 geleitet. Der Mikroprozessor 173 schreibt die Druckaufgabendaten in das gemeinsam genutzte Speichereinrichtungs-SRAM 200, aus dem der Druckeinrichtungsmikroprozessor 151 die Daten liest und die Druckeinrichtung 160 entsprechend betätigt. Zusätzlich kann jeder der Mikroprozessoren 173 und 151 Mitteilungsdaten zum anderen Mikroprozessor in einem anderen Teil der gemeinsam genutzten Speichereinrichtung schreiben.
- Über einen Zugriff auf das gemeinsam genutzte SRAM 200, wie vorstehend diskutiert, wird durch eine Schiedseinrichtungs- Steuerlogik 40 gemäß einer Entscheidungs-Prioritätstechnik entschieden. Die Schiedseinrichtungs-Steuerlogik 400 verzahnt verzahnt ablaufende Zugriffe der zwei Mikroprozessoren miteinander, indem den Mikroprozessoren erlaubt wird, auf das gemeinsam genutzte SRAM auf einer "wer zuerst kommt, wird zuerst bedient"-Basis zuzugreifen und einen Wartezustand zum Prozessor niedriger Priorität darstellt, während der Prozessor höherer Priorität seine Arbeitsschicht nimmt. Im Fall einer exakten Bindung wird dem Mikroprozessor 173 der Netzwerkkarte 101 beliebig eine Priorität gegeben.
- Ein großer Teil der gemeinsam genutzten SRAM 200 ist als eine Ringzwischenspeichereinrichtung ausgebildet, in die der Netzwerkkarten-Mikroprozessor 173 Druckdaten schreibt und aus der sie der Druckeinrichtungsschnittstellen-Mikroprozessor 151 liest. Wenn jeder Prozessor Blöcke von Daten schreibt oder liest, aktiviert er jeweils eine "Ablege"-Zeigeeinrichtung oder eine "Hol"-Zeigeeinrichtung, die irgendwo in dem SRAM 200 gespeichert sind, um den nächsten Ort anzuzeigen, auf den der Prozessor zugreifen sollte.
- Aufgrund dieser Anordnung kann der Schreibprozessor bestimmen, ob es einen verfügbaren Raum in der Speichereinrichtung gibt, in den er schreiben kann, und der Leseprozessor kann bestimmen, ob es verbleibende zu lesende Daten gibt, indem die "Ablege"- und "Hol"-Zeigeeinrichtungen miteinander verglichen werden. Zur Verringerung des Ausmaßes der Konkurrenz um die gemeinsam genutzte Speichereinrichtung zwischen den zwei Prozessoren, hält der Netzwerkkarten-Mikroprozessor 173 ein Schreiben in die Speichereinrichtung (und demgemäß ein Lesen und Aktualisieren der Zeigeeinrichtungen) in vorbestimmten Intervallen an, was dem Druckeinrichtungsschnittstellen- Mikroprozessor 151 einen alleinigen Zugriff auf die Speichereinrichtung erlaubt, bis er unterbricht, wie nachstehend genauer beschrieben.
- Eine serielle Anschlußverbindungseinrichtung 600 ist ausgebildet, um der Netzwerkkarte 101 zu erlauben, von einem externen Computer ausgeprüft zu werden. Die serielle Anschlußverbindungseinrichtung 600 ist mit der Netzwerkkarten-Steuerlogik 520 verbunden, die serielle Daten von einem Empfangsdatenanschluß 601 der seriellen Anschlußverbindungseinrichtung 600 annimmt und die seriellen Daten Bit für Bit zum Mikroprozessor 173 überträgt. Der Mikroprozessor 173 bildet die Netzwerkkarten-Steuerlogik 520, so daß ein Startbit in den seriellen Daten die nicht-maskierbare Unterbrechung des Mikroprozessors aktiviert. Der Mikroprozessor 173 fügt dann die Datenbits der seriellen Daten in 8-Bit Worte zusammen. Zusätzlich überwacht die Netzwerkkarten-Steuerlogik 520 den Datenbus des Mikroprozessors 173 und passiert einen seriellen Strom der Daten, die darauf dargestellt werden, um einen Datenanschluß 602 der seriellen Anschlußverbindungseinrichtung 600 zu übertragen, wobei alles nachstehend genauer beschrieben wird.
- Netzwerk-Schnittstellenkarten erzeugen im allgemeinen zahlreiche verschiedene Arten von physikalischen Verbindungen zur Verbindung von Netzwerkkabeln mit einem lokalen Netzwerk. Die Netzwerkkarte 101 erzeugt beispielsweise eine BNC-Verbindungseinrichtung 302, mit der ein 10Basis2 Koaxialkabel verbinden kann, und eine RJ-45 Verbindungseinrichtung 301, mit der ein 10BasisT ungeschirmtes verdrilltes Paar (UTP) Draht verbinden kann. Andere physikalische Verbindungen, wie beispielsweise eine IBM-Datenverbindungseinrichtung für einen geschirmtes verdrilltes Paar (STP)-Draht oder eine ST faseroptische Verbindungseinrichtung für ein faseroptisches Kabel sind auch möglich.
- Typischerweise muß, wenn eine Netzwerk-Schnittstellenkarte über eine ihrer zahlreichen Verbindungseinrichtungen mit einem lokalen Netzwerk verbunden ist, ein Benutzer, der die Verbindung mit dem lokalen Netzwerk ausbildet oder verändert, nicht nur das lokalen Netzwerkkabel in die geeignete Verbindungseinrichtung einfügen, sondern muß auch physikalisch die Position des Hardware-Schalters oder von "Jumpern" verändern, so daß Daten zu und von der geeigneten Verbindungseinrichtung geleitet werden.
- Aufgrund eines menschlichen Fehlers ist es jedoch für den Benutzer möglich, zu vergessen, die Jumper zu verändern oder die Jumper in einen ungeeigneten Zustand im Hinblick auf die Verbindung zu setzen, die ausgebildet wurde. In einer derartigen Situation konnte die Karte natürlich überhaupt nicht mit dem Netzwerk sprechen. Eine Isolierung und Korrektur des Problems ergibt eine unannehmbare Verschwendung von Zeit, Arbeitskraft und Computerresourcen. Eine Netzwerkschnittstellenkarte, die automatisch erfaßt, welche Verbindungseinrichtung mit dem lokalen Netzwerk verbunden wurde, und dann Daten zu und von der Verbindungseinrichtung leitet, würde den Vorgang zur Ausbildung und/oder Veränderung von Verbindungen sehr stromlinienförmig machen.
- Die vorliegende Verbindung bietet für eine derartige automatische Erfassung der Hardware-Verbindung durch Testen jeder der Verbindungseinrichtungen pro Durchlauf auf eine Anzeige einer Netzwerkverbindung und danach Auswahl einer der Verbindungs einrichtungen, so daß Netzwerkverbindungen zwischen der ausgewählten Verbindungseinrichtung und dem Prozessor auf der Karte übertragen werden können. Kurz gesagt, eine Netzwerksteuereinrichtung enthält eine erste Erfassungseinrichtung, die erfaßt, ob die erste Verbindungseinrichtung mit dem Netzwerk elektrisch verbunden ist, und eine erste Registereinrichtung, die der Prozessor lesen kann, die ein "Geplapper" bzw. "Jabber" - Bit speichert, das anzeigt, ob die zweite Verbindungseinrichtung ungeeignet beendet wird. Eine zweite Registereinrichtung, die der Prozessor auch lesen kann, speichert ein "Gute Verbindung"-Bit, das anzeigt, daß die erste Erfassungseinrichtung erfaßt hat, daß die erste Verbindungseinrichtung elektrisch mit dem Netzwerk verbunden ist, und eine Steuerregistereinrichtung, in die der Prozessor schreiben kann, speichert ein Auswahlbit. Die Steuerregistereinrichtung gibt das Auswahlsignal entsprechend dem darin gespeicherten Auswahlbit aus.
- Der Mikroprozessor führt einen Software-gesteuerten Auswahlvorgang durch mittels (1) Schreiben eines Auswahlbits in die Steuerregistereinrichtung, um eine Ausgabe eines Auswahlsignals zu verursachen, das die erste Verbindungseinrichtung auswählt (hier RJ-45 301), (2) Lesen des Gute-Verbindung-Bits aus der zweiten Registereinrichtung, (3) Beibehalten des Zustands des Auswahlbits, wenn das Gute-Verbindung-Bit eine elektrische Verbindung mit dem Netzwerk anzeigt, (4) Schreiben eines Auswahlbits in die Steuerregistereinrichtung, um eine Ausgabe eines Auswahlsignals zu verursachen, das die zweite Verbindungseinrichtung (hier UTP 302) auswählt, wenn das Gute- Verbindung-Bit keine elektrische Verbindung mit dem Netzwerk anzeigt, (5) Lesen des "Jabber"-Bits aus der ersten Registereinrichtung, (6) Beibehalten der Zustands des Auswahlbits, wenn das Jabber-Bit keine ungeeignete elektrische Beendigung der zweiten Verbindungseinrichtung anzeigt, und (7) Wiederholen des Auswahlvorgangs, wenn das Jabber-Bit eine ungeeignete elektrische Beendigung der zweiten Verbindungseinrichtung an zeigt. Diese Abfolge erlaubt, daß ein Auswahlvorgang nach dem Einschalten der Karte stattfindet. Wenn eine Auswahl erfolgt, wird sie für den gesamten Einschaltzyklus der Karte beibehalten.
- Genauer und unter Bezugnahme auf Fig. 8 sind eine BNC- Verbindungseinrichtung 302 (durch die Sende/Empfangsseinrichtung 171) und die RJ-45-Verbindungseinrichtung 301 jeder mit einer Auswahleinrichtung 511 in der Netzwerksteuereinrichtung 510 verbunden. Ein Netzwerkverkehr fließt zu und von dem Mikroprozessor 173 durch den Bus 181 entweder über die BNC- Verbindungseinrichtung 302 oder die RJ-45-Verbindungseinrichtung 301, abhängig vom Zustand der Auswahleinrichtung 511. Die Position der Auswahleinrichtung 511 wird durch die Ausgabe der Steuerregistereinrichtung 521 bestimmt.
- Wenn die RJ-45-Verbindungseinrichtung 301 mit einem lokalen Netzwerk verbunden ist, wird ein elektrischer Strom an der Verbindungseinrichtung vorhanden sein. Demgemäß enthält die Netzwerksteuereinrichtung 510 eine Gute-Verbindung-Erfassungseinrichtung 512, die die RJ-45-Verbindungseinrichtung 301 überwacht, um zu bestimmen, ob die RJ-45-Verbindungseinrichtung 301 elektrisch mit dem lokalen Netzwerk 100 verbunden ist. In der 83902 Netzwerksteuereinrichtung ist eine Gute- Verbindung-Erfassungseinrichtung 512 als eine offene Drain- bzw. Senke-N-Kanal-Einrichtung gebildet. Wenn ein elektrischer Strom an der RJ-45-Verbindungseinrichtung 301 erfaßt wird, wird das Ausgangssignal der Gute-Verbindung-Erfassungseinrichtung 512 niedrig sein und die Zustands-LED 305 wird erleuchtet sein, was eine elektrische Verbindung anzeigt. Wenn es keinen Strom an der RJ-45-Verbindungseinrichtung 301 gibt, wird andererseits das Ausgangssignal der Gute-Verbindung-Erfassungseinrichtung auf einen hohen Wert gehen, was die Zustands-LED 305 ausschaltet. Die Ausgabe des Gute-Verbindung-Bits wird aus der Gute-Verbindung-Registereinrichtung 522 in der Netzwerk karten-Steuerlogik 520 zugeführt, was dem Mikroprozessor 173 erlaubt, den Zustand des Gute-Verbindung-Signals zu lesen.
- Eine BNC-Verbindungseinrichtung, wie beispielsweise die BNC- Verbindungseinrichtung 302 wird "Jabber", außer wenn die Verbindungseinrichtung geeignet beendet wird, wie beispielsweise, wenn sie mit einem lokalen Netzwerk mit einem Koaxialadapter vom T-Typ verbunden ist. Die Netzwerksteuereinrichtung 510 enthält eine Jabber-Erfassungsschaltung 513, die auf im Stand der Technik wohlbekannte Weise erfaßt, ob es Geplapper bzw. Jabber an der BNC-Verbindungseinrichtung gibt, und schreibt das Ergebnis seiner Erfassung in eine Jabber-Erfassungseinrichtung 514. Somit erhält die Jabber-Registereinrichtung ein Bit, das anzeigt, ob die BNC-Verbindungseinrichtung 302 richtig beendet ist. Das Jabber-Bit kann dann durch die Software gelesen werden.
- Der Mikroprozessor 173 steuert den Zustand der Auswahleinrichtung 511 durch Ausführen eines in dem Flash-EPROM 174 gespeicherten Softwaremoduls auf eine Weise, die nun unter Bezugnahme auf das Ablaufdiagramm gemäß Fig. 9 beschrieben wird. Nach dem Versorgen der Netzwerkkarte 101 mit Energie (Schritt S900) setzt der Mikroprozessor 173 die Auswahleinrichtung 511 auf die RJ-45-Position, indem eine Null über einen Bus 181 in die Steuerregistereinrichtung 521 geschrieben wird (Schritt S901) Das Programm liest den Zustand der Gute-Verbindung-Registereinrichtung 522 (Schritt S902) und, wenn das in der Gute- Verbindung-Registereinrichtung 522 gespeicherte Bit niedrig ist (was einen elektrischen Strom anzeigt), bestimmt das Programm, daß die RJ-45-Verbindungseinrichtung 301 mit dem lokalen Netzwerk 100 verbunden ist und verläßt es, was die Verbindungseinrichtung 511 in der RJ-45-Position läßt (5903-5904).
- Da es eine innewohnende Verzögerung beim Schalten der N-Kanal- Einrichtung gibt, die die Gute-Verbindung- Erfassungseinrichtung 512 umfaßt, ist es erforderlich, der Gute-Verbindung-Erfassungseinrichtung 512 eine beträchtliche Zeit zu geben, um eine elektrische Verbindung zu erfassen. Wenn demgemäß das in der Gute-Verbindung-Registereinrichtung 522 gespeicherte Bit hoch ist (was keine elektrische Verbindung anzeigt), wird das Programm die Gute-Verbindung-Registereinrichtung 522 wiederholt neu lesen, Erregen und die Auswahleinrichtung 511 in der RJ-45-Position lassen, wenn das Bit für irgendeinen der Lesevorgänge niedrig ist (Schritte S905-S906- S902). Wenn das in der Gute-Verbindung-Registereinrichtung 522 gespeicherte Bit nach fünfhundert Lesevorgängen hoch ist, setzt das Programm jedoch die Auswahleinrichtung 511 durch Schreiben einer eins in die Steuerregistereinrichtung 521 auf die BNC-Position (Schritt S907).
- Das Programm liest dann die Jabber-Registereinrichtung (Schritt S908). Wenn der Zustand der Jabber-Registereinrichtung 514 niedrig ist (was anzeigt, daß die BNC-Verbindungseinrichtung 302 richtig beendet wurde und eine BNC-Verbindung vorhanden ist), geht das Programm heraus, wobei die Auswahleinrichtung 511 in der BNC-Position gelassen wird (Schritte S909-S910). Wenn der Zustand des Jabber-Bits hoch ist (was anzeigt, daß die BNC-Verbindungseinrichtung 302 nicht richtig beendet wurde und somit nicht mit dem lokalen Netzwerk 100 verbunden ist), kehrt das Programm zu 5901 zurück, wobei die Auswahleinrichtung 511 auf die RJ-45-Position zurücksetzt wird. Das Programm führt sich selbst dann wieder zyklisch neu aus, bis entweder eine RJ-45-Verbindung oder eine BNC-Verbindung erreicht wurde.
- Somit wird die Netzwerkkarte 101 fortsetzen, zwischen der BNC- Verbindungseinrichtung 302 und der RJ-45-Verbindungseinrichtung 301 zu kippen, wobei nach jedem Kippen überprüft wird, ob diese bestimmte Verbindungseinrichtung mit dem lokalen Netzwerk 100 verbunden ist. Mittels dieser Anordnung kann die Netzwerkkarte 101 beim Einschalten (und bis eine Verbindung hergestellt ist) bestimmen, ob seine BNC-Verbindungseinrichtung 302 oder seine RJ-45-Verbindungseinrichtung 301 mit dem Netzwerk verbunden wurde, ohne einen Bediener zur physikalischen Veränderung eines Schalters zu benötigen. Demgemäß wird die Möglichkeit beseitigt, daß die Netzwerkkarte 101 versuchen wird, über eine Verbindungseinrichtung, die nicht mit dem lokalen Netzwerk 100 verbunden ist, mit den Netzwerk 100 in Verbindung zu treten.
- Im vorliegenden Ausführungsbeispiel wird die ausgewählte Hardware-Verbindung während des Einschaltzyklus beibehalten. Es ist möglich, eine Software zu implementieren, die nach erfolgter Auswahl erfaßt, wenn die Hardware-Verbindung nicht länger gültig ist, und dann den Auswahlvorgang wiederholt, wodurch ein Verändern der Verbindungseinrichtungen während des gegenwärtigen Einschaltzyklus erlaubt wird. Dies erlaubt ein dynamisches Schalten von einer Verbindung zur anderen.
- Zur Sicherstellung einer richtigen Funktion in einem Mehrfach- Protokollsystem und zur Überwachung gegen eine Durchführung von falschen Annahmen betreffend das auf einem Netzwerk verwendete Protokoll und den Datenübertragungsblocktyp verwendet die Netzwerkkarte 101 eine automatische Protokollerfassung, um die durch den Netzwerkverkehr verwendeten Datenübertragungsblöcke zu bestimmen und mit den Datenübertragungsblocktypen mit einem bestimmten von zahlreichen verschiedenen für das Netzwerkkarte 101 verfügbaren Protokollen zu korrelieren. Insbesondere kann der Netzwerkkarten-Mikroprozessor 173 durch die Verbindung des in dem Flash-EPROM 174 gespeicherten PRETASK- Moduls bestimmen, welcher Datenübertragungsblocktyp für den Netzwerkverkehr verwendet wird, um diesen Datenübertragungsblocktyp mit einem von zahlreichen verschiedenen Protokollen zu korrelieren, und einen Protokollstapel (beispielsweise IPX/SPX oder TCP/IP) aus dem Flash-EPROM 174 zu laden, um Netzwerkdatenübertragungen unter Verwendung dieses Protokolls und der erfaßten Datenübertragungsblocktyps auszuführen.
- Die Fig. 10 und 11(a) bis 11(d) werden zur Beschreibung dieses Vorgangs verwendet. Fig. 10 ist ein Ablaufdiagramm, das Vorgangsschritte zeigt, die durch die Netzwerkkarten- Mikroprozessor 173 entsprechend dem in dem Flash-EPROM 174 geladenen PRETASK-Softwaremodul ausgeführt werden. PRETASK ist, auch wenn es davon verschieden ist, ähnlich dem PRESCAN- Softwaremodul, das in der unter EP-A-0598510 veröffentlichten Anmeldung des Anmelders beschrieben ist und den Titel "Method and Apparatus For Adaptively Determining The Format Of Data Packets Carried On A Local Area Network" besitzt.
- In Schritt S1001 lädt der Mikroprozessor 173 MLID (die Mehrfach-Verbindungs-Schnittstellen-Ansteuereinrichtung) aus dem Flash-EPROM 174 in das DRAM 175 und beginnt die Ausführung des MLID. Wie vorstehend beschrieben, ist MLID das niedrigste Niveau von Software, das dem Netzwerk in Verbindung steht. MLID wirkt somit als direkte Software-Schnittstelle zu den Netzwerk-Datenübertragungsblockpaketen, die auf dem Netzwerkdraht übertragen werden.
- In Schritt S1002 lädt der Mikroprozessor 173 LSL (Verbindungsunterstützungsschicht) auf der Oberseite von MLID und beginnt eine Ausführung von LSL. LSL wirkt als ein Multiplexer zwischen der MLID auf niedrigem Niveau und zahlreichen Protokollstapeln, die darüber geladen werden können. Insbesondere nimmt LSL Registrierungen von irgendeinem der zahlreichen Datenübertragungsblocktypen an, mit denen Datenübertragungsblockpakete auf dem Netzwerk übertragen werden können. Somit wird beispielsweise in einer Ethernetumgebung LSL Registrierungen von 802.2, 802.3, Ethernet_II und Ethernet_Snap annehmen und in einer Token-Ring-Umgebung wird LSL Registrierungen für 802.5 und Token Ring Snap annehmen. Durch Registrierung eines Datenübertragungsblocktyps mit LSL weist ein Software-Modul über LSL LSL an, das Modul mit allen Datenübertragungsblockpaketen zu versehen, die mit dem registrierten Datenübertragungsblocktyp zusammenpassen.
- In Schritt S1003 lädt der Mikroprozessor 173 PRETASK auf die Oberseite von LSL. Wie vorstehend erwähnt, ist PRETASK verantwortlich für eine Identifizierung, welche Datenübertragungsblocktypen mit den zahlreichen Protokollen verbunden sind, für die die Netzwerkkarte 101 angepaßt ist, um Daten zu übertragen. In Schritt S1004 registriert PRETASK, um von LSL alle Datenübertragungsblocktypen zu empfangen, die durch MLID unterstützt werden. Somit registriert in der Ethernet-Umgebung des vorliegenden Ausführungsbeispiels PRETASK 802.2, 802.3, Ethernet II und Ethernet Snap mit LSL, wodurch LSL angewiesen wird, PRETASK mit Datenübertragungsblockpaketen zu versehen, die mit einem der registrierten Datenübertragungsblocktypen zusammenpassen.
- Der Ablauf schreitet dann zu Schritt S1005 fort, in dem MLID und LSL das Netzwerk auf irgendeinen Verkehr überwachen. Insbesondere wird in Schritt S1005 das Netzwerk auf dem Rundfunkverkehr überwacht, was bedeutet, daß die Richtung des Verkehrs unbestimmt ist (d. h. "zu irgendeinem"). Einfach gesagt, der Rundfunkverkehr wird durch eine globale Bestimmung für die Richtung MAC-Adresse, beispielsweise 12 hexadezimale F's in Folge identifiziert. Bis ein lokaler Netzwerk-Funkverkehr erfaßt wird, tut PRETASK nichts.
- An diesem Punkt in der PRETASK-Ausführung ist die Beziehung den zahlreichen Software-Modulen wie in Fig. 11(a) gezeigt. Wie dort gezeigt, ist es für Mehrfach-Netzwerkeinrichtungen möglich, wie beispielsweise Einrichtungen 182, 183, 184 und 185, von denen jede mit einem verschiedenen Protokoll unter Verwendung eines verschiedenen Datenübertragungsblocktyps läuft, daß sie mit einem einzelnen lokalen Netzwerk 100 verbunden sind. In Fig. 11(a) ist Einrichtung 182 eine Novell- Einrichtung, die mit einem IPX/SPX-Protokoll unter Verwendung eines 802.2 Datenübertragungsblocktyps läuft, eine Einrichtung 183 ist eine UNIX-Einrichtung, die mit einem TCP/IP-Protokoll unter Verwendung eines Ethernet II-Datenübertragungsblocktyps läuft, Einrichtung 184 ist eine Macintosh-Einrichtung, die mit einem EtherTalk-Protokoll unter Verwendung eines Ethernet Snap-Datenübertragungsblocktyps läuft, und eine Netzwerkeinrichtung 185 ist ein unidentifizierter Datenübertragungsblock und eine Protokolleinrichtung unter Verwendung eines 802.3 Datenübertragungsblocktyps. Natürlich sind die in Fig. 11(a) gezeigten Kombinationen nur veranschaulichend und es ist möglich, für ein Novell IPX/SPX einen 802.3 Datenübertragungsblocktyp oder irgendeinen der anderen Datenübertragungsblocktypen zu verwenden. Das einzige Erfordernis ist, daß jedes Protokoll mit einem und nur einem Datenübertragungsblocktyp verbunden ist.
- Die Netzwerkkarte 101 ist auch mit dem lokalen Netzwerk 100 verbunden und enthält eine auf der Oberseite des MLID 186 geladene LSL 187. PRETASK 188 ist als mit jedem der verschiedenen Datenübertragungsblocktypen registriert gezeigt, die auf dem lokalen Netzwerk 100 senden können. Somit hat, wie in Fig. 11(a) gezeigt, PRETASK 188 802.2 bei 189, Ethernet II bei 190, Ethernet Snap bei 191 und 802.3 bei 192 registriert.
- Wenn lokaler Netzwerk-Funkverkehr erfaßt wird, schreitet der Ablauf zu Schritt S1006 fort, in dem LSL das Datenübertragungsblockpaket zu PRETASK ausbildet. In Schritt S1007 dekodiert PRETASK den Datenübertragungsblock-Protokollkopf, um das durch das Datenübertragungsblockpacket verwendete Protokoll zu identifizieren. Die Verschiebung zu diesem Kopf verändert sich abhängig von dem Dateübertragungsblocktyp, den das Protokoll verwendet. Die folgende Tabelle enthält einige Beispiele für hexadezimale Werte und die Protokollköpfe, die die verschiedenen Protokolle identifizieren.
- Hexidezimal-Wert Protokolltyp
- 0800 IP
- 0806 ARP
- 809B EtherTalk
- 8137 IPX/SPX
- Fig. 11(b) veranschaulicht diese Abfolge. Wie aus Fig. 11(b) ersichtlich hat die Netzwerkeinrichtung 182 ein Rundfunkdatenübertragungsblockpacket unter Verwendung eines 802.2 Datenübertragungsblockstyps erteilt. Da PRETASK registriert wurde, bei 189, wie in Fig. 11(a) gezeigt, 802.2 mit LSL, bildet LSL das Datenübertragungsblockpacket zu PRETASK aus. PRETASK dekodiert den Protokollkopf des Datenübertragungsblocks unter Verwendung der vorstehenden Tabelle, um das durch diesen Datenübertragungsblock verwendete Protokoll zu bestimmen.
- Zurückkehrend zu Fig. 10 löscht PRETASK in Schritt S1008 den gerade von LSL empfangenen Datenübertragungsblocktyp. Somit hat, wie bei 189a in Fig. 11(b) gezeigt, PRETASK 802.2 gelöscht.
- Während Schritt S1008 die Löschung in allen Fällen zeigt, gibt es einige Fälle, in denen einer bevorzugter ist, nicht zu löschen. Insbesondere wurde jedes verschiedene Protokoll mit einer Liste von erlaubten Datenübertragungsblocktypen verbunden. Beispiele für erlaubte Datenübertragungsblocktypen für IPX/SPX und für TCP/IP sind wie folgt:
- IPX/SPX TCP/IP
- Ethernet_II Ethernet_II
- Ethernet_Snap Ethernet_Snap
- 802.2
- 802.3
- Wie aus der vorstehenden Liste ersichtlich, ist es für zwei der Datenübertragungsblocktypen (Ethernet_II und Ethernet_Snap) möglich, durch verschiedene Protokolle verwendet zu werden. Es sollte auch beachtet werden, daß es erlaubt ist, daß derselbe Datenübertragungsblocktyp durch verschiedene Protokolle auf demselben lokalen Netzwerk verwendet wird. Somit wird in einer bevorzugten Betriebsart die Löschung in Schritt S1008 nicht durchgeführt, wenn der durch PRETASK in Schritt S1006 empfangene Datenübertragungsblocktyp durch ein Protokoll verwendet werden kann, das nicht bereits mit LSL registriert wurde (siehe Schritt S1010 unten). Diese bevorzugte Betriebsart erlaubt eine Erfassung und Funktion aller auf dem lokalen Netzwerk erlaubten Protokolle, da auch später-empfangene Datenübertragungsblocktypen für ein Protokoll, die sich von den bereits registrierten unterscheiden, durch PRETASK richtig erfaßt und verarbeitet werden können, um das verschiedene Protokoll zu laden.
- In Schritt S1009 lädt PRETASK den Protokollstapel, der dem in Scchritt S1007 dekodierten Protokoll entspricht. Im in Fig. 11(b) verwendeten Beispiel lädt PRETASK, da ein IPX/SPX- Protokoll dekodiert wird, den IPX/SPX-Protokollstapel aus dem Flash-EPROM 174. Vor dem Laden wird der Protokollstapel mit dem Datenübertragungsblocktyp, hier 802.2, der gerade vom LSL empfangen wurde, initialisiert.
- In Schritt S1010 registriert der neu geladene Protokollstapel sich selbst mit LSL, wie beispielsweise in Fig. 11(c) gezeigt. Wie dort zu sehen, registriert der IPX/SPX-Protokoll stapel 802.2 mit LSL. Durch Registrierung und wie vorstehend beschrieben informiert IPX/SPX das LSL, alle Datenübertragungsblöcke, die mit dem registrierten Datenübertragungsblocktyp (hier 802.2) zusammenpassen, mit dem neu geladenen Protokollstapel zu versehen.
- PRETASK kehrt dann zu Schritt S1005 zurück, um eine Überwachung des Netzwerks auf Rundfunkverkehr fortzusetzen. Wenn LSL Datenübertragungsblockpakete trifft, die mit den verbleibenden durch PRETASK registrierten Datenübertragungsblocktypen übereinstimmen, führt LSL diese Datenübertragungsblocktypen PRE- TASK zur Verarbeitung entsprechend Fig. 10 zu. Somit werden diese Datenübertragungsblöcke, wenn zusätzliche Datenübertragungsblocktypen angetroffen werden, wie beispielsweise ein einem TCP/IP-Protokoll zugehöriger Datenübertragungsblock, durch PRETASK verarbeitet, um den geeigneten Protokollstapel aus dem Flash-EPROM 174 zu laden.
- Währenddessen beginnt es nun, wie in Fig. 11(d) gezeigt, da ein Protokollstapel geladen wurde, auf dem Netzwerk zu funktionieren. Während PRETASK vollständig passiv war und keine Netzwerkdatenübertragungen sendete, sendet insbesondere IPX/SPX seine zugehörigen SAP-Anforderungen. Andere Protokollaufgaben, die durch PRETASK geladen wurden, würden ihre zugehörigen Anforderungen senden. Wenn beispielsweise ein TCP/IP- Protokollstapel geladen wurde, dann würde der Protokollstapel RARPS senden, um seine Adresse vom nächsten Netzwerkserver zu erhalten.
- Wenn lokale Netzwerke komplexer werden, wird es erforderlich, Netzwerkschnittstellenkarten, wie beispielsweise die Netzwerkkarte 101, mit den gegenwärtigsten verfügbaren Technologien zu aktualisieren. Während die Netzwerkkarte 101 mit der Funkti onssoftware verschifft wird; kann diese Software somit nachfolgend über das lokale Netzwerk 100 neu programmiert werden. Beispielsweise kann der Netzwerkadministrator von dem PC 103 des Netzwerkadministrators aus ferngesteuert das ROM-Firmware- Bild in dem Flash-EPROM 174 durch Herunterladen neuer Daten verändern, die beispielsweise Schaltcodes, Herstellungstestabläufe, gesamte Firmware-Aktualisierungen und verschiedene Sprachversionen enthalten können.
- Ein typischer PC kann mit mehr als einem Netzwerk verbunden sein. Wie beispielsweise in Fig. 12 gezeigt, ist PC 103 mit dem lokalen Netzwerk 100 verbunden, das ein lokales Ethernet- Netzwerk ist, und mit einem lokalen Netzwerk 193, das ein lokales Token-Ring-Netzwerk ist, und kann in der Tat als der PC des Netzwerkadministrators für beide Netzwerke funktionieren. Jedes der lokalen Netzwerke kann wiederum mit zahlreichen Druckeinrichtungen verbunden sein, von denen jede einen individuelle Netzwerkkarte beinhaltet. Andere neu programmierbare Einrichtungen könnten auch mit einem oder beiden der lokalen Netzwerke verbunden sein. Somit gibt es eine Vielzahl von Netzwerkkarten oder anderen Einrichtungen, die der Netzwerkadministrator potentiell neu programmieren kann.
- Zur Neuprogrammierung einer bestimmten Netzwerkkarte aktiviert der Netzwerkadministrator vom PC 102 ein Programm, das die Netzwerkbindung abtastet, um geeignete Flash- bzw. Löschziele aus allen mit dem Netzwerk verbundenen Netzwerkeinrichtungen zu identifizieren. Geeignete Flashziele enthalten alle Netzwerkkarten-ähnlichen Einrichtungen, die Flash- bzw. Lösch- Fähigkeiten aufweisen und Ethernet-Einrichtungen und Token- Ring-Einrichtungen enthalten. Dar Netzwerkadministrator wählt eine der Einrichtungen zur Neuprogrammierung aus und bildet eine Netzwerkdatenübertragung mit dieser Einrichtung. Das Flash-EPROM auf der Karte programmiert sich dann selbst mit dem neuen Bild.
- Da der Netzwerkadministrator zwei oder mehr Netzwerke verwalten kann, von denen jedes damit verbundene zahlreiche neuprogrammierbare Karten besitzt, muß der Administrator sicher sein, daß das richtige Bild zur Ziel-Netzwerkkarte gesendet wird. In dem Fall, in dem der Netzwerkadministrator das Flash- EPROM 174 auf der Netzwerkkarte 101 neu programmieren will (wobei die Netzwerkkarte mit einem lokalen Ethernet-Netzwerk verbunden ist), muß er somit sicher sein, daß das Bild, das er sendet, ein Ethernet-Bild ist, und daß es mit anderen Gesichtspunkten der Netzwerkkarte 101 kompatibel ist.
- Die Ergebnisse eines Herunterladens eines inkompatiblen Bilds können verheerend sein. Wenn beispielsweise der Netzwerkadministrator fehlerhaft ein Token-Ring-Bild zur Netzwerkkarte 101 herunterlädt, und die Netzwerkkarte 101 nachfolgend ihr Flash- EPROM 174 mit diesem Bild neu programmiert, dann wird die Netzwerkkarte 101 nicht länger überhaupt auf dem lokalen Ethernet-Netzwerk 100 kommunizieren können. Dies bedeutet, daß die Netzwerkkarte 101 nicht einmal über das lokale Netzwerk 100 programmiert werden könnte; es ist buchstäblich eine "tote" Karte, so weit es das lokale Ethernet-Netzwerk betrifft. Andere Inkompatibilitäten, wie beispielsweise Inkompatibilitäten in der Verarbeitungsrechner-Schnittstellenkonfiguration (der Art von Schnittstelle zwischen der Netzwerkkarte und der Peripherie, in der es untergebracht ist), der Produktkonfiguration (dem Kartentyp der Netzwerkkarte), der Prozessorkonfiguration (der Art und Geschwindigkeit des Prozessors auf der Karte) und einer Speichereinrichtungskonfiguration (der Größe und Löschbarkeit der zahlreichen Speichereinrichtungen auf der Karte) können ebenso zu Problemen führen. Wo es frühere Erzeugungen eines Produkts gibt, wird somit die Flash- bzw. Löschsoftware, die nur mit neueren Generationen funktioniert, auch eine "tote" Karte ergeben.
- Zur Verhinderung solcher distaströsen Ergebnisse in dem Fall, in dem ein inkompatibles Bild heruntergeladen wird, enthält die Netzwerkkarte 101 einen Software-Code, der sicherstellt, daß das heruntergeladene Bild inkompatibel ist, bevor die aktuelle Neuprogrammierung auftritt. Genauer, das Flash-EPROM 174 in der Netzwerkkarte 101 speichert ein gegenwärtiges Programmbild, das einen Netzwerkinformationsdatei(Netzwerk- Identifizierungsdatei)-Block enthält, der Konfigurationsinformationen für die Netzwerkkarte 101 enthält, und ein Software- Modul zur Neuprogrammierung des Flash-EPROMs 174. Der Mikroprozessor 173 sendet und empfängt Netzwerkdatenübertragungen und der Mikroprozessor 173 lädt, wenn ein neues Programmbild über das Netzwerk empfangen wird, das neue Bild in das DRAM 175 herunter, bestätigt, daß das neue Programmbild mit den Konfigurationsinformationen in dem Netzwerk- Identifizierungsdatei-Block kompatibel ist, und programmiert das Flash-EPROM 174 nur in dem Fall neu, in dem eine Kompatibilität bestätigt wird.
- Genauer, der Netzwerk-Identifizierungsdatei-Block enthält permanente, Adapter-spezifische Konfigurationsinformationen und ist einzigartig für jedes einzelne Netzwerkkarte. In einem bevorzugten Ausführungsbeispiel belegt der Netzwerk-Identifizierungsdatei-Block 32 Bytes von Speichereinrichtungsplatz in dem Flash-EPROM 413 und ist in 4 Anordnungen bzw. Bänke von jeweils 8 Byte aufgeteilt. Wie in Fig. 13 gezeigt, enthält der Netzwerk-Identifizierungsdatei-Block eine MAC-Adresseninformationsbank, eine Kartenversion- und Identifikationsinformationsbank, eine Komponentenidentifikationsbank und eine allgemeine Informationsbank.
- Die MAC-Adresseninformationsbank speichert, wie der Name impliziert, die einzigartige MAC-Adresse der Karte. Die Kartenverifizierungs- und Identifikationsinformationskarte ist in vier kleinere Bänke unterteilt. Da Netzwerkschnittstellenkar ten verschieden von der Netzwerkkarte ebenso mit dem lokalen Netzwerk verbunden sein können, identifiziert die Produktkategoriebank die Art des mit dem lokalen Netzwerk verbundenen Produkts und eine Kartenrevisionsbank identifiziert die Revisionsnummer des Produkts.
- Die physikalische Netzwerkmediumbank ist weiterhin in eine physikalische Netzwerkbank unterteilt, die das physikalische Medium identifiziert, auf dem die Karte verwendet wird (wie beispielsweise Ethernet, Token-Ring oder FDDI), während der unterstützte Verbindungseinrichtungsblock die Arten von physikalischen Verbindungseinrichtungen identifiziert, die die Karte unterstützt (wie beispielsweise 10BasisT, 10Basis2 und 10Basis5 im Fall eines Ethernet-Netzwerks und UTP und STP im Fall eines Token-Ring-Netzwerkes). In der Verarbeitungsrechner-Schnittstellenverfahrenbank wird der Art von Schnittstelle zur Peripherie, die die Karte beinhaltet (wie beispielsweise die Druckeinrichtung 102 im Fall von der Netzwerkkarte 101) identifiziert. Beispiele für derartige Schnittstellenarten enthalten ein gemeinsam genutztes RAM, eine Schnittstelle für Kleincomputer (SCSI), eine parallele Standardschnittstelle, eine serielle RS-232 Schnittstelle und eine parallele Centronics-Schnittstelle.
- Die Komponentenidentifikationsinformationsbank ist auch in zahlreiche kleinere Bänke aufgeteilt. Diese Bänke identifizieren die Größen und körnige Beschaffenheit des ROM, DRAM und NVRAM auf der Karte ebenso wie die Löschbarkeit des ROM. Zusätzlich werden die Netzwerksteuereinrichtung (DP83902 Baustein im Falle des Ethernet und TI380C25 im Fall des Token- Ring) und die Verarbeitungssteuereinrichtung (beliebig gemeinsam genutztes RAM, NCR53C90A SCSI-Steuereinrichtung oder NCR53C80-SCSI-Steuereinrichtung) identifiziert. In der Zentraleinheit(CPU)-Identifikationsbank werden die Art des Prozessors und die Taktgeschwindigkeit gespeichert. Schließlich kann die allgemeine Informationsbank andere Daten speichern, die zusätzliche Konfigurationseigenschaften der Karte, wie beispielsweise ein Hardware-Revisionsniveau, speichern können.
- Gemäß Fig. 14 beginnt eine Neuprogrammierung des Flash-EPROMs 174 der Netzwerkkarte 101, wenn das CPFLASH-Programm auf dem PC des Netzwerkadministrators die Verbindung abtastet (Schritt S1401) und stellt eine Liste von potentiellen Flash-Zielen für den Administrator dar. Der Administrator wählt ein Ziel aus (Schritt S1402) und CPFLASH erzeugt eine Datenübertragung mit dem Ziel und lädt das neue Firmware-Bild über das lokale Netzwerk 100 herunter, wo es in dem DRAM 175 der Netzwerkkarte gespeichert wird (Schritt S1403).
- Wenn einmal das neue Bild in das DRAM 175 heruntergeladen ist, deaktiviert der Netzwerkkarten-Mikroprozessor 173 den Protokollstapel, den er ausführt, da er zumindest teilweise programmiert werden soll, und kann während dieser Zeit nicht in Netzwerkdatenübertragungen eingreifen (Schritt S1404). Der Mikroprozessor 173 kopiert als nächstes den gegenwärtigen Netzwerk-Identifizierungsdatei-Block aus dem Flash-EPROM 174 in das DRAM 175 (Schritt S1405) und beginnt eine Ausführung des Software-Neuprogrammierungs-Moduls.
- Dann führt das Software-Neuprogrammierungs-Modul Bildkompatibilitätsüberprüfungen durch, wobei es sich auf die in dem gegenwärtigen Bild-Netzwerk-Identifizierungsdatei-Block gespeicherten Informationen bezieht (die in das DRAM 175 kopiert wurden) und diese Informationen mit den in dem neuen Firmware- Bild-Netzwerk-Identifizierungsdatei-Block gespeicherten Informationen vergleicht, um sicherzustellen, daß das neue Bild kompatibel ist (Schritt S1406). Da der Netzwerk- Identifizierungsdatei-Block eine große Menge von Informationen über das Netzwerkkarte 101 enthält, ist eine Vielzahl von Überprüfungen möglich, um eine derartige Kompatibilität zu bestimmen.
- Eine erste Kompatibilitüberprüfung enthält eine Netzwerkmedienkonfigurationsüberprüfung, um zu bestimmen, ob das neue Bild den korrekten Netzwerkmedientyp besitzt (z. B. Ethernet oder Token-Ring), indem auf die in der physikalischen Netzwerkbank des Netzwerk-Identifizierungsdatei-Blocks gespeicherten Daten Bezug genommen wird. Ähnlich enthält eine zweite Kompatibilitätsüberprüfung eine Verarbeitungseinrichtungs- Schnittstellenkonfigurationsüberprüfung, um zu bestimmen, ob das neue Bild ein Bild zur Bildung einer Schnittstelle mit dem richtigen Verarbeitungsrechner ist (z. B. gemeinsam genutztes RAM oder SCSI), indem die in dem Verarbeitungsrechner-Schnittstellenverfahren und Verarbeitungsrechner-Schnittstellen- Steuereinrichtungsbänke des Netzwerk-Identifizierungsdatei- Blocks gespeicherten Daten mit dem neuen Bild verglichen werden.
- Eine dritte Kompatibilitätsüberprüfung enthält eine Produktkonfigurationsüberprüfung, die durch Bezugnahme auf die Produktkategorie und der Kartenrevisionsbänke des Netzwerk-Identifizierungsdatei-Blocks und Vergleichen dieser Daten mit den neuen Bild durchgeführt wird, um zu bestimmen, ob das neue Bild für die Art von Karte ist, auf der das EPROM beherbergt ist. Auch kann eine Prozessorkonfigurationsüberprüfung durchgeführt werden, indem auf die CPU-Bank des Netzwerk-Identifizierungsdatei-Blocks Bezug genommen wird, um zu bestimmen, ob das neue Bild mit den Mikroprozessor auf der Karte kompatibel ist. Zusätzlich kann eine Speichereinrichtungskonfigurationsüberprüfung durchgeführt werden, indem die in den ROM, DRAM und/oder NVRAM-Bänken der Netzwerk-Identifizierungsdatei- Blöcke gespeicherten Daten mit dem neuen Bild verglichen werden, um zu bestimmen, ob das neue Bild mit der Speichereinrichtung der Karte kompatibel ist. Andere Kompatibilitätsüber prüfungen unter Verwendung anderer auf dem Netzwerk-Identifizierungsdatei-Block gespeicherter Informationen sind auch möglich.
- Wenn bestimmt wird, das das neue Bild inkompatibel ist, wird das gegenwärtige Protokoll reaktiviert (Schritte 51407-51408) und ein Fehler wird an den PC 103 des Netzwerkadministrators über das lokale Netzwerk 100 berichtet, wobei Mitteilung gemacht wird, daß ein Versuch gemacht wurde, die Netzwerkkarte 101 mit einem inkompatiblen Bild neu zu programmieren (Schritt 51409).
- Wenn das neue Bild kompatibel ist, werden dann andererseits Karten-unveränderliche Teile des Netzwerk-Identifizierungsdatei-Blocks des neuen Bilds durch die entsprechenden Teile des Netzwerk-Identifizierungsdatei-Blocks des gegenwärtigen Bilds ersetzt, um irgendwelche Karten-spezifischen Informationen zu erhalten (wie beispielsweise die MAC-Adresse und die Kartenrevisionsnummer), die darin enthalten sind (Schritte S1407-S1410). Das Programm löscht dann das gegenwärtige Bild aus dem Flash-EPROM 174 und programmiert das Flash-EPROM 174 mit dem in dem DRAM 175 gespeicherten Bild neu, das nun den Original-Netzwerk-Identifizierungsdatei-Block enthält.
- Durch diese Anordnung wird der Mikroprozessor 173 niemals das Flash-EPROM 174 mit einem inkompatiblen Bild neu programmieren, auch in dem Fall, in dem ein inkompatibles Bild fehlerhaft über das lokale Netzwerk 100 heruntergeladen wurde. In dem Fall, in dem ein Netzwerkadministrator versucht, das Netzwerkkarte 101 mit einem inkompatiblen Bild neu zu programmieren, wird die Netzwerkkarte 101 eine Mitteilung zurück zum Netzwerkadministrator senden, die ihn über die Inkompatibilität informiert. Demgemäß ist eine fehlersichere Maßnahme gegen derartige menschliche Fehler auf eine kostengünstige, effiziente Weise ausgebildet.
- Die Fig. 15 bis 17 sind Ansichten zur Erklärung einer Entscheidung des gemeinsam genutzten SRAM 100 ansprechend auf Zugriffsanforderungen von der Druckeinrichtungs-Schnittstellenkarte 150 oder von dem Netzwerkkarten-Mikroprozessor 173 auf der Karte.
- Fig. 15 zeigt einen Druckeinrichtungsadressen/Datenbus (A/D- Bus) 701, ein Druckadressen-Zwischenspeichereinrichtungs- Aktivierungs(ALE)-Signal 702, ein Druckeinrichtungsdaten- Aktivierungs(DEN)-Signal 704, eine Druckeinrichtungstaktleitung 705 und ein Druckeinrichtungs-Bereitschaftssignal 706. Diese Signale werden alle über eine Druckeinrichtungsschnittstellenverbindungseinrichtung 170 von der Druckeinrichtungsschnittstellenkarte 150 empfangen. Insbesondere ist beispielsweise der A/D-Bus 701 der A/D-Bus für den auf der Druckeinrichtungsschnittstellenkarte 150 montierten Druckeinrichtungsmikroprozessor 151. Das Druckeinrichtungs-ALE-Signal 702 ist ein Signal, das anzeigt, wenn gültige Adressinformationen auf dem A/D-Bus 701 übertragen werden, und ein Druckeinrichtungs- DEN-Signal 704 ist ein Signal, das anzeigt, wenn gültige Dateninformationen auf dem A/D-Bus 701 übertragen werden. Der Druckeinrichtungstakt 705 ist das Haupttaktsignal für den Druckeinrichtungsprozessor 151 und ein Druckeinrichtungs- Bereitschaftssignal 706 ist ein Signal, das, wenn es falsch ist, dem Mikroprozessor 151 anzeigt, daß ein Speichereinrichtungszugriff nicht vollständig ist und der Mikroprozessor 151 Wartezustände einfügen sollte, bis der Speichereinrichtungszugriff vollständig ist.
- Es ist in Fig. 15 auch ein Netzwerkkarten-Adressen/Datenbus (A/D-Bus) 711, ein Netzwerkkarten-ALE 712, Lese- und Schreibesignale (WR und RD) 714, ein Netzwerkkarten-Takt 715 und ein Netzwerkkarten-Bereitschaftssignal 716 gezeigt. Der Netzwerkkarten-Bus 711 ist der Hauptadressenbus für den Mikroprozessor 173 und überträgt Adressen- und Dateninformationen für alle auf dem Netzwerkkarte 101 montierten Komponenten. Das Netzwerkkarten-ALE-Signal 712 ist ein Signal, das anzeigt, wenn die gültigen Adresseninformationen auf dem A/D-Bus 711 verfügbar sind, Lese- und Schreibsignale 7I4 sind Signale, die anzeigen, wenn gültige Dateiinformationen auf dem A/D-Bus 711 verfügbar sind, und zusätzlich, ob diese Daten zu lesen oder zu schreiben sind, der Netzwerkkarten-Takt 715 ist ein durch einen Kristalloszillator 172 zugeführtes Netzwerkkarten- Taktsignal und das Netzwerkkarten-Bereitschaftssignal 716 ist ein Signal, das, wenn es falsch ist, dem Mikroprozessor 173 anzeigt, daß ein Speichereinrichtungszugriff noch nicht verfügbar ist und der Mikroprozessor 173 Wartezustände einfügen sollte, bis der Speichereinrichtungszugriff verfügbar ist.
- Der Druckeinrichtungsmikroprozessor 151 und der Netzwerkkarten-Mikroprozessor 173 stehen, wie vorstehend erwähnt, über das gemeinsam genutzte SRAM 200 in Verbindung. Zugriffanforderungen für das gemeinsam genutzte SRAM 200 werden durch den Mikroprozessor 151 und den Mikroprozessor 173 auf A/D-Bussen 701 bzw. 711 erteilt und werden durch die Schiedseinrichtungs- Steuerlogik 400 wie vorstehend beschrieben entschieden. Genauer und wie vorstehend unter Bezugnahme auf Fig. 6 beschrieben, enthält die Schiedseinrichtungs-Steuerlogik 400 eine Bussteuerlogik 410 zur Steuerung der Buszugriffe auf dem Netzwerkkarten-A/D-Bus 711, eine Bussteuerlogik 420 zur Steuerung des Busverkehrs auf dem Druckeinrichtungs-A/D-Bus 701, einen gemeinsam genutzten Speichereinrichtungs-Schiedseinrichtung 430 zur Entscheidung zwischen Zugriffsanforderungen auf den A/D-Bus 701 und den A/D-Bus 711, eine SRAM-Schnittstelle 440 zur Schnittstellenbildung des Druckeinrichtungs-A/D-Busses 701 bzw. des Netzwerkkarten-A/D-Busses 711, zu Schnittstellen- und Datenbussen für das SRAM 200. Jeder dieser Abschnitte ist nachstehend genauer beschrieben.
- Die Bussteuerlogik 410 enthält eine Zwischenspeichereinrichtung 717, die Adreßinformationen auf dem Netzwerkkarten-A/D- Bus 711 ansprechend auf das Netzwerkkarten-ALE-Signal 712 zwischenspeichert, um zwischengespeicherte Adresseninformationen 719 auszubilden. Eine Dekodiereinrichtung 720 dekodiert zwischengespeicherte Adreßinformationen, wenn ein Lese- oder Schreibsignal 714 aktiv ist, um ein Netzwerkkarten-Anforderungssignal (NREQ-Signal) 721 in dem Fall auszubilden, daß Adreßinformationen auf dem Netzwerkkarten-A/D-Bus 711 einem Adressenraum des gemeinsam genutzten SRAM 200 entsprechen.
- Ebenso enthält die Bussteuerlogik 420 eine Zwischenspeichereinrichtung 722, die Adreßinformationen auf dem Druckeinrichtungs-A/D-Bus 701 zwischenspeichert, wenn das Druckeinrichtungs-ALE-Signal 702 hoch ist, um zwischengespeicherte Adreßinformationen 724 auszubilden. Eine Dekodiereinrichtung 725 spricht auf zwischengespeicherte Adreßinformationen an und gibt ein Druckeinrichtungsanforderungssignal (PREQ) 726, wenn das Druckeinrichtungs-DEN-Signal 704 aktiv ist, in dem Fall aus, daß die zwischengespeicherten Informationen dem Adreßraum des gemeinsam genutzten SRAM 200 entsprechen.
- Die gemeinsam genutzte Speichereinrichtungs-Schiedseinrichtung 430 enthält eine Synchronisationsschaltung zur Synchronisierung der PREQ- und NREQ-Zugriffsanforderungssignale mit einem gemeinsamen Takt, hier dem Netzwerkkarten-Takt 715, eine Verzögerungsschaltung, die eine Bruchtaktverzögerung in eines der Anforderungssignale einfügt, eine Abfangschaltung, die einen Zugriff auf ein erst-empfangenes Anforderungssignal garantiert und einen Zugriff auf später-empfangene Zugriffsanforderungen abhält, und eine Neusynchronisationsschaltung. Insbesondere werden sowohl NREQ 721 und PREQ 726 zu Synchronisationsschal tungen zugeführt, die beide mit dem Netzwerkkarten-Takt 715 synchronisiert sind, um beide Zugriffsanforderungen mit einem gemeinsamen Takt zu synchronisieren. In dem bestimmten hier veranschaulichten Beispiel, PREQ, das schon an sich mit seinem eigenen Druckeinrichtungstaktsignal 705 synchronisiert ist, wird mit dem Netzwerkkarten-Taktsignal 715 synchronisiert. Die Verzögerung 729 wird in eines der Zugriffsanforderungssignale eingefügt, hier in das Zugriffsanforderungssignal von der Druckeinrichtung, um Verschiebungsanforderungssignale zu erzeugen. Die Verzögerungsschaltung fügt eine Bruchtaktverzögerung ein, wie beispielsweise eine hälftige Taktverzögerung, um sicherzustellen, daß, auch wenn zu genau demselben Zeitpunkt beide Zugriffsanforderungen erteilt werden, eine Zugriffsanforderung die Abfangschaltung 730 vor der anderen erreichen wird.
- Die Abfangschaltung 730 gibt erste und zweite Zugriffserteilungssignale PACK und NACK ansprechend auf die ersten und zweiten Anforderungssignale aus. Genau eines der ersten und zweiten Zugrifserteilungssignale wird ansprechend darauf aktiviert, welches der ersten und zweiten Verschiebungsanforderungssignale zuerst empfangen wird. Das andere (oder späterempfangene) Verschiebungsanforderungssignal wird abfangen, bis die Verarbeitung des erst-empfangenen Zugriffsanforderungssignals beendet ist. Um dem Abfang-Mikroprozessor anzuzeigen, daß der Zugriff verweigert wird, wird ein Nicht-Bereit-Signal erteilt. In einem Fall, in dem eine Netzwerkkarten-Zugriffs- Anforderung nach einer Druckeinrichtungszugriffsanforderung empfangen wird, erteilt die Abfangschaltung 730 beispielsweise Zugriff an die Druckeinrichtung und fängt einen Zugriff durch die Netzwerkkarte ab. In diesem Fall wird ein Netzwerkkarten- Bereit-Signal 716 aufgehoben, das dem Mikroprozessor 173 anzeigt, Wartezustände einzufügen, bis Zugriff erteilt wird. Wenn umgekehrt eine Netzwerkkarten-Zugriffsanforderung vor einer Druckeinrichtungszugriffsanforderung empfangen wird, er teilt die Abfangschaltung 730 Zugriff an die Netzwerkkarte und fängt einen Zugriff zur Druckeinrichtung ab. In diesem Fall verzögert die Abfangschaltung 730 das Druckeinrichtungs- Bereitsignal 706, um einem Mikroprozessor 151 einzufügen, Wartezustände anzuzeigen, bis ein Zugriff erteilt wird.
- Das PACK-Zugriffserteilungssignal für die Druckeinrichtung wird dann der Neusynchronisationsschaltung 731 zugeführt, in der das desynchronisierte Signale mit seinem eigenen Takt neu synchronisiert wird. Das neu synchronisierte Signal wird als FPACK bestimmt. Die neu synchronisierten Zugriffserteilungssignale FPACK und NACK werden dann zur SRAM-Schnittstelle 440 zugeführt, die eine geeignete Schnittstelle zwischen dem Mikroprozessor, dem Zugriff erteilt wurde, und dem gemeinsam genutzten SRAM 200 ausbildet.
- Die gemeinsam genutzte Speichereinrichtungs-Schiedseinrichtung 430 ist bevorzugterweise aus D-Flip-Flops und einer logischen Standardschaltung hergestellt. Ein bevorzugter Aufbau ist in Fig. 16 gezeigt. Wie dort zu sehen, wird ein Zugriffsanforderungssignal 726 von der Druckeinrichtung einem Synchronisierungs-D-Flip-Flop 728a, das durch das Netzwerkkarten-Taktsignal 715 getaktet wird, und nachfolgend einem zweiten D- Flip-Flop 728b zugeführt. Zur selben Zeit wird ein Zugriffsanforderungssignal 721 von der Netzwerkkarte dem Eingang eines D-Flip-Flops 727a und nachfolgend einem zweiten D-Flip-Flop 727b zugeführt. Diese zwei Flip-Flops 727a und 727b sind ausgebildet, um eine geeignete Synchronisierung und Verzögerung des Zugriffanforderungssignals 721 sicherzustellen. Ein auf eine ansteigende Flanke getriggertes D-Flip-Flop 729 ist ausgebildet, um eine 1 ¹/&sub2; taktige Verzögerung in das Zugriffsanforderungssignal 726 von der Druckeinrichtung einzufügen. Eine Ausgabe des Flip-Flops 729 wird durch ein Rücksetzsignal 732 niedrig gehalten, das in dem Fall ausgebildet wird, daß ein Zugriffserteilungssignal bereits durch die Netzwerkkarte aus gebildet wurde (d. h. das NACK-Signal ist hoch). Wenn andererseits kein Zugriff durch die Netzwerkkarte erteilt wurde, dann werden irgendwelche Zugriffsanforderungssignale von der Druckeinrichtung durchgetaktet, um das PACK-Signal zu bilden. Das PACK-Signal wird zu einem Neu-Synchronisations-Flip-Flop 731 gesendet, das durch den Druckeinrichtungstakt 705 getaktet wird. Zur selben Zeit wird das PACK-Signal zum NICHT-UND- bzw. NAND-Gatter 734 zugeführt, das in Verbindung mit dem getakteten Netzwerkkarten-Zugriffsanforderungssignal funktioniert. Wenn Zugriff zur Druckeinrichtung erteilt wurde, dann stellt das NAND-Gatter 734 sicher, daß kein Zugriff auf die Netzwerkkarte erteilt wird, auch wenn er angefordert ist, bis PACK auf niedrig geht.
- Obwohl die Abhalteschaltung 730 erste und zweite Erteilungssignale ausgibt, wird mittels der in Fig. 16 gezeigten Anordnung nur genau eines dieser ersten und zweiten Erteilungssignale auf einmal aktiviert. Das heißt, wenn Zugriff zur Druckeinrichtung erteilt wird, dann wird der Zugriff zur Netzwerkkarte abgehalten; wenn umgekehrt Zugriff zur Netzwerkkarte erteilt wird, wird Zugriff zur Druckeinrichtung abgehalten.
- Zurückkehrend zu Fig. 15 empfängt die SRAM-Schnittstelle 440 das neu synchronisierte Druckeinrichtungszugriffserteilungssignal FPACK ebenso wie das Netzwerkkarten-Zugriffserteilungssignal NACK und koordiniert basierend darauf, welches dieser Signale aktiv ist, einen Zugriff zwischen entweder dem Druckeinrichtungsmikroprozessor 151 oder dem Netzwerkkarten-Mikroprozessor 173 auf das gemeinsam genutzte SRAM 200.
- Insbesondere, wie in Fig. 15 gezeigt, wird das Netzwerkkarten-Zugriffserteilungssignal NACK zum Multiplexer 735 zugeführt, der entweder zwischengespeicherte Netzwerkkarten-Adreßinformationen 719 oder zwischengespeicherte Druckeinrichtungsadreßinformationen 724 entsprechend dem NACK-Signal auswählt und die ausgebildeten Adreßinformationen auf dem internen Adreßbus 736 ausbildet. In dem Fall, daß NACK-aktiv ist, gibt dann der Multiplexer 735 alle dreizehn (13) Bits der zwischengespeicherten Netzwerkkarte-Adreßinformationen 719 auf den internen Adreßbus 736 aus. Wenn andererseits NACK nicht aktiv ist (d. h. die Druckeinrichtung hat Zugriff), dann gibt der Multiplexer 735 zwölf der dreizehn Bits von zwischengespeicherten Druckeinrichtungsadreßinformationen 724 auf den internen Adreßbus 736 aus. Das dreizehnte Bit, hier AO, wird durch den Generator 747 auf eine nachstehend beschriebene Weise erzeugt.
- Die Zwischenspeichereinrichtung 737 speichert Adreßinformationen von dem internen Adreßbus 736 auf dem SRAM-Adreßbus 740. Die Zwischenspeichereinrichtung 737 wird durch das Ausgangssignal des ODER- bzw. OR-Gatters 739 aktiviert. Das OR-Gatter 739 akzeptiert das Netzwerkkarten-Zugriffserteilungssignal NACK als eines seiner Eingangssignale; demgemäß speichert die Zwischenspeichereinrichtung 737, sobald NACK auf einen hohen Wert geht, die Adreßinformationen aus dem internen Adreßbus 736 auf dem SRAM-Adreßbus 740 zwischen.
- Entsprechend dem, ob ein Lesen oder ein Schreiben angefordert wird, d. h. entsprechend dem Zustand des Lese- oder Schreibsignals 714 empfängt das SRAM 200 entweder oder gibt Dateninformationen auf seinem Datenbus 741 aus. Diese Dateninformationen werden über eine bidirektionale Zwischenspeichereinrichtung 742 auf den internen Datenbus 744 übertragen. Die bidirektionale Zwischenspeichereinrichtung 742 wird durch das Ausgangssignal von dem OR-Gatter 745 aktiviert, das das Netzwerkkarten-Zugriffserteilungssignal MACK als eines seiner Eingangssignale akzeptiert. Wenn demgemäß NACK auf einen hohen Wert geht, geht das Ausgangssignal des OR-Gatters 745 auf einen hohen Wert, was wiederum eine Übertragung von Dateninformationen von dem SRAM-Datenbus 741 zum internen Datenbus 744 erlaubt.
- Dateninformationen auf dem internen Datenbus 744 werden durch eine bidirektionale Zwischenspeichereinrichtung 746 zum Netzwerkkarten-A/D-Bus 711 übertragen, der durch das Netzwerkkarten-Zugriffserteilungssignal NACK aktiviert wird. Da das Netzwerkkarten-Zugriffserteilungssignal NACK sich selbst schlußendlich von der Dekodiereinrichtung 720 ableitet, die durch das Lese- oder Schreibsignal 714 getriggert wird, ist der Zeitablauf von Dateninformationen auf dem Netzwerkkarten-A/D- Bus 711 soweit geeignet, als der Bus 711 nicht länger gültige Adreßdaten erwartet, um auf ihm zu erscheinen, sondern nun eher gültige Dateninformationen erwartet, daß sie darauf erscheinen.
- Wenn somit zusammenfassend der Netzwerkkarten-Zugriff auf das gemeinsam genutzte SRAM 200 erteilt wird, werden zwischengespeicherte Adreßinformationen von der Zwischenspeichereinrichtung 717 über den Multiplexer 735 und die Zwischenspeichereinrichtung 737 auf dem SRAM-Adreßbus 740 zwischengespeichert und Dateninformationen werden zu (oder von) dem Netzwerkkarten- A/D-Bus 711 von (oder zu) dem SRAM-Datenbus 741 über bidirektionale Zwischenspeichereinrichtungen 742 und 746 zwischenspeichert. Wenn Zugriffsvorgänge für die Netzwerkkarte vollständig sind, werden irgendwelche abgehaltenen Zugriffsanforderungen von der Druckeinrichtung verarbeitet.
- In dem Fall, daß dem Druckeinrichtungsmikroprozessor 151 Zugriff auf das gemeinsam genutzte SRAM 200 erteilt wurde, dann sind, wenn auch der Druckeinrichtungsmikroprozessor 151 dieselbe 13-Bit breite Adresse benutzt, die der Netzwerkkarten- Mikroprozessor 173 verwendet, da der Mikroprozessor 151 einen Datenbusbreite besitzt, die verschieden von der des SRAM 200 ist, Ober- und Unter-Byte Zwischenspeichereinrichtungen erforderlich, um diese Bitbreitenunterschiede aufzulösen. Insbesondere ist, wie vorstehend beschrieben, der Druckeinrichtungsmikroprozessor 151 ein 32-Bit Intel 80960KB RISC-Mikroprozessor, der durch die Konvention mit externen Einrichtungen über einen 16-Bit breiten gemeinsam genutzten RAM-Datenzugriff in Verbindung steht. Eine Auflösung von 16-Bit Zugriffen auf das interne 32-Bit Format des Druckeinrichtungsmikroprozessors 151 wird dem Druckeinrichtungsmikroprozessor überlassen. Jedoch wird eine Auflösung von 16-Bit Datenzugriffen vom Mikroprozessor 151 auf ein 8-Bit breites gemeinsam genutztes SRAM 200 der SRAM-Schnittstelle 440 und den vorstehend erwähnten Ober- und Unter-Byte-Zwischenspeichereinrichtungen überlassen. Diese Struktur wird nachstehend genauer beschrieben.
- Insbesondere für in der Zwischenspeichereinrichtung 722 zwischengespeicherte Adreßinformationen überträgt der Multiplexer 735 zwölf von den dreizehn Bits auf den internen Adreßbus 736. Das dreizehnte Bit, hier AO wird vom Generator 747 erzeugt. Der Generator 747 wird durch ein niedrigeres Strobeausgangssignal 750 und ein höheres Freigabe- bzw. Übernahmeausgangssignal 752, beide vom Freigabe- bzw. Übernahmegenerator 751 aktiviert. Der Freigabe- bzw. Übernahmegenerator 751 ist derart angeordnet, daß er zwei aufeinanderfolgende Signale, die niedrigere Übernahme 750 und die höhere Übernahme 752, ansprechend auf einen Empfang eines FPACK-Zugriffserteilungssignals von der gemeinsam genutzten Speichereinrichtungs-Schiedseinrichtung 430 ausbildet. Das niedrigere Übernahmesignal 750 wird dem Generator 747 zugeführt, der wiederum ein binäres Nullbit für das dreizehnte Adreßbit zum Multiplexer 735 zuführt. Der Multiplexer 735 wählt diese dreizehn Adreßbits auf dem internen Adreßbus 736 aus. Die Adreßinformationen auf dem internen Adreßbus 736 sind, wie vorstehend erwähnt, über die Zwischenspeichereinrichtung 737 auf dem SRAM-Adreßbus 740 zwischengespeichert. Die Zwischenspeichereinrichtung 737 wird durch das Ausgangssignal des OR-Gatters 739 aktiviert, das als seine Eingangssignale die höhere Übernahme 752 und die niedrigere Übernahme 750 enthält. Somit gibt ansprechend auf jedes aufeinanderfolgende höhere und niedrigere Übernahmesignal 750 und 752 das OR-Gatter 739 ein Signal an die Zwischenspeichereinrichtung 737 aus, das eine Übertragung von Adreßinformationen auf dem internen Adreßbus zum SRAM-Adreßbus 740 verursacht. Das höhere Adreßstrobe 752 wird auch zum Generator 747 zugeführt, der ein binäres Bit für das dreizehnte Adreßbit zum Multiplexer 735 erzeugt. Der Multiplexer 735 wählt diese dreizehn Bits auf dem internen Adreßbus 736 aus. Diese modifizierten Adreßinformationen werden in Folge mit dem Empfang der höheren Übernahme 752 durch das OR-Gatter 739 zum Adreßbus 740 des SRAM 200 übertragen.
- Eine Handhabung von Dateninformationen hängt davon ab, ob ein Lesen oder Schreiben durch den Druckeinrichtungsmikroprozessor 151 angefordert wird. Im Fall eines Schreibens führt der Übernahmegenerator 751 ein niedriges Übernahmesignal 750 zur Zwischenspeichereinrichtung 754 zu, die das niedrigere Byte von Dateninformationen auf dem Druckeinrichtungs-A/D-Bus 701 zum internen Datenbus 744 zwischenspeichert. Diese Dateninformationen werden zum SRAM-Datenbus 741 über die bidirektionale Zwischenspeichereinrichtung 742 zwischengespeichert, die durch das Ausgangssignal des OR-Gatter 745 aktiviert wird, das wiederum das Druckeinrichtungs-Zugriffserteilungssignal FPACK als eines seiner Eingangssignale akzeptiert. Somit wird das niedrigere Byte von Dateninformationen auf dem Druckeinrichtungs- A/D-Bus 701 über die Zwischenspeichereinrichtung 754 auf den internen Datenbus 744 und somit zum SRAM-Datenbus 741 übertragen.
- Das obere Byte von Dateninformationen auf dem Druckeinrichtungs-A/D-Bus 701 wird durch die Zwischenspeichereinrichtung 755 zwischengespeichert, die durch das obere Übernahmesignal 752 von dem Übernahmegenerator 751 aktiviert wird. Wie vorher wird dieses obere Byte von Dateninformationen auf den internen Datenbus 744 und daher auf den SRAM Datenbus 741 über die bidirektionale Zwischenspeichereinrichtung 742 übertragen.
- Wenn der Druckeinrichtungsmikroprozessor 151 ein Lesen von SRAM-Daten anfordert, werden das untere Übernahmesignal 750 und das obere Übernahmesignal durch jeweilige Verzögerungen 756 und 757 verzögert und die verzögerten Übernahmen steuern jeweilige Zwischenspeichereinrichtungen 758 und 759. Diese Zwischenspeichereinrichtungen speichern jeweilige vom Datenbus 741 des SRAM 200 ausgebildete untere und obere Bytes, fügen die oberen und unteren Bytes auf dem Druckeinrichtungs-A/D-Bus 701 zusammen und führen die zusammengefügten Dateninformationen dem Druckeinrichtungs-Mikroprozessor 151 zu.
- Wenn somit dem Druckeinrichtungs-Mikroprozessor 151 Zugriff auf das gemeinsam genutzte SRAM 200 erteilt wird, werden somit zusammenfassend in der Zwischenspeichereinrichtung 722 zwischengespeicherte Adreßinformationen zum Adreßbus des SRAM 200 zugeführt und in das SRAM 200 geschriebene (oder daraus gelesene) Dateninformationen werden durch untere und obere Zwischenspeichereinrichtungen 754 und 755 in Dateninformationen für den SRAM-Datenbus 741 (oder zusammengefügte Dateninformationen vom Datenbus 741 durch Zwischenspeichereinrichtungen 758 und 759) aufgelöst. Wenn der Zugriff durch den Druckeinrichtungs-Mikroprozessor 151 vollständig ist, werden dann irgendwelche abgehaltene Zugriffsanforderungen von der Netzwerkkarte verarbeitet.
- Das OR-Gatter 760 gibt ein Bausteinauswahlsignal 761 an das gemeinsam genutzte SRAM 200 aus. Eingangssignale des OR-Gatter 760 sind die untere Adreßübernahme 750, die obere Adreßübernahme 752 und das Netzwerkkarten-Zugriffserteilungssignal NACK. Somit wird ansprechend auf irgendeines dieser Signale das Bausteinauswahlsignal 761 erteilt.
- Fig. 17 ist ein Zeitablaufdiagramm, das den Zeitablauf von durch die Schiedseinrichtungs-Steuerlogik 400 ausgebildeten Signalen zeigt. Insbesondere wird auf der Druckeinrichtungsseite und wie vorstehend diskutiert die Schiedseinrichtungs- Steuerlogik 400 mit dem Druckeinrichtungstakt 705, dem Druckeinrichtungs-ALE-Signal 702, dem Druckeinrichtungs-A/D-Bus 701, dem Druckeinrichtungs-DEN-Signal 704 und dem Druckeinrichtungsbereitsignal 706 versorgt. Ansprechend auf Adreßinformationen auf dem Druckeinrichtungs-A/D-Bus 701, der einem Adreßraum in dem gemeinsam genutzten SRAM 200 entspricht, die gültig sind und zwischengespeichert werden, wenn das Druckeinrichtungs-ALE-Signal 702 auf einen hohen Wert geht, und das danach ein Druckeinrichtungsanforderungssignal 726 erzeugt (Fig. 15), wenn das Druckeinrichtungs-DEN-Signal 704 auf einen niedrigen Wert geht, erzeugt die Abhalteschaltung 730 in der Schiedseinrichtungs-Steuerlogik 400 ein Druckeinrichtungs- Bereitsignal 706, um den Druckeinrichtungs-Mikroprozessor 151 zu veranlassen, Wartezustände zu erzeugen, bis ein Zugriff auf das SRAM 200 erteilt wurde und gültige Daten auf dem Druckeinrichtungs-A/D-Bus 701 erscheinen, wie angezeigt, wenn das Druckeinrichtungs-DEN-Signal 704 auf einen hohen Wert geht.
- Auf der Netzwerkkarten-Seite wird ansprechend auf Adreßinformationen auf dem Netzwerkkarten-A/D-Bus 711, die einem Adreßraum im SRAM 200 entsprechen, die gültig sind und zwischengespeichert werden, wenn das Netzwerkkarten-ALE-Signal 712 auf einen niedrigen Wert geht, und die danach ein Netzwerkkarten- Anforderungssignal 721 erzeugen, wenn das (nicht gezeigte) Netzwerkkarten-Schreibsignal 714 auf einen niedrigen Wert geht, ein Netzwerkkarten-Bereitsignal 716 erzeugt, bis ein Zugriff auf das SRAM 200 erteilt wird und gültige Daten auf dem Netzwerkkarten-A/D-Bus 711 erscheinen.
- Wie vorstehend diskutiert ist die Schiedseinrichtungs-Steuerlogik 400 dahingehend integriert in den Entwurf der Netzwerkkarte 101, daß sie nur einem der Prozessoren erlaubt, zu einem gegebenen Zeitpunkt auf das gemeinsam genutzte SRAM 200 zuzugreifen. Dies verhindert einen gleichzeitigen Zugriff auf dieselbe Speichereinrichtungszelle, wodurch eine Datenkorruption verhindert wird. Jedoch wird die Entscheidung notwendigerweise auf dem gesamten Speichereinrichtungsfeld durchgeführt und nicht auf einzelnen Speichereinrichtungszellen. Somit muß ein Prozessor warten, während der andere auf die Speichereinrichtung zugreift, auch wenn die zwei Adressen, auf die Bezug genommen wird, sich im Hinblick aufeinander unterscheiden. Dies kannN zu sehr niedrigeren Speichereinrichtungszugriffszeiten führen, insbesondere in dem Fall, in dem Drtfckdaten von dem Netzwerk durch den Netzwerkkarten-Mikroprozessor 173 über das gemeinsam genutzte SRAM 200 zum Druckeinrichtungs-Schnittstellen-Mikroprozessor 151 übertragen werden.
- Fig. 18 zeigt, wie eine verfügbare Speichereinrichtung in dem SRAM 200 in logischen Raum aufgeteilt wird. Alle von der Netzwerkkarte 101 zur Druckeinrichtung 102 übertragenen Daten einschließlich Druckjobdaten, Befehlen und Zustandsanforderungen werden durch den Netzwerkkarten-Mikroprozessor 173 in den Druckeinrichtungsdatenbereich 201 geschrieben, aus dem die Daten durch den Druckeinrichtungs-Mikroprozessor 151 gelesen werden. Umgekehrt werden alle von den Druckeinrichtung 102 zur Netzwerkkarte 101 übertragenen Daten durch den Druckeinrichtungs-Schnittstellen-Mikroprozessor 151 in den Mitteilungsdatenbereich 202 geschrieben, aus dem die Daten durch den Netzwerkkarten-Mikroprozessor 173 gelesen werden.
- Wie in Fig. 18 gezeigt, ist der Druckeinrichtungsdatenbereich 201 als eine Ringzwischenspeichereinrichtung gebildet, in der ein lineares Speichereinrichtungsfeld ringförmig adressiert wird, so daß eine Adressierung am Beginn automatisch neu be ginnt, wenn das Ende erreicht ist. Eine derartige Speichereinrichtungsstruktur erfordert zwei Zeigeeinrichtungen: eine "Ablege"-Zeigeeinrichtung, die die nächste Adresse markiert, an die Daten zu schreiben sind, und eine "Hol"-Zeigeeinrichtung, die die nächste Adresse markiert, aus der Daten zu lesen sind. Die Werte dieser Zeigeeinrichtungen sind in dem SRAM 200 selbst in dem Zustandsmitteilungsbereich 203 gespeichert. Der Sendeprozessor steuert den Wert der Ablege-Zeigeeinrichtung, wobei er ihn fortsetzt, wenn er neue Daten in die Ringzwischenspeichereinrichtung schreibt, während der Empfangsprozessor den Wert der Hol-Zeigeeinrichtung steuert, wobei er ihn fortsetzt, wenn er Daten herauskopiert.
- Daten werden in die Ringzwischenspeichereinrichtung in Blöcken von 256 Bytes geschrieben, wobei die Ablege- und Hol-Zeigeeinrichtungen markieren, wo die nächsten Blöcke beginnen. Beispielsweise zeigt in Fig. 18 die Ablege-Zeigeeinrichtung auf einen Block 2011, was anzeigt, daß der Block der nächste verfügbare Raum in der Speichereinrichtung ist, in den der Netzwerkkarten-Mikroprozessor 173 schreiben soll, während die Hol- Zeigeeinrichtung auf einen Block 2012 zeigt, was anzeigt, daß der Block der nächste Raum in der Speichereinrichtung ist, aus dem der Druckeinrichtungs-Schnittstellen-Mikroprozessor 151 lesen soll. Vor dem Schreiben eines Blocks von Daten in die Speichereinrichtung liest der Netzwerkkarten-Mikroprozessor 173 die Werte der Ablege- und Hol-Zeigeeinrichtungen aus dem Zustandsmitteilungsbereich 203 und vergleicht sie, um zu bestimmen, ob es verfügbaren Raum in dem Ring gibt. Ähnlich liest der Druckeinrichtungs-Schnittstellen-Mikroprozessor 151 die Werte der Ablege- und Hol-Zeigeeinrichtungen aus dem Zustandsmitteilungsbereich 203 und vergleicht sie, um zu bestimmen, ob es zu lesende Daten gibt.
- Somit folgt bei einer Übertragung von Daten von einem Prozessor zum anderen unter Verwendung einer Ringzwischenspeicher einrichtung der empfangende Prozessor dem sendenden Prozessor "rund um den Ring", wobei die Daten, die geschrieben wurden, ausgelesen werden. Da der empfangende Prozessor durch die Geschwindigkeit der Druckeinrichtung, die er ansteuert, beschränkt ist, schreibt der sendende Prozessor im allgemeinen Daten schneller hinein als der empfangende Prozessor sie auslesen kann, und es ist wahrscheinlich, daß in einem herkömmlichen System die Ablege-Zeigeeinrichtung um den Ring eine Schleife bilden wird und die Hol-Zeigeeinrichtung, die hinter ihr ist, "einfangen" wird. In einem derartigen Fall wartet der sendende Prozessor einfach, bis Speichereinrichtungsraum in dem Ring verfügbar wird. Während dieser Wartezeit liest und vergleicht in herkömmlichen Systemen der sendende Prozessor die Ablege- und Hol-Zeigeeinrichtungen periodisch, um zu bestimmen; ob Raum verfügbar geworden ist. Ein derartiger Abrufbetrieb durch den sendenden Prozessor bremst den empfangenden Prozessor, da der sendende Prozessor auf die gemeinsam genutzte Speichereinrichtung zugreifen muß, um die Werte der Zeigeeinrichtungen zu lesen, was einen Zugriff durch die Druckeinrichtung verhindert und die Leistung des gesamten Systems verschlechtert.
- In der Netzwerkkarte 101 wird eine Buskonkurrenz verringert, indem verhindert wird, daß die Ablege-Zeigeeinrichtung um mehr als ein vorbestimmtes Ausmaß vor der Hol-Zeigeeinrichtung ist, und dann gewartet wird, bis die Hol-Zeigeeinrichtung aufholt. Die Netzwerkkarte ruft das gemeinsam genutzte SRAM 200 nicht ab, um zu bestimmen, wann die Hol-Zeigeeinrichtung die Ablege- Zeigeeinrichtung einholt, sondern verläßt sich eher auf eine andere Einrichtung, hier die Unterbrechungssteuerregistereinrichtung 450, um eine Bezeichnung auszubilden, wann die Hol- Zeigeeinrichtung einholt. Insbesondere ist es ein Merkmal der Druckeinrichtungsschnittstelle, daß die Druckdaten einen Befehl für die Druckeinrichtung enthalten können, um eine Bestätigung zur Netzwerkkarte über die Unterbrechungssteuerregi stereinrichtung 450 zu erzeugen. Die Netzwerkkarte fügt diesen Befehl in den letzten Block von Druckdaten ein, die sie zur Druckeinrichtung sendet und verwendet die Bestätigung von der Unterbrechungssteuerregistereinrichtung 450 als einen Ersatz für einen Abruf. Insbesondere sendet die Netzwerkkarte Druckdaten zur Druckeinrichtung, indem (1) bestimmt wird, ob es verfügbaren Raum in dem gemeinsam genutzten RAM für die Druckdaten gibt, indem Bezug auf eine Zähleinrichtung ausstehender Bestätigungen genommmen wird, (2) wenn Raum verfügbar ist, indem die Hol- und Ablege-Zeigeeinrichtungen gelesen werden und bestimmt wird, ob die Ablege-Zeigeeinrichtung gleich einem aus einer Vielzahl von Partitionsindizes ist, die der Anzahl von Partitionen entsprechen, in die die Ringzwischenspeichereinrichtung aufgeteilt ist, (3) Schreiben eines Befehls, der den empfangenden Prozessor (die Druckeinrichtung) auffordert, eine Bestätigung in dem Fall zu erteilen, in dem der Wert der Ablege-Zeigeeinrichtung gleich einem der vorbestimmten Indizes ist, (4) Schreiben eines Blocks von Druckdaten in die gemeinsam genutzte Speichereinrichtung am Ort der Ablege-Zeigeeinrichtung und danach (5) Aktualisieren des Wertes der Ablege- Zeigeeinrichtung. Wenn die Netzwerkkarte 101 einen Befehl schreibt, der die Druckeinrichtung auffordert, eine Bestätigung zu erteilen, aktualisiert sie die Anzahl von ausstehenden Bestätigungen, die sie von der Druckeinrichtung zu empfangen erwartet, indem eins zur Zähleinrichtung der ausstehenden Bestätigungen hinzugefügt wird. Wenn eine Bestätigung von der Druckeinrichtung empfangen wird, wird die Zähleinrichtung von ausstehenden Bestätigungen um eins verringert. Die Zähleinrichtung wird nicht in dem gemeinsam genutzten SRAM 200 gespeichert, sondern eher in dem DRAM 175 gespeichert, das durch den Netzwerkkarten-Mikroprozessor 173 besessen wird und für das es kein Problem bei einer Buskonkurrenz gibt. Demgemäß bestimmt die Netzwerkkarte 101, ob Raum in der Ringzwischenspeichereinrichtung verfügbar ist, indem die Anzahl von ausstehenden Bestätigungen, die in der Zähleinrichtung gespeichert ist, mit der Anzahl von Partitionen, in die die Ringzwischenspeichereinrichtung aufgeteilt ist, verglichen wird. Wenn die Anzahl von ausstehenden Bestätigungen größer als oder gleich der Anzahl von Partitionen ist, dann ist die Ringzwischenspeichereinrichtung voll und die Netzwerkkarte 101 schreibt keine zusätzlichen Druckinformationen in die Ringzwischenspeichereinrichtung; anstelle dessen wartet sie, bis eine Bestätigung empfangen wird, die anzeigt, daß die Druckeinrichtung eine Partition der Ringzwischenspeichereinrichtung herausgelöscht hat und daß diese Partition nun für neue Druckinformationen verfügbar ist. Wenn andererseits die Anzahl von ausstehenden Bestätigungen kleiner als die Anzahl von Partitionen ist, dann gibt es immer noch verfügbaren Raum in der Ringzwischenspeichereinrichtung.
- Fig. 19 zeigt den Vorgang, durch den der sendende Prozessor auf der Netzwerkkarte 101 (d. h. der Netzwerkkarten-Mikroprozessor 173) Daten in das gemeinsam genutzte SRAM 200 schreibt. Der Vorgang beginnt, wenn eine Druckaufgabe von dem lokalen Netzwerk (LAN) empfangen wird (Schritt S1902). Wenn die Druckaufgabe empfangen ist, bestimmt der Netzwerkkarten-Mikroprozessor 173, ob es in der Ringzwischenspeichereinrichtung für Druckdaten verfügbaren Raum gibt. Dies wird durch Zählen der Anzahl von ausstehenden Bestätigungen erreicht, die von der Druckeinrichtung erwartet werden. Genauer, es ist, wie vorstehend erwähnt, für den Netzwerkkarten-Mikroprozessor 173 möglich, mit den Druckdaten vermischte Befehle einzufügen, die die Druckeinrichtung veranlassen, eine Bestätigung zu erteilen, die von der Druckeinrichtung über die Unterbrechungssteuerregistereinrichtung 450 zum Netzwerkkarten-Mikroprozessor 173 zugeführt werden. Der Netzwerkkarten-Mikroprozessor 173 steuert die Anzahl von ausstehenden Bestätigungen nach, d. h. die Anzahl von für eine Bestätigung erteilten Befehlen minus der Anzahl von gegenwärtig empfangenen Bestätigungen. Wenn die Anzahl von ausstehenden Bestätigungen kleiner als die Anzahl von Partitionen ist, in die die Ringzwischenspeichereinrichtung aufgeteilt wurde (hier wurde die Ringzwischenspeichereinrichtung in zwei Partitionen aufgeteilt), dann ist Raum für mehr Druckdaten in der Ringzwischenspeichereinrichtung verfügbar; wenn andererseits die Anzahl von ausstehenden Bestätigungen gleich oder größer als die Anzahl von Partitionen ist, in die die Ringzwischenspeichereinrichtung unterteilt wurde, dann ist kein weiterer Raum verfügbar und der Netzwerkkarten-Mikroprozessor 173 wartet, bis Bestätigungen empfangen wurden.
- Somit bestimmt in Schritt S1903 der Netzwerkkarten-Mikroprozessor 173, ob eine Bestätigung von der Druckeinrichtung empfangen wurde. Wenn eine Bestätigung empfangen wurde, verzweigt sich der Ablauf zu Schritt S1904, in dem die Anzahl von ausstehenden Bestätigungen aktualisiert wird. In jedem Fall schreitet der Ablauf dann zu Schritt S1905 fort, in dem der Netzwerkkarten-Mikroprozessor 173 bestimmt, ob Raum für die in Schritt S1902 empfangenen Druckdaten in der Ringzwischenspeichereinrichtung verfügbar ist. Wie vorstehend erwähnt, bestimmt der Netzwerkkarten-Mikroprozessor 173 nicht, ob Raum verfügbar ist, indem auf die Ablege- und Hol-Zeigeeinrichtungen zugegriffen wird, da derartige Zugriffe nutzlose Buskonkurrenz verursachen würden. Anstelle dessen bestimmt der Netzwerkkarten-Mikroprozessor 173, ob es verfügbaren Raum gibt, indem die Anzahl von ausstehenden Bestätigungen mit der Anzahl von Partitionen verglichen wird, in die die Ringzwischenspeichereinrichtung aufgeteilt wurde. Wenn die Anzahl von ausstehenden Bestätigungen nicht kleiner als die Anzahl von Partitionen ist, dann ist kein Raum in der Ringzwischenspeichereinrichtung verfügbar und der Ablauf kehrt zu Schritt 51903 zurück, bis eine zusätzliche Bestätigung empfangen wurde. Wenn andererseits die Anzahl von ausstehenden Bestätigungen kleiner als die Anzahl von Partitionen ist, dann ist Raum in der Ringzwischenspeichereinrichtung verfügbar und der Ablauf kehrt zu Schritt S1906 zurück.
- In Schritt S1906 werden die Ablege- und Hol-Zeigeeinrichtungen aus dem gemeinsam genutzten SRAM 200 aus dem Zustandsmitteilungsbereich 203 gelesen. Wenn in Schritt S1907 die Ablege- Zeigeeinrichtung gleich einem partitionierten Index ist, d. h., wenn die Ablege-Zeigeeinrichtung auf das Ende einer Partition in der Ringzwischenspeichereinrichtung zeigt, wie beispielsweise Index A und Index B in Fig. 18, dann fügt der Netzwerkkarten-Mikroprozessor 173 einen Befehl für die Druckeinrichtung ein, um eine Bestätigung zu erteilen. Genauer, wenn die Ablege-Zeigeeinrichtung gleich einem der partitionierten Indizes ist, dann verzweigt der Ablauf zu Schritt S1908, in dem der Netzwerkkarten-Mikroprozessor seinen nächsten Block von Druckdaten in den Speichereinrichtungsort schreibt, der durch die Ablege-Zeigeeinrichtung angezeigt ist, sondern enthält auch in dem Block einen Befehl für den empfangenden Prozessor (d. h. den Druckeinrichtungs-Mikroprozessor 151), um eine Bestätigung zu erteilen. Der Netzwerkkarten-Mikroprozessor 173 aktualisiert als nächstes den Wert der Ablege-Zeigeeinrichtung (Schritt S1909) und aktualisiert dann die Anzahl von ausstehenden Bestätigungen (Schritt S1910). Dann schreitet der Ablauf zu Schritt S1911 fort, in dem bestimmt wird, ob mehr Druckdaten zur Druckeinrichtung gesendet werden müssen. Wenn mehr Daten gesendet werden müssen, dann kehrt der Ablauf zu Schritt S1903 fort, in dem der Netzwerkkarten-Mikroprozessor 173 bestimmt, ob Raum in der Ringzwischenspeichereinrichtung verfügbar ist, indem Bezug auf die Anzahl von ausstehenden Bestätigungen genommen wird.
- Wenn andererseits in Schritt S1907 die Ablege-Zeigeeinrichtung nicht gleich einem der partitionierten Indizes ist, dann schreitet der Ablauf zu Schritt S1912 fort, in dem der Netzwerkkarten-Mikroprozessor 173 einfach seinen nächsten Block von Druckdaten an den Speichereinrichtungsort schreibt, der durch die Ablege-Zeigeeinrichtung angezeigt ist, aktualisiert den Wert der Ablege-Zeigeeinrichtung (Schritt S1913) und schreitet fort zu Schritt S1911, um zu bestimmen, ob mehr Druckdaten zur Druckeinrichtung gesendet werden müssen.
- Der empfangende Prozessor erteilt Bestätigungen, wenn er aus der gemeinsam genutzten Speichereinrichtung den Datenblock liest, der diesen Befehl enthält. Insbesondere und gemäß Fig. 20 beginnt der empfangende Prozessor seine Datenwiederherstellung durch Lesen der Werte der Hoi- und Ablege-Zeigeeinrichtung aus dem gemeinsam genutzten SRAM (Schritt S2001). Wenn Daten wiederherzustellen sind (Schritt S2002) liest der empfangende Prozessor den Block von Daten aus dem durch die Hol- Zeigeeinrichtung angezeigten Speichereinrichtungsort (Schritte 52002-52004) und aktualisiert den Wert der Hol-Zeigeeinrichtung (Schritt S2005).
- Der empfangende Prozessor führt dann irgendwelche Befehle aus, die in dem Datenblock enthalten waren (Schritt S2006), wie beispielsweise einen Befehl, um eine Bestätigung zu erteilen. Der empfangende Prozessor erteilt diese Bestätigung als eine Unterbrechung zum sendenden Prozessor, der sie durch Schreiben eines Bits in die Unterbrechungssteuerregistereinrichtung 450 erzeugt, die Teil einer Schiedseinrichtungs-Steuerlogik 400 ist. Wenn der sendende Prozessor die Unterbrechung empfängt, aktualisiert er seine Anzahl von ausstehenden Bestätigungen, wie vorstehend beschrieben.
- Wenn demgemäß die Ringzwischenspeichereinrichtung in zwei Partitionen partitioniert ist, schreibt der sendende Prozessor Blöcke auf einmal nur in eine Hälfte der Ringzwischenspeichereinrichtung, überprüft, ob der empfangende Prozessor ein Lesen der anderen Hälfte beendet hat, und hört auf, auf die gemeinsam genutzte Speichereinrichtung an jedem der Indizes zuzugreifen, bis der empfangende Prozessor aufholt. In alternativen Ausführungsbeispielen kann der Ring weiter in den Situa tionen in feinere Körnungen aufgeteilt werden, in denen zwei Ringsegmente nicht ausreichend sind. In diesen Fällen, wie in den Fig. 21(a) bis 21(c) gezeigt, würden beispielsweise zusätzliche Indizes verwendet.
- Mittels dieser Struktur wird das Warten des Netzwerkkarten- Mikroprozessors 173 das Lesen des Druckeinrichtungsschnittstellenmikroprozessors 151 nicht verhindern, da der Netzwerkkarten-Mikroprozessor 173 zu diesem Zeitpunkt überhaupt nicht auf das gemeinsam genutzte SRAM 200 zugreifen wird. Dies erreicht nicht nur einen größeren Datendurchsatz, da der Druckeinrichtungs-Mikroprozessor 151 seine Aufgabe schneller erreichen kann, sondern befreit den Netzwerkkarten-Mikroprozessor 173 auch davon, die Ablege- und Hol-Zeigeeinrichtungen abgerufen zu haben, was ihm erlaubt, andere Arbeit duchzuführen, die das gemeinsam genutzte SRAM 200 nicht enthält.
- Die serielle Anschlußverbindungseinrichtung 600, wie vorstehend erwähnt, ist für serielle Verbindungen mit externen Prozessoren ausgebildet, insbesondere einen in Verbindung mit Ausprüfdiensten verwendeten Prozessor für die Netzwerkkarte 101. Genauer, über die serielle Anschlußverbindungseinrichtung 600 kann ein externer Prozessor Ausprüfinformationen wiederherstellen, die durch die Netzwerkkarte 101 übertragen wurden, wenn die Netzwerkkarte 101 in einen Ausprüfzustand gesetzt ist. Diese Informationen können beispielsweise einen Zustand von internen Netzwerkkarten-Registereinrichtungen, einen Zustand von Netzwerksendungen und Verkehr auf der Netzwerkschnittstelleneinrichtung 301 (oder 302, welche auch immer aktiviert ist), einen Zustand von Druckinformationen ebenso wie Druckinformationen, die in das gemeinsam genutzte SRAM 200 oder dergleichen geschrieben sind, enthalten.
- Da die serielle Anschlußverbindungseinrichtung 600 in Verbindung mit Ausprüfdiensten verwendet wird, ist es gefordert, daß serielle Verbindungen über diesen Anschluß durch den Netzwerkkarten-Mikroprozessor 173 beantwortet werden, unabhängig von der Unterbrechbarkeit des Netzwerkkarten-Mikroprozessors 173. Wenn beispielsweise eine Buskonkurrenz durch Warten auf ein Schreiben von neuen Druckdaten in das SRAM 200, bis die Druckeinrichtung 102 eine Bestätigung erteilt, verringert wird, wie vorstehend beschrieben, ist es für die Druckeinrichtung möglich, fehlerhaft eine Erteilung einer derartigen Bestätigung zu verpassen. In diesen Fällen wird der Netzwerkkarten-Mikroprozessor fortwährend eine Schleife bilden, bis eine Bestätigung empfangen ist. Einfach gesagt, ein Prozessor in einem derartigen Zustand ist "abgeschlossen", was bedeutet, daß er auf keine Unterbrechung anspricht; in diesem abgeschlossenen Zustand ist es einfach erforderlich, Energie zur Karte zu leiten. Da jedoch dieser fehlerhafte Vorgang genau die Art von Vorgang ist, für den Ausprüfdienste über die serielle Anschlußverbindungseinrichtung 600 gewünscht sind, ist es gefordert, daß der Netzwerkkarten-Mikroprozessor 173 auf derartige serielle Verbindungen ansprechen kann.
- Die in den Figuren gezeigte Anordnung beschreibt einen seriellen Anschlußaufbau, in dem Signale auf einem Empfangskanal zu dem nicht-maskierbaren Unterbrechungs(NMI)-Anschluß des Netzwerkkarten-Mikroprozessors 173 übertragen werden. Ein nichtmaskierbares Unterbrechungs-Merkmal ist auf den meisten modernen Prozessoren verfügbar, wie beispielsweise der Intel 80 · 86 Linie von Prozessoren, und umfaßt eine Einrichtung zur Unterbrechung des Prozessors unabhängig von seinem gegenwärtigen Berechnungszustand. Das heißt, wenn der NMI-Anschluß aktiviert ist, muß der Prozessor auf die Unterbrechung antworten, unabhängig von anderen Vorgängen, die gegenwärtig unterwegs sind.
- Genauer, wie in Fig. 22 gezeigt, enthält ein serieller Anschlußaufbau gemäß einem Ausführungsbeispiel der Erfindung einen Netzwerkkarten-Mikroprozessor 173, der einen nichtmaskierbaren Unterbrechungs(NMI)-Anschluß 1731 enthält und über einen Bus 181 mit der Netzwerkkarten-Steuerlogik 520 verbunden ist, wie vorstehend beschrieben. Die Netzwerkkarten- Steuerlogik 520 enthält eine Adreßdekodierlogik 523, die Adreßssignale auf dem Bus 181 dekodiert und die einen Zugriff auf interne Registereinrichtungen in der Netzwerkkarten- Steuerlogik 520 ausbildet. Insbesondere sind hier drei Registereinrichtungen betroffen: eine Senderegistereinrichtung 524, eine Empfangsregistereinrichtung 525 und eine NMI- Aktivierungsregistereinrichtung 526.
- Die Senderegistereinrichtung 524 enthält ein Sendebit, das mit einem Sendeanschluß 602 des seriellen Anschlusses verbunden ist. Genauer, das Sendebit ist durch den Netzwerkkarten-Mikroprozessor 173 über den Bus 181 und die Adreßdekodierlogik 523 schreibbar und entsprechend einem binären 1 oder 0 Zustand dieses Sendebits tritt ein entsprechender +5 oder 0 Volt-Pegel am Sendeanschluß 602 auf.
- Die Empfangsregistereinrichtung 525 enthält ein Empfangsbit, das mit einem Empfangsanschluß 601 der seriellen Softwareanschlusses verbunden ist. Genauer, entsprechend einem Spannungspegel, der am Empfangsanschluß 601 auftritt, wird das Empfangsbit auf eine binäre 0 oder 1 gesetzt und das Empfangsbit kann durch den Mikroprozessor 173 über den Bus 181 und die Adreßdekodierlogik 523 gelesen werden.
- Die NMI-Aktivierungsregistereinrichtung 526 ist ein Schalter, der durch den Mikroprozessor 173 steuerbar und zwischen dem Empfangsanschluß 601 und dem NMI-Anschluß 1731 verbunden ist. Unter der Steuerung des Mikroprozessors 173 und über den Bus 181 und die Adreßdekodierlogik 523 ist die NMI-Aktivierungs registereinrichtung 526 schaltbar zwischen einem Aktivierungszustand, in dem Signale, die am Empfangsanschluß 601 auftreten, mit dem NMI-Anschluß 1731 verbunden sind, und einem Deaktivierungszustand, in dem Signale, die am Empfangsanschluß 601 auftreten, blockiert werden.
- Die Senderegistereinrichtung 524, die Empfangsregistereinrichtung 525 und die NMI-Registereinrichtung 526 können physikalisch aus einer einzelnen Registereinrichtung gebildet sein, aber typischer sind sie jede in einer separat adressierbaren Registereinrichtung ausgebildet, wie in Fig. 22 gezeigt.
- Fig. 23(a) zeigt eine serielle Anschlußverarbeitung in einer seriellen Empfangsbetriebsart. Die in Fig. 23(a) gezeigten Verarbeitungsschritte werden durch den Netzwerkkarten-Mikroprozessor 173 entsprechend in dem DRAM 175 gespeicherten Softwareanweisungen ausgeführt.
- In Schritt S2301 aktiviert der Mikroprozessor 173 die NMI- Aktivierungsregistereinrichtung 526, um ein Senden von am Empfangsanschluß 601 erscheinenden Signalen direkt zum NMI-Anschluß 1731 zu erlauben. Dann überwacht in Schritt S2302 der Mikroprozessor 173 seinen NMI-Anschluß 1731 auf das Auftreten eines NMI-Signals. Wenn keine nicht-maskierbare Unterbrechung (NMI) empfangen wurde, fährt der Mikroprozessor 173 mit dem laufenden Prozeß fort (Schritt S2303), wie beispielsweise eine Fortsetzung mit Netzwerk-Druckvorgängen zwischen dem computerisierten lokalen Netzwerk 100 und der Druckeinrichtung.
- Wenn andererseits ein NMI-Signal am NMI-Anschluß 1731 empfangen wird, schreitet der Ablauf zu Schritt S2304 fort, in dem der Mikroprozessor 173 fortlaufende Prozesse unterbricht. Wie aus Fig. 23(b) ersichtlich, wird, da die NMI-Aktivierungsregistereinrichtung aktiviert wurde, ein NMI-Signal entsprechend einem Startbit am Empfangsanschluß 601 empfangen werden.
- Fig. 23(b) veranschaulicht einen Zeitablauf von Signalen in einer seriellen Empfangsbetriebsart. Wenn ein Spannungspegel 610 entsprechend einem Startbit am Empfangsanschluß 601 aufgrund des Aktivierungszustands der NMI-Aktivierungsregistereinrichtung 526 auftritt, wie aus Fig. 23(b) ersichtlich, wird somit das Startbit zum NMI-Anschluß 1731 übertragen. Da der Spannungspegel 610 mit dem Startbit verbunden ist, schaltet das Empfangsbit in der Empfangsregistereinrichtung 525 zur selben Zeit auf eine binäre 1.
- Zurückkehrend zu Fig. 23(a), beginnt der Mikroprozessor 173, nach einer Unterbrechung von fortlaufenden Prozessen durch den Mikroprozessor 173 (Schritt S2304) eine Ausführung von einem NMI-Unterbrechungs-Handhabungsvorgang, der in Schritt S2305 die NMI-Aktivierungsregistereinrichtung 526 deaktiviert, um eine Übertragung von anderen Signalen von dem Empfangsanschluß 601 zum NMI-Anschluß 1731 zu blockieren. Der Unterbrechungs- Handhabungsvorgang wartet dann auf einen seriellen Übertragungszeitraum, um dem ersten Datenbit ein Erscheinen am Empfangsanschluß 601 zu erlauben. In Situationen, in denen eine serielle Übertragung mit 19,2 kHz durchgeführt wird, beträgt der vorbestimmte serielle Übertragungszeitraum 1/19,2 kHz oder 52 us. Nachdem der vorbestimmte serielle Übertragungszeitraum vergangen ist, schreitet der Ablauf zu Schritt S2307 fort, in dem das empfangene Bit in der Empfangsregistereinrichtung 525 gelesen wurde. Dies ist in Fig. 23(b) gezeigt, in der zu veranschaulichenden Zwecken das erste Datenbit eine binäre 1 entsprechend einem hohen Spannungspegel am Empfangsanschluß 601 ist. Das empfangene Bit wird aus der Empfangsregistereinrichtung 525 wiederhergestellt und die Schritt S2306 und 52307 werden wiederholt (Schritt S2308), bis acht Datenbits empfangen wurden. Irgendwelche Stopbits (wie beispielsweise 611 in Fig. 23(b)), die übertragen werden, werden einfach ignoriert.
- Wenn acht Datenbits empfangen wurden, schreitet der Ablauf dann zu Schritt S2309 fort, in dem der Unterbrechungs-Handhabungsvorgang ein 8-Bit-Byte von Daten speichert, die am Empfangsanschluß 601 empfangen wurden. In Schritt S2310 aktiviert der Mikroprozessor 173 die NMI-Aktivierungsregistereinrichtung 526, um für einen Empfang einer nächsten seriellen Übertragung vorbereitet zu sein. Der serielle Verbindungszyklus zum Empfang eines Bytes von seriellen Daten Ist dann vollständig.
- In Schritt S2311 bestimmt der Mikroprozessor 173, ob das in Schritt S2309 gespeicherte 8-Bit-Byte eine asynchrone Unterbrechung fortlaufender Softwareaufgaben fordert. Genauer, sobald der vorstehend beschriebene Unterbrechungs-Handhabungsvorgang beendet wurde, kehrt der Ablauf einfach zu fortlaufenden Prozessen zurück, wie beispielsweise CPSOCKET und dergleichen, alle unter der Steuerung des MONITOR. Ein Vorteil eines NMI-angetriebenen seriellen Anschlusses ist jedoch die Fähigkeit zum Einbrechen in ein laufendes Programm in der Mitte eines Problems. In Situationen, in denen die Netzwerkkarte aufgrund von unerwarteten Softwareproblemen zusammengebrochen ist, ist der Zustand der Netzwerkkarte häufig unbekannt. Es könnte in einer sehr engen Mikroprozessorschleife sein,; daß keine Ausprüfmitteilungen übertragen wurden. Ein Rücksetzen der Netzwerkkarte, das häufig der einzige Weg zum Unterbrechen der Mikroprozessorschleife ist, wird den gegenwärtigen Zustand verlieren und keine Informationen ausbilden, wie beispielsweise über den Grund des Zusammenbruchs. In einer derartigen Situation ist die Fähigkeit zum Einbrechen über den NMI- angetriebenen seriellen Anschluß und zur Untersuchung des Systems äußerst wertvoll.
- Demgemäß bestimmt Schritt S2311, ob das an der seriellen Anschlußverbindungseinrichtung empfangene Byte eine asynchrone Unterbrechung fordert. Beispielsweise könnte durch die vorher gehend angeordnete Konvention bestimmt werden, daß eine Übertragung eines Ausrufezeichens ("!") eine Anforderung einer asynchronen Unterbrechung bedeutet. In diesen Beispielen setzt der Mikroprozessor 173 fort, fortlaufende Prozesse schwebend zu halten, und gibt eine interaktive Ausprüfeinrichtung ein. Die interaktive Ausprüfeinrichtung ist ein ROM-festes Programm, das einem Bediener ein Ansehen oder Verändern von Speichereinrichtungsadressen, CPU-Registereinrichtungen und Eingabe/Ausgabe(I/O)-Anschlüssen erlaubt. Zusätzlich erlaubt die interaktive Ausprüfeinrichtung zwei gesetzte Unterbrechungspunkte in dem Code und besitzt die Fähigkeit, eine Ausführung von irgendeinem derartigen Unterbrechungspunkt zu starten. Dies wird alles über die serielle Anschlußverbindungseinrichtung 600 erreicht.
- Somit erlaubt das asynchrone Unterbrechen einem Störungssucher eine Analyse des gegenwärtigen Zustands der Netzwerkkarte, wenn ein Problem aufgetreten ist. Da das Startbit bei einer seriellen Verbindung eine Erzeugung eines NMI-Signals verursacht, erlaubt eine asynchrone Unterbrechung einen Beginn einer interaktiven Ausprüfsitzung, in der auch eine eng gebundene Mikroprozessorschleife unterbrochen werden kann, um eine Analyse des Systemzustands zu erlauben.
- Wenn andererseits das in Schritt S2309 gespeicherte 8-Bit-Byte keine asynchrone Unterbrechung fordert, dann speichert der Mikroprozessor 173 einfach das empfangene Byte und kehrt zu Schritt S2303 zurück, in dem er eine Ausführung von fortlaufenden Prozessen wieder aufnimmt, die in Schritt S2304 angehalten wurden. Typischerweise überwachen anderen auf dem Mikroprozessor 173 aktive Softwaremodule, wie beispielsweise CPSOCKET die Datenzwischenspeichereinrichtung, in der das 8- Bit-Byte gespeichert wurde. Beispielsweise könnte durch eine vorhergehend angeordneten Konvention bestimmt werden, daß eine Übertragung der Zeichenfolge "DNLD" eine Anforderung von Her unterladediensten bezeichnet, in denen neue Software-Module oder Module über die serielle Anschlußverbindungseinrichtung 600 heruntergeladen werden. In einem derartigen Beispiel könnte CPSOCKET angeordnet sein, daß sie jedes der "DNLD"-Zeichen rückstrahlt, wenn sie empfangen werden und danach in eine Herunterlade-Betriebsart eintritt.
- Fig. 24(a) zeigt eine Ablaufverarbeitung in der Übertragungsbetriebsart des seriellen Softwareanschlusses und Fig. 24(b) zeigt Signale, die am Übertragungsanschluß 602 in Verbindung mit in die Übertragungsregistereinrichtung 524 geschriebenen Übertragungsbits auftreten.
- In Schritt S2401 schreibt der Mikroprozessor 173 ein binäres 1 Startbit in die Übertragungsregistereinrichtung 524. Das Übertragungsbit verursacht, da es mit dem Übertragungsanschluß 602 verbunden ist, daß ein +5 Spannungspegel am Übertragungsanschluß 602 auftritt.
- Der Ablauf schreitet dann zu Schritt S2402 fort, in dem der Netzwerkkarten-Mikroprozessor 173 einen vorbestimmten seriellen Übertragungszeitraum wartet, der bei einer seriellen Rate von 19,2 kHz 1/19,2 = 52 us entspricht (eine Zwischen-Bit- Zeit). Nach einem Warten für einen vorbestimmten Zeitraum schreibt der Mikroprozessor 173 das erste Bit in dem übertragenen Wort in das Übertragungsbit in der Übertragungsregistereinrichtung 524 (Schritt S2403). Bis alle acht Bits des übertragenen Worts geschrieben wurden (Schritt S2404), wiederholt der Mikroprozessor 173 die Schritte S2402 und S2403, in denen er den seriellen Übertragungszeitraum wartet und ein nächstes Datenbit in das Übertragungsbit in der Übertragungsregistereinrichtung 524 schreibt. Nachdem alle acht Bits geschrieben wurden, schreitet der Ablauf zu Schritt S2405, der nach einem Warten für den Zwischen-Bit-Übertragungszeitraum ein Stopbit in die Registereinrichtung 524 schreibt, und dann zu Schritt S2406 fort, in dem eine serielle Punktübertragung vollständig ist.
- Die Erfindung wurde unter Berücksichtigung eines bestimmten veranschaulichenden Ausführungsbeispiels beschrieben. Es ist verständlich, dass die Erfindung nicht auf das vorstehend beschriebene Ausführungsbeispiel beschränkt ist und daß zahlreiche Veränderungen und Modifikationen durch den Fachmann ohne Abweichung vom Schutzumfang der Erfindung erfolgen können.
Claims (12)
1. Serielle Anschlußeinrichtung mit:
einer Verarbeitungseinrichtung (173) zur Ausführung von
Verfahrensschritten zur Informationsverarbeitung, wobei die
Verarbeitungseinrichtung (173) einen nicht-maskierbaren
Unterbrechungs(NMI)-Anschluß (1731) enthält und auf eine
Aktivierung des NMI-Anschlusses (1731) anspricht, um
Verarbeitungsschritte laufender Informationen anzuhalten und
eine Ausführung von Unterbrechungsverarbeitungsschritten zu
initiieren,
einem Empfangsanschluß (601) zum Empfang empfangener, durch
die Verarbeitungseinrichtung (173) lesbarer Bits, wobei die
empfangenen Bits in einen binären 1 oder 0 Zustand
entsprechend Spannungspegeln am Empfangsanschluß (601) eingestellt
werden,
einem NMI-Freigabeschalter (526), der zwischen dem
Empfangsanschluß (601) und dem NMI-Anschluß (1731) der
Verarbeitungseinrichtung (173) verbunden ist, wobei der NMI-
Freigabeschalter (526) unter der Steuerung der
Verarbeitungseinrichtung (173) betätigbar ist, um Signale am
Empfangsanschluß (601) zum NMI-Anschluß (1731) zu übertragen,
wenn er freigegeben ist, und zu einer Blockübertragung von
Signalen zum NMI-Anschluß (1731), wenn er gesperrt ist,
wobei die durch die Verarbeitungseinrichtung (173)
ansprechend auf die Aktivierung des NMI-Anschlusses (1731)
initiierten Unterbrechungsverarbeitungsschritte
Verfahrensschritte enthalten zum (a) Sperren des NMI-
Freigabeschalters (526), (b) Warten auf einen seriellen
Übertragungszeitraum und danach Lesen eines empfangenen
Bits, um ein übertragenes Datenbit zu erhalten, (c) zum
Wiederholen von (b) bis eine Anzahl von übertragenen
Datenbits erhalten ist, (d) zum Versammeln der übertragenen
Datenbits in ein Wort, (e) zum Freigeben des NMI-
Freigabeschalters (526) und (f) zum Wiederaufnehmen einer
Ausführung der angehaltenen Verarbeitungsschritte für
laufende Informationen.
2. Serielle Anschlußeinrichtung nach Anspruch 1, wobei
vor einer Wiederaufnahme der angehaltenen laufenden
Informationsverarbeitungsschritte die Verarbeitungseinrichtung
(173) bestimmt, ob eine Anforderung von
Fehlerbereinigungsdiensten über das Wort empfangen wurde und in einem Fall,
in dem eine Anforderung von Fehlerbereinigungsdiensten
empfangen wurde, Fehlerbereinigungsdienste ausführt.
3. Serielle Anschlußeinrichtung nach Anspruch 1 oder 2,
weiterhin mit
einem Übertragungsanschluß (602) zur Übertragung von durch
die Verarbeitungseinrichtung (173) schreibbaren
übertragenen Bits, um ein Übertragungssignal entsprechend einem
binären 1 oder 0 Zustand des Übertragungsbits zu senden.
4. Serielle Anschlußeinrichtung nach Anspruch 3, wobei
die Verarbeitungseinrichtung (173)
Übertragungsverarbeitungsschritte ausführt, die Schritte enthalten zum (a)
Schreiben eines Startbits, (b) Warten auf einen seriellen
Übertragungszeitraum und danach Schreiben eines Datenbits
zum Übertragungsanschluß (602), (c) Wiederholen von (b) bis
eine Anzahl von Datenbits übertragen wurde, und (e)
Schreiben eines Stopbits.
5. Serielle Anschlußeinrichtung nach Anspruch 4, mit
einer oder mehr verarbeitungseinrichtungs-adressierbaren
Registereinrichtungen (524, 525) zur Speicherung der
übertragenen Bits und der empfangenen Bits.
6. Verfahren zur Ausbildung eines seriellen Anschlusses unter
Verwendung einer Verarbeitungseinrichtung (173) mit einem
nicht-maskierbaren Unterbrechungs-Anschluß (1731) und einem
nicht-maskierbaren Unterbrechungs-Freigabeschalter (526),
der zwischen einer Empfangsleitung und dem
nichtmaskierbaren Unterbrechungs-Anschluß (1731) verbunden ist,
wobei das Verfahren als Unterbrechungsverarbeitungsschritte
durch die Verarbeitungseinrichtung (173) realisiert wird,
mit:
Anhalten lauferidder Informationsverarbeitungsschritte
ansprechend auf einen Empfang eines Startbits zu dem
nichtmaskierbaren Unterbrechungs-Anschluß (1731) durch den
nicht-maskierbaren Unterbrechungs-Freigabeschalter (526),
Sperren des nicht-maskierbaren
Unterbrechungs-Freigabeschalters (526) zur Verhinderung einer Übertragung von Bits
zu dem nicht-maskierbaren Unterbrechungs-Anschluß (1731),
Empfangen von weiteren Bits eines seriellen Datenworts mit
fester oder veränderbarer Länge auf der Empfangsleitung,
Freigeben des nicht-maskierbaren
Unterbrechungs-Freigabeschalters (526) und Wiederaufnehmen einer Ausführung der
angehaltenen laufenden Informationsverarbeitungsschritte
nach Empfang eines vollständigen seriellen Datenworts.
7. Verfahren nach Anspruch 6, wobei
vor einer Wiederaufnahme einer Ausführung der angehaltenen
laufenden Informationsverarbeitungsschritte eine Bestimmung
durchgeführt wird, ob eine Anforderung für
Fehlerbereinigungsdienste über das serielle Datenwort empfangen wurde
oder nicht, und, in einem Fall, in dem eine Anforderung für
Fehlerbereinigungsdienste empfangen wurde, die
Fehlerbereinigungsdienste ausgeführt werden.
8. Verfahren nach Anspruch 6 oder 7, weiterhin mit
einem Übertragen eines von einem seriellen Datenwort
gefolgten Startbits und eines Stopbits auf einer mit der
Verarbeitungseinrichtung (173) verbundenen
Übertragungsleitung.
9. Verfahren nach Anspruch 8, wobei
das übertragene serielle Datenwort übertragen wird, um in
einer oder mehreren
Verarbeitungseinrichtungsadressierbaren Registereinrichtungen (525) gespeichert zu
werden.
10. Verfahren nach einem der Ansprüche 6 bis 9, wobei
die empfangenen Bits in einer oder mehreren
Verarbeitungseinrichtungs-adressierbaren Registereinrichtungen (524)
gespeichert werden und die Verarbeitungseinrichtung die
oder jede Registereinrichtung (524) adressiert, um die Bits
zu empfangen.
11. Speichermedium zur Speicherung von
Verarbeitungseinrichtungs-realisierbaren Anweisungen zur Steuerung einer
Verarbeitungseinrichtung zur Realisierung des Verfahrens nach
einem der Ansprüche 6 bis 10.
12. Verarbeitungseinrichtungs-realisierbare Anweisungen zur
Steuerung einer Verarbeitungseinrichtung zur Realisierung
des Verfahrens nach einem der Ansprüche 6 bis 10.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/336,102 US5606671A (en) | 1994-11-04 | 1994-11-04 | Serial port using non-maskable interrupt terminal of a microprocessor |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69515458D1 DE69515458D1 (de) | 2000-04-13 |
DE69515458T2 true DE69515458T2 (de) | 2000-08-03 |
Family
ID=23314579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69515458T Expired - Fee Related DE69515458T2 (de) | 1994-11-04 | 1995-10-30 | Serielle Anschlussstelle für Ferndiagnose |
Country Status (4)
Country | Link |
---|---|
US (1) | US5606671A (de) |
EP (1) | EP0722142B1 (de) |
JP (1) | JPH08227391A (de) |
DE (1) | DE69515458T2 (de) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6067407A (en) * | 1995-06-30 | 2000-05-23 | Canon Information Systems, Inc. | Remote diagnosis of network device over a local area network |
US6026453A (en) * | 1997-07-15 | 2000-02-15 | International Business Machines Corporation | System for facilitating serial data communications utilizing number of cycles input signal remained asserted to indicate data output logical state |
FR2775370B1 (fr) * | 1998-02-20 | 2001-10-19 | Sgs Thomson Microelectronics | Procede de gestion d'interruptions dans un microprocesseur |
GB2355099B (en) | 1999-10-05 | 2003-03-12 | Autoliv Dev | Improvements in or relating to a vehicle safety arrangement |
JP4433578B2 (ja) * | 2000-06-29 | 2010-03-17 | ソニー株式会社 | 接続装置、接続方法及び接続機能を有するプログラムを記録したコンピュータ読み取り可能なプログラム格納媒体 |
US6982802B2 (en) * | 2001-02-20 | 2006-01-03 | Hewlett-Packard Development Company, L.P. | Systems and methods for collecting printing device usage data |
US7552216B2 (en) | 2001-03-27 | 2009-06-23 | Lexmark International, Inc. | Method of sharing a printer |
JP4576756B2 (ja) * | 2001-06-19 | 2010-11-10 | 株式会社日立製作所 | 光信号切替え装置、および、その使用方法 |
US6653845B2 (en) * | 2002-02-25 | 2003-11-25 | Daimlerchrysler Corporation | Addressable open connector test circuit |
JP2004171411A (ja) * | 2002-11-21 | 2004-06-17 | Hitachi Global Storage Technologies Netherlands Bv | データ記憶装置及びバッファメモリの管理方法 |
US6837626B1 (en) * | 2003-11-12 | 2005-01-04 | Hewlett-Packard Development Company, L.P. | Electro-optical connector |
US20050193259A1 (en) * | 2004-02-17 | 2005-09-01 | Martinez Juan I. | System and method for reboot reporting |
US7788664B1 (en) * | 2005-11-08 | 2010-08-31 | Hewlett-Packard Development Company, L.P. | Method of virtualizing counter in computer system |
CN101382923B (zh) * | 2007-09-06 | 2010-04-14 | 联想(北京)有限公司 | 虚拟机***及其客户操作***的中断处理方法 |
CN105512074B (zh) * | 2015-07-09 | 2018-11-02 | 上海盛善电气有限公司 | 一种串行通信自检冗余的设计方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4641263A (en) * | 1982-05-17 | 1987-02-03 | Digital Associates Corporation | Controller system or emulating local parallel minicomputer/printer interface and transferring serial data to remote line printer |
US4608700A (en) * | 1982-07-29 | 1986-08-26 | Massachusetts Institute Of Technology | Serial multi-drop data link |
US4979095A (en) * | 1983-05-31 | 1990-12-18 | Boeing Company | Apparatus and method for a data processing system interface having multiple bit protocol signals |
GB2176917B (en) * | 1985-06-19 | 1989-01-05 | Stc Plc | Data port |
JPS6383826A (ja) * | 1986-09-29 | 1988-04-14 | Toshiba Corp | ハ−ドコピ−制御装置 |
US5086388A (en) * | 1988-03-18 | 1992-02-04 | Hitachi Maxell, Ltd. | Semiconductor serial/parallel-parallel/serial file memory and storage system |
US5140679A (en) * | 1988-09-14 | 1992-08-18 | National Semiconductor Corporation | Universal asynchronous receiver/transmitter |
US5083259A (en) * | 1988-12-07 | 1992-01-21 | Xycom, Inc. | Computer bus interconnection device |
US5212774A (en) * | 1988-12-09 | 1993-05-18 | Dallas Semiconductor Corporation | Two processor communications system with processor controlled modem |
US5298921A (en) * | 1990-09-27 | 1994-03-29 | Advanced Micro Devices, Inc. | System for communicating with external device registers via two-byte data packets over a serial bus |
US5291609A (en) * | 1991-06-13 | 1994-03-01 | Sony Electronics Inc. | Computer interface circuit |
US5247623A (en) * | 1991-08-15 | 1993-09-21 | Primax Electronics Ltd. | Automatic multiple personal computer/computer printer connecting system |
US5471585A (en) * | 1992-09-17 | 1995-11-28 | International Business Machines Corp. | Personal computer system with input/output controller having serial/parallel ports and a feedback line indicating readiness of the ports |
-
1994
- 1994-11-04 US US08/336,102 patent/US5606671A/en not_active Expired - Fee Related
-
1995
- 1995-10-30 EP EP95307705A patent/EP0722142B1/de not_active Expired - Lifetime
- 1995-10-30 DE DE69515458T patent/DE69515458T2/de not_active Expired - Fee Related
- 1995-11-02 JP JP7286158A patent/JPH08227391A/ja not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
JPH08227391A (ja) | 1996-09-03 |
EP0722142B1 (de) | 2000-03-08 |
US5606671A (en) | 1997-02-25 |
DE69515458D1 (de) | 2000-04-13 |
EP0722142A1 (de) | 1996-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69516634T2 (de) | Intelligente Wiederprogrammierung eines Flash-Speichers | |
DE69520819T2 (de) | Verringerung von Buszugriffskonflikten in gemeinsamem Speicher | |
DE69529451T2 (de) | Automatische Erkennung einer Netzwerk-Hardware-Verbindung | |
US5613096A (en) | Network protocol sensor | |
DE69429279T2 (de) | Multiprozessor-programmierbares unterbrechungskontrollersystem mit prozessor-integrierten unterbrechungskontrollern | |
DE69524846T2 (de) | Arbitervorrichtung | |
DE69317481T2 (de) | Ein-/Ausgabesteuerungssystem und Verfahren | |
DE69515458T2 (de) | Serielle Anschlussstelle für Ferndiagnose | |
DE3043894C2 (de) | ||
DE3650092T2 (de) | E/a-steuerung mit zwei funktionen. | |
DE3689226T2 (de) | Multiprozessorsystem mit multihierarchischen Ebenen. | |
DE68928311T2 (de) | Fern-Urlader | |
DE69836426T2 (de) | Steuergerät für einen universellen seriellen Bus | |
DE3650036T2 (de) | Mehrfachport-Diensterweiterungsadapter für Übertragungssteuerung. | |
DE69329818T2 (de) | Verfahren und Vorrichtung zur Schnittstellenbildung zwischen einem Peripheriegerät und einem lokalen Netzwerk | |
DE69610157T2 (de) | Ein Ein-/Ausgabeprozessor der gemeinsame Betriebsmittel einem Ein-/Ausgabebus in einem Rechner zur Verfügung stellt | |
DE3280451T2 (de) | Verfahren zur Initialisierung eines Datenverarbeitungssystems. | |
DE69711877T2 (de) | Paralleler, paketierter, intermodul-orientierter hochgeschwindigkeits-steuer- und datenbus | |
DE69322743T2 (de) | Verfahren und Vorrichtung zur Verhinderung der unabsichtlichen Löschung gespeicherter Daten | |
DE69616119T2 (de) | Netzwerkschnittstellenkarte für digitales Kopiergerät | |
DE3882991T2 (de) | Anordnung und methode zur erzielung von unterbrechungen mit einem "pended bus". | |
DE68920929T2 (de) | Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen. | |
DE68923864T2 (de) | Anordnung zur Speicher- und Peripherie-Bausteinauswahl. | |
DE69827879T2 (de) | Zeitmultiplexschema zur Verklemmungsauflösung in distribuierter Arbitrierung | |
DE3610155A1 (de) | Mehrprozessorsystem fuer paralleles schreiben und lesen von informationen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: CANON KABUSHIKI KAISHA, TOKIO, JP |
|
8339 | Ceased/non-payment of the annual fee |