Nothing Special   »   [go: up one dir, main page]

DE3890947C2 - Netzwerk und Verfahren zur Nachrichtenübertragung - Google Patents

Netzwerk und Verfahren zur Nachrichtenübertragung

Info

Publication number
DE3890947C2
DE3890947C2 DE3890947A DE3890947A DE3890947C2 DE 3890947 C2 DE3890947 C2 DE 3890947C2 DE 3890947 A DE3890947 A DE 3890947A DE 3890947 A DE3890947 A DE 3890947A DE 3890947 C2 DE3890947 C2 DE 3890947C2
Authority
DE
Germany
Prior art keywords
cell
group
bits
cells
bit
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
DE3890947A
Other languages
English (en)
Other versions
DE3890947T1 (de
Inventor
Wendell B Sander
William B Twitty
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 DE3890947C2 publication Critical patent/DE3890947C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/00004Circuit 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 the power network being locally controlled
    • 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/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
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05BELECTRIC HEATING; ELECTRIC LIGHT SOURCES NOT OTHERWISE PROVIDED FOR; CIRCUIT ARRANGEMENTS FOR ELECTRIC LIGHT SOURCES, IN GENERAL
    • H05B47/00Circuit arrangements for operating light sources in general, i.e. where the type of light source is not relevant
    • H05B47/10Controlling the light source
    • H05B47/155Coordinated control of two or more light sources
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J2310/00The network for supplying or distributing electric power characterised by its spatial reach or by the load
    • H02J2310/10The network having a local or delimited stationary reach
    • H02J2310/12The local stationary network supplying a household or a building
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B20/00Energy efficient lighting technologies, e.g. halogen lamps or gas discharge lamps
    • Y02B20/40Control techniques providing energy savings, e.g. smart controller or presence detection
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B90/00Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation
    • Y02B90/20Smart grids as enabling technology in buildings sector
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/12Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them characterised by data transport means between the monitoring, controlling or managing units and monitored, controlled or operated electrical equipment
    • Y04S40/121Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them characterised by data transport means between the monitoring, controlling or managing units and monitored, controlled or operated electrical equipment using the power network as support for the transmission

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Exchange Systems With Centralized Control (AREA)

Description

Die Erfindung bezieht sich auf ein Netzwerk zur Meßwertaufnahme, Kommunikation und Steuerung nach dem Oberbegriff des Anspruchs 1 sowie auf ein Verfahren zur Nachrichtenübertragung nach dem Oberbegriff des Anspruchs 4.
Es gibt viele kommerziell verfügbare Produkte zur Meßwerterfassung, Steuerung und Datenübertragung in einer Netzwerkumgebung. Diese Produkte reichen von sehr kostspieligen, ausgeklügelten Systemen bis zu einfachen Systemen mit geringer Intelligenz.
Beispielsweise ist ein vorrangig für die Datenkommunikation ausgelegtes Netzwerk in EP 0 074 865 A2 beschrieben. Bei diesem bekannten Netzwerk ist die Steuerung der Nachrichtenübertragung über das Netzwerk verteilt, d. h. alle Teilnehmer übernehmen Steuerungsaufgaben; ein zentrales Steuergerät entfällt. Obwohl verschiedene Übertragungsmedien (Koaxialkabel, Lichtleiter) möglich sind, sind im jeweiligen Netzwerk alle Teilnehmer an ein gemeinsames Übertragungsmedium gekoppelt.
Ein anderes im Handel erhältliches Netzwerksystem "X-10" (Dave Rye, "The X-10 Powerhouse Universal Interface", 20. November 1986) sorgt für eine Steuerung beispielsweise zwischen einem Lichtschalter und einer Lichtquelle. Wenn der Lichtschalter betätigt wird, wird ein Codemuster über die Energieleitungen zu einem lichtseitig angeordneten Empfänger übertragen. Das Codemuster wird zweimal übertragen, einmal in seiner wahren Form und einmal in seiner komplementären Form. Bei Empfang des Codes durch den Empfänger wird der Code übersetzt und dadurch zur Steuerung des Lichtes verwendet. Mechanische Adressiermittel dienen dazu, dem Sender auf der Schalterseite die Herstellung einer Verbindung mit einem speziellen, gewählten Empfänger auf der Lichtseite zu ermöglichen.
Der Erfindung liegt die Aufgabe zugrunde, ein Netzwerk zur Meßwerterfassung, Kommunikation und Steuerung zu schaffen, das eine größere Flexibilität aufweist und insbesondere die Verwendung unterschiedlicher Übertragungsmedien in einem Netz gestattet.
Zur Lösung dieser Aufgabe sieht die Erfindung die Merkmale des Patentanspruchs 1 bzw. 4 vor.
Eine Mehrzahl von intelligenten Zellen, von denen jede eine integrierte Schaltung mit einem Prozessor und einem Eingabe/Ausgabeabschnitt aufweist, sind mit dem erfindungsgemäßen Netzwerk gekoppelt. Jede der programmierbaren Zellen erhält bei der Herstellung eine besondere Identifizierungsnummer (48 Bits), die in der Zelle permanent erhalten bleibt. Die Zellen können mit verschiedenen Medien, beispielsweise Strom- bzw. Versorgungsleitungen, einem verdrillten Leitungspaar, Hochfrequenz-, Infrarot-, Ultraschall-, optischen und Koaxialleitungen usw. zur Bildung eines Netzwerks gekoppelt sein.
In einem Netzwerk können gleichzeitig verschiedene Übertragungsmedien verwendet werden. Mit jedem Übertragungsmedium kann eine Mehrzahl von Zellen gekoppelt sein. Zwischen jeweils zwei Übertragungsmedien befindet sich eine Gateway-Zelle, die die Nachrichten aus dem einen Übertragungsmedium liest und sie in das andere Medium neu sendet, d. h. wiederholt.
In einem Netzwerk werden Gruppen von Zellen zur Ausführung spezieller Funktionen (z. B. Beleuchtung, Heizung, Meßaufgabe) gebildet und durch Gruppen-ID's identifiziert. Kommunikationen innerhalb des Netzwerks finden durch Verwendung der Gruppen- und Zellen-ID's statt. Einigen Zellen (Annoncierern) sind Meß- bzw. Fühlerfunktionen, beispielsweise die Funktion eines Schalters zugewiesen, und anderen (Hörern bzw. Empfängern) die Aufgaben des Steuerns, beispielsweise des Steuerns eines Lichts. Zellen können mehrere Aufgaben erfüllen und Mitglieder mehrerer Gruppen sein; sie können beispielsweise als Wiederholer für eine Gruppe und als Empfänger für eine andere Gruppe dienen. Bei der Herstellung sind die Zellen, mit Ausnahme der Zellen-ID, übereinstimmend ausgebildet; sie werden zur Ausführung spezieller Aufgaben für eine spezielle Gruppe oder mehrere Gruppen programmiert. Sind die Zellen an unterschiedlichen Übertragungsmedien des Netzwerks einer Gruppe zugeordnet, so befindet sich zwischen den Übertragungsmedien zumindest eine mit zwei Medien gekoppelte Gateway-Zelle, die ebenfalls mit dem Gruppen-ID versehen ist und als Wiederholer ausgebildet ist. Das Wiederholen einer von einer Gruppen-Zelle des einen Übertragungsmediums gesendeten Nachricht durch die Gateway-Zelle ermöglicht den Empfang der Nachricht durch eine mit dem anderen Medium gekoppelten Gruppe-Zelle.
Ein Netzwerkprotokoll sorgt für große Flexibilität und ermöglicht beispielsweise die Bildung und/oder Änderung von Gruppen nach dem Einbau der Zellen. Wie zu sehen sein wird, ist die Intelligenz für das Netzwerk unter den Zellen verteilt. Generell ist das Netzwerk gering belastet, obwohl Maßnahmen zum Beherrschen von konkurrierenden und anderen Bedingungen getroffen sind. Die Kommunikation zwischen den Zellen ist generell zur Ausführung der den Gruppen zugewiesenen Funktionen und nicht für die Übertragung von Daten ohne Beziehung zur Steuerfunktion des Netzwerks optimiert. Aus diesem Grund sind die Nachrichten führenden Pakete relativ kurz im Vergleich zu Ethernet, Arpa, AppleTalk, X-25 und vielen anderen Breitband- und Datenübertragungssystemen.
Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprü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 Anwendung der Erfindung veranschaulicht.
Fig. 2 ist ein Diagramm zur Veranschaulichung der Gruppenbildung von Zellen.
Fig. 3 ist ein anderes Blockdiagramm ähnlich demjenigen gemäß Fig. 2 zur Veranschaulichung der Gruppenbildung von Zellen.
Fig. 4 ist ein Diagramm zur Beschreibung von Unterkanälen.
Fig. 5 ist ein Diagramm mit mehreren Zellen zur Beschreibung der Zellengruppenbildung unter Verwendung der vorliegenden Erfindung.
Fig. 6 ist ein Diagramm zur Veranschaulichung des bei der Erfindung verwendeten Paketformats.
Fig. 7 ist ein Diagramm zur Veranschaulichung des Bezeichnungslistenabschnitts des Paketformats gemäß Fig. 6.
Fig. 8 zeigt eine Folge von Schritten, die bei der Bildung einer Gruppe von Zellen bei der Erfindung verwendet werden.
Fig. 9 ist eine Tabelle zur Veranschaulichung der Codezuweisungen 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 Befehlsdecodierlogik, 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-Operation, 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 Ausführungsbeispiel des 3-aus-6-Code-Verifizierers zeigt.
Fig. 17 ist ein elektrisches Schaltbild des Pufferabschnitts eines der I/O-Abschnitte.
Fig. 18 ist ein elektrisches Schaltbild der die Zähl- und Zeitgabefunktionen für einen I/O-Unterabschnitt 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-Unterabschnitten zugeordnet ist.
Fig. 21 zeigt das innerhalb eines I/O-Unterabschnitts zur Ausführung der Digital/Analog-Wandlung gebildete Netzwerk.
Fig. 22 zeigt das innerhalb eines I/O-Abbschnitts zur Analog/Digital-Wandlung gebildete Netzwerk.
Fig. 23 ist ein schematisches elektrisches Schaltbild, das den Kommunikationsteil eines I/O-Unterabschnitts zeigt.
Fig. 24 ist ein Zustandsdiagramm, das für die I/O-Unterabschnitte und für die Übertragungskonkurrenzen benutzt wird.
Fig. 25 ist ein Zustandsdiagramm für das Verknüpfungsniveau ARQ.
Fig. 26 ist ein Zustandsdiagramm für Primärstationsverbindungen.
Fig. 27 ist ein Zustandsdiagramm für Sekundärstationsverbindungen.
Fig. 28 ist ein Blocckschaltbild für eine Gruppiereinrichtung.
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 Operationsweise des Eingabe/Ausgabe(I/O)-Abschnitts und des Semaphor-Registers.
Detailbeschreibung eines Ausführungsbeispiels der Erfindung
Beschrieben werden eine Einrichtung und ein Verfahren zu Kommunikations-, Erfassungs-, Meß- und Steuerzwecken in einem Netzwerk. Soweit das Netzwerk mehrere intelligente Zellen enthält, sind die Zellen generell als programmierbare Einchip-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 ausgerichteten Hierarchie organisiert ist. Zellen werden in Arbeits"gruppen" unabhängig von der Netzwerkhierarchie organisiert. Zellengruppen dienen generell der Ausführung einer Gruppenfunktion. Diese Funktion wird durch Zuordnung von Aufgaben 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 Kommunikationsprotokolle, Eingabe/Ausgabe-Operationen, Paketverarbeitung und analoge und digitale Meß- und Steuerfunktionen aus. Generell hat das aus den Zellen aufgebaute System die Charakteristik eines Speichernetzwerks und konfiguriert Information, 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 vielseitige 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 Kommunikations- Bitfrequenzabtastungs-Operationen.
In der folgenden Beschreibung sind zahlreiche spezielle Einzelheiten, 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 Realisierung 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 ein Ausführungsbeispiel der 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 Verwendung 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 Sendeempfänger 29 verbunden, der Daten auf die Leitungen 24 und 25 gibt. Betrieben werden der Sendeempfänger 29 und die Zelle 27 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 ausgebildet, deren Aufbau unter Bezugnahme auf Fig. 10 genauer beschrieben werden wird. Der Sendeempfänger 29 kann eines von vielen bekannten Bauelementen sein, die digitale Daten empfangen und senden können; in der derzeitigen Betrachtung führt er keine Datenverarbeitung an gesendeten Daten durch. Die 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 andererseits kann 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 Leistungsschalters, 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 Versorgungsleitungen 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 Systemen 20 und 21 übertragene Pakete wiederholt.
In Fig. 1 kommunizieren die Sendeempfänger 29 und 33 über Stromversorgungsleitungen. Die Sendeempfänger können miteinander in zahlreicher verschiedener Weise und über zahlreiche Medien und mit jeder Baurate kommunizieren. Sie können beispielsweise 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 treten. Andere bekannte Kommunikationsmedien können zur Verbindung der Sendeempfänger ebenfalls eingesetzt werden, so beispielsweise 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 agiert entsprechend der empfangenen Nachricht, indem sie das Licht 23 unter Betätigung des solenoidgesteuerten Leistungsschalters 32 ein- oder ausschaltet.
Jede Zelle hat eine spezielle 48-Bit-Identifizierungsnummer (ID-Nummer), die manchmal als Zellenadresse 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 wie viele Netzwerke miteinander verknüpft sind. Das Gruppiergerät greift dann auf die einzelnen 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" bezeichnet, 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 Zelle 28 mit dem Buchstaben "L" bezeichnet, 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 weren die Bezeichnungen "A" und "L" insbesondere in Verbindung mit einer Gruppenbildung mehrerer Zellen zum Angeben einer Annoncieranordnung, wie der 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 datensendend oder -empfangend ohne Bezugnahme auf Sendeempfänger bezeichnet. (In einigen Fällen können die Sendeempfä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 programmiert 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 Zustandsinformationen von einem Hörer anfordern.)
Wiederholer
Ein Wiederholer ist eine Zelle, die neben dem Ausführen anderer Funktionen Pakete aus einem Medium liest und sie neu sendet.
Gruppe
Ein Satz von Zellen, die für eine gemeinsame Funktion 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 einen Hörer 40. Fig. 2 zeigt, daß eine Einzelzelle (Zelle 40) Hörer in zwei Gruppen sein kann. Wenn Annoncierer 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 dem Hörer 48 der Gruppe 41 annoncieren. 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 werden 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 Auswahlleitung. Jedes Paar teilt sich eine gemeinsame Gruppe von Ressourcen bzw. Betriebsmitteln. Die Leitungen können für einige Funktionen unabhängig benutzt werden, solange dies nicht in Widerspruch steht zu den erforderlichen gemeinsamen Ressourcen. Für andere Funktionen können die Leitungen paarweise verwendet werden. In diesem Beispiel sind zwei Leitungen von der Zelle 27 mit einem Lichtschalter gekoppelt, und ein anderes Paar wird zu Kommunikationszwecken mit dem Annoncierer, der Zelle 27, verwendet.)
Unterkanal
In Fig. 4 ist eine erste Anzahl von Zellen gezeigt, 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 Anordnung (z. B. Zellen in Zuordnung zu dem verdrillten 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 Leitungspaar gehört.
Kanal
Ein Kanal weist zwei oder mehrere 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 Unterkanal bilden. Es sei angenommen, daß die Zellen 56 und 57 über ein verdrilltes Leitungspaar 72 miteinander in Verbindung stehen. Sie bilden wiederum einen weiteren Unterkanal. 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 verdrillten Leitungspaar bestehen, wobei ein Unterkanal 50 so weit entfernt von dem zweiten Unterkanal 52 ist, daß die Kommunikation zwischen den Unterkanälen nur über den Teil des verdrillten Leitungspaars 72 erfolgt, der 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 Annoncierer 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 gleichen 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 verdrillten 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 System-ID haben. Daher können die Kanäle gemäß Fig. 4 Bestandteil desselben Unternetzwerks sein, da sie sich in dieselbe System-ID teilen.
Vollnetzwerk
Ein Vollnetzwerk kann mehrere Unternetzwerke mit jeweils unterschiedlichen System-ID's aufweisen; ein Kommunikationsprozessor dient zum Austausch von Paketen zwischen den Unternetzwerken. Der Kommunikationsprozessor übersetzt Pakete unter Änderung ihrer System-ID, ihrer Adressierung und anderer 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 im allgemeineren 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 Gruppenmitgliedern 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 nach der Installation arbeitende Gruppiereinrichtung
Es sei angenommen, daß die in Fig. 5 gezeigte Mehrzahl von Zellen so angeschlossen sind, daß sie über die Hausstromversorgungsnetzleitungen 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 Zellen 62, 64, 65 und 66 einen anderen Unterkanal. (Es gibt weitere Unterkanäle in der Konfiguration gemäß Fig. 5.) Wichtig ist jedoch, daß der Annoncierer 60 und der Hörer 65 in unterschiedlichen 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 beispielsweise über die Zellen 61 und 64 oder über die Zellen 62 und 64 usw.
Obwohl alle Zellen sich an demselben Stromversorgungsnetz 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 zwischen 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 in jede Gruppiereinrichtung einbezogen. Die Zellen-ID wird die System-ID. Dies gewährleistet, daß jedes System eine spezielle System-ID hat. Beispielsweise hat jedes Haus seine eigene "Gruppier"-Einrichtung und daher seine eigene System-ID für die im Haus benutzten Unternetzwerke. Diese System-ID wird in Zellenpaketen 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 mit Zelle 60 verbunden, indem sie über eines der drei Paare von Eingabe/Ausgabe(I/O)-Leitungen 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 Gruppiereinrichtung 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 Gruppenidentifizierungsnummer (auch als Gruppenadresse bezeichnet) für die den Annoncierer 60 und den Hörer 65 enthaltende Gruppe. Die Gruppiereinrichtung ü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 bereits belegt worden ist, erzeugt sie eine andere Nummer. (Eine einzelne Gruppiereinrichtung verfolgt beispielsweise alle in einem Einzelhaus zugeordneten Gruppen-ID's.) Die Gruppiereinrichtung 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 Mitglied dieser Gruppe bezeichnet worden sind. Dies ist eine andere Art zum Verifizieren, ob die Gruppen-ID 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 geschehen. (Einer Zelle und einer Gruppe können ASCII-Namen zugeordnet 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-Namen.
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-Nummer. Jede Zelle wiederholt das Paket nur einmal (der Mechanismus, 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 demjenigen, der im Diagramm als direktester Weg (über Zelle 62) gezeigt ist, 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, von der Zelle 62 wiederholt und für die Zelle 65 vorgesehen wurde. Die anderen Sondierpakete, 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 Annoncierer 60. Dieses Paket enthält die Route des Sondierpakets (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 Betä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 Pakete für diejenige Gruppe zu wiederholen, welche die Annonciererzelle 60 sowie die Zelle 65 enthält. Eine andere Nachricht wird vom Annoncierer 60 unter Steuerung der Gruppiereinrichtung gesendet und von der Zelle 62 wiederholt, 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 gekennzeichnet.
2. Zellenzuweisung zu einer Gruppe durch eine vor der Installation arbeitende Gruppiereinrichtung
Es kann einige Arten von vor der Installation arbeitenden 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 dieser Gruppiereinrichtungen ist eine solche, welche ein Händler oder ein anderer Zellenvertreiber zum Zuweisen von Zellen zu 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 Vor-Installation-Gruppiereinrichtung zugeordnet worden ist, ist nicht notwendigerweise eine spezielle System-ID. (Nach-Installations-Gruppiereinrichtungen weisen eine spezielle System-ID jedem System zu.)
Ein Verfahren, das von Vor-Installations-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 von Nachinstallations-System-ID's zu unterscheiden. 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 Vor-Installations-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 Nach-Installations-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 Vor-Installation-Gruppiereinrichtung zu, die von der herstellerseitig benutzten Vor-Installation-Gruppiereinrichtung verschieden sein kann.
Typischerweise arbeiten solche Gruppiereinrichtungen jeweils an einer Zelle. 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 so einen Satz von Zellen installieren, und dieser Satz wird ohne Verwendung einer Nach-Installation-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 Vor-Installation-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 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 in zuvor existierende Gruppen nach der Installation eintreten
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 die 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 Zellen 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 eventuell verwendete Sicherheitsprozeduren beschränkt sein kann. Die Sicherheitsprozeduren, 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 unnmö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 die ID der Zelle anfordernde Nachricht 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 Kommunikationsskanä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 Gruppiereinrichtung 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 Zielzelle 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, fordert die Gruppiereinrichtung den Benutzer auf, 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 Gruppen- 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 Ziel-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 welchem 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 beispielsweise der Annoncierer ein Lichtschalter ist, legt 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 gewünschten Gruppe gehört, indem er dafür sorgt, daß die Gruppiereinrichtung Pakete an alle Gruppenhörer sendet, die sie anweisen, ihre Ausgangsignale 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 Gruppiereinrichtung jetzt ein Paket an die Gruppe und fordert dazu auf, daß jede Zelle mit ihrem Zellennamen antwortet, bis die interessierende Zelle gefunden ist. Der Benutzer wählt diesen Namen, und die Gruppiereinrichtung, die diese Zellen-ID kennt, kann mit dem Gruppen-Zuordnungsprozeß fortfahren.
Wenn dies ein Benutzer wählt, kann die ID der Zelle vor dem Fortfahren mit dem Gruppierungsprozeß verifiziert werden. Das folgende Verfahren dient zur Verifikation, ob die ID für die Zielzelle ist.
Wenn die gewählte Zelle ein Annoncierer ist, veranlaßt die Gruppiereinrichtung den Benutzer, den Annoncierer durch Stimulation 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 Gruppiereinrichtung 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 ausgewä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ächsten Stimulation zu senden. Die Gruppiereinrichtung fordert dann den Benutzer auf, den Annoncierer durch Aktivierung des erfaßten Geräts zu stimulieren; beispielsweise durch Einschalten eines Lichtschalters für einen Lichtschalterannoncierer. Da der Benutzer nur einen Annoncierer stimuliert, erhält die Gruppiereinrichtung nur ein Paket mit einer Zellen-ID.
Es besteht die Möglichkeit, daß ein anderer Annoncierer gleichzeitig stimuliert wird. Gegebenenfalls wird ein anderer Lichtschalter umgelegt, oder ein Temperaturfühler stellt eine Temperaturänderung fest. Der Benutzer möchte überprüfen, ob die empfangene ID für die richtige Zelle ist. Um festzustellen, ob die Zellen-ID die richtige ist, durchläuft der Benutzer den Annoncier-Stimulationsprozeß ein zweites Mal und verifiziert, ob die gleichen Ergebnisse auftreten.
6. Ein- und Ausschalten des Hörers
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 erscheinende Zellen auffordert, mit ihrer ID zu antworten. Die Gruppiereinrichtung muß die Anzahl von antwortenden Zellen begrenzen; 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 auszuschalten. Der Benutzer durchläuft die Liste von Hörerzellen weiter, bis er das ausgangsseitige Umschalten der Zielzelle beobachtet. Der Benutzer hat danach die Zelle für die Gruppiereinrichtung identifiziert, und er kann mit der Gruppieroperation fortfahren.
D. Paketformat
Jedes von einer Zelle übertragene Paket enthält mehrere Felder. So ist beispielsweise in Fig. 6 ein Format zur Gruppenannoncierung gezeigt. Andere Paketformate sind in Anlage A angegeben. Jedes Paket beginnt mit einer Präambel zur Synchronisation der Empfängerzellen-Eingangsschaltung (bit synch). Der bei dem beschriebenen Ausführungsbeispiel verwendete besondere Präambelcode ist als Teil des 3-aus-6-Kombinationscodes (Fig. 9) beschrieben. Ein Flagfeld von 6 Bits beginnt und beendet jedes der Pakete. Der Flagfeldcode ist ebenfalls anhand von 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 Pakets. Die ALU 102 der Fig. 12 besitzt Hardware zur Berechnung des Paket-CRC und CRC-Register 130 zum Speichern von Zwischenergebnissen. Wenn der CRC für ein einlaufendes Paket nicht verifiziert werden kann, wird das Paket ausgeschieden. Das Paket-CRC-Feld hat bei der Berechnung 16 Bits und wird in 24-Bit-Feldern für die Übertragung in einem 3-aus-6-Code unter Verwendung 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ührungsbeispiel ist der CRC ein CCITT-Standardalgorithmus (X¹⁶+X¹²+X⁵+1)
Die System-ID ist vorzugsweise ein 32-Bit-Feld. Die anderen 16 Bits der 48-Bit-System-ID sind in der CRC-Berechnung einbezogen, werden jedoch nicht übertragen als Teil des Pakets (Fig. 29).
Das Verknüpfungsadreßfeld ist ein 48-Bit-Feld. Wenn dieses Feld aus Nullen besteht, wird das Paket als systemweite Sendung interpretiert, das von allen Zellen behandelt wird. So hat beispielsweise ein Sondierpaket ein Nullenfeld für die Verknüpfungsadresse. Gruppenadressen sind in die Verknüpfungsadresse einbezogen. Für Gruppenadressen sind die ersten 38 Bits Null, und die restlichen 10 Bits enthalten die Gruppenadresse. (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. (Beispielsweise dann, wenn einer Zelle die Aufgabe eines Wiederholers 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 Verifizieren der 10 Bits des Zeitgabefeldes verwendet wird. Jede ein Paket wiederholende Zelle arbeitet mit 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 involvierten Zellen auf die Übertragung wartet, berücksichtigt die Zahl im Konkurrenzfeld die Summe der Wartephasen, subtrahiert von einer Konstanten (z. B. alles Einsen). Wenn das Konkurrenzzeitgabefeld alles Nullen erreicht, verwirft die die Übertragung abwartende Zelle das Paket, anstelle einer Übertragung. 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 berechnet 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 werden kann, wird das Paket verworfen.
Das Etappenzählfeld zeichnet die Anzahl von Etappen oder Neuübertragungen auf, die ein Paket vor dem Ankommen an seinem Ziel durchläuft. Dieses 4-Bit-Feld beginnt mit einer Zahl, die gleich der für ein spezielles Paket maximal zulässigen Anzahl von Neusendungen ist, und wird durch jede ein Paket wiederholende Zelle abwärtsgezählt. So ist beispielsweise für ein von einem Gruppenannoncierer ausgehendes Paket der "Etappen"-Zählwert beim Start die Maximalanzahl von Neusendungen, 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 verworfen und nicht mehr neu gesendet. Daher sind 16 Etappen oder Neusendungen die Grenze der derzeitigen Implementierung.
Das Verknüpfungssteuerfeld liefert das Verknüpfungsprotokoll und besteht aus 8 Bits. Dieses Feld wird in einem nachfolgenden Abschnitt in Verbindung mit anderen Schichten des Protokolls erörtert.
Das Zufalls-/Pseudo-Zufalls-Zahl-Feld enthält eine 8-Bit-Zufallszahl, die für jedes Paket von der das Paket ursprü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 die Vermittlungsart oder Paketart 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 Annoncierers. Bei einer Bestätigung enthält dieses Feld die ID des Hörers. Bei einem an eine Gruppe adressierten Paket enthä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 spezielle Nachricht. Typische Nachrichten sind in Anlage B enthalten. Im Falle eines Sondierpakets enthält das Feld die Route; d. h. jede wiederholende Zelle bindet ihre ID-Nummer in dieses Feld ein. Die Nachrichten nach der Bildung einer Gruppe dienen beispielsweise dem Annoncierer 60 dazu, dem Hörer (Listener) 65 die Einschaltung eines Lichts aufzutragen usw.
Das ggf. verwendete Verschlüsselungsfeld enthält 16 Bits zum Verifizieren der Authentizität eines verschlüsselten Pakets; typischerweise wird dieser Abschnitt eines Pakets nicht geändert, wenn ein Paket wiederholt wird. Bekannte Verschlüsselungstechniken 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 nachfolgenden 8-Bit-Feldern übertragen. Die Gruppennummer in der Verknüpfungsadresse und die in der Zielliste enthaltene Mitgliedsnummer bildet eine Adresse, die zur Nachrichtenübertragung nach der Bildung der Gruppe dient. Wenn die Zielnummer Null ist, richtet sich das Paket an alle Mitglieder der Gruppe. 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 ausgesendet worden ist. Ein in jede der Zellen programmierter spezieller Mechanismus ermöglicht es den Zellen, Pakete zu erkennen, 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 Etappenzählung sich ändert und ein neues Paket-CRC-Feld für dieses Paket erforderlich macht. Dieses CRC-Feld ist von dem im nächsten Absatz diskutierten CRC-Feld zu unterscheiden.
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 angegeben. Wenn eine Zelle ein Paket neu aussendet, speichert der 16-Bit-Widerholer CRC-Ergebnisse in einer Rangliste derartiger 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-Ergebnisse entsprechend Darstellung im Block 73c gespeichert, und das Paket wird wiederholt. Wenn andererseits die Nummer gefunden wird, so wird das Paket nicht wiederholt. In der derzeitigen 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 Nachrichtenfolge neu aussendet, wie beispielsweise im Falle eines fortlaufenden Ein- und Ausschaltens eines Lichts, eine als Wiederholer bezeichnete Zelle die gleiche Nachricht neu aussendet, 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 innerhalb 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 Bildung der oben erörterten Gruppen sterben die ausgesendeten Sondierpakete 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 Zeitinformationen 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ührungsbeispiel. Alle Daten werden in 4-Bit-Tetraden (nibbles) gruppiert, und für jede derartige Tetrade werden sechs Bits übertragen. 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 synchronisiert (Bit synch) und Byte-synchronisiert zu werden, wie in Verbindung mit dem I/O-Abschnitt erörtert werden wird. Nach einmaliger Synchronisation (außerhalb des Suchbetriebs) werden die Übergänge im einlaufenden Bitstrom zur Aufrechterhaltung der Synchronisation verwendet.
Die rechte Spalte in Fig. 9 listet die 20 möglichen Kombinationen von 6-Bit-Mustern auf, in denen drei der Bits Einsen und drei Nullen sind. In der linken Spalte ist das entsprechende 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-Muster empfängt, 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-Kombinationen. 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 besonders 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äß bereitet eine Zelle ein Paket generell in ganzzahligen Bytes vor, und jeder Tetrade wird vor der Übertragung ein 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. Kommunikation 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 Zeitgabeschaltungen, 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 realisiert. Beispielsweise kann der Multiprozessor 100 unter Verwendung der Gatematrixtechnologie, wie sie in der US-PS 4 642 487 beschrieben ist, hergestellt werden. Das bevorzugte Ausfü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 bezeichnet, obwohl er, wie beschrieben werden wird, ein Multiprozessor insbesondere aus vier Prozessoren ist.)
Der Multiprozessor 100 ist ein Stack-orientierter Prozessor mit vier Sätzen von Registern 101, die Eingangssignale an eine arithmetische Logikeinheit (ALU) 102 anlegen. Die ALU 102 weist zwei separate ALU's bei dem derzeit bevorzugten Ausführungsbeispiel auf.
Der Speicher 115 hat eine Speicherkapazität von insgesamt 64 KB bei dem bevorzugten Ausführungsbeispiel, obwohl diese spezielle Speicherkapazität unkritisch ist. Ein Teil des Speichers 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 elektrisch programmierbaren Festwertspeicher (EEPROM) 115c. Bei dem derzeit bevorzugten Ausführungsbeispiel verwendet der EEPROM 115c Speicherbauelemente mit Floating-Gate-Elektroden. 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 verschiedenen Schichten des in dieser Anmeldung erörterten Protokolls verwendeten Routinen. Dieser ROM speichert auch die zum Programmieren des EEPROM 115 benötigten Routinen. Das Anwenderprogramm für die Zelle ist im ROM 115a gespeichert und ist generell eine Routine, die als von Variablen im EEPROM 115c und RAM 115b getriebene "Zustandsmaschine" wirken. RAM 115b speichert Kommunikationsvariablen und Nachrichten, Anwendervariablen 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 Unterabschnitte 107, 108, 1109 und 110 auf. Drei dieser Unterabschnitte, 107, 108 und 109, haben Leitungen 103, 104 und 105 zur Kommunikation mit einem Netzwerk und/oder Steuer- und Meßelementen, 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 Zellen-ID, verwendet werden kann. In der derzeitigen Implementierung dient der Unterabschnitt 110 in erster Linie zur Zeitgabe und Zählung. Der Eingabe/Ausgabe-Abschnitt wird vom Prozessor über einen speziellen Adreßraum adressiert und erscheint daher im Ergebnis für den Prozessor als Speicherraum. Jeder I/O-Unterabschnitt kann mit jedem der Unterprozessoren gekoppelt sein. Dieses Merkmal sorgt zusammen mit der Multiprozessor-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 Zeitgabesignale liefert, die insbesondere für das in Fig. 13 gezeigte 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-Kleinbefehlszyklusfrequenz 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 generell mit den Prozessorregistern über Register 146 zum D-BUS 223 gekoppelt.
Der 16-Bit-A-Bus 220 liefert ein Eingangssignal für die Adreß-ALU 102a. Basiszeigerregister 118, Effektive-Adreßregister 119 und die Befehlszeigerregister 120 sind mit diesem Bus gekoppelt. (In der unteren rechten Ecke der zur Bezeichnung dieser Register verwendeten Symbole ist ein Pfeil mit der Bezeichnung "x4" gezeigt. Diese Bezeichnung dient dazu, anzugeben, daß beispielssweise das Basiszeigerregister eine Tiefe von 4 hat, insbesondere das Basiszeigerregister vier 16-Bit-Register aufweist, eines für jeden Prozessor. Dies gilt auch für die Effektive-Adresse-Register und die Befehlszeigerregister.) Der B-BUS 221 liefert bis zu 12-Bit breite Eingangssignale an die ALU 102a oder ein 8-Bit-Eingangssignal an die Daten-ALU 102b über Register 142. Der Kopf der Stackregister 122, Stackzeigerregister 123, Rückkehrzeigerregister 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 Befehlszeigerregistern 120, dem Kopf von Stackregistern 122 mit einer Tiefe von 4, den vier Übertragsflags 129, den CRC-Registern 130 und den Nächste-Registern 131 mit einer Tiefe von 4 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) aufnehmen. 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-Pfad 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-Registern 130 in Verbindung. Die Stack-Kopf-Register 122 sind mit den Nächste-Registern 131 über Leitungen 138 verbunden. Diese Leitungen ermöglichen die Übertragung des Inhalts des Registers 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 beschrieben.
Die Daten in einem der Stackzeigerregister 123 oder einem der Rückkehrzeigerregister 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 Eingangssignale 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 einzigen Schritt auch den Inhalt der Nächste-Register 131 und CRC-Register 130 (über Wege 222 und 133) kombinieren und ihn mit dem Inhalt eines der Stack-Kopf-Register 122 zur Entwicklung der in den CRC-Berechnung 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 niedrigere 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 Chip für Stromversorgung und Erde und alle I/O-Pins A und B und den "Nur-Lese"-Pin 106 (Unterabschnitte 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 Verbindungen zum AD-BUS 224 und M-BUS 225 der Fig. 12 vorgesehen. Ein Steuerkontaktanschluß kann zur Deaktivierung des internen Speichers vorgesehen sein. Durch Aktivierung des Steuerkontakts wird der interne Speicher deaktiviert, und die Daten über AD-BUS und M-BUS werden vom Prozessor verwendet. Dies ermöglicht 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 einfachen Gehäuse befindet. Auf diese zusätzlichen Kontakte kann über Sondentaster-Kontakte zugegriffen werden oder sie können Pins an Gehäusen bilden, 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 Herstellungsverfahrens. 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 typischerweise eine Basisadresse o. dgl. auf dem A-BUS von einem der Basispunkte in Registern 118, Effektivadreßregistern 119 oder Befehlszeigerregister 120 in Kombination mit einem Offset auf dem B-Bus vom Stackzeigerregister 123, Rückkehrzeigerregister 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 Nächste-Register 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 Effektivadreßregistern 119, durchgeführte Funktion kann von anderen Registern ausgeführt werden, obwohl die Verwendung der Effektivadreß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 liefert diese Adressen. Generell bearbeitet die ALU 120b auch den Inhalt des Kopfs der Stack- und Nächste-Register; es gibt jedoch Ausnahmen, beispielsweise kann das Befehlsregister ein unmittelbares Eingangssignal zur ALU 102b erzeugen. Spezielle Adressierungen und andere Befehle werden weiter unten beschrieben.
D. Multiprozessoroperation
Der Prozessor ist in Wirklichkeit ein Multiprozessor (vier Prozessoren), und zwar wegen der Mehrzahl von Registern und des Pipelinings, das in Verbindung mit Fig. 13 beschrieben werden wird. Wie erwähnnt, besteht ein Vorteil dieser Multiprozessoroperation 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 bevorzugten 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 Eingangsssignal für beide ALU's liefert.) Daher kann die Multiprozessoroperation nach der Erfindung unter Verwendung einer einzigen ALU erreicht werden.
Das Verarbeitungssystem hat vier Prozessoren, die eine Adreß-ALU, eine Daten-ALU und einen Speicher gemeinsam benutzen. Ein Unter-Basiszyklus (basic minor cycle) nimmt vier Taktzyklen für jeden Prozessor in Anspruch. Die ALU's nehmen einen Taktzyklus und der Speicher einen Taktzyklus in Anspruch. Die Unterzyklen sind für jeden Prozessor um einen Taktzyklus phasenverschoben, so daß jeder Prozessor bei jedem Unter-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 (Pipelining).
Jedes Register der Fig. 12 ist einer von vier Registergruppen zugeordnet, und jede Gruppe erleichtert die Multiprozessoroperation und ist einem Prozessor (1-4) der Fig. 13 zugeordnet. Jede der vier Gruppen weist ein Basiszeigerregister, Effektivadreßregister, Befehlszeigerregister, Stack-Kopf-Register, Stackzeigerregister, Rückkehrzeigerregister, Befehlsregister, CRC-Register, Nächste-Register und ein Übertragsflag auf. Jede in Beziehung stehende Gruppe von Registern entspricht einem der vier Prozessoren. Jeder Prozessor führt Befehle in Unterzyklen aus, jeder Unterzyklus 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 Pipelineregistern getaktet. Durch Verwendung dieser Pipelineregister ist es möglich, die einzelnen Schritte in der Schrittfolge zu trennen und daher vier Schritte gleichzeitig auszuführen. 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 Befehlsregister. Diese sind in Fig. 11 als Zähler 137a bis 137d gezeigt, von denen 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 Unterzyklen (minor cycles) zur Ausführung des Befehls erforderlich sind, und danach wird eine 3-Bit-Binärzahl in den Zähler 113a oder 113b oder 113c oder 113d geladen, 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 Unterzyklen bezeichnet) in den Zähler 137c geladen. (Bis zu acht Unterzyklen können für einen vorgegebenen Befehl verwendet werden; jedoch werden nur bis zu sechs Unterzyklen für jeden der Befehle bei dem beschriebenen 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-Eingangssignale von jedem der entsprechenden vier Sätze von Zählregistern und vier Sätzen 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 Unterabschnitten 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 Datenfluß auf dem A-BUS, B-BUS und C-BUS steuern. Die die ALU steuernden Signale werden durch ein Ein-Takt-Phasenverzögerungsregister 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ögerungsfunktionen 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ögerungsregistern 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 Taktphase 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, gebraucht zur Durchführung jedes der Befehle, geladen worden sind. Es sei beispielsweise angenommen, daß Register 125a mit einem Aufrufbefehl CALL und daß 010 in den Zähler 137a geladen worden ist. Während eines ersten Unterbefehlszyklus werden 010 und der 12-Bit-Befehl für den Aufruf an die PLA 136 angelegt. Aus dieser 15-Bit-Eingabe entwickelt die PLA 136 an ihrem Ausgang alle Steuersignale, die zum Beenden des ersten Unterzyklus 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 bei der Multiprozessoroperation ein Pipelining verwendet, dienen die Steuersignale auf Leitungen 213 zum Ausführen der ersten Taktphase des Aufrufbefehls und steuern die Eingangssignale für die ALU's dar. (Während dieser ersten Taktphase steuern die anderen Steuerleitungen 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 Signale auf Leitungen 213 die A-BUS-, B-BUS- und C-BUS-Eingangssignale zu den ALU's, um dem zweiten Prozessor die Ausführung des im Register 125b enthaltenen Befehls zu ermöglichen. Während 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ötigten Funktionen auszuführen. (Zu beachten ist, daß eine Verzögerung gleich einer Phasenlänge 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 enthaltenen Befehle. Schließlich werden während der vierten Taktphase der Befehl aus dem Register 125d zusammen mit dem Zählwert 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 des vierten Prozessors enthaltenen Befehls; die Signale auf Leitungen 214 steuern die ALU zur Ausführung des im Register 125c für den dritten Prozessor enthaltenen Befehls; die Signale auf Leitungen 215 steuern den Speicher zum Ausführen des Befehls im Register 125b für den zweiten Prozessor; und die Signale auf Leitungen 216 steuern den D-BUS zum Ausführen des Befehls im Register 125a für den ersten Prozessor.
Nach vier Zyklen des 16-MHz-Takts wird der Zählwert im Register 137a auf 001 vermindert. Jedes Register wird an dem Taktzyklus 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 Regisster 125a der gleiche geblieben ist. Dies ermöglicht es der PLA 136, neue Ausgangssignale zu erzeugen, die für den zweiten Unterzyklus 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 interpretiert.
Daher kann jeder der vier Prozessoren gleichzeitig einen Befehl ausführen, wobei jeder der Befehle eine andere Zykluszahl 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 Prozessoren dar. So erscheinen beispielsweise die Steuersignale, die dem ersten Prozessor während eines ersten Zyklus zugeordnet sind, au 87399 00070 552 001000280000000200012000285918728800040 0002003890947 00004 87280f 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; diejenige des dritten und vierten Prozessors folgen hinter denjenigen 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-Registern (z. B. zwei von ihnen) gespeicherte Signale aus den Registern 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-Registern 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 zugeordneten Daten werden an den Speicher angelegt. Die den Gruppe-3- Registern 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 ähnlicher 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 Prozessoren ergeben.
E. Prozessorbefehle
In diesem Abschnitt wird jeder Befehl des Prozessors zusammen mit den speziellen Register- und Speicheroperationen angegeben. Kleinbuchstaben werden nachfolgend zur Bezeichnung des Inhalts eines Registers verwendet. Beispielsweise wird der Inhalt des Befehlszeigerregisters als "ip" gezeigt. Die Register und Flags sind nachfolgend mit ihrer Korrelation zur Fig. 12 bezeichnet.
Das Kopfelement des Rückkehrstapels ist auch als ein Register adressierbar, obwohl es physikalisch im RAM angeordnet ist.
Befehlstabelle (TOS=top of stack)
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-Tetraden (Decodierer gemäß Fig. 15). Sowohl der Codierer als auch der Decodierer verwenden eine festverdrahtete Logik, welche eine sehr rasche Umsetzung in beiden Richtungen gestattet. Außerdem ist in Fig. 16 eine Schaltung gezeigt, die verifiziert, daß jedes von der Zelle empfangene 6-Bit-Wort tatsächlich ein 3-aus-6-Code ist, d. h. drei Nullen und drei Einsen Fig. 9) hat.
Im folgenden wird auf Fig. 14 Bezug genommen, in der das Register 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 Umsetzung zu gewinnen, wird das D0-Bit direkt an die erste Stufe des Registers 145d angelegt und wird zu E0, dem codierten 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 Logikschaltungen ist so angeordnet, daß sie D0, D1, D2 und D3 aufzunehmen vermag. Jede Logikschaltung enthält gewöhnliche Gatter, welche die innerhalb des zugehörigen Blocks dargestellte Gleichung implementieren. Diese Gleichungen sind in Standard-C-Sprache ("&"=logisches UND, "!"=logisches NICHT und "l"=logisches ODER). Diese Gleichungen können mit gewöhnlichen Gattern implementiert werden.
Der Decodierer gemäß Fig. 15 ist in ähnlichem Format gezeigt. Diesmal 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 implementieren, 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 Schaltungnen 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 unbenutzt, und andere werden zur Synchronisation verwendet und bedürfen daher keiner Umsetzung in eine Datentetrade.) Die Schaltungen 154 und 155 sind aus gewöhnlichen logischen Gattern aufgebaut und implementieren die gezeigten Gleichungen. Das Symbol "∧" stellt die Exklusiv-ODER-Funktion in den Gleichungen dar.
Die Schaltung gemäß Fig. 16 überprüft, wie erwähnt, ob die empfangenen 6-Bit-Worte drei Nullen und drei Einsen enthalten. Die codierten Worte werden vom Stack-Kopf-Register 122 in die beiden Volladdierer 157 und 158 eingekoppelt. Diese Addierstufen sind in der ALU 102b enthalten. Jeder Addierer nimmt ein X-, Y- und ein Übertragseingangssignal auf und liefert eine Summe und einen Übertragsausgang. Diese gewö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 Übertragsausgänge der Addierer 157 und 158 sind mit dem Exklusiv-ODER-Gatter 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 Gatters 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 verschiedenen Konfigurationen unter Softwaresteuerung miteinander verbunden sind. Beispiele hierfür sind unten für die Analog/Digital(A/D)- und Digital/Analog(D/A)-Operationen gezeigt. 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 Leitungspaar, identifiziert als Pin A und Pin B. Der vierte Unterabschnitt 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 einfache Weise dadurch implementiert, daß der Adreßbus (AD-BUS) und der Speicherbus (M-BUS) mit jedem der vier I/O-Unterabschnitte verbunden wird. Die Verwendung des M-BUS über das Register 146 mit dem D-BUS ermöglicht es den I/O-Unterabschnitten, 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- Unterabschnitten 107, 108 und 109 integriert, um ein analoges Ausgangssignal am Pin B zu entwickeln. Ein analoges Eingangssignal 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 Eingangssignale arbeiten, ein Differenzempfänger, ein Differenzsender und ein Differenzspannungskomparator. Die I/O-Unterabschnitte 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 Unterabschnitten 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 enthalten. Nur eine ausreichende Pufferung wird benötigt, die das Lesen von Daten am Pin 106 ermöglicht.
Bezug genommen wird auf den I/O-Pufferabschnitt gemäß Fig. 17. Auslaufende Daten werden an Pin A über den Puffer 163 angelegt. 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 hinausgehenden 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 Aktivierungs 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 Verstärker weist auch den gewöhnlich benutzten Hysteresemodus zur Verhinderung der Erfassung von Rauschen auf. Dieser Modus wird aktiviert, wenn das Hystereseaktivierungssignal (Pin A), das am Verstärker 169 ansteht, hoch ist. Der Ausgang des Verstärkers 169 ist mit einer Übergangsdetektorschaltung 171 gekoppelt, die einfach jeden Übergang feststellt, d. h. einen Q-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ärker 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 Gleichstromsignal zum Spannungsvergleich, ein Rampensignal, das weiter unten erläutert wird, das Signal auf Pin A für Differenzmessung oder ein Referenzpotential (z. B. 2,5 Volt) aufnehmen. 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 Bereitstellung eines 16 MHz-Signals auf. Dieses Signal ist mit einem Frequenzmultiplizierer 178 verbunden, der im I/O-Abschnitt (Fig. 18) enthalten ist. Der Multiplizierer 178 liefert Ausgangsfrequenzen an jeden I/O-Unterabschnitt. Dieser Multiplizierer liefert eine Frequenz
Der geladene Wert ist ein 16-Bit-Wort, das in ein Register des Frequenzmultiplizierers 178 geladen ist. Der Frequenzmultiplizierer 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 Unterabschnitt. 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 beispielsweise 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 Komparator 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 Zustandsmaschine eingegeben (latched) werden (Ausgang des Ausführregisters 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 gekoppelten fünf Leitungen; in ähnlicher Weise steuern drei Bits des Registers 186 die Anzahl einer der mit dem Eingang des Multiplexers 181 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 Latchzählung, den Aktivierungsrampenschalter, den Impulspin A und den Impulspin B.
Die Multiplexer 190 und 191 erhalten beide das Endzählsignal vom Zähler 179 der Fig. 19, 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-Ausgangssignal 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 FIFO-Puffer 199 gespeichert. Dieses Signal gibt an, welcher MUX 190 oder 191 ein Ereignis empfangen hat, und diese Daten werden zusammen 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-Flipflops auf, die in der in Fig. 19 innerhalb der gestrichelten Umrandung 189 gezeigten Weise in Reihe geschaltet 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 Softwaresteuerung geladen. Die Bits beispielsweise aus dem Register 185 bewirken die Auswahl eines der Eingangsleitungen zum Multiplexer 190, beispielsweise die Endzählung. Danach wartet die Schaltung gemäß Fig. 19 auf das Signal Stationszählung. Wenn das Signal Endzä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 Zustandsmachine 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 Ausgangspunkt des Registers 198 getaktet. Diese Flipflops ermöglichen eine Steuerung des Ausgangssignals. Das ODER-Gatter 208 ermöglicht die Übertragung 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 generalisierte 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 verwendete Daten auszuwählen.
E. Analog/Digital- und Digital/Analog-Umsetzung
Zuerst wird auf Fig. 20 Bezug genommen. Das I/O-Untersystem weist einen Rampengenerator 200 auf, der kontinuierlich Rampen einer vorgegebenen Periode erzeugt. Das Ausgangssignal des Rampengenerators wird über Puffer 201 gepuffert und durch Schalter 202 augsewählt. Der Schalter wird an einem Zählwert (Zeitpunkt) augewählt, der dem Start jedes Rampensignals folgt, wodurch dasselbe Potential an den Kondensator 203 angelegt 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 Abtast- und Halteschaltung (S+H).
In Fig. 21 sind einige zuvor beschriebene Schaltungselemente neu gezeigt, um zu beschreiben, wie eine Digital/Analog-Umsetzung 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önnen, um unterschiedliche Funktionen durchzuführen.
Bei einer Digital/Analog-Umsetzung wird eine geeignete Frequenz (f₀) von dem Frequenzmultiplizierer 178 oder dem Zähler 179 in Fig. 18 ausgewählt, die der Periode der vom Rampengenerator 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 Zustandsmaschine (S.M.) 189, gezeigt durch "SM₁", und der Schalter 202 der Abtast- und Halteschaltung wird geschlossen. Bei jeder vom Rampengenerator erzeugten Rampe ist der Rampenschalter 202 geschlossen (z. B. für 500 Nanosekunden), wodurch der Kondensator 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 Verbindungen üertragen. Die Zellen in einem Unterkanal senden Daten bei der gleichen Frequenz, die typischerweise bestimmt wird durch die gerade verwendete Kommunikationsverknüpfung, beispielsweise 10K 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 zwischen den Zellen, so daß jede Zelle ihre Synchronisation gegenü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 Zellen 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 erwarteten einlaufenden Datenfrequenz entspricht. Insbesondere wird der Endzählwert des Zählers 179 mit den Übergängen synchronisiert. 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änge auftreten, stellt der Prozessor fest, ob die Übergänge kurz vor oder nach dem Endzählwert auftraten und stellt dann die Frequenz (f₀) ein, bis die Endzählung gleichzeitig mit den Übergängen auftritt. Diese Frequenz ist die Verschiebefrequenz 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 Endzählung (terminal count) erreicht.
Wenn Bitsynchronisation auftritt, wird die für die Synchronisation (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ß Synchronisation 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 Schieberegister (6 Bits) ausgetaktet in ein Datenlatch 235, und von dort können die Daten in den Prozessor getaktet und in 4-Bit-Tetraden umgesetzt werden. Eine andere Schaltungskomponente ist vorhanden, um alles Nullen im Schieberegister 206 festzustellen. Wenn dies geschieht, kehren der Prozessor und das Schieberegister 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ängen.
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, entspricht 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 Nennverschiebefrequenz 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 Variationen sind möglich.)
G. I/O-Register und Ressourcen-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-Unterabschnitte 107, 108, 109 und 110 und zeigt außerdem die Verbindungen 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 decodiert, 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 Pin A umschalten
Bit 1: Bei Ereignis Pin B umschalten
Bit 2: Bei Ereignis 8-Bit-Zählwert Latch-speichern
Bit 3: Bei Ereignis Rampenschalter schließen (momentan ein)
Bit 4: Bei Ereignis 8-Bit-Zähler laden
Bits 5-7: Eingangsmultiplexer: MUX 190, Fig. 19.
000 Übergang an Pin A
001 Übergang an Pin B
010 Endzählwertereignis
011 Zählwertvergleichsereignis
100 Rampenstartereignis
101 Pin-B-Vergleichsereignis
Ereignis 1 Konfigurationsregister: Maskierregister 186, Fig. 19;
Bit 0: Bei Ereignis Pin A umschalten
Bit 1: Bei Ereignis Pin B umschalten
Bit 2: Bei Ereignis 8-Bit-Zählwert Latch-speichern
Bit 3: Bei Ereignis Rampenschalter schließen (momentan ein)
Bit 4: Bei Ereignis 8-Bit-Zähler laden
Bits 5-7: Eingangsmultiplexer: MUX 191, Fig. 19.
000 Übergang an Pin A
001 Übergang an Pin B
010 Endzählwertereignis
011 Zählwertvergleichsereignis
100 Rampenstartereignis
101 Pin-B-Vergleichsereignis
I/O-Register und Ressourcen-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: Eintritt in 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: Frequenzmultiplizierer 178, Fig. 18;
niedrigeres Byte des Frequenzmultiplizierers
Obere Hälfte des Frequenzmultiplizierregisters: Frequenzmultiplizierer 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-Pegel während des Eintretens des Ereignisses
Bit 2: Pin-B-Pegel während des Eintretens des Ereignisses
Lese I/O-Bedingungsregister:
I/O-Zustand:
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 = in Suchmodus von Fig. 23
Gemeinsame Ressourcennutzung
Bei dem derzeit bevorzugten Ausführungsbeispiel gibt es fünf Ressourcen, 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 RAM dienen zur Steuerung der gemeinsamen Ressourcennutzung. Fig. 30 zeigt, wie sich die Multiprozessoren in gemeinsame Ressourcen teilen. Das SR 95 der Fig. 12 liest und schreibt auf Bit 0 des M-BUS.
Jedes RAM-Wort enthält einen Zustand: Ruhe, Proz.#1, Proz.#2, Proz.#3 oder Proz.#4. Ein Prozessor kann einen RAM-Platz vor der Ressourcenzuweisung abfragen, um festzustellen, ob eine Ressource belegt ist. Wenn die Ressource nicht zugewiesen ist, greift sie auf das Semaphor-Register in der weiter unten beschriebenen Weise zu. (Alternativ kann ein Prozessor den anfänglichen RAM-Abfrageschritt überspringen und den RAM-Platz nach dem Zugriff auf das Semaphor-Register prüfen.) Wenn die Ressource bereits belegt ist, muß der Prozessor das Semaphor- Register auf "0" löschen und auf einen Neuversuch warten. Wenn die Ressource in "Ruhe" ist, weist der Prozessor eine Ressource dadurch zu, daß er den Zustand des RAM-Registers von "Ruhe" auf "Proz.#x" ändert und danach das Semaphor-Register auf "0" löscht. Wenn der Prozessor mit der Ressource fertig ist, löscht er den RAM-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 aufeinanderfolgenden Taktzyklen (d. h. Phasen) zugreifen können. Das SR 295 ist normalerweise auf "0" gesetzt (set). In Fig. 30 verlangen 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 richtigen RAM-Platz ein, und wenn dieser "Ruhe" enthält, setzt der Prozessor seine "Proz.#" ein, wodurch die Ressource zugeordnet wird, und danach "löscht" er das SR auf "0". Wenn der Prozessor feststellt, daß ein anderer Prozessor die gemeinsam benutzte Ressource gerade verwendet, ordnet er nicht seine Proz.# zu und "löcht" 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 RAM-Register "zuweisen" sollte, jedoch das SR 295 während seiner Verwendung der gemeinsamen Ressource freigeben sollte. Wenn der Prozessor seine Operation unter Verwendung des zugewiesenen RAM-Platzes durchlaufen hat, greift er auf das SR wiederum zu, bis er eine "0" findet. Danach "löscht" er den RAM-Platz in "Ruhe" und "löscht" das SR 295 auf "0". Immer wenn ein Prozessor auf das SR 295 zugreift und eine "1" antrifft, 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 Ressource benötigt. Er fragt das SR, um herauszufinden, ob es frei ist. Der Prozessor verwendet eine "Test & Set"-Operation und da das SR 295 bereits auf einer "1" war, verläßt die Test & Set-Operation das Register mit einer "1". Er muß jetzt warten und erneut versuchen. Er wird weiter versuchen, bis er Zugriff auf das SR 295 hat und die Ressource im RAM-Wort in "Ruhe" findet.
V. Protokoll A. Konkurrenz generell
Bei einer typischen Anwendung ist das Kommunikationsnetzwerk zwischen den Zellen gering belastet, und die Zellen erfahren wenig oder keine Konkurrenzverzögerung. Im Falle starken Verkehrs kann das Netzwerk gesättigt werden. Eine starke Belastung 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 Zeitspanne, 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, Zurückstellung (deferring) und backing off. Zurückstellung ist eine Kollisionsvermeidungstechnik, die bei Gruppenbestätigungen Verwendung findet. Backing off ist eine Verkehrs- oder Lastnivellierungstechnik.
Zurückstellung besteht aus Zählung freier Schlitze. Wenn die Anzahl der von der Zelle gesehenen freien Schlitzen dem Zeitversetzungszä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 Kollisionsbedingung unterfallen ist. Die Größe dieser Erhöhung ist eine Funktion der Anzahl von Kollisionen oder Wiederholungssendungen. Der diese Funktion implementierende Algorithmus wird "Backoff"- oder "Konkurrenz"-Algorithmus genannt.
Das Netzwerk benutzt ein Trägerabtast-Vielfachzugriffs(CSMA)- Verfahren für das Auflösen der Konkurrenz auf dem Kommunikationskanal. 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 dieser 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-Rate ist (d. h. Schiebefrequenz). Wenn eine Zelle eine Verzögerung einführt, bevor sie sendet, wartet sie eine ganze Anzahl von Schlitzen ab. Wenn eine Zelle einen leeren Kanal feststellt, kann sie verzögern und danach, wenn sie sendefertig ist, den Versuch unternehmen, auf einer Schlitzgrenze zu senden. 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 Backoff- Algorithmus vor jeder Wiederholungssendung eines Pakets. Sein Maximalwert ist 2¹⁰.
B. Gruppenbestätigungspaketkonkurrenz
Ein Paket aus einem Gruppenannoncierer an einen Satz von Gruppenhörern bewirkt, daß jeder der Leser eine Bestätigung (Quittung) an den Annoncierer sendet. Ohne eine Methode zur Entscheidung des Konkurrenzzustandes unter diesen Bestätigungen sind Kollisionen unvermeidbar. Um dieses Problem zu vermeiden, findet ein eingebautes Reservierungssystem für Gruppenbestätigungen Verwendung. Eine Hörerzelle verwendet ihre Gruppenmitgliedsnummer, um festzustellen, welcher Schlitz für ihre Bestä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ß Gruppenmitglied 1 seine Bestätigung, dem Originalpaket folgend, im ersten Schlitz sendet. Gruppenmitglied 2 sendet seine Bestätigung 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 antwortet und daher einen Schlitz leer läßt, so antwortet das nächste Gruppenmitglied im nächsten Schlitz.
Das Konkurrenz- und I/O-Zustandsdiagramm ist in Fig. 24 gezeigt. Die folgende Tabelle gibt die Zustände und ihre Beschreibungen an:
Konkurrenzzustände
Konkurrenzzustandsübergänge
C. Kollisionsfeststellung
Bei dem derzeit implementierten Ausführungsbeispiel findet keine Kollisionsfeststellung Verwendung. Gewöhnliche Schaltungen 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 unterbricht danach die Sendung und führt den Backoff-Algorithmus aus. Der Backoff-Algorithmus stellt das Intervall für die Konkurrenz-Zufallsumrechung (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-abgeleitete Kollision zur Berechnung des Backoff-Intervalls benutzen. 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 Auftreten einer Kollision fest, wenn die Protokoll-Auszeitperiode abläuft. Wenn eine Zelle ein Paket an mehrere Ziele (der Normalfall) sendet, unterliegt es einer Kollision, wenn am Ende der Protokoll-Auszeitperiode keine Antworten von einem der Ziele empfangen worden sind. Wenn gerade eine Antwort empfangen 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-Algorithmus ebenso aus wie die Kollisionserfassung, und zwar unter Verwendung der abgeleiteten Kollisionszählung. Nach dem Backoff- Intervall sendet die Zelle das Paket.
Daher liegt der Unterschied zwischen der Kollisionsfeststellung und der Kollisionsableitung in der Länge der Zeit, die die Zelle braucht, um das Auftreten einer Kollision festzustellen.
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-Intervall 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ättigungsbedingungen braucht. Durch exponentielle Verteilung der Belastung 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änger auf unterschiedliche Subkanäle zugreifen, erfahren sie unterschiedliche Lastbedingungen. Jeder Sendeempfänger wird als separater Unterkanal behandelt und hat seine eigenen Backoff- 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 pseudo-zufällige 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 Laufenlassen eines Zählers und Auslesen der Bits niedriger Ordnung bei Feststellung 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-Empfangssequenznummer zur gleichen Sequenznummer im Paket zurückgelaufen ist. Ein Paket könnte so außer der Reihenfolge ankommen, ohne daß das ARQ-Protokoll dies feststellen würde. Um diese Art von Fehler zu vermeiden, benutzt jede 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 Mehrabschnittweg gewartet hat. Wenn derZählwert zu Null wird, wird das Paket abgelegt.
F. ARQ-Protokoll
Die Zelle benutzt ein Protokoll mit einem gleitenden Fenster mit einer Fenstergröße von 1 und Modulo-2-Sequenznumerierung (gleich einem Stopp- und Warte-Protokoll). Der Verbindungssteuermechanismus ist sehr ähnlich dem HDLC abgeglichenen Asynchronmodus. Der prinzipielle Unterschied besteht darin, daß bei einer 1-Bit-Sequenznumerierung anstelle von Bestätigungspaketen mit dem Poll/Final-Bitsatz jedes Informationspaket eine Bestätigung haben muß.
Bevor der ARQ-Mechanismus arbeiten kann, muß eine Verbindung zwischen den beiden kommunizierenden Geräten (Zelle oder Netzwerksteuergerät) hergestellt werden. Der Verbindungsprozeß ist in dem "Verbindungs"-Abschnitt weiter unten 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 Zeitüberschreitungsperiode empfängt, nimmt sie an, daß die Nachricht verlorengegangen ist, und sie sendet die Nachricht erneut.
Zwei Paketarten können zum Übertragen einer Bestätigung verwendet weden, ein Nur-Bestätigungspaket oder ein Informationspaket. Die Bestätigung wird in der Empfangssequenznummer des Pakets geführt. Das Nur-Bestätigungspaket hat kein Nachrichtenfeld und wird von dem ACK-Befehl im Verknüpfungsbefehlsfeld identifiziert. Ein Informationspaket enthält ein Nachrichtenfeld und wird von dem Info-Befehl im Verknüpfungsbefehlsfeld identifiziert.
Fig. 25 ist das Verknüpfungsniveau-ARQ-Zustandsdiagramm und definiert zusammen mit der nachfolgenden Tabelle die verschiedenen ARQ-Zustände.
Eine Zelle muß eine Sendesequenznummer für jeden Adressaten speichern, mit dem sie kommuniziert. Ein Adressat kann eine Zelle, eine Gruppe oder eine Steuereinrichtung sein. Zum Empfang 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 den CRC der Nachricht. Wenn der CRC ungültig ist, antwortet die Zelle nicht auf die Nachricht. Die eine Nachricht empfangende Zelle prüft auch die Sequenznummer der Nahricht. 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 Wiederholungssendung durch den Sender". Ein Empfänger bestätigt eine Duplikatsendung nicht, sofern die Nachricht kein Wiederholungssendungsbit eingeschaltet 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-Sendesequenznummer und eine 1-Bit-Empfangssequenznummer für Nachrichten, die mit der Zellenadresse adressiert sind (benutzt bei Kommunikation mit Steuereinrichtungen).
Zelle-zu-Zelle-Kommunikationen finden statt über Gruppenadressen. 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 zu einem gegebenen Zeitpunkt haben, das bzw. der Zellenadressen benutzt, da sie Mittel zur Speicherung nur eines Satzes dieser Sequenznummern enthält.
Wenn eine Steuereinrichtung mit einer Zelle zu kommunizieren sucht, eröffnet sie die Kommunikation durch Senden eines Pakets 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 Protokollverarbeitungszeit in der Zielzelle und Übergabezeit für das die Bestätigung tragende Rückgabepaket.
Die Protokoll-Auszeitspanne für Mehr-Etappen-Pakete 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. Verbindungssteuerbefehle
Verbindungssteuerbefehle steuern die Operation des ARQ-Protokolls und den Verbindungsherstellungsprozeß (siehe nächsten Abschnitt). Das Verbindungsbefehlsfeld eines Pakets enthält stets einen Verbindungsbefehl.
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 Sequenznumerierung. Die INFO-Pakete haben zwei Sequenznummern, eine Sendesequenznummer und die Sequenznummer des letzten empfangenen Pakets. ACK-Pakete haben beide Sequenznummernfelder, jedoch 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. Unnumerierte 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 Verbindungsherstellungs- 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 hergestellt sind, kann der Annoncierer mit den Hörern kommunizieren. Verbindungen werden von einem Untersatz aus Verbindungssteuerbefehlen gesteuert. Die Befehle werden von einer Primärstation 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 Sekundärstationen. Wenn eine Netzwerk-Steuereinrichtung mit einer Zelle kommuniziert, so ist die Steuereinrichutng die Primärstation und die Zelle die Sekundärstation. Die Verbindungssteuerbefehle 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 beziehen sich auf die Primär- und Sekundärstationen. Die Primärstation 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+1mal bewirkt, ist als fataler Fehler definiert und bewirkt Initialisierung. 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 wenigstens 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 Codeverletzung. Wenn eine ein Paket empfangende Zelle eine Abbruchfolge 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 zur Staubehandlung 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. Anfangs 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 voreingestellte 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 anderen Felder im Paket dienen zur Berechnung des Paket-CRC. (Alle Felder mit Ausnahme des Konkurrenzzeitgabefeldes werden verwendet.) 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-voreingestellte 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, beispielsweise 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 Gruppiereinrichtung 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 Verwendung in den Paketen, können mit bekannten Programmen erzeugt werden.
Ein Apple-II-Computer kann beispielsweise als Gruppiereinrichtung verwendet werden. Die 48-Bit-System-ID kann auf einer Platte gespeichert werden; oder eine gedruckte Schaltungskarte kann vorgesehen sein, die in einen der Steckplätze des Apple-II- Computers 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 werden.
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 kommuniziert 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 Anwenderdisplays 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 mit einer Zelle 232 verbunden, wobei die Zelle über einen Sendeempfänger 233 mit einem Netzwerk gekoppelt ist. Die Zelle 232 ist Bestandteil der Gruppiereinrichtungen, 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, beispielsweise die Nachricht der Zuordnung der Zielzelle als Annoncierer in einer bezeichneten Gruppe ist eine von der Gruppiereinrichtung erzeugte Nachricht. Die Gruppiereinrichtung kann direkt mit der Zelle über eines der drei Leitungspaare in Verbindung treten, welche mit den I/O-Unterabschnitten 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 Steuern beschrieben, das verteilte Intelligenz hat. Obwohl in dieser Anmeldung ein einfaches Beispiel der Verwendung von Zellen in einem Wohnhaus beschrieben worden ist, ist es für den Fachmann klar, daß die beschriebene Erfindung in zahlreichen anderen Anwendungen eingesetzt werden kann. Anlage C enthält eine Liste einiger anderer Anwendungsmöglichkeiten zur Verwendung der vorliegenden Erfindung.
Anlage A, Paketbeispiele Routentyp 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 Kommunikationsunterkanal nach der Umsetzung in den 3-aus-6-Code ist 50% größer.
Einzeletappe Paketformat
Präambel, 16 Bits
Flag, 4 Bits
Zielzellenadresse, 48 Bits
Konkurrenzzeitgeber, 10 Bits
Konkurrenzzeitgeber-Prüfsumme, 6 Bits
Etappenzähler, 4 Bits
Randomisierer, 8 Bits
Verbindungssteuerung
Wiederholungssendungsflag, 1 Bit
RCV-Folge, 1 Bit
XMT-Folge, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Vermittlungstyp, 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
Einzeletappe Antwortformat
Präambel, 16 Bits
Flag, 4 Bits
System-ID, 32 Bits
Zielzellenadresse, 48 Bits
Konkurrenzzeitgeber, 10 Bits
Konkurrenzzeitgeber-Prüfsumme, 6 Bits
Etappenzählwert, 4 Bits
Randomisierer, 8 Bits
Verbindungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Vermittlungstyp, 4 Bits=1 (volladressiert)
Quellenzellenadresse, 48 Bits
Verschlüsselungsprüfung, 16 Bits
CRC, 16 Bits
Flag, 43 Bits
Mehretappen-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
Etappenzählwert, 4 Bits
Randomisierer, 8 Bits
Verbindungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Vermittlungstyp, 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
Mehretappenvolladresse Antwortformat
Präambel, 16 Bits
Flag, 4 Bits
System-ID, 32 Bits
Bestimmungszellenadresse, 48 Bits
Konkurrenzzeitgeber, 10 Bits
Konkurrenzzeitgeber-Prüfsumme, 6 Bits
Etappenzählung, 4 Bits
Randomisierer, 8 Bits
Verbindungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Vermittlungstyp, 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
Etappenzählwert, 4 Bits
Randomisierer, 8 Bits
Verbindungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Vermittlungstyp, 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
Etappenzählwert, 4 Bits
Randomisierer, 8 Bits
Verbindungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Vermittlungstyp, 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
Etappenzählwert, 4 Bits
Randomisierer, 8 Bits
Verbindungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Vermittlungstyp, 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
Etappenzählwert, 4 Bits
Randomisierer, 8 Bits
Verbindungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Vermittlungstyp, 4 Bits=2 (beschränktes Fluten)
Bestimmungszellenadresse, 48 Bits
Quellenzellenadresse, 48 Bits
Veschlü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
Etappenzählwert, 4 Bits
Randomisierer, 8 Bits
Verbindungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Vermittlungstyp, 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
Etappenzählwert, 4 Bits
Randomisierer, 8 Bits
Verbindungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Vermittlungstyp, 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
Etappenzählwert, 4 Bits
Randomisierer, 8 Bits
Verbindungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Vermittlungstyp, 4 Bits=3 (beschränktes Fluten)
Zielzellenadresse, 48 Bits
Adreßzählwert, 4 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
Etappenzählwert, 4 Bits
Randomisierer, 8 Bits
Verbindungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Vermittlungstyp, 4 Bits=3 (beschränktes Fluten)
Zielzellenadresse, 48 Bits
Quellzellenadresse, 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
Etappenzählwert, 4 Bits
Randomisierer, 8 Bits
Verbindungssteuerung
Wiederholungssendungs-Flag, 1 Bit
RCV-Sequenz, 1 Bit
XMT-Sequenz, 1 Bit
unbenutzt, 1 Bit
Befehl, 4 Bits
Netzwerksteuerung
Vermittlungstyp, 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
Vermittlungsverfahren: 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
Vermittlungsverfahren: begrenzte 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
Vermittlungsverfahren: begrenztes Fluten oder Gruppenfluten
Nachrichtentyp: 4
Nachrichteninhalt: Gruppennummer, Mitgliedsnummer
Gruppenannoncierer zurücknehmen
Funktion: Nimmt die Zielzelle als Annoncierer in der bezeichneten Gruppe zurück
Quelle: Gruppiereinrichtung
Ziel: Annoncierzelle
Adreßtyp: Zelle oder Gruppenmitglied
Vermittlungsverfahren: 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
Vermittlungsverfahren: beschränktes Fluten oder Gruppenfluten
Nachrichtentyp: 6
Nachrichteninhalt: Gruppennummer, Mitgliedsnummer
Gruppenhörer zurücknehmen
Funktion: Nimmt die Zielzelle in ihrer Funktion als Hörer in der bezeichneten Gruppe zurück
Quelle: Gruppiereinrichtung
Ziel: Hörerzelle
Adreßtyp: Zelle oder Gruppenmitglied
Vermittlungsverfahren: 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
Vermittlungsverfahren: beschränktes Fluten oder Gruppenfluten
Nachrichtentyp: 8
Nachrichteninhalt: Gruppennummer, Mitgliedsnummer
Gruppenwiederholer zurücknehmen
Funktion: Nimmt die Funktion der Zielzelle als Wiederholer in der bezeichneten Gruppe zurück
Quelle: Gruppiereinrichtung
Ziel: Gruppenwiederholerzelle
Adreßtyp: Zelle oder Gruppenmitglied
Vermittlungsverfahren: 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
Vermittlungsverfahren: volladressiert, offenes Fluten, beschränktes Fluten
Nachrichtentyp: 10
Nachrichtentyp: keiner
Beendigung (Shutup)
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 Zelle
Vermittlungsverfahren: 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
Vermittlungsverfahren: beliebig
Nachrichtentyp: 12
Nachrichteninhalt: Eingabenummer (Byte)
Berichte deine Ausgabe
Funktion: Befehle an Zelle, ihren Ausgang zu berichten
Quelle: Steuereinrichtung oder Zelle
Ziel: Zelle
Adressentyp: beliebig
Vermittlungsverfahren: beliebig
Nachrichtentyp: 13
Nachrichteninhalt: Ausgabenummer (Byte)
Herunterladen
Funktion: Herunterladen von Daten oder Code
Quelle: Steuereinrichtung
Ziel: Zelle
Adressentyp: beliebig
Vermittlungsverfahren: beliebig
Nachrichtentyp: 14
Nachrichteninhalt: Adresse, Länge, Code
Setze Kommunikationsparameter
Funktion: Setze einen Kommunikationsparameter in der Zelle
Quelle: Steuereinrichtung
Ziel: Zelle
Adreßtyp: beliebig
Vermittlungsverfahren: beliebig
Nachrichtentyp: 15
Nachrichteninhalt: Parameternummer, Wert
Annoncierung
Funktion: Annonciere Sensordaten
Quelle: Gruppenannoncierer
Ziel: Gruppe
Adressentyp: Gruppe, Sender
Vermittlungsverfahren: Gruppenfluten
Nachrichtentyp: 16
Nachrichteninhalt: 0-255 (ein Byte)
Anlage C, Anwendungen

Claims (6)

1. Netzwerk zur Meßwertaufnahme, Kommunikation und Steuerung, wobei
eine erste Anzahl von Zellen (58) mit einem ersten Übertragungsmedium (51),
eine zweite Anzahl von Zellen (57) mit einem zweiten Übertragungsmedium (52) und
zumindest eine dritte Zelle (54) sowohl mit dem ersten (51) als auch mit dem zweiten (52) Übertragungsmedium gekoppelt ist;
zumindest eine der ersten Zellen (58) und eine der zweiten Zellen (57) eine gemeinsame Identifikationsnummer einer Gruppe (75) haben und ihnen eine Gruppenfunktion für die Gruppe (75) zugewiesen ist, wobei die Gruppenfunktion eine gemeinsame Aufgabe zur Meßwertaufnahme, Kommunikation und Steuerung ist, die von den Zellen in der durch die gemeinsame Identifikationsnummer identifizierten Gruppe (75) ausgeführt wird; und wobei
die dritte Zelle (54) zwecks Wiederholens der zwischen den Zellen mit der gemeinsamen Identifikationsnummer gesendeten Nachrichten die gemeinsame Identifikationsnummer hat.
2. Netzwerk nach Anspruch 1, dadurch gekennzeichnet, daß die dritte Zelle (54) die Nachrichten auf sowohl das erste als auch das zweite Übertragungsmedium (51, 52) neu aussendet.
3. Netzwerk nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß jeder der ersten und zweiten Zellen (58, 57) und der dritten Zelle (54) in der Gruppe (75) eine unterschiedliche Mitgliedsnummer der Gruppe (75) zugeordnet ist, die in der jeweiligen Zelle gespeichert ist.
4. Verfahren zur Nachrichtenübertragung in einem Netzwerk zur Meßwertaufnahme, Kommunikation und Steuerung, insbesondere in einem Netzwerk nach einem der Ansprüche 1 bis 3, wobei mehrere Zellen mit dem Netzwerk gekoppelt sind und die Zellen über Nachrichten enthaltende Pakete miteinander kommunizieren, dadurch gekennzeichnet,
daß von einer ersten Zelle mit jedem Paket eine Sequenznummer und ein Wiederholungssendung-Flag gesendet wird, das angibt, ob die Nachricht von der ersten Zelle wiederholt gesendet wird;
daß von einer zweiten Zelle ein Paket nur dann bestätigt wird, wenn die Sequenznummer in dem empfangenen Paket von der Sequenznummer eines zuvor empfangenen Pakets abweicht oder wenn die Sequenznummer die gleiche wie die zuvor empfangene Sequenznummer ist und das Wiederholungssendung-Flag in dem Paket angibt, daß das Paket von der ersten Zelle wiederholt gesendet worden ist;
wodurch unnötige Bestätigungen für Pakete verhindert werden.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß zu Beginn die Zellen in Gruppen eingeteilt werden, wobei jeder Gruppe eine Identifikationsnummer und jeder Zelle der Gruppe eine Gruppenmitgliedsnummer zugewiesen wird und wobei jede Gruppe zum Ausführen einer Gruppenaufgabe bei der Meßwertaufnahme, Kommunikation und Steuerung gebildet wird.
6. Verfahren nach Anspruch 4 oder 5, dadurch gekennzeichnet, daß in der zweiten Zelle eine Aktion an der Nachricht nur dann vorgenommen wird, wenn die Sequenznummer von der zuvor empfangenen Sequenznummer abweicht.
DE3890947A 1987-11-10 1988-11-01 Netzwerk und Verfahren zur Nachrichtenübertragung Expired - Lifetime DE3890947C2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11938287A 1987-11-10 1987-11-10
PCT/US1988/003887 WO1989004517A1 (en) 1987-11-10 1988-11-01 Protocol for network having a plurality of intelligent cells

Publications (1)

Publication Number Publication Date
DE3890947C2 true DE3890947C2 (de) 1995-05-18

Family

ID=22384132

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3890947A Expired - Lifetime DE3890947C2 (de) 1987-11-10 1988-11-01 Netzwerk und Verfahren zur Nachrichtenübertragung

Country Status (8)

Country Link
EP (1) EP0393117B1 (de)
JP (1) JPH03505642A (de)
AU (1) AU634079B2 (de)
CA (1) CA1317651C (de)
DE (1) DE3890947C2 (de)
GB (1) GB2244830B (de)
SG (1) SG86292G (de)
WO (1) WO1989004517A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6927709B2 (en) 2001-07-16 2005-08-09 Infineon Technologies Ag Transmission and reception interface and method of data transmission

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2666922B1 (fr) * 1990-09-18 1995-04-21 Noel Kerebel Chaine de mesure et de commande d'une pluralite d'elements constituant l'equipement de bateaux de plaisance.
EP0638886B1 (de) * 1993-08-12 1998-11-11 Landis &amp; Gyr Technology Innovation AG Verfahren zur Übermittlung einer Nachricht zwischen zwei Teilnehmerstationen und Einrichtung zur Durchführung des Verfahrens
DE69432192T2 (de) * 1993-10-12 2003-12-04 Smc K.K., Tokio/Tokyo Linearantrieb
JPH09172475A (ja) * 1995-12-19 1997-06-30 Nippon Denki Ido Tsushin Kk オペレータ固有サービスの自動設定・解除方式
GB2369471A (en) * 2000-11-24 2002-05-29 Deson Ies Engineering Ltd Intelligent building management system
US7060030B2 (en) 2002-01-08 2006-06-13 Cardiac Pacemakers, Inc. Two-hop telemetry interface for medical device
US8897324B2 (en) * 2012-02-01 2014-11-25 Microchip Technology Incorporated Timebase peripheral
RU2540812C1 (ru) * 2014-04-18 2015-02-10 Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский университет "МИЭТ" (МИЭТ) Способ информационного обмена в системе телемеханики
DE102016105024A1 (de) 2016-03-18 2017-09-21 Techem Energy Services Gmbh Verfahren zur Korrektur von Übertragungsfehlern und Empfängervorrichtung
IT201900023460A1 (it) * 2019-12-10 2021-06-10 Comelit Group S P A Metodo di gestione dello scambio di informazioni tra moduli di uno o più dispositivi attraverso un bus di tipo rs-485

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0074865A2 (de) * 1981-08-27 1983-03-23 BURROUGHS CORPORATION (a Delaware corporation) Ausdehnbares und beschränkbares Lokalbereichsnetzsystem

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4069392A (en) * 1976-11-01 1978-01-17 Incorporated Bell Telephone Laboratories Dual speed full duplex data transmission
US4173754A (en) * 1977-03-17 1979-11-06 General Electric Company Distributed control system
US4320520A (en) * 1980-06-27 1982-03-16 Rolm Corporation Transmitter/receiver for use on common cable communications system such as ethernet
US4427968A (en) * 1981-04-09 1984-01-24 Westinghouse Electric Corp. Distribution network communication system with flexible message routes
US4446462A (en) * 1982-03-01 1984-05-01 General Electric Company Method and apparatus for multiple frequency transmission of information in a digital communication system
EP0089831A3 (de) * 1982-03-19 1985-05-22 Harris Corporation Datenübertragungssystem, das die Unterdrückung redundanter Nachrichten sicherstellt
US4675668A (en) * 1982-12-30 1987-06-23 Sharp Kabushiki Kaisha Data transmission system over building wiring
US4712215A (en) * 1985-12-02 1987-12-08 Advanced Micro Devices, Inc. CRC calculation machine for separate calculation of checkbits for the header packet and data packet
DE3611949A1 (de) * 1986-04-09 1987-10-15 Regulex Tech Info Datenuebertragungsverfahren und datenuebertragungsvorrichtung

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0074865A2 (de) * 1981-08-27 1983-03-23 BURROUGHS CORPORATION (a Delaware corporation) Ausdehnbares und beschränkbares Lokalbereichsnetzsystem

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6927709B2 (en) 2001-07-16 2005-08-09 Infineon Technologies Ag Transmission and reception interface and method of data transmission
DE10134472B4 (de) * 2001-07-16 2005-12-15 Infineon Technologies Ag Sende- und Empfangsschnittstelle und Verfahren zur Datenübertragung

Also Published As

Publication number Publication date
WO1989004517A1 (en) 1989-05-18
AU8153791A (en) 1991-10-17
GB9007629D0 (en) 1990-08-01
EP0393117B1 (de) 1994-01-12
AU634079B2 (en) 1993-02-11
GB2244830B (en) 1992-04-29
JPH0578054B2 (de) 1993-10-28
EP0393117A4 (en) 1991-08-28
SG86292G (en) 1992-12-04
CA1317651C (en) 1993-05-11
EP0393117A1 (de) 1990-10-24
GB2244830A (en) 1991-12-11
JPH03505642A (ja) 1991-12-05

Similar Documents

Publication Publication Date Title
DE3854670T2 (de) Netzwerk und intelligente zelle zur abfrage, bidirektionellen kommunikation und zur steuerung.
US4969146A (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
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
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
DE102015106778B4 (de) Ein Verfahren und Technisches Gerät für die Nahbereichsdatenübertragung
DE69333798T2 (de) Verfahren und gerät zur arbitrierung auf einen azyklischen gerichteten graphen
DE3890947C2 (de) Netzwerk und Verfahren zur Nachrichtenübertragung
DE10259327A1 (de) USB-Verbundgerät und Verfahren zum Realisieren desselben
CN106878933A (zh) 一种蓝牙设备组网方法和系统
DE3890945C2 (de) Zelle, die in einem mehrzelligen Netzwerk zur Meßwerterfassung, Kommunikation und Steuerung dient
DE102019204916A1 (de) Systemkombination aus einem asynchronen und einem synchronen Funksystem
EP0386151B1 (de) Intelligente multiprozessor-zelle für ein netzwerk
AU621581B2 (en) Protocol for network having a plurality of intelligent cells
AU619514B2 (en) Network for providing sensing communications and control
DE69300379T2 (de) Vorrichtung zum Anschluss eines Terminals an einen Übertragungskanal.
CA1326275C (en) Network and intelligent cell for providing sensing, bidirectional communications and control
GB2244576A (en) Network for sensing, communication and control
DE8904521A1 (de)
JPH0433433A (ja) 不正アドレス管理方法

Legal Events

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