-
Hintergrund
der Erfindung
-
Die
vorliegende Erfindung betrifft digitale Kommunikationsnetze und
insbesondere das zum Übertragen
digitaler Daten verwendete Protokollverfahren und die Vorrichtung,
die das Protokoll ausführt.
-
Fabriken
werden mit Steuerungen automatisiert, die so programmiert oder konfiguriert
sind, dass sie bestimmte Maschinen oder Geräte betreiben. Diese Steuerungen
können
Universalsteuerungen sein, wie z. B. Computer, numerische Steuerungen oder
programmierbare Steuerungen; oder sie können Spezialsteuerungen sein,
wie z. B. Robotersteuerungen, Schweißsteuerungen oder Motorantriebe.
-
Jede
Steuerung ist mit den verschiedenen Sensorgeräten und Betriebsgeräten der
Anlage verbunden, die sie steuert, und automatisiert den Betrieb der
Anlage, indem sie Daten von den Sensorgeräten eingibt und die entsprechenden
Daten an die Betriebsgeräte
ausgibt. Dieser Austausch von Ein- und Ausgabe-("E/A")-Daten
zwischen der Steuerung und den Geräten an der gesteuerten Anlage
erfolgt häufig durch
direkte Verbindungen zwischen Ports an der Steuerung und jedem separaten
E/A-Gerät.
Wenn E/A-Geräte
jedoch physikalisch über
einen großen Bereich
verteilt sind, dann kann die Verdrahtung in Verbindung mit solchen
separaten Verbindungen zu teuer werden.
-
Eine
Möglichkeit,
die Verdrahtung in solchen Anwendungen zu reduzieren, besteht darin,
E/A-Daten durch eine serielle Kommunikationsverbindung zu multiplexieren.
Solche seriellen E/A-Verbindungen werden gewöhnlich eingesetzt, um die zentral
positionierte Steuerung mit separaten ortsfernen Gestellen oder
Baugruppenträgern
zu verbinden, die sich in der Nähe
der E/A-Geräte
befinden. Solche "Fern-E/A-Systeme" sind beispielsweise
in den US- Patenten
Nr. 4,404,651; 4,413,319; 4,809,217 und 4,750,150 offenbart, wo
die Steuerung eine kontinuierliche Hochgeschwindigkeitsabtastung
der E/A-Daten in Verbindung mit jedem Ferngestell durchführt, und
diese Daten werden über
die serielle Kommunikationsverbindung übertragen. Es ist verständlich,
dass solche seriellen E/A-Links rechtzeitig und zuverlässig die
E/A-Daten übertragen
müssen, da
diese Daten Betriebsgeräte
an einer in Echtzeit arbeitenden Maschine direkt steuern.
-
Eine
einzige Steuerung kann zwar eine Maschine oder eine kleine Gruppe
von Maschinen automatisieren, aber um ein ganzes Werk wirklich zu
automatisieren, müssen
solche "Automationsinseln" miteinander verbunden
werden. Diese letzteren Verbindungen werden durch industrielle LANs
bereitgestellt, die es jeder Steuerung erlauben, Meldungen über serielle
Datenverbindungen zu anderen ähnlichen
Steuerungen im Werk zu senden. Es gibt eine große Zahl solcher "Peer-to-Peer" Kommunikationsnetze,
die in der Technik bekannt sind, von denen einige von Normenausschüssen wie
IEEE 802.3, IEEE 802.4, IEEE 802.5 und MAP entwickelt werden; andere
werden von Herstellern der Steuerung wie z. B. diejenigen entwickelt,
die in den US-Patenten Nr. 4,319,338, 4,667,323 und 4,747,100 offenbart
sind. Es ist verständlich,
dass die Art der Peer-to-Peer-Daten,
die über
LANs übertragen
werden, die Steuerungen miteinander verbinden, sich von E/A-Daten
unterscheiden, die über
serielle E/A-Verbindungen übertragen
werden. Während
einige der Daten möglicherweise
den Zustand der gesteuerten Maschinen anzeigen, besteht ein großer Teil
des Datenverkehrs aus großen
Datenblöcken.
So kann beispielsweise eine "Zellensteuerung" Steuerprogramme
für programmierbare
Logiksteuerungen oder Teilprogramme für numerische Steuerungen herunterladen,
und programmierbare Logiksteuerungen können Blöcke von statistischen Daten über Produktion
und Qualitätskontrolle
heraufladen. Während
E/A-Daten gewöhnlich zeitkritisch
sind und innerhalb von Millisekunden des Events, das sie erzeugt
hat, zuverlässig übertragen
werden müssen,
ist das Herauf- und Herunterladen von großen Datenblöcken gewöhnlich nicht so zeitkritisch.
-
Serielle
Fern-E/A-Kommunikationsnetze und Peer-to-Peer-Netze koexistieren zwar schon seit
vielen Jahren in Werken miteinander, aber eine Reihe von Faktoren
lässt die
Unterschiede zwischen ihnen verschwimmen und verlangen, dass ein
einzelnes Netz mit den Attributen von beiden erstellt wird. Einer dieser
Faktoren ist technisch – die
zunehmende Verwendung kleinerer Steuerungen in einer so genannten "verteilten Verarbeitung". Zum Beispiel, anstatt eine
einzige große
Steuerung zu verwenden, die mit einem Satz von Fern-E/A-Gestellen
verbunden ist, ist eine alternative Architektur ein Satz von miteinander verbundenen
kleinen Steuerungen, die anstelle jedes einzelnen Fern-E/A-Gestells
im Werk verteilt sind. Die resultierende Kommunikationsverbindung,
die diese kleinen, verteilten Steuerungen verbindet, muss sowohl
zeitkritische E/A-Daten als auch Peer-to-Peer-Meldungen übertragen.
Ein weiterer Faktor ist der Wunsch von Werksbesitzern, die Zahl der
verwendeten verschiedenen Kommunikationsnetze zu verringern, um
Personalausbildung und Wartungsbedarf zu vereinfachen und um das
Ersatzteilinventar zu reduzieren.
-
Das
zum Übertragen
der Daten auf einer seriellen Kommunikationsverbindung verwendete
Medium richtet sich hauptsächlich
nach Kosten und der Geschwindigkeit, mit der die Daten übertragen
werden müssen.
Das kostenärmste
Medium, das in Werksanlagen eingesetzt wird, sind verdrillte Paare mit
einer sehr niedrigen Bandbreite, und das teuerste Medium ist faseroptisches
Kabel, das eine enorme Bandbreite bereitstellt. Das üblichste
im Werk eingesetzte Medium ist jedoch ein abgeschirmtes Kabel wie z.
B. Koaxialkabel, das einen guten Kosten-Leistungs-Kompromiss bietet.
-
Das
gewählte
Medium kann die Steuerungen und Ferngestelle auf unterschiedliche
Weisen verbinden, die gewöhnlich
als "Netzwerktopologie" bezeichnet werden.
Man findet im Werk zwar so genannte "Stern"- und "Ring"-Topologien, aber
die "Bus"-Topologie ist bei
weitem am meisten verbreitet. Bei der Bustopologie verläuft ein
Kabel um das Werk von einer Station zur nächsten, und eine kurze Anschlussleitung
wird an diesen Bus angeschlossen und mit der Steuerung an dieser
Station verbunden. Die Bustopologie ist am wirksamsten und lässt sich am
leichtesten installieren.
-
Der
Zugang zum Kommunikationsnetz wird durch das am Netz verwendete "Medienzugangssteuer"-(Media Access Control – MAC)-Protokoll
bestimmt. In frühen
LANs, und in vielen Fern-E/A-Netzen, wurde der Zugang zum Medium
durch eine einzelne "Master"-Station gesteuert.
So dient beispielsweise in dem in den oben angeführten Patenten beschriebenen
Fern-E/A-Netz die programmierbare Steuerung als Master des Netzwerkes
und teilt den Fern-E/A-Gestellen mit, wann sie auf das Medium zugreifen
können.
Dieses Einzel-Master-Protokoll ist für Fern-E/A-Netze zufriedenstellend,
wo der Verlust des programmierbaren Controller-Masters zu einem
Abschalten des gesamten Netzes führt,
ist aber in einem Peer-to-Peer-Kommunikationsnetz nicht zufriedenstellend.
In einem Peer-to-Peer-Netz müssen
die Kommunikationen zwischen den Steuerungen auf dem Netz selbst
dann fortlaufen, wenn eine Steuerung abgetrennt ist oder nicht funktioniert.
In der Tat muss die Tatsache, dass eine Steuerung nicht mehr funktioniert,
an sich über
das Netz zu anderen Steuerungen im Werk kommuniziert werden, damit
die entsprechenden Maßnahmen
ergriffen werden können.
-
Es
gibt eine Reihe von Medienzugangssteuerprotokollen, die in Werken
häufig
eingesetzt werden, die sich nicht auf einen einzigen Master verlassen.
Dazu gehören
physikalische Ring-Token-Passing-Netze wie die, die in der Norm
IEEE 802.5 definiert sind, die logischen Ring-Token-Passing-Netze, die in der
Norm IEEE 802.4 definiert sind, und Trägererfassungs-Mehrfachzugriffsnetze
mit Kollisionserkennung (CSMA/CD) wie die, die in der Norm IEEE 802.3
definiert sind. Diese Protokolle sind zwar für Peer-to-Peer-Kommunikationen geeignet, wo
eine Meldung oder ein Datenblock mit jedem Zugriff auf das Medium
gesendet wird, aber sie eignen sich nicht zum Übertragen großer Mengen
von Echtzeit-E/A-Daten.
-
Ein
weiteres Medienzugangssteuerprotokoll, das in Werksanwendungen eingesetzt
werden kann, wird als dynamisches Zeitschlitzzuweisungsnetz (Dynamic
Time Slot Allocation – DTSA)
oder dynamisches Zeitmehrfachzugriffsnetz (Dynamic Time Division
Multiple Access – DTDMA)
bezeichnet. Ein DTDMA-Netz, das zum Übertragen von Echtzeit-E/A-Daten
geeignet ist, ist beispielsweise im US-Patent Nr. 4,897,834 offenbart,
und ein Zeitmultiplexiernetz (TDM), das für die Übertragung von Echtzeit-E/A-Daten
und Meldungsdaten geeignet ist, ist im US-Patent Nr. 4,663,704 offenbart.
-
Um über das
Netz zu kommunizieren, muss eine Station sehr präzise Einzelheiten über das
jeweilige verwendete Protokoll kennen. Das generische Protokoll
kann häufig
auf die Anzahl der Stationen zugeschnitten werden, die ein bestimmtes
installiertes Netz handhaben soll. Außerdem kann das Protokoll,
wenn Ein-/Ausgabedaten von einem Netzwerk in einer Industrieumgebung übertragen
werden, auf die Menge an E/A-Daten zugeschnitten werden, die über das
Netz ausgetauscht werden sollen. So kann z. B. die maximale Menge
an Zeit, während
der eine Station auf das Netz zugreifen darf, so festgelegt werden,
dass jede Station für
eine sinnvolle Zeitdauer Zugang zu dem Netz hat, um ihre wichtigen
Daten zu senden. Wenn eine Station einem Netz zugeschaltet wird,
dann müssen
ihr die spezifischen Einzelheiten über das benutzte Protokoll
mitgeteilt werden. Dies erfolgt gewöhnlich durch die Operation,
die die Station verbindet, indem die Protokollinformationen manuell
in die Station geladen werden, oder dadurch, dass eine Master-Station
eine die Protokollinformationen enthaltende generische Meldung über das
Netz zu einer neu zugeschalteten Station sendet. Die generische
Meldung verwendet ein Vorgabeprotokoll, mit dem die Master-Station
den Kontakt mit der neu zugeschalteten Station aufnehmen kann. Beide diese
Techniken erfordern eine Form von manuellem Eingriff, um die Protokollinformationen
in eine neu zugeschaltete Station zu laden. Es ist wünschenswert, dass
eine solche neue Station lediglich eine Zeitlang auf dem Netzwerk
horcht und genügend
Informationen über
das verwendete Protokoll sammelt, damit sich dieses Netz selbsttätig für die Kommunikation über das
Netz konfigurieren kann.
-
Die
EP-02-01 00662 offenbart ein digitales Mehrachsen-Kommunikationssystem,
bei dem eine der Parameter-Netzwerkschnittstelleneinheiten
eine Pacer-Einheit ist, die eine Steuermeldung zu allen Netzschnittstelleneinheiten
sendet, um die Anzahl der Meldungen auf dem Netzwerk zu verfolgen
[sic] jede Netzwerkschnittstelleneinheit umfasst wiederum ein Datenverarbeitungsmittel
und Mittel zum Senden der Mehrzahl von Netzwerkmeldungen, einschließlich Meldungssegmenten,
die solche Parameter als Meldungsnummer, Zieladresse und variable
Meldungslänge
designieren, Mittel zum Empfangen der Netzwerkmeldungen.
-
Zusammenfassung
der Erfindung
-
Gemäß einer
bevorzugten Ausgestaltung der Erfindung wird ein Verfahren zum Übertragen
von Daten über
ein digitales Kommunikationsnetz mit Stationen bereitgestellt, die
mit einem Übertragungsmedium
verbunden sind, und wobei Stationen, die eine erste Datenklasse
erzeugen, als eine erste Gruppe von Stationen angesehen werden,
und Stationen, die eine zweite Datenklasse erzeugen, als eine zweite
Gruppe angesehen werden, wobei Stationen in der ersten Gruppe auch
zur zweiten Gruppe gehören,
wobei das Verfahren die folgenden Schritte umfasst:
Übertragen
von Netzsteuerinformationen in Bezug darauf, wie Meldungen über das Übertragungsmedium
gesendet werden, in periodischen Intervallen von einer Moderatorstation über das Übertragungsmedium,
gekennzeichnet durch die folgenden Schritte:
Geben jeder Station
in der ersten Gruppe eine Gelegenheit zum Übertragen von Daten der ersten
Klasse über
das Übertragungsmedium
in einer vordefinierten Reihenfolge; und
wenn jede Station
in der ersten Gruppe eine Gelegenheit zum Übertragen von Daten erhalten
hat, Geben, wenn noch Zeit übrig
ist, bevor die Netzsteuerinformationen erneut übertragen werden, Stationen in
der zweiten Gruppe eine Gelegenheit, die zweite Datenklasse über das Übertragungsmedium
zu übertragen,
wobei der zweiten Gruppe von Stationen die Gelegenheit zum Übertragen
in einer vorbestimmten Reihenfolge gegeben wird.
-
Gemäß einer
bevorzugten Ausgestaltung der Erfindung wird ein digitales Kommunikationsnetz mit
Stationen bereitgestellt, die mit einem Übertragungsmedium verbunden
sind, und wobei Stationen, die eine erste Datenklasse erzeugen,
als eine erste Gruppe von Stationen angesehen werden, und Stationen,
die eine zweite Datenklasse erzeugen, als eine zweite Gruppe angesehen
werden, wobei Stationen in der ersten Gruppe auch zur zweiten Gruppe
gehören,
wobei die Stationen Folgende umfassen:
eine Moderatorstation
zum Übertragen
von Netzsteuerinformationen in Bezug darauf, wie Meldungen über das Übertragungsmedium
gesendet werden, in periodischen Intervallen über das Übertragungsmedium, dadurch
gekennzeichnet, dass:
die Netzsteuerinformationen jeder Station
in der ersten Gruppe eine Gelegenheit zum Übertragen von Daten der ersten
Klasse über
das Übertragungsmedium
in einer vordefinierten Reihenfolge geben; und
die Netzsteuerinformationen
Stationen in der zweiten Gruppe eine Gelegenheit geben, die zweite
Datenklasse über
das Übertragungsmedium
zu übertragen,
nachdem jede Station in der ersten Gruppe die Gelegenheit zum Übertragen
in einer vorbestimmten Reihenfolge erhalten hat, und wenn noch Zeit übrig ist,
bevor die Netzsteuerinformationen erneut zur Übertragung fällig sind.
-
Es
ist eine Aufgabe der vorliegenden Erfindung, ein Kommunikationsprotokoll
bereitzustellen, das es ermöglicht,
Meldungen mit hoher und tiefer Priorität über dasselbe Medium auszutauschen, ohne
die rechtzeitige Übermittlung
von Meldungen mit hoher Priorität
zu kompromittieren.
-
Es
ist eine weitere Aufgabe, einen Mechanismus zum Rundsenden von Netzsteuerinformationen und
zum Senden von Protokollparametern auf Routinebasis zu den Netzstationen
zu senden.
-
Kurze Beschreibung der
Zeichnungen
-
Kommunikationssystem
-
1 ist
eine Darstellung eines Kommunikationsnetzes gemäß der vorliegenden Erfindung;
-
2A und 2B illustrieren
die Unterteilungen eines von einer Station gesendeten Meldungsframe;
-
3 illustriert
die Sequenz, in der Meldungen über
das Kommunikationsnetz ausgetauscht werden;
-
4A beschreibt
die Reihenfolge, in der verschiedene Stationen auf dem Netz Meldungen während der
geplanten Phase jedes periodischen Intervalls senden; und
-
4B beschreibt
die Reihenfolge, in der verschiedene Stationen auf dem Netz Meldungen während der
ungeplanten Phase jedes periodischen Intervalls senden.
-
Kommunikationssteuerung
-
5A zeigt,
wie eine beispielhafte Station durch eine S-Link Medienzugangssteuerung
(Media Access Controller – SMAC)
mit dem Netz verbunden ist;
-
5B ist
eine schematische Blockdiagrammdarstellung des S-Link Media Access
Controllers von 5A; und
-
6 ist
ein Wellenformdiagramm von Signalen an mehreren Stellen in dem SMAC.
-
SMAC-Modem
-
7 ist
eine schematische Blockdiagrammdarstellung der Modemschaltung im
SMAC;
-
8 ist
eine schematische Blockdiagrammdarstellung des Begrenzerdetektors
in dem Modem; und
-
9 ist
ein Zustandsmaschinendiagramm für
den Begrenzerdetektor.
-
SMAC-Zugangssteuerschaltung
-
10 ist
ein schematisches Blockdiagramm der Zugangssteuerschaltung im SMAC;
-
11 ist
eine schematische Darstellung des Sperrzeitmonitors in der Zugangssteuerschaltung;
-
12 ist
eine schematische Blockdiagrammdarstellung des geplanten Phasenregisters
in der Zugangssteuerschaltung; und
-
13 ist
eine schematische Darstellung des Periodisches-Intervall-Timers
in der Zugangssteuerschaltung.
-
Sende- und
Empfangsprozessoren
-
14 ist
eine schematische Diagrammdarstellung der Sendeverarbeitungsschaltung
im SMAC;
-
15 ist
eine schematische Blockdiagrammdarstellung der Empfangsverarbeitungsschaltung
im SMAC von 5B; und
-
16 ist
ein schematisches Blockdiagramm der Daten- und Steuer-Pipeline in der Empfangsverarbeitungsschaltung.
-
Host-Schnittstelle
-
17 ist
ein schematisches Blockdiagramm der Host-Schnittstelle im SMAC.
-
Beschreibung
einer bevorzugten Ausgestaltung
-
Zunächst mit
Bezugnahme auf 1, ein industrielles Steuerkommunikationsnetz 10 umfasst ein
Medium, mit dem N Stationen 12–16 zum Senden und
Empfangen von Daten verbunden sind. Das Netz 10 kann ein
beliebiges geeignetes Medium wie z. B. Koaxial- oder Faseroptikabel
verwenden und kann auf einer beliebigen geeigneten Topologie wie
z. B. Bus-, Stern- oder Ringtopologie basieren. In dem hier beschriebenen
Ausgestaltungsbeispiel erfolgen die Verbindungen des Netzes 10 über ein
Koaxialkabel 11, das in einer Bustopologie geschaltet ist.
Wenn das Kabel relativ lang ist, dann müssen möglicherweise ein oder mehrere
Repeater 17 verwendet werden, damit der Signalpegel an
allen Stationen ausreicht. Das illustrierte Netz 10 hat
mehrere Ein-/Ausgabe-(E/A)-Schnittstellenschaltungen 15–16 und
X Prozessoren 12–14,
die z. B. programmierbare Steuerungen, Zellensteuerungen oder Minicomputer
sein können.
Der Prozessor oder die Schnittstellenschaltung an jeder Netzstation 12–16 ist über einen
Knoten 20 mit einer eindeutigen Adresse, die zum Identifizieren
von zu und von der assoziierten Station gesendeten Meldungen verwendet wird,
mit dem Koaxialkabel 11 verbunden. Ein Programmierterminal 18 kann über einen
beliebigen Knoten 20 angeschlossen werden, um direkt über das
Netz zu kommunizieren, aber dem Terminal wird eine separate Netzwerkadresse
von den Knoten zugewiesen.
-
Das
Netz 10 wird hierin als CTDMA-(Concurrent Time Division
Multiple Access)-Netz bezeichnet, da sowohl von den Prozessoren 13–15 beim
Betreiben der Maschinen verwendete Ein-/Ausgabedaten sowie Steuerbefehle,
Systemmanagement- und andere Meldungen verzahnt über dasselbe Medium 11 ausgetauscht
werden, wobei jedem Knoten 20 zeitmultiplexiert Zugang
zum Senden von Meldungen gewährt
wird. Das CTDMA-Netz 10 verwendet ein Protokoll des Token-Bus-Typs,
in dem ein "impliziter Token" in einer vorbeschriebenen
Reihenfolge von Knoten zu Knoten gereicht wird, und der Knoten 20, der
den impliziten Token gerade hat, seine Meldungen senden kann. Im
Gegensatz zu anderen Token-Passing-Netzen wird jedoch keine Token-Meldung
zwischen den Knoten übertragen,
sondern jede Station überwacht
die Netzwerkaktivität
und hat ein Register, in dem sie verfolgt, welcher Knoten gerade den
Token hat.
-
Netzkommunikationsprotokoll
-
Gemäß 2A werden
alle Meldungen unabhängig
vom Typ der gesendeten Daten als Media Access Control (MAC) Frame 21 mit
einer maximalen Länge
von 517 Byte formatiert. Jedes Mal, wenn einer Station Zugang zum
Senden von Informationen über
das Netz gewährt
wird, kann sie einen MAC-Frame senden. Die bevorzugte Netzdatenmodulationstechnik
ist herkömmliche
Manchester-Codierung, in der jedes "Bit" von
Manchester-codierten Informationen zwei physikalische Symbole oder Halbbits
umfasst. Die Manchester-Halbbits werden hierin gemäß der "Physical Symbol" Terminologie "Phy-Symbole" genannt. So wird
z. B. ein "0" Datenbit mit einer
Phy-Symbolsequenz "01" codiert, während ein "1" Datenbit mit einer Phy-Symbolsequenz "10" codiert wird.
-
Der
MAC-Frame 21 beginnt mit einer 32-Phy-Symbol-Präambel 22 und
einem 16-Phy-Symbol-Anfangsbegrenzer 23. Ein eindeutiger
Anfangsbegrenzer 23 dient zum Erstellen eines präzisen Synchronisationspunktes
in den eingehenden Daten, damit der Empfänger jedes Phy-Symbol genau
erkennt und die Grenzen zwischen Paaren von aufeinander folgenden
Phy-Symbolen ermittelt, die ein Datenbit codieren. Zusätzlich zum
Anfangsbegrenzer endet der MAC-Frame 21 mit einem Endebegrenzer 28,
der angibt, wann der Frame geendet hat.
-
Hinter
dem Anfangsbegrenzer 23 im MAC-Frame 21 kommt
die Netzwerkadresse 24 des Quellknotens der Meldung. Der
MAC-Frame 21 hat auch ein Datenfeld 25, das eine
Länge von
bis zu 510 Byte hat und das in Grundmeldungseinheiten unterteilt
ist, die als LPakete 26, d. h. „Link-Layer-Pakete", bezeichnet werden.
Jedes LPaket 26 repräsentiert eine
separate Meldung oder Gruppe von Daten und beinhaltet ein eindeutiges
Kennetikett, anhand dessen jeder Knoten 20 ermittelt, ob
er die Information in diesem LPaket benötigt. Wenn ein bestimmter Knoten
mehrere LPakete zu senden hat, dann werden die LPakete in eine Warteschlange
eingereiht und in der eingereihten Folge übertragen. Wenn mehrere LPakete 26 in
der Warteschlange sind, als in einen MAC-Frame passen, dann müssen die übrigen warten, bis dem Knoten
wieder Zugang zum Netzwerkmedium gewährt wird.
-
Jedes
LPaket 26 ist in eine Reihe von Feldern wie in 2B gezeigt
unterteilt. Das erste Feld 31 ist ein Byte, das die Größe oder
Länge des
LPakets 26 als 16-Bit-Datenwörter angibt.
Das zweite Feld 32 enthält
acht Steuerbits, wie in der Vergrößerung dieses Feldes in der
Zeichnung angedeutet ist. Das erste Steuerbit 38 bezeichnet
eine von zwei Formen einer Meldungsadressierung, fest oder allgemein,
die im Etikettfeld 34 des LPakets verwendet werden. Die
feste Form beinhaltet einen Funktionscode, darauf folgt eine Zieladresse.
Wie beschrieben wird, wird eine feste Modusmeldung in jedem Knoten von
einer Schaltung inspiziert, die als „fixed Screener" bezeichnet wird,
um zu ermitteln, ob der Knoten an diesem LPaket interessiert ist.
So wird der feste Modus z. B. zum Rundsenden von Netzmanagementmeldungen
zu allen Knoten verwendet. Die allgemeine Form der Adressierung
ermöglicht
es dem Benutzer, die Bedeutung des Etiketts gemäß einem Satz von Regeln zu
definieren, die für
das jeweilige Netz aufgestellt wurden. So kann beispielsweise eine eindeutige
Etikettnummer einen bestimmten Ursprungstyp von E/A-Daten bezeichnen,
die für
mehrere Knoten von Interesse sein. können. Ein „Universal-Screener" in jedem Knoten
inspiziert diese letztere Etikettform, um zu ermitteln, ob das LPaket
für den Knoten
von Interesse ist, wie beschrieben wird.
-
Das
dritte und vierte Steuerbit 40 und 42 werden als „Etikettfüller" und „Datenfüller" bezeichnet und geben
die Ausrichtung der Etikett- und Datenfelder 34 und 36 im
LPaket an. Wie beschrieben wird, haben die Etikett- und Datenfelder
veränderliche Längen und
beginnen möglicherweise
mit einer 16-Bit-Wortgrenze im LPaket 26 oder auch nicht.
Die Etikettfüller-
und Datenfüller-Steuerbits 40 und 42 geben
diese Ausrichtung an und werden von einem Empfängerknoten zum Trennen der
LPaket-Felder verwendet. Das nächste
Steuerbit 44 gibt an, ob die in dem LPaket enthaltenen
Daten in Bytegröße oder in
16-Bit-Wortgröße vorliegen.
Der letzte Teil 46 umfasst drei Steuerbits, die eine Generationszahl
angeben. In einigen Implementationen des CTDMA-Protokolls kann ein
Quellknoten mehrere Kopien desselben LPakets senden, um zu gewährleisten,
dass wenigstens eines von ihnen die beabsichtigten Empfänger erreicht.
Die Generationszahl bleibt für
jedes duplizierte LPaket dieselbe und ermöglicht es einem Empfängerknoten,
die Duplikate zu ignorieren, wenn ein Paket erfolgreich empfangen
wurde. Wenn sich die Generationszahl ändert, wissen die Netzknoten 20,
dass sich der Meldungsinhalt ebenfalls geändert hat. Wenn das „Immer
akzeptieren" Steuerbit 45 gesetzt
ist, dann ignorieren Empfängerknoten
die Generationszahl bei der Entscheidung, ob sie das LPaket zur
Verarbeitung akzeptieren sollen.
-
Nach
den Steuerbits 32 im LPaket 26 kommt das Etikett 34,
das eine veränderliche
Zahl von Bytes hat. Das Etikett identifiziert den Typ von LPaket,
der es einem Empfängerknoten
ermöglicht,
die LPakete, an denen er nicht interessiert ist, zu ignorieren oder auszufiltern
und nur die zu behalten, die für
ihn von Interesse sind. Wie nachfolgend ausführlicher erläutert wird,
akzeptieren „Screener" in jedem Knoten 20 nur
die LPakete mit selektierten Etiketten. Um eine Grenze zwischen
dem Etikett-Feld 34 und dem Link-Daten-Feld 36 an
einer geradzahligen Wortnummer nach dem Anfang des Datenfeldes 25 zu
behalten, muss das Etikett-Feld 34 eine gerade Zahl von Bytes
im MAC-Frame gemäß Austausch
mit Host-Geräten 12, 13, 14, 15, 16 usw.
enthalten. Ein Etikett mit einer ungeraden Zahl von Bytes wird durch das
Etikettfüller-Steuerbit 40 angezeigt,
das einen Schaltkomplex im sendenden Knoten anweist, ein Füllbyte aus
dem Etikett-Feld zu löschen,
bevor er das LPaket überträgt, und
einen Empfängerknoten anweist,
ein Füllbyte
zum Etikett-Feld hinzuzufügen, bevor
er das LPaket zum Host-Prozessor 102 überträgt. Dieses Merkmal macht das
LPaket für
die Übertragung
kompakter und ermöglicht
es gleichzeitig dem Empfängerknoten,
das LPaket mit dem Etikett an einer Wortgrenze zu speichern, um
einen späteren
Zugriff zu erleichtern.
-
Das
letzte Feld 36 des LPakets 26 enthält die ausgetauschten
Daten oder Befehle, die als „Link-Daten" bezeichnet werden.
Die Anzahl der Bytes im Feld 36 variiert je nach der Menge
von Daten, die der Quellknoten senden muss. Da die Daten in Byte-
oder Wortgröße vorliegen,
müssen
Empfängerschaltungen
in den Empfängerknoten
beide Formate handhaben können.
Wie nachfolgend beschrieben wird, sind die Empfängerschaltungen so ausgelegt,
dass sie Wortgrößeninkremente
handhaben können.
Wenn die Link-Daten 36 eine ungerade Zahl von Bytes haben,
wie durch das Datenfüll-Steuerbit 42 angegeben,
muss der Empfängerknoten
ein Füllbyte
zum Datenfeld hinzugeben, bevor er das LPaket im Speicher speichert.
-
Wieder
bezugnehmend auf 2A, auf das LPaket-Datenfeld 25 im
MAC-Frame 21 folgt ein CRC-Wort (zyklischer Redundanzcode) 27,
den ein Empfängerknoten
verwendet, um zu erkennen, wann der Frame während der Übertragung beschädigt wird.
Der letzte Teil 28 des MAC-Frame 21 ist der zuvor
beschriebene eindeutige Endebegrenzer, an dem die anderen Stationen
erkennen können,
wann der Frame geendet hat. Der Endebegrenzer 28 beinhaltet
auch mehrere explizite Manchester-Code-Verletzungen in seiner Phy-Symbol-Sequenz.
-
Ein
Knoten kann einen MAC-Frame nur zu vorbestimmten Zeiten über das
Netz 10 übertragen, um
zu verhindern, dass Frames von verschiedenen Knoten miteinander
kollidieren. Die Übertragung
von Meldungen erfolgt während
einer Reihe von sich wiederholenden periodischen Intervallen 50,
wie in 3 gezeigt ist. Die Länge des periodischen Intervalls
kann vom Benutzer definiert werden, wie beschrieben wird. Jedes
periodische Intervall 50 ist in drei Segmente unterteilt:
die geplante Phase 52 für E/A-Daten,
die ungeplante Phase 54 für andere Typen von Meldungen,
und ein Sperrband 56 für
die Meldungskoordination.
-
Während der
geplanten Phase 52 erhält
jeder Knoten 20, bei dem E/A-Daten festgestellt wurden,
die Gelegenheit, E/A-Daten über
das Netz zu übertragen.
Wie in 4A gezeigt, ist die geplante Phase 52 in
Zeitschlitze 60 für
jeden der N Knoten 20 auf dem Netz 10 unterteilt.
Wie beschrieben wird, kann die geplante Phase so konfiguriert werden, dass
nicht alle N Knoten Zugang in Situationen haben, in denen nicht
jeder Knoten E/A-Daten übermittelt,
wie z. B. der Programmierterminal 18. Jeder Zeitschlitz 60 kann
so lang sein wie die Zeit, die zum Senden eines MAC-Frame 21 der
maximalen Länge
notwendig ist, die das Netzwerkprotokoll zulässt (z. B. 510 Bytes). So muss
das periodische Intervall 50 eine definierte Dauer haben,
die wenigstens lang genug ist, damit jeder Knoten 20 einen
MAC-Frame 21 maximaler
Dauer senden kann.
-
Am
Ende jedes periodischen Intervalls 50 befindet sich ein
Sperrband 56. Wenn das Sperrband endet, wird ein „Ton"-Signal 53 in jedem Knoten 20 erzeugt,
um die zeitliche Grenze zwischen zwei periodischen Intervallen 50 anzuzeigen.
Das Signal wird zwar nicht über
das Netzwerk gesendet, aber es lässt es
zu, dass jeder Knoten interne Operationen mit der Netzwerkaktivität synchronisiert.
Nach dem Erzeugen des Tonsignals überträgt der Netzknoten mit der ersten
Adresse einen MAC-Frame von E/A-Daten im geplanten Schlitz 1.
Wenn dieser Knoten 20 keine E/A-Daten hat, dann überträgt er einen
leeren MAC-Frame, d. h. einen ohne LPakete. Wenn ein Knoten mehr
E/A-Daten hat, als in einem einzigen MAC-Frame 21 übertragen
werden können,
dann können
die übrigen
Daten während
der ungeplanten Phase 54 gesendet werden, wenn dieser Knoten
eine Gelegenheit erhält,
in dieser Phase zu senden.
-
Am
Ende des geplanten Schlitzes 1 für den ersten Knoten überträgt der Knoten 20 mit
der nächsten
sequentiellen Netzwerkadresse E/A-Daten während des geplanten Schlitzes 2.
Man beachte, dass in diesem Beispiel einem Knoten entweder keine Adresse 3 zugewiesen
wurde oder dass der zugewiesene Knoten derzeit inaktiv ist. Somit
wird der geplante Schlitz 3, der sonst durch E/A-Daten
vom dritten Knoten belegt wird, durch eine kurze „tote" Periode 62 ersetzt.
Der vierte Netzknoten horcht in dieser toten Periode, ob der dritte
Knoten sendet. Diese Horch- oder Warteperiode muss wenigstens so
lang sein wie die längste
Zeit, die ein Signal für
die Fortpflanzung zwischen beliebigen zwei Stationen benötigt. Wenn
eine Übertragung
während
der Horchperiode nicht gehört
wird, dann kommt es zu einem „Schlitz-Timeout", und der vierte
Knoten folgert, dass der dritte Knoten nicht existiert, und beginnt
mit dem Senden von E/A-Daten über
das Netzkabel 11.
-
Diese
Sequenz wird so lange fortgesetzt, bis alle N Knoten 20 auf
dem Netz 10, die für
eine geplante Phasenübertragung
konfiguriert sind, die Gelegenheit erhalten haben, ihre E/A-Daten
zu senden, d. h. bis der implizierte Token einmal um das Netz gereicht
wurde. Die tatsächliche
Dauer der geplanten Phase 52 variiert je nach dem, wie
viele Netzknoten 20 E/A-Daten zum Senden haben, sowie je
nach der Menge von E/A-Daten, die jede Station sendet. Je nach diesen
Faktoren ist es denkbar, dass das gesamte periodische Intervall 50 mit
einer geplanten Phase 52 und einem Sperrband 56 verbraucht
werden kann. Es ist jedoch häufiger
der Fall, dass nach der geplanten Phase 52 noch Zeit für eine ungeplante
Phase 54 bleibt.
-
Während der
so genannten ungeplanten Phase 54 erhalten die Netzwerkknoten 20 die
Gelegenheit, eventuell verbleibende E/A-Daten sowie andere Meldungstypen
zu senden, wie z. B. solche, die Steuerbefehle und Herstellungsinformationen
enthalten. Sämtliche
nach der geplanten Phase 52 im periodischen Intervall 50 verbleibende
Zeit wird der ungeplanten Phase 54 gegeben. Somit erhält nicht
jeder Knoten 20 während
der ungeplanten Phase 54 unbedingt garantiert Zeit, um
Meldungen zu senden, aber das ist akzeptabel, da die ungeplanten
Phasenmeldungen definitionsgemäß weniger
zeitkritisch sind als die E/A-Daten.
-
Wenn
genügend
Zeit verbleibt, dann können die
Knoten 20 MAC-Frame während
der ungeplanten Phase 54 wie in 4B veranschaulicht
senden. Eine weitere Unterscheidung zwischen den beiden Phasen 52 und 54 ist
die, dass der erste Knoten, der während der ungeplanten Phase
senden darf, in jedem periodischen Intervall wechselt. Der erste
Knoten wird von einer Netzwerkadresse angegeben, die durch die Variable
START designiert wird, die von jedem Knoten in einem internen Register
gespeichert wird. Am Ende der ungeplanten Phase 54 wird
der Wert von START inkrementiert, so dass der Knoten mit der nächsten numerischen
Netzwerkadresse als erster die Gelegenheit erhält, einen Meldungsframe während der
ungeplanten Phase des nächsten
periodischen Intervalls zu senden. Wenn der Wert von START die höchste für die ungeplante
Phase designierte Adresse erreicht, dann wird er auf die niedrigste
Adresse zurückgestellt.
Der implizite Token wird zwar nur einmal in der geplanten Phase 52 herumgereicht,
aber in der ungeplanten Phase wird er so oft herumgereicht, wie
es die Zeit zulässt.
-
Somit
sendet zu Beginn der ungeplanten Phase der Knoten mit einer Adresse
gemäß START einen
Meldungsframe. Wenn ein Knoten diesen Meldungstyp nicht zu senden
hat, dann wird ein leerer Meldungsframe gesendet, d. h. einer ohne
LPakete. Dann erhält
der Knoten mit der nächsten
Netzwerkadresse (START + 1) die Genehmigung, einen Meldungsframe
zu senden, usw., bis die in der ungeplanten Phase verbleibende Zeit
verbraucht ist. In der in 4B veranschaulichten
beispielhaften ungeplanten Phase besteht eine Lücke 68 hinter dem
Schlitz 66 für
den START-Knoten, die anzeigt, dass Adresse START + 1 entweder unzugewiesen
oder der zugewiesene Knoten derzeit inaktiv ist, so dass eine Totzeit
auf dem Netz entsteht. Wie bei der geplanten Phase 52,
wenn ein Knoten in diesem Schlitz nicht mit dem Senden einer Meldung
beginnt, dann beginnt der nächste
Knoten in der Adresssequenz (z. B. START + 2) nach einer Horchperiode
mit dem Senden.
-
Man
sollte auch bemerken, dass eine geringe Menge Zeit 69 verbleibt,
nachdem der mit (START + M) designierte Knoten gegen Ende der ungeplanten
Phase 54 mit dem Senden aufhört. Da diese Menge Zeit 69 für einen
weiteren MAC-Frame
zu kurz ist, kommt es zu keiner Übertragung.
Zu diesem Zweck verfolgt jeder Knoten die Zeit, die in dem periodischen
Intervall verbleibt. Die Anzahl der Knoten M, die die Gelegenheit
erhalten, einen MAC-Frame 21 während einer bestimmten ungeplanten
Phase 54 zu senden, ist von der Zeitmenge abhängig, die
in dem periodischen Intervall 50 nach der geplanten Phase 52 verbleibt,
und der Länge
der Frames, die jeder Knoten zu senden hat.
-
Eine
Zeitperiode, die als Sperrband 56 bezeichnet wird, wird
am Ende des periodischen Intervalls 50 reserviert. In dem
Sperrband sendet einer der Knoten 20, der als "Moderator" designiert ist,
einen MAC-Frame mit einem einzelnen LPaket, das Netzsteuerinformationen
enthält,
zu allen anderen Knoten rund. Der Moderator ist der aktive Knoten
mit der niedrigsten Netzwerkadresse, und über seine Funktion wie jeder
andere Knoten hinaus sendet er auch Netzsteuerinformationen während des
Moderatorschlitzes jedes Sperrbandes 56. Das LPaket für den Moderator-Meldungsframe
hat dasselbe Format wie in 2B illustriert,
sein Fixed-Screen-Select-Bit ist gesetzt und er hat ein Etikett,
das ein Moderator-LPaket anzeigt. 2C zeigt
das Link-Datenfeld 36 dieses speziellen LPakets. Der erste
Block 71 von Daten enthält
die hexadezimale Zahl FF, die anzeigt, dass das Paket zu allen Knoten 20 rundgesendet wird.
Der nächste
Datenblock 72 enthält
die periodische Intervallzeit (PIT) in Inkrementen von jeweils zehn
Mikrosekunden, die jeden Knoten über
die Dauer jedes periodischen Intervalls informiert. Der dritte und
der vierte Datenblock 73 und 74 geben die Knoten
mit den höchsten
Netzwerkadressen an, denen der Zugang zum Netzwerk jeweils in der
geplanten und der ungeplanten Phase gewährt wird. Während der ungeplanten Phase
erhalten gewöhnlich
mehr Knoten Zugang, da einige Knoten niemals E/A-Daten zu senden
haben. So sendet beispielsweise der Programmierterminal 18 nur
Daten während
der ungeplanten Phase, und es sollte ihm keine Netzwerkadresse gegeben
werden, die in beiden Phasen abgefragt wird, da dies die geplante
Phase nur verlangsamt. Somit ist der Wert im vierten Datenblock 74 gewöhnlich größer als
der Wert im dritten Datenblock 73. Es ist zu verstehen,
dass nicht jede Adresse in dem Wertebereich im dritten und im vierten
Datenblock einem Knoten auf dem Netz zugeordnet wird. Wenn beispielsweise
der Wert im dritten Datenblock 73 „45" ist, dann gibt es möglicherweise nur 37 Knoten
mit Adressen von 45 oder tiefer, und die achten unzugeordneten Adressen
in diesem Bereich sind für Knoten
reserviert, die dem Netzwerk in der Zukunft hinzugefügt werden.
Infolgedessen zeigen die auf dem dritten und dem vierten Datenblock 73 und 74 gespeicherten
Werte die maximale Anzahl an Knoten an, denen jeweils während der
geplanten und der ungeplanten Phase Netzzugang gewährt werden
kann, und nicht die Anzahl der Knoten jedes Typs, die tatsächlich auf
dem Netz vorhanden sind.
-
Der
fünfte
Block von Daten 75 im Moderator-LPaket definiert die Horchzeit
(in Mikrosekunden), während
der eine Station auf ein Senden der vorherigen Station warten muss,
bis sie davon ausgehen kann, dass die andere Station dies nicht
tut. So wird beispielsweise die Wartezeit auf einen Betrag von wenigstens
gleich dem Zweifachen der längsten
Netzwerkfortpflanzungszeit plus der Reaktionszeit eines Knotens
plus der Menge an Zeit eingestellt, die ein Knoten braucht, um die Übertragung
eines anderen Knotens zu erkennen.
-
Sehr
häufig
hört ein
Knoten ein Echo seiner eigenen Übertragung.
Wenn nicht auf andere Weise gesperrt, kann der Knoten den Empfang
des MAC-Frame-Echos so verarbeiten, als wenn es von einem anderen
Knoten käme.
Der sechste Datenblock 76 enthält eine Definition einer Leerzeit,
während
der eine Station nach ihrer Übertragung
taub ist, so dass sie ihre eigenen Meldungen nicht empfangen kann.
Die Leerzeit dient auch zum Ermitteln einer Menge an Zeit, die ein
Knoten nach dem Senden oder Empfangen eines Meldungsframe verzögern muss,
bevor er über
das Netz senden kann. Somit gibt es eine kurze Ruhezeit zwischen
Meldungsframes.
-
Weiter
bezugnehmend auf 2C, die nächsten beiden Datenfeldblöcke 77 und 78 definieren
die Länge
des Sperrbandes 56 und den Punkt innerhalb des Sperrbandes,
an dem der Moderator mit dem Übertragen
des Steuer-MAC-Frame beginnen soll. Der Inhalt des Sperrbandzeitblocks 77 wird
von jedem Knoten verwendet, um zu ermitteln, wann ein Sperrband 56 auftritt.
In einen Timer in dem Knoten wird die periodische Intervallzeit
(PIT) geladen, wenn der Ton 53 auftritt. Dieser Timer wird
alle zehn Mikrosekunden dekrementiert, und wenn die im periodischen
Intervall verbleibende Zeit gleich der Sperrbandzeit aus Datenblock 77 ist,
dann weiß der
Knoten, dass ein Sperrband beginnt. Da sich jeder Knoten auf seinen
eigenen internen Timer verlässt,
um Events wie z. B. das Sperrband zu erkennen, wird, wenn der Timer
eines bestimmten Knotens vor- oder nachgeht, der Betrieb dieses
Knotens nicht präzise auf
die anderen Knoten synchronisiert. Daher beginnt der Moderator nicht
mit dem Senden des MAC-Frame von Netzsteuerinformationen ganz am Anfang
des Sperrbandes 56. Stattdessen wartet der Moderator bis
zu einem späteren
Zeitpunkt, GBAND CENTER genannt, der im Datenblock 78 angegeben ist.
Der interne Timer im Moderator-Knoten dient zum Ermitteln des Auftretens
dieses Zeitpunkts.
-
Der
nächste
Datenblock 79 des Moderator-LPakets identifiziert die Adresse
des Knotens, der die erste Gelegenheit erhält, während der ungeplanten Phase
des nächsten
periodischen Intervalls zu senden. Jedes periodische Intervall ist
nummeriert, und Block 80 enthält die Nummer (PI NO.) des
aktuellen Intervalls. Die Nummerierung der periodische Intervalle
arbeitet mit modularer Arithmetik, und Datenblock 81 enthält den Modulus.
Dieses Nummernschema lässt
es zu, dass bestimmte Knoten so konfiguriert werden, dass sie Daten
nur während
periodischer Intervalle mit einer bestimmten Nummer übertragen.
So kann beispielsweise ein bestimmter Knoten E/A-Daten verarbeiten,
die nicht so zeitkritisch sind, dass die Daten während jedes periodischen Intervalls
gesendet werden müssten.
Daher kann dieser Knoten mittels der periodischen Intervallnummer so
konfiguriert werden, dass er Daten nur in jedem zehnten periodischen
Intervall sendet.
-
Das
Moderator-LPaket verbraucht nicht die gesamte Menge an Zeit, die
das Sperrband 56 bereitstellt. Wie in 3 gezeigt,
gibt es während
des Sperrbandes 56 vor und hinter dem Moderator-LPaket
Zeit-Subintervalle, während
der es auf dem Netz keine Aktivität gibt. Während dieser ruhigen Subintervalle 57 kann
der SMAC 100 interne Vorgänge durchführen. So können z. B. die Netzkonfigurationsparameter
im Verlaufe solcher Subintervalle mit neuen Werten revidiert werden.
Ohne die ruhigen Subintervalle 57 müsste sich ein Knoten vom Netz
offline schalten, um solche internen Vorgänge durchzuführen.
-
Von
Zeit zu Zeit wird es notwendig, die im Moderator-LPaket gegebenen Netzkonfigurationsparameter
zu ändern.
Wenn es beispielsweise keine freie Adresse unterhalb der geplanten
oder ungeplanten Maxima in den Blöcken 73 und 74 gibt,
wenn ein neuer Knoten zum Netz hinzugefügt wird, dann muss der Wert
in einem oder in beiden diesen Blöcken erhöht werden. Dies erfolgt durch
einen Operator, der einen revidierten Satz von Parametern in den Programmierterminal 18 oder
in eine andere Steuerstation eingibt. Eine Meldung mit den revidierten
Konfigurationsparametern wird dann über das Netzwerk zu allen Knoten
rundgesendet. Insbesondere werden die revidierten Konfigurationsparameter
in ein LPaket gesetzt, das ein Etikett hat, das die Daten als Protokollparameter
designiert und das alle Knoten aufgrund ihrer Konfiguration erkennen
können.
Das LPaket mit den neuen Konfigurationsparametern kann in mehreren
periodischen Intervallen gesendet werden, um zu gewährleisten,
dass jeder Knoten die Informationen mit Sicherheit erhält. Da möglicherweise
nicht jeder Knoten den revidierten Satz von Konfigurationsparametern
erhält,
wird dieser Satz von einem Knoten nicht sofort nach dem Empfang
benutzt, sondern das Datenfeld des LPakets wird in Halteregister
im SMAC-Speicher gesetzt.
-
Um
zu gewährleisten,
dass alle Netzwerkknoten 20 gleichzeitig beginnen, die
neuen Konfigurationsdaten zu benutzen, enthält das Moderator-LPaket eine
Nummer, die in Block 82 mit TMINUS bezeichnet ist. TMINUS
hat gewöhnlich
einen Wert von null. Nach dem Verteilen eines revidierten Satzes von
Konfigurationsparametern durch eine Netzmanagementstation zum Moderatorknoten
erhält
der Moderator jedoch einen Befehl von der Netzmanagementstation.
Der Moderator reagiert auf diesen Befehl dadurch, dass er das TMINUS-Feld 82 im
nächsten
Moderator-LPaket auf einen anderen Wert als null (z. B. zunächst ein
Wert von fünf)
einstellt. Der Wert von TMINUS wird beim Senden jedes nachfolgenden
Moderator-LPakets dekrementiert. Wenn TMINUS null erreicht, dann übertragen
alle Knoten die Informationen in ihren Halteregistern in aktive
Register, ebenfalls im SMAC-Speicher, aus dem die Parameter gelesen
werden, um Aktivität
auf dem Netz 11 zu koordinieren. Dieser Prozess verzögert die
Verwendung der neuen Netzkonfigurationsinformationen für mehrere
periodische Intervalle 50, so dass alle Knoten 20 die
Informationen mit hoher Wahrscheinlichkeit zufriedenstellend empfangen
und die Änderung
im Einklang miteinander implementieren.
-
Der
MAC-Frame im Sperrband 56 bewirkt auch die Synchronisation
der Takte in jedem Knoten 20. Das Ende dieses MAC-Frame
ergibt einen Bezugspunkt, von dem jeder Knoten das Intervall misst, bis
das Tonsignal im Knoten erzeugt wird. Somit wird jedes Mal, wenn
ein Knoten den Moderator-Meldungsframe zufriedenstellend empfängt, sein
Taktgeber auf die Taktgeber in allen anderen Knoten neu synchronisiert.
Die Genauigkeit dieser Taktgeber ist derart, dass ein Knoten auf
dem Netz noch mehrere periodische Intervalle lang funktionieren
kann, ohne den Moderator-Meldungsframe zufriedenstellend zu empfangen,
bevor der Takt erheblich abweicht. Unter normalen Bedingungen wird
der Knoten einen Moderator-Meldungsframe zufriedenstellend empfangen und
synchronisiert werden, bevor es zu einer zu starken Abweichung kommt.
-
Ein
Knoten, der zum Netzwerk hinzukommt, horcht mehrere Sekunden lang
auf den Datenverkehr, um zu ermitteln, ob ein weiterer Knoten mit
derselben Adresse existiert und ob ein Konflikt zwischen seinen
Netzkonfigurationsparametern und denjenigen vorliegt, die vom Moderator
rundgesendet werden. Wenn nicht, dann überträgt der neue Knoten Meldungen,
wenn er in der geplanten und der ungeplanten Phase an der Reihe
ist. Wenn ein anderer Knoten dieselbe Adresse hat, dann wird der
neue Knoten als "Duplikat" angesehen und kann
nicht senden. Das Duplikat bleibt in einem Schlummerzustand, bis
das Problem der im Konflikt stehenden Adressen korrigiert ist (z.
B. bis seine Adresse geändert
wurde oder der im Konflikt stehende Knoten vom Netzwerk abgetrennt
wurde).
-
Somit
lässt das
aktuelle CTDMA-Netzkommunikationsprotokoll
das Senden von Ein-/Ausgabedaten
und anderen Meldungsinformationen über dasselbe Netzwerkmedium
in designierten Abschnitten der periodischen Intervalle 50 zu.
In jedem periodischen Intervall 50 enthalten die E/A-Daten
Priorität, die
zum Steuern der Maschinen verwendet werden, die von den Prozessoren 13–15 auf
dem Netz 10 betrieben werden. Wenn jeder Knoten 20 auf
dem Netz die Gelegenheit erhalten hat, seine E/A-Daten zu senden,
dann wird der übrige
Teil des periodischen Intervalls der Übertragung anderer Formen von
Informationen während
einer ungeplanten Phase gewidmet. Es erhält zwar nicht jeder Netzwerkknoten 20 die
Gelegenheit, eine Meldung während
der ungeplanten Phase 54 zu senden, aber im Laufe der mehreren
periodischen Intervalle wird jeder Knoten eine Gelegenheit erhalten.
Wenn solche Gelegenheiten nicht oft genug auftreten, dann muss der
Netzbetreiber das periodische Intervall möglicherweise verlängern.
-
Kommunikationssteuerung
-
Gemäß 5A ist
das CTDMA-Protokoll vorzugsweise auf einer einzigen größtintegrierten Schaltung
(VLSI) mit der Bezeichnung "S-Link
Media Access Controller" (SMAC) 100 ausgeführt. Der SMAC 100 hat über einen
konventionellen Bus 101 Verbindung mit dem Host-Prozessor 102.
Der Bus 101 beinhaltet eine Standardadresse, Daten- und Steuersignale,
wie in der Technik für
Prozessorschnittstellen bekannt ist.
-
Der
Host-Prozessor 102 kann ein konventionelles Mikroprozessorsystem
sein. Der SMAC 100 kann vorzugsweise so programmiert werden,
dass er an eine Reihe verschiedener Host-Prozessorbuskonfigurationen
und -protokolle angepasst werden kann. So können beispielsweise Daten selektiv
als Daten mit 8 oder 16 Bit Breite übertragen werden. Ebenso können "Handshaking"-Signale für Datenübertragungen
für bekannte
Schnittstellenprotokolle angepasst werden, mit denen handelsübliche Mikroprozessoren arbeiten.
Der SMAC 100 bietet vorzugsweise eine Funktion für eine "Byte-Umlagerung" von Datenbytes gemäß der vom
angeschlossenen Host 102 verwendeten Hoch/Tief-Byte-Priorität. Solche
Schnittstellenfunktionen sind ausführlicher in der mitanhängigen US-Patentanmeldung
Nr. 5,153,884 mit dem Titel "Intelligent
Network Interface Circuit" beschrieben.
-
Jeder
Knoten 20 hat über
einen mit einem Transformator 104 gekoppelten Abgriff 103 Verbindung
mit dem Koaxialkabel 11. Sekundärwicklungen 104a des
Transformators 104 sind mit beiden Eingängen eines Empfangsverstärkers/Detektors 105 und
den Ausgängen
von zwei Biphasen-Antriebsverstärkern 106a und 106b verbunden.
Der Ausgang des Empfangsverstärkers/Detektors 105 ist
als NET IN Signal 107 mit dem SMAC 100 verbunden.
Die Eingänge
der Treiberverstärker 106a und 106b sind jeweils
mit einem NET OUT Signal 108 und einem NET OUT INV Signal 109,
vom SMAC 100 erzeugt, verbunden. Die Treiberverstärker 106a und 106b sind
vom "Ausgangssenken"-Typ, so dass dann, wenn
die NET OUT und NET OUT INV Signale 108 und 109 beide
tief sind, beide Sekundärwicklungen 104a hoch
oder offen sind. In diesem Zustand koppeln die Sekundärwicklungen 104a vom
Netz 10 empfangene Signale mit dem Empfangsverstärker/Detektor 105.
Zur Übertragung
werden die Treiberverstärker 106a und 106b jeweils
von den NET OUT und NET OUT INV Signalen 108 und 109 phasenverschoben
(hoch/tief oder tief/hoch), wobei ein Sendesignal auf die Sekundärwicklungen 104 des Transformators 104 aufgedrückt wird.
Der Transformator 104 koppelt dann das gesendete Signal
mit dem Netz 10.
-
Der
Knoten 20 beinhaltet auch Verbinder, PTC OUT 110 und
PTC IN 111, die einen seriellen Repeater-Port bilden, der
alle vom SMAC 100 über das
Netz 10 gesendeten und empfangenen Meldungen führt. Diese
Repeater-Fähigkeit
ist besonders vorteilhaft, weil sie einen vollfunktionellen Netzwerkport
an den PTC OUT und PTC IN Verbindern 110 und 111 bereitstellt,
ohne die Kosten oder das Overhead eines weiteren expliziten Satzes
von Netzschnittstellenhardware. Der normale vom SMAC 100 für den Host-Prozessor 102 bereitgestellte
Netzwerkzugang ist völlig
in die Repeating-Fähigkeit
zwischen den PTC OUT und PTC IN Verbindern und dem Netz 10 integriert,
so dass der SMAC als Netzwerk-Repeater 17 in 1 dienen
kann. Die Folge ist, dass die volle Matrix von Kommunikationspfaden
implementiert wird. Insbesondere sind die folgenden Übertragungspfade
verfügbar:
(1) vom PTC IN Verbinder 111 empfangene Daten werden mit
dem Netz 10 und dem Host 102 verbunden; (2) vom
Host 102 empfangene Daten werden mit dem PTC OUT Verbinder 110 und
dem Netz 10 gekoppelt; und (3) vom Netz 10 empfangene
Daten werden mit dem PTC OUT Verbinder 110 und dem Host-Prozessor 102 gekoppelt.
-
Eine
weitere Anwendung der PTC OUT und PTC IN Verbinder 110 und 111 ist
die Verbindung eines fakultativen Programmierterminals 18 mit
dem Knoten 20, wie in 5A illustriert
ist. Es wird bevorzugt, dass alle Knoten 20 auf dem Netz 10 solche Verbinder 110 und 111 für eine selektive,
vorübergehende
Verbindung des Programmierterminals 18 nach Bedarf bieten.
So kann beispielsweise der Programmierterminal 18 ein Handgerät sein,
das beim Durchführen
von Einricht- oder Diagnosearbeiten von Knoten zu Knoten getragen
wird. Die Verbinder 110 und 111 ermöglichen
eine bidirektionale serielle Kommunikation zwischen dem Programmierterminal 18 (wenn
angeschlossen) und dem SMAC 100. Die PTC OUT und PTC IN
Verbinder 110 und 111 des SMAC 100 verbinden
die PTC IN und PTC OUT Signalverbinder eines zweiten SMAC 112 für den Programmierterminal 18.
Der Host-Bus 101 zum zweiten SMAC 112 ist mit
dem Programmierterminal 18 gekoppelt.
-
Aufgrund
der auf dem Netz 10 verwendeten hohen Datenrate bietet
der SMAC 100 eine "Screening"-Fähigkeit,
um nur bestimmte Daten von Interesse auszuwählen, die schließlich zum
Host 102 weitergeleitet werden. Wie oben beschrieben, beinhaltet jeder
MAC-Frame ein oder mehrere LPakete 26, und jedes LPaket
beinhaltet ein eindeutiges Kennetikett. Eine begrenzte interne Screening-Fähigkeit
ist im SMAC 100 gegeben, um bestimmte LPakete herauszupicken,
die zum Host 102 übertragen
werden sollen. Über
die interne Screening-Fähigkeit
hinaus bietet der SMAC 100 auch einen Screener-Bus 115 für den Anschluss
an eine fakultative externe Screen-Schaltung 116. Die externe
Screen-Schaltung 116 kann so ausgelegt sein, dass sie eine
im Wesentlichen unbegrenzte Zahl von LPaketen 26 für die Übertragung
zum Host 102 erkennt. Sowohl die interne als auch die externe
Screening-Fähigkeit werden
nachfolgend ausführlich
beschrieben.
-
Der
SMAC 100 erzeugt auch ein SYNC OUT Signal 120,
das die Fähigkeit
für eine
Echtzeitsynchronisierung zwischen verschiedenen am Netz 10 angeschlossenen
Knoten 20 bietet. Aufgrund der einzigartigen Qualitäten des
CTDMA-Protokolls kann jeder einzelne Knoten 20 Aktivitäten am lokalen
Knoten auf globale Echtzeit-synchronisierte Events synchronisieren,
die auf dem Netz 10 auftreten. Das SYNC OUT Signal 120 kann
so konfiguriert werden, dass es eine von mehreren möglichen
Synchronisationsquellen im SMAC 100 wählt. Auf der Basis der gewählten Synchronisationsquelle bietet
das Sync-Ausgabesignal 120 die Fähigkeit, Prozesse am lokalen
Knoten 20 in Bezug auf eine absolute oder "universelle" Zeitreferenz zu
synchronisieren, die allen Knoten auf dem Netz zur Verfügung steht.
Dies erlaubt die Echtzeitsynchronisation von Events und Systemen,
auch wenn diese Events und Systeme vielleicht auf unterschiedlichen
Netzknoten 20 sind. Der zu synchronisierende lokale Prozess
kann eine separate Schaltung oder ein separates Subsystem sein,
wie durch die gestrichelten Linien 121 angedeutet ist,
oder kann alternativ ein Prozess sein, der den Host-Prozessor 102 selbst
betreibt. Im letzteren Fall kann das SYNC OUT Signal 120 bei
Bedarf als diskretes Eingangssignal in den Host-Prozessor 102 geschaltet
werden. Es ist zwar ein einziges SYNC OUT Signal 120 zu
sehen, aber es können
bei Bedarf mehrere SYNC OUT Signale verwendet werden, um gleichzeitig
andere der wählbaren "Sync Event" Quellen bereitzustellen.
-
Der SMAC
-
Gemäß 5B sind
die Hauptfunktionsblöcke
im SMAC 100 eine Modemschaltung 140, eine Empfangsverarbeitungsschaltung 142,
eine Sendeverarbeitungsschaltung 141, eine Host-Schnittstellenschaltung 143,
eine Zugangssteuerschaltung 144 und eine Sync-Auswahlschaltung 145.
-
Das
Modem 140 hat Verbindung mit dem NET IN Signal 107,
dem NET OUT Signal 108, dem NET OUT INV Signal 109,
dem PTC IN Signal 113 und dem PTC OUT Signal 114.
Eine Grundfunktion des Modems 140 ist es, die Manchester-codierten Signale
zu und von dem Netz 10 und dem Programmierterminal-Verbinder 110 zu
modulieren und zu demodulieren. Eine weitere Grundfunktion des Modems 140 ist
es, die im SMAC 100 verwendeten Taktsignale für Timing-Zwecke zu erzeugen.
Ein PHY CLOCK Signal 150 wird vom Modem 140 mit
der physikalischen Symbolrate oder dem Zweifachen der Bitrate erzeugt.
Die bevorzugte Bitrate in dieser Ausgestaltung ist fünf Megabit
pro Sekunde, und das PHY CLOCK Signal 150 hat somit eine
Frequenz von zehn Megahertz. Das Modem 140 erzeugt auch
ein BYTE PULSE Signal 151, das auf eine nachfolgend ausführlich beschriebene
neuartige Weise auf die "Byte"-Grenze der Manchester-Daten
ausgerichtet ist. Nach dem Ausrichten wird das BYTE PULSE Signal 151 für eine aktive
Flanke des PHY CLOCK Signals 150 auf "wahr" gesetzt,
um das Ende eines empfangenen oder gesendeten Bytes (acht Bit) zu markieren.
In diesem Sinne ist das BYTE PULSE Signal 151 kein Taktsignal
an sich, sondern eher ein Torsteuersignal, das unmittelbar vor einer
aktiven Flanke des PHY CLOCK Signals 150 auf "wahr" gesetzt wird. Das
Modem 140 erzeugt auch andere Taktsignale, die nachfolgend
wo zutreffend erörtert werden.
-
Eine
dritte Funktion des Modems 140 ist es, vom Host-Prozessor 102 zur Übertragung
bereitgestellte Daten zu akzeptieren und ebenso die empfangenen
Daten zum Host 102 weiterzuleiten. Die Sendeverarbeitungsschaltung 141 sendet
Host-Sendedaten und andere Steuersignale über einen dedizierten Ausgangsbus 161 zum
Modem 140. Die Empfangsverarbeitungsschaltung 142 akzeptiert
die empfangenen Daten und entsprechenden Steuersignale vom Modem 140 über einen
dedizierten Eingangsbus 162. Der jeweilige Betrieb der
Schaltungen 141 und 142 beim Verarbeiten der jeweiligen
Sende- und Empfangsdaten wird nachfolgend ausführlich beschrieben.
-
Viertens
implementiert das Modem 140 eine Auswahlmatrix zum Durchführen der
Repeater-Funktion zwischen Host-Prozessor 102, Programmierterminal-Verbinder 110 sowie
dem Netz 10. Von der Sendeverarbeitungsschaltung 141 empfangene Host-Sendedaten
werden im Modem 140 "zurückgeschleift" (Loopback), um den
Datenauswahl- und -Repeating-Prozess zu integrieren. Am NET IN Eingang 107 empfangene
Daten werden sowohl mit der Leitung für das PTC OUT Signal 114 als
auch mit der Empfangsverarbeitungsschaltung 142 gekoppelt.
Auf der Leitung für
das PTC IN Signal 113 empfangene Daten werden zur Empfangsverarbeitungsschaltung 142 gesendet
und auch jeweils über
die NET OUT und NET OUT INV Signalleitung 108 und 109 zum Netz 10 weitergeleitet.
Schließlich
werden Host-Sendedaten von der Sendeverarbeitungsschaltung 141 zu
allen drei Zielorten gesendet: der Leitung für das PTC OUT Signal 114,
der Leitung jeweils für
die NET OUT und NET OUT INV Signale 108 und 109 sowie zur
Empfangsverarbeitungsschaltung 142. Das "Loopback" von Host-Sendedaten
zur Empfangsverarbeitungsschaltung 142 erlaubt es dem Host-Prozessor 102, "Meldungen" zum SMAC 100 zu
senden. Dieses Meldungsloopback ist die bevorzugte Methode für die Übertragung
bestimmter Informationen zwischen dem Host-Prozessor 102 und
dem SMAC 100, weil sie die inhärenten Meldungsverarbeitungsfähigkeiten
des SMAC 100 nutzt. So werden z. B. spezielle Stationsmanagement-"Meldungen" für
eine Direktverarbeitung durch den SMAC 100 ohne Aktion durch
den Host-Prozessor 102 bereitgestellt. Diese "Meldungen" können entweder
vom Netz 10 oder vom Host-Prozessor 102 empfangen
werden, aber in beiden Fällen
wird die "Meldung" durch die Empfangsverarbeitungsschaltung 142 verarbeitet.
Füllbytes
werden an das Ende jeder Stationsmanagementmeldung angehängt, um
zu gewährleisten,
dass der SMAC 100 genügend
Zeit hat, um die Meldung zu verarbeiten.
-
Schließlich hat
das Modem 140 die Funktion, Signale zu erzeugen, die für den CTDMA-Zugangsprozess
verwendet werden, insbesondere ein FRAME ESTIMATE Signal 165 und
ein RX RERDY Signal 166. Mit kurzer Bezugnahme auf 6,
das FRAME ESTIMATE Signal 165 bedeutet, dass "geschätzt" wird, dass ein MAC-Frame 21 unterwegs
ist (Sendung oder Empfang). Bei einem empfangenen Frame erfolgt
diese "Schätzung" auf eine Weise,
die eine qualitative Schätzung
der MAC-Frame-Präambel 22 als
eine frühe,
aber nicht unfehlbare Anzeige durchführt, dass ein MAC-Frame 21 unterwegs
ist. Das andere Steuersignal, RX READY 166, wird erst nach dem
Empfang einer vorbestimmten Anfangsbegrenzersequenz, genau und fehlerlos,
wahr. Der Anfangsbegrenzer 23 ist dahingehend eindeutig,
dass er aus einzelnen Phy-Symbolen anstatt aus konventionellen Manchester-codierten
Datenbits besteht. In der Tat beinhaltet der bevorzugte Anfangsbegrenzer 23 absichtlich
mehrere explizite Manchester-Code-Verletzungen in der Phy-Symbol-Sequenz.
Ein ebenso eindeutiger Endebegrenzer 28 wird mit einer
anderen Phy-Symbol-Sequenz bereitgestellt, die ebenfalls Manchester-Code-Verletzungen
beinhaltet, um das Ende eines MAC-Frame 21 zu erkennen.
Nach einem erfolgreichen Erkennen der Anfangsbegrenzersequenz wird
das RX READY Signal 166 wahr. Das RX READY Signal 166 bleibt
dann so lange wahr, bis eine andere Manchester-Code-Verletzung erkannt wird.
Normalerweise würde
ein empfangener MAC-Frame keine Manchester-Code-Verletzungen zwischen
Anfangs- und Endebegrenzern enthalten. In diesem Fall würde das
RX READY Signal 166 wahr bleiben, bis die erste absichtliche
Manchester-Code-Verletzung im Endebegrenzer erkannt wird.
-
Wieder
zurück
zu 5B, die Empfangsverarbeitungsschaltung 142 nimmt
serielle Daten- und andere
Statusanzeigen vom Modem 140 und wandelt die seriellen
Daten in ein acht Bit breites "Byte"-Format um. Die Empfangsverarbeitungsschaltung 142 leitet
die Byte-Daten über einen RX-Byte-Bus 170 zur
Host-Schnittstellenschaltung 143 weiter.
Steuersignale für
die Übertragung
kommen auf einem RX FIFO Steuerbus 171. Die Empfangsverarbeitungsschaltung 142 ist
auch vornehmlich für Screening-Operationen
verantwortlich und beinhaltet eine universelle User-Screen-Schaltung 172,
die so programmiert werden kann, dass sie eine begrenzte Anzahl
von LPaket-Etiketten
von Interesse "erkennt". Die Empfangsverarbeitungsschaltung 142 ist
auch mit dem externen Screener-Bus 115 für externe
Screening-Vorgänge
verbunden. Die Zugangssteuerschaltung 144 hat in Verbindung
mit der Empfangsverarbeitungsschaltung 142 die Funktion,
eine "feste" Screener-Funktion
zu implementieren. Dieser feste Screener dient zum Erkennen von
vorbestimmten festen LPaket-Etiketten, die Stationsmanagementinformationen
führen.
-
Darüber hinaus
führt die
Empfangsverarbeitungsschaltung 142 eine "Intervallnummer"-Zahl. Wie oben erörtert, wird jedes periodische
Intervall in aufsteigender Reihenfolge gemäß einem konfigurierbaren Modulus
nummeriert. Die Empfangsverarbeitungsschaltung 142 führt die "Intervallnummer" des aktuellen periodischen
Intervalls für
die Verwendung in einigen Screening-Funktionsarten. Die Intervallnummer
wird auch über
den Bus 174 direkt zur Host-Schnittstelle 143 gesendet.
-
Die
Empfangsverarbeitungsschaltung 142 erzeugt ein LPACKET
BOUNDARY Signal 175 am Anfang jedes LPakets 26 und
am Ende des letzten LPakets in einem MAC-Frame 21. Das
LPACKET BOUNDARY Signal 175 ist mit der Zugangssteuerschaltung 144 gekoppelt,
um eine Benachrichtigung der LPaket-Grenze bereitzustellen, so dass
die entsprechende Verarbeitung eingeleitet werden kann.
-
Die
Zugangssteuerschaltung 144 koordiniert alle Funktionen
auf dem SMAC 100, einschließlich Implementation des CTDMA-Protokolls,
Datenübertragung,
Datenempfang, Datenaustausch mit dem Host-Prozessor 102 und
Erzeugung des Sync-Ausgangssignals 120. Die Zugangssteuerschaltung 144 beinhaltet
einen Reduzierter-Instruktionssatz-Computer, der nachfolgend als
RISC-Prozessor 400 bezeichnet wird (10), zusätzlich zu
mehreren dedizierten Logikschaltungen. Der RISC-Prozessor 400 wird
mit einem RISC-Bus 180 verbunden, der die Zugangssteuerschaltung 144 mit
anderen Verarbeitungsschaltungen auf dem SMAC 100 verbindet.
Der RISC-Bus 180 beinhaltet Adress-, Daten- und Steuerleitungen
und ermöglicht
die Kommunikation von Befehls- und Statusinformationen zwischen
dem RISC-Prozessor 400 und den angeschlossenen Schaltungen.
Insbesondere verwendet der RISC-Prozessor 400 den RISC-Bus 180 zum
Erzeugen von Befehls-Strobe-Signalen, zum Testen einzelner Statusbits
und sogar zum parallelen Lesen von "Byte"-Daten
von selektierten Stellen im SMAC 100. Während die meisten E/A-Operationen zur Zugangssteuerschaltung 144 über den
RISC-Bus 180 erfolgen,
werden auch einige diskrete Ein- und Ausgänge verwendet, und diese Signale
werden ggf. nachfolgend beschrieben.
-
Die
Zugangssteuerschaltung 144 erzeugt auch mehrere Signale,
die für
den Betrieb des CTDMA-Protokolls relevant sind, und diese Signale
werden zu einem Bus mit der Bezeichnung "Sync"-Bus 176 zusammengefasst.
Der Sync-Bus 176 hat Verbindung mit der Sync-Auswahlschaltung 145,
um die Quellsignale bereitzustellen, von denen die Sync-Auswahlschaltung 145 das
SYNC OUT Signal 120 erzeugen kann. Der Sync-Bus 176 hat
auch Verbindung mit der Empfangsverarbeitungsschaltung 142 und
der Host-Schnittstelle 143.
-
Weiterhin
mit Bezug auf 5B, die Sendeverarbeitungsschaltung 141 erzeugt
einen seriellen Strom von Phy-Symbolen für die Ausgabe vom SMAC 100.
Der serielle Phy-Symbolstrom sowie andere assoziierte Steuersignale
sind über
den Ausgangsbus 161 mit der Modemschaltung 140 verbunden.
Die Sendeverarbeitungsschaltung 141 führt die Funktionen des Erzeugens
der Präambel 22,
des Anfangsbegrenzers 23, des Datenfeldes 25 und
des Endebegrenzers 28 für
einen abgehenden MAC-Frame 21 durch. Präambel, Anfangs- und Endebegrenzer
sind im Format festgelegt und werden intern von der Sendeverarbeitungsschaltung 141 erzeugt.
Die Daten für
die Übertragung
im Datenfeld 25 des MAC-Frame werden entweder direkt von
der Host-Schnittstellenschaltung 143 oder von der Zugangssteuerschaltung 144 über den
RISC-Bus 180 zur Sendeverarbeitungsschaltung 141 gesendet.
Für "normale" Ausgabedaten (d.
h. vom Host 102) wird der Datenfeldinhalt zur Sendeverarbeitungsschaltung 141 direkt
durch die Host-Schnittstellenschaltung 143 geliefert. Ein
weiteres wichtiges Konzept ist jedoch die Fähigkeit des SMAC 100,
automatisch auf bestimmte Stationsmanagementbefehle zu reagieren,
in einigen Fällen
damit, dass tatsächlich
eine geeignete Stationsmanagement-Antwortmeldung gesendet wird. Bei Bedarf
wird die Stationsmanagement-Antwortmeldung ohne Anweisung vom oder Unterbrechung
des Host-Prozessor(s) 102 gesendet. Die Stationsmanagement-Antwortmeldung
wird automatisch vom RISC-Prozessor in der Zugangssteuerschaltung 144 erzeugt,
und die entsprechenden Daten zur Übertragung werden über den
RISC-Bus 180 zur Sendeverarbeitungsschaltung 141 gesendet.
-
Die
Sendeverarbeitungsschaltung 141 erzeugt ein TX READY Signal 181,
um anzuzeigen, dass der Hauptteil eines MAC-Frame 21 gerade
gesendet wird. Das heißt,
das TX READY Signal 181 wird nach dem Senden des Anfangsbegrenzers 23 aktiviert
und nach dem Senden des Endebegrenzers 28 deaktiviert.
Das TX READY Signal 181 ist somit grob analog zu dem beim
Empfang verwendeten RX READY Signal 166. Das TX READY Signal 181 ist mit
der Host-Schnittstellenschaltung 143, der Zugangssteuerschaltung 144 und
der Sync-Auswahlschaltung 145 für die Verwendung
wie nachfolgend separat beschrieben verbunden. Ein weiterer von
der Sendeverarbeitungsschaltung 141 erzeugter Sendeindikator
ist ein TX BUSY Signal 182, das an die Zugangssteuerschaltung 144 angelegt
wird. Ein wahres TX BUSY Signal gibt an, dass die Sendeverarbeitungsschaltung 141 gerade
dabei ist, ein LPaket von der Host-Schnittstelle 143 zu
erwerben. Insbesondere ist das TX BUSY Signal 182 während der Übertragung
einer Kopfzeile (Felder 22–24) oder eines Dateiende-Etiketts
(Felder 27–28)
eines MAC-Frame 21, und auch während die Zugangssteuerung 144 eine
Antwort sendet, nicht wahr. Mit dem TX BUSY Signal 182 wird
die Zugangssteuerung 144 informiert, wenn die Sendeverarbeitungsschaltung 141 die Übertragung
eines LPakets abgeschlossen hat. Wenn das TX BUSY Signal falsch
wird, kann die Zugangssteuerschaltung 144 entweder eine
andere LPaket-Übertragung
einleiten oder den MAC-Frame 21 beenden.
-
Die
Host-Schnittstellenschaltung 143 ist eine "strom"-(Stream)-orientierte Schnittstelle für den Host-Prozessor 102.
Jeder Strom ist eine logische Gruppierung von Speicherstellen, die
auf FIFO-Weise in der Host-Schnittstellenschaltung 143 organisiert
ist. Es werden vorzugsweise insgesamt fünf Ströme implementiert, d. h. drei
Ausgangs-(Sende)-Ströme
und zwei Eingangs-(Empfangs)-Ströme. Die
drei Ausgangsströme
werden mit TX A, TX B und TX C bezeichnet. Auf eine Übertragung
wartende Daten werden vom Host-Prozessor 102 über den Host-Bus 101 in
die Ströme
TX A bis TX C gesetzt. Der Host-Prozessor 102 hat auch
die Fähigkeit,
die Ausgangsströme
als "sendebereit" zu "markieren". Ein STREAM STATUS
Bus 185 wird von der Host-Schnittstellenschaltung 143 bereitgestellt,
um anzuzeigen, welche der drei Ausgangsströme als "sendebereit" markiert sind. Die Zugangssteuerschaltung 144 wird
auch über
den. RISC-Bus 180 über
den "Sendebereit"-Status unterrichtet.
-
Wenn
der Knoten 20 gemäß CTDMA-Protokoll
eine Sendeerlaubnis erhalten hat, dann gibt die Zugangssteuerschaltung 144 entsprechende
Anweisungen über
den RISC-Bus 180 aus, um die Sendeverarbeitungsschaltung 141 anzuweisen,
mit dem Senden zu beginnen. Gleichzeitig wird der RISC-Bus 180 auch
verwendet, um einen der "Bereit"-Ströme in der
Host-Schnittstelle 143 für die tatsächliche Übertragung zu designieren.
Die Information, welcher Strom übertragen
werden soll, wird von der Host-Schnittstelle 143 zwischengespeichert
und über einen "Framestart"-Bus 186 an
die Sendeverarbeitungsschaltung 141 angelegt. Die Host-Schnittstellenschaltung 143 setzt
dann das erste oder oberste Datenwort für den gewählten Strom auf den "TX Word" Bus 187.
Der TX-Word-Bus 187 überträgt das aktuelle
Wort zur Sendeverarbeitungsschaltung 141. Der TX-Word-Bus 187 hat
eine Breite von 16 Bit, so dass jeweils zwei Bytes gleichzeitig übertragen
werden. Wenn die Sendeverarbeitungsschaltung 141 das aktuelle
Wort auf dem TX-Word-Bus 187 zwischengespeichert hat, dann
wird ein TAKE WORD Signal 188 aktiviert. Das TAKE WORD
Signal 188 weist die Host-Schnittstelle 143 an,
den gerade gewählten
Strom zum nächsten
Datenwort für
die Übertragung
weiterzuleiten.
-
Während der Übertragung
von der Host-Schnittstelle 143 aktiviert die Sendeverarbeitungsschaltung 141 ein
TX BUSY Signal 182. Das TX BUSY Signal 182 ist
mit der Zugangssteuerschaltung 144 verbunden und wird für die Dauer
jedes LPakets aktiviert, das von der Host-Schnittstelle gesendet wird.
Ein TX READY Signal 181 wird nach dem Übertragen des Anfangsbegrenzers 23 wahr
und bleibt für die
Dauer der Übertragung
wahr. Das TX READY Signal 181 ist mit der Zugangssteuerschaltung 144,
der Host-Schnittstelle 143 und als Eingang zur Sync-Auswahlschaltung 145 geschaltet.
-
Die
Sync-Auswahlschaltung 145 hat die Funktion, eine von mehreren
Signalquellen für
die Verwendung beim Erzeugen des SYNC OUT Signals 120 zu
wählen.
Der RISC-Bus 180 hat Verbindung mit der Sync-Auswahlschaltung 145 und
dient zum Steuern der Auswahl der Signalquelle.
-
Im
Hinblick auf diese Übersicht über den SMAC 100 wird
eine ausführlichere
Beschreibung seiner Subsysteme verständlich.
-
SMAC-Modem
-
Gemäß 7 verarbeitet
das Modem 140 das PTC IN Signal 113 und das NET
IN Signal 107 in einer RX-Decodierschaltung 250. Die
RX-Decodierschaltung 250 überwacht jedes der Signale 113 und 107,
um zu ermitteln, welches der beiden für eine nachfolgende Verarbeitung
ausgewählt
werden soll. Beim normalen Betrieb ist jeweils immer nur eines der
Signale 113 und 107 aktiv. Die eingehenden Daten
von der gewählten
Quelle werden mit dem PHY CLOCK Signal 150 synchronisiert
und als RX PHY SYMBOLS Signal 251 ausgegeben. Ein weiterer Ausgang
von der RX-Decodierschaltung 250 ist
als RX FRAME Signal 252 designiert. Das RX FRAME Signal 252 wird
aktiviert, wenn die selektierten Eingangsdaten am RX PHY SYMBOLS
Signal 251 als gültige
Präambel 22 erkannt
sind (siehe 6). Ein PTC ACTIVE Signal 253 wird
ebenfalls von der RX-Decodierschaltung 250 erzeugt,
um anzuzeigen, wenn das PTC IN Signal 113 als aktiver Kanal
gewählt
ist. Das PTC ACTIVE Signal 253 ist sowohl mit einer TX-Steuerschaltung 255 im
Modem 140 als auch extern über den Eingangsbus 162 mit
der Empfangsverarbeitungsschaltung 142 gekoppelt. Das PTC
ACTIVE Signal 253 wird von diesen jeweiligen Schaltungen 255 und 142 als
Anzeige dafür
verwendet, dass der Programmierterminal 25 aktiv ist, was wiederum
spezielle Verarbeitungsaktionen diktiert, die nachfolgend beschrieben
werden.
-
Die
Sendeverarbeitungsschaltung 141 empfängt auf dem Ausgangsbus 161 ein
TX ENABLE Signal 256 und ein END BLANKING Signal 257.
Das TX ENABLE Signal 256 und das END BLANKING Signal 257 sind
mit der RX-Decodierschaltung 250 und der TX-Steuerschaltung 255 gekoppelt.
In der RX-Decodierschaltung 250 werden
die Signale 256 und 257 beim Wählen des aktiven Kanals wie
nachfolgend näher
beschrieben verwendet. Für
die TX-Steuerschaltung 255 werden die Signale 256 und 257 zum
Steuern des Sendeprozesses verwendet, ebenfalls wie nachfolgend
beschrieben wird.
-
Die
Modem-Schaltung 140 beinhaltet eine Taktgeneratorschaltung 260,
die Datentakte und andere Synchronisationssignale erzeugt, die im
SMAC 100 verwendet werden. Über das oben erörterte PHY CLOCK
Signal 150 und BYTE PULSE Signal 151 hinaus erzeugt
die Taktgeneratorschaltung 260 auch ein BIT CLOCK Signal 261 und
ein BYTE CLOCK Signal 262. Das BIT CLOCK und das BYTE CLOCK
Signal 261 und 262 sind über den Eingangsbus 162 jeweils
extern mit der Empfangsverarbeitungsschaltung 142 gekoppelt
und werden auch lokal im Modem 140 verwendet. Das BIT CLOCK
Signal 261 hat eine Frequenz von fünf Megahertz oder der Hälfte der Phy-Symbolrate,
da es zwei Phy-Symbole pro Manchester-Datenbit gibt. Ferner wird
das BIT CLOCK Signal 261 zeitlich so gesteuert, dass seine
aktive Flanke dem "wahren" Phy-Symbolteil jedes
Manchester-Bits entspricht. Wie in der Technik bekannt ist, umfasst
jedes Manchester-Bit zwei Phy-Symbole, die binäre Komplemente voneinander
sein müssen, damit
sie als gültiger
Manchester-Code
angesehen werden. Das heißt,
ein Phy-Symbol oder Manchester-Halbbit bedeutet "wahre" Daten, während die andere Hälfte des
Manchester-Bits Umkehr- oder Komplementdaten sind. Somit werden
durch Abtasten des Phy-Symbolstroms
mit der aktiven Flanke des BIT CLOCK Signals 261 die tatsächlichen
(d. h. "wahren") Manchester-Daten
zurückgewonnen.
Das BYTE CLOCK Signal 262 ist dem Bittakt frequenzmäßig durch
acht dividiert gleich, so dass die aktive Flanke einmal alle acht
Bit auftritt.
-
Eine
ordnungsgemäße Ausrichtung
der BIT CLOCK, BYTE CLOCK und BYTE PULSE Signale 261, 262 und 151 ist
eine wichtige Funktion des SMAC 100. Eine Begrenzererkennungsschaltung 265 dient
zum Erkennen einer exakten Sequenz von Phy-Symbolen, die einen "Anfangsbegrenzer" 23 und
einen "Endebegrenzer" 28 bildet.
Die Anfangs- und Endebegrenzer selbst sind dahingehend neu, dass
sie auf Mustern von Phy-Symbolen anstatt von Manchester-Datenbits
basieren. Wie oben erwähnt, werden
die bevorzugten Anfangs- und Endebegrenzer-Phy-Symbolmuster so konstruiert,
dass sie absichtlich ungültige
Manchester-Codes
beinhalten und demzufolge von früheren
Manchester-Verarbeitungsschaltungen
(nicht dargestellt) einfach als "falsche" Daten zurückgewiesen
würden.
Eine ausführliche Beschreibung
von Aufbau und Verwendung des Anfangs- und Endebegrenzers werden
nachfolgend ausführlich
beschrieben. Im Allgemeinen wird der Anfangsbegrenzer 23 verwendet,
um einen präzisen "Synchronisier"-Punkt für die eingehenden
Daten festzulegen. Vorübergehend
auf 6 Bezug nehmend, wenn ein Anfangsbegrenzer 23 erfolgreich
erkannt wird, dann aktiviert die Begrenzererkennungsschaltung 265 ein
ALIGN BYTE Signal 266, um anzuzeigen, dass die eingehenden
Phy-Symbole an einer exakten
Byte- und Bit-Grenze sind. Und genau in diesem Moment wurde das
letzte Phy-Symbol des Anfangsbegrenzers gerade empfangen, und das
erste Phy-Symbol
des ersten Bits und das erste Byte der Quelladresse 24 sind
das nächste
empfangene Signal. Das ALIGN BYTE Signal 266 veranlasst
die Taktgeneratorschaltung 260, alle Taktsignale BIT CLOCK 261,
BYTE CLOCK 262 und BYTE PULSE 151 jeweils auf
diese präzise
Bit/Byte-Grenze zu synchronisieren.
-
Das
Modem 140 verwendet eine Loopback-Konfiguration, um zwischen
empfangenen Daten oder abgehenden Sendedaten für eine nachfolgende Verarbeitung
durch die Empfangsverarbeitungsschaltung 142 auszuwählen. Insbesondere
wird ein Paar Multiplexer 267 und 268 mit jeweils
zwei Eingängen
verwendet. Serielle Phy-Symbole für die Übertragung werden von der Sendeverarbeitungsschaltung 141 auf
einer TX PHY SYMBOLS Leitung 269 über den Ausgangsbus 161 bereitgestellt.
Ein Multiplexer 267 wird zum Auswählen zwischen entweder den
RX PHY SYMBOLS 251 oder den TX PHY SYMBOLS 269 verwendet.
Der Ausgang des Multiplexers 267 wird als PHY DATA Signal 270 bezeichnet und
ist mit dem Eingangsbus 162 und anderen Schaltungen im
Modem 140 wie nachfolgend ausführlich beschrieben gekoppelt.
Das PHY DATA Signal 270 kann somit Phy-Symbole entweder
senden oder empfangen, je nach der Auswahl des Multiplexers 267.
Der andere Multiplexer 268 dient zum Auswählen zwischen
dem RX FRAME Signal 252 und dem TX ENABLE Signal 256.
In diesem Zusammenhang wird das TX ENABLE Signal 256 als "Frame"-Signal verwendet,
da die TX PHY SYMBOLS 269 immer als "in Frame" angesehen werden, wenn das TX ENABLE
Signal 256 wahr ist. Das RX FRAME Signal 252 wird
von der RX DECODE Schaltung 250 als "Schätzung" erzeugt, dass ein
eingehender MAC-Frame unterwegs ist. Daher wird der Ausgang des
Multiplexers 268 als FRAME ESTIMATE Signal 165 bezeichnet
und reflektiert den "in
Frame" Status des
gewählten
RX PHY SYMBOLS Signals 251 oder TX PHY SYMBOLS Signals 269.
Ein TX RESERVE Signal 271 wird an den Ausgangsbus 161 von
der Sendeverarbeitungsschaltung 141 angelegt und ist mit
einem Select-Eingang an jedem der Multiplexer 267 und 268 verbunden,
um zwischen den jeweiligen RX- und TX-Signalen auszuwählen. Das
TX RESERVE Signal 271 wird zu Beginn einer Sendesequenz "wahr" und bleibt für die Dauer
der Übertragung
plus einer zusätzlichen
oder "Reserve"-Zeit nach dem Ende
der Übertragung "wahr". Die zusätzliche "Reserve"-Zeit ergibt eine "Ruhe"-Periode ohne Netzaktivität nach dem
Ende der Übertragung.
Die "Reserve"-Zeit nach dem Ende
der Übertragung
wird hierin auch als Ausblendintervall bezeichnet. Das END BLANKING
Signal 257 wird von anderen nachfolgend beschriebenen Schaltungen
verwendet und bedeutet, dass das Ausblend-(Blanking)-Interval abgelaufen
ist.
-
Weiter
mit Bezug auf 7, das PHY DATA Signal 270 ist
sowohl mit einem AND-Gate 274 als auch mit einer zweiphasigen
TX-Vortreiberschaltung 275 gekoppelt. Das AND-Gate 274 und
die zweiphasige TX-Vortreiberschaltung 275 empfangen beide jeweils
separate "Enable"- (Freigabe) Eingänge 276 und 277 von
der TX-Steuerschaltung 255. Der zweiphasige TX-Vortreiber 275 legt
jeweils die NET OUT und NET OUT INV Ausgänge 108 und 109 an.
Wenn das Freigabesignal 277 in den zweiphasigen TX-Vortreiber 275 "falsch" ist, dann sind jeweils
beide NET OUT und NET OUT INV Ausgänge 108 und 109 gleich,
d. h. auf einem logisch tiefen Pegel, so dass keine Nettospannung
an den Transformator 104 angelegt wird. Wenn das Freigabesignal 277 in
die zweiphasige TX-Vortreiberschaltung 275 "wahr" ist, dann werden
die jeweiligen NET OUT und NET OUT INV Ausgänge 108 und 109 komplementär zueinander
gemacht und ändern
ihren Zustand je nach dem angeschlossenen PHY DATA Signal 270.
Wenn also der zweiphasige TX-Vortreiber 275 freigegeben
ist, dann erzeugen die NET OUT und NET OUT INV Ausgänge 108 und 109 jeweils
ein anderes Signal, um PHY DATA 270 über den Transformator 104 auf
das Netz 10 zu treiben.
-
In
Verbindung mit der oben beschriebenen Loopback-Fähigkeit
implementiert die TX-Steuerschaltung 255 die oben beschriebene
Repeater-Fähigkeit
zwischen Programmierterminal-Verbinder 110, Host 102 und
Netz 10. Im ersten Fall ist, wenn eingehende Daten auf
der PTC IN Leitung 113 empfangen werden, das PTC ACTIVE
Signal 253 "wahr". In diesem Fall
wird das Freigabesignal 276 zum AND-Gate 274 von der TX-Steuerschaltung 255 auf "falsch" gesetzt, um zu verhindern,
dass das PHY DATA Signal 270 auf der PTC OUT Leitung 114 zurückgeführt wird.
Stattdessen wird das Freigabesignal 277 für den zweiphasigen
TX-Vortreiber 275 auf "wahr" gesetzt, und die
PTC IN Daten 113, jetzt auf der PHY DATA Leitung 270,
werden durch den zweiphasigen TX-Vortreiber 275 auf das
Netz 10 geschaltet.
-
In
einem zweiten Fall wird, wenn die Netzeingangsdaten am NET IN Signal 107 empfangen
werden, das PTC IN Signal 113 zunächst bei normalem Betrieb ruhig
sein, und das PTC ACTIVe Signal 253 ist "falsch". In diesem Fall
werden die NET IN Daten 107 als PHY DATA Signal 270 gewählt. In
diesem Fall aktiviert die TX-Steuerschaltung 255 die Freigabeleitung 276 zum
AND-Gate 274. Die NET IN Daten auf der PHY DATA Leitung 270 werden
somit zum PTC OUT Signal 114 und weiter zum Programmierterminal-Verbinder 110 durchgeleitet.
Auf diese Weise werden eingehende Daten vom Netz 10 automatisch zum
Programmierterminal-Verbinder 110 und zum Programmierterminal 18 (falls
angeschlossen) weitergeleitet. Beim Empfängen von Daten auf dem NET IN
Signal 107 (d. h. PTC ACTIVE 253 und TX ENABLE 256 sind
beide "falsch") deaktiviert die
TX-Steuerschaltung 255 die Leitung mit dem zweiphasigen TX-Vortreiberfreigabesignal 277,
um zu verhindern, dass die eingehenden Daten auf die eingehenden Netzwerkdaten
zurückgetrieben
werden und diese stören.
Nach dem Empfang des NET IN Signals 107 oder des PTC IN
Signals 113 wird das andere Signal ausgeblendet, da abgehende
Daten aufgrund der Repeating-Funktion dort bald erscheinen werden.
-
In
einem dritten Fall wird der Knoten 20 für die Übertragung (TX ENABLE Signal 256 ist "wahr") freigegeben, und
beide PTC IN und NET IN Signale 113 und 107 sind
jeweils normalerweise ruhig. Die TX ENABLE und END BLANKING Signale 256 und 257 sind
jeweils zum Ermitteln des Sendestatus des Knotens 20 mit
der TX-Steuerschaltung 255 gekoppelt. Wenn die Übertragung
freigegeben ist, werden die TX PHY SYMBOLS 269 über die
PHY DATA Leitung 270 gekoppelt, und die TX-Steuerschaltung 255 gibt beide
Leitungen 276 und 277 jeweils zum AND-Gate 274 und
zur zweiphasigen TX-Vortreiberschaltung 275 frei.
Auf diese Weise werden die Sendedaten mit dem Programmierterminal-Verbinder 110 und
dem Netz 10 gekoppelt.
-
Das
PHY DATA Signal 270 ist auch mit der Begrenzererkennungsschaltung 265 gekoppelt,
die die Anfangs- und Endebegrenzer 23 und 28 erkennt und
mehrere Signale erzeugt, die in der nachfolgenden Verarbeitung des
Meldungsframe verwendet werden. Der Betrieb der Begrenzererkennungsschaltung 265 wird
nachfolgend umfassend beschrieben. Im Allgemeinen tastet die Begrenzererkennungsschaltung 265 das
PHY DATA Signal 270 kontinuierlich in einem Versuch ab,
die genaue Sequenz von Phy-Symbolen zu erkennen, die einen gültigen Anfangsbegrenzer 23 bildet.
Wie zuvor beschrieben, müssen,
da der Anfangsbegrenzer 23 absichtlich Phy-Symbolsequenzen
beinhaltet, die Manchester-Code-Verletzungen sind, alle Phy-Symbole betrachtet
werden, und somit wird das PHY CLOCK Signal 150 mit der
Begrenzererkennungsschaltung 265 verbunden. Nach dem Erkennen
eines gültigen Anfangsbegrenzers 23 aktiviert
die Begrenzererkennungsschaltung 265 das RX READY Signal 166,
das den genauen Startpunkt des ersten Datenbits und des ersten Datenbytes
des Meldungsframe anzeigt (siehe auch Timing-Diagramm von 6).
Nach dem Anfangsbegrenzer 23 werden weitere Manchester-Verletzungen
bis zu den bekannten Manchester-Verletzungen im Endebegrenzer 28 weder erwartet
noch zugelassen. Die Begrenzererkennungsschaltung 265 prüft auch
jedes Datenbit einzeln auf eine Manchester-Code-Verletzung und aktiviert ein VIOLATION-Ausgangssignal 280,
um eine solche Verletzung anzuzeigen. Das VIOLATION-Signal 280 ist über den
Eingangsbus 162 mit der Empfangsverarbeitungsschaltung 142 gekoppelt.
Nach dem Empfang eines gültigen
Anfangsbegrenzers wird, wenn keine weitere Manchester-Verletzung
vor dem Empfang eines gültigen
Endebegrenzers erkannt wird, ein BAD FRAME Signal 281 aktiviert
und über
den Eingangsbus 162 mit der Empfangsverarbeitungsschaltung 142 gekoppelt.
-
Darüber hinaus
ermöglicht
das CTDMA-Protokoll einen absichtlichen Abbruch eines Meldungsframe 21.
Ein absichtlicher Abbruch wird durch den Empfang eines. zweiten.
Anfangsbegrenzers nach dem ersten Anfangsbegrenzer angezeigt, der
den MAC-Frame gestartet hat. Wenn eine zweite Anfangsbegrenzersequenz
erkannt wird, dann wird ein RX ABORT Signal 282 von der
Begrenzererkennungsschaltung 265 aktiviert und über den
Eingangsbus 162 mit der Empfangsverarbeitungsschaltung 142 gekoppelt.
-
Eine
CRC-Prüfschaltung 285 ist
für die
Verwendung in Verbindung mit der Begrenzererkennungsschaltung 265 vorgesehen,
um zu überprüfen, ob
ein eingehender Meldungsframe einen gültigen CRC 27 beinhaltet.
Die CRC-Prüfschaltung 285 empfängt das
PHY DATA Signal 270 und wird vom BIT CLOCK Signal 261 so
getaktet, dass nur das "Daten"-Halbbit des PHY DATA Signals 270 zum
Errechnen des CRC abgetastet wird. Vor dem Empfang eines gültigen Anfangsbegrenzers
wird die CRC-Prüfschaltung 285 durch
ein RESET CRC Signal 286 zurückgestellt gehalten, das von
der Begrenzererkennungsschaltung 265 angelegt wird. Nach
dem Empfang eines gültigen
Anfangsbegrenzers 23 wird das RESET CRC Signal 286 freigegeben,
und die CRC-Prüfschaltung 285 beginnt
mit der Berechnung. Die CRC-Prüfschaltung 285 sendet
einen CRC OK Ausgang 287 zur Begrenzererkennungsschaltung 265,
um eine erfolgreiche CRC-Berechnung
anzuzeigen. Die Begrenzererkennungsschaltung 265 tastet das
CRC OK Signal 287 zum geeigneten Zeitpunkt nach Meldungsabschluss
wie nachfolgend beschrieben ab. Die CRC-Prüfschaltung 285 arbeitet
auf konventionelle Weise, wie der Fachperson bekannt ist, um eine
wortweise 16-Bit-Prüfsumme der
eingehenden Daten zu erzeugen. Das CRC OK Signal 287 wird
immer dann aktiviert, wenn die errechnete Prüfsumme gleich einem festen,
vorbestimmten 16-Bit-Wert ist.
-
Normalerweise
erfolgt nach dem Empfang eines gültigen
Anfangsbegrenzers 23 die Verarbeitung des Meldungsframe 21 ohne
Aktivierung der jeweiligen Signale VIOLATION, BAD FRAME bzw. RX ABORT 280–282.
Am Ende des Meldungsframe wird ein Endebegrenzer 28 empfangen,
der wiederum absichtliche Manchester-Code-Verletzungen beinhaltet.
In diesem Fall ist es normal und wird erwartet, dass eine Anzeige
des VIOLATION Signals 280 an irgendeiner Stelle vor der
vollständigen
Erkennung des Endebegrenzers 28 empfangen wird. Sobald
die erste Manchester-Code-Verletzung im Endebegrenzer erkannt wird,
wird das RX READY Signal 166 auf "falsch" gesetzt, und die Begrenzererkennungsschaltung 265 tastet
weiter auf Erkennung des vollen Endebegrenzers ab. Wenn der volle
Endebegrenzer 28 von der Begrenzererkennungsschaltung 265 genau
empfangen und erkannt ist, wird das CRC OK Signal 287 abgetastet.
Je nach dem Zustand des CRC OK Signals wird entweder ein CRC GOOD
Signal 290 oder ein CRC BAD PULSE Signal 291 von
der Begrenzererkennungsschaltung 265 aktiviert. Beide CRC-Statussignale 290 und 291 werden über den Eingangsbus 162 mit
der Empfangsverarbeitungsschaltung 142 gekoppelt.
-
Die
Begrenzererkennungsschaltung 265 ist auch mit dem RISC-Bus 180 verbunden.
Bestimmte der von der Begrenzererkennungsschaltung 265 erzeugten
Statusanzeigen stehen daher für
den Eingang in den RISC-Prozessor 400 durch eine entsprechende
Decodierung wie nachfolgend ausführlich
beschrieben zur Verfügung.
-
Gemäß 8 beinhaltet
die Begrenzererkennungsschaltung 265 im Modem 140 ein
fünfzehnstufiges
Schieberegister 340, das vom PHY CLOCK Signal 150 mit
der Phy-Symbolrate getaktet wird. Das PHY DATA Signal 270 ist
als serielle Dateneingabe in das Schieberegister 340 geschaltet
und bewirkt, dass der binäre
Zustand jedes sequentiellen Phy-Symbols in das Schieberegister 340 verschoben wird.
Das Schieberegister 340 erzeugt einen parallelen Ausgang
aller fünfzehn
Stufen. Die fünfzehn
parallelen Ausgangsleitungen des Schieberegisters 340 sind
mit fünfzehn
Leitungen eines parallelen Busses 341 verbunden. Der Bus 341 beinhaltet
insgesamt sechzehn Leitungen, wobei die sechzehnte Leitung (nicht
die fünfzehn
Leitungen vom Register 340) mit dem PHY DATA Signal 270 verbunden
ist. Auf diese Weise enthält
der Bus 341 einen Sechzehn-Phy-Symbol-"Schnappschuss", der aus dem letzten oder aktuellen
empfangenen Phy-Symbol (PHY DATA Signal 270) plus den fünfzehn vorherigen Phy-Symbolen
(von Register 340) besteht. Es ist wichtig zu bemerken,
dass der Bus 341 rohe Phy-Symbole, keine Datenbits enthält. Die
sechzehn Phy-Symbole belegen den Platz von "acht Datenbits", werden aber in separater Phy-Symbolform
gehalten, ohne Rücksicht
auf eine mögliche
Dateninterpretation. Die Sechzehn-Phy-Symbolsequenz auf dem Bus 341 ist
mit einer Anfangsbegrenzer-Erkennungslogikschaltung 342 und
mit einer Endebegrenzer-Erkennungslogikschaltung 343 verbunden.
Die Anfangsbegrenzer-Erkennungslogikschaltung 342 beinhaltet geeignete
Logikgatter, um ein bestimmtes Phy-Symbolmuster (d. h. den "Anfangsbegrenzer") auf dem Bus 341 zu
erkennen.
-
Wenn
das Phy-Symbolmuster des Busses 341 genau mit dem Anfangsbegrenzermuster übereinstimmt,
dann aktiviert die Anfangsbegrenzererkennungslogik 342 ein
START DELIM DETECTED Signal 345. Genau in diesem Moment
wurde der Anfangsbegrenzer 23 gerade empfangen, und es
ist dann bekannt, dass das eingehende PHY DATA Signal 270 an
einer Bit- und Byte-Grenze ist. Das START DELIM DETECTED Signal 345 ist
mit einer Begrenzererkennungszustandsmaschine 346 verbunden,
um den Moment anzuzeigen, an dem der Anfangsbegrenzer 23 erkannt
wird.
-
Auf ähnliche
Weise tastet die Endebegrenzer-Erkennungslogik 343 den
Bus 341 kontinuierlich auf das Auftreten einer gültigen Endebegrenzersequenz 28 ab.
Wenn ein Endebegrenzer 28 erkannt wird, dann aktiviert
die Endebegrenzer-Erkennungslogik 343 ein END DELIM DETECTED
Signal 347, um es der Begrenzererkennungszustandsmaschine 346 anzuzeigen.
-
Die
Begrenzererkennungsschaltung 265 beinhaltet eine Statuslogikschaltung 350 zum
Erzeugen der Statussignale RX ABORT 282, CRC GOOD 290 und
CRC BAD PULSE 291. Die Statuslogikschaltung 350 wird
durch das PHY CLOCK Signal 150 getaktet und empfängt das
CRC OK Signal 287 als Eingang. Drei weitere Eingänge in die
Statuslogikschaltung 350 werden von der Begrenzererkennungszustandsmaschine 346 angelegt,
nämlich
ein ABORT Signal 351, ein CHECK CRC Signal 352 und
ein HOLD STATUS Signal 353. Die Statuslogikschaltung 350 beinhaltet
Register, die vom PHY CLOCK Signal 150 zum Halten der jeweiligen
Zustände
der RX ABORT und CRC GOOD Signale 282 bzw. 290 getaktet
werden. Die Begrenzererkennungszustandsmaschine 346 aktiviert
das ABORT Signal 351, wenn ein Abbruchzustand erkannt wird,
wie nachfolgend beschrieben wird. Das CRC GOOD Signal 290 wird durch AND-Verknüpfen des
CHECK CRC Signals 352 mit dem CRC OK Signal 287 und
Zwischenspeichern des Ergebnisses erzeugt. Die Begrenzererkennungszustandsmaschine 346 aktiviert
das CHECK CRC Signal 352 nur dann, wenn der CRC getestet
werden soll. Wenn das HOLD STATUS Signal 353 von der Statuslogikschaltung 350 empfangen
wird, wird der Zustand seiner Ausgangssignale trotz Änderungen der
Eingangssignale gehalten, die sonst die Ausgangssignale beeinflussen
würden.
-
Die
Begrenzererkennungsschaltung 265 beinhaltet auch eine Verletzungserkennungsschaltung 360,
die die eingehenden Phy-Symbole auf Manchester-Code-Verletzungen
prüft und
das VIOLATION Signal 280 aktiviert, wenn eine Verletzung
während
des Empfangs eines Meldungsframe 21 erkannt wird.
-
Weiter
mit Bezug auf 8, zusätzlich zu den oben beschriebenen
Ein- und Ausgangssignalen empfängt
die Begrenzererkennungszustandsmaschine 346 auch als Eingänge das
BYTE PULSE Signal 151, das PHY CLOCK Signal 150 und
ein SHUTDOWN Signal 469. Das PHY CLOCK Signal 150 wird
als Grundtakt zum Betreiben der Zustandsmaschine verwendet, während das
BYTE PULSE Signal 151 von der Zustandsmaschine in Fällen verwendet
wird, in denen Zustandsübergänge an "Byte"-Grenzen erfolgen.
Das SHUTDOWN Signal 369 wird von einer Decodierbefehl-Instruktionsschaltung 368 erzeugt.
Die Decodierbefehl-Instruktionsschaltung 368 ist mit dem
RISC-Bus 180 verbunden und
beinhaltet geeignete Logikgatter zum Decodieren der Adress- und
Befehlsleitungen auf dem RISC-Bus 180,
um ein vorbestimmtes Muster zu erkennen, das die Ausgabe des "Shutdown"-Befehls vom RISC-Prozessor
repräsentiert.
Auf diese Weise kann der RISC-Prozessor in der Tat ein "Software-Reset" an die Begrenzererkennungszustandsmaschine 346 ausgeben,
wenn anomale Zustände
erkannt werden. Die von der Begrenzererkennungszustandsmaschine 346 erzeugten
Ausgänge
beinhalten das oben beschriebene VALID FRAME Signal 365 plus
dem ALIGN BYTE Signal 266, dem RX READY Signal 166 und
dem BAD FRAME Signal 281.
-
Die
Begrenzererkennungszustandsmaschine 346 wird als herkömmliche
Zustandsmaschine mit Eingängen
und Ausgängen
wie soeben beschrieben implementiert. 9 zeigt
ein Zustandsübergangsdiagramm,
in dem jede rechteckige Box einen "Zustand" repräsentiert und mit einem assoziierten
Zustandsnamen beschriftet ist. Wenn einem der Ausgänge ein
neuer Wert in einem Zustand zugewiesen wird, dann kommt eine gestrichelte
Linie unter dem Zustandsnamen hinzu, und die neuen Ausgangszuweisungen
sind unter der gestrichelten Linie aufgeführt. Die für Zustandsübergänge notwendigen Eingangsbedingungen
sind außerhalb
der "Zustands"-Boxen neben einem
Pfeil dargestellt, der den nächsten
Zustand für
diesen Übergang
anzeigt. In den Übergangsbedingungen
wurde die Bedingung "PHY
CLOCK" der Einfachheit
halber weggelassen, da verstanden wird, dass alle Zustandsübergänge durch
die aktive Flanke des PHY CLOCK Signals 150 getaktet werden.
-
Die
Begrenzererkennungszustandsmaschine 346 wird nach einer
Aktivierung eines konventionellen Hardware-Reset (nicht dargestellt)
zurückgestellt.
Der "Reset"-Eintrittszustand ist durch ein Oval 370 dargestellt.
Vom Reset 370 tritt sie unbedingt in einen ersten "Ruhe"-Zustand 371 ein. Im "Ruhe"-Zustand 371 werden
die Ausgangssignale wie angegeben initialisiert. Die Begrenzererkennungszustandsmaschine 346 bleibt
im "Ruhe"-Zustand 371, bis das START
DELIM DETECTED Signal 345 aktiviert wird. Zu diesem Zeitpunkt
erfolgt ein Übergang
in einen "Start"-Zustand 372,
und gleichzeitig wird ein aktiver Impuls auf dem ALIGN BYTE Signal 266 ausgegeben.
Wie oben beschrieben, bewirkt das ALIGN BYTE Signal 266, dass
die Bit- und Byte-Takte auf der Bit- und Byte-Grenze hinter dem
Anfangsbegrenzer 23 ausgerichtet werden. Im "Start"-Zustand 372 werden
das RX READY Signal 166 und das VALID FRAME Signal 365 auf "wahr" gesetzt, um den
Start eines MAC-Frame 21 anzuzeigen. Vorausgesetzt, dass
nach dem Anfangsbegrenzer 23 keine Manchester-Verletzungen
erkannt werden, bleibt der "Start"-Zustand 372 für eine Zeit
von einem "Byte" aktiv, d. h. bis
zur nächsten
Aktivierung des BYTE PULSE Signals 151. An dieser Stelle
erfolgt ein Übergang
zu einem "zweites
Byte" Zustand 373.
Im "zweites Byte" Zustand 373 wird
das RESET CRC Signal 286 freigegeben, damit die CRC-Prüfschaltung 285 mit
dem Akkumulieren der CRC-Prüfsumme
beginnen kann. Auch hier wird wieder, unter der Voraussetzung, dass
keine weiteren Manchester-Verletzungen vorliegen, der "zweites Byte" Zustand 373 nach
einer Zeit von einem "Byte" verlassen, und es
erfolgt ein Übergang
in einen "drittes
Byte" Zustand 374.
Ebenso geht der "drittes
Byte" Zustand 374 nach
einer Zeit von einem "Byte" in einen "4+ Byte" Zustand 375 über. Vor
dem Empfang von vier vollständigen
Bytes wird keine eingehende Meldung akzeptiert, da die Mindestlänge für jeden
MAC-Frame vier Bytes beträgt.,
Nach dem Erreichen des "4+
Bytes" Zustands 375 wird
jedoch erwartet, dass eine Meldung unterwegs ist. Der "4+ Bytes" Zustand 375 bleibt
dann für die
Dauer des MAC-Frame aktiv. Der Austritt aus dem "4+ Bytes" Zustand 375 erfolgt nur nach
dem Auftreten einer Manchester-Verletzung, wie durch das VIOLATION
Signal 280 angezeigt wird. Zu diesem Zeitpunkt erfolgt
ein Übergang
in einen "Verletzungsprüf"-Zustand 376.
Es wird unter normalen Bedingungen davon ausgegangen, dass die erkannte Verletzung
die absichtliche Manchester-Verletzung im Endebegrenzer 28 ist,
aber dies ist nicht unbedingt der Fall. Eine Manchester-Verletzung
kann stattdessen entweder ein zweiter Anfangsbegrenzer oder ein
tatsächlicher Manchester-Fehler
sein. Egal wie die "Verletzung" aufgetreten ist,
das RX READY Signal 166 wird aus gezwungen, da der aktuelle MAC-Frame
jetzt enden muss, entweder normal oder fehlerbedingt.
-
Im "Verletzungsprüf"-Zustand 376 erfolgt eine
Wartezeit, bis das Byte, in dem die Verletzung aufgetreten ist,
komplett ist. Zu diesem Zeitpunkt kann ein Test durchgeführt werden,
ob die "Verletzung" tatsächlich ein
gültiger
Endebegrenzer 28 war oder ob die "Verletzung" auf einen anderen Zustand zurückzuführen ist.
Nach dem Ende des fraglichen Byte (BYTE PULSE Signal 151 ist "wahr") und wenn das END
DELIM DETECTED Signal 347 aktiviert ist, erfolgt ein Übergang
in einen "normale
Terminierung" Zustand 377.
Im "normale Terminierung" Zustand 377 fällt das
HOLD STATUS Signal 353 ab, so dass neue Statusbedingungen
von der Statuslogikschaltung 350 eingegeben werden können. Gleichzeitig wird
das CHECK CRC Signal 352 aktiviert, um anzuzeigen, dass
der CRC geprüft
werden muss. Der "normale
Terminierung" Zustand 377 wird
unbedingt nach einer Dauer des PHY CLOCK Signals 150 zurück in den "Ruhe"-Zustand 371 verlassen.
-
Wenn
gefunden wird, dass die "Verletzung" im "Verletzungsprüf"-Zustand 376 kein
gültiger
Endebegrenzer war, dann ist keine weitere Maßnahme notwendig. Eine Möglichkeit
ist die, dass die "Verletzung" auf den Empfang
eines zweiten Anfangsbegrenzers zurückzuführen ist. Wie zuvor erörtert, ist ein
zweiter nachfolgender Anfangsbegrenzer eine absichtliche Abbruchanforderung,
und wenn gefunden wird, dass dies der Fall ist, dann erfolgt ein Übergang
in einen "Abbruch"-Zustand 378.
Im "Abbruch"-Zustand wird das HOLD STATUS Signal 353 auf "falsch" gesetzt, um den
vorherigen Status zu löschen,
und das ABORT Signal 351 wird aktiviert, um zu bewirken,
dass das RX ABORT Signal 282 auf "wahr" zwischengespeichert
wird. Der "Abbruch"-Zustand 378 geht
nach einem PHY CLOCK Zyklus unbedingt zurück in den "Ruhe"-Zustand 371.
-
Ein
weiterer möglicher
Grund für
das Auftreten einer "Verletzung" im "Verletzungsprüf"-Zustand 376 ist
der, dass im Hauptteil eines MAC-Frame 21 tatsächlich ein
Manchester-Fehler
aufgetreten ist, d. h. nicht aufgrund eines Anfangs- oder Endebegrenzers 23 oder 28.
In diesem Fall erfolgt ein Übergang
in einen "schlechte
Terminierung" Zustand 379.
Im "schlechte Terminierung" Zustand 379 fällt die
HOLD STATUS Leitung 353 wieder ab, um einen von der Statuslogik 350 evtl.
gehaltenen Status zu löschen. Das
BAD FRAME Ausgangssignal 281 wird ebenfalls aktiviert und
dient als direkter Ausgabeimpuls, der den "schlechte Terminierung" Zustand anzeigt.
Der "schlechte Terminierung" Zustand 379 geht
ebenfalls nach einem Phy-Taktzyklus zurück in den "Ruhe"-Zustand 371.
-
Wieder
in einem der Zustände 372–374,
es wurden nicht genügend
Bytes empfangen, um einen vollständigen
MAC-Frame 21 zu bilden. Es ist jedoch weiterhin möglich, die
Abbruchsequenz aufzurufen (d. h. einen zweiten. Anfangsbegrenzer).
Wenn eine Verletzung in einem der Zustände 372–374 auftritt, dann
wird in einen "vorzeitige
Verletzung" Zustand 380 eingetreten.
Wenn die "Verletzung" sich als ein zweiter
Anfangsbegrenzer herausstellt, dann wird wie zuvor in den "Abbruch"-Zustand 378 eingetreten. Ebenso
wird, wenn die "Verletzung" auf etwas anderes
als einen zweiten Anfangsbegrenzer zurückzuführen ist, der "schlechte Terminierung" Zustand 379 aufgerufen.
-
Schließlich erfolgt,
wenn das SHUTDOWN Signal 369 zu irgendeinem Zeitpunkt aktiviert
wird, ein sofortiger Übergang
in den "schlechte
Terminierung" Zustand 379.
Dadurch wird ein eventueller vorheriger Status beseitigt und die
Begrenzererkennungszustandsmaschine 346 wird zurück in den "Ruhe"-Zustand 371 gesetzt.
-
SMAC-Zugangssteuerschaltung
-
Die
Zugangssteuerschaltung 144 im SMAC 100 von 5B beinhaltet
einen RISC-Prozessor 400 sowie weitere spezielle Unterstützungsschaltungen
zum Implementieren des CTDMA-Protokolls. Wie 10 ausführlich zeigt,
beinhalten die Zugangssteuerunterstützungsschaltungen 401–407 eine
Event-Logikschaltung 401,
einen "durch zehn
dividieren" Impulsgenerator 402,
einen MAC-Frameslot-Timer 403, einen Periodisches-Intervall-Timer 404,
einen Sperrzeitmonitor 405, ein Geplante-Phase-Register 406 und
eine Decodierschaltung 407.
-
Der
RISC-Prozessor 400 hat einen der Fachperson bekannten konventionellen
Aufbau. Der RISC-Prozessor 400 beinhaltet einen internen
Arbeitsspeicher (RAM) 410 und einen Festwertspeicher (ROM) 411 sowie
weitere bekannte Schaltungen (nicht dargestellt, z. B. Register,
Arithmetik/Logikeinheit, Programmzähler, Opcode-Decoder usw.)
zum Ausführen
eines Programms von im ROM 411 gespeicherten Anweisungen.
Der RAM 410 enthält
einen ersten Satz von Speicherstellen, in denen die im Sperrband 56 empfangenen
aktiven Netzprotokollparameter gemäß Illustration in 2C und
obiger Beschreibung gespeichert sind. Diese Parameter werden von
anderen Komponenten der Zugangssteuerschaltung 144 verwendet,
wie nachfolgend beschrieben wird. Ein zweiter Satz Speicherstellen
im RAM 410 ist als "Halteregister" designiert, um neue
Netzprotokollparameter vorübergehend
zu speichern, bis ein neuer synchronisierter Wechsel erfolgt, wenn
dieser Wert von TMINUS im Feld 82 das Moderator-LPaket
einen Übergang
von eins auf null macht [sic]. In der Praxis wird der anfängliche
TMINUS-Wert von ungleich null in den RAM 410 des RISC-Prozessors
geladen und der RISC-Prozessor 400 führt eine Software-Zählroutine
durch, die den Wert im RAM am Anfang jedes Sperrbandintervalls 56 dekrementiert.
-
Dadurch
wird eine unabhängige
Zahl des TMINUS-Wertes geführt,
so dass selbst dann, wenn ein Moderator-LPaket nicht ordnungsgemäß empfangen
wird, der Knoten trotzdem einen genauen TMINUS-Zählwert hat. Wenn der RISC-Prozessor 400 den
TMINUS-Zählwert
bis auf Null dekrementiert, dann führt der Prozessor Anweisungen
aus, die die neuen Netzprotokollparameter in den ersten Satz von
Speicherstellen als den aktiven Satz von Parametern für die Verwendung
bei der Handhabung von Netzwerkkommunikationen übertragen. Die eigentliche Übertragung
erfolgt zu Beginn des Sperrbandes 56 in einem ruhigen Subintervall 57 auf
dem Netz, bevor der Moderator die Meldung während des Moderatorschlitzes
sendet.
-
Der
RISC-Prozessor 400 implementiert einen typischen Prozessoranweisungssatz
einschließlich
Logik-, Arithmetik- und
Datenmanipulationsanweisungen. Mehrere Spezialanweisungen werden ebenfalls
implementiert, die die Adress-, Daten- und Steuerleitungen auf dem
RISC-Bus 180 nutzen, um die Ein- und Ausgangsoperationen
zu den anderen am RISC-Bus 180 angeschlossenen Schaltungen auszuführen, wie
in den jeweiligen Abschnitten der vorliegenden Spezifikation beschrieben
ist. Wie zuvor angegeben, wird der im RISC-Prozessor 400 verwendete
interne Bus (d. h. der RISC-Bus 180) extern über geeignete
Treiber und Decoder (nicht dargestellt) erweitert, damit der RISC-Prozessor
auf Fernein- und -ausgänge
in anderen Schaltungen des SMAC 100 durch Ausführen entsprechender
E/A-Anweisungen zugreifen kann. Ein im ROM 411 gespeichertes
Steuerprogramm 412 wird vom RISC-Prozessor 400 ausgeführt, um
die Steuerfunktionen der Zugangssteuerschaltung 144 zu
implementieren.
-
Der
Anweisungssatz für
den RISC-Prozessor 400 beinhaltet eine "Warte"-Anweisung. "Warte"-Anweisungen sind in der Technik allgemein
bekannt, um Prozessoraktivität
bis zur Aktivierung eines Hardware-Eingangssignals zu suspendieren, das
das Ende des "Warte"-Zustands anzeigt.
Der RISC-Prozessor 400 implementiert eine spezielle "Warte"-Anweisung unter
Verwendung der Event-Logikschaltung 401. Wenn der RISC-Prozessor 400 in den "Warte"-Zustand geht (d.
h. nach Ausführung
einer "Warte"-Anweisung), decodiert
die Event-Logikschaltung 400 Steuer- und Adressleitungen
auf dem RISC-Bus 180, um eine der mehreren möglichen
Bedingungen auszuwählen,
die von Eingangssignalen 408 als das "Event" angezeigt werden, das zum Auslösen des
Endes des Wartezustands und zur Wiederaufnahme der Verarbeitung
durch den RISC-Prozessor 400 verwendet wird. Wenn die gewählte Event-Bedingung "wahr" wird, dann wird
ein END WAIT Signal 415 von der Event-Logikschaltung 401 aktiviert.
Das END WAIT Signal 415 ist als Eingang zum RISC-Prozessor 400 geschaltet
und veranlasst – wenn
aktiviert – den
RISC-Prozessor, die Verarbeitung an der auf die "Warte"-Anweisung folgenden Anweisung wieder
aufzunehmen.
-
Der "durch zehn dividieren" Impulsgenerator 402 empfängt das
PHY CLOCK Signal 150 als Eingang und erzeugt ein Ausgangssignal,
das als MEGA PULSE Signal 416 bezeichnet wird. Das MEGA
PULSE Signal 416 ist mit der Event-Logikschaltung 401, dem
Slot-Timer 403 und dem Periodisches-Intervall-Timer 404 für diese
Intervalle des MAC-Frame verbunden. Wie der Name impliziert, hat
das MEGA PULSE Signal 416 eine Frequenz von einem Megahertz,
was der der Zehn-Megahertz-Frequenz des PHY CLOCK Eingangssignals 150 dividiert
durch zehn entspricht. Der Ausgangsimpuls des MEGA PULSE Signals 416 hat
eine Dauer, die einem Zyklus des PHY CLOCK Signals 150 entspricht,
d. h. das MEGA PULSE Signal 416 ist für jede zehnte aktive Periode
des PHY CLOCK Signals 150 "wahr".
Das MEGA PULSE Signal 416 dient somit als Eine-Mikrosekunde-Zeitbasis
für die
angeschlossenen Schaltungen 401, 403 und 404.
-
Der
Slot-Timer 403 erzeugt ein SLOT TIMEOUT Signal 417,
das bei jedem Auftreten eines Slot-Timeout pulsiert wird. Wie zuvor
erörtert,
tritt ein Slot-Timeout immer dann auf, wenn ein Knoten 20 während seines
zugewiesenen Zeitschlitzes nicht sendet. Die Menge an Zeit, die
verstreichen muss, bevor ein Timeout auftritt, wird zum SMAC im
Moderator-LPaket (2C) gesendet, im RAM 410 gespeichert
und über
den RISC-Bus 180 zum Slot-Timer 403 kommuniziert.
Der RISC-Bus 180 dient auch für die Kommunikation anderer
Status- und Steuerinformationen zwischen dem RISC-Prozessor 400 und dem
Slot-Timer 403. Der Slot-Timer 403 empfängt auch
das PHY CLOCK Signal 150 als Grundbetriebstakt, während das
MEGA PULSE Signal 416, wie soeben erwähnt, als Eine-Mikrosekunde-Zeitbasis
verwendet wird. Das SLOT TIMEOUT Signal 417 ist als ein
Eingang zur Event-Logikschaltung 401 für die Verwendung beim Ermitteln
einiger der "Warte"-Bedingungen verbunden.
-
Weiter
mit Bezug auf 10, der Periodisches-Intervall-Timer 404 wird
in Verbindung mit dem RISC-Prozessor 400 verwendet,
um die Zeit anzugeben, die während
jedes periodischen Intervalls 50 verstreicht. Insgesamt
wird die in jedem periodischen Intervall 50 abgelaufene
Zeit als 16-Bit-Zahl (zwei Bytes) gemessen, die hierin als Periodic-Interval-Time-(PIT)-Zahl
bezeichnet wird. Die PIT-Zahl
hat eine Auflösung
von zehn Mikrosekunden pro Bit, so dass ein maximales periodisches
Intervall von 655,35 Millisekunden möglich ist. Der untere (niedrigstwertige) 8-Bit-Teil der PIT-Zahl
wird im Periodisches-Intervall-Timer 404 selbst gehalten,
während
der obere (höchstwertige)
8-Bit-Teil vom RISC-Prozessor 400 im
RAM 410 gehalten wird. Zu Beginn eines periodischen Intervalls 50 wird
jeder Teil mit einem Wert vom RAM 410 geladen, den er vom
Netzmoderator im PIT-Block 72 des Moderator-LPakets empfangen
hat. Die untere 8-Bit-Zahl, als Bus PIT LO BYTE 418 bezeichnet,
wird vom Periodisches-Intervall-Timer 404 zum Sperrzeitmonitor 405 gesendet.
Es werden auch Schaltungen im Periodisches-Intervall-Timer 404 vorgesehen,
damit der Wert des PIT LO BYTE Busses 418 direkt vom RISC-Prozessor 400 über den RISC-Bus 180 gelesen
werden kann. Die Zahl auf dem PIT LO BYTE Bus 418 wird
automatisch alle zehn Mikrosekunden dekrementiert, bis die Zahl
null erreicht ist. Es ist im Periodisches-Intervall-Timer 404 eine
Funktion vorgesehen, um es dem RISC-Prozessor 400 zu ermöglichen,
eine Null-Zahl auf dem PIT LO BYTE Bus 418 über den
RISC-Bus 180 zu erkennen. Wenn dies auftritt, dann dekrementiert
der RISC-Prozessor 400 den Wert der PIT-Hoch-Byte-Zahl (im RAM 410)
um eins. Dieser Vorgang wird so lange wiederholt, bis das hohe PIT-Byte
auf null dekrementiert ist. Zu diesem Zeitpunkt gibt der RISC-Prozessor 400 entsprechende Befehle über den
RISC-Bus 180 zum Aktivieren eines PIT HI BYTE ZERO Signals 419 im
Periodisches-Intervall-Timer 404 aus. Das PIT HI BYTE ZERO
Signal zeigt so an, dass das hohe PIT-Byte jetzt null ist, und die
einzige im aktuellen periodischen Intervall verbleibende Zeit ist
die Zeit, die der tiefe Byte-Wert auf dem PIT LO BYTE Bus 418 repräsentiert.
Das PIT HI BYTE ZERO Signal 419 wird auch zum Sperrzeitmonitor 405 ausgegeben.
-
Eine
zusätzliche
Funktion des periodischen Intervall-Timers 404 ist die Erzeugung
eines TONE COMMAND Signals 420. Das TONE COMMAND Signal 420 wird
vom Periodisches-Intervall-Timer 404 nach
dem Eingang entsprechender Befehle vom RISC-Prozessor 400 über den
RISC-Bus 180 aktiviert. Wie oben mit Bezug auf 3 erörtert wurde, ist
der "Ton" 53 das
interne SMAC-Referenzsignal, das den Beginn eines neuen periodischen
Intervalls 50 markiert und im Wesentlichen zur selben absoluten
oder "universellen" Zeit in allen Knoten 20 auf dem
Netz 10 auftritt, innerhalb eines geringen Fehlerspielraums
aufgrund von Fortpflanzungsverzögerungen von
Zeitreferenz-Events. Das TONE COMMAND Signal 420 wird intern
im Periodisches-Intervall-Timer 404 verwendet und ist auch
mit dem Sperrzeitmonitor 405, dem Geplante-Phase-Register 406 und dem
Sync-Bus 176 verbunden.
-
Die
in 10 und 11 gezeigte
Sperrbandzeit-Überwachungsschaltung 405 ermittelt
die Zeit, zu der der Sperrbandteil 56 jedes periodischen Intervalls
beginnt. Der Start des Sperrbandes basiert auf der PIT-Zahl auf
dem PIT LO BYTE Bus 418 und der PIT HI BYTE ZERO Leitung 419.
Der "Sperrbandzeit"-Wert vom Datenblock 77 des
vom Netzwerkmoderator empfangenen Moderator-LPakets wird in einem
Register 421 der Sperrbandzeit-Überwachungsschaltung vom RISC-Prozessor 400 über den RISC-Bus 180 gespeichert.
Dieser Wert gibt die PIT-Zahl an, bei der das Sperrband 56 starten
soll. Mit anderen Worten, das Sperrband 56 soll dann beginnen,
wenn die PIT-Zahl auf den "Sperrbandzeit"-Wert zurückgegangen ist.
-
Das
Sperrbandzeitregister 421 kann vom RISC-Prozessor 400 über den
RISC-Bus 180 gelesen und beschrieben werden. Eine Decodierschaltung 423 ist
mit dem RISC-Bus 180 verbunden, um die Ausführung eines "Schreibsperrbandzeit"-Befehls durch den RISC-Prozessor 400 zu
erkennen. Wenn der "Schreibsperrbandzeit"-Befehl erkannt ist, erzeugt
die Decodierschaltung 423 ein Strobe-Signal auf der Leitung 424.
Das Strobe-Signal 424 veranlasst wiederum das Sperrzeitregister 421,
die Daten auf den acht Datenleitungen des RISC-Busses 180, durch
das Bussegment 425 repräsentiert,
zwischenzuspeichern. Ebenso kann der RISC-Prozessor 400 den
Inhalt des Sperrbandzeitregisters 421 über eine Byte-Auswahlschaltung 426 zurücklesen.
Die Byte-Auswahlschaltung 426 ist zwischen dem "Sperrbandzeit"-Bus 422 und dem RISC-Bus 180 geschaltet
und decodiert entsprechende Steuersignale auf dem RISC-Bus 180,
um die Ausführung
einer "Sperrbandzeitwert
lesen"-Anweisung
durch den RISC-Prozessor 400 zu erkennen. Nach dem Erkennen
der "Sperrbandzeitwert
lesen"-Anweisung
wird der "Sperrbandzeit"-Wert auf dem Bus 422 durch
die Datenleitungen des RISC-Busses 180 gekoppelt.
-
Der "Sperrbandzeit"-Wert im Register 421 und
auf dem Bus 422 hat eine Länge von einem Byte, und daher
kann der Sperrbandteil 56 des periodischen Intervalls 50 erst
nach Aktivierung des PIT HI BYTE ZERO Signals 419 beginnen.
Um den Start des Sperrbandes zu ermitteln, wird der 8-Bit-Wert des
PIT LO BYTE Signals 418 mit dem "Sperrbandzeit"-Wert auf dem Bus 422 im Komparator 427 verglichen.
Ein Ausgang 428 vom Komparator 427 ist dann "wahr", wenn die jeweiligen
Eingänge 418 und 422 gleich
sind. Der Ausgang 428 ist als ein Eingang mit einem AND-Gate 429 verbunden,
der andere Eingang des AND-Gates 429 ist mit dem PIT HI
BYTE ZERO Signal 419 verbunden. Der Ausgang 430 des AND-Gates 429 ist
daher dann "wahr", wenn die Bedingungen
zum Starten des Sperrbandes erfüllt
sind.
-
Der
Sperrbandzeitmonitor 405 erzeugt drei Sperrbandsteuersignale:
ein GENERAL GUARD BAND Signal 431, ein SCREENER GUARD BAND Signal 432 und
ein MODERATOR GUARD BAND Signal 433. Jedes der Signale 431–433 wird
während spezifischer
Zeiten im Sperrbandteil 56 des periodischen Intervalls 50 aktiviert,
um verschiedene "Sperrband"-Aktivitäten zu steuern. Die GENERAL
GUARD BAND und SCREENER GUARD BAND Signale 431 und 432 werden
jeweils durch zwei Flipflops 435 und 436 geführt. Jeder
Flipflop 435 und 436 hat einen synchronen "Set"-Eingang, der mit
dem Ausgang 430 des AND-Gates 429 verbunden ist,
und beide Flipflops 435 und 436 werden vom PHY
CLOCK Signal 150 getaktet. Die Folge ist, dass beide Flipflops 435 und 436 zu
Beginn des Sperrbandes 56 des periodischen Intervalls gesetzt
werden, wodurch die jeweiligen GENERAL GUARD BAND und SCREENER GUARD
BAND Signale 431 und 432 aktiviert werden.
-
Der
Flipflop 435 wird direkt vom TONE COMMAND Signal 420 zurückgesetzt.
Das GENERAL GUARD BAND Signal 431 ist daher für die gesamte Dauer
des Sperrbandes 56 "wahr", d. h. von dem Zeitpunkt
an, an dem die PIT-Zahl den "Sperrbandzeit"-Wert erreicht, bis
zum "Ton" 53. Das
SCREENER GUARD BAND Signal 432 wird jedoch durch einen
vom RISC-Prozessor 400 gesendeten expliziten Befehl zurückgesetzt.
Eine Decodierschaltung 437 ist mit dem RISC-Bus 180 verbunden
und erkennt die Ausführung
einer "Screener-Sperrband
zurücksetzen"-Anweisung durch
den RISC-Prozessor 400. Nach
dem Erkennen der "Screener-Sperrband
zurücksetzen" Anweisung wird ein
Strobe-Signal auf der Ausgangsleitung 438 erzeugt. Die
Ausgangsleitung 438 wird wiederum mit einem Reset-Eingang am
Flipflop 436 verbunden, der, wenn aktiviert, den Flipflop 436 zu
einem Reset an der nächsten
aktiven Flanke des PHY CLOCK Signals 150 veranlasst. Dies
ermöglicht
es dem RISC-Prozessor 400, das SCREENER GUARD BAND Signal 432 zu
einem anderen Zeitpunkt als bei "Ton" 53 für die Ausführung der
Screening-Funktion wie nachfolgend beschrieben zu deaktivieren.
-
Das
dritte Sperrbandsteuersignal, nämlich das
MODERATOR GUARD BAND Signal 433, ist als Ausgang eines
AND-Gates 440 geschaltet.
Ein Eingang des AND-Gates 440 ist mit dem GENERAL GUARD
BAND Signal 431 verbunden. Der andere Eingang des AND-Gates 440 ist
mit einem Ausgang 441 eines Flipflop 442 verbunden.
Der Flipflop 442 wird direkt vom RISC-Prozessor 400 gesteuert
und dient zum Speichern des "Moderator"-Status für den Knoten 20.
Wenn der RISC-Prozessor 400 ermittelt
hat, dass sein eigener Knoten 20 der Moderator-Knoten für das Netz 10 ist,
dann wird der Flipflop 442 in den "Set"-Zustand
befohlen. In diesem Fall ist das AND-Gate 440 freigegeben,
und das MODERATOR GUARD BAND Signal 433 folgt dem GENERAL
GUARD BAND Signal 431 (d. h. die beiden sind äquivalent).
Alternativ wird, wenn der RISC-Prozessor 400 ermittelt,
dass sein eigener Knoten nicht der Moderator-Knoten ist, der Flipflop 442 zurückgesetzt,
und das MODERATOR GUARD BAND Signal 433 wird niemals aktiviert.
-
Die
Steuerung des Flipflops 442 erfolgt durch eine Decodierschaltung 443.
Die Decodierschaltung 443 ist mit dem RISC-Bus 180 verbunden
und decodiert separate "Set" und Reset" Befehle für den "Moderator"-Status des Knotens 20.
Nach dem Erkennen der Ausführung
des "Set" oder des "Reset" Befehls wird ein
Ausgangs-Strobe-Signal auf einer der beiden Ausgangsleitungen 444 bzw. 445 erzeugt.
Die Ausgangsleitungen 444 und 445 sind wiederum
mit jeweiligen synchronen "Set" und "Reset" Eingängen am
Flipflop 442 verbunden.
-
Der
Sperrbandzeitmonitor 405 beinhaltet auch eine Bittest-Auswahlschaltung 446,
damit der RISC-Prozessor 400 die aktuellen Zustände des
GENERAL GUARD BAND Signals 431 und des MODERATOR GUARD
BAND Signals 433 lesen kann. Die Bittest-Auswahlschaltung 446 ist
mit dem RISC-Bus 180 verbunden und beinhaltet einen Decodierschaltkomplex,
um die Ausführung
einer "Lese"-Anweisung durch
den RISC-Prozessor 400 zu
erkennen, der die angeschlossenen Signale 431 und 432 adressiert. Wenn
eine entsprechend adressierte "Lese"-Anweisung erkannt
wird, wird das gewählte
Signal 431 und 432 mit einer der Datenleitungen
auf dem RISC-Bus 180 gekoppelt.
-
Einmal
kurz mit Bezug auf die 5B und 10, die
Sperrbandsteuersignale 431–433 werden wie folgt
geleitet. Das GENERAL GUARD BAND Signal 431 und das SCREENER
GUARD BAND Signal 432 sind mit dem Sync-Bus 176 verbunden.
Das MODERATOR GUARD BAND Signal 433 ist in der Zugangssteuerschaltung 144 mit
der Event-Logikschaltung 401 verbunden und wird auch aus
der Zugangssteuerschaltung 144 hinaus zur Sendeverarbeitungsschaltung 141 geleitet.
-
Nun
mit Bezug auf die 10 und 12, die
Geplante-Phase-Registerschaltung 406 der
Zugangssteuerung 144 beinhaltet einen Flipflop 448, dessen
Ausgang als SCHEDULED PHASE Signal 450 bezeichnet wird.
Ein "wahres" SCHEDULED PHASE
Signal 450 zeigt an, dass sich das periodische Intervall 50 derzeit
in der geplanten Phase 52 befindet. Der Flipflop 448 hat
synchrone Set- und Reset-Eingänge
und wird vom PHY CLOCK Signal 150 getaktet. Das TONE COMMAND
Signal 420 ist mit dem Set-Eingang des Flipflops 448 verbunden.
Somit wird das SCHEDULED PHASE Signal 450 automatisch nach
Aktivierung des TONE COMMAND Signals 420 auf "wahr" gesetzt. So wird
die geplante Phase gezwungen, gemäß dem CTDMA-Protokoll immer
am "Ton" 53 zu beginnen
(siehe 3). Der Flipflop 448 wird von einem entsprechenden
Befehl vom RISC-Prozessor 400 zurückgesetzt. Insbesondere beinhaltet
die Geplante-Phase-Registerschaltung 406 eine
mit dem RISC-Bus 180 verbundene Decodierschaltung 451.
Die Decodierschaltung 451 decodiert entsprechende Adress-
und Steuerleitungen auf dem RISC-Bus 180, um die Ausführung einer "geplante Phase zurücksetzen" Ausgangsanweisung vom
RISC-Prozessor 400 zu erkennen. Nach dem Erkennen der "geplante Phase zurücksetzen" Anweisung wird eine
mit dem Reset-Eingang des Flipflop 448 verbundene Ausgangsleitung 452 aktiviert,
die den Flipflop 448 zurücksetzt. Nach dem Zurücksetzen
des Flipflop 448 (SCHEDULED PHASE Signal 450 ist "falsch"), wird das periodische
Intervall 50 bis zum Start des "Sperrbandes" wie oben definiert als in der "ungeplanten Phase" 54 angesehen.
Das SCHEDULED PHASE Signal 450 bleibt auch während des gesamten
Sperrbandes 56 "falsch", bis es durch die nächste Aktivierung
des TONE COMMAND Signals 420 wieder auf "wahr" gesetzt wird.
-
Der
RISC-Bus 180 ist auch mit einer Bittest-Auswahlschaltung 453 verbunden,
damit der RISC-Prozessor 400 den aktuellen Wert des SCHEDULED
PHASE Signals 450 lesen kann. Die Bittest-Auswahlschaltung 453 beinhaltet
einen Decodierschaltkomplex, um auf die Ausführung einer "Geplante-Phase-Bit
lesen" Anweisung
durch den RISC-Prozessor 400 zu
reagieren. Nach dem Erkennen der "Geplante-Phase-Bit lesen" Anweisung koppelt
die Bittest-Auswahlschaltung 453 den
Wert des SCHEDULED PHASE Signals 450 auf den RISC-Bus 180 für die Eingabe
durch den RISC-Prozessor 400.
-
Es
folgt eine ausführliche
Beschreibung der Periodisches-Intervall-Timer-Schaltung 404 in
der Zugangssteuerung 144 mit Bezug auf 13.
Der PIT LO BYTE Bus 418 ist als paralleler Ausgang eines
Abwärtszählers 500 geschaltet.
Eine Byte-Auswahlschaltung 501 ist zwischen dem PIT LO
BYTE Bus 418 und dem RISC-Bus 180 geschaltet,
damit der RISC-Prozessor 400 den aktuellen Inhalt des PIT LO
BYTE Busses durch Ausführen
einer geeigneten "Byte
lesen" Anweisung
direkt lesen kann. Der Abwärtszähler 500 wird
synchron vom PHY CLOCK Signal 150 getaktet und hat separate
Eingänge "Parallellast freigeben" und "Zahl freigeben", um jeweilige Parallellast-
und Zählvorgänge zu steuern.
Der "Zahl freigeben" Eingang ist mit
einem Ausgang 502 von einer "durch zehn dividieren" Vorskalierschaltung 503 verbunden,
die vom PHY CLOCK Signal 150 getaktet wird und das MEGA
PULSE Signal 416 als "Freigabe"-Eingang empfängt. Für jede zehnte
Aktivierung des MEGA PULSE Signals 416 erzeugt die Vorskalierschaltung 503 einen
Impuls auf der Ausgangsleitung 502. Der Abwärtszähler 500 wird
dadurch veranlasst, einmal alle zehn Mikrosekunden herunterzuzählen. Mit
anderen Worten, jeder "Tick" des Abwärtszählers 500 ist
ein Inkrement von zehn Mikrosekunden.
-
Der
Abwärtszähler 500 kann
auch parallel vom RISC-Prozessors 400 gesteuert
mit dem vom SMAC 100 im Moderator- LPaket empfangenen PIT-Wert geladen
werden (2C). Eine Decodierschaltung 504 ist
mit dem RISC-Bus 180 verbunden und erkennt die Ausführung einer "periodische Intervallzeit
schreiben" (PIT
schreiben) Anweisung. Nach dem Erkennen der Schreib-PIT-Anweisung
wird eine Ausgangsleitung 505 aktiviert. Die Ausgangsleitung 505 hat
Verbindung mit dem "Parallellast
freigeben" Eingang
des Abwärtszählers 500 und
einem Reset-Eingang der Vorskalierschaltung 503. Eine Aktivierung
der Ausgangsleitung 505 bewirkt, dass der Abwärtszähler 500 die
parallelen Daten von den Datenleitungen des RISC-Busses 180,
repräsentiert durch
das Bussegment 506, lädt.
Gleichzeitig erzwingt die Aktivierung des Reset-Eingangs auf der Vorskalierschaltung 503 einen
Neustart des Vorskaliervorgangs mit einer vollen Zahl von zehn.
Dies garantiert eine volle Zehn-Mikrosekunden-Periode vor der Aktivierung
des Vorskalierschaltungsausgangs 502 nach dem Laden des
Abwärtszählers 500 unabhängig von
einer eventuellen Restzahl, die vielleicht in der Vorskalierschaltung 503 übrig geblieben
ist.
-
Zusätzlich zum
PIT LO BYTE Bus 418 gibt der Abwärtszähler 500 auch ein
PIT COUNT ZERO Signal 507 aus. Der Abwärtszähler 500 ist so konstruiert,
dass er automatisch zwischen null und der maximalen 8-Bit-Zahl (hexadezimal "FF") umläuft. Das
PIT COUNT ZERO Signal 507 wird immer aktiviert, wenn die
im Abwärtszähler 500 enthaltene
Zahl gleich null ist, d. h. so, dass die nächste Aktivierung des PHY CLOCK
Signals 150 ein Umlaufen veranlasst. In diesem Sinne zeigt
das PIT COUNT ZERO Signal 507 an, dass die nächste Zahl
einen Übertrag von
der PIT-Low-Byte-Zahl
im Abwärtszähler 500 erzeugt.
Das PIT COUNT ZERO Signal 507 ist als Eingang zu einem
zweistufigen PIT-Übertragsschieberegister 510 geschaltet,
das die "Übertrags"-Anzeige vom Abwärtszähler in
einer zweistufigen Weise zwischenspeichert, so dass der RISC-Prozessor 400 genügend Zeit
hat, um jeden "Übertrag" zu verarbeiten. Die
PIT-Übertragsschieberegisterschaltung 510 wird vom
PHY CLOCK Signal getaktet.
-
Weiter
mit Bezug auf 13, das TONE COMMAND Signal 420 wird
von einer mit dem RISC-Bus 180 verbundenen Decodierschaltung 525 erzeugt.
Diese Schaltung 525 decodiert die Ausführung einer "Ton generieren" Anweisung durch
den RISC-Prozessor 400 und gibt das TONE COMMAND Signal 420 aus,
wenn die "Ton generieren" Anweisung erkannt
wird. Das PIT HI BYTE ZERO Signal 419 wird von einem PIT-Hi-Byte-Null-Flipflop 530 geführt, der
vom PHY CLOCK Signal 150 getaktet wird. Der Flipflop 530 kann
vom RISC-Prozessor 400 gesteuert gesetzt werden. Wie zuvor
erwähnt,
führt der RISC-Prozessor
das hohe PIT-Byte intern, d. h. im RAM 410. Der RISC-Prozessor 400 übernimmt
auch das Dekrementieren des hohen PIT-Byte jedes Mal, wenn der Abwärtszähler 500 einen "Übertrag" produziert. Jedes Mal, wenn der RISC-Prozessor 400 das hohe
PIT-Byte dekrementiert, wird das Ergebnis des Dekrementiervorgangs
(d. h. der "Null" oder "Nicht-Null"-Status des Ergebnisses) über eine "PIT-Hi-Byte-Ergebnis schreiben" Anweisung auf dem
RISC-Bus 180 auf die PIT-Hi-Byte-Zero-Flipflopschaltung 530 geschrieben.
Wenn das TONE COMMAND Signal 420 "wahr" wird,
dann werden der Flipflop 530 und das entsprechende PIT
HI BYTE ZERO Signal 419 in einen Reset-Zustand gezwungen.
-
MAC-Sendeprozessor
-
Die
in 5B gezeigte Zugangssteuerschaltung 144 steuert
auch die Sendeverarbeitungsschaltung 141 im SMAC 100.
Die Sendeverarbeitungsschaltung 141 wählt Daten aus einem der Sende-FIFO-Speicher
(TX A, TX B und TX C) in der Host-Schnittstelle 143 und
formatiert die Daten ordnungsgemäß zum Senden
durch das Modem 140. Die Details der Sendeverarbeitungsschaltung 141 sind
in 14 gezeigt. Ein Sende-Mover 600 verarbeitet
automatisch 16- Bit-Wörter von
den Sende-FIFOs, indem er sie in 8-Bit-Bytes aufteilt. Die aufgeteilten
Datenbytes werden dann über
den TX BYTE Bus 602 an einen Sende-Assembler 604 angelegt.
Der Sende-Mover 600 reagiert auf die von der Host-Schnittstelle 143 über den
TX STREAM STATUS Bus 185 empfangenen Steuersignale, die
anzeigen, welcher der drei Sende-FIFOs als zum Senden "bereit" markiert wurde.
Wenn es für
den Knoten 20 Zeit ist, über das Netz zu senden, gibt
die Zugangssteuerschaltung 144 entsprechende Anweisungen über den
RISC-Bus 180, um die Sendeverarbeitungsschaltung 141 zum
Sendebeginn anzuweisen. Gleichzeitig empfängt der Sende-Mover 600 ein
Signal über
den RISC-Bus 180, das einen der "bereiten" FIFOs in der Host-Schnittstelle 143 designiert.
Der Sende-Mover 600 sendet die Identifikation des gewählten Sende-FIFO über den
SELECT TX STREAM Bus 186 zur Host-Schnittstelle.
-
Die
Host-Schnittstellenschaltung 143 reagiert durch sequentielles
Platzieren jedes 16-Bit-Wortes von Daten von diesem FIFO auf den
TX WORD Bus 187, der als Eingang zum Sende-Mover 600 geschaltet
ist. Jedes von der Host-Schnittstelle 143 empfangene
Datenwort wird in einem Register im Sende-Mover 600 zwischengespeichert
und dann in zwei Bytes unterteilt. Die beiden Bytes werden nacheinander
an den TX BYTE Bus 602 angelegt und zum Sende-Assembler 604 gesendet.
-
Der
Sende-Assembler 604 konvertiert das Byte von Daten in das
Manchester-codierte Serienformat und reagiert auch auf Steuersignale über den RISC-Bus 180,
indem er die Manchester-Phy-Symbole für die Präambel und Begrenzer des abgehenden
MAC-Frame 21 generiert. Das generierte TX PHY SYMBOLS Signal 269 wird
an eine Leitung des Ausgangsbusses 161 angelegt, die mit
dem Sendeeingang des Modems 140 verbunden ist. Die oben mit
Bezug auf das Modem 140 beschriebenen Signale END BLANKING 257,
TX ENABLE 256 und TX RESERVE 271 werden ebenfalls
vom Sende-Assembler 604 erzeugt und an den Ausgangsbus 161 angelegt.
-
Der
RISC-Bus 180 ist ebenfalls direkt mit dem Sende-Assembler 604 verbunden,
damit der RISC-Prozessor 400 Daten über das Netz sendet. Zum Beispiel,
der RISC-Prozessor 400 verwendet diesen Datenpfad im Moderatorknoten
zum Senden von MAC-Frames in dem Sperrband 56, das ein
LPaket von Stationsmanagementinformationen wie zuvor beschrieben
enthält.
Wenn das MODERATOR GUARD BAND Signal 433 aktiv ist, werden
Daten vom RISC-Bus 180 vom Sende-Assembler 604 in
ein Manchester-formatiertes Seriensignal umgewandelt und über den
Bus 161 zum Modem 140 gesendet.
-
Während der
Sende-Mover 600 aktiv Daten handhabt, erzeugt er ein aktives
TX BUSY Signal 182, um der Zugangssteuerung 144 anzuzeigen, dass
ein Sendevorgang läuft.
Ein TX ERROR Signal 606 wird ebenfalls vom Sende-Mover 600 als
Anzeige dafür
erzeugt, dass ein Sendeunterlauf aufgetreten ist. Die Sende-FIFOs
in der Host-Schnittstelle 143 haben eine Länge von
nur 32 Byte. Da die Daten für
die meisten Meldungen viel länger
sein werden, verlässt
sich die Host-Schnittstelle darauf, dass der Host-Prozessor 102 verhindert,
dass den FIFOs die Daten ausgehen, bevor der Meldungsframe gebildet ist.
Wenn der Host-Prozessor jedoch Daten nicht schnell genug liefert,
dann kommt es zu einem Datenunterlauf. Der Sende-Mover 600 erkennt
dieses Event und sendet ein TX ERROR Signal 606 zu einem
Satz von Sendestatusregistern 608. Diese Fehleranzeige
kann vom RISC-Prozessor 400 über den Bus 180 von
den Sendestatusregistern 608 abgelesen werden.
-
Der
RISC-Prozessor 400 speichert auch Steuerinformationen in
den Sendestatusregistern 608. Ein solches Steuerbit mit
der Bezeichnung TX REQUEST 612 dient zum Einleiten des
Meldungsübertragungsprozesses.
Wenn ein Fehlerzustand auftritt, kann der RISC-Prozessor 400 reagieren,
indem er ein TX ABORT Bit 610 im Sendestatusregister 608 speichert,
um eine beliebige ablaufende Übertragung zu
terminieren.
-
Ein
Framewort-Countdown-Zähler 614 in
der Sendeverarbeitungsschaltung 141 führt eine Zahl für die Anzahl
von Datenworten, die im Datenfeld 25 des aktuellen MRC-Frame 21 zur
Verfügung
stehen. Während
des Sendens der einzelnen Datenwörter durch
die Schaltung 141 wird die Zahl im Framewort-Countdown-Zähler 614 dekrementiert.
Diese Zahl wird periodisch vom RISC-Prozessor 400 gelesen,
um zu ermitteln, ob ein anderes Daten-LPaket von der Host-Schnittstelle 142 innerhalb
des aktuellen MAC-Frame 21 gesendet werden kann oder ob CRC 27 und
Endebegrenzer 28 gesendet werden sollen.
-
Die
Sendeverarbeitungsschaltung 141 kümmert sich um das Senden von
Meldungsdaten durch den Knoten, und eine andere Schaltung verarbeitet die
vom Netz empfangenen Meldungen.
-
SMAC-Empfangsprozessor
-
Der
in 5B gezeigte SMAC 100 verwendet eine Empfangsverarbeitungsschaltung 142 für die Handhabung
eingehender Daten vom Modem 140 und für deren Formatierung für die Host-Schnittstelle 143.
Die Details der Empfangsverarbeitungsschaltung 142 sind
in 15 zu sehen. Das vom Eingangsbus 162 geführte eingehende
PHY DATA Signal 270 wird von einer Daten- und Steuer-Pipeline 800 in
der Empfangsverarbeitungsschaltung 142 empfangen. Die Pipeline 800 ist
mit dem Datentaktbus gekoppelt und empfängt die vom Modem erzeugten
Signale BYTE CLOCK 262, BYTE PULSE 151 und BIT
CLOCK 261.
-
Die
Einzelheiten der Daten- und Steuer-Pipeline 800 sind in 16 dargestellt.
Das PHY DATA Signal 270 wird in einem Serienein-/Parallelausgangsschieberegister 801 empfangen,
das vom BIT CLOCK Signal 261 getaktet wird. Das Schieberegister 801 konvertiert
das serielle PHY DATA Signal 270 in ein PARALLEL RX DATA
Signal 802. Das PARALLEL RX DATA Signal 802 wird
als Eingang in einen LPaket-Byte-Zähler 803 und
ein dreistufiges Pipeline-Register 804 angelegt.
-
Die
Daten- und Steuer-Pipeline 800 "verfolgt" den Fortschritt des eingehenden MAC-Frame 21,
während
dieser empfangen wird. Der Frame beginnt mit einer Aktivierung des
RX READY Signals 166 durch das Modem 140. Danach
wird jedes LPaket durch Zwischenspeichern des Größenfeldes des LPakets im LPaket-Byte-Zähler 803 als
Reaktion auf das ENABLE SIZE LOAD Signal von einer Pipeline-Steuerzustandsmaschine 806 verfolgt.
Die Pipeline-Steuerzustandsmaschine 806 empfängt das
RX READY Signal 166, das BIT CLOCK Signal 261 und das
BYTE PULSE Signal 151 vom Modem 140. Die Pipeline-Steuerzustandsmaschine 806 verwendet diese
Eingangssignale zum Zeitsteuern des Auftretens verschiedener Felder
im eingehenden PHY DATA Signal 270 und zum Ausgeben der
entsprechenden Steuersignale an den LPaket-Byte-Zähler 803 und
die Pipeline-Register 804. Der LPaket-Byte-Zähler 803 legt
ein Signal 807 an, das der Pipeline-Steuerzustandsmaschine 806 sagt,
wenn die Zahl der eingehenden Bytes des PHY DATA Signals 207 anzeigt,
dass ein LPaket vollständig
empfangen wurde. Dieses LPaket-Vollständigkeitssignal 807 veranlasst
die Pipeline-Steuerzustandsmaschine 806,
das entsprechende END LPACKET Signal an das Pipeline-Register 804 auszugeben.
-
Gemäß den 15 und 16 ist
das Pipeline-Register 804 ein dreistufiges Schieberegister, das
die eingehenden Daten- und Steuersignale parallel verarbeitet und
die Daten als Reaktion auf das BYTE CLOCK Signal 262 durch
jede Stufe verschiebt. Während
des Verschiebens der eingehenden Daten durch das Register 804 wird
der Inhalt jeder Stufe anderen Komponenten des SMAC-Systems zur
Verfügung
gestellt. Der Ausgang der ersten Stufe des Pipeline-Registers 804 ist
mit einem Satz von Datengattern zum RISC-Bus 180 verbunden,
um vom RISC-Prozessor 400 gelesen zu werden. Der Ausgang
der zweiten Stufe des Pipeline-Registers, Level "B" genannt,
wird über
den Bus 808 an einen ersten Dateneingang einer Empfangs-Screening-Schaltung 810 angelegt.
Der Level "B" Bus 808 führt auch
das END LPACKET Signal, das durch die ersten beiden Stufen des Pipeline-Registers
getaktet wurde, und Signale, die durch eine individuelle AND-Verknüpfung des
RX READY Signals mit dem START FRAME Signal und dem START LPACKET Signal
abgeleitet wurden, die durch die ersten beiden Stufen des Pipeline-Registers 804 getaktet
wurden. Diese drei Level "B" Steuersignale werden
auch durch die dritte Stufe des Pipeline-Registers 804 zusammen
mit dem TX BUSY Signal 182 aus der zweiten Stufe getaktet.
Das END FRAME Signal von der Pipeline-Steuerzustandsmaschine 806 wird
direkt an einen Eingang der dritten Stufe der Pipeline-Register 804 angelegt.
Der Inhalt der dritten Stufe des Pipeline-Registers 804 wird
an einen Level "C" Bus 809 angelegt,
der mit einem zweiten Eingang der Empfangs-Screening-Schaltung 810 und
mit einem Eingang der RX-Router-Schaltung 812, verbunden
ist. Das Pipeline-Register 804 ermöglicht es, dass der RISC-Prozessor 400 die
eingehenden Daten über den
RISC-Bus 180 empfängt,
bevor die Daten an den Eingängen
der Empfangs-Screening-Schaltung 810 und
dem RX-Router 812 verfügbar
werden. So ergibt sich ein Startvorsprung von einem Byte gegenüber dem
Betrieb des RISC-Prozessors in Bezug auf den Betrieb dieser letzteren
beiden Komponenten 810 und 812.
-
Gemäß 15 ist
der RX-Router 812 in der Empfangsverarbeitungsschaltung 142 für das Speisen
der eingehenden Daten- und relevanten Steuersignale in die Empfangs-FIFO-Speicher
der Host-Schnittstelle 143 (siehe 5B) verantwortlich. Die
empfangenen Daten werden vom RX-Router 812 über den
RX-Byte-Ausgangsbus 170 zusammen mit den Steuersignalen über den
RX FIFO Steuerbus 171 zur Host-Schnittstelle 143 gesendet.
-
Der
RX-Router 812 verarbeitet zwar alle vom SMAC 100 von
dem Netz 10 empfangenen LPakete, aber über die Verbindung 813 von
der Empfangs-Screening-Schaltung 810 empfangene Steuersignale
ermöglichen
die Auswahl nur derjenigen LPakete, die für den Host-Prozessor 102 von
Interesse sind (5A). Die Annahme von LPaketen
wird von drei Quellen gesteuert: einem Universal-Screener, einem
festen Screener und einem externen Screener. Der Universal-Screener wird praktisch
ausschließlich von
einem Schaltkomplex in der Empfangs-Screening-Schaltung 810 mit
minimaler Beteiligung des RISC-Prozessors 400 implementiert.
Zu diesem Zweck führt
die Empfangs-Screening-Schaltung 810 eine
Tabelle der zu akzeptierenden LPaket-Etiketten. Der feste Screener
dient zum Identifizieren spezifischer LPakete, wie z. B. das Moderator-LPaket,
die Netz- oder Stationsmanagementinformationen enthalten. In einem
großen
Ausmaß erfolgt
das feste Screening durch den RISC-Prozessor 400 als Reaktion
auf Daten- und Steuersignale, die von der Empfangs-Screening-Schaltung 810 erzeugt
werden, und das externe Screening erfolgt außerhalb des SMAC 100.
Der feste Screener ist zwar mit Etiketten von Interesse vorprogrammiert,
aber die Etiketten, nach denen die Universal- und externen Screener
suchen, werden vom Benutzer definiert.
-
Beim
Empfangen eines LPakets wartet ein Screener-Koordinator in der Empfangs-Screening-Schaltung 810 auf
eine Antwort von den drei Screening-Quellen und antwortet damit,
dass er eine Entscheidung darüber
trifft, ob er das LPaket akzeptiert. Ein ACCEPT LPACKET Signal wird
vom Screener-Koordinator über
den Bus 810 an den RX-Router 812 angelegt, wenn
das LPaket für
den Host-Prozessor 102 von Interesse ist. Die Empfangs-Screening-Schaltung 810 analysiert
auch die eingehenden Daten- und Steuersignale, um entweder ein SELECT MAIN
oder ein SELECT AUX Signal zu erzeugen. Diese letzteren Signale
werden vom RX-Router zur Host-Schnittstelle 143 geleitet,
um auszuwählen, welcher
Empfangs-FIFO (RX MAIN oder RX AUX) in der Host-Schnittstelle die Daten empfangen wird.
Zu Beginn jedes LPakets werden die SELECT MAIN und SELEC AUX Signale
aktiv und beide Empfangs-FIFOs beginnen, die LPaket-Daten zu speichern,
bis einer der Screener das LPaket akzeptiert. Wenn eine Entscheidung
getroffen wird, welcher Empfangs-FIFO
die Daten speichert, dann wird der andere Empfangs-FIFO von einem Signal
auf dem RX FIFO Steuerbus 171 deaktiviert. Wenn das LPaket
endet, ohne akzeptiert zu werden, dann wird vorgabemäßig ein
NO ACCEPTANCE Signal zur Host-Schnittstelle 143 gesendet,
die damit reagiert, dass sie den FIFO-Inhalt verwirft. Auf diese
Weise wählt
die Empfangs-Screening-Schaltung 810 diejenigen LPakete
mit Etiketten aus, die die Screener programmgemäß erkennen sollen.
-
MAC-Host-Schnittstelle
-
Gemäß den 5A und 5B verbindet die
SMAC-Host-Schnittstelle 143 die
Sende- und Empfangsverarbeitungsschaltungen 141 und 142 mit dem
Host-Prozessor 102.
Die Host-Schnittstelle 143 wird vom Host-Prozessor 102 benachrichtigt,
wenn dieses Gerät
Daten für
die Übertragung über das Netz 10 hat.
Der SMAC 100 empfängt
die Daten über den
Host-Bus 101, und die Daten werden in einen der Sende-FIFOs
TX A, TX B oder TX C gemäß Designation
durch Steuersignale gesetzt, die den Daten vorangehen. Die Sende-FIFOs
fungieren als Datenpuffer und sind nicht groß genug, um ein typisches LPaket
zu speichern. Die Host-Schnittstelle 143 ist so konfiguriert, dass
sie auf die im Host-Prozessorspeicher gespeicherten Übertragungsdaten
entweder durch einen Direktspeicherzugriff-(DMA)-Controller im Host-Prozessor 102 oder
dadurch zugreift, dass sie fordert, dass der Host-Prozessor die Zufuhr
von Daten in dem Maße
steuert, in dem die Sende-FIFOs leer werden. Wenn der SMAC 100 Zugang
zum Netzwerk 10 erhält,
dann erhält
die Sendeverarbeitungsschaltung 141 Datenworte von dem
entsprechenden Sende-FIFO wie oben beschrieben.
-
Wenn
der SMAC 100 einen Meldungsframe vom Netz empfängt, dann
setzt die Empfangsverarbeitungsschaltung 142 jedes eingehende
LPaket in die Empfangs-FIFOs (RX MAIN und RX AUX). Wenn ein Screener
ein bestimmtes LPaket als von Interesse identifiziert, dann überträgt die Host-Schnittstelle 143 den
FIFO-Inhalt zum Host-Prozessor 102. Wenn an einem bestimmten
LPaket keiner der Screener interessiert ist, dann werden die Daten
aus den Empfangs-FIFOs
geleert.
-
Gemäß 17 empfängt die
Host-Schnittstelle 143 Signale vom Host-Prozessor 102 über den Host-Bus 101,
der Adress-, Daten- und Steuersignalleitungen umfasst. Der Host-Bus 101 ist über einen Satz
von Tristate-Datengattern 870 mit dem gepufferten Host-Bus 174 gekoppelt.
Der Host-Prozessor 102 speichert
Konfigurations- und andere Betriebsinformationen in einem Satz Steuerregister 868.
Zum Beispiel, vor dem Senden der Daten der Host-Schnittstelle 143 zur Übertragung
speichert der Host-Prozessor 102 Informationen in den Steuerregistern 868, um
die Charakteristiken jedes der drei Sendeströme zu konfigurieren (in den
FIFOs TX A, TX B oder TX C gespeichert). Eine Charakteristik ist
die, ob ein Strom geplante oder ungeplante Daten für die Übertragung während der
geplanten Phase 52 bzw. der ungeplanten Phase 54 enthalten
soll. Diese Information wird von der Host-TX- FIFO-Logikschaltung 854 zum
Decodierschaltkomplex 840 übertragen. Der Host-Prozessor 102 speichert
auch Steuerinformationen in einer Host-TX-Logikschaltung 854,
um der Sendeverarbeitungsschaltung 141 über den TX STREAM STATUS Bus 185 zu
signalisieren, dass Daten auf die Übertragung warten.
-
Die
Daten vom Host-Bus 101 werden durch einen Cache-Speicher 845 in
den Decodierschaltkomplex 840 gesendet, der auf die Steuerinformationen
dadurch reagiert, dass er die Daten zum bezeichneten Sende-FIFO
(TX A, TX B oder TX C) leitet. In der Praxis wird das Trio aus Sende-FIFOs 841, 842 und 843 mit
konventionellen Techniken in einem Arbeitsspeicher (RAM) 844 ausgeführt. Insbesondere
wird eine Gruppe von Speicherstellen im RAM 844 für jeden
FIFO abgestellt, und ein weiterer Satz Speicherstellen enthält Zeiger
auf Speicherstellen, die die Anfangs- und Endobjekte von Daten in
diesem FIFO enthalten. Der Ausgang jedes Sende-FIFO 841–843 ist über den
Bus 850 mit der Stream-Auswahlsteuerschaltung 853 verbunden.
-
Wie
zuvor beschrieben, wählt
die Sendeverarbeitungsschaltung 141, wenn sie verlangt,
dass ein Datenwort über
das Netz gesendet wird, einen der Sende-FIFOs 841–843 durch Anlegen
von Steuersignalen an den Auswahl-TX-Stream-Bus 186 aus. Diese
Auswahlsignale werden an die Stream-Auswahlsteuerschaltung 853 in
der Host-Schnittstelle 143 angelegt,
und die Stream-Auswahlsteuerschaltung 853 reagiert
durch Ausgeben von Signalen an den entsprechenden Sende-FIFO 841, 842 oder 843, um
das nächste
Datenwort zu erhalten. Nach dem Empfang des TAKE WORD Signals 188 von
der Sendeverarbeitungsschaltung 141 leitet die Select-Stream-Steuerschaltung 853 den
Zeiger des jeweiligen Sende-FIFO 841–843 zum nächsten Datenwort.
-
Wenn
Daten vom SMAC 100 vom Netzwerk 10 empfangen wurden,
dann sendet die Empfangsverarbeitungsschaltung 142 die
zuvor beschriebenen Steuersignale über den RX FIFO Steuerbus 171.
Wie in 17 gezeigt, ist der RX FIFO
Steuerbus 171 mit einer Verteiler- und Steuerschaltung 860 verbunden, die
auch die empfangenen Daten über
den RX BYTE Bus 170 empfängt. Die Verteiler- und Steuerschaltung 860 reagiert
auf die eingehenden Signale dadurch, dass sie beide Empfangs-FIFOs
(MAIN und AUX) 863 und 864 zum Senden von Steuersignalen über einen
FIFO-Bus 862 freigibt. Jedes der Bytes des eingehenden
LPakets wird zu diesem Zeitpunkt in beiden Empfangs-FIFOs 863 und 864 gespeichert. Die
Empfangs-FIFOs 863 und 864 werden im RAM 844 auf
dieselbe Weise implementiert wie die Sende-FIFOs.
-
Danach
kann die Verteiler- und Steuerschaltung 860 ein Signal
auf dem RX FIFO Steuerbus 171 empfangen, das anzeigt, dass
ein Screener ermittelt hat, dass das LPaket für diesen Knoten 20 von
Interesse ist. In diesem Fall zeigt das Screener-Signal an, welcher
der beiden Empfangs-FIFOs 863 oder 864 die
Daten aufnehmen soll, und die Verteiler- und Steuerschaltung 860 reagiert
dadurch, dass sie das Ende des Datenzeigers für den nicht selektierten Empfangs-FIFO
zurücksetzt,
wodurch diese Daten verworfen werden. Die Steuerschaltung 860 reagiert auch
dadurch, dass sie einen Interrupt-Generator 866 freigibt,
der ein Interrupt-Signal über
den Host-Bus 101 sendet, der dem Host-Prozessor 102 anzeigt,
dass interessante Daten empfangen wurden, und der anzeigt, welcher
der beiden Empfangs-FIFOs 863 oder 864 die Daten
enthält.
-
Der
Host-Prozessor 102 reagiert auf das Interrupt-Signal dadurch, dass
er die Daten von dem vorgegebenen Empfangs-FIFO 863 oder 864 erhält. Ein
Paar Cache-Speicher 871 und 872 verbinden die Empfangs-FIFOs
mit dem Host-Bus 101 und ermöglichen es so, dass Daten von
einem FIFO abgerufen werden, während
zusätzliche
empfangene Daten von der Verteiler- und Steuerschaltung 860 gespeichert werden.
-
Andererseits,
wenn keiner der Screener anzeigt, dass das derzeitige LPaket von
Interesse ist, dann setzt die Verteiler- und Steuerschaltung 860 das
Ende von Datenzeigern für
beide Empfangs-FIFOs 863 und 864 zurück, so dass
sie mit ihrer Anfangsdatenstelle übereinstimmen, wodurch die zuvor
empfangenen Daten aus den FIFOs effektiv entleert werden.