DE3890945C2 - Zelle, die in einem mehrzelligen Netzwerk zur Meßwerterfassung, Kommunikation und Steuerung dient - Google Patents

Zelle, die in einem mehrzelligen Netzwerk zur Meßwerterfassung, Kommunikation und Steuerung dient

Info

Publication number
DE3890945C2
DE3890945C2 DE3890945A DE3890945A DE3890945C2 DE 3890945 C2 DE3890945 C2 DE 3890945C2 DE 3890945 A DE3890945 A DE 3890945A DE 3890945 A DE3890945 A DE 3890945A DE 3890945 C2 DE3890945 C2 DE 3890945C2
Authority
DE
Germany
Prior art keywords
cell
bits
bit
register
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE3890945A
Other languages
English (en)
Other versions
DE3890945T1 (de
Inventor
Wendell B Sander
Shabtai Evan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Echelon Systems Corp
Original Assignee
Echelon Systems Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Echelon Systems Corp filed Critical Echelon Systems Corp
Application granted granted Critical
Publication of DE3890945C2 publication Critical patent/DE3890945C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/05Digital input using the sampling of an analogue quantity at regular intervals of time, input from a/d converter or output to d/a converter
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C15/00Arrangements characterised by the use of multiplexing for the transmission of a plurality of signals over a common path
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J13/00Circuit arrangements for providing remote indication of network conditions, e.g. an instantaneous record of the open or closed condition of each circuitbreaker in the network; Circuit arrangements for providing remote control of switching means in a power distribution network, e.g. switching in and out of current consumers by using a pulse code signal carried by the network
    • H02J13/00006Circuit arrangements for providing remote indication of network conditions, e.g. an instantaneous record of the open or closed condition of each circuitbreaker in the network; Circuit arrangements for providing remote control of switching means in a power distribution network, e.g. switching in and out of current consumers by using a pulse code signal carried by the network characterised by information or instructions transport means between the monitoring, controlling or managing units and monitored, controlled or operated power network element or electrical equipment
    • H02J13/00007Circuit arrangements for providing remote indication of network conditions, e.g. an instantaneous record of the open or closed condition of each circuitbreaker in the network; Circuit arrangements for providing remote control of switching means in a power distribution network, e.g. switching in and out of current consumers by using a pulse code signal carried by the network characterised by information or instructions transport means between the monitoring, controlling or managing units and monitored, controlled or operated power network element or electrical equipment using the power network as support for the transmission
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J13/00Circuit arrangements for providing remote indication of network conditions, e.g. an instantaneous record of the open or closed condition of each circuitbreaker in the network; Circuit arrangements for providing remote control of switching means in a power distribution network, e.g. switching in and out of current consumers by using a pulse code signal carried by the network
    • H02J13/00006Circuit arrangements for providing remote indication of network conditions, e.g. an instantaneous record of the open or closed condition of each circuitbreaker in the network; Circuit arrangements for providing remote control of switching means in a power distribution network, e.g. switching in and out of current consumers by using a pulse code signal carried by the network characterised by information or instructions transport means between the monitoring, controlling or managing units and monitored, controlled or operated power network element or electrical equipment
    • H02J13/00016Circuit arrangements for providing remote indication of network conditions, e.g. an instantaneous record of the open or closed condition of each circuitbreaker in the network; Circuit arrangements for providing remote control of switching means in a power distribution network, e.g. switching in and out of current consumers by using a pulse code signal carried by the network characterised by information or instructions transport means between the monitoring, controlling or managing units and monitored, controlled or operated power network element or electrical equipment using a wired telecommunication network or a data transmission bus
    • H02J13/00017Circuit arrangements for providing remote indication of network conditions, e.g. an instantaneous record of the open or closed condition of each circuitbreaker in the network; Circuit arrangements for providing remote control of switching means in a power distribution network, e.g. switching in and out of current consumers by using a pulse code signal carried by the network characterised by information or instructions transport means between the monitoring, controlling or managing units and monitored, controlled or operated power network element or electrical equipment using a wired telecommunication network or a data transmission bus using optical fiber
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J13/00Circuit arrangements for providing remote indication of network conditions, e.g. an instantaneous record of the open or closed condition of each circuitbreaker in the network; Circuit arrangements for providing remote control of switching means in a power distribution network, e.g. switching in and out of current consumers by using a pulse code signal carried by the network
    • H02J13/00006Circuit arrangements for providing remote indication of network conditions, e.g. an instantaneous record of the open or closed condition of each circuitbreaker in the network; Circuit arrangements for providing remote control of switching means in a power distribution network, e.g. switching in and out of current consumers by using a pulse code signal carried by the network characterised by information or instructions transport means between the monitoring, controlling or managing units and monitored, controlled or operated power network element or electrical equipment
    • H02J13/00028Circuit arrangements for providing remote indication of network conditions, e.g. an instantaneous record of the open or closed condition of each circuitbreaker in the network; Circuit arrangements for providing remote control of switching means in a power distribution network, e.g. switching in and out of current consumers by using a pulse code signal carried by the network characterised by information or instructions transport means between the monitoring, controlling or managing units and monitored, controlled or operated power network element or electrical equipment involving the use of Internet protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

Die Erfindung bezieht sich auf eine Zelle nach dem Oberbe­ griff des Patentanspruchs 1.
Es gibt viele kommerziell verfügbare Produkte zur Meß­ werterfassung, Steuerung und Datenübertragung in einer Netz­ werkumgebung. Diese Produkte reichen von sehr kostspieligen, ausgeklügelten Systemen bis zu einfachen Systemen mit geringer Intelligenz. Beispielsweise sorgt ein im Handel erhältliches Netzwerksystem "X-10" (Dave Rye; "The X-10 Powerhouse Universal Interface", 20. November 1986) für eine Steuerung zwischen ei­ nem Lichtschalter und einer Lichtquelle. Wenn der Lichtschalter betätigt wird, wird ein Codemuster über die Energieleitungen zu einem lichtseitig angeordneten Empfänger übertragen. Bei Emp­ fang des Codes durch den Empfänger wird der Code übersetzt und dadurch zur Steuerung des Lichtes verwendet.
In einem Netzwerk können eine Vielzahl von Zellen über Kom­ munikationsmedien (verdrillte Leitungen, Koaxialkabel, Licht­ wellenleiter) miteinander verbunden sein, um gemeinsame Aufga­ ben der Meßwerterfassung, Kommunikation und/oder Steuerung aus­ zuführen. Zur Ausführung spezieller Aufgaben kann eine Zelle neben den Ein/Ausgabe-Schnittstellen zum Netzwerkmedium weitere Ein/Ausgabe-Schnittstellen bzw. I/O-Schaltungen zur Ausführung spezieller Aufgaben aufweisen. So kann beispielsweise ein Ana­ log/Digital-Umsetzer eine Schnittstelle zur Erfassung analoger Meßsignale bilden. In einer anderen Zelle kann beispielsweise ein Digital/Analog-Umsetzer als Schnittstelle zur Ausgabe ana­ loger Steuersignale vorgesehen sein. Wiederum in einer anderen Zelle können spezielle Kommunikationsschnittstellen zur Ein- bzw. Ausgabe digitaler Kommunikationssignale angeordnet sein.
Derartige Zellen sind beispielsweise aus der US-PS 4 675 803 bekannt. Eine dort beschriebene analoge Eingabezelle enthält neben einer Reihe von Analog/Digital-Umsetzern einen Mikropro­ zessor und mehrere Speichermöglichkeiten, um die durch die Ana­ log/Digital-Umsetzer erzeugten digitalen Signale vorzuverarbei­ ten, zwischenzuspeichern und in geeigneter Weise über eine Netzwerkschnittstelle auf das Netz auszugeben. Eine andere be­ schriebene Zelle weist Digital/Analog-Umsetzer zur Ausgabe von Steuersignalen und daneben Analog/Digital-Umsetzer zur Erfas­ sung von Meßsignalen auf. Aufgrund des Implementierens mehrerer getrennter Schnittstellenbaugruppen (A/D- und D/A-Umsetzer) in einer Zelle ist ein erheblicher schaltungstechnischer Aufwand notwendig. Außerdem läßt sich die einmal konfigurierte Zelle nur für die durch die implementierten Baugruppen vorgegebenen Aufgaben verwenden. Eine flexible Gestaltung eines Netzwerks mit für verschiedene Aufgaben verwendbaren Zellen erfordert bei getrennter Implementierung der verschiedenen Schnittstellenbau­ gruppen durch die parallele, getrennte Anordnung der Baugruppen in jeder Zelle einen erheblichen schaltungstechnischen Aufwand. Außerdem führt die parallele Anordnung der Schnittstellenbau­ gruppen in jeder Zelle dazu, daß der größte Teil der implemen­ tierten Hardware im jeweiligen Anwendungsfall ungenutzt bleibt.
Der Erfindung liegt die Aufgabe zugrunde, eine Zelle der o. g. Art zu schaffen, die bei geringem schaltungstechnischen Aufwand einfach zu konfigurieren ist.
Diese Aufgabe wird erfindungsgemäß durch eine Zelle mit den Merkmalen des Anspruchs 1 gelöst.
Die erfindungsgemäße Zelle weist einen Prozessor, einen Eingabe/Ausgabe-Abschnitt, Speichermittel und zugehörige Zeit­ gabeschaltungen auf. Sie ist in gewöhnlicher integrierter Schaltungstechnik realisierbar. Der Eingabe/Ausgabe-Abschnitt weist mehrere Schaltungselemente, wie einen Rampengenerator, Digitalzähler, Digitalkomparatoren, Analogkomparatoren usw. auf, die unter Steuerung durch den Prozessor in verschiedenen Konfigurationen miteinander koppelbar sind. Dabei lassen sich beispielsweise Analog/Digital-Umsetzer, Digital/Analog-Umsetzer und/oder digitale Kommunikationsbaugruppen konfigurieren. Durch die gemeinsame Nutzung der Schaltungselemente für verschiedene Konfigurationen, beispielsweise des Digitalzählers für den A/D- und den D/A-Umsetzer, ist eine erhebliche Einsparung an Hard­ ware möglich. Daneben gestattet die Steuerung durch den Prozes­ sor ein einfaches und flexibles Konfigurieren und Umkonfigurie­ ren der Zelle in Anpassung an die jeweils auszuführende Aufgabe im Netzwerk.
Vorteilhafte Weiterbildungen der Erfindung sind in den Un­ teransprüchen gekennzeichnet.
Im folgenden wird die Erfindung anhand von in der Zeichnung dargestellten Ausführungsbeispielen detailliert beschrieben.
Kurzbeschreibung der Zeichnungen
Fig. 1 ist ein Blockschaltbild, das eine typische An­ wendung der Erfindung veranschaulicht.
Fig. 2 ist ein Diagramm zur Veranschaulichung der Grup­ penbildung von Zellen.
Fig. 3 ist ein anderes Blockdiagramm ähnlich demjenigen gemäß Fig. 2 zur Veranschaulichung der Gruppen­ bildung von Zellen.
Fig. 4 ist ein Diagramm zur Beschreibung von Unterkanä­ len.
Fig. 5 ist ein Diagramm mit mehreren Zellen zur Be­ schreibung der Zellengruppenbildung unter Ver­ wendung der vorliegenden Erfindung.
Fig. 6 ist ein Diagramm zur Veranschaulichung des bei der Erfindung verwendeten Paketformats.
Fig. 7 ist ein Diagramm zur Veranschaulichung des Be­ zeichnungslistenabschnitts des Paketformats gemäß Fig. 6.
Fig. 8 zeigt eine Folge von Schritten, die bei der Bildung einer Gruppe von Zellen bei der Erfin­ dung verwendet werden.
Fig. 9 ist eine Tabelle zur Veranschaulichung der Code­ zuweisungen für die bei der Erfindung verwendete 3-aus-6-Codierung.
Fig. 10 ist ein Blockschaltbild der Kommunikations- und Steuerzelle.
Fig. 11 ist ein Blockschaltbild eines Teils der Befehls­ decodierlogik, wie sie in dem Prozessor der Zelle gemäß Fig. 10 Verwendung findet.
Fig. 12 ist ein Detail-Blockschaltbild des Prozessors gemäß Fig. 10.
Fig. 13 ist ein Zeitdiagramm für den Prozessor gemäß Fig. 10; dieses Diagramm zeigt Latch-Schaltungen und Register zur Erzeugung der Pipeline-Opera­ tion, die in den Zellen verwendet wird.
Fig. 14 ist ein Blockschaltbild zur Veranschaulichung des bevorzugten Ausführungsbeispiels des 3-aus-6-Codierers.
Fig. 15 ist ein Blockschaltbild, das das bevorzugte Ausführungsbeispiel des 3-aus-6-Decodierers zeigt.
Fig. 16 ist ein Blockschaltbild, das das bevorzugte Aus­ führungsbeispiel des 3-aus-6-Code-Verifizierers zeigt.
Fig. 17 ist ein elektrisches Schaltbild des Pufferab­ schnitts eines der I/O-Abschnitte.
Fig. 18 ist ein elektrisches Schaltbild der die Zähl- und Zeitgabefunktionen für einen I/O-Unterab­ schnitt bewirkenden Komponenten.
Fig. 19 ist ein schematisches elektrisches Schaltbild der Steuer- und Zustandsmaschine für einen I/O-Abschnitt.
Fig. 20 ist ein schematisches elektrisches Schaltbild der Abtast- und Halteschaltung, die den I/O-Un­ terabschnitten zugeordnet ist.
Fig. 21 zeigt das innerhalb eines I/O-Unterabschnitts zur Ausführung der Digital/Analog-Wandlung ge­ bildete Netzwerk.
Fig. 22 zeigt das innerhalb eines I/O-Abschnitts zur Analog/Digital-Wandlung gebildete Netzwerk.
Fig. 23 ist ein schematisches elektrisches Schaltbild, das den Kommunikationsteil eines I/O-Unterab­ schnitts zeigt.
Fig. 24 ist ein Zustandsdiagramm, das für die I/O-Unter­ abschnitte und für die Übertragungskonkurrenzen benutzt wird.
Fig. 25 ist ein Zustandsdiagramm für das Verknüpfungs­ niveau ARQ.
Fig. 26 ist ein Zustandsdiagramm für Primärstationsver­ bindungen.
Fig. 27 ist ein Zustandsdiagramm für Sekundärstations­ verbindungen.
Fig. 28 ist ein Blockschaltbild für eine Gruppierein­ richtung.
Fig. 29 ist ein Diagramm zur Veranschaulichung der Form, in der die System-ID zur Übertragung durch das Paket und innerhalb einer Zelle codiert wird.
Fig. 30 ist ein Diagramm zur Beschreibung der Opera­ tionsweise des Eingabe/Ausgabe(I/O)-Abschnitts und des Semaphor-Registers.
Detailbeschreibung der Erfindung
Beschrieben werden eine Einrichtung und ein Verfahren zu Kom­ munikations-, Erfassungs-, Meß- und Steuerzwecken in einem Netzwerk. Soweit das Netzwerk mehrere intelligente Zellen enthält, sind die Zellen generell als programmierbare Ein­ chip-Fernwirk-, Erfassungs-, Meß- und Kommunikationsgeräte ausgebildet, die bei Zusammenschluß (über verschiedene Medien) mit anderen Zellen verteilte Erfassungs-, Kommunikations-, Steuer- und Netzwerkskonfigurationsintelligenz, Konfiguration und Steuerung haben. Das System weist ein Netzwerk von Zellen auf, das in einer nach den Kommunikationsbedürfnissen ausge­ richteten Hierarchie organisiert ist. Zellen werden in Ar­ beits"gruppen" unabhängig von der Netzwerkhierarchie organi­ siert. Zellengruppen dienen generell der Ausführung einer Gruppenfunktion. Diese Funktion wird durch Zuordnung von Auf­ gaben zu den Zellen innerhalb der Gruppen erfüllt. Zellen kommunizieren, steuern und tasten Informationen ab. Generell hat jede Zelle eine besondere Identifizierungsnummer und führt Informationsverarbeitungsaufgaben, wie: bidirektionelle Kom­ munikationsprotokolle, Eingabe/Ausgabe-Operationen, Paketver­ arbeitung und analoge und digitale Meß- und Steuerfunktionen aus. Generell hat das aus den Zellen aufgebaute System die Charakteristik eines Speichernetzwerks und konfiguriert Infor­ mation, die über das System verteilt sind; und vermittelt automatisch Nachrichten unter den Zellen. Jedes System hat auch eine besondere Identifizierung (ID), die bei dem derzeit bevorzugten Ausführungsbeispiel 48 Bits ist. Sie enthält viel­ seitige programmierbare Eingabe/Ausgabe(I/O)-Schaltungen mit digitaler vielseitiger Programmierung zur Konfigurierung von Zellen für die speziellen Meß-, Erfassungs-, Kommunikations-, Steuer- und I/O-, analoge I/O-, Kommunikations-I/O- und Kom­ munikations-Bitfrequenzabtastungs-Operationen.
In der folgenden Beschreibung sind zahlreiche spezielle Ein­ zelheiten, wie spezielle Frequenzen usw. angegeben, um das Verständnis für die vorliegende Erfindung zu vertiefen. Es ist jedoch für den Fachmann klar, daß diese Details zur Realisie­ rung der Erfindung nicht erforderlich sind. In anderen Fällen sind bekannte Schaltungen, Verfahren u. dgl. nicht im einzelnen angegeben, um die Erfindung nicht mit unnötigem Detail zu belasten.
I. ÜBERBLICK ÜBER EINE ANWENDUNG DER ERFINDUNG
Bevor die Erfindung im einzelnen beschrieben wird, hilft eine typische Anwendung zum Verständnis der Einzelheiten. In Fig. 1 ist eine einfache typische Anwendung auf der Basis der Verwen­ dung der Erfindung in einem Heim gezeigt. In Fig. 1 dient der Schalter 22 mit Unterstützung der Erfindung zur Steuerung einer Lichtquelle 23.
Die Anordnung 20 weist eine Zelle 27 auf, die mit dem Schalter 22 verbunden ist. Die Zelle ist außerdem mit einem Sende­ empfänger 29 verbunden, der Daten auf die Leitungen 24 und 25 gibt. Betrieben werden der Sendeempfänger und die Zelle aus einer Stromversorgung 30, die Strom über die Leitungen 24 und 25 erhält. Bei diesem Beispiel sind die Leitungen 24 und 25 übliche Haushaltsleitungen (z. B. 110 V Wechselstrom), während die Stromversorgung 30 eine 5 V-Gleichstromquelle ist. Die Zelle 27 ist vorzugsweise als integrierte Schaltung ausgebil­ det, deren Aufbau unter Bezugnahme auf Fig. 10 genauer be­ schrieben werden wird. Der Sendeempfänger 29 kann eines von vielen bekannten Bauelementen sein, die digitale Daten empfan­ gen und senden können; in der derzeitigen Betrachtung führt er keine Datenverarbeitung an gesendeten Daten durch. Die Gesamt­ anordnung 20 kann genügend klein ausgebildet sein, so daß sie in eine übliche elektrische Wanddose paßt die normalerweise einen elektrischen Schalter enthält.
Die Anordnung 21 kann andererseits genügend klein ausgebildet sein, daß sie in eine typische elektrische Auslaßdose paßt, und sie weist eine Stromversorgung 31 und einen Sendeempfänger 33 auf, die der Stromversorgung 30 bzw. dem Sendeempfänger 29 identisch ausgebildet sein können. Eine Zelle 28 ist mit dem Sendeempfänger 30 und der Stromversorgung 29 sowie mit einem solenoidbetätigten Leistungsschalter 32 verbunden. Die Zelle 28 kann im Aufbau identisch mit der Zelle 27 sein, ausgenommen ihrer Programmierung und einer Identifizierungsnummer, die weiter unten beschrieben werden. Ein Ausgangssignal der Zelle 28 steuert den Solenoid 32 zur Betätigung des Leistungsschal­ ters, der wiederum mit der Lichtquelle 23 über Stromleitungen 34 und 35 verbunden ist. Wie zu sehen sein wird, kann die Zelle 28 ein digitales oder analoges Ausgangssignal liefern, das einen in der Zeichnung nicht gezeigten Rheostaten o. dgl. und damit das Dimmen der Lichtquelle 23 steuern kann.
Die Unterbrechung 26 in den Versorgungsleitungen 24 und 25 soll anzeigen, daß die Versorgungsleitungen 24 und 25 nicht notwendigerweise in derselben Schaltung wie die Versorgungs­ leitungen 34 oder 35 eingebunden sind. Wie zu sehen sein wird, braucht der Sendeempfänger 29 nicht notwendigerweise direkt mit dem Sendeempfänger 33 kommunizieren, sondern zwischen den Sendeempfängern kann eine Kopplung über eine andere Zelle und einen anderen Sendeempfänger bestehen, der zwischen den Sy­ stemen 20 und 21 übertragene Pakete wiederholt.
In Fig. 1 kommunizieren die Sendeempfänger 29 und 33 über Stromversorgungsleitungen. Die Sendeempfänger können mit ein­ ander in zahlreicher verschiedener Weise uns über zahlreiche Medien und mit jeder Baudrate kommunizieren. Sie können bei­ spielsweise jeweils Hochfrequenz- oder Mikrowellensignale über Antennen senden und empfangen. Die Sendeempfänger könnten auch an Nachrichtenleitungen, beispielsweise an gewöhnliche Litzen oder Faseroptikkabel angebunden sein und daher unabhängig von den Stromversorgungsleitungen miteinander in Verbindung tre­ ten. Andere bekannte Kommunikationsmedien können zur Verbin­ dung der Sendeempfänger ebenfalls eingesetzt werden, so bei­ spielsweise Infrarot- oder Ultraschallübertragungen. Typische Sendegeschwindigkeiten liegen bei 10 k Bits pro Sekunde (KBPS) für Versorgungsleitungen. Wesentlich höhere Sendefrequenzen bzw. -geschwindigkeiten sind bei Hochfrequenz-, Infrarot-, verdrillten Leitungspaaren, faseroptischen Verbindungen und anderen Medien möglich.
Die Zelle 27 erfaßt das öffnen oder Schließen des Schalters 22 und bereitet dann ein Paket vor, das eine den Zustand des Schalters 22 auslösende Nachricht enthält; das Paket wird über den Sendeempfänger 29, Leitungen 24 und 25, Leitungen 34 und 35 und den Sendeempfänger 33 zur Zelle 28 übertragen. Die Zelle 28 bestätigt die Nachricht durch Zurückschicken eines Pakets zur Zelle 27 und handelt auch nach der empfangenen Nachricht durch Ein- oder Ausschalten des Lichts 23 unter Betätigung des solenoidgesteuerten Leistungsschalters 32.
Jede Zelle hat eine spezielle 48-Bit-Identifizierungsnummer (ID-Nummer), die manchmal als Zeilenadresse bezeichnet wird. Bei dem beschriebenen Ausführungsbeispiel erhält jede Zelle bereits als Teil des Herstellungsprozesses diese permanente und spezielle ID-Nummer. (Sie kann nach der Herstellung nicht mehr geändert werden). Wie noch verständlich werden wird, hat bei 2⁴⁸ möglichen ID-Nummern jede Zelle ihre besondere ID-Nummer, und zwar unabhängig davon, wie groß ein Netzwerk aus praktischen Gründen wird oder wieviele Netzwerke miteinander verknüpft sind. Das Gruppiergerät greift dann auf die einzel­ nen Zellen ID′s zu und weist jeder Zelle eine System-ID zu. Außerdem konfiguriert das Gruppenbildungsgerät die Zellen in Gruppen zur Durchführung von gruppenbezogenen Funktionen.
Für die Darstellung der Fig. 1 ist Zelle 27 als "A" bezeich­ net, um anzugeben, daß ihre primäre Funktion im "Annoncieren" liegt, d. h. in der Übertragung des Zustandes des Schalters 22 an die Netzwerk-Kommunikationsleitungen 24 und 25 und 34 und 35. Andererseits ist Zeile 28 mit dem Buchstaben "L" bezeich­ net, da ihre primäre Funktion bei der Anordnung gemäß Fig. 1 im "Hören" ("Listening") auf das Netzwerk und insbesondere im Hören auf Nachrichten von Zelle 27 liegt. In nachfolgenden Figuren werden die "A" und "L" Bezeichnungen insbesondere in Verbindung mit einer Gruppenbildung mehrerer Zellen zum An­ geben einer Annoncieranordnung, wie die Anordnung 20 und einer Hörer bzw. Empfängeranordnung, wie die Anordnung 21 verwendet. Zum Zwecke der Erörterung sind die Zellen selbst manchmal als sendende oder empfangende Daten ohne Bezugnahme auf Sende­ empfänger bezeichnet. (In einigen Fällen können die Sende­ empfänger als einfaches passives Netzwerk oder einfache Drähte ausgebildet sein, welche die Eingangs/Ausgangs-Signale einer Zelle auf eine Leitung koppeln. Wie zu sehen sein wird, kann der I/O-Abschnitt der Zellen Ausgangssignale liefern, welche ein verdrilltes Leitungspaar o. dgl. zu treiben geeignet sind. Daher können die Zellen selbst als Sendeempfänger für einige Medien dienen).
Die Zellen 27 und 28 sind, wie nachfolgend noch beschrieben werden wird, Prozessoren mit Multiprozessorattributen. Sie können vor oder nach der Installation zur Durchführung ihrer gewünschten Funktionen, beispielsweise als Annoncierer oder Hörer (Empfänger) und zum Gruppieren von Kombinationen pro­ grammiert werden.
II. Netzwerkorganisation und Definitionen A. Definitionen Zelle
Eine Zelle ist ein intelligentes, programmierbares Element oder eine Gruppe von Elementen zum Fernwirken, Messen bzw. Erfassen und/oder zu kommunikationstechnischen Zwecken; sie bildet bei Verbindung mit anderen ähnlichen Elementen ein Kommunikations-, Steuer- und Meßnetzwerk oder -system mit verteilter Intelligenz.
Annoncierer
Ein Annoncierer ist eine Quelle von Gruppennachrichten.
Hörer (Listener)
Ein Hörer ist eine Senke von Gruppennachrichten. (In einigen Fällen kann ein Annoncierer Zustands­ informationen von einem Hörer anfordern.)
Wiederholer
Ein Wiederholer ist eine Zelle, die zusätzlich zu anderen Funktionen Pakete aus einem Medium liest und sie neu sendet.
Gruppe
Ein Satz von Zellen, die für eine gemeinsame Funk­ tion zusammenarbeiten (beispielsweise ein Schalter, der eine Gruppe von Lichtquellen steuert) wird als "Gruppe" bezeichnet.
In Fig. 2 hat die Gruppe 37 einen Annoncierer 37a, Hörer 37b und 37c und ein Hörer 40. Fig. 2 zeigt, daß eine Einzelzelle (Zelle 40) einen Hörer in zwei Gruppen sein kann. Wenn Annon­ cierer 37a eine Lichtschaltfunktion hat, kann er Lichtquellen durch Zellen 37b, 37c und 40 steuern. In ähnlicher Weise kann ein einem Annoncierer 38a zugeordneter Schalter Lichtquellen über Zellen 37c, 37b und 40 steuern.
In Fig. 3 umfaßt eine Gruppe 42 Annoncierer 44, 45 und Hörer 46 und 47. Die Gruppe 43 teilt die Zelle 44 mit der Gruppe 42; Zelle 44 ist jedoch für die Gruppe 43 ein Hörer. Die Gruppe 41 teilt die Zelle 47 mit der Gruppe 42; Zelle 47 ist jedoch für die Gruppe 41 ein Annoncierer und kann beispielsweise den Hörer 48 der Gruppe 41 ankündigen. Zelle 47 arbeitet auch für die Gruppe 42 als Hörer. Eine Einzelzelle kann, wie gezeigt wurde, für eine Gruppe ein Annoncierer und für eine andere Gruppe ein Hörer sein (Zellen werden zur Durchführung dieser Funktionen programmiert, wie weiter unten noch erläutert wer­ den wird). Derzeit wird davon ausgegangen, daß eine Zelle nicht für mehr als eine Gruppe annoncieren kann.
(Bei dem derzeit bevorzugten Ausführungsbeispiel hat jede Zelle drei Eingangs/Ausgangsleitungspaare und eine Auswahllei­ tung. Jedes Paar teilt sich in eine gemeinsame Gruppe von Resourcen bzw. Betriebsmitteln. Die Leitungen können für eini­ ge Funktionen unabhängig benutzt werden, solange dies nicht in Widerspruch steht zu den erforderlichen gemeinsamen Resourcen. Für andere Funktionen können die Leitungen paarweise verwendet werden. In diesem Beispiel sind zwei Leitungen von der Zelle 27 zu einem Lichtschalter gekoppelt, und ein anderes Paar wird zu Kommunikationszwecken auf dem Annoncierer, der Zelle 27, verwendet).
Unterkanal
In Fig. 4 ist eine erste Anzahl von Zellen ge­ zeigt, die über ein gemeinsames Medium, beispielsweise ein verdrilltes Leiterpaar 50 miteinander in Verbindung stehen (Zellen sind als "C", Annoncierer als "A" und Hörer als "L" gezeigt). Diese Anzahl (z. B. Zellen in Zuordnung zu dem ver­ drillten Leitungspaar 50) wird als ein Unterkanal definiert, d. h. eine Gruppe von Zellen, die alle über dasselbe Medium direkt miteinander in Verbindung stehen. Eine Sendung eines Gliedes des Unterkanals, beispielsweise der Zelle 49, wird von allen Gliedern des Unterkanals über das verdrillte Leitungs­ paar gehört.
Kanal
Ein Kanal weist zwei oder mehr Unterkanäle auf, wobei die Zellen unter Verwendung desselben Mediums kommunizieren. In Fig. 4 ist eine andere Anzahl von Zellen gezeigt, die mit dem verdrillten Leitungspaar 52 gekoppelt sind und einen an­ deren Unterkanal bilden. Es sei angenommen, daß die Zellen 56 und 57 über ein verdrilltes Leitungspaar 72 miteinander in Verbindung stehen. Sie bilden wiederum einen anderen Unter­ kanal. Die den verdrillten Paaren 50, 52 und 72 zugeordneten Zellen bilden einen einzigen Kanal. Es ist möglich, daß die verdrillten Paare 50, 52 und 72 aus einem durchlaufenden ver­ drillten Leitungspaar bestehen, wobei ein Unterkanal 50 soweit entfernt von dem zweiten Unterkanal 52 ist, daß die einzigen Verbindungen zwischen den Unterkanälen über den Teil des ver­ drillten Leitungspaars 52 bestehen, das zwischen den Zellen 56 und 57 verläuft. In diesem Falle sind die Zellen 56 und 57 als "Wiederholer" ausgewiesen, zusätzlich zu ihrer beliebigen anderen Funktion, die sie noch zu erfüllen haben können (z. B. Annoncierer oder Hörer).
In Fig. 4 ist eine Gruppe 55 dargestellt, die einen Annoncie­ rer und einen Hörer in zwei unterschiedlichen Unterkanälen enthält. Eine andere Gruppe 75 ist dargestellt, die einen Annoncierer in einem Unterkanal 51 und einen Hörer in dem Unterkanal 52 enthält, wobei die Unterkanäle nicht zum glei­ chen Kanal gehören, da sie unterschiedliche Medien benutzen.
Gateway
Ein Gateway liest Pakete aus zwei unterschiedlichen Medien und sendet sie neu. Eine Zelle kann ein Gateway sein. Kommunikationen zwischen Kanälen finden über ein Gateway 54 statt.
In Fig. 4 ist ein zusätzlicher Unterkanal, der die Zelle 58 enthält, mit einem anderen Medium 51, beispielsweise mit einer gemeinsamen Netzleitung verbunden. Die Zelle 58 ist mit dem Kanal-Gateway 54 verbunden, das seinerseits mit dem verdrill­ ten Leitungspaar 52 in Verbindung steht. Das Gateway 54 führt nicht notwendigerweise eine Annoncier- oder Hörerfunktion aus, sondern erfüllt bei dem beschriebenen Ausführungsbeispiel lediglich die Funktion eines Kanalgateways zur Herstellung einer Verbindung zwischen zwei verschiedenen Medien.
Unternetzwerk
Ein Unternetzwerk enthält alle Zellen mit derselben Systemidentifizierung (System ID). Beispielsweise können alle Zellen in einem Einfamilienhaus dieselbe ID haben. Daher können die Kanäle gemäß Fig. 4 Bestandteil desselben Unternetzwerks sein, da sie sich in dasselbe ID teilen.
Vollnetzwerk
Ein Vollnetzwerk kann mehrere Unternetzwerke mit jeweils unterschiedlichen System-ID′s aufweisen; ein Kom­ munikationsprozessor dient zum Austausch von Paketen zwischen den Unternetzwerken. Der Kommunikationsprozessor übersetzt Pakete unter Änderung ihres System-ID, Adressierung und andere Informationen. Zwei Fabrikgebäude können jeweils ihre eigenen System-ID′s haben; jedoch dient eine Steuerung zwischen den beiden zur Änderung von System-ID′s. (Das Wort "Netzwerk" wird hier in allgemeinerem Sinne verwendet und bezieht sich daher auch auf andere als ein "Vollnetzwerk" in der vorstehenden Definition).
Andere weiter unten benutzte Ausdrücke sind:
Sondierpaket
Ein Paket, welches Leitweginformationen bei seiner Bewegung durch das Netzwerk sammelt.
Gruppierungsgerät
Ein Gerät, welches die Feststellung von Routen unter Zellen steuert, Zellen den Gruppen zuweist und Gruppengliedern Funktionen zuordnet.
Konkurrenz
Der Zustand der dann existiert, wenn zwei oder mehr Zellen auf demselben Unterkanal gleichzeitig zu senden versuchen und ihre Signale kollidieren.
B. Gruppenbildung 1. Zellenzuordnung zu einer Gruppe durch eine Nachinstalla­ tionsgruppiereinrichtung
Es sei angenommen, daß die in Fig. 5 gezeigte Mehrzahl von Zellen so angeschlossen sind, daß sie über die Hausnetzleitun­ gen in Verbindung stehen und Bestandteil desselben Kanals sind. Es sei ferner angenommen, daß eine Zelle, Annoncierer 60, in eine Gruppe mit dem Hörer 65 gebracht werden soll. Die Leitungen zwischen den Zellen, wie die Leitung 59, geben an, welche der Zellen direkt miteinander in Verbindung treten können; beispielsweise können der Annoncierer 60 und die Zelle 61 miteinander kommunizieren. (Zellen 61, 62, 63, 64 und 66 können selbstverständlich Annoncierer oder Hörer in anderen Gruppen sein; zum Zwecke der Erläuterung sind sie jedoch in Fig. 5 als "C" gezeigt.) Da Annoncierer 60 und Zellen 61, 62 und 63 alle miteinander in Verbindung stehen, befinden sie sich auf demselben Unterkanal. In ähnlicher Weise bilden Zel­ len 62, 64, 65 und 66 einen anderen Unterkanal. (Es gibt wei­ tere Unterkanäle in der Konfiguration gemäß Fig. 5.) Wichtig ist jedoch, daß der Annoncierer 60 und der Hörer 65 in unter­ schiedlichen Unterkanälen des Kanals gemäß Fig. 5 sind, und daß es verschiedene Wege gibt, über die eine Nachricht vom Annoncierer 60 zum Hörer 65 geleitet werden kann, so bei­ spielsweise über die Zellen 61 und 64 oder über die Zellen 62 und 64 usw.
Obwohl alle Zellen sich auf demselben Netzsystem eines Hauses befinden, ist zu beachten, daß sie nicht direkt miteinander zu kommunizieren brauchen. So kann beispielsweise der Annoncierer 60 in einem Schaltkreis liegen, der nur mit dem Hörer 65 über lange Leitungswege, die über die Länge eines Hauses laufen, und einen niederohmigen Bustreiber einer Unterbrechertafel gekoppelt sein. Die Hochfrequenznachrichten können über diesen Weg ausreichend gedämpft sein, um direkte Verbindungen zwi­ schen den Zellen zu verhindern, obwohl letztere physikalisch eng zusammen sind.
Für die folgende Beschreibung wird angenommen, daß jede der Zellen ohne Störung des Sendebetriebs anderer Zellen senden kann. Dies bedeutet, daß Nachrichten einander nicht stören. Der Fall, bei dem eine gewisse Konkurrenz auftritt, wird unter dem Protokollabschnitt dieser Anmeldung behandelt.
Bei einem Ausführungsbeispiel wird die aus Annoncierer 60 und Hörer 65 bestehende Gruppe unter Verwendung der in Fig. 28 gezeigten Gruppiereinrichtung gebildet. Zu beachten ist, daß vor der Bildung dieser Gruppe der Annoncierer 60 und der Hörer 65 gewöhnliche Zellen ohne Bezeichnung als Annoncierer oder Hörer sind. Jede Gruppiereinrichtung kann eine besondere 48-Bit-System-ID zum Zeitpunkt der Herstellung erhalten (bei dem beschriebenen Beispiel wird eine 48-Bit-Zahl verwendet). Bei dem bevorzugten Ausführungsbeispiel wird eine Zelle mit jeder Gruppiereinrichtung einbezogen. Die Zellen-ID wird die System-ID. Dies gewährleistet, daß jedes System eine spezielle Sy­ stem-ID hat. Beispielsweise hat jedes Haus seine eigene "Grup­ pier"-Einrichtung und daher seine eigene System-ID für die im Haus benutzten Unternetzwerke. Diese System-ID wird in Zellen­ paketen für das Unternetzwerk benutzt. Bei diesem Beispiel stehen der Gruppiereinrichtung die Zellen-ID′s der Zellen 60 und 65 zur Verfügung. (Verschiedene Methoden zur Gewinnung von Zellen-ID′s werden weiter unten beschrieben.)
Die Gruppiereinrichtung wird dadurch mit Zelle 60 verbunden, daß sie durch eines der drei Paare von Eingabe/Ausgabe(IO)-Lei­ tungen der Zelle (oder den Auswahlpin) kommuniziert, und die Gruppiereinrichtung liest die 48-Bit-ID-Nummer der Zelle 60. (Verschiedene Methoden der Bestimmung der Zellen-ID′s werden im nächsten Abschnitt beschrieben.) Die Gruppierein­ richtung erzeugt als nächstes eine beliebige Bit-Binärzahl, die bei dem beschriebenen Ausführungsbeispiel 10 Bits enthält. Diese Zahl oder Nummer dient als eine Gruppenidentifizierungs­ nummer (auch als Gruppenadresse bezeichnet) für die den Annon­ cierer 60 und den Hörer 65 enthaltende Gruppe. Die Gruppier­ einrichtung überprüft diese Nummer gegenüber anderen Gruppen-ID′s, welche zuvor zugewiesen wurden, um festzustellen, ob die Gruppen-ID bereits zuvor belegt worden ist. Wenn sie be­ reits belegt worden ist, erzeugt sie eine andere Nummer. (Eine einzelne Gruppiereinrichtung verfolgt beispielsweise alle in einem Einzelhaus zugeordneten Gruppen-ID′s.) Die Gruppierein­ richtung programmiert die Zelle 60 und bezeichnet sie als Annoncierer.
Die Gruppiereinrichtung kann den Annoncierer 60 dazu bringen, die Gruppennummer in einem speziellen Paket zu senden, wodurch alle Zellen im Netzwerk aufgerufen werden, die Nachricht zu bestätigen, wenn sie als Glied dieser Gruppe bezeichnet worden sind. Dies ist eine andere Art zum Verifizieren, daß die Grup­ pen-Idee nicht benutzt worden ist.
Die Gruppiereinrichtung bestimmt jetzt die ID-Nummer der Zelle 65. Dies kann durch Verbinden der Gruppiereinrichtung direkt mit der Zelle 65 sogar vor der Installation der Zelle oder durch andere, im nächsten Abschnitt erörterte Methoden gesche­ hen. (Einer Zelle und einer Gruppe können ASCII-Namen zugeord­ net werden, beispielsweise "Eingangslicht" (Zellenname) und "Außenlichter" (Gruppenname.) Dies ermöglicht die Auswahl von Zellen-ID′s oder Gruppen-ID′s durch Zugriff auf den ASCII-Na­ men.
Jetzt veranlaßt die Gruppiereinrichtung den Annoncierer 60 zum Übertragen eines Sondierpakets. Das Sondierpaket enthält die ID der Zelle 65. Das Paket weist alle das Paket empfangenden Zellen zu seiner Wiederholung und die Zelle 65 zur Paketbestä­ tigung an. Jede das Sondierpaket empfangende Zelle wiederholt es und addiert zu dem wiederholten Paket ihre eigene ID-Num­ mer. Jede Zelle wiederholt das Paket nur einmal (der Mechanis­ mus, der die Wiederholung eines Sondierpakets mehr als einmal verhindert, wird später beschrieben).
Die Zelle 65 erhält das Sondierpaket über mehrere Routen bzw. Wege, einschließlich denjenigen, die im Diagramm als direkte­ ste Wege (über Zelle 62) gezeigt sind und den längeren Wegen, beispielsweise über die Zellen 61 und 64. Es sei angenommen, daß das erste Sondierpaket, das an der Zelle 65 ankommen soll, die direkteste Route und damit die bevorzugte Route genommen hat. (Im Beispiel ist dies die Route über Zelle 62.) Zelle 65 erhält ein Paket, welches anzeigt, daß das Sondierpaket von der Zelle 60 gesendet worden ist, wiederholt von der Zelle 62 und für die Zelle 65 vorgesehen wurde. Die anderen Sondier­ pakete, die von der Zelle 65 nach Einlauf des ersten Pakets empfangen werden, werden von der Zelle 65 verworfen.
Die Zelle 65 überträgt jetzt eine Bestätigung zurück zum An­ noncierer 60. Dieses Paket beinhaltet die Route des Sondier­ pakets (z. B. wiederholt durch die Zelle 62). Das Paket weist die Zelle 62 an, das Paket zur Bestätigung seines Empfangs zu wiederholen.
Nachdem der Annoncierer 60 das Bestätigungspaket für die Zelle 65 erhalten hat, stellt er fest, daß die Zelle 62 ein Wiederholer sein muß. Das Gruppiergerät veranlaßt den Annoncierer 60, ein Wiederholer-Zuweisungspaket zu senden, das die spezielle ID-Nummer der Zelle 62, die Gruppennummer und eine Nachricht enthält, die die Zelle 62 davon informiert, daß ihr eine Wiederholerfunktion für die Gruppe zugewiesen worden ist. Dies veranlaßt die Zelle 62, alle diejenigen Pakete für die Gruppe zu wiederholen, welche die Annonciererzelle 60 sowie die Zelle 65 enthält. Eine andere Nachricht wird vom Annoncierer 60 unter Steuerung der Gruppiereinrichtung und wiederholt von der Zelle 62 gesendet, welche die Zelle 65 als Hörer bezeichnet und sie veranlaßt, auf Nachrichten für die Gruppe zu reagieren. (Zelle 65 wird ein Gruppenmitglied.) Die Gruppiereinrichtung weist Mitgliedern eine Mitgliedsnummer zu, die von Mitgliedszellen gespeichert wird.
Die oben beschriebene Gruppenbildung ist in Fig. 8 durch die Schritte oder Blöcke 68 bis 72 veranschaulicht. Block 68 stellt das Senden des Sondierpakets dar (z. B. Zelle 60 sendet das anfängliche Sondierpaket an alle Zellen). Das Paket enthält die Adresse einer Zielzelle. Während das Paket das Netzwerk durchläuft, sammelt es die ID-Nummern der das Paket wiederholenden Zellen (Block 69). Block 70 zeigt die Bestätigung (Antwort) auf das Sondierpaket aus der Zielzelle (z. B. Zelle 65). Dieses Paket schickt die ID-Nummern der in dem zuerst empfangenen Sondierpaket enthaltenen Wiederholer zurück. Die Wiederholerzuweisungspakete werden vom Annoncierer ausgesendet und veranlassen jeden Wiederholer, Pakete für die Gruppe neu zu senden. Dies ist durch Block 71 dargestellt. Schließlich wird entsprechend Darstellung in Block 72 die Zielzelle, beispielsweise Zelle 65, als Hörer bezeichnet.
2. Zellenzuweisung zu einer Gruppe durch eine Vorinstalla­ tionsgruppiereinrichtung
Es kann einige Arten von Vorinstallations-Gruppiereinrichtungen geben, siehe z. B. Fig. 28, in der eine brauchbare Einrichtung gezeigt ist. Eine Art ist eine Einrichtung, welche herstellerseitig zur Vorauszuweisung von Zellen zu Gruppen verwendet wird. Eine andere Art von Vorinstallations-Gruppiereinrichtungen ist ein solche, welche ein Händler oder ein anderer Zellenvertreiber zum Zuweisen von Zellen auf Gruppen vor der Installation verwenden kann.
Eine Gruppiereinrichtung weist eine Zelle einer Gruppe sowie die Zellenfunktionen für diese Gruppe zu. Die Gruppiereinrichtung kann außerdem einer Zelle eine System-ID zuordnen. Die System-ID, die von einer Vorinstallations-Gruppiereinrichtung zugeordnet worden ist, ist nicht notwendigerweise eine spezielle System-ID. (Nachinstallations-Gruppiereinrichtungen weisen eine spezielle System-ID jedem System zu.)
Ein Verfahren, das von Vorinstallations-Gruppiereinrichtungen zur Erzeugung einer System-ID verwendet werden kann, besteht in der Wahl einer System-ID aus einem Bereich der 48-Bit-Adreß- und System-ID-Nummern, die zur Verwendung als Vorinstallations-System-ID′s beiseite gelegt worden sind. Gerade weil die Zellen-ID′s im Bereich von 1-1023 zur Verwendung als Gruppen-ID′s und Gruppenadressen beiseite gelegt worden sind, können die Zellen-ID′s im Bereich von 1024-2047 zur Verwendung als Vorinstallations-System-ID′s beiseite gelegt werden.
Es ist erwünscht, daß Gruppiereinrichtungen und andere Netzwerk-Steuereinrichtungen in der Lage sind, Vorinstallations-System-ID′s im Gegensatz zu Nachinstallations-System-ID′s zu identifizieren. Da Nachinstallations-System-ID′s durch Kopieren einer Zellen-ID erzeugt werden, sollten Zellen ID′s nicht in dem für Vorinstallations-System-ID′s beiseitegelegten Bereich zugewiesen werden. Daher werden ID-Nummern in diesem Bereich nicht Zellen als Zellen-ID′s zugeordnet.
Zellen können in Sätzen verkauft werden, die herstellerseitig im voraus einer Gruppe zugeordnet worden sind. Die Art der Vorinstallations-Gruppiereinrichtung, die herstellerseitig verwendet wird, weist Zellen dadurch Gruppen zu, daß die entsprechenden Codes in den nichtflüchtigen Speicher der Zellen geschrieben werden. Der Benutzer kann einen solchen Zellensatz installieren, und er wird ohne Zuordnung durch eine Nachinstallations-Gruppiereinrichtung arbeiten, vorausgesetzt, daß der Zellensatz über einen einzigen Unterkanal kommunizieren kann.
Ein Benutzer kann Zellen einer Gruppe zum Zeitpunkt des Verkaufs oder zu irgendeinem anderen Zeitpunkt vor der Installation zuordnen. Anders als bei dem zuvor beschriebenen Fall sind solche Zellen herstellerseitig keinen Gruppen zugeordnet, und sie werden Zellen ohne Zuordnung genannt. Zellen ohne Zuordnung haben alle dieselbe System-ID, eine System-ID-Nummer, die zur Verwendung ausschließlich durch die Zellen ohne Zuordnung beiseitegelegt worden ist.
Der Benutzer ordnet die Zellen einer Gruppe unter Verwendung einer Vorinstallations-Gruppiereinrichtung zu, die von der herstellerseitig benutzten Vorinstallations-Gruppiereinrichtung verschieden sein kann.
Typischerweise arbeiten solche Gruppiereinrichtungen an einer Zelle gleichzeitig. Der Bediener weist die Gruppiereinrichtung an, eine neue Gruppen-ID und System-ID zu erzeugen, und danach wird jede Zelle ihrerseits mit der Einrichtung verbunden. Der Operator weist die Gruppiereinrichtung an, eine Zelle einer Gruppe zuzuordnen, während die Zelle mit der Gruppiereinrichtung verbunden ist. Die Gruppiereinrichtung ordnet Zellen dieselbe Gruppen-ID und System-ID zu, bis sie vom Operator angewiesen wird, eine neue Gruppen-ID und System-ID zu erzeugen.
Der Benutzer kann einen solchen Satz von Zellen installieren, und er wird ohne Verwendung einer Nachinstallations-Gruppiereinrichtung arbeiten, vorausgesetzt, daß der Zellensatz über einen einzigen Unterkanal kommunizieren kann.
3. Gruppierung von Zellen ohne Zuordnung und Selbstzuordnung nach der Installation
Zellen ohne Zuordnung können eine Gruppe erzeugen und sich selbst einer Gruppe nach der Installation in der folgenden Weise zuordnen.
Die erste Annoncierzelle, die über ihren Sensoreingang (z. B. Lichtschalter) stimuliert wird, steuert den Gruppenbildungsprozeß. Sie wählt eine System-ID-Nummer beliebig aus dem für Vorinstallations-Gruppiereinrichtungen beiseite gelegten Bereich von System-ID-Nummern. Sie wählt frei eine Gruppen-ID-Nummer. Sie sendet dann die Gruppen-ID-Nummer in einem Paket, welches eine Antwort von allen Zellen anfordert, die Mitglieder dieser Gruppe sind. Wenn die sendende Zelle derartige Antworten erhält, wählt sie wiederum frei eine andere Gruppen-ID. Die Zelle setzt diesen Prozeß der Auswahl einer beliebigen Gruppen-ID und der Prüfung ihrer Belegung solange fort, bis sie eine Gruppen-ID findet, die in dem System, in dem sie arbeitet, unbenutzt ist.
Die herstellerseitig programmierte Vorgabekonfigurationsinformation zu einer Zelle ohne Zuordnung identifiziert deren Funktion entweder als Hörer oder als Annoncierer. Wenn die unzugeordnete Zelle ein Annoncierer ist, wartet sie auf eine Stimulation ihres Sensoreingangs, und bei Stimulation sendet die Zelle ein an eine Gruppe adressiertes Paket.
Wenn eine Zelle ohne Zuweisung ein Hörer ist, hört sie nach der Betriebsaufnahme auf ein Paket. Die Zelle nimmt die Gruppen-ID aus dem zuerst von ihr empfangenen Paket auf und ordnet sich selbst dieser Gruppe zu. Die Zelle sendet danach eine Antwort an die Annonciererzelle. Diese Antwort ist keine Bestätigung auf ein Paket; sie ist ein Paket, das die Zelle als Hörer in der Gruppe identifiziert, und dieses Paket muß vom Annoncierer bestätigt werden. Dies stellt sicher, daß alle Hörer-Identifikationspakete beim Annoncierer ankommen, selbst dann, wenn Konkurrenz und Kollisionen im Prozeß bestehen.
Die Zelle, welche die Gruppenannoncierung übertragen hat, baut eine Liste von Gruppenmitgliedern auf, wenn die Antworten einlaufen. Sie sendet danach ein Paket an jeden Hörer und weist dem Hörer eine Gruppenmitgliedsnummer zu.
4. Unzugeordnete Zellen, welche zuvor existierende Gruppen nach der Installation treffen
Unzugeordnete Zellen können zu existierenden Systemen addiert und einer Gruppe zugeordnet werden, und zwar ähnlich der oben im Abschnitt 3 diskutierten Methode. Ein Hörer verbindet sich mit dem System und einer Gruppe nach demselben Verfahren, wie im Abschnitt 3 erörtert wurde.
In dem obigen Beispiel wartet der Annoncierer auf seine Stimulation über seinen Sensoreingang. Ein Annoncierer ohne Zuweisung wartet auf seine erste Sensor-Eingangsstimulation oder sein erstes empfangenes Paket. Von diesen beiden Ereignissen bestimmt das zuerst auftretende Ereignis die nachfolgenden Aktionen der Annonciererzelle.
Wenn die Zelle zuerst stimuliert wird, steuert sie einen Gruppenbildungsprozeß in der im obigen Beispiel beschriebenen Weise. Wenn die Annonciererzelle zuerst ein Gruppenpaket erhält, verbindet sie sich mit dieser Gruppe als Annoncierer. Sie sendet dann ein Paket an den Konfigurationsinformation über die Gruppe anfordernden Gruppenannoncierer (Gruppengröße, Anzahl von Annoncierern usw.), und die Zuordnung einer Gruppenmitgliedsnummer.
C. Verfahren zum Identifizieren einer Zelle für die Gruppierung
Damit eine Gruppiereinrichtung die zur Bildung einer Gruppe oder zum Hinzufügen einer Zelle zu einer Gruppe notwendigen Schritte durchläuft, muß sie die ID′s der der Gruppe hinzuzufügenden Zellen kennen. Die Gruppiereinrichtung benutzt dann diese Zellen-ID′s zum Adressieren von Befehlen an die Zelle während des Gruppiervorgangs. Die Verfahren, die ein Benutzer mit einer Gruppiereinrichtung zur Gewinnung der Zellen-ID′s verwenden kann, sind unten aufgelistet. Zu beachten ist, daß die Fähigkeit einer Gruppiereinrichtung oder einer anderen Steuereinrichtung zum Kommunizieren mit einer Zelle in dem folgenden Beispiel durch eventuelle Sicherheitsvorgänge beschränkt sein kann. Die Sicherheitsvorgänge, Beschränkungen an Kommunikationen und Sicherheitsniveaus sind für die Erfindung unkritisch. Bei dem folgenden Beispiel wird angenommen, daß keine Sicherheitsprozeduren vorhanden sind. Im besonderen kann es für eine Gruppiereinrichtung unmöglich sein, mit installierten Zellen zu Kommunizieren, sofern die Gruppiereinrichtung über keinen Systemschlüssel (System-ID und Sprachschlüssel) verfügt.
1. Direkte Verbindung zur Zelle
Die Gruppiereinrichtung kann mit einer I/O-Leitung der Zellenbaueinheit bzw. des Zellengehäuses verbunden sein und danach eine Nachricht zu der ihre ID anfordernden Zelle senden. Eine physikalische Verbindung kann zum Finden einer Zellen-ID entweder vor oder nach Installation der Zelle verwendet werden. Bekannte Mittel können verwendet werden (z. B. eine Sicherung oder ein programmierter Entaktivierungsbefehl), um einem Benutzer die Entaktivierung dieser Funktion in einer installierten Zelle zum Schutz der Sicherheit des Systems zu ermöglichen.
2. Auswahl der Zelle durch Verwendung eines Spezialpins
Der Benutzer kann die Gruppiereinrichtung oder eine andere Auswahleinrichtung zum physikalischen Auswählen der Zelle unter Stimulation eines Zelleneingangspins verwenden, der dieser Auswahlfunktion dient. Die Gruppiereinrichtung kommuniziert mit der Zelle über die normalen Kommunikationskanäle und sendet eine Nachricht, die die Antwort aller gewählten Zellen unter Angabe ihrer ID anfordert. Nur eine Zelle wird ausgewählt, so daß nur diese Zelle auf die Anforderung antwortet. Eine physikalische Auswahl kann zum Auffinden einer Zellen-ID entweder vor oder nach Installation der Zelle verwendet werden. Erneut kann ein Mittel vorgesehen sein, das einem Benutzer zur Entaktivierung dieses Merkmals zum Schutz der Sicherheit des Systems gestattet.
3. Erfragen aller Namen von zuvor gruppierten Zellen
Es sei bei diesem Beispiel angenommen, daß ASCII "Gruppen"- und "Zellen"-Namen zuvor den Zellen zugeordnet worden sind. Für diese Methode fordert die Gruppeneinrichtung alle Zellen in einem System auf, ihre Gruppen- und Zellennamen (ASCIi-Name) anzugeben. Der Benutzer durchläuft die Liste von Gruppennamen unter Verwendung der Gruppeneinrichtung. Der Benutzer wählt den Namen der Gruppe aus, von der angenommen wird, daß sie die Targetzelle enthält. Die Gruppiereinrichtung gibt die Namen aller Zellen wieder, die zu der Gruppe gehören, sowie deren zugeordnete Aufgaben (Annoncierer, Hörer, Wiederholer). Der Benutzer wählt den Namen der Zelle aus, von der angenommen wird, daß sie die Zielzelle ist.
Wenn die gewählte Zelle ein Annoncierer ist, sagt die Gruppiereinrichtung dem Benutzer, den Annoncierer durch Stimulieren seines Eingangs zu aktivieren. Wenn die Zelle beispielsweise an einen Lichtschalter angeschlossen ist, schaltet der Benutzer den Schalter ein und aus. Die Zelle sendet Annoncierpakete an die Gruppe. Die Gruppiereinrichtung hört auf den Kommunikationskanal und stellt die Gruppe und Mitgliedsnummer oder andere Codes des aktivierten Annoncierers fest.
Wenn die gewählte Zelle eine Hörerzelle ist, sendet die Gruppiereinrichtung Pakete an die Zelle (unter Verwendung der Gruppen- und Mitgliedsnummern zur Adressierung) und befiehlt ihr die Umschaltung ihres Ausgangs. Wenn die Zelle beispielsweise ein Licht steuert, so schaltet das Licht ein und aus. Dies ermöglicht dem Benutzer, festzustellen, daß er die richtige Zelle ausgewählt hat.
Die Gruppiereinrichtung sendet ein Paket an die Zielzelle (unter Verwendung von Gruppen- und Mitgliedsnummern zur Adressierung) mit einem Befehl an die Zielzelle zum Zurücksenden ihrer Zellen-ID. Die Gruppiereinrichtung kennt jetzt die Target-ID und kann fortfahren mit dem Gruppenzuordnungsprozeß.
Das Abfragen von Namen dient zum Finden einer Zellen-ID vor oder nach Installation der Zellen.
4. Gruppenstimulierung
Dieses Verfahren findet in einem Netzwerk Verwendung, in wel­ chem Gruppen- und Zellen-ASCII-Namen zugeordnet worden sind. Der Benutzer weist die Gruppiereinrichtung an, auf die nächste Gruppenannoncierung zu warten. Danach stimuliert der Benutzer den Annoncierer in der interessierenden Gruppe. Wenn bei­ spielsweise der Annoncierer ein Lichtschalter ist, wirft der Benutzer den Schalter um. Die Gruppiereinrichtung hört das Annoncierpaket und extrahiert aus diesem die Gruppen-ID.
Der Benutzer kann verifizieren, daß diese Gruppen-ID zur ge­ wünschten Gruppe gehört, indem er dafür sorgt, daß die Grup­ piereinrichtung Pakete an alle Gruppenhörer sendet, die sie anweisen, ihre Ausgangssignale umzuschalten. Der Benutzer stellt fest, daß es die gewünschte Gruppe ist, indem er die Aktionen der Hörerzellen beobachtet (beispielsweise flackert das Licht, wenn die Gruppe aus Lichtsteuerungen besteht).
Unter Verwendung dieser Gruppen-ID sendet die Gruppiereinrich­ tung jetzt ein Paket an die Gruppe und fordert dazu auf, daß jede Zelle mit ihrem Zellennamen antwortet, bis die interes­ sierende Zelle gefunden ist. Der Benutzer wählt diesen Namen, und die Gruppiereinrichtung, die diese Zellen-ID kennt, kann mit dem Gruppen-Zuordnungsprozeß fortfahren.
Wenn ein Benutzer wählt, kann die ID der Zelle vor dem Fort­ fahren mit dem Gruppierungsprozeß verifiziert werden. Das folgende Verfahren dient zur Verifikation, daß die ID für die Zielzelle ist.
Wenn die gewählte Zelle ein Annoncierer ist, veranlaßt die Gruppiereinrichtung den Benutzer, den Annoncierer durch Stimu­ lation seines Eingangs zu aktivieren. Zum Beispiel: wenn die Zelle an einen Lichtschalter angeschlossen ist, so schaltet der Benutzer den Schalter ein und aus. Die Gruppiereinrichtung ist dann in der Lage, die Gruppenadresse und Mitgliedsnummer der Zelle festzustellen.
Wenn die ausgewählte Zelle ein Hörer ist, sendet die Gruppier­ einrichtung Pakete an die Zelle (unter Verwendung der Gruppen- und Mitgliedsnummern zur Adressierung) und weist sie an, ihren Ausgang umzuschalten. Wenn beispielsweise die Zelle ein Licht steuert, so flackert das Licht ein und aus. Dies ermöglicht dem Benutzer festzustellen, daß er die richtige Zelle ausge­ wählt hat.
5. Annonciererstimulation
Dieses Verfahren wird in einem Netzwerk verwendet, in welchem keine Gruppen- oder Zellen-ASCII-Namen, sondern Annoncierer und Hörer zugeordnet worden sind. Die Gruppiereinrichtung sendet ein Paket an alle Zellen im Netzwerk und weist jeden Annoncierer an, ein seine ID enthaltendes Paket bei der näch­ sten Stimulation zu senden. Die Gruppiereinrichtung sagt dann dem Benutzer, den Annoncierer durch Aktivierung des gemessenen Geräts zu stimulieren; beispielsweise Einschalten eines Licht­ schalters für einen Lichtschalterannoncierer. Da der Benutzer nur einen Annoncierer stimuliert, erhält die Gruppiereinrich­ tung nur ein Paket mit einer Zellen-ID.
Es gibt eine Möglichkeit, daß ein anderer Annoncierer gleich­ zeitig stimuliert wird. Gegebenenfalls legt an anderer einen Lichtschalter um, oder ein Temperaturfühler stellt eine Tem­ peraturänderung fest. Der Benutzer mag feststellen wollen, daß die empfangene ID für die richtige Zelle ist. Um festzustel­ len, daß die Zellen-ID die richtige ist, durchläuft der Benut­ zer den Annoncier-Stimulationsprozeß ein zweites Mal und veri­ fiziert, daß die gleichen Ergebnisse auftreten.
6. Umschalten Hörer
Dieses Verfahren wird in einem Netzwerk verwendet, in welchem keine Gruppen- oder Zellennamen zugewiesen worden sind. Die Gruppiereinrichtung sendet ein Paket, das als Hörer erschei­ nende Zellen auffordert, mit ihrer ID zu antworten. Die Grup­ piereinrichtung muß die Anzahl von antwortenden Zellen begren­ zen; daher enthält das Paket eine ID-Bitmaske zur Beschränkung der Antwort auf eine Teilmenge der möglichen Zellen-ID′s. Wenn die Gruppiereinrichtung eine Liste von Hörer-ID′s entwickelt hat, erlaubt sie dem Benutzer, jeden Hörer zu schalten, was die Hörerzelle veranlaßt, ihren Ausgang ein- und auszuschal­ ten. Der Benutzer durchläuft die Liste von Hörerzellen weiter, bis er das ausgangsseitige Umschalten der Zielzelle beobach­ tet. Der Benutzer hat danach die Zelle für die Gruppierein­ richtung identifiziert, und er kann mit der Gruppieroperation fortfahren.
D. Paketformat
Jedes von einer Zelle übertragene Paket enthält mehrere Fel­ der. So ist beispielsweise in Fig. 6 ein Format zur Gruppen­ annoncierung gezeigt. Andere Paketformate sind in Anlage A angegeben. Jedes Paket beginnt mit einer Präambel zur Synchro­ nisation der Empfängerzellen-Eingangsschaltung (bit synch). Der bei dem beschriebenen Ausführungsbeispiel verwendete be­ sondere Präambelcode ist als Teil des 3-aus-6-Kombinations­ codes (Fig. 9) beschrieben. Ein Flagfeld von 6 Bits beginnt und beendet jedes der Pakete. Der Flagfeldcode ist auch in Fig. 9 beschrieben.
Vorzugsweise liest jede der Zellen das gesamte Paket ein, führt eine zyklische Redundanzcode(CRC)-Berechnung an dem Paket durch, ausgenommen für das Konkurrenzzeitgeberfeld, und vergleicht das Ergebnis mit dem CRC-Feld des empfangenen Pa­ kets. Die ALU 102 der Fig. 12 besitzt Hardware zur Berechnung des Paket-CRC und CRC-Register 130 zum Speichern von Zwischen­ ergebnissen. Wenn der CRC für ein einlaufendes Paket nicht verifiziert werden kann, wird das Paket ausgeschieden. Das Paket-CRC-Feld ist bei der Berechnung 16 Bits, wird in 24-Bit-Felder für die Übertragung in einem 3-aus-6-Code unter Ver­ wendung der Codierung gemäß Fig. 9 umgesetzt. (Für den Rest der Erörterung von Paketfeldern in diesem Abschnitt ist die Feldlänge vor der Codierung mit den 3-aus-6-Kombinationscodes gemäß Fig. 9 beschrieben.) Bei dem bevorzugten Ausführungsbei­ spiel ist der CRC ein CCITT-Standardalgorithmus (X¹⁶ + X¹² + X⁵ + 1).
Die System-ID ist ein 32-Bit-Feld in der bevorzugten Ausfüh­ rung. Die anderen 16 Bits der 48-Bit-System-ID sind in der CRC-Berechnung einbezogen, werden jedoch nicht übertragen als Teil f des Pakets (Fig. 29).
Das Verknüpfungsadreßfeld ist ein 48-Bit-Feld. Wenn dieses Feld aus Nullen besteht, wird das Paket als systemweite Sen­ dung interpretiert, das von allen Zellen behandelt wird. So hat beispielsweise ein Sondierpaket ein Nullenfeld für die Verknüpfungsadresse. Gruppenadressen sind in die Verknüpfungs­ adresse einbezogen. Für Gruppenadressen sind die ersten 38 Bits Null, und die restlichen 10 Bits enthalten die Gruppen­ adresse. (Die herstellerseitig zugewiesenen Zellen-ID-Nummern liegen, wie zuvor erwähnt, im Bereich von 1024 bis 2⁴⁸, da 2¹⁰ für Gruppen reserviert sind.) Die Verknüpfungsadresse ist in einigen Fällen eine individuelle Zellenadresse. (Bei­ spielsweise dann, wenn einer Zelle die Aufgabe eines Wieder­ holers oder Hörers zugeordnet wird.)
Der Konkurrenzzeitgeber ist ein 10-Bit-Feld mit 6 zusätzlichen Bits für ein CRC-Feld (oder andere Prüfsumme), das zum Verifi­ zieren der 10 Bits des Zeitgabefeldes verwendet wird. Jede ein Paket wiederholende Zelle operiert an diesem Feld, wenn die Zelle zur Übertragung des Pakets warten muß. Wenn Pakete von anderen Zellen übertragen werden, muß eine Zelle zum Senden bzw. Übertragen ihres Pakets warten, wobei die Wartezeit durch Abwärtszählen des Konkurrenzzeitgabefeldes angegeben wird. Die Frequenz, mit der dieses Feld abwärts gezählt wird, kann in einer Zelle programmiert werden, und diese Frequenz ist eine Funktion der Art des Netzwerks. Das Feld beginnt mit einer Konstanten, die nach der Art des Netzwerks gewählt werden kann. Jede das Paket wiederholende Zelle zählt von der Zahl im Feld zum Zeitpunkt des Empfangs des Pakets abwärts. Wenn daher ein Paket viermal wiederholt wird und wenn jede der vier in­ volvierten Zellen auf die Übertragung wartet, berücksichtigt die Zahl im Konkurrenzfeld die Summe der Wartephasen, subtra­ hiert von einer Konstanten (z. B. alles Einsen). Wenn das Kon­ kurrenzzeitgabefeld alles Nullen erreicht, legt die die Über­ tragung abwartende Zelle das Paket fort, anstelle einer Über­ tragung. Dies verhindert, daß ältere Pakete einlaufen und als ein jeweils neues Paket interpretiert werden.
Wie erwähnt, hat der Konkurrenzzeitgeber sein eigenes 6-Bit-CRC-Feld. Wenn das Konkurrenzzeitgeberfeld in die Paket-CRC einbezogen wäre, könnte die Paket-CRC solange nicht be­ rechnet werden, bis ein Paket tatsächlich gesendet werden kann. Dies würde viele Berechnungen in den letzten wenigen Mikrosekunden vor einer Übertragung erforderlich machen. Um dieses Problem zu vermeiden, findet ein separates CRC-Feld für das Konkurrenz-Zeitgeber-Feld Verwendung. Wenn das Konkurrenz- Zeitgeber-Feld durch seinen 6-Bit-CRC nicht verifiziert wer­ den kann, wird das Paket abgelegt.
Das Abschnittszählfeld zeichnet die Anzahl von Abschnitten oder Neuübertragungen auf, die ein Paket vor dem Ankommen an seinem Ziel durchläuft. Dieses 4-Bit-Feld beginnt mit einer Zahl, die die für ein spezielles Paket maximal zulässige An­ zahl von Neusendungen ist, und wird durch jede ein Paket wie­ derholende Zelle abwärtsgezählt. So ist beispielsweise für ein von einem Gruppenannoncierer ausgehendes Paket der "Ab­ schnitts"-Zählwert beim Start die Maximalanzahl von Neusendun­ gen, die das Paket bis zum Erreichen aller Zellen in einer Gruppe erfährt. Wenn dieses Feld vollständig zu Null wird, wird das Paket von der Zelle abgelegt und nicht mehr neu ge­ sendet. Daher sind 16 Abschnitte oder Neusendungen die Grenze der derzeitigen Implementierung.
Das Verknüpfungssteuerfeld liefert das Verknüpfungsprotokoll und besteht aus 8 Bits. Dieses Feld wird in einem nachfolgen­ den Abschnitt in Verbindung mit anderen Schichten des Proto­ kolls erörtert.
Das statistische/pseudo-statistische Zahlenfeld enthält eine 8-Bit-Zufallszahl, die für jedes Paket von der das Paket ur­ sprünglich aussendenden Zelle erzeugt wird. Diese Zahl wird nicht erzeugt, wenn ein Paket wiederholt wird. Diese Zahl dient, wie in Verbindung mit Fig. 8 noch genauer erläutert werden wird, zur Begrenzung des Neusendens von Sondierpaketen; sie kann auch in Verbindung mit einer Verschlüsselung benutzt werden, wenn das gesamte Paket zu verschlüsseln ist.
Das Netzwerksteuerfeld (4 Bits) gibt den Routentyp oder Paket­ typ an, beispielsweise Netzwerksteuerung, Gruppennachricht, Sondiernachricht usw.
Das Quellenadreßfeld (variable Größe) enthält beispielsweise die 48-Bit-ID-Nummer der Zelle, von der ein Paket ausgeht. Bei einem Sondierpaket enthält dieses Feld die ID-Nummer des An­ noncierers. Bei einer Bestätigung enthält dieses Feld die ID des Hörers. Bei einem an eine Gruppe adressierten Paket ent­ hält dieses Feld die Gruppenmitgliedsnummer der Quellzelle.
Die Bestimmungs- oder Zielliste wird in Verbindung mit Fig. 7 beschrieben.
Das Nachrichtenfeld ist längenveränderlich und enthält die von dem Paket gerade gesendete besondere Nachricht. Typische Nach­ richten sind in Anlage B enthalten. Im Falle eines Sondier­ pakets enthält das Feld die Route; d. h. jede wiederholende Zelle bindet ihre ID-Nummer in dieses Feld ein. Die Nachrich­ ten nach der Bildung einer Gruppe dienen beispielsweise dem Annoncierer 60 dazu, dem Hörer (Listener) 65 die Einschaltung eines Lichts aufzutragen usw.
Das Verschlüsselungsfeld enthält bei Verwendung 16 Bits zum Verifizieren der Authentizität eines verschlüsselten Pakets; typischerweise wird dieser Abschnitt eines Pakets nicht geän­ dert, wenn ein Paket wiederholt wird. Bekannte Verschlüsse­ lungstechniken können Verwendung finden.
Die Klammer 99 in Fig. 6 stellt den Abschnitt eines Pakets dar, der bei Wiederholung eines Pakets ungeändert bleibt. Diese Felder dienen zur Begrenzung der Wiederholungen, wie weiter unten in Verbindung mit Fig. 8 beschrieben werden wird.
Das Ziellistenfeld des Pakets in Fig. 6 ist in Fig. 7 gezeigt. Die Zielliste beginnt mit einem 4-Bit-Feld, das die Nummer der Gruppenmitglieder angibt, die zur Aufnahme einer Nachricht in dem Paket bezeichnet worden sind. Das Paket kann daher an bis zu 16 Mitglieder einer Gruppe gerichtet werden. Die Nummer jedes der Mitglieder innerhalb der Gruppe wird dann in nach­ folgenden 8-Bit-Feldern übertragen. Die Gruppennummer in der Verknüpfungsadresse und die in der Zielliste enthaltene Mit­ gliednummer bildet eine Adresse, die zur Nachrichtenübertra­ gung nach der Bildung der Gruppe dient. Wenn die Zielnummer Null ist, richtet sich das Paket an alle Mitglieder der Grup­ pe. Für einige Pakettypen enthält dieses Feld die ID der empfangenen Zelle (siehe Anlage A).
E. Mechanismus zur Verhinderung der Neusendung gewisser Pakete
Wie zuvor erwähnt, werden die Sondierpakete nur einmal von jeder der Zellen wiederholt, nachdem das Paket anfangs ausge­ sendet worden ist. Ein in jede der Zellen programmierter spe­ zieller Mechanismus ermöglicht es den Zellen, Pakete zu erken­ nen, die von der Zelle kürzlich wiederholt worden sind.
Zunächst sollte erinnerlich sein, daß jede Zelle beim Senden oder Neusenden eines Pakets ein Paket-CRC-Feld berechnet, das dem Endflag vorausgeht. Bei Paketen, die wiederholt werden, wird ein neuer CRC benötigt, da zumindest die Abschnittszäh­ lung sich ändert und ein neues Paket-CRC-Feld für dieses Paket erforderlich macht. Dieses CRC-Feld unterscheidet sich von im nächsten Paragraphen diskutierten CRC-Feld.
Da jedes eine Wiederholung erforderndes Paket empfangen wird, wird eine Wiederholer-CRC-Nummer für die Felder berechnet, die sich vom Beginn der Verknüpfungssteuerung bis zum Ende der Zielliste erstrecken, wie durch Klammer 99 in Fig. 6 angege­ ben. Wenn eine Zelle ein Paket neu aussendet, speichert der 16-Bit-Wiederholer CRC-Ergebnisse in einer Ringliste derarti­ ger Nummern, sofern dieselbe Nummer noch nicht gespeichert ist. Das Paket wird jedoch nur wiederholt, wenn die Ringliste die für das Feld 99 berechneten Wiederholer-CRC-Ergebnisse nicht enthält.
Beim Empfang jedes Pakets, das eine Wiederholung erforderlich macht, wird der CRC für das Feld 99 berechnet. Dies ist mit Block 73a in Fig. 8 gezeigt. Diese Nummer wird mit einer Liste von acht im RAM der Zelle gespeicherten Zahlen verglichen (Block 73b). Wenn die Nummer unter den gespeicherten Nummern nicht gefunden wird, werden die neuen Wiederholer-CRC-Ergeb­ nisse entsprechend Darstellung im Block 73c gespeichert, und das Paket wird wiederholt. Wenn andererseits die Nummer gefun­ den wird, so wird das Paket nicht wiederholt. In der derzeiti­ gen Implementierung werden acht Nummern in einer Ringliste gespeichert, d. h. die ältesten Nummern werden abgelegt, wenn neue berechnet werden.
Die Verwendung der CRC-Berechnung in Zuordnung zum Feld 99 und die Verwendung der Ringliste verhindern die Wiederholung eines zuvor neu ausgesendeten Pakets. Zu beachten ist, daß selbst dann, wenn ein Annoncierer fortlaufend die gleiche Nachrich­ tenfolge neu aussendet, wie beispielsweise im Falle eines fortlaufenden Ein- und Ausschaltens eines Licht, so sendet eine als Wiederholer bezeichnete Zelle die gleiche Nachricht neu aus, da das Nachrichten enthaltende Paket unterschiedlich erscheint. Dies gilt aus dem Grunde, da die Zufallszahl, die mit jeder der an sich identischen Nachrichten ausgesendet wird, aller Wahrscheinlichkeit nach eine andere ist. In dem Falle jedoch, in dem eine Zelle die gleiche Nachricht inner­ halb desselben Feldes 99 (dieselbe Zufallsnummer) erhält, wird das Paket mit seiner Nachricht nicht neu ausgesendet. Dies gilt im speziellen für Sondierpakete. Wegen der Entwicklung der oben erörterten Gruppen sterben die ausgesendeten Sondier­ pakete im Netzwerk rasch aus; anderenfalls würden sie über eine gewisse Zeitperiode als Echo wirken und einen unnötig hohen Verkehr im Netzwerk verursachen.
F. 3-aus-6-Kombinationscodierung
In vielen Netzwerken mit synchroner Übertragung von digitalen Daten findet eine Codierung Verwendung, um die Zeitinforma­ tionen in den Datenstrom einzubetten. Eine weit verbreitete Codiermethode ist die Manchester-Codierung. Manchester- oder andere Codierungen können zum Codieren der oben beschriebenen Pakete benutzt werden; die weiter unten beschriebene Codierung ist jedoch derzeit bevorzugt.
Eine 3-aus-6-Kombinationscodierung dient zur Codierung von Daten zur Übertragung bei dem derzeit bevorzugten Ausführungs­ beispiel. Alle Daten werden in 4-Bit-Tetraden (nibbles) grup­ piert, und für jede derartige Tetrade werden sechs Bits über­ tragen. Diese sechs Bits haben stets drei Einsen und drei Nullen. Die Übertragung von drei Einsen und drei Nullen in irgendeiner Kombination aller sechs Bits ermöglicht es der Eingabeschaltung der Zellen, rasch synchronisierte (Bit synch) und Byte-synchronisiert zu werden, wie in Verbindung mit dem I/O-Abschnitt erörtert werden wird. Nach einmaliger Synchroni­ sation (außerhalb des Suchbetriebs) werden die Übergänge im einlaufenden Bitstrom zur Aufrechterhaltung der Synchronisa­ tion verwendet.
Die rechte Spalte in Fig. 9 listet die 20 möglichen Kombina­ tionen von 6-Bit-Mustern auf, in denen drei der Bits Einsen und drei Nullen sind. In der linken Spalte ist das ent­ sprechende 4-Bit-Muster in Zuordnung zu dem 3-aus-6-Muster gezeigt. Wenn die Zelle beispielsweise die Tetrade (nibble) 0111 übertragen soll, erfolgt vor dem Senden eine Umsetzung in das Bitsegment 010011. In ähnlicher Weise wird 0000 vor der Übertragung umgesetzt in 011010. Wenn eine Zelle die 6-Bit-Mu­ ster erhält, setzt sie diese wieder um in die entsprechenden 4-Bit-Muster.
Es gibt 20 3-aus-6-Muster und nur 16 Möglichkeiten für 4-Bit-Kom­ binationen. Daher haben vier der 3-aus-6-Muster keine entsprechenden 4-Bit-Muster-Zuordnungen. Das 3-aus-6-Muster 010101 dient als Präambel für alle Pakete. Die Flags für alle Pakete sind 101010. Die Präambel- und Flag-Muster können be­ sonders zweckmäßig von der Eingabeschaltung zur Entwicklung der Datensynchronisation verwendet werden, da sie wiederholte Übergänge bei der Datengrundfrequenz besitzen. Die beiden unzugewiesenen 3-aus-6-Muster können für spezielle Bedingungen und Befehle verwendet werden.
Demgemäß präpariert eine Zelle ein Paket generell in ganzzah­ ligen Bytes, und jede Tetrade wird vor der Übertragung einem 6-Bit-Muster zugeordnet. Die Präambel und Flags werden danach addiert. Die Schaltung zum Umsetzen des 4-Bit-Musters in das 6-Bit-Muster und umgekehrt, zum Umsetzen aus dem 6-Bit-Muster in das 4-Bit-Muster, ist in den Fig. 14 und 15 gezeigt.
III. Kommunikations- und Steuerzelle A. Überblick über die Zelle
Im folgenden wird auf Fig. 10 Bezug genommen; jede Zelle weist einen Multiprozessor 100, einen Eingabe/Ausgabe(I/O)-Abschnitt 107-110, einen Speicher 115 und zugehörige Zeitgabeschaltun­ gen, insbesondere als Oszillator 112 und Zeitgabegenerator 111 gezeigt, auf. Ebenfalls gezeigt ist eine Spannungspumpe 116, die in Verbindung mit dem Speicher 115 verwendet wird. Diese Zelle ist mit gewöhnlichen integrierten Schaltungen reali­ siert. Beispielsweise kann der Multiprozessor 100 unter Ver­ wendung der Gatematrixtechnologie, wie sie in der US-PS 4 642 487 beschrieben ist, hergestellt werden. Das bevorzugte Aus­ führungsbeispiel der Zelle macht von der CMOS-Technologie Gebrauch, bei der die gesamte Zelle gemäß Fig. 10 auf einem einzigen Siliziumsubstrat als integrierte Schaltung aufgebaut ist. (Der Multiprozessor 100 wird manchmal im Singular be­ zeichnet, obwohl er, wie beschrieben werden wird, ein Multi­ prozessor insbesondere aus vier Prozessoren ist.)
Der Multiprozessor 100 ist ein Stack-orientierter Prozessor mit vier Sätzen von Registern 101, die Eingangssignale an eine arithmetrische Logikeinheit (ALU) 102 anlegen. Die ALU 102 weist zwei separate ALU′s bei dem derzeit bevorzugten Ausfüh­ rungsbeispiel auf.
Der Speicher 115 hat eine Speicherkapazität von insgesamt 64 KB bei dem bevorzugten Ausführungsbeispiel, obwohl diese spe­ zielle Speicherkapazität unkritisch ist. Ein Teil des Spei­ chers dient zur Speicherung von Befehlen (ROM-Code 115a). Der nächste Teil des Speichers ist ein Direktzugriffsspeicher 115b, der mehrere gewöhnliche statische Speicherzellen umfaßt (dynamische Zellen können verwendet werden). Der dritte Teil des Speichers enthält einen elektrisch löschbaren und elek­ trisch programmierbaren Festwertspeicher (EEPROM) 115c. Bei dem derzeit bevorzugten Ausführungsbeispiel verwendet der EEPROM 115c Speicherbauelemente mit schwimmenden Gate-Elektro­ den. Diese Bauelemente bedingen eine höhere Spannung (höher als die normale Betriebsspannung) zum Programmieren und Lö­ schen. Dieses höhere Potential wird von einer "Chip-internen" Spannungspumpe 116 geliefert. Der gesamte Adreßraum für den Speicher 115 wird über die ALU 102a adressiert, die Teil der ALU 102 ist.
Der ROM 115a speichert die zum Implementieren der verschie­ denen Schichten des in dieser Anmeldung erörterten Protokolls verwendeten Routinen. Dieser ROM speichert auch die zum Pro­ grammieren des EEPROM 115 benötigten Routinen. Das Anwender­ programm für die Zelle ist im ROM 115a gespeichert und ist generell eine Routine, die als "Zustandsmaschine" getrieben von Variablen im EEPROM 115c und RAM 115b wirken. RAM 115b speichert Kommunikationsvariable und Nachrichten, Anwender­ variable und "Zustandsmaschinen"-Deskriptoren. Die Zellen ID, System-ID und Kommunikations- und Anwenderparameter (z. B. Gruppennummer, Mitgliedsnummer, Annoncier/Wiederholer/Hörer-Zuordnungen) sind im EEPROM 115c gespeichert. Der die Zellen-ID speichernde Teil des EEPROMs 115c ist "schreibgeschützt", d. h. nach einer Programmierung mit der Zellen-ID kann er nicht umprogrammiert werden.
Der Eingabe/Ausgabe-Abschnitt der Zelle weist vier Unterab­ schnitte 107, 108, 109 und 110 auf. Drei dieser Unterabschnit­ te, 107, 108 und 109, haben Leitungen 103, 104 und 105 zur Kommunikation mit einem Netzwerk und/oder Steuer- und Meßele­ menten, die mit der Zelle verbunden sind. Der verbleibende Unterabschnitt 110 hat einen einzigen Auswahlpin 106, der zum Einlesen von Befehlen, wie diejenigen zur Bestimmung der Zel­ len-ID, verwendet werden kann. In der derzeitigen Implementie­ rung dient der Unterabschnitt 110 in erster Linie zur Zeitgabe und Zählung. Der Eingabe/Ausgabe-Abschnitt wird vom Prozessor über einen dedizierten Adreßraum adressiert und erscheint daher im Ergebnis für den Prozessor als Speicherraum. Jeder I/O-Unterabschnitt kann mit jedem der Unterprozessoren gekop­ pelt sein. Dieses Merkmal sorgt zusammen mit der Multiprozes­ sor-Architektur des Prozessors 100 für den kontinuierlichen (unterbrechungsfreien) Betrieb des Prozessors. Der I/O-Abschnitt kann als bekannte Schaltung ausgebildet sein; die derzeit bevorzugte Ausführung ist in den Fig. 17 bis 23 dargestellt.
Die Zelle gemäß Fig. 10 weist auch einen Oszillator 112 und einen Zeitgabegenerator 111 auf, von denen letzterer die Zeit­ gabesignale liefert, die insbesondere für das in Fig. 13 ge­ zeigte Pipelining benötigt werden. Derzeit ist die Operation bei einer 16 MHz Frequenz für die Phasen 1 bis 4 der Fig. 13 bevorzugt, wodurch eine 4 MHz Untergruppen-Befehlszyklus­ frequenz hervorgerufen wird. Andere bekannte Leitungen, die der Zelle gemäß Fig. 10 zugeordnet sind, sind nicht gezeigt (z. B. Stromversorgung).
Alle Fig. 10 zugeordneten Zellenelemente sind, wie erwähnt, bei dem bevorzugten Ausführungsbeispiel auf einem einzigen Halbleiterchip integriert.
B. Prozessor
Das derzeit bevorzugte Ausführungsbeispiel des Prozessors 100 ist in Fig. 12 gezeigt und weist mehrere Register auf, die mit den beiden ALU′s 102a und 102b in Verbindung stehen. (Andere Prozessorarchitekturen können verwendet werden, beispielsweise eine solche, die ein System auf "Register"-Basis sowie andere ALU- und Speicheranordnungen hat.) Die Adreß-ALU 102a liefert Adressen für den Speicher 115 und zum Zugreifen auf die I/O-Unterabschnitte. Die Daten-ALU 102b liefert Daten für den Speicher und den I/O-Abschnitt. Der Speicherausgang ist ge­ nerell mit den Prozessorregistern über Register 146 zum D-BUS 223 gekoppelt.
Der 16-Bit-A-BUS 220 liefert einen Eingang für die Adreß-ALU 102a. Basiszeigerregister 118, wirksame Adreßregister 119 und die Befehlszeigerregister 120 sind mit diesem Bus gekoppelt. (In der unteren rechten Ecke der zur Bezeichnung dieser Regi­ ster verwendeten Symbole ist ein Pfeil mit der Bezeichnung "x4" gezeigt. Diese Bezeichnung dient dazu, anzugeben, daß beispielsweise das Basiszeigerregister 4 tief ist, insbeson­ dere das Basiszeigerregister 4 16-Bit-Register aufweist, eines für jeden Prozessor. Dies gilt auch für die wirksamen Adreßre­ gister und die Befehlszeigerregister.) Der B-BUS 221 liefert bis zu 12-Bit-Eingangssignale an die ALU 102a oder ein 8-Bit-Ein­ gangssignal an die Daten-ALU 102b über Register 142. Der 4 tiefe Kopf der Stackregister 122, Stackzeigerregister 123, Rücklaufzeigerregister 124 und Befehlsregister 125 sind mit dem B-BUS gekoppelt.
Der C-BUS 222 liefert das andere 8-Bit-Eingangssignal für die ALU 102 über Register 143. Der C-BUS ist mit den Befehlszei­ gerregistern 120, dem 4 tiefen Kopf von Stapelregistern 122, den vier Übertragsflags 129, den 4 tiefen CRC-Registern 130 und den 4 tiefen nächsten Registern 131 gekoppelt.
Der M-BUS, der mit dem Ausgang des Speichers gekoppelt ist, kann Daten aus dem Ausgang der ALU 102b über Register 145b oder aus dem Speicher oder I/O-Abschnitten (107-110) aufneh­ men. Dieser Bus liefert über das Register 146 und den D-BUS 223 Eingangssignale an die Register 118 . . . 125, 130 und 131 und die Übertragsflags 129.
Es gibt einen 16-Bit-Weg 132 vom Ausgang der Adreß-ALU 102a zu den Registern 120. Die ALU 102b weist eine Schaltung zur Durchführung von CRC-Berechnungen auf. Diese Schaltung steht über die Zweirichtungsleitungen 133 direkt mit den CRC-Regi­ stern 130 in Verbindung. Die Stack-Kopf-Register 122 sind mit den NEXT-Registern 131 über Leitungen 138 verbunden. Diese Leitungen ermöglichen die Übertragung des Inhalts des Regi­ sters 122 in die Register 131 oder des Inhalts des Registers 131 in die Register 122. In der derzeitigen Implementierung ist ein Zweirichtungs- (gleichzeitiger) Austausch von Daten zwischen diesen Registern nicht implementiert. Vier Datenbits aus dem Ausgang des Speichers können direkt entweder zu den Befehlszeigerregistern 120 oder den Befehlsregistern 125 über Leitungen 139 zurückgeschickt werden.
Das Pipelining (Register 141, 142, 143, 145 und 146) von Daten und Adressen zwischen den Registern, ALU, Speicher und ihren entsprechenden Bussen wird in Verbindung mit Fig. 13 beschrie­ ben.
Die Daten in einem der Stackzeigerregister 123 oder einem der Rückgabezeigerregister 124 können von einer Schaltung 127 direkt inkrementiert oder dekrementiert werden.
Beide ALU′s 102a und 102b können jedes ihrer Eingangssignale zu ihren Ausgangsanschlüssen durchlaufen lassen, ihre Ein­ gangssignale inkrementieren und addieren. ALU 102b ermöglicht zusätzlich zur Addition auch eine Subtraktion, Verschiebung, das Setzen von Übertragsflags 124 (wo zweckmäßig), UND-, ODER-, Exklusiv-ODER-Verknüpfung und andere komplementäre arithmetrische Operationen. Die ALU 102b kann in einem einzi­ gen Schritt auch den Inhalt der NEXT-Register 131 und CRC-Re­ gister 130 (über Wege 222 und 133) kombinieren und ihn mit dem Inhalt eines der Stack-Kopf-Register 122 zur Entwicklung der in den CRC-Berechnungen benutzten nächsten Nummer kombinieren. Zusätzlich führt die ALU 102b Standardverschiebungen aus und liefert ein spezielles Tetradenmerkmal, das eine Verschiebung der niedrigeren oder höheren vier Bits auf höhere oder niedri­ gere vier Bits ermöglicht. Auch führt die ALU 102b eine 3-aus-6-Codierung oder Decodierung entsprechend der Beschreibung in Abschnitt F aus.
Bei dem bevorzugten Ausführungsbeispiel mit einem einzigen Halbleiterchip für eine Zelle gibt es Basiskontaktanschlüsse auf dem Scheibchen für Netz und Erde und alle I/O-Pins A und B und den "Nur-Lese"-Pin 106 (Unterabschritte 107, 108, 109 und 110 in Fig. 12). Diese Kontaktanschlüsse dienen zur Anbringung der Gehäusepins für ein preiswertes Basisgehäuse.
Zusätzlich zu den Basiskontaktanschlüssen sind zusätzliche Anschlüsse bei dem bevorzugten Ausführungsbeispiel mit Verbin­ dungen zum AD-BUS 224 und M-BUS 225 der Fig. 12 vorgesehen. Ein Steuerkontaktanschluß kann zur Entaktivierung des internen Speichers vorgesehen sein. Durch Aktivierung des Steuerkontakts wird der interne Speicher entaktiviert, und die Daten über AD-BUS und M-BUS werden vom Prozessor verwendet. Dies ermög­ licht die Verwendung eines Speichers, der für die Zelle extern ist. Es wird angenommen, daß zusätzliche Kontaktanschlüsse nicht zur Benutzung zur Verfügung stehen, wenn sich die Zelle in einem billigen Gehäuse befindet. Diese zusätzlichen Kontak­ te können von Scheibchen-Sondierkontakten oder von Pins in Gehäusen zugegriffen werden, die mehr als die Mindestzahl von Pins haben.
Die hergestellte Zelle benötigt ein Initialisierungsprogramm. Während der Wafer-Sondierzeit wird der externe Speicher für verschiedene Zwecke verwendet, von denen einer der Zellentest ist. Eine andere Verwendung ist die Erzeugung eines Programms zum Schreiben der Zellen-ID in den EEPROM während des Herstel­ lungsverfahrens. Notwendige EEPROM-Befehle, die bei späterer Betriebsaufnahme der Zelle ein Einschalten ermöglichen, können zu diesem Zeitpunkt hinzugefügt werden. Initialisierungs- und Testprogramme sind im Stande der Technik bekannt.
C. Prozessoroperation
Generell treten Speicherabrufe auf, wenn die ALU 102a eine Speicheradresse liefert. Die Speicheradresse ist typischerwei­ se eine Basisadresse o. dgl. auf dem A-BUS von einem der Basis­ punkte in Registern 118, wirksamen Adreßregistern 119 oder Befehlszeigerregister 120 in Kombination mit einem Offset auf dem B-Bus vom Stackzeigerregister 123, Rückgabezeigerregister 124, Stack-Kopf-Register 122 oder den Befehlsregistern 125.
Berechnungen in der ALU 102b umfassen in typischer Ausführung eines der Stack-Kopf-Register 122 (B-BUS) und der NEXT-Regi­ ster 131 (C-BUS) oder Daten, die Bestandteil eines Befehls aus einem der Befehlsregister 125 sind.
Wenn auch bei dem derzeit bevorzugten Ausführungsbeispiel der Prozessor arbeitet, während der Ausgang des Speichers mit dem D-BUS 323 über das Register 146 gekoppelt ist, könnte der Prozessor auch mit Daten implementiert werden, die direkt mit dem Eingang der ALU 102b gekoppelt sind. Auch die von einigen der anderen Register, beispielsweise den wirksamen Adreßregi­ stern 119, durchgeführte Funktion kann von anderen Registern ausgeführt werden, obwohl die Verwendung der wirksamen Adreß­ register und beispielsweise der CRC-Register die Operation des Prozessors verbessert.
Generell ist zur Speicheradressierung ein Basiszeiger von einem der Register 118, 119 oder 120 mit einem Offset von einem der Register 122, 123, 124 oder 125 vorgesehen. Die Adreß-ALU 120a liefert diese Adressen. Generell bearbeitet die ALU 120b auch den Inhalt des Kopfs der Stack- und nächsten Register; es gibt jedoch Ausnahmen, beispielsweise kann das Befehlsregister ein unmittelbares Eingangssignal zur ALU 102b erzeugen. Spezielle Adressierung und andere Befehle werden weiter unten beschrieben.
D. Multiprozessoroperation
Der Prozessor ist effektiv ein Multiprozessor (vier Prozesso­ ren), und zwar wegen der Mehrzahl von Registern und des Pipel­ ining, das in Verbindung mit Fig. 13 beschrieben werden wird. Wie erwähnt, besteht ein Vorteil dieser Multiprozessoropera­ tion darin, daß keine Unterbrechungen insbesondere bei der Behandlung von Eingangs- und Ausgangssignalen benötigt werden. Die Multiprozessoroperation wird ohne Verwendung von separaten ALU′s für jeden Prozessor erreicht. Bei dem derzeit bevorzug­ ten Ausführungsbeispiel wird ein ökonomisches Layout durch Verwendung von zwei ALU′s (102a und 102b) erreicht, wobei jedoch nur eine der ALU′s zu jedem Zeitpunkt arbeitet. (Zu beachten ist, daß der B-BUS ein Eingangssignal für beide ALU′s liefert.) Daher kann die Multiprozessoroperation nach der Erfindung unter Verwendung einer einzigen ALU erreicht wer­ den.
Das Verarbeitungssystem hat vier Prozessoren, die eine Adreß-ALU, eine Daten-ALU und einen Speicher gemeinsam benutzen. Ein unterer Basiszyklus nimmt vier Taktzyklen für jeden Pro­ zessor in Anspruch. Die ALU′s nehmen einen Taktzyklus und der Speicher einen Taktzyklus in Anspruch. Die unteren Zyklen sind für jeden Prozessor um einen Taktzyklus phasenverschoben, so daß jeder Prozessor bei jedem unteren Basiszyklus einmal auf Speicher und ALU′s zugreifen kann. Da jeder Prozessor seinen eigenen Registersatz besitzt, kann er unabhängig bei seiner normalen Geschwindigkeit betrieben werden. Das System sorgt daher für den Parallelbetrieb von vier Prozessoren (Pipelin­ ing).
Jedes Register der Fig. 12 ist einer von vier Registergruppen zugeordnet, und jede Gruppe erleichtert die Multiprozessor­ operation und ist einem Prozessor (1-4) der Fig. 13 zugeord­ net. Jede der vier Gruppen weist ein Basiszeigerregister, wirksames Adreßregister, Befehlszeigerregister, Stack-Kopf-Re­ gister, Stackzeigerregister, Rückgabezeigerregister, Befehls­ register, CRC-Register, nächstes Register und ein Übertrags­ flag auf. Jede in Beziehung stehende Gruppe von Registern entspricht einem der vier Prozessoren. Jeder Prozessor führt Befehle in unteren Zyklen aus, jeder unterer Zyklus besteht aus vier Taktzyklen. Während des ersten Taktzyklus blendet ein Prozessor die richtigen Register auf den A-BUS, B-BUS und C-BUS aus. In dem nächsten Taktzyklus werden die ALU′s aktiv und erzeugen Daten aus ihren Eingangssignalen von den A-, B- und C-BUSSEN. Speicher oder I/O werden während des dritten Taktzyklus aktiv, wobei die von der ALU 102a kommende Adresse und Daten entweder vom Speicher oder der ALU 102b geliefert werden. Der vierte und abschließende Taktzyklus blendet die Ergebnisse aus dem Speicher oder der ALU 102b über den D-BUS in das richtige Register aus.
Ein Prozessor kann als Datenwelle angesehen werden, die sich durch die oben beschriebene Sequenz ausbreitet. Bei jedem Schritt werden die Zwischenergebnisse in einen Satz von Pipel­ ineregistern getaktet. Durch Verwendung dieser Pipelineregi­ ster ist es möglich, die einzelnen Schritte in der Schrittfol­ ge zu trennen und daher vier Schritte gleichzeitig auszufüh­ ren. Die vier Prozessoren können ohne gegenseitige Störung operieren, obwohl sie die ALU′s, den Speicher, I/O- und viele Steuerschaltungen gemeinsam benutzen.
Die Steuerung eines Prozessors einschließlich eines Pipelining läßt sich am besten anhand der Fig. 11 verständlich machen. Für jeden Prozessor gibt es einen 3-Bit-Zähler und ein Be­ fehlsregister. Diese sind in Fig. 11 als Zähler 137a bis 137d gezeigt, von den jeder einem der Befehlsregister 125a bis 125d zugeordnet ist. Jedes der Befehlsregister ist über den D-BUS geladen. Während ein Befehlsregister geladen wird, wird der Befehl an eine PLA 212 angelegt. Diese PLA bestimmt aus dem Befehl, wieviele untere Zyklen (minor cycles) zur Ausführung des Befehls erforderlich sind, und danach wird eine 3-Bit-Bi­ närzahl in den Zähler 113a oder 113b oder 113c oder 113d gela­ den, der dem jeweils zu ladenden Befehlsregister 125a, 125b, 125c oder 125d zugeordnet ist. Beispielsweise wird für einen Aufrufbefehl, der in das Befehlsregister 125c geladen wird, die Binärzahl 010 (die drei untere Zyklen bezeichnet) in den Zähler 137c geladen. (Bis zu acht untere Zyklen können für einen vorgegebenen Befehl verwendet werden; jedoch werden nur bis zu sechs untere Zyklen für jeden der Befehle bei dem be­ schriebenen Ausführungsbeispiel benutzt.) Der Zählwert "000" dient dazu, den Aufruf eines neuen Befehls zu veranlassen.
Der Zählwert (z. B. 3 Bits) in einem Zähler und der Befehl (z. B. 12 Bits) in dem zugehörigen Befehlsregister bilden ein 15-Bit-Eingangssignal für die PLA 136. Diese 15-Bit-Eingangs­ signale von jedem der entsprechenden vier Sätze von Zählregi­ stern und vier Sätze von Befehlsregistern werden sequentiell an die PLA 136 angelegt, wie beschrieben werden wird. Das Ausgangssignal der PLA steuert den Betrieb der Prozessoren. Insbesondere steuern die Leitungen 213 den Datenstrom auf dem A-BUS, B-BUS und C-BUS; Leitungen 214 steuern die ALU 102; Leitungen 215 steuern den Speicher (und, wie weiter unten beschrieben werden wird, die I/O-Operation von Unterabschnit­ ten 107, 108, 109 und 220); und Leitungen 216 steuern den Datenstrom auf dem D-BUS. Die speziellen Ausgangssignale, die von der PLA 136 für einen vorgegebenen Befehl erzeugt werden, lassen sich am besten aus dem Befehlssatz verstehen, der in dieser Anmeldung weiter unten angegeben wird. Die von den Prozessoren durchgeführte Aktion zur Ausführung jedes der Befehle wird im Zusammenhang mit dem Befehlssatz beschrieben werden.
Die Ausgangssignale von der PLA auf den Leitungen 213 werden direkt an diejenigen Bauelemente angelegt, welche den Daten­ fluß auf dem A-BUS, B-BUS und C-BUS steuern. Die die ALU steuernden Signale werden durch ein Ein-Takt-Phasenverzöge­ rungsregister 217 geleitet, bevor sie über die Leitungen 214 an die ALU angelegt werden. Da alle Register 217 mit derselben Frequenz getaktet werden, führt das Register 217 Verzögerungs­ funktionen durch, wie noch beschrieben werden wird. Diejenigen Signale aus der PLA 136, die zur Speichersteuerung verwendet werden, werden über zwei Verzögerungsregisterstufen 217 an den Speicher angelegt, so daß die Signale auf Leitungen 215 um zwei Taktphasen gegenüber den Signalen auf den Leitungen 213 verschoben sind. Die Steuersignale für den D-BUS werden nach Verlassen der PLA 136 durch drei Sätze von Verzögerungsregi­ stern 217 geleitet, bevor sie an die Leitungen 216 angelegt werden, und werden daher in bezug auf die Signale auf den Leitungen 213 um drei Taktphasen verzögert. Die Register 217 werden bei einer Frequenz von 6 MHz getaktet, so daß dann, wenn die PLA 136 Ausgangssteuersignale für einen gegebenen Befehl (z. B. Inhalt des Befehlsregisters 125a) liefert, die Steuersignale während einer ersten Taktphase an Leitungen 213, während einer zweiten Taktphase an Leitungen 214, während einer dritten Taktphase an 215 und während einer vierten Takt­ phase an Leitungen 216 angelegt werden. Während der ersten Taktphase jedes Befehlszyklus wird der Inhalt des Zählers 137a und des Befehlsregisters 125a an die PLA 136 angelegt. Während der zweiten Taktphase wird der Inhalt des Zählers 137b und des Befehlsregisters 125b an die PLA 136 angelegt usw. für die dritten und vierten Taktphasen.
Es sei jetzt angenommen, daß Befehle in die Befehlsregister 125a bis 125d geladen und die Zähler 137a bis 137d mit den entsprechenden Binärzählwerten für die unteren Zyklen, ge­ braucht zur Durchführung jedes der Befehle, geladen worden sind. Es sei beispielsweise angenommen, daß Register 125a mit einem Aufrufbefehl und daß 010 in den Zähler 137a geladen worden ist. Während eines ersten unteren Befehlszyklus werden 010 und der 12-Bit-Befehl für den Aufruf an die PLA 136 ange­ legt. Aus dieser 15-Bit-Eingabe entwickelt die PLA 136 an ihrem Ausgang alle Steuersignale, die zum Beenden des ersten unteren Zyklus des Aufrufbefehls (z. B. vier Taktphasen) für den A-BUS, B-BUS, C-BUS, die ALU, den Speicher und den D-BUS erforderlich sind. Da das System an der Multiprozessoropera­ tion Pipelining verwendet, dienen die Steuersignale auf Lei­ tungen 213 zum Austragen der ersten Taktphase des Aufrufbe­ fehls, der die Eingangssignale für die ALU′s darstellt. (Wäh­ rend dieser ersten Taktphase steuern die anderen Steuerleitun­ gen die ALU, den Speicher und den D-BUS anderer Prozessoren für andere Befehle in den Pipelines.) Während Phase 2 werden der Zählwert im Zähler 137b und der Befehl im Register 125b an die PLA 136 angelegt. Während Phase 2 steuern jetzt die Si­ gnale auf Leitungen 213 die A-BUS-, B-BUS- und C-BUS-Eingangs­ signale zu den ALU′s, um dem zweiten Prozessor die Ausführung des im Register 125b enthaltenen Befehls zu ermöglichen. Wäh­ rend dieser zweiten Taktphase steuern Signale auf Leitungen 214 den ersten Prozessor und die ALU, um die zum Ausführen der zweiten Taktphase des Aufrufbefehls im Register 125a benötig­ ten Funktionen auszuführen. (Zu beachten ist, daß eine Verzö­ gerung gleich einer Phase durch das Register 217 eingeführt wurde.) In ähnlicher Weise steuern während der dritten Phase die Signale auf Leitung 213 den A-BUS, B-BUS und C-BUS, damit der dritte Prozessor den im Register 125c enthaltenen Befehl ausführen kann; die Signale auf Leitungen 214 steuern die ALU zur Ausführung des im Register 125 enthaltenen Befehls, und die Signale auf den Leitungen 215 steuern den Speicher zur Ausführung der im Register 125a für den ersten Prozessor ent­ haltenen Befehle. Schließlich werden während der vierten Takt­ phase der Befehl aus dem Register 125d zusammen mit dem Zähl­ wert im Zähler 137d zur PLA 136 gekoppelt. Die Signale auf Leitungen 213 steuern den A-BUS, B-BUS und C-BUS zum Ausführen des im Register 125d 85647 00070 552 001000280000000200012000285918553600040 0002003890945 00004 85528des vierten Prozessors enthaltenen Be­ fehls; die Signale auf Leitungen 214 steuern die ALU zur Aus­ führung des im Register 125c für den dritten Prozessor enthal­ tenen Befehls; die Signale auf Leitungen 215 steuern den Spei­ cher zum Ausführen des Befehls im Register 125b für den zwei­ ten Prozessor; und die Signale auf Leitungen 216 steuern den D-BUS zum Ausführen des Befehls im Register 125a für den er­ sten Prozessor.
Nach vier Zyklen des 16 MHz-Takts wird der Zählwert im Regi­ ster 137a auf 001 vermindert. Jedes Register wird an dem Takt­ zyklus dekrementiert, der der Verwendung des Inhalts der von der PLA 136 gehaltenen Zählers folgt. Das Eingangssignal an die PLA 136 ändert sich daher, obwohl der Befehl im Register 125a der gleiche geblieben ist. Dies ermöglicht es der PLA 136, neue Ausgangssignale zu erzeugen, die für den zweiten unteren Zyklus des Aufrufbefehls benötigt werden. Diese Steuersignale erfahren eine Schnellübertragung über die Steuerleitungen 213, 214, 215 und 216, wie oben beschrieben wurde. Wenn der Zählwert in einem Zähler 000 erreicht wird dies als Befehlsabruf für den zugehörigen Prozessor interpre­ tiert.
Daher kann jeder der vier Prozessoren gleichzeitig einen Be­ fehl ausführen, wobei jeder der Befehle eine andere Zyklyszahl hat. Die bei jedem vorgegebenen Taktzyklus die imaginäre Linie 219 erreichenden Steuersignale stellen Steuersignale für vier unterschiedliche Befehle und für vier unterschiedliche Prozes­ soren dar. So erscheinen beispielsweise die Steuersignale, die dem ersten Prozessor während eines ersten Zyklus zugeordnet sind, auf Leitungen 213; während eines zweiten Zyklus auf Leitungen 214; während eines dritten Zyklus auf Leitungen 215 und während eines vierten Zyklus auf Leitungen 216. Die vom zweiten Prozessor benötigten Steuersignale folgen nach; die­ jenige des dritten und vierten Prozessors folgen hinter den­ jenigen des zweiten Prozessors.
Das Pipelining der Signale ist in Fig. 13 dargestellt. Die Multiprozessoroperation des Prozessors 100 der Fig. 10 ist in Fig. 13 durch vier Prozessoren, Prozessoren 1, 2, 3 und 4, gezeigt. Jede der Registergruppen ist einem der Prozessoren zugeordnet. Die vier Phasen eines einzigen Befehlszyklus sind oben in Fig. 13 bezeichnet. In Fig. 13 werden Register 101 verwendet, um anzugeben, daß der Inhalt aus den von einem Befehl aufgerufenen speziellen Registern an den A-BUS, B-BUS und C-BUS angelegt wird. Die Register sind 118, 119 und 120 auf dem A-BUS; 122, 123, 124 und 125 auf dem B-BUS; 120, 122, 129, 130 und 131 auf dem C-BUS.
Während einer ersten Phase werden zuvor in den Gruppe-1-Regi­ stern (z. B. zwei von ihnen) gespeicherte Signale aus den Regi­ stern auf den A-BUS, B-BUS und C-BUS ausgeblendet. Während dies geschieht, werden den Registern der Gruppe 2 zugeordnete Signale aus den Registern 141, 142, 143 in die ALU 102a und 102b ausgeblendet. Dies ist in Fig. 13 als Prozessor 2 in der ersten Phasenspalte gezeigt. Gleichzeitige Signale werden aus Registern 145a und 145b in den Speicher für Gruppe-3-Register für Prozessor 3 ausgeblendet. Schließlich werden den Gruppe-4-Re­ gistern zugeordnete Signale während dieser ersten Phase aus Registern 146 auf den D-BUS ausgeblendet. Während der zweiten Phase werden Gruppe-1-Registern zugeordnete Signale aus der ALU an Register 145 angelegt. Die Gruppe-2-Registern zugeord­ neten Daten werden an den Speicher angelegt. Die den Gruppe-3-Re­ gistern zugeordneten Daten werden vom Register 146 an den D-BUS angelegt. Die den Gruppe-4-Registern zugeordneten Daten werden auf den A-BUS, B-BUS und C-BUS ausgeblendet. In ähn­ licher Weise werden während der dritten und vierten Phasen jedes Befehlszyklus diese Pipeliningoperationen in der in Fig. 13 gezeigten Weise fortgesetzt, wodurch sich effektiv vier Prozessor ergeben.
E. Prozessorbefehle
In diesem Abschnitt wird jeder Befehl des Prozessors zusammen mit den speziellen Register- und Speicheroperationen angege­ ben. Kleinbuchstaben werden nachfolgend zur Bezeichnung des Inhalts eines Registers verwendet. Beispielsweise wird der Inhalt des Befehlsregisters als "ip" gezeigt. Die Register und Flags sind nachfolgend mit ihrer Korrelation zur Fig. 12 be­ zeichnet.
Das Kopfelement des Rückgabestapels ist auch als ein Register adressierbar, obwohl es physikalisch im RAM angeordnet ist.
Befehlstabelle
Für jeden Befehl werden unten die Operation, die Codierung und die Zeitgabe in Standard-C-Sprachennotation angegeben.
SWAP (Austausch) Spezialfall
Der Austausch von TOS mit NEXT ist ein Spezialfall der ALU-Operationen unter Verwendung des direkten Datenweges zwischen TOS und NEXT. Das NEXT-Register erhält ein cc von dem TOS über ein Pipelineregister, bevor TOS mit dem Inhalt von NEXT geladen wird (nicht-simultane Übertragung).
F. 3-aus-6-Schaltung
Wie zuvor erwähnt, enthält die ALU 102b Mittel zum Codieren von 4-Bit-Tetraden in 6-Bit-Worte zum Senden (Codierer gemäß Fig. 14) und zum Decodieren von 6-Bit-Worten in die 4-Bit-Te­ traden (Decodierer gemäß Fig. 15). Sowohl der Codierer als auch der Decodierer verwenden eine festverdrahtete Logik, welche eine sehr rasche Umsetzung in beiden Richtungen gestat­ tet. Außerdem ist in Fig. 16 eine Schaltung gezeigt, die veri­ fiziert, daß jedes von der Zelle empfangene 6-Bit-Wort tat­ sächlich ein 3-aus-6-Code ist, d. h. drei Nullen und drei Ein­ sen (Fig. 9) hat.
Im folgenden wird auf Fig. 14 Bezug genommen, in der das Regi­ ster 142 dargestellt ist, wobei vier Bits des Registers Daten D0 bis D3 enthalten. Wenn die ALU angewiesen wird, diese Daten zu codieren, so werden die resultierenden sechs Bits an das Latch-Register 145b angelegt. Um die in Fig. 9 gezeigte Umset­ zung zu gewinnen, wird das D0-Bit direkt an die erste Stufe des Registers 145d angelegt und wird E0, das codierte Bit. Auch das Bit D3 wird direkt in das Register eingekoppelt und wird zu E5. Jedes der restlichen Bits E1 bis E4 wird von den Logikschaltungen 154 bis 150 entwickelt. Jede dieser Logik­ schaltungen ist so angeordnet, daß sie D0, D1, D2 und D3 auf­ zunehmen vermag. Jede Logikschaltung enthält gewöhnliche Gat­ ter, welche die innerhalb des zugehörigen Blocks dargestellte Gleichung implementieren. Diese Gleichungen sind in Standard-C-Spra­ che ("&" = logisches UND, "!" = logisches NEIN und "1" = logisches ODER). Diese Gleichungen können mit gewöhnlichen Gattern implementiert werden.
Der Decodierer gemäß Fig. 15 ist in ähnlichem Format gezeigt. Diesesmal sind die sechs Bits der codierten Daten im Register 142 gezeigt. Die decodierten vier Datenbits sind im Register 145 gezeigt. Um das Zuordnungsmuster gemäß Fig. 9 zu implemen­ tieren, wird das E0-Bit direkt an das Register 145 angelegt und wird D0. Das E5-Bit liegt direkt am Register 145 und wird das D3-Bit. Logische Schaltungen 154 bzw. 155 liefern die Bits D2 und D1. Die Schaltung 154 ist so angeordnet, daß sie die Bits E0, E3, E4 und E5 aufnimmt, während die Schaltung 155 E0, E1, E3 und E5 aufnimmt (E2 wird zur Entwicklung der D0 bis D3-Bits nicht benutzt). (Einige der 6-Bit-Muster sind unbe­ nutzt, und andere werden zur Synchronisation verwendet und bedürfen daher keine Umsetzung in eine Datentetrade.) Die Schaltungen 154 und 155 sind aus gewöhnlichen logischen Gat­ tern aufgebaut und implementieren die gezeigten Gleichungen. Das Symbol "∧" stellt die Exklusiv-ODER-Funktion in den Gleichungen dar.
Die Schaltung gemäß Fig. 16 verifiziert, wie erwähnt, daß die aufgenommenen 6-Bit-Worte drei Nullen und drei Einsen enthal­ ten. Die codierten Worte sind gekoppelt gezeigt vom Stack-Kopf-Registers 122 in die beiden Volladdierer 157 und 158. Diese Addierstufen sind in der ALU 102b enthalten. Jeder Ad­ dierer nimmt ein X-, Y- und ein Übertragseingangssignal auf und liefert eine Summe und einen Übertragsausgang. Diese ge­ wöhnlichen Addierstufen sind jeweils so angeordnet, daß sie ein Bit des codierten Worts in der gezeigten Weise aufnehmen. (Irgendeine Kopplung jedes Bits an irgendeinen Eingang der Adresse 157 und 158 kann verwendet werden.) Die Übertragsaus­ gänge der Addierer 157 und 158 sind mit dem Exklusiv-ODER-Gat­ ter 159 gekoppelt; die Summenausgänge der Addierer 157 und 158 sind mit dem Exklusiv-ODER-Gatter 160 gekoppelt. Der Ausgang der Gatter 159 und 160 ist mit den Eingangsanschlüssen eines UND-Gatters 161 gekoppelt. Wenn der Ausgang dieses UND-Gatters im hohen Zustand ist, enthält das Wort im Register 102 drei Einsen und drei Nullen. Anderenfalls ist der Ausgang des Gat­ ters 161 auf dem niedrigen Zustand (Abbruchbedingung). Die einlaufenden Pakete werden geprüft, um festzustellen, daß jedes 6-Bit-Wort gültig ist, während es in die 4-Bit-Tetraden (nibbles) decodiert wird.
IV. Eingabe/Ausgabe-Abschnitt A. Allgemeines
Der I/O-Abschnitt weist mehrere Schaltungselemente, wie einen Rampengenerator, Zähler, Komparator usw. auf, die in verschie­ denen Konfigurationen unter Softwaresteuerung miteinander verbunden sind. Beispiele hierfür sind unten für die Analog/Digital(A/D)- und Digital/Analog(D/A)-Operationen ge­ zeigt. Diese Elemente mit ihren Software-konfigurierbaren Verbindungen liefern eine hohe Flexibilität für die Zelle und gestatten ihr, viele Aufgaben durchzuführen. Der gesamte I/O-Abschnitt wird vorzugsweise auf demselben "Chip" hergestellt, der auch den Prozessor enthält.
B. Pufferabschnitt
Wie in Fig. 10 gezeigt und oben erörtert wurde, weist jede der Zellen vier Eingabe/Ausgabe(I/O)-Unterabschnitte auf; drei der Unterabschnitte 107, 108 und 109 haben jeweils ein Leitungs­ paar, identifiziert als Pin A und Pin B. Der vierte Unterab­ schnitt 110 hat einen einzigen "Nur-Lese"-Pin 106. Jeder der vier Unterabschnitte kann mit einem der vier Unterprozessoren kommunizieren. Wie in Fig. 12 gezeigt ist, wird dies auf ein­ fache Weise dadurch implementiert, daß der Adreßbus (AD-BUS) und der Speicherbus (M-BUS) mit jedem der vier I/O-Unterab­ schnitte verbunden wird. Die Verwendung des M-BUS über das Register 146 mit dem D-BUS ermöglicht es den I/O-Unterab­ schnitten, mit den Prozessorregistern zu kommunizieren.
Jeder Pin A und Pin B kann TTL-Signale empfangen und liefern und drei Zustände annehmen (tristated). Bei dem bevorzugten Ausführungsbeispiel kann jeder Pin angenähert 40 Milliampere aufnehmen und abgeben (mit Ausnahme des Pins 106). Alle A-Pins können programmiert werden, um ein analoges Ausgangssignal zu liefern, und ein Digital/Analog-Umsetzer ist in drei der I/O-Unter­ abschnitten 107, 108 und 109 integriert, um ein analoges Ausgangssignal am Pin B zu entwickeln. Ein analoges Eingangs­ signal an einem der B-Pins kann in einen digitalen Zählwert umgesetzt werden, da drei der I/O-Unterabschnitte A/D-Umsetzer enthalten, die mit diesen Pins gekoppelt sind. Jedes Pin-Paar (Pin A und Pin B) können als Differenzverstärker für die Ein­ gangssignale arbeiten, ein Differenzempfänger, ein Differenz­ sender und ein Differenzspannungskomparator. Die I/O-Unterab­ schnitte können zur Durchführung vieler unterschiedlicher Funktionen verwendet werden, von einfachem Schalten bis zu beispielsweise einer Kopplung von zwei Pin-Paaren zum Treiben der Wicklungen eines Schrittschaltmotors.
Die in Fig. 17 bis 23 gezeigten Schaltungen sind in Unter­ abschnitten 107, 108 und 109 wiederholt. Die Pin A und Pin B zugeordneten Schaltungen (wie die Pufferabschnitte gemäß Fig. 17) sind im I/O-Unterabschnitt 110 nicht vollständig enthal­ ten. Nur eine ausreichende Pufferung wird benötigt, die das Lesen von Daten am Pin 106 ermöglicht.
Bezuggenommen wird auf den I/O-Pufferabschnitt gemäß Fig. 17. Auslaufende Daten werden an Pin A über den Puffer 163 ange­ legt. In ähnlicher Weise werden auslaufende Daten an Pin B über den Puffer 164 angelegt, nachdem die Daten den I/O-Steuerschalter 165 durchlaufen haben. Diese abgehenden Daten werden beispielsweise an Pin A vom Register 206 der Fig. 23 über Gatter 208 der Fig. 19 angelegt. Der Steuerschalter 165 dient zur Aktivierung der Ausgaben zum Pin A über den Puffer 163, wenn Aktivierung A (EN.A) hoch ist (Leitung 166). Außerdem aktiviert der Schalter den Ausgang zum Pin B, wenn Aktivierung B (EN.B) hoch ist (Leitung 167) und aktiviert Ausgänge zu beiden Pins (mit Inversion des Ausgangs an Pin B), wenn Aktivierung RS-485 hoch ist (Leitung 168). Das abgehende Analogsignal zum Pin A wird über den Schalter 175 geliefert, wenn das Aktivierungs-Analogausgangssignal hoch ist.
Einlaufende Signale zum Pin A werden an einen Eingangsanschluß des Differenzverstärkers 169 angelegt. Der andere Anschluß erhält ein Referenzpotential (z. B. 2,5 Volt). Dieser Ver­ stärker weist auch den gewöhnlich benutzten Hysteresemoden zur Verhinderung der Feststellung von Rauschen auf. Dieser Betrieb wird aktiviert, wenn das Hystereseaktivierungssignal (Pin A), das am Verstärker 169 ansteht, hoch ist. Der Ausgang des Ver­ stärkers 169 ist mit einer Übergangsdetektorschaltung 171 gekoppelt, die einfach jeden Übergang feststellt, d. h. einen 0-auf-1- oder einen 1-auf-0-Übergang.
Die Eingangssignale zum Pin B werden an einen Anschluß eines Differenzverstärkers 170 angelegt, der identisch zum Verstär­ ker 169 ausgebildet sein kann. Der Verstärker 170 nimmt das Hystereseaktivierungssignal (Pin B) auf. Der andere Eingang des Verstärkers 170 (Leitung 176) kann so angeordnet sein, daß er eines von einigen Signalen aufnimmt. Er kann ein Gleich­ stromsignal zum Spannungsvergleich, ein Rampensignal, das weiter unten erläutert wird, das Signal auf Pin A für Dif­ ferenzmessung oder ein Referenzpotential (z. B. 2,5 Volt) auf­ nehmen. Das Ausgangssignal des Verstärkers 170 kann für einige Operationsmoden durch das Exklusiv-ODER-Gatter 177 invertiert werden. Ein Übergangsdetektor 172 ist den Pin-B-Eingängen zugeordnet, wiederum zur Feststellung von Übergängen von 0-auf-1 oder 1-auf-0.
C. I/O-Zählung/Zeitgabe
Jede der Zellen weist einen Zeitgabegenerator (RC-Oszillator) zur Entwicklung eines 16 MHz-Signals auf. Dieses Signal ist mit einem Frequenzmultiplizierer 178 verbunden, der im I/O-Ab­ schnitt (Fig. 18) enthalten ist. Der Multiplizierer 178 lie­ fert Ausgangsfrequenzen an jeden I/O-Unterabschnitt. Dieser Multiplizierer liefert eine Frequenz f₀ =:
Der geladene Wert ist ein 16-Bit-Wort, das in ein Register des Frequenzmultiplizierers 178 geladen ist. Der Frequenzmultipli­ zierer weist vier 16-Bit-Register und eine 16-Bit-Zählerkette auf. Vier Logikschaltungen ermöglichen die Auswahl von vier unterschiedlichen Ausgangssignalen, eines für jeden Unterab­ schnitt. Zwei Buszyklen (jeweils acht Bits) dienen zum Laden der 16-Bit-Worte in das Register des Frequenzmultiplizierers 178). Wie aus der obigen Gleichung zu sehen ist, kann ein relativ weiter Bereich von Ausgangsfrequenzen erzeugt werden. Diese Frequenzen dienen vielen unterschiedlichen Funktionen, einschließlich Bitsynchronisation, wie noch beschrieben werden wird.
Der Ausgang des Multiplizierers 178 in jedem Unterabschnitt ist mit einem 8-Bit-Zähler 179 gekoppelt. Der Zähler kann anfänglich von einem Zähler-Laderegister 180 aus dem Datenbus des Prozessors geladen werden. Dieses Register kann beispiels­ weise Daten aus einem Programm aufnehmen. Der Zählwert im Zähler wird an ein Register 181 und an einen Komparator 182 angelegt. Der Komparator 182 erfaßt auch die acht Bits in einem Register 183. Der Inhalt dieses Registers wird ebenfalls vom Datenbus des Prozessors geladen. Wenn eine Übereinstimmung zwischen den Inhalten im Zähler und im Register 183 vom Kom­ parator 162 festgestellt wird, liefert der Komparator ein Ereignissignal an die Zustandsmaschine gemäß Fig. 19 (Eingang zu Multiplexern 190 und 191). Der Inhalt des Zählers 179 kann in das Register 181 bei Erhalt eines Signals aus der Zustands­ maschine eingegeben (latched) werden (Ausgang des Ausführre­ gisters 198 der Fig. 19). Dasselbe Ausführregister 198 kann ein Laden des Zählers 179 aus Register 180 bewirken. Wenn der Zähler einen vollen Zählwert erreicht (Endzählung), wird ein Signal an die Zustandsmaschine der Fig. 19 angelegt (Eingang zu Multiplexern 190 und 191).
D. I/O Steuerung und Zustandsmaschine
Im folgenden wird auf Fig. 19 Bezug genommen. Der Prozessor M-Bus steht mit Registern 185 und 186 in Verbindung, die beide Maskierfunktionen ausführen. Drei Bits des Registers 185 steuern die Auswahl einer der mit dem Multiplexer 190 gekop­ pelten fünf Leitungen; in ähnlicher Weise steuern drei Bits des Registers 186 die Auswahl einer der mit dem Eingang des Multiplexers 191 gekoppelten fünf Leitungen. Die Ausgänge der Maskierregister 185 und 186 sind mit einem Multiplexer 187 verbunden. Die fünf Bits vom Multiplexer 187 werden an ein Register 198 angelegt. Jedes dieser Bits definiert eine andere Funktion, die im Ergebnis von der Zustandsmaschine ausgeführt wird. Insbesondere steuern die Bits den Ladezähler, die Latch­ zählung, den Aktivierungsrampenschalter, den Impulspin A und den Impulspin B.
Die Multiplexer 190 und 191 erhalten beide das Stationszählsignal vom Zähler 179 der Fig. 18, das Vergleichssignal aus dem Komparator 182, das Rampenstartsignal aus dem Rampengenerator 200 der Fig. 20 und die A- und B-Übergangssignale von den Übergangsdetektoren 171 bzw. 172 der Fig. 17. Das 1-Bit-Aus­ gangssignal aus jedem der Multiplexer 190 und 191 wird an ein ODER-Gatter 188 angelegt. Dieses ODER-Gatter ist in der Weise vorgespannt, daß bei Einlauf von Ausgangssignalen aus beiden Multiplexern 190 und 191 dem Multiplexer 190 Priorität gegeben wird. Das Ausgangssignal des Multiplexers 190 steuert den Multiplexer 187 mit dem als "welches Ereignis" identifizierten Signal. Dieses Signal wird auch in dem 3×3 Silo-(FIFO)-Puffer 199 gespeichert. Dieses Signal gibt an, welcher MUX 190 oder 191 ein Ereignis empfangen hat, und diese Daten werden zusam­ men mit den Eingangssignalen an Pin A und Pin B im FIFO 199 gespeichert.
Die Zustandsmaschine für jeden der I/O-Unterabschnitte weist vier D-Typ-Flipflops auf, die in der in Fig. 19 innerhalb der gestrichelten Umrandung 189 gezeigten Weise in Reihe geschal­ tet sind. Die Flipflops 184 und 186 nehmen das 8 MHz-Signal auf, während die Flipflops 193 und 195 den Komplementärwert dieses Zeitgabesignals erhalten. Das Taktsignal (CLK) wird aus dem Q-Ausgang des Flipflops 194 gewonnen und an das Register 198 und FIFO 199 angelegt. Das Löschsignal (CLR) wird vom Q-Anschluß des Flipflops 196 empfangen und an das Register 198 angelegt.
Im Betrieb werden die Maskierregister 185 und 186 unter Soft­ waresteuerung geladen. Die Bits beispielsweise aus dem Regi­ ster 185 bewirken die Auswahl eines der Eingangsleitungen zum Multiplexer 190, beispielsweise die Stationszählung. Danach wartet die Schaltung gemäß Fig. 19 auf das Signal Stationszäh­ lung. Wenn das Signal Stationszählung erscheint, beginnt die Zustandsmaschine zu arbeiten, und die fünf Datenbits aus dem Register 185 werden über den Multiplexer 187 in das Register 198 eingegeben. Die Zustandsmaschine ruft ein Ausgangssignal auf einer der Leitungen aus dem Register 198 hervor, wodurch beispielsweise ein Impuls an Pin A erzeugt wird. In ähnlicher Weise kann ein Wort im Register 186 dazu verwendet werden, wiederum beispielsweise den Zähler zu laden.
Die Flipflops 203 und 204 werden vom Ausgangssignal des Regi­ sters 198 getaktet. Diese Flipflops ermöglichen eine Steuerung des Ausgangssignals. Das ODER-Gatter 208 ermöglicht die Über­ tragung von Daten aus einem Schieberegister 206 der Fig. 23 an den Pin A. Dieses Register wird weiter unten erörtert.
Die sechs Bits niedriger Ordnung des AD-BUS werden in den Decodierer in den I/O-Unterabschnitten 107, 108, 109 und 110 der Fig. 12 eingegeben. Zwei der Bits dienen zur Auswahl eines speziellen I/O-Elements, und der Rest wird zur Steuerung einer Operation decodiert. Die PLA 136 der Fig. 11 hat generalisier­ te Ausgänge 215, die parallel zu allen I/O-Unterabschnitten 107, 108, 109 und 110 geschaltet sind, um den A-BUS-Taktzyklus für zur Steuerung der Operation der I/O-Unterabschnitte ver­ wendete Daten auszuwählen.
E. Analog/Digital- und Digital/Analog-Umsetzung
Zuerst wird auf Fig. 20 Bezug genommen. Das I/O-Untersystem weist einen RAM-Generator 200 auf, der kontinuierlich Rampen einer vorgegebenen Periode erzeugt. Das Ausgangssignal des Rampengenerators wird über Puffer 201 gepuffert und durch Schalter 202 ausgewählt. Der Schalter wird an einem Zählwert (Zeitpunkt) ausgewählt, der dem Start jedes Rampensignals folgt, wodurch dasselbe Potential an den Kondensator 203 ange­ legt wird. Dieser Kondensator wird geladen, und das Potential wird über Puffer 204 an Pin A angelegt, wenn der Schalter 175 geschlossen ist. (Schalter 175 ist in Fig. 17 gezeigt.) Der Schalter 202, Kondensator 203 und Puffer 204 wirken als Ab­ tast- und Haltekreis (S+H).
In Fig. 21 sind einige zuvor beschriebene Schaltungselemente neu gezeigt, um zu beschreiben, wie eine Digital/Analog-Umset­ zung stattfindet und um zu zeigen, wie die Schaltungselemente des I/O-Unterabschnitts über Software von der I/O-Steuerungs- und Zustandsmaschine gemäß Fig. 19 rekonfiguriert werden kön­ nen, um unterschiedliche Funktionen durchzuführen.
Bei einer Digital/Analog-Umsetzung wird eine geeignete Fre­ quenz (f₀) von dem Frequenzmultiplizierer 178 oder dem Zäh­ ler 179 in Fig. 18 ausgewählt, die der Periode der vom Rampen­ generator 200 (Fig. 21) erzeugten Rampen entspricht. Ein dem gewünschten analogen Ausgangssignal entsprechender Digitalwert wird in das Register 183 geladen. Wenn eine Rampe beginnt, wird das Rampenstartsignal an die Zustandsmaschine 189 der Fig. 19 (beispielsweise über den Multiplexer 190) und die Flipflops angelegt. Dadurch wird der Zähler 179 gelöscht (z. B. alles Nullen). Das f₀-Signal zählt dann in den Zähler 179. Der Komparator 182 vergleicht sodann den Inhalt des Zählers 179 mit demjenigen des Registers 183. Wenn die beiden Worte gleich sind, wird das Vergleichssignal über Multiplexer 191 angelegt und bewirkt wiederum die Aktivierung der Zustandsma­ schine (S.M). 189, gezeigt durch "SM₁", und der Schalter 202 des Abtast- und Haltekreises wird geschlossen. Bei jeder vom Rampengenerator erzeugten Rampe ist der Rampenschalter 202 geschlossen (z. B. für 500 Nanosekunden), wodurch der Kondensa­ tor 203 auf eine Gleichspannung aufgeladen wird, die der im Register 183 befindlichen Digitalzahl entspricht.
Eine Art, in der die A/D-Umsetzung durchgeführt werden kann, ist in Fig. 22 gezeigt. Das analoge Eingangssignal wird an einen Eingangsanschluß des Differenzverstärkers 170 angelegt. Die Rampe wird an den anderen Anschluß des Verstärkers 170 angelegt. Wenn anfangs die Rampe gestartet wird, bewirkt die Zustandsmaschine 89, daß der Zähler 179 vom Register 180 (z. B. alles Nullen) geladen wird. Der Zähler wird bei einer Frequenz (f₀) getaktet, die für die Rampenperiode geeignet ist. Wenn der Übergangsdetektor 172 feststellt, daß das Potential auf Pin B und das Rampenpotential übereinstimmen, bewirkt die Zustandsmaschine 189, daß der Zählwert im Zähler 179 in das Latch 181 eingespeichert wird. Das Digitalwort im Latch 181 entspricht dem Gleichspannungspotential auf Pin B, wodurch die Analog/Digital-Umsetzung bewirkt wird.
F. I /O-Kommunikationen
Wie oben beispielsweise in Verbindung mit Fig. 1 ausgeführt, kann jede Zelle Daten über Kommunikationsleitungen oder Ver­ bindungen übertragen. Die Zellen in einem Unterkanal senden Daten bei der gleichen Frequenz, die typischerweise bestimmt wird durch die gerade verwendete Kommunikationsverknüpfung, beispielsweise 10 K BPS in einer rauschbehafteten Umgebung, wie Netzleitungen. Bei dem derzeit bevorzugten Ausführungsbeispiel haben die Zellen keine Quarzoszillatoren, sondern basieren auf RC-Oszillatoren. Die zuletzt genannten Oszillatoren sind nicht besonders stabil, und Frequenzschwankungen treten sowohl in Abhängigkeit von der Temperatur als auch als Folge von Prozeß­ änderungen auf. Es gibt außerdem keine Synchronisation zwi­ schen den Zellen, so daß jede Zelle ihre Synchronisation ge­ genüber einlaufenden Daten herbeiführen muß, um die Daten in geeigneter Weise lesen zu können. Ein Merkmal aller Zellen besteht darin, daß sie die Frequenz der einlaufenden Daten feststellen und speichern und bei Bestätigung eines Pakets bei einer Frequenz senden können, mit der das ursprüngliche Paket ausgesendet worden ist. Dies reduziert die Belastung der Zel­ len mit der Synchronisation, wenn sie ein Bestätigungspaket aufnehmen.
Bezug genommen wird auf Fig. 23 während des Suchmodus; ein I/O-Unterabschnitt sucht nach Daten. Während dieses Modus liefert der Frequenzmultiplizierer eine Frequenz (f₀) an den Zähler 179, und eine Zahl, die vom M-BUS kommt, wird in das Register 183 geladen. Übereinstimmungen treten auf und werden bestimmt von Komparator 182 bei einer Frequenz, die der erwar­ teten einlaufenden Datenfrequenz entspricht. Insbesondere wird der Stationszählwert des Zählers 179 mit den Übergängen sy­ nchronisiert. Wie durch die gepunktete Linie 201 dargestellt ist, sucht der Prozessor kontinuierlich nach Übergängen aus den Übergangsdetektoren 171 und 172 der Fig. 17. Wenn Übergän­ ge auftreten, stellt der Prozessor fest, ob die Übergänge kurz vor oder nach dem Stationszählwert auftraten und stellt dann die Frequenz (f₀) ein, bis die Stationszählung gleichzeitig mit den Übergängen auftritt. Diese Frequenz ist die Verschie­ befrequenz für das Schieberegister 206. (Die vom Prozessor durchgeführten Schritte sind in Fig. 23 als Blöcke 210 und 211 gezeigt.) Die in das Register 183 geladene Zahl liefert eine Phasenverschiebung zwischen dem Zeitpunkt, an dem Übergänge auftreten und dem idealen Zeitpunkt zur Datenverschiebung im Register 206. Dies verhindert, daß Daten während Übergängen verschoben werden. Zu beachten ist, daß Zähler 179 jedesmal dann neu geladen wird (z. B. alles Nullen), wenn er eine Sta­ tionszählung (terminal count) erreicht.
Wenn Bitsynchronisation auftritt, wird die für die Synchroni­ sation (16-Bit-Wort) benötigte Frequenz im Prozessorspeicher gespeichert und zum Einstellen der Sendefrequenz gespeichert, wenn das Paket, für welches die Frequenz entwickelt worden ist, bestätigt wird. Diese gespeicherte Bitfrequenz dient, wie weiter unten erörtert wird, im Konkurrenz-Backoff-Algorithmus dazu, Schlitzperioden (M) an die letzte Empfangsbitfrequenz anzupassen.
Das Komparator-Ausgangssignal dient als Verschiebefrequenz für ein 6-Bit-Schieberegister 206. Während des Suchmodus werden die Daten vom Pin B kontinuierlich durch das Register 206 geschoben. Die Präambel zu einem Paket, gezeigt in Fig. 9 (010101-Bit synch) wird im Schieberegister 206 verschoben und die Schiebefrequenz derart eingestellt, daß Synchronisations­ verriegelung auftritt. Wenn das am Paketanfang stehende Flag auftritt (Tetrade synch-101010), enthalten die beiden letzten Stufen des Registers 206 Einsen, und dies wird vom UND-Gatter 207 festgestellt. Eine binäre Eins am Ausgang des Gatters 207 beendet den Suchmodus und liefert die Tetradensynchronisation. Wenn dies stattfindet, werden die Daten aus dem Schieberegi­ ster (6 Bits) ausgetaktet in ein Datenlatch 235, und von dort können die Daten in den Prozessor getaktet und in 4-Bit-Tetra­ den umgesetzt werden. Eine andere Schaltungskomponente ist vorhanden, um alles Nullen im Schieberegister 206 festzustel­ len. Wenn dies geschieht, kehren der Prozessor und das Schie­ beregister in den Suchmodus zurück. Die in das Register 183 geladene Zahl bewirkt eine Phasenverschiebung zwischen dem Zeitpunkt, an welchem Übergänge auftreten, und dem idealen Zeitpunkt zur Datenverschiebung in und aus dem Register 206. Dies verhindert die Verschiebung von Daten während Übergän­ gen.
Auszusendende Daten werden in das Datenregister 205 übertragen (zu beachten ist, daß nur eine 4-Bit-Tetrade darstellende sechs Bits in das Datenregister 205 übertragen werden). Diese sechs Bits werden dann in das Schieberegister 206 übertragen und mit der Schiebefrequenz ausgeschoben. Wie erwähnt, ent­ spricht die Verschiebefrequenz der Frequenz der einlaufenden Daten, wenn das ausgeschobene Paket eine Quittung bzw. Bestä­ tigung darstellt. Wenn das abgehende Paket andererseits zu einigen Zellen gesendet wird, ist die Verschiebefrequenz die Sollverschiebefrequenz für die sendende Zelle.
(Zu beachten ist, daß in Fig. 23 das Register verlassende Daten nur an Pin A gezeigt sind. Für andere Moden wird der Komplementärwert von Pin A an Pin B gelegt - und andere Varia­ tionen sind möglich.)
G. I/O-Register und Resourcen-Mehrfachnutzung
Jeder I/O-Unterabschnitt hat eine Anzahl von Registern, die bidirektionelle Verbindungen zum M-BUS haben. Diese Register befinden sich in den I/O-Unterabschnitten 107, 108, 109 und 110 der Fig. 12. Das Lesen und Schreiben dieser Register unter Prozessor-Programmsteuerung konfiguriert die I/O-Untersysteme für den richtigen Betrieb. Fig. 12 zeigt die vier I/O-Unterab­ schnitte 107, 108, 109 und 110 und zeigt außerdem die Verbin­ dungen zu den unteren acht Bits des M-BUS und den unteren sechs Bits des AD-BUS. Zwei AD-BUS-Bits wählen eine der vier I/O-Einheiten aus, und die restlichen vier Bits werden deco­ diert, um eines der I/O-Steuer- und Zustandsregister (weiter unten beschrieben) dieses Unterabschnitts auszuwählen. Es gibt zwei Leitungen von der PLA 136 der Fig. 11 zur Steuerung der Aktion der I/O-Unterabschnitte. Eine Leitung ist "Lesen" und die andere Leitung ist "Schreiben". Die richtigen Leitungen sind während der Phase 3 der Taktzyklen aktiv.
Die I/O-Register, Funktionen und Bitdefinitionen werden weiter unten beschrieben:
Schreibregister (gesteuert von der "Schreib"leitung)
Ereignis 0 Konfigurationsregister: Register, Maskierung 185, Fig. 19
Bit 0: Bei Ereignis Kippen Pin A
Bit 1: Bei Ereignis Kippen Pin B
Bit 2: Bei Ereignis Latch-8-Bit-Zählwert
Bit 3: Bei Ereignis Schließen Rampenschalter (momentan ein)
Bit 4: Bei Ereignis Lade 8-Bit-Zähler
Bits 5-7: Eingangsmultiplexer: MUX 190, Fig. 19
000 Übergang an Pin A
001 Übergang an Pin B
010 Stationszählwertereignis
011 Zählwertvergleichsereignis
100 Rampenstartereignis
101 Pin B Vergleichsereignis
Ereignis 1 Konfigurationsregister: Maskierregister 186, Fig. 19:
Bit 0: Bei Ereignis Kippen Pin A
Bit 1: Bei Ereignis Kippen Pin B
Bit 2: Bei Ereignis Latch-8-Bit-Zählwert
Bit 3: Bei Ereignis Schließen Rampenschalter (momentan ein)
Bit 4: Bei Ereignis Lade 8-Bit-Zähler
Bits 5-7: Eingangsmultiplexer: MUX 191, Fig. 19
000 Übergang an Pin A
001 Übergang an Pin B
010 Stationszählwertereignis
011 Zählwertvergleichsereignis
100 Rampenstartereignis
101 Pin B Vergleichsereignis
I/O-Register und Resourcen-Gemeinschaftsnutzung
8-Bit-Zähler-Laderegister: Zählerladeregister 180; Fig. 18;
Bits 0-7 = Zählwert
Schreibkommunikationen Datenausgaberegister: Datenregister 205, Fig. 23;
Bits 0-7 = Daten
Schreibkommunikationskonfigurationsregister: (nicht gezeigt) (geladen vom M-BUS)
verwendet zur Konfiguration des Kommunikationsteilsystems für Sende- und Empfangsfunktionen
Bit 0: 0 = Empfangen, 1 = Senden
Bit 1: NOP
Bit 2: NOP
Bit 3: Aktivierung Schieberegister
Bit 4: Eingabe Suchmodus
Bit 5: NOP
Bit 6: NOP
Bit 7: NOP
Ausgangskonfigurationsregister 0: (nicht gezeigt) (geladen vom M-BUS)
verwendet zum Einstellen von analogen und digitalen Pin-Konfigurationen
Bit 0: Aktivieren Pin A Analogausgabe
Bit 1: Aktivieren Pin A Digitalausgabe
Bit 2: Aktivieren Pin A Anheben
Bit 3: Aktivieren Pin A Absenken
Bit 4: Aktivieren Pin B Inversion
Bit 5: Aktivieren Pin B Digitalausgabe
Bit 6: Aktivieren Pin B Anheben
Bit 7: Aktivieren Pin B Absenken
Ausgangskonfigurationsregister 1: (nicht gezeigt) (geladen vom M-BUS)
verwendet zu Aktivierungs- und Vergleichsfunktionen
Bit 0: Aktiviere 8-Bit-Zähler
Bit 1: Vergleiche Pin B mit TTL-Bezug
Bit 2: Vergleiche Pin B mit einstellbarer Referenzgleichspannung
Bit 3: Vergleiche Pin B mit Rampenspannung
Bit 4: Vergleiche Pin B mit Pin A
Bit 5: Aktiviere RS-485-Treiber
Bit 6: Aktiviere Eingangshysterese an Pin A
Bit 7: Aktiviere Eingangshysterese an Pin B
Ausgangskonfigurationsregister 2: (nicht gezeigt) (geladen vom M-BUS)
verwendet zum Einstellen von Pin-Logikpegeln
Bit 0: Ausführen, Laden 8-Bit-Zähler mit Wert in 8-Bit-Zähler-Laderegister
Bit 1: Setze Pin A auf Logikpegel 1
Bit 2: Setze Pin A auf Logikpegel 0
Bit 3: Setze Pin B auf Logikpegel 1
Bit 4: Setze Pin B auf Logikpegel 0
Untere Hälfte des Frequenzmultiplizierregisters: Frequenzmul­ tiplizierer 178, Fig. 18
niedrigeres Byte des Frequenzmultiplizierers
Obere Hälfte des Frequenzmultiplizierregisters: Frequenzmul­ tiplizierer 178, Fig. 18
8-Bit-Vergleichs-Laderegister: Vergleichsladeregister 183, Fig. 18
Byte für Vergleich
Leseregister (gesteuert durch "Lese"-Leitung)
Leseereignis FIFO: FIFO 199, Fig. 19
Bit 0: 0 = Ereignis 1 trat ein
1 = Ereignis 0 trat ein
Bit 1: Pin A-Niveau während des Eintretens des Ereignisses
Bit 2: Pin B-Niveau während des Eintretens des Ereignisses
Lese I/O-Bedingungsregister:
I/O-Zutand:
Bit 0: Eingabe Pin A
Bit 1: Eingabe Pin B
Bit 2: 1 = Rampe Vergleich
Bit 3: NOP
Bit 4: NOP
Bit 5: 1 = FIFO hat Daten
0 - FIFO leer
8-Bit-Zählerlatch: Register 181, Fig. 18
Zählbyte
Kommunikationsdatenregister: Datenlatch 235, Fig. 23
Datenbyte
Kommunikationszustandsregister: (nicht gezeigt) (liest auf M-BUS)
Bit 0: Empfangsmodus: 1 = Daten in Schieberegister verfügbar
Sendemodus: 0 = Sendelatch bereit
Bit 1: 1 = im Suchmodus von Fig. 23
Gemeinsame Resourcennutzung
Bei dem derzeit bevorzugten Ausführungsbeispiel gibt es fünf Resourcen, die von den Prozessoren gemeinsam genutzt werden. Dies sind der EEPROM und die vier I/O-Unterabschnitte. Ein Hardware-"Semaphor-Register" (SR) und fünf Worte im RAN dienen zur Steuerung der gemeinsamen Resourcennutzung. Fig. 30 zeigt, wie sich die Multiprozessoren in gemeinsame Resourcen teilen. Das SR 95 der Fig. 12 liest und schreibt auf Bit 0 des M-BUS.
Jedes RAN-Wort enthält einen Zustand: Ruhe, Proz. #1, Proz. #2, Proz. #3 oder Proz. #4. Ein Prozessor kann einen RAN-Platz vor der Resourcenzuweisung abfragen, um festzustellen, ob eine Resource belegt ist. Wenn die Resource nicht zugewiesen ist, greift sie auf das Semaphor-Register in der weiter unten be­ schriebenen Weise zu. (Alternativ kann ein Prozessor den an­ fänglichen RAN-Abfrageschritt überspringen und den RAN-Platz nach dem Zugriff auf das Semaphor-Register prüfen.) Wenn die Resource bereits belegt ist, muß der Prozessor das Semaphor-Re­ gister auf "0" löschen und auf einen Neuversuch warten. Wenn die Resource in "Ruhe" ist, weist der Prozessor eine Resource dadurch zu, daß er den Zustand des RAN-Registers von "Ruhe" auf "Proz. #x" ändert und danach das Sempaphor-Register auf "0" löscht. Wenn der Prozessor mit der Resource fertig ist, löscht er den RAN-Platz auf "Ruhe".
Das SR ist ein 1-Bit-Hardware-Register. Während der Phase 3 seines zugehörigen Zyklus kann jeder Prozessor gegebenenfalls auf das SR zugreifen. Im Zeitablauf bedeutet dies, daß die Prozessoren auf das SR 295 einmal bei einem von vier aufeinan­ derfolgenden Taktzyklen (d. h. Phasen) zugreifen können. Das SR 295 ist normalerweise auf "0" gesetzt (set). In Fig. 30 ver­ langen die Prozessoren #1 und #3 keine Verwendung des SR 295. Prozessor #2 ist während des Zugriffs auf SR gezeigt. Wenn er bei Beginn des Zyklus eine "0" empfängt, weiß er, daß derzeit nichts zugewiesen oder gelöscht wird, und er stellt den rich­ tigen RAN-Platz ein, und wenn dieser "Ruhe" enthält, setzt der Prozessor seine "Proz. #" ein, wodurch die Resource zugeordnet wird, und danach "löscht" er das SR auf "0". Wenn der Prozes­ sor feststellt, daß ein anderer Prozessor die gemeinsam be­ nutzte Resource gerade verwendet, ordnet er nicht seine Proz. # zu und "löscht" danach das SR auf "0". In diesem Falle muß er warten und einen Neuversuch starten.
Einige Operationen, wie diejenigen auf dem EEPROM, können mehrere Taktzyklen in Anspruch nehmen, so daß der Prozessor das RAN-Register "zuweisen" sollte, jedoch das SR 295 während seiner Verwendung der gemeinsamen Resource freigeben sollte. Wenn der Prozessor seine Operation unter Verwendung des zuge­ wiesenen RAN-Platzes durchlaufen hat, greift er auf das SR wiederum zu, bis er eine "0" findet. Danach "löscht" er den RAN-Platz in "Ruhe" und "löscht" das SR 295 auf "0". Immer wenn ein Prozessor auf das SR 295 zugreift und eine "1" an­ trifft, läßt er das SR 295 im "1"-Zustand und muß für einen Neuversuch warten.
Im Beispiel in Fig. 30 ist Prozessor #4 als Prozessor gezeigt, der eine gemeinsam zu benutzende Resource benötigt. Er fragt das SR, um herauszufinden, ob es frei ist. Der Prozessor ver­ wendet eine "Test & Set"-Operation und da das SR 295 bereits auf einer "1" war, verläßt die Test & Set-Operation das Regi­ ster mit einer "1". Er muß jetzt warten und erneut versuchen. Er wird weiter versuchen, bis er Zugriff auf das SR 295 hat und die Resource im RAN-Wort in "Ruhe" findet.
V. PROTOKOLL A. Konkurrenz generell
Bei einer typischen Anwendung ist das Kommunikationsnetzwerk unter den Zellen leicht geladen, und die Zellen erfahren wenig oder keine Konkurrenzverzögerung. Im Falle starken Verkehrs kann das Netzwerk gesättigt werden. Eine starke Ladung erzeugt Kollisionen und bedingt daher Neusendungen. Wenn Neusendungen zu kollidieren fortfahren, kann sich das Netz Sättigen. Der Konkurrenz-Backoff-Algorithmus, der in dem Netzwerk Verwendung findet, verteilt den Verkehr rasch über eine längere Zeitspan­ ne, so daß sich das System aus dem Sättigungszustand erholen kann. Wenn der Verkehr nicht über eine längere Zeitperiode verteilt wird, wird das System instabil; es kann sich nicht aus dem Sättigungszustand erholen.
Zugriff auf einen Unterkanal unter Konkurrenzbedingungen wird von zwei Mechanismen reguliert, Zeitversetzung (deferring) und backing off. Zeitversetzung ist eine Kollisionsvermeidungs­ technik, die bei Gruppenbestätigungen Verwendung findet. Backing off ist eine Verkehrs- oder Lastnivellierungstechnik.
Zeitversetzung besteht aus Zählung freier Schlitze. Wenn die Anzahl der von der Zelle gesehenen freien Schlitzen dem Zeit­ versetzungszählwert gleich ist, überträgt die Zelle ihr Paket in dem nächsten verfügbaren Schlitz.
Beim backing off erhöht die Zelle ihre Wartezeit vor einem Versuch zum Wiederholungssenden eines Pakets, das einer Kolli­ sionsbedingung unterfallen ist. Die Größe dieser Erhöhung ist eine Funktion der Anzahl von Kollisionen oder Wiederholungs­ sendungen. Der diese Funktion implementierende Algorithmus wird "Backoff"- oder "Konkurrenz"-Algorithmus genannt.
Das Netzwerk benutzt eine Trägerabtast-Vielfachszugriffsme­ thode für das Auflösen der Konkurrenz auf dem Kommunikations­ kanal. Wenn eine Zelle sendebereit ist, hört sie zuerst auf den Kommunikationskanal. Wenn sie das Senden einer anderen Zelle hört, wartet sie auf einen freien Kanal. Sobald sie einen freien Kanal entdeckt, kann eine Zelle vor dem Senden eine Verzögerung einführen. Das Verfahren der Bestimmung die­ ser Verzögerung beruht auf einem Konkurrenzalgorithmus.
Die Zeit auf dem Kanal wird in Schlitzen gemessen, weil jeder Schlitz M-Bits bei der zuletzt festgestellten Empfangsbaud-Ra­ te ist (d. h. Schiebefrequenz). Wenn eine Zelle eine Verzöge­ rung einführt, bevor sie sendet, wartet sie eine ganze Anzahl von Schlitzen ab. Wenn eine Zelle einen leeren Kanal fest­ stellt, kann sie verzögern und danach, wenn sie sendefertig ist, den Versuch unternehmen auf einer Schlitzgrenze zu sen­ den. Wenn eine Zelle ein Paket, das eine Kollision erlitten hat, sendet, verzögert sie um eine Zeitspanne, die von dem Backoff-Algorithmus bestimmt wird. Die Backoff-Verzögerung ist gleichmäßig über N-Schlitze statistisch verteilt, wobei N durch den Backoff-Algorithmus eingestellt wird. Sein kleinster Wert ist 2, und er wird nach oben eingestellt durch den Back­ off-Algorithmus vor jeder Wiederholungssendung eines Pakets. Sein Maximalwert ist 2¹⁰.
B. Gruppenbestätigungspaketkonkurrenz
Ein Paket aus einem Gruppenannoncierer an einen Satz von Grup­ penhörern bewirkt, daß jeder der Leser eine Bestätigung (Quit­ tung) an den Annoncierer sendet. Ohne eine Methode zur Ent­ scheidung des Konkurrenzzustandes unter diesen Bestätigungen sind Kollisionen unvermeidbar. Um dieses Problem zu vermeiden, findet ein eingebautes Reservierungssystem für Gruppenbestäti­ gungen Verwendung. Eine Hörerzelle verwendet ihre Gruppenmit­ gliedsnummer, um festzustellen, welcher Schlitz für ihre Be­ stätigung zu verwenden ist. Gruppenmitglied 5 sendet seine Bestätigung im fünften freien Schlitz, und zwar dem Empfang des ursprünglichen Pakets folgend. Die Folge ist, daß Gruppen­ mitglied 1 seine Bestätigung, dem Originalpaket folgend, im ersten Schlitz sendet. Gruppenmitglied 2 sendet seine Bestäti­ gung in dem ersten Schlitz, der der Bestätigung des ersten Gruppenmitglieds folgt. Dieser Vorgang setzt sich solange fort, bis das letzte Gruppenmitglied auf das ursprüngliche Paket geantwortet hat. Wenn ein Gruppenmitglied nicht antwor­ tet und daher einen Schlitz leer läßt, so antwortet das näch­ ste Gruppenmitglied im nächsten Schlitz.
Das Konkurrenz- und I/O-Zustandsdiagramm ist in Fig. 24 ge­ zeigt. Die folgende Tabelle gibt die Zustände und ihre Be­ schreibungen an:
Konkurrenzzustände
Konkurrenzzustandsübergänge
C. Kollisionsfeststellung
Bei dem derzeit implementierten Ausführungsbeispiel findet keine Kollisionsfeststellung Verwendung. Gewöhnliche Schaltun­ gen können zur Schaffung dieses Merkmals Verwendung finden, wobei Zellen Antworten liefern, wie in IEEE802.3 angegeben. Bei Feststellung einer Kollision kann die Zelle ein Stausignal über eine Ein-Schlitz-Zeit geben, um sicherzustellen, daß alle Zellen auf dem Kanal die Kollision feststellen. Sie unter­ bricht danach die Sendung und führt den Backoff-Algorithmus aus. Der Backoff-Algorithmus stellt das Intervall für die Konkurrenz-Zufallsumrechnung (Randomisierung) ein. IEEE802.3 benutzt die Anzahl von Kollisionen, denen das Paket ausgesetzt ist, zur Berechnung des Backoff-Intervalls. Das Zellennetzwerk braucht nicht immer eine Kollisionsfeststellung zu haben, und daher kann der Backoff-Algorithmus der Zelle die Protokoll-ab­ geleitete Kollision zur Berechnung des Backoff-Intervall be­ nutzen. Wenn die Zelle einen Kollisionsdetektor hat, stellt dieser eine Kollision in demselben Schlitz fest, in welchem sie auftritt, und versucht die Übertragung erneut (nach dem Backoff-Intervall).
Für Zellen ohne Kollisionsdetektor stellt die Zelle das Auf­ treten einer Kollision fest, wenn die Protokoll-Auszeitperiode abläuft. Wenn eine Zelle ein Paket an mehrere Ziele (der Nor­ malfall) sendet, unterliegt es einer Kollision, wenn am Ende der Protokoll-Auszeitperiode keine Antworten von einem der Ziele empfangen worden sind. Wenn gerade eine Antwort empfan­ gen worden ist, gab es keine Kollision am Sendepunkt, und die Wiederholungssendung findet statt ohne erhöhte Verzögerung aufgrund von Backoff. Die Zelle führt dann den Backoff-Algo­ rithmus ebenso aus wie die Kollisionserfassung, und zwar unter Verwendung der abgeleiteten Kollisionszählung. Nach dem Back­ off-Intervall sendet die Zelle das Paket.
Daher liegt der Unterschied zwischen der Kollisionsfeststel­ lung und der Kollisionsableitung in der Länge der Zeit, die die Zelle braucht, um das Auftreten einer Kollision festzu­ stellen.
D. Backoff-Algorithmus
Der bei dem derzeit bevorzugten Ausführungsbeispiel verwendete Backoff-Algorithmus ist in IEEE802.3-Standard angegeben als abgeschnittener binärer Exponential-Backoff. Das Backoff-In­ tervall ist eine Exponentialfunktion der Zahl von Kollisionen (detailliert oder abgeleitet) seit der letzten erfolgreichen Übertragung. Ein Exponential-Backoff-Algorithmus gibt dem System die Stabilität, die es zur Erholung aus Sättigungsbe­ dingungen braucht. Durch exponentielle Verteilung der Bela­ stung in einem gesättigten System ermöglicht der Algorithmus dem System eine Erholung. Backoff-Intervall in Schlitzen = R, wie R = statistische Zahl linear verteilt über das Intervall:
0 < R < 2 EXP (min(10, n))
wobei n = Anzahl der Kollisionen.
Wenn eine Zelle zwei angeschlossene Sendeempfänger hat, sendet sie jedes Paket über beide Sendeempfänger. Da die Sendeempfän­ ger auf unterschiedliche Subkanäle zugreifen, erfahren sie unterschiedliche Lastbedingungen. Jeder Sendeempfänger wird als separater Unterkanal behandelt und hat seine eigenen Back­ off-Parameter (Kollisionszählung und Backoff-Intervall). Die Backoff-Parameter werden von den Zellen "gehalten", und zwar ein Satz für jede Sendung.
Die Zufallszahl für den Backoff-Algorithmus wird nach einer der folgenden beiden Methoden erzeugt: I. durch einen eine pseudostatistische Zahl erzeugenden Algorithmus, der mit der 48-Bit-Zellen-ID (garantiert speziell für die jeweilige Zelle, wie oben erörtert) eingeführt wird, II. durch Betreiben eines Zählers und Erhalten der Bits niedriger Ordnung bei Feststel­ lung eines externen Ereignisses.
Die Schlitze haben gleiche Längen wie die Bitrate der zuletzt empfangenen Daten. Zu beachten ist, daß Schlitzdauern von Zelle zu Zelle variieren würden, wenn jede Zelle ihre eigene interne Bitfrequenz benutzen würde.
E. Konkurrenzzeitgeber
Pakete, die mehrere Wege bis zu einem Ziel haben, können eine lange Konkurrenzverzögerung über eine Route und eine kürzere Verzögerung bei gleichzeitigem Lauf über eine andere Route erfahren. Wenn eine solche Konkurrenzverzögerung über eine zu lange Zeit zugelassen wird, könnte das spätere Paket ankommen, nachdem die Ziel-Empfangsfolgenummer zur gleichen Folgenummer im Paket zurückgelaufen ist. Ein Paket könnte so außer der Reihenfolge ankommen, ohne daß das ARQ-Protokoll dies fest­ stellen würde. Um diese Art von Fehler zu vermeiden, benutzt jedes Paket das Konkurrenz-Zeitgabefeld (Fig. 6), welches durch die Anzahl von Schlitzen dekrementiert wird, um die das Paket aus Konkurrenzgründen bei jedem Abschnitt in einem Mehr­ abschnittsweg gewartet hat. Wenn der Zählwert zu Null wird, wird das Paket abgelegt.
F. ARQ-Protokoll
Die Zelle benutzt ein gleitendes Fensterprotokoll mit einer Fenstergröße von 1 und Modulo-2-Sequenznumerierung (gleich einem Stopp- und Warte-Protokoll). Der Verknüpfungssteuerme­ chanismus ist sehr ähnlich dem HDLC abgeglichenen Asynchronmo­ dus. Der prinzipielle Unterschied besteht darin, daß bei einer 1-Bit-Sequenznumerierung anstelle von Bestätigungspaketen mit dem Poll/Final-Bitsatz jedes Informationspaket eine Bestäti­ gung haben muß.
Bevor der ARQ-Mechanismus arbeiten kann, muß eine Verbindung zwischen den beiden kommunizierenden Geräten (Zelle oder Netz­ werksteuergerät) hergestellt werden. Der Verbindungsprozeß ist in dem "Verbindungs"-Abschnitt weiter unten in dieser Anmel­ dung beschrieben. Der ARQ-Mechanismus arbeitet nur dann, wenn die Zelle in dem Verbindungszustand ist. Die ARQ-Zustände können als Teilzustände des Verbindungszustandes angesehen werden.
Wenn eine Zelle eine Nachricht sendet, wartet sie auf eine Antwort vom Ziel. Wenn die Zelle keine Bestätigung innerhalb einer vorgegebenen Auszeitperiode empfängt, nimmt sie an, daß die Nachricht verlorengegangen ist, und sie sendet die Nach­ richt erneut.
Zwei Paketarten können zum Übertragen einer Bestätigung ver­ wendet werden, ein Nur-Bestätigungspaket oder ein Informati­ onspaket. Die Bestätigung wird in der Empfangssequenznummer des Pakets geführt. Das Nur-Bestätigungspaket hat kein Nach­ richtenfeld und wird von dem ACK-Befehl im Verknüpfungsbe­ fehlsfeld identifiziert. Ein Informationspaket enthält ein Nachrichtenfeld und wird von dem Info-Befehl im Verknüpfungs­ befehlsfeld identifiziert.
Fig. 25 ist das Verknüpfungsniveau-ARQ-Zustandsdiagramm und definiert zusammen mit der nachfolgenden Tabelle die verschie­ denen ARQ-Zustände.
Eine Zelle muß eine Sendefolgenummer für jeden Adressaten speichern, mit dem sie kommuniziert. Ein Adressat kann eine Zelle, eine Gruppe oder eine Steuereinrichtung sein. Zum Emp­ fang muß eine Zelle die empfangene Sequenznummer jeder Quelle sichern, aus der sie empfängt. Eine Quelle kann eine Zelle, eine Gruppe oder eine Steuereinrichtung sein. Wenn eine Zelle eine Nachricht empfängt, prüft sie die CRC auf der Nachricht. Wenn die CRC ungültig ist, antwortet die Zelle nicht auf die Nachricht. Die eine Nachricht empfangende Zelle prüft auch die Sequenznummer der Nachricht. Wenn die Sequenznummer angibt, daß es sich hierbei um ein Duplikatpaket handelt, bestätigt die Zelle den Empfang des Pakets an den Sender, läßt jedoch das Paket nicht zur Anwendersoftware durch. Das ARQ-Protokoll benutzt ein Bit, das bedeutet "dies ist eine Wiederholungssen­ dung durch den Sender". Ein Empfänger bestätigt eine Duplikat­ sendung nicht, sofern die Nachricht kein Neusendungsbit einge­ schaltet hat. Die Zelle sichert die Sequenznummer für die zuletzt empfangene Nachricht für jede Gruppe, zu der sie als Hörer gehört. Sie hat eine separate 1-Bit-Sendefolgenummer und eine 1-Bit-Empfangsfolgenummer für Nachrichten, die mit der Zellenadresse adressiert sind (benutzt bei Kommunikation mit Steuereinrichtungen).
Von Zelle-zu-Zelle-Kommunikationen finden statt über Gruppen­ adressen. Direktes Adressieren mit Zellenadressen wird für Netzwerk-Steuerfunktionen verwendet. Die Zelle kommuniziert mit einer Gruppiereinrichtung oder einem Netzwerk-Steuergerät in diesen Fällen. Eine Zelle kann nur ein Gespräch bzw. einen Informationsaustausch während einer vorgegebenen Zeit haben, das bzw. der Zellenadressen benutzt, da sie Mittel zur Spei­ cherung nur eines Satzes dieser Sequenznummern enthält.
Wenn eine Steuereinrichtung mit einer Zelle zu kommunizieren sucht, eröffnet sie die Kommunikation durch Senden eines Pa­ kets mit einem Verbindungsbefehl im Verknüpfungssteuerfeld. Dieser Befehl initialisiert die Sequenznummern. Nach Empfang dieses Befehls akzeptiert die Zelle keine von einer anderen Steuereinrichtung (über die Zellenadresse) an sie adressierte Nachrichten, bis das Gespräch endet. Das Gespräch endet, wenn die Steuereinrichtung an die Zelle einen Unterbrechungsbefehl sendet.
Die Zeitspanne, welche die Zelle auf eine Bestätigung einer Nachricht wartet, hängt von der Art der benutzten Route ab. Generell stellt die Zelle genug Zeit zur Verfügung, damit das Paket an seinem Ziel ankommen kann, plus Protokollverarbei­ tungszeit in der Zielzelle und Übergabezeit für das die Bestä­ tigung tragende Rückgabepaket.
Die Protokoll-Auszeitspanne für Multiabschnittspakete wird auch von der Kollisionszählung beeinflußt. Selbst bei sehr rauschbehafteten Umgebungen ist es wahrscheinlicher, daß der Grund dafür, daß das Paket seinen Zielort nicht rechtzeitig erreicht hat, auf eine Konkurrenzbedingung anstatt auf einen Übertragungsfehler zurückgeht. Wenn ein Paket neugesendet wird, wird angenommen, daß die Kollisionszählung eine Angabe der Systembelastung und der erwarteten Konkurrenzverzögerung für ein Mehrabschnittspaket ist. Die Verzögerungsperiode für Mehrabschnittspakete wird aufwärts verstellt als Funktion einer Kollisionszählung. Die Auszeitperiode ist daher eine Funktion der Übertragungsbaudrate, der Zahl von Abschnitten und des Kollisionszählwerts.
G. Verknüpfungssteuerbefehle
Verknüpfungssteuerbefehle steuern die Operation des ARQ-Proto­ kolls und den Verknüpfungsherstellungsprozeß (siehe nächsten Abschnitt). Das Verknüpfungsbefehlsfeld eines Pakets enthält stets einen Verknüpfungsbefehl.
ARQ-Protokollbefehle
INFO: Informationspaket (erfordert Bestätigung)
ACK: Nur-Bestätigungs-Paket (erfordert keine Bestätigung)
Verbindungssteuerbefehle
CONN: Verbinde
DISC: Unterbreche
SI: Setze Initialisierung
XND: Austausch Netzwerkdaten
Antworten auf Verbindungssteuerbefehle
CMDR: Befehlsabweisung
RD: Anforderung Unterbrechung
RI: Anforderung Initialisierung
UA: unnumerierte Bestätigung
Nur Pakete mit den ACK- und INFO-Befehlen verwenden Sequenz­ numerierung. Die INFO-Pakete haben zwei Sequenznummern, eine Sendesequenznummer und die Sequenznummer des letzten empfange­ nen Pakets. ACK-Pakete haben beide Sequenznummernfelder, je­ doch wird die Sendesequenznummer vom Ziel ignoriert.
Pakete mit von ACK oder INFO abweichenden Befehlen werden unnumerierte Pakete genannt. Unnumerierte Pakete werden in Stopp- und Warte-Art über einen UA-Befehl bestätigt. Unnumme­ rierte Pakete enthalten kein Nachrichtenfeld.
H. Verbindungssteuerung
Bevor eine Steuereinrichtung mit einer Zelle kommunizieren kann, muß sie eine Verbindung mit der Zelle herstellen. Die Herstellung einer Verbindung besteht aus der Initialisierung der Sequenznummern und dem Bringen der Steuereinrichtung und der Zelle in einen bekannten Zustand. Die Verbindungsherstel­ lungs- und Aufrechterhaltungsmaßnahmen werden von in Software implementierten Zustandsmaschinen gesteuert.
Eine Annonciererzelle muß eine Verbindung mit jeder Hörerzelle in ihrer Gruppe herstellen. Nur wenn die Verbindungen herge­ stellt sind, kann der Annoncierer mit den Hörern kommunizie­ ren. Verbindungen werden von einem Untersatz aus Verknüpfungs­ steuerbefehlen gesteuert. Die Befehle werden von einer Primär­ station ausgegeben. Eine Sekundärstation erhält einen Befehl und sendet eine Antwort an die Primärstation. In einer Gruppe ist die Primärstation der Annoncierer. Die Hörer sind Sekun­ därstationen. Wenn eine Netzwerk-Steuereinrichtung mit einer Zelle kommuniziert, so ist die Steuereinrichtung die Primär­ station und die Zelle die Sekundärstation. Die Verknüpfungs­ steuerbefehle und ihre Antworten sind unten angegeben. Die INFO- und ACK-Befehle sind ARQ-Protokollbefehle; der Rest sind Verbindungssteuerbefehle.
Die Verbindungszustandsdiagramme der Fig. 26 und 27 bezie­ hen sich auf die Primär- und Sekundärstationen. Die Primärsta­ tion steuert die Verbindung. Die Sekundärstation kann diesen Zustand der Verbindungsänderung anfordern; sie kann jedoch die Verbindung nicht selbständig ändern, sofern ihr dies nicht von der Primärstation befohlen wird.
Primärstationsverbindungszustände
Sekundärstationsverbindungszustände
Zu beachten:
Neuversuche
Eine Antwort kann N-mal neu versucht werden. Das Ereignis, welches einen Neuversuch N+1-mal be­ wirkt, ist als fataler Fehler definiert und bewirkt Initiali­ sierung. Die Zelle hält einen Neuversuchszählwert aufrecht, und er wird inkrementiert, wenn irgendeine von INFO oder ACK abweichende Antwort neu versucht wird. Die Neuversuchszählung wird immer dann gelöscht, wenn eine Originalantwort an die Primärzelle gesendet wird.
I. Abbruchfolge
Eine ein Paket sendende Zelle kann das Paket durch Senden einer Abbruchfolge anstelle einer Fortsetzung der Sendung des Pakets abbrechen. Die Abbruchfolge ist eine Gruppe von wenig­ stens zwölf Einsen, die aufeinanderfolgend gesendet werden. Eine Empfangszelle identifiziert einen Abbruch mit Hilfe des Codeverifizierers der Fig. 16. Ein Empfangspaket behandelt jede 3-aus-6-Codeverletzung als einen Abbruch. Eine Folge davon ist, daß eine Verknüpfungsruhebedingung zu einem Abbruch führt. Wenn die Verknüpfung über mehr als eine Bitzeitlänge im Ruhezustand ist (keine Übergänge), ist das Resultat eine Code­ verletzung. Wenn eine ein Paket empfangende Zelle eine Ab­ bruchfolge feststellt, legt sie den Teil des Pakets ab, der eingetaktet worden ist, und beginnt mit der Suche nach einer neuen Paketpräambel. Die Abbruchfolge wird auch zum Stauen nach Feststellung einer Kollision verwendet.
J. System-ID
In Fig. 29 ist das Verfahren veranschaulicht, mit dessen Hilfe die 48-Bit-System-ID innerhalb der Pakete benutzt wird. 32 Bits der System-ID, gezeigt als Feld 251, werden direkt in das Paket eingesetzt, wie durch das Feld 255 angegeben ist. Die restlichen 16 Bits dienen zur Berechnung des Paket-CRC. An­ fangs beginnt das CRC-Register mit alles Einsen, wie durch Feld 252 bei Beginn der CRC-Berechnung angegeben ist. Danach wird das 16-Bit-Feld 250 der System-ID in der CRC-Berechnung zur Entwicklung eines 16-Bit-Feldes 253 benutzt. Das Feld 253 wird im EEPROM gespeichert und als voreingestelltes CRC-Feld jedesmal dann benutzt, wenn ein Paket-CRC berechnet wird.
Wenn ein Paket gesendet werden soll, sobald das voreingestell­ te Feld gespeichert ist, wird das gespeicherte CRC-Feld an das CRC-Register angelegt. Das 16-Bit-Paket-CRC-Feld wird unter Verwendung dieses vorhandenen Feldes berechnet, und die ande­ ren Felder im Paket dienen zur Berechnung des Paket-CRC. (Alle Felder mit Ausnahme des Konkurrenzzeitgabefeldes werden ver­ wendet.) Die anderen 32 Bits der System-ID werden innerhalb des Pakets übertragen.
Wenn ein Paket empfangen wird, berechnet der Prozessor ein CRC für das empfangene Paket, indem er zuerst das CRC-voreinge­ stellte Feld in sein CRC-Register speichert und danach den Paket-CRC berechnet (wiederum wird das Konkurrenzzeitgabefeld nicht benutzt). Wenn das neuberechnete CRC-Feld nicht mit dem Feld im Paket übereinstimmt, wird angenommen, daß das Paket unrichtig übermittelt wurde oder daß das übermittelte Paket bei richtigem Empfang eine andere System-ID hat und daher abgelegt werden sollte.
VI. Gruppiereinrichtung
Die Gruppiereinrichtung kann verschiedene Ausführungsformen annehmen und kann mit kommerziell erhältlicher Hardware, bei­ spielsweise einem Personalcomputer realisiert werden. Diese Computer können in geeigneter Weise programmiert werden, um zahlreiche Funktionen auszuführen, die in der vorliegenden Anmeldung in Verbindung mit den Funktionen der Gruppierein­ richtung beschrieben worden sind. Beispielsweise können sie geeignet programmiert werden, um die zum Kommunizieren mit den Zellen für die Gruppenbildung benötigten Pakete zu entwickeln. Andere Funktionen, wie Erzeugung der Zufallszahl für die Ver­ wendung in den Paketen, können mit bekannten Programmen er­ zeugt werden.
Ein Apple-II-Computer kann beispielsweise als Gruppiereinrich­ tung verwendet werden. Die 48-Bit-System-ID kann auf einer Platte gespeichert werden; oder eine gedruckte Schaltungskarte kann vorgesehen sein, die in einen der Schlitze des Apple-II-Com­ puters eingesteckt wird. Die Karte kann die System-ID enthalten, die einer Zelle, wie der Zelle 232 der Fig. 28 entnommen worden ist. Während Gruppen gebildet werden, können die zugeordneten Gruppennummern, Mitgliedsnummern usw. auf der Platte oder in einem EEPROM auf einer Karte gespeichert wer­ den.
In Fig. 28 sind die Komponenten einer derzeit bevorzugten Gruppiereinrichtung dargestellt. Sie umfassen eine CPU 226, die ein gewöhnlicher Mikroprozessor sein kann. Die CPU kommu­ niziert mit einem Speicher, der einen RAM 227, einen ROM 228 und Speichermittel 229 zum Speichern der System-ID aufweist. Wenn eine Floppy-Disk verwendet wird, werden die System-ID und das Programm (das anderenfalls im ROM 228 gespeichert ist) auf der Disk gespeichert, wobei das Programm zur Ausführung an den RAM übertragen wird.
Eine Displayeinrichtung 230, beispielsweise ein gewöhnlicher Monitor, ist mit der CPU zur Entwicklung eines Anwenderdisplay gekoppelt; beispielsweise kann das Display benutzt werden, um Listen der Gruppen mit ihren ASCII-Namen zu liefern. Eine Tastatur 231 wird benutzt, um Befehle in die CPU einzugeben.
Die CPU ist verbunden mit einer Zelle 232 gezeigt, wobei die Zelle über einen Sendeempfänger 233 mit einem Netzwerk gekop­ pelt ist. Die Zelle 232 ist Bestandteil der Gruppiereinrich­ tungen, und die Zellen-ID wird von den Gruppiereinrichtungen als eine System-ID benutzt. Typische vom Computer an eine Zelle übertragene Nachrichten sind in Anlage B gezeigt, bei­ spielsweise die Nachricht der Zuordnung der Zielzelle als Annoncierer in einer bezeichneten Gruppe ist eine von der Gruppiereinrichtung erzeugte Nachricht. Die Gruppiereinrich­ tung kann direkt mit der Zelle über eines der drei Leitungs­ paare in Verbindung treten, welche mit den I/O-Unterabschnit­ ten gekoppelt sind, oder sie kann mit ihr über den Auswahlpin kommunizieren, der es ermöglicht, daß Nachrichten aus der CPU 226 in den vierten I/O-Unterabschnitt gelesen werden.
Daher wurde ein Netzwerk zum Erfassen, Kommunizieren und Steu­ ern beschrieben, das verteilte Intelligenz hat. Obwohl in dieser Anmeldung ein einfaches Beispiel der Verwendung von Zellen in einer Heimumgebung beschrieben worden ist, ist es für den Fachmann klar, daß die beschriebene Erfindung in zahl­ reichen anderen Anwendungen eingesetzt werden kann. Anlage C enthält eine Liste einiger anderer Anwendungsmöglichkeiten zur Verwendung der vorliegenden Erfindung.
Anlage A, Paketbeispiele
Routentypen für Paketbeispiele
1 volladressiert
2 offenes Fluten
3 beschränktes Fluten
4 Gruppenfluten
Zu Beachten: Die Paketgrößen sind in Zellenspeicherbits (vor der 3-aus-6-Codierung). Ein Paket auf einem Kommunikations­ unterkanal nach der Umsetzung in den 3-aus-6-Code ist 50% größer.
Einzelabschnitt
Paketformat:
Präambel, 16 Bits
Flag, 4 Bits
Zielzellenadresse, 48 Bits
Konkurrenzzeitgeber, 10 Bits
Konkurrenzzeitgeber-Prüfsumme, 6 Bits
Abschnittszähler, 4 Bits
Randomisierer, 8 Bits
Verknüpfungssteuerung
Wiederholungssendungsflag, 1 Bit
RCV-Folge, 1 Bit
XMT-Folge, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Routentyp, 4 Bits = 1 (volladressiert)
Quellenzellenadresse, 48 Bits
Nachricht, 16 bis 512 Bits
Nachrichtentyp, 8 Bits
Nachrichteninhalt, 8 bis 511 Bits,
Verschlüsselungsprüfung, 16 Bits
CRC, 16 Bits
Flag, 4 Bits
Einzelabschnitt
Antwortformat:
Präamble, 16 bits
Flag, 4 Bits
System-ID, 32 Bits
Zielzellenadresse, 48 Bits
Konkurrenzzeitgeber, 10 Bits
Konkurrenzzeitgeber-Prüfsumme, 6 Bits
Abschnittszählwert, 4 Bits
Randomisierer, 8 Bits
Verknüpfungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Routentyp, 4 Bits = 1 (volladressiert)
Quellenzellenadresse, 48 Bits
Verschlüsselungsprüfung, 16 Bits
CRC, 16 Bits
Flag, 43 Bits
Mehrabschnitts-Volladresse
Paketformat:
Präambel, 16 Bits
Flag, 4 Bits
System-ID, 32 Bits
Next-Zellen-Adresse, 48 Bits
Konkurrenzzeitgeber, 10 Bits
Konkurrenzzeitgeber-Prüfsumme, 6 Bits
Abschnittszählwert, 4 Bits
Randomisierer, 8 Bits
Verknüpfungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Routentyp, 4 Bits = 1 (volladressiert)
Zellenadreßliste
Adreßzählwert, 4 Bits
Adressen, 48-768 Bits
Quellenzellenadresse, 48 Bits
Nachricht, 16 bis 512 Bits
Nachrichtentyp, 8 Bits
Nachrichteninhalt, 8 bis 511 Bits
Verschlüsselungsprüfung, 16 Bits
CRC, 16 Bits
Flag, 4 Bits
Mehrabschnittsvolladresse
Antwortformat:
Präambel, 16 Bits
Flag, 4 Bits,
System-ID, 32 Bits
Bestimmungszellenadresse, 48 Bits
Konkurrenzzeitgeber, 10 Bits
Konkurrenzzeitgeber-Prüfsumme, 6 Bits
Abschnittszählung, 4 Bits
Randomisierer, 8 Bits
Verknüpfungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Routentyp, 4 Bits = 1 (volladressiert)
Zellenadreßliste
Adreßzählwert, 4 Bits
Adressen, 48-768 Bits
Quellenzellenadresse, 48 Bits
Verschlüsselungsprüfung, 16 Bits
CRC, 16 Bits
Flag, 4 Bits
Offenes Fluten
Paketformat:
Präambel, 16 Bits
Flag, 4 Bits
System-ID, 32 Bits
Sende-Adresse, 48 Bits = alles Nullen
Konkurrenzzeitgeber, 10 Bits
Konkurrenzzeitgeber-Prüfsumme, 6 Bits
Abschnittszählwert, 4 Bits
Randomisierer, 8 Bits
Verknüpfungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Routentyp, 4 Bits = 2 (offenes Fluten)
Bestimmungszellenadresse, 48 Bits
Quellenzellenadresse, 48 Bits
Nachricht, 16 bis 512 Bits
Nachrichtentyp, 8 Bits
Nachrichteninhalt, 8 bis 511 Bits
Verschlüsselungsprüfung, 16 Bits
CRC, 32 Bits
Flag, 4 Bits
Offenes Fluten
Antwortformat:
Präambel, 16 Bits
Flag, 4 Bits
System-ID, 32 Bits
Sende-Adresse, 48 Bits = alles Nullen
Konkurrenzzeitgeber, 10 Bits
Konkurrenzzeitgeber-Prüfsumme, 6 Bits
Abschnittszählwert, 4 Bits
Randomisierer, 8 Bits
Verknüpfungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Routentyp, 4 Bits = 2 (offenes Fluten)
Bestimmungszellenadresse, 48 Bits
Quellenzellenadresse, 48 Bits
Verschlüsselungsprüfung, 16 Bits
CRC, 16 Bits
Flag, 4 Bits
Beschränktes Fluten
Paketformat:
Präambel, 16 Bits
Flag, 4 Bits
System-ID, 32 Bits
Sende-Adresse, 48 Bits = alles Nullen
Konkurrenzzeitgeber, 10 Bits
Konkurrenzzeitgeber-Prüfsumme, 6 Bits
Abschnittszählwert, 4 Bits
Randomisierer, 8 Bits
Verknüpfungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Routentyp, 4 Bits = 2 (beschränktes Fluten)
Bestimmungszellenadresse, 48 Bits
Quellenzellenadresse, 48 Bits
Nachricht, 16 bis 512 Bits
Nachrichtentyp, 8 Bits
Nachrichteninhalt, 8 bis 511 Bits
Verschlüsselungsprüfung, 16 Bits
CRC, 32 Bits
Flag, 4 Bits
Beschränktes Fluten
Antwortformat:
Präambel, 16 Bits
Flag, 4 Bits
System-ID, 32 Bits
Sende-Adresse, 48 Bits = alles Nullen
Konkurrenzzeitgeber, 10 Bits
Konkurrenzzeitgeber-Prüfsumme, 6 Bits
Abschnittszählwert, 4 Bits
Randomisierer, 8 Bits
Verknüpfungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Routentyp, 4 Bits = 2 (beschränktes Fluten)
Bestimmungszellenadresse, 48 Bits
Quellenzellenadresse, 48 Bits
Verschlüsselungsprüfung, 16 Bits
CRC, 16 Bits
Flag, 4 Bits
Gruppenannoncierung
Paketformat:
Präambel, 16 Bits
Flag, 4 Bits
System-ID, 32 Bits
Gruppenadresse, 48 Bits
Konkurrenzzeitgeber, 10 Bits
Konkurrenzzeitgeber-Prüfsumme, 6 Bits
Abschnittszählwert, 4 Bits
Randomisierer, 8 Bits
Verknüpfungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Routentyp, 4 Bits = 4 (Gruppenfluten)
Quellenmitgliedsnummer, 8 Bits
Zielmitgliedsnummer, 8 Bits (0 = Senden)
Nachricht, 16 bis 512 Bits
Nachrichtentyp, 8 Bits
Nachrichteninhalt, 8 bis 511 Bits
Verschlüsselungsprüfung, 16 Bits
CRC, 16 Bits
Flag, 4 Bits
Gruppenannoncierung
Antwortformat:
Präambel, 16 Bits
Flag, 4 Bits
System-ID, 32 Bits
Gruppenadresse, 48 Bits
Konkurrenzzeitgeber, 10 Bits
Konkurrenzzeitgeber-Prüfsumme, 6 Bits
Abschnittszählwert, 4 Bits
Randomisierer, 8 Bits
Verknüpfungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Routentyp, 4 Bits = 4 (Gruppenfluten)
Quellenmitgliedsnummer, 8 Bits
Zielmitgliedsnummer, 8 Bits
Verschlüsselungsprüfung, 16 Bits
CRC, 16 Bits
Flag, 4 Bits
Sondieren
Paketformat:
Präambel, 16 Bits
Flag, 4 Bits
System-ID, 32 Bits
Gruppenadresse, 48 Bits
Konkurrenzzeitgeber, 10 Bits
Konkurrenzzeitgeber-Prüfsumme, 6 Bits
Abschnittszählwert, 4 Bits
Randomisierer, 8 Bits
Verknüpfungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Routentyp, 4 Bits = 3 (beschränktes Fluten)
Zielzellenadresse, 48 Bits
Quellenzellenadresse, 48 Bits
Nachricht, 49 bis 769 Bits
Nachrichtentyp, 8 Bits
Nachrichteninhalt, 48 bis 768 Bits (Routenliste)
Verschlüsselungsprüfung, 16 Bits
CRC, 16 Bits
Flag, 4 Bits
Sondieren
Antwortformat:
Flag, 4 Bits
System-ID, 32 Bits
Gruppenadresse, 48 Bits
Konkurrenzzeitgeber, 10 Bits
Konkurrenzzeitgeber-Prüfsumme, 6 Bits
Abschnittszählwert, 4 Bits
Randomisierer, 8 Bits
Verknüpfungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Routentyp, 4 Bits = 3 (beschränktes Fluten)
Zielzellenadresse, 48 Bits
Quellenzellenadresse, 48 Bits
Nachrichtenfeld
Nachrichtentyp, 8 Bits
Nachrichteninhalt, Routenliste
Verschlüsselungsprüfung, 16 Bits
CRC, 16 Bits
Flag, 4 Bits
Sendebefehl
Paketformat:
Präambel, 16 Bits
Flag, 4 Bits
System-ID, 32 Bits
Gruppenadresse, 48 Bits
Konkurrenzzeitgeber, 10 Bits
Konkurrenzzeitgeber-Prüfsumme, 6 Bits
Abschnittszählwert, 4 Bits
Randomisierer, 8 Bits
Verknüpfungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Routentyp, 4 Bits = 3 (beschränktes Fluten)
oder 4 (offenes Fluten)
Quellenadresse, 48 Bits
Nachricht, 16 bis 512 Bits
Nachrichtentyp, 8 Bits
Nachrichteninhalt, 8 bis 511 Bits
Verschlüsselungsprüfung, 16 Bits
CRC, 16 Bits
Flag, 4 Bits
Sendebefehl
Antwortformat:
KEINE ANTWORT
Anlage B - Nachrichtentypen
Sondieren
Funktion: Bestimme die beste Route vom Annoncierer zum Hörer
Quelle: Gruppenannoncierer
Adressentyp: Zelle
Routenbildungsmethode: begrenztes Fluten
Nachrichtentyp: 2 (Zahl für 8-Bit-Feld)
Nachrichteninhalt: Adreßzählwert (1 Byte), (Anzahl der Zellen-ID′s in Sondierpaket - dies ist die Zahl der Zellen für das neugesendete Paket)
Adreßliste
Sondierergebnis
Funktion: Berichte die Adreßliste in dem von der Zielzelle zuerst empfangenen Sondierpaket
Quelle: Zuvor von einer Sondiernachricht adressierte Zelle
Adreßtyp: Zelle
Routenbildungsmethode: begrenztes Fluten
Nachrichtentyp: 3
Nachrichteninhalt: Adreßzählwert (1 Byte), Adreßliste
Zuweisung Gruppenannoncierer
Funktion: Zuweisen der Zielzelle als Annoncierer in bezeichneter Gruppe
Quelle: Gruppiereinrichtung
Ziel: Zelle
Adreßtyp: Zelle oder Gruppenmitglied
Routenbildungsmethode: begrenztes Fluten oder Gruppenfluten
Nachrichtentyp: 4
Nachrichteninhalt: Gruppennummer, Mitgliedsnummer
Gruppenannoncierer
Funktion: Setze die Zielzelle ab als Annoncierer in der bezeichneten Gruppe
Quelle: Gruppiereinrichtung
Ziel: Annoncierzelle
Adreßtyp: Zelle oder Gruppenmitglied
Routenbildungsmethode: begrenztes Fluten oder Gruppenfluten
Nachrichtentyp: 5
Nachrichteninhalt: keiner
Zuweisung Gruppenhörer
Funktion: Weise der Zielzelle die Funktion eines Hörers in der bezeichneten Gruppe zu
Quelle: Gruppiereinrichtung
Ziel: Zelle
Adressentyp: Zelle oder Gruppenmitglied
Gruppenbildungsmethode: beschränktes Fluten oder Gruppenfluten
Nachrichtentyp: 6
Nachrichteninhalt: Gruppennummer, Mitgliedsnummer
Gruppenhörer
Funktion: Setze die Zielzelle in ihrer Funktion als Hörer in der bezeichneten Gruppe ab
Quelle: Gruppiereinrichtung
Ziel: Hörerzelle
Adreßtyp: Zelle oder Gruppenmitglied
Routenbildungsmethode: beschränktes Fluten oder Gruppenfluten
Nachrichtentyp: 7
Nachrichteninhalt: keiner
Zuweisung Gruppenwiederholer
Funktion: Weise der Zielzelle die Funktion eines Wiederholers in der bezeichneten Gruppe zu
Quelle: Gruppiereinrichtung
Ziel: Zelle
Adreßtyp: Zelle oder Gruppenmitglied
Routenbildungsmethode: beschränktes Fluten oder Gruppenfluten
Nachrichtentyp: 8
Nachrichteninhalt: Gruppennummer, Mitgliedsnummer
Gruppenwiederholer
Funktion: Setze die Funktion der Zielzelle als Wiederholer in der bezeichneten Gruppe ab
Quelle: Gruppiereinrichtung
Ziel: Gruppenwiederholerzelle
Adreßtyp: Zelle oder Gruppenmitglied
Routenbildungsmethode: beschränktes Fluten oder Gruppenfluten
Nachrichtentyp: 9
Nachrichteninhalt: keiner
Zuweisung Wiederholer
Funktion: Zellenanweisung zum Handeln als Wiederholer. Benutzt zur Zuordnung von Zellen, die normalerweise nicht als Wiederholer zugelassen sind, d. h. eine Zelle mit einem Sendeempfänger auf nichtstrahlendem Medium
Quelle: Steuereinrichtung
Ziel: Zelle
Adressentyp: Zelle
Routenbildungsmethode: volladressiert, offenes Fluten, beschränktes Fluten
Nachrichtentyp: 10
Nachrichtentyp: keiner
Beendigung
Funktion: Sende Nachricht, die allen Zellen sagt, daß sie ihren Sendebetrieb bis zum Befehl zur Wiederaufnahme zu stoppen haben
Quelle: Steuereinrichtung
Ziel: Zellen
Adressentyp: Sender oder Zeller
Routenbildungsmethode: beschränktes Fluten oder offenes Fluten
Nachrichtentyp: 11
Nachrichteninhalt: keiner
Berichte deine Eingabe
Funktion: Befehle an eine Zelle zum Berichten ihrer Eingabe
Quelle: Zelle oder Steuereinrichtung
Ziel: Zelle
Adressentyp: beliebig
Routenbildungsmethode: beliebig
Nachrichtentyp: 12
Nachrichteninhalt: Eingabenummer (Byte)
Berichte deinen Ausgang
Funktion: Befehle an Zelle, ihren Ausgang zu berichten
Quelle: Steuereinrichtung oder Zelle
Ziel: Zelle
Adressentyp: beliebig
Routenbildungsmethode: beliebig
Nachrichtentyp: 13
Nachrichteninhalt: Ausgabenummer (Byte)
Fernladen
Funktion: Fernladen von Daten oder Code
Quelle: Steuereinrichtung
Ziel: Zelle
Adressentyp: beliebig
Routenbildungsmethode: beliebig
Nachrichtentyp: 14
Nachrichteninhalt: Adresse, Länge, Code
Setze Kommunikationsparameter
Funktion: Setze einen Kommunikationsparameter in der Zelle
Quelle: Steuereinrichtung
Ziel: Zelle
Adreßtyp: beliebig
Routenbildungsmethode: beliebig
Nachrichtentyp: 15
Nachrichteninhalt: Parameternummer, Wert
Annoncierung
Funktion: Annonciere Sensordaten
Quelle: Gruppenannoncierer
Ziel: Gruppe
Adressentyp: Gruppe, Sende
Routenbildungsmethode: Gruppenfluten
Nachrichtentyp: 16
Nachrichteninhalt: 0-255 (ein Byte)
Anlage C, Anwendungen

Claims (9)

1. Zelle, die in einem mehrzelligen Netzwerk zur Meßwerter­ fassung, Kommunikation und Steuerung dient und einen Prozessor (100) und einen den Prozessor mit dem Netzwerk koppelnden Ein/Ausgabe-Abschnitt (107-110) aufweist,
wobei der Ein/Ausgabe-Abschnitt Eingangs- und/oder Ausgangssignale (A, B) mit dem Netzwerk austauscht,
dadurch gekennzeichnet,
daß der Ein/Ausgabe-Abschnitt (107-109) aufweist:
mehrere Schaltungselemente umfassend
eine Zustandsmaschine (189) zur Entwicklung von Steuersignalen (CLK, CLR) für den Ein/Ausgabeabschnitt,
wenigstens eine mit dem Prozessor (100) über Register (180, 181, 183) gekoppelte Zählerschaltung (178, 179, 182) zum Vorgeben oder Messen von Zeitintervallen,
Ereignis-Erfassungsmittel (171, 172; 182; in 179) zum Erfassen vorgegebener elektrischer Änderungen der Eingangs- und/oder Ausgangssignale (A, B) und/oder von Ausgangssignalen der Zählerschaltung (178, 179, 182) und zum Ausgeben entsprechender Ereignissignale und
wenigstens einen Multiplexer (190, 191) zum Auswählen und Weiterleiten der Ereignissignale an die Zustandsmaschine (189),
wenigstens ein vom Prozessor (100) ladbares und mit dem oder den Multiplexern (190, 191) gekoppeltes erstes Register (185, 186, 198) zum Konfigurieren und Rekonfigurieren der Schaltungselemente und
wenigstens ein mit dem Prozessor (100) gekoppeltes zweites Register (199, 235) zum Speichern von Ein/Ausgabe-Zustands­ informationen und zur Weitergabe dieser Informationen an den Prozessor (100),
wobei die Zustandsmaschine (189) mit zumindest einem der ersten (198) und zweiten (199) Register gekoppelt ist.
2. Zelle nach Anspruch 1, dadurch gekennzeichnet, daß die Ereignis-Erfassungsmittel einen Digitalkomparator (182) enthalten.
3. Zelle nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Schaltungselemente einen Rampengenerator (200) ent­ halten.
4. Zelle nach einem der Ansprüche 1 bis 3, dadurch gekenn­ zeichnet, daß die Schaltungselemente eine Abtast-und-Halte-Ein­ richtung (201-204) enthalten.
5. Zelle nach einem der Ansprüche 1 bis 4, dadurch gekenn­ zeichnet, daß die Ereignis-Erfassungsmittel einen Übergangsdetektor (171, 172) enthalten.
6. Zelle nach einem der Ansprüche 1 bis 5, dadurch gekenn­ zeichnet, daß die Ereignis-Erfassungsmittel einen Spannungskomparator (170) enthalten.
7. Zelle nach Anspruch 1, dadurch gekennzeichnet,
daß die Schaltungselemente eine Abtast-und-Halte-Ein­ richtung (201-204) und einen Rampengenerator enthalten,
daß die Ereignis-Erfassungsmittel einen Digitalkomparator (182) umfassen und
daß die Schaltungselemente mit Hilfe der in das mindestens eine erste Register geladenen Informationen so konfigurierbar sind, daß sie einen Digital/Analog-Wandler (Fig. 21) bilden, wobei das Ausgangssignal des Rampengenerators (200) an die Abtast- und Halte-Einrichtung (201-204) angelegt wird, der Start des Rampengenerators (200) als eine der vorgegebenen elektrischen Änderungen festgestellt und zum Laden eines Anfangswerts in die Zählerschaltung (179) verwendet wird, der Digitalkomparator (182) einen Zählwert in der Zählerschaltung mit einer aus dem Prozessor in ein Register geladenen Digitalzahl vergleicht und wobei das Ausgangssignal des Digitalkomparators (182) zur Ansteuerung der Abtast- und Halte-Einrichtung (201-204) verwendet wird.
8. Zelle nach Anspruch 1 oder 7, dadurch gekennzeichnet,
daß die Schaltungselemente einen Rampengenerator (200) und einen Spannungskomparator (170) enthalten,
daß die Ereignis-Erfassungsmittel einen Übergangsdetektor (172) enthalten und
daß die Schaltungselemente mit Hilfe der in das wenigstens eine erste Register geladenen Informationen so konfigurierbar sind, daß sie einen Analog/Digital-Wandler (Fig. 22) bilden, wobei ein Analogsignal an einen Anschluß (Pin B) des Spannungskomparators (170) anlegbar ist, während der andere Anschluß des Spannungskomparators (170) mit dem Ausgangssignal des Rampengenerators (200) beaufschlagbar ist, die Zählerschaltung (179) mit einem Anfangszählwert ladbar ist und bei einer vorgegebenen Frequenz (f₀) zählt, wenn das Ereignis-Er­ fassungsmittel den Start einer Rampe des Rampengenerators (200) feststellt, und wobei die Zählerschaltung (179) zum Laden von Latch-Schaltungen (181) verwendbar ist, die als digitaler Ausgang des Analog/Digital-Wandlers dienen.
9. Zelle nach einem der Ansprüche 1 bis 8, dadurch gekenn­ zeichnet, daß die Schaltungselemente ein Kommunikations­ subsystem (Fig. 23) enthalten.
DE3890945A 1987-11-10 1988-11-02 Zelle, die in einem mehrzelligen Netzwerk zur Meßwerterfassung, Kommunikation und Steuerung dient Expired - Lifetime DE3890945C2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11938387A 1987-11-10 1987-11-10
PCT/US1988/003909 WO1989004516A1 (en) 1987-11-10 1988-11-02 An input/output section for an intelligent cell which provides sensing, bidirectional communications and control

Publications (1)

Publication Number Publication Date
DE3890945C2 true DE3890945C2 (de) 1996-05-02

Family

ID=22384138

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3890945A Expired - Lifetime DE3890945C2 (de) 1987-11-10 1988-11-02 Zelle, die in einem mehrzelligen Netzwerk zur Meßwerterfassung, Kommunikation und Steuerung dient

Country Status (7)

Country Link
JP (1) JPH077961B2 (de)
AU (1) AU2814089A (de)
CA (1) CA1309186C (de)
DE (1) DE3890945C2 (de)
GB (1) GB2230880B (de)
SG (1) SG55893G (de)
WO (1) WO1989004516A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2705814B1 (fr) * 1993-05-28 1995-08-11 I T Com Procédé de communication interactif, notamment pour des applications en domotique.
WO2008062512A1 (fr) * 2006-11-21 2008-05-29 Fujitsu Limited Système multiprocesseur
US8782456B2 (en) 2010-06-01 2014-07-15 Intel Corporation Dynamic and idle power reduction sequence using recombinant clock and power gating
US8850250B2 (en) * 2010-06-01 2014-09-30 Intel Corporation Integration of processor and input/output hub
US9146610B2 (en) 2010-09-25 2015-09-29 Intel Corporation Throttling integrated link
CN115411953B (zh) * 2022-10-31 2023-03-24 深圳市暗能量电源有限公司 一种智能家庭直流供电电源系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4675803A (en) * 1984-02-29 1987-06-23 Measurex Corporation System for processing information

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1249320B (de) * 1964-12-23
US3723974A (en) * 1971-03-08 1973-03-27 K Holtz Data collection apparatus and method
US3775751A (en) * 1972-03-17 1973-11-27 D Anderson Method of and apparatus for baud rate detection
US4005387A (en) * 1974-10-15 1977-01-25 Standard Oil Company Computer control system
US4016548A (en) * 1975-04-11 1977-04-05 Sperry Rand Corporation Communication multiplexer module
US4017839A (en) * 1975-06-30 1977-04-12 Honeywell Information Systems, Inc. Input/output multiplexer security system
US4124889A (en) * 1975-12-24 1978-11-07 Computer Automation, Inc. Distributed input/output controller system
US4161027A (en) * 1976-10-04 1979-07-10 Electric Power Research Institute, Inc. Digital protection system for transmission lines and associated power equipment
US4296464A (en) * 1977-03-03 1981-10-20 Honeywell Inc. Process control system with local microprocessor control means
US4143418A (en) * 1977-09-21 1979-03-06 Sperry Rand Corporation Control device and method for reading a data character from a computer at a fast rate and transmitting the character at a slow rate on a communication line
US4219875A (en) * 1978-05-05 1980-08-26 Honeywell Inc. Digital event input circuit for a computer based process control system
JPS5535156A (en) * 1978-09-04 1980-03-12 Sanden Corp Volume type fluid compressor
DE3265361D1 (en) * 1981-07-10 1985-09-19 Siemens Ag Albis Bus system
US4539652A (en) * 1982-07-16 1985-09-03 At&T Bell Laboratories Networks for data communication
JPS60254873A (ja) * 1984-05-31 1985-12-16 Hitachi Ltd 発光素子を用いた画像記録装置
NL8403926A (nl) * 1984-12-24 1986-07-16 Oce Nederland Bv Werkwijze voor het belichten van een lichtgevoelige laag en belichtingsinrichting.
JPS6231893A (ja) * 1985-08-02 1987-02-10 沖電気工業株式会社 発光素子及び光量制御素子の駆動回路
JPS6256161A (ja) * 1985-09-06 1987-03-11 Sharp Corp 印字装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4675803A (en) * 1984-02-29 1987-06-23 Measurex Corporation System for processing information

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WALLER, Heinz u. HILGERS, Peter: Mikropro- zessoren, Bibliographisches Institut, 1985, S. 164-167 *

Also Published As

Publication number Publication date
JPH077961B2 (ja) 1995-01-30
GB2230880B (en) 1992-07-15
GB9007627D0 (en) 1990-08-01
WO1989004516A1 (en) 1989-05-18
AU2814089A (en) 1989-06-01
GB2230880A (en) 1990-10-31
JPH03504068A (ja) 1991-09-05
CA1309186C (en) 1992-10-20
SG55893G (en) 1993-08-06

Similar Documents

Publication Publication Date Title
US4918690A (en) Network and intelligent cell for providing sensing, bidirectional communications and control
US4969146A (en) Protocol for network having a plurality of intelligent cells
US4955018A (en) Protocol for network having plurality of intelligent cells
US5034882A (en) Multiprocessor intelligent cell for a network which provides sensing, bidirectional communications and control
US4947484A (en) Protocol for network having a plurality of intelligent cells
US5113498A (en) Input/output section for an intelligent cell which provides sensing, bidirectional communications and control
US4941143A (en) Protocol for network having a plurality of intelligent cells
US5018138A (en) Protocol for network having a plurality of intelligent cells
US4969147A (en) Network and intelligent cell for providing sensing, bidirectional communications and control
DE69636788T2 (de) Mediumzugriffssteuerung und Luftschnittstellen-Subsystem für ein drahtloses Inhaus-ATM-Netz
DE10259327A1 (de) USB-Verbundgerät und Verfahren zum Realisieren desselben
DE3890947C2 (de) Netzwerk und Verfahren zur Nachrichtenübertragung
DE102019008068A1 (de) ZigBee-, Thread- und BLE-Signalerfassung in einer WiFi-Umgebung
DE3890945C2 (de) Zelle, die in einem mehrzelligen Netzwerk zur Meßwerterfassung, Kommunikation und Steuerung dient
EP1282094B1 (de) Verfahren zur Funkübertragung in einem Gefahrenmeldesystem
US5251214A (en) Method for transmitting data to a plurality of data stations
EP2050247A2 (de) Netzwerk zur drahtlosen übertragung von daten
CN212623734U (zh) 基于LoRa的智能家居系统
DE102018103097B3 (de) Verfahren zur Topologiebestimmung in einer Mobilfunk-Site, ein Computerprogramm, ein Computerprogramm-Produkt und eine entsprechende Mobilfunk-Site
EP0386151B1 (de) Intelligente multiprozessor-zelle für ein netzwerk
AU621581B2 (en) Protocol for network having a plurality of intelligent cells
CA1326275C (en) Network and intelligent cell for providing sensing, bidirectional communications and control
AU619514B2 (en) Network for providing sensing communications and control
US6310885B1 (en) Network system
EP0638886B1 (de) Verfahren zur Übermittlung einer Nachricht zwischen zwei Teilnehmerstationen und Einrichtung zur Durchführung des Verfahrens

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition