-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Die
Erfindung bezieht sich auf die Telekommunikation. Insbesondere bezieht
sich die Erfindung auf Verfahren und Vorrichtungen zum Desynchronisieren
eines DS-3-Signals und/oder eines E3-Signals aus dem Datenabschnitt eines
STS/STM-Nutzsignals.
-
2. Stand der Technik
-
Seit
den frühen
1960er Jahren sind drei verschiedene digitale Multiplex- und Signalisierungshierarchien
auf der ganzen Welt entstanden. Die Hierarchien wurden in Europa,
Japan und Nordamerika entwickelt. Glücklicherweise basieren alle
auf derselben Impulscodemodulation (PCM) Signalisierungsrate von
8000 Abtastungen pro Sekunde, was zu Abtastschlitzen von 125 Mikrosekunden
(1 Sekunde/8000 Abtastungen = 0,000125) führt. Japan und Nordamerika
stützen
ihre Multi-plexhierarchien auf die DS-1-Rate von 1,544 Mbit/sek ± 20 ppm,
obwohl die höheren
Datenraten in Japan nicht den höheren
Raten in Nordamerika entsprechen. Europa stützt das Multiplexen auf eine
Rate von 2,048 Mbit/sek, genannt E1, die 30 Sprachkanäle enthält im Vergleich zu
den 24 in der DS-1-Rate. Die nächsten
am häufigsten
verwendeten Raten in den USA und Europa sind DS-3 bzw. E3, die Raten
von 44,736 Mbit/sek ± 20
ppm bzw. 34,368 Mbit/sek ± 20
ppm aufweisen.
-
Das
in Europa bekannte SONST (Synchronous Optical Network) oder die
SDH (Synchronous Digital Hierarchy) ist ein übliches Transportschema, das
entworfen wurde, sowohl DS-1- und E-1-Verkehr als auch Vielfache
davon abzudecken. Entwickelt in den frühen 1980er Jahren, hat SONST
eine Basis (STS-1) Rate von 51,84 Mbit/sek in Nordamerika. In Europa
beträgt
die Basis (STM-1) Rate 155,520 Mbit/sek, äquivalent zur STS-3-Rate in
Nordamerika (3 × 51,84
= 155,520). Die Abkürzung
STS bedeutet Synchronous Transport Signal und die Abkürzung STM
bedeutet Synchronous Transport Module. STS-n-Signale werden auch
als OC-n-Signale (Optical Carrier Signals) bezeichnet, wenn sie
nicht elektrisch, sondern optisch übertragen werden.
-
Die
den Stand der Technik betreffenden Zeichnungen 1 und 2 zeigen
das Basis STS-1-Signal, das eine Rahmenlänge von 125 Mikrosekunden (8000
Rahmen pro Sekunde) hat und als Rahmen von 810 Oktetten (9 Zeilen × 90 Bytes breite
Spalten) organisiert ist. Es ist zu erkennen, dass 8000 Rahmen × 810 Oktette
pro Rahmen = 51,84 Mbit/sek ist. Die ersten drei Spalten jeder Zeile bestehen
aus dem Transport-Overhead (TOH). Von diesen 27 Oktetten werden
9 dem Sektions-Overhead und 18 dem Linien-Overhead zugeordnet. Der Rest
des Rahmens (9 Zeile von 87 Spalten = 783 Oktette) wird als die
Hülle oder
SPE (Synchronous Payload Envelope) oder in Europa als Virtual Container bezeichnet.
Die erste Spalte der Hülle
ist für
den STS-Pfad-Overhead (POH) reserviert und wird als der Transportteil
der Hülle
bezeichnet. Die verbleibenden 86 Spalten werden als der Benutzerteil
der Hülle
bezeichnet. Die Unterschiede zwischen Pfad-Overhead, Linien-Overhead
und Sektions-Overhead sind in 3 gezeigt.
Pfad stellt den vollständigen
Transit durch das SONET-Netzwerk dar. Linie stellt den Transit von
einem Multiplexer zu einem anderen dar und Abschnitt stellt den
Transit von einem Netzwerkelement zu einem anderen dar.
-
Um
Daten wirksam in dem SPE anzuordnen, werden die 87 Bytes des SPE
in drei Blöcke
von je 29 Spalten eingeteilt. Der POH beansprucht Spalte 1, und
Füll-Bytes („stuff
bytes”,
die keine Information transportieren) werden in die 30. und 59.
Spalte eingesetzt. Daten sind in den verbleibenden 3 × 28 = 84 Spalten
= 756 Bytes enthalten. Ein STS-n-Signal sind n STS-1-Signale, die
in Rahmen ausgerichtet und Byte-verschachtelt sind. Derzeit ist
das STS-Signal der höchsten
Ebene STS-192 und hat eine Linienrate von 9953,28 Mbit/sek.
-
Diese
verschiedenen synchronen optischen Netzwerksignale enthalten Nutzsignal-Pointer
(Stand der Technik 2), die ein Verfahren bieten,
das eine flexible und dynamische Ausrichtung des SPE (Virtual Container)
innerhalb der Hülle
oder der Container-Kapazität
erlaubt, und zwar unabhängig
von den tatsächlichen
Inhalten der Hülle
oder des Containers. Dynamische Ausrichtung bedeutet, dass es dem STS
oder STM ermöglicht
wird, gegenüber
SPE oder Virtuellem Container innerhalb der Hüllenkapazität/des Hüllenbehältnisses vom STS/Virtual Container
zu floaten. Wie zum Beispiel in 4 des Standes
der Technik gezeigt, kann STS-1 SPE irgendwo in der STS-1 Hüllenkapazität beginnen.
Typischerweise wird es in einem STS-1-Rahmen beginnen und in dem
nächsten
Rahmen enden, wie in der 4 des Standes der Technik gezeigt.
Der STS-Nutzsignal-Pointer ist in den Bytes H1 und H2 (den ersten beiden
Bytes) des Linien-Overhead (2 des Standes
der Technik) enthalten. Diese beiden Bytes bezeichnen die Lage des
Nutzsignal-Bytes (das Byte J1), an dem STS SPE beginnt.
-
Wenn
es zum ersten Mal erzeugt wird, wird ein SPE mit dem Linien-Overhead
an den ursprünglichen
Knoten (d. h. der Pointerwert ist Null) ausgerichtet. Wenn der Rahmen
durch ein Netzwerk übertragen
wird, trifft er jedoch auf dazwischen liegenden Knoten (z. B. Multiplexern
oder Querverbindungen), die eine arbiträre Phase gegenüber dem
herausgehenden Transportrahmen der dazwischen liegenden Knoten aufweisen.
Wenn der SPE mit dem herausgehenden Signal rahmenmäßig ausgerichtet
werden müsste,
müsste
der Rahmen gepuffert und verzögert werden.
Somit erlaubt es die Vermeidung einer Rahmenausrichtung, SPEs auf
ankommenden Verbindungen unmittelbar ohne künstliche Verzögerung an herausgehende
Verbindungen weiterzugeben. Die Lage der SPE in der herausgehenden
Nutzsignalhülle
wird durch Setzen des Pointers H1, H2 auf den geeigneten Wert (0
bis 782) spezifiziert. Die Pointerwerte werden an jedem dazwischen
liegenden Knoten des Netzwerks zurückgesetzt.
-
Besteht
ein Frequenz-Offset zwischen der Rahmenrate des Transport-Overhead
und der des STS SPE, dann wird darüber hinaus der Pointerwert, wenn
notwendig, inkrementiert oder dekrementiert, begleitet durch ein
entsprechendes positives oder negatives Füllbyte. Ist die Rahmenrate
des STS SPE zu langsam gegenüber
dem Transport-Overhead, dann muss die Ausrichtung der Hülle periodisch
zeitlich zurückgesetzt
werden und der Pointer muss um Eins erhöht werden. Dieser Vorgang wird
durch Invertieren ausgewählter
ungerader Bits (I-Bits)
des Pointerwortes angezeigt, um eine Fünf-Bit Mehrheitsentscheidung
im Empfänger
zu ermöglichen. Ein
positives Füllbyte
tritt unmittelbar nach dem Byte H3 in dem Rahmen auf, der die invertierten
I-Bits enthält.
Nachfolgende Pointer werden den neuen Offset-Wert haben. Aufeinander
folgende Pointer-Vorgänge
müssen
durch mindestens drei Rahmen, in denen die Pointer-Werte konstant bleiben,
voneinander getrennt sein. Dies impliziert, dass eine breite Toleranz
der Taktgenauigkeit erforderlich ist, um die SPE-Daten aufrecht
zu erhalten, d. h. ± 320
ppm. Im Vergleich dazu ist ein SONET-Knoten spezifiziert, eine minimale
Taktgenauigkeit von ± 20
ppm aufrecht zu erhalten, wenn er seine Referenz verliert.
-
Ist
die Rahmenrate des STS SPE zu schnell gegenüber der des Transport-Overheads, dann muss die
Ausrichtung der Hülle
in der Zeit periodisch beschleunigt werden und der Pointer muss
um 1 erniedrigt werden. Dieser Vorgang wird durch Invertieren ausgewählter gerader
Bits (D-Bits) des Pointer-Wortes
angezeigt, um eine Fünf-Bit
Mehrheitsentscheidung im Empfänger
zu ermöglichen.
Ein negatives Füllbyte
tritt in dem Byte H3 in dem Rahmen auf, der die invertierten D-Bits
enthält.
Nachfolgende Pointer werden den neuen Offset-Wert haben.
-
Beide
SONET- und SDH-Standards definieren einen Mechanismus des Mapping
des DS-3- oder E3-Signals in das SONET/SDH-Nutzsignal. Beim DS-3
wird ein positives Füllbit
definiert, in dem jede der 9 Zeilen 622 Bitpositionen enthält, einschließlich einem
Bit, das Daten oder Füllung
enthalten kann. Eine Frequenz von 44,736 MHz wird erreicht, wenn ein
Drittel der Zeilen 621 Informationsbits und ein Füllbit enthält, und
zwei Drittel der Zeilen 622 Informationsbits und keine Füllbits enthält. Beim
E3 wird ein Positiv-Null-Negativ-Mapping-Mechanismus benutzt mit
zwei Füllmöglichkeiten
für je
drei Zeilen. Zwei Zeilen von 477 Bits und eine Zeile von 478 Bits transportieren
ein 34,386 MHz-Signal. Hinzufügen
eines zusätzlichen
Datums oder einer zusätzlichen Füllung ermöglicht transportierte
Flexibilität.
-
Somit
ist zu erkennen, dass ein SONET/SDH-Signal, das ein DS-3- oder ein
E3-Signal trägt, Overhead-Bytes,
Füllbytes
und andere Steuerinformation enthält. Wenn das DS-3- oder E3-Signal aus
dem SONET/SDH-Signal extrahiert wird, müssen diese zusätzlichen
Bytes herausgezogen werden, wodurch Lücken in dem 51,84 MHz-Takt
des extrahierten Signals entstehen. Diese „lückenhaften" DS-3- oder E3-Signale müssen wiederhergestellt werden
in ein langsameres (44,736 MHz bzw. 34,368 MHz) Signal ohne Lücken. Dieser
Prozess wird im Allgemeinen als „Desynchronisierung" bezeichnet.
-
Eine
Vorrichtung nach dem Stand der Technik, die unter anderem DS-3- und/oder E3-Signale desynchronisiert,
die aus einem SONET/SDH-Signal extrahiert wurden, ist die Vorrichtung
Transwitch(R) L3M(TM)(level 3 mapper). Die Vorrichtung L3M(TM) enthält einen
Desynchronisierer mit zwei Abschnitten: einer Pointerleck-Schaltung
und einer PLL-Schaltung. Die Pointerleck-Schaltung absorbiert den
unmittelbaren Effekt von bis zu 8 aufeinander folgenden Pointerbewegungen
(irgendeine Kombination von SPE- oder TUG-3-Pointerbewegungen) in der einen oder
anderen Richtung und filtert sie über die Zeit aus. Eine einzelne
Pointerjustierung ist ein 8 Einheitenintervall (UI) Phasenschritt.
Die Pointerleck-Schaltung wandelt den Phasenschritt in acht 1-UI-Schritte um, zeitlich
in großem
Abstand, und erlaubt der PLL-Schaltung, der Spur zu folgen. Im normalen
Betrieb hat das Ausgangssignal ein Datenbit und einen Taktzyklus
für jedes
Eingangsbit. Wenn eine negative Füllung auftritt, werden acht
zusätzliche
Bits aus dem Signal gezogen und absorbiert. Nach diesem Vorgang
fährt der
normale Betrieb fort mit ein Bit hinein für ein Bit heraus, ausgenommen, dass
für je
n Rahmen ein zusätzliches
Bit aus dem FIFO gezogen wird. In dieser Weise entleert sich der Pointerschritt
bei 8 n Rahmen, wobei der Wert n programmierbar ist. Die PLL-Schaltung
des Desynchronisierers ist extern über ein externes Filter mit
einem durch eine Linienfrequenz gesteuerten Quarzoszillator (VCXO)
verbunden. Diese Anordnung ist dazu ausgebildet, den Jitter des
asynchronen Linienausgangssignals zu begrenzen, der aufgrund des
Signalmapping und der Pointerbewegungen auftritt.
-
Der
Desynchronisierer nach dem Stand der Technik hat verschiedene Nachteile.
Zum Beispiel erfordert er einen externen VCXO, und die Pointerleckrate
muss durch einen externen Prozessor berechnet werden.
-
US 5 548 534 beschreibt
einen zweistufigen Desynchronisierer, der dazu ausgebildet ist,
mit Lücken
versehene Datenkomponenten eines STS-3C (STM-1)-Signals zu empfangen
und dafür
ein DS-4NA(E4)-Datensignal ohne Lücken zur Verfügung zu
stellen.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Der
vorliegenden Erfindung liegt daher die Aufgabe zugrunde, Verfahren
und Vorrichtung zum Desynchronisieren eines DS-3/E3-Signals aus
dem Datenabschnitt eines SONET/SDH-Signals vorzuschlagen.
-
Außerdem ist
es eine Aufgabe der Erfindung, Desynchronisierungsverfahren und
-vorrichtungen vorzuschlagen, die keinen externen Oszillator benötigen.
-
Eine
andere Aufgabe der Erfindung besteht darin, Desynchronisierungsverfahren
und -vorrichtungen vorzuschlagen, die keine externe Logik benötigen, um
die Pointerleckrate zu berechnen.
-
Eine
weitere Aufgabe der Erfindung besteht darin, einen vollständig internen
Desynchronisierer zu schaffen, der alle Netzwerkerfordernisse erfüllt, z. B.
bezüglich
Jitter und Wanderungen.
-
Eine
andere Aufgabe der Erfindung besteht darin, eine Desynchronisier-Schaltung zu schaffen, die
weniger Chip- und Platinenfläche
benötigt
und kosteneffektiver ist.
-
Nach
der vorliegenden Erfindung wird eine Vorrichtung nach dem Anspruch
1 vorgeschlagen.
-
Wie
nachfolgend noch beschrieben wird, enthält ein Desynchronisierer nach
der vorliegenden Erfindung drei Abschnitte: einen Abschnitt für eine Leck-
und Abstandsbildungsfunktion, einen geschlossenen Schleifenabschnitt
basierend auf einem digital geregelten Oszillator (DCO) und einen
Analogausgangsabschnitt. Die ersten beiden Abschnitte enthalten
ein erstes FIFO, das in einer speziellen Weise gemeinsam benutzt
wird. Das FIFO enthält
ein RAM und zwei Zähler.
Ein Schreibzähler
liefert die ankommende Bitschreibadresse und wird für jedes
in das FIFO eingegebene Bit indexiert. Ein Lesezähler liefert die Adresse für das auszulesende
Bit und wird durch den DCO-Takt indexiert. Eine Zwischenzählwert-
oder Ortsberechnung wird synchron mit der empfangenen SONET/SDH-Rahmenphase
(auf einer Zeilenbasis oder anders) indexiert und definiert die
Grenze (Ort) zwischen zwei Teilen des FIFO, d. h. dem Leck abstandsabschnitt
des FIFO und dem DCO-basierten geschlossenen Schleifenabschnitt des
FIFO. Längenmessungen
sowohl der FIFO-Teile als auch die Berechnung des dazwischen liegenden Zählwertes
werden synchron mit der empfangenen SONET/SDH-Rahmenphase (vorzugsweise
auf einer Zeilenbasis) durchgeführt.
Die Kombination der Synchronität
der zwei Messungen und der Berechnung, zusammen mit der Größe der Inkremente,
wie nachfolgend beschrieben, reduzieren deutlich die Auswirkung
der Phasenstörungen
auf den SONET/SDH-Overhead.
-
Die
ersten beiden Abschnitte beliefern den dritten Abschnitt mit einem
DS-3/E3-Signal mit einer Hochfrequenz-Phasenmodulation bekannter
Charakteristik. Im Wesentlichen alle der niederfrequenten Komponenten,
einschließlich
SONET/SDH-systematischer Lücken,
werden durch die beiden ersten Abschnitte entfernt. Der dritte Abschnitt
ist eine Glättungsstufe,
die eine PLL mit einem zweiten FIFO mit Lese- und Schreibzähler, einen
Phasen-Frequenz-Detektor
und einen internen VCO, der durch die Längenmessungen des zweiten FIFO
analog gesteuert wird, enthält.
Die zweite Stufe entfernt im Wesentlichen den Hochfrequenz-Lücken-Jitter
(etwa 3,42 MHz).
-
Nach
der derzeit bevorzugten Ausführungsform
wird eine feste Frequenz von 51,84 MHz aus dem 19,44 MHz STS-3 oder
STM-1 Takt über
eine Multiplikation von 8 × und
eine /3 Division abgeleitet. Das erste FIFO ist vorzugsweise ein
768-Bit-RAM und die beiden Zähler
(Schreiben und Lesen) sind vorzugsweise je 10 Bit lang. Daten gelangen
in das erste FIFO von einem SONET/SDH-Demapper, der die SONET/SDH-Overhead
und irgendwelche Bits im Nutzsignal, die keine DS-3/E3-Daten darstellen,
entfernt. Solche Daten gelangen in das FIFO mit einem mit Lücken versehenen
Takt von 51,84 MHz, wobei die Lücken
die fehlenden Taktimpulse darstellen, während der keine Daten in das
FIFO gelangen. Dieser Eingangstakt, der mit Lücken versehen ist, wird benutzt,
um sowohl den Schreibzähler
zu indexieren als auch als eine Pointerlecksteuerungs- und Abstandsbildungsfunktion
durchzuführen.
Der Lesezähler
andererseits wird durch einen DCO-Lücken-Takt indexiert (die Lücke ist
in der Art eine Hochfrequenz). Der DCO-Lücken-Takt wird von dem 51,84
MHz Eingangs-Lücken-Takt über eine
geschlossene Schleifen-Abstandsbildungsschaltung abgeleitet, die
den Zwischenzählberechnungs-
und den Lesezähler
benutzt. Der Zwischenzählwert
wird vorzugsweise synchron mit der SONET/SDH-Zeilenzeit berechnet.
-
Insbesondere
wird der Zwischenzählwert
in einer Weise für
das DS-3-Signal inkrementiert und in einer anderen Weise für das E3-Signal.
Im Falle eines DS-3-Signals wird die exakte Frequenz von 44,736
MHz produziert, wenn drei Zeilen eines SONET-Rahmens eine Zeile
von 621 Datenbits und zwei Zeilen von 622 Datenbits enthalten. Diese
Bitrate wird durch Inkrementieren des Zwischenzählwertes entsprechend einer
Liste erreicht, die auch Pointerlecks und Füllungen berücksichtigt. Im Falle eines E3-Signals
wird die exakte Frequenz von 34,368 MHz produziert, wenn drei Zeilen
eines SONET-Rahmens eine Zeile von 478 Datenbits und zwei Zeilen von
477 Datenbits enthalten. Diese Bitrate wird durch Inkrementieren
des Zwischenzählwertes
entsprechend der Liste erreicht, die auch Pointerlecks und Füllungen
berücksichtigt.
-
Der
DCO erzeugt Takte mit Lücken
aus dem 51,84 MHz-Takt und aus einem Schleifensteuersignal. Der
DCO erzeugt nominell 10 oder 11 Ausgangsimpulse pro 16 Impulse des
51,84 MHz-Taktes in Falle eines E3-Signals und 13 oder 14 Ausgangsimpulse
pro 16 Impulse des 51,84 MHz-Taktes im Falle eines DS-3-Signals,
um den mit Lücken
vershenen Ausgabetakt zu erzeugen, der der Quellen-E3- oder -DS-3-Frequenz
folgt. Das genaue Impulsverhältnis wird
auf der Basis der Differenz (mod-256) zwischen dem Zwischenzählwert und
dem Lesezählerzählwert justiert.
Insbesondere die Differenz zwischen dem Lesezählwert und dem Zwischenzählwert wird
periodisch gelesen und über
acht Messungen gemittelt. Der Mittelwert wird als Zahl von 10 Bit
ausgedrückt und
einem Offset von 23 Bit hinzuaddiert, um das Schleifensteuersignal
zu produzieren. Das Schleifensteuerwort von 23 Bit wird einem Akkumulator
von 23 Bit und einem Latch von 23 Bit zugeführt. Der Akkumulator gibt eine
Summe von 23 Bit und einen Übertrag
aus. Das Latch speichert die Summe, und der Übertrag wird in einem Flip-Flop
gespeichert. Jedes Mal, wenn der DCO-Zähler 16 Impulse des 51,84 MHz-Taktes
durchläuft,
führt der
Akkumulator eine 23-Bit-Addition
des neuen Steuerwortes mit dem Inhalt des Latch durch. Die Frequenz
der Überträge hängt von
dem Wert des Steuerwortes ab. Wenn der Übertrag aktiv ist, lässt die
Impulserkennungsteuerung die niedrigere Anzahl von Impulsen pro
16 DCO-Taktimpulse passieren, d. h. 13 für DS-3 und 10 für E3. Dies
konvertiert den 51,84 MHz-Takt in den DCO-Takt mit Lücken, der
benutzt wird, um Daten aus der ersten Stufe des FIFO zu lesen.
-
Der
Schreibzählerzählwert und
der Zwischenzählwert
werden auch benutzt, um die Pointerbitlecks zu aktivieren. Der Leckabstand
basiert auf den beobachteten Pointerbewegungen sowohl über die
Zeit als auch über
die Länge
des ersten Abschnitts des FIFO, die durch die Differenz zwischen der
Schreibzähler-
und dem Zwischenzählwert
gegeben ist. Weicht die Länge
des ersten Teils des FIFO über
einen nominalen Längenwert
ab, werden Pointerlecks häufiger
aktiviert (negativ, wenn die Länge kleiner
als der Offset ist, und positiv, wenn die Länge größer als das Offset ist).
-
Die
dritte Stufe des Desynchronisierers gemäß der Erfindung enthält ein zweites
FIFO, das Daten von dem zweiten Abschnitt des ersten FIFO empfängt entsprechend
dem DCO-Ausgangstakt mit Lücken,
zugeordnete Schreib- und Lesezähler
und einen analogen Abschnitt. Der analoge Abschnitt enthält einen
Phasen-Frequenz-Detektor (PFD), ein Tiefpassfilter und einen analogen
VCO. Das MSB des Lesezählers
und des Schreibzählers
des zweiten FIFO (vorzugsweise ein 64-Bit-RAM) werden in den PFD
eingegeben. Die Aufwärts-
und Abwärts-Ausgangssignale
des PFD werden durch das Tiefpassfilter summiert, und die Summe
wird benutzt, um den internen analogen VCO zu steuern, der benutzt
wird, um Daten aus dem zweiten FIFO und somit aus dem Desynchronisierer
auszutakten.
-
Zusätzliche
Aufgaben und Vorteile der Erfindung werden dem Fachmann unter Bezug
auf die detaillierte Beschreibung in Verbindung mit den beigefügten Zeichnungen
klar.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
ein schematisches Diagramm der Struktur eines SONET-Signalrahmens
gemäß dem Dokument
Bellcore TA-TSY-00253 nach dem Stand der Technik;
-
2 ist
ein Diagramm der Overhead-Byte-Lokation in einem SONET-Signalrahmen gemäß dem Bellcore
TA-TSY-00253 Dokument nach dem Stand der Technik;
-
3 ist
ein schematisches Diagramm des Standes der Technik, das Pfad, Linie
und Sektionsabschluss eines SONET-Signals zeigt;
-
4 ist
ein schematisches Diagramm des Standes der Technik, das eine typische
Anordnung des SONET-Nutzsignals in zwei SONET-Signalrahmen zeigt;
-
5 ist
ein vereinfachtes Blockdiagramm einer Vorrichtung nach der Erfindung;
-
6 ist
ein vereinfachtes schematisches Flussdiagramm des Steuermusters
zur Abstandsbildung eines DS-3-Signals;
-
7 ist
ein vereinfachtes schematisches Flussdiagramm des Steuermusters
zur Abstandsbildung eines E3-Signals;
-
8 ist
ein vereinfachtes Blockdiagramm einer Pointerleckfunktion.
-
DETAILLIERTE BESCHREIBUNG
VON BEVORZUGTEN AUSFÜHRUNGEN
-
In 5 ist
gezeigt, wie der Desynchronisierer 10 gemäß der vorliegenden
Erfindung drei Abschnitte aufweist: einen Abschnitt 12 für eine Leck- und
Abstands-bildungsfunktion, der eine Vorfilterung durchführt, um
SONET-Lücken- und -Pointerbewegungen
im Wesentlichen zu entfernen, einen Filterabschnitt 14 mit
einem digital gesteuerten Oszillator (DCO) basierend auf einer geschlossenen
Schleife, um Niederfrequenz-Jitter im Wesentlichen zu entfernen,
und einen Endfilterabschnitt 16, der analoge Schaltungen
benutzt, um Hochfrequenz-Artefakte
im Wesentlichen zu entfernen.
-
Der
Abschnitt 12 für
eine Leck- und Abstandsbildungsfunktion enthält ein FIFO, der aus einem
Teil eines Dual-Port-RAM 18 mit vorzugsweise 768 Bit (der
mit dem zweiten Abschnitt 14 gemeinsam benutzt wird, wie
noch später
beschrieben), einem Schreibzähler 20,
einem Schreibzähler-Längenmessregister 22,
einer Pointerlecksteuer- und Abstandsbildungsfunktion 24 und
einem Zwischenzählwert-Längenregister
oder Rechenmittel 26 besteht, das vorzugsweise durch eine
Rechenschaltung oder Logik oder Software implementiert ist. Der
Teil des RAMs 18, der das Erststufen-FIFO bildet, ist der
Teil mit Adressen zwischen dem Schreibzählwert und dem Zwischenzählwert (modulo
768). Das Erststufen-FIFO hat eine Maximallänge von 512 Bits und einen
definierten Mittelpunkt von 256 Bits.
-
Der
erste Abschnitt 12 empfängt
Datenbits, Pointerbewegungsanzeigen, Füllungsanzeigen und die SONET/SDH-Rahmenphase
von einem DS-3/E3-Demapper (nicht gezeigt). Diese Signale schließen ausdrückliche
Anzeigen von positiven und negativen Pointerbewegungungen und DS-3/E3
Füllbit-Vorgängen ein
und empfangen auch eine Signalrahmenzeitgabe. Wie nachfolgend noch
im Detail beschrieben wird, werden diese ausdrücklichen Anzeigen durch die
Pointerlecksteuer- und Abstandsbildungsfunktion 24 benutzt,
um die Zwischenzählwert-Längenmessung 26 zu
indexieren.
-
Der
erste Abschnitt 12 empfängt
auch den mit Lücken
versehenen 51,84 MHz-Takt. Insbesondere empfängt das Erststufen-FIFO 18 nur
die demappten Daten, die durch den mit Lücken versehenen 51,84 MHz-Takt
in das FIFO eingetaktet werden. Der Schreibzähler 20 mit vorzugsweise
10 Bit wird bei jedem Bit, das in das FIFO 18 eingegeben
wird, indexiert (d. h. weitergeschaltet).
-
Wie
nachfolgend noch im Detail beschrieben wird, enthält der Filterabschnitt 14 mit
einem digital gesteuerten Oszillator (DCO) basierend auf einer geschlossenen
Schleife einen Teil desselben Dual-Port-RAM 18 mit 768
Bit, einen Lesezähler 28 mit 10
Bit, ein Lesezähler-Längenmessregister 30,
ein Differenz-Summierglied 32 zum
Bilden der Differenz zwischen der Zwischenzählwertmessung und der Lesezählwertmessung,
eine Mittelwertschaltung 34, ein Offset-Summierglied 36 und einen DCO 38.
Der DCO 38 enthält
einen Akkumulator 40 mit 20 Bit, ein Latch 42 mit
23 Bit und einen Impulsentfernungs-Controller 44. Der Teil
des Dual-Port-RAM 18 mit 768 Bit, der das FIFO für den zweiten
Abschnitt 14 des Desynchronisierers bildet, ist der Teil
mit einem Adresszähler
zwischen dem Zwischenzählwert
und dem Lesezählwert
(modulo 768). Der Zweck des Filterabschnitts 14 basierend
auf dem DCO mit geschlossener Schleife besteht darin, die niederfrequenten
Frequenz-Phasenschwankungen in dem wiederhergestellten Signal zu
entfernen, die aus dem ersten Abschnitt herrühren.
-
Wie
vorher erwähnt,
wird die Grenze in dem RAM 18 mit 768 Bit zwischen der
ersten und zweiten Stufe des Desynchronisierers als der Wert eines
Zwischenzählwertes
IC definiert. Gemäß der Erfindung wird
der IC in solcher Weise inkrementiert, dass die ankommenden Daten
verfolgt werden, aber auch um den größten Effekt der SONET-System-Lückenbildung
zu entfernen, wodurch die Aufgabe des zweiten Teils des Desynchronisierers
mit geschlossener Schleife erleichtert wird. IC-Wert-Inkremente
werden synchron mit der empfangenen SONET/SDH-Rahmenphase durchgeführt (auf
einer Zeilenbasis oder anders, wie nachfolgend angegeben), basierend
auf einem Algorithmus, dessen Elemente die Kenntnis einschließen, ob
DS-3- oder E3-Signale wiederhergestellt werden, ankommende Pointerbewegungen, empfangene
Füllbits
und die Länge
des Erststufen-FIFO (d. h. der Schreibzählwert minus dem Zwischenzählwert modulo
768). Daten werden „transferiert" von der ersten Stufe
des Desynchronisierers (Pointerleck-Abschnitt) an die zweite Stufe
(DCO-Abschnitt mit geschlossener Schleife), wenn der IC indexiert
wird. Anders ausgedrückt,
wenn ein IC indexiert wird, wird die Steuerung der indexierten Daten von
der ersten Stufe in die zweite Stufe bewegt.
-
In
jeder Zeile eines SONET STS-1-Signals sind 720 Bits (90 Bytes) pro
125 Mikrosekunden. Innerhalb jeder Zeile ist ein spezifizierter
Mechanismus zum Mappen eines DS-3- oder E3-Signals. Innerhalb jeder
Zeile sind außerdem
drei aufeinander folgende Bytes von STS-1-Overhead und ein Byte
von SPE/VC-4-Overhead. Keine Daten treten auf während dieser Byte-Zeiten, wodurch
das Lücken-Jitter entsteht.
Um den Lücken-Effekt
zu entfernen und die transportierte Trägerfrequenz eng anzupassen,
sieht die Erfindung einen internen Mechanismus vor zum Indexieren
des IC auf der Basis sowohl der empfangenen Lücken- und Pointerbewegungsinformation als
auch der SONET/SDH-Struktur. Dadurch, dass die Indizes der ICs synchron
mit der SONET-Rahmenfrequenz gemacht werden, aber mit einer höheren Rate
bei kleineren Inkrementen (z. B. auf einer Zeilenbasis oder einer
Teilzeilenbasis), wird der starke niederfrequente Effekt der SONET-Lücken deutlich
reduziert. Bei einer Ausführung
nutzt die Erfindung ein internes Zeitinkrement, T80, von 80 Bits
(10 Bytes), genau neunmal pro Zeile wiederholt, um eine Datenabstandsbildungsfunktion
durchzuführen.
Die Zeitbasis T80 wird von der lokalen Taktzeitbasis durch die Pointerleck-
und Abstandsbildungsfunktion 24 abgeleitet. Von dem lokalen
Takt von 19,44 MHz wird T80 durch jeden dritten Bustakt definiert.
Unter Benutzung der Zeitbasis T80 indexiert die Abstandsbildungsfunktionslogik
den Zwischenzählwert 22 durch
spezifizierte Beträge.
Die Beträge
sind 52, 53, 54, 55 oder 56 für
ein E3-Signal und 68, 69, 70 oder 71 für ein DS-3-Signal. Abhängig von
der Pointerbewegung (d. h. positive oder negative Pointerjustierung)
und dem Vorhandensein von Füllbits
wird der IC bei jedem T80 um einen ausgewählten Betrag dieser Beträge inkrementiert.
Dieses Inkrementieren erzeugt einen offensichtlichen Schritt der
momentanen FIFO-Länge,
hat jedoch keine Wirkung auf die Längenmessung, wie nachfolgend
zu sehen ist.
-
Bei
einer anderen Ausführung
wird der Zwischenzählwert
einmal pro empfangener SONET/SDH-Zeilenzeit (nominal 125/9 Mikrosekunden) indexiert.
In dieser Ausführung
wird der IC bei einem E3-Signal einmal in jeder Zeilenzeit durch
475, 476, 477, 478 oder 479 inkrementiert und bei einem DS-3-Signal
um 621, 622, 623 oder 624.
-
Die
DS-3-Frequenz (44,736 MHz) wird genau erzeugt, wenn 621 Bits pro
Zeile zweimal transferiert werden und 622 Bits pro drei Zeilen einmal transferiert
werden. Der DS-3-Füllalgorithmus
ist ein positiver Füllalgorithmus.
Das heißt,
dass das Signal überabgetastet
ist und eine Füllbitposition
existiert, die benutzt wird, um die Frequenz anzupassen. Das nominelle
DS-3-Abstandsmuster hat 621 Bits pro 720 (was bei Benutzung auch
gleich 69 Bits pro 80 Bits des Zeitinkrementzählers T80 ist).
-
In 6 und
unter Bezug auf die erste Ausführung
ist zu sehen, dass die Logik zum Inkrementieren des IC, um die DS-3-Frequenz
genau anzupassen, den IC für
die ersten acht Zyklen von T80 um 69 erhöht, wie durch 70 in 6 gezeigt
ist. Für
den neunten T80-Zyklus und für
jeden neunten Zyklus danach, wie bei 72 angezeigt, hängt das
Inkrementieren des IC von den Füllbit-Anzeigen
und den Pointerbewegungsanzeigen ab; wobei ersterer entsprechend Füllbitsignalen
verfolgt wird, die durch die Schaltung 24 von 5 empfangen
werden, und letzterer durch die Logik erzeugt wird, die im Detail
noch in Verbindung mit der 8 beschrieben
wird. Wird eine Füllbit-Anzeige
bei 74 festgestellt und ein positives Pointerleck bei 76 angezeigt,
wird der IC um 68 bei 78 inkrementiert. Wird eine
Füllbit-Anzeige
bei 74 festgestellt und kein Pointerleck bei 76 angezeigt,
wird der IC um 69 bei 80 inkrementiert. Wird eine Füllbit-Anzeige
bei 74 festgestellt und ein negatives Pointerleck bei 76 angezeigt,
wird der IC um 70 bei 82 inkrementiert. Wird keine Füllbit-Anzeige
bei 74 festgestellt und ein positives Pointerleck bei 84 angezeigt, wird
der IC um 69 bei 86 inkrementiert. Wird keine Füllbit-Anzeige
bei 74 festgestellt und kein Pointerleck bei 84 angezeigt,
wird der IC um 70 bei 88 inkrementiert. Wird keine Füllbit-Anzeige
bei 74 festgestellt und ein negatives Pointerleck bei 84 angezeigt, wird
der IC um 71 bei 90 inkrementiert.
-
In
der zweiten Ausführung
der Erfindung, bei der der IC einmal pro Zeile inkrementiert wird,
wird der IC um 620 inkrementiert, wenn eine Füllanzeige bei der letzten ankommenden
Zeile aktiv war und ein positives Bitleck angezeigt wurde. Der IC
wird um 621 inkrementiert, wenn eine Füllanzeige aktiv war und kein
Bitleck angezeigt wurde oder wenn die Füllanzeige inaktiv war und ein
positives Bitleck angezeigt wurde. Der IC wird um 622 inkrementiert,
wenn die Füllanzeige
inaktiv war und kein Bitleck angezeigt wurde oder wenn eine Füllanzeige
aktiv war, aber ein negatives Bitleck angezeigt wurde. Endlich wird
der IC wird um 623 inkrementiert, wenn eine Füllanzeige inaktiv war und ein
negatives Bitleck angezeigt wurde.
-
Die
E3-Frequenz (34,368 MHz) wird genau erzeugt, wenn 477 Bits pro Zeile
zweimal transferiert werden und 478 Bits pro drei Zeilen einmal.
Durch Variieren des Betrages von 477 und 478 wird genau an die E3-Frequenz
angepasst. Der E3-Füllalgorithmus
benutzt ein Füllschema
Positiv/Null/Negativ. Das heißt,
dass das Signal nominal genau genügend Bits in einem Muster enthält, um die
nominelle Frequenz anzupassen. Das E3-Mapping hat 480 Informationsbits
in zwei Zeilen und 472 ± 1
Informationsbit in der dritten Zeile eines Musters. Es bestehen
zwei Füllmöglichkeiten,
S1 und S2. Nominell wird eine Daten enthalten und eine wird Füllungen
enthalten, um 1432 Bits pro drei Zeilen zu transportieren, genau 34,368
MHz. Hieraus werden Füllbits
hinzugefügt oder
entfernt, um genau an die Frequenz anzupassen. Somit kann die Zeile
Null Füllbits
(S1 = Daten, S2 = Daten), ein Füllbit
(S1 = Füllung,
S2 = Daten oder S1 = Daten, S2 = Füllung) oder zwei Füllbits (S1 =
Füllung,
S2 = Füllung)
enthalten.
-
Das
E3-Nennabstandsmuster ist 53 Bits pro 80 Bits des Zeitinkrementzählers T80.
In 7 und unter Bezug auf die erste Ausführung ist
zu sehen, dass die Logik zum Inkrementieren des IC zur genauen Anpassung
an die E3-Frequenz, den IC für
die ersten neun Zyklen von zwei aufeinander folgenden Zeilen um
53 erhöht,
wie durch 100 in 7 gezeigt ist.
Beginnend mit dem neunten T80 jeder dritten Zeile, wie bei 102 gezeigt,
hängt das
Indexieren des Zwischenzählers
22 von den Füllbitanzeigen
und Pointerbewegungsanzeigen ab.
-
Wenn
bei 104 festgestellt wird, dass eine Füllung existiert, und bei 106 festgestellt
wird, dass ein positives Pointerleck existiert, wird der IC um 53 bei 108 inkrementiert.
Wenn bei 104 festgestellt wird, dass eine Füllung existiert,
und bei 106 festgestellt wird, dass kein Pointerleck existiert,
wird der IC um 54 bei 110 inkrementiert. Wenn bei 104 festgestellt wird,
dass eine Füllung
existiert, und bei 106 festgestellt wird, dass ein negatives
Pointerleck existiert, wird der IC um 55 bei 112 inkrementiert.
-
Wenn
bei 104 festgestellt wird, dass keine Füllung existiert, und bei 114 festgestellt
wird, dass ein positives Pointerleck existiert, wird der IC um 54 bei 116 inkrementiert.
Wenn bei 104 festgestellt wird, dass keine Füllung existiert,
und bei 114 festgestellt wird, dass kein Pointerleck existiert,
wird der IC um 55 bei 118 inkrementiert. Wenn bei 104 festgestellt wird,
dass keine Füllung
existiert, und bei 114 festgestellt wird, dass ein negatives
Pointerleck existiert, wird der IC um 56 bei 120 inkrementiert.
-
Wenn
bei 104 festgestellt wird, dass zwei Füllungen existieren, und bei 122 festgestellt
wird, dass ein positives Pointerleck existiert, wird der IC um 52
bei 124 inkrementiert. Wenn bei 104 festgestellt
wird, dass zwei Füllungen
existieren, und bei 122 festgestellt wird, dass kein Pointerleck
existiert, wird der IC um 53 bei 126 inkrementiert. Wenn
bei 104 festgestellt wird, dass zwei Füllungen existieren, und bei 122 festgestellt
wird, dass ein negatives Pointerleck existiert, wird der IC um 54
bei 128 inkrementiert.
-
Während bei
der zweiten Ausführungsform das
Indexieren des ICs einmal für
jede Zeilenzeit erfolgt, wird der IC für die ersten beiden von drei
Sätzen von
Zeilen um 477 inkrementiert. Für
die dritte Zeile wird der IC inkrementiert um: 475, wenn die empfangenen
Füllanzeigebits
S1 und S2 = 0.0 sind und ein positives Bitleck angezeigt wird; 476,
wenn S1, S2 = 0.1 oder 1.0 und ein positives Bitleck angezeigt wird oder
S1, S2 = 0.0 und kein Bitleck angezeigt wird; 477, wenn S1, S2 =
0.1 oder 1.0 und kein Bitleck angezeigt wird oder wenn S1, S2 =
0.0 und ein negatives Bitleck angezeigt wird oder wenn S1, S2 =
1.1 und ein postives Bitleck angezeigt wird; 478, wenn S1, S2 =
1.0 oder 0.1 und ein negatives Bitleck angezeigt wird oder wenn
S1, S2 = 1.1 und kein Bitleck angezeigt wird; und 479, wenn S1,
S2 = 1.1 und ein negatives Bitleck angezeigt wird.
-
Die
oben beschriebene Abstandsbildungsfunktion reduziert die Auswirkung
des innewohnenden SONET/SDH-Lücken-Jitter
deutlich durch Umsetzen in hochfrequente Inkremente kleinerer Größe, die
durch den zweiten Desychronisierer-Abschnitt mit geschlossener Schleife
leichter entfernt werden, wie im Detail nachfolgend beschrieben
wird. Insbesondere wird die Vieldeutigkeit der FIFO-Länge entfernt, die
durch die arbiträre
und variierende Position der POH-Spalte im STS-1-Rahmen erzeugt
wird.
-
In 8 werden
mehr Details der Pointerlecksteuerfunktion durch ein einfaches Blockdiagramm
dargestellt. Wie 8 zeigt, enthält die Pointerlecksteuer-
und Abstandsbildungsfunktion 24 im Allgemeinen vier Abschnitte:
einen Zeitbasisabschnitt 242, einen SUM- und NPTR-Erzeugungsabschnitt 244,
einen Rechenabschnitt 246 zum Berechnen der FIFO-Länge und
einen Abschnitt 248 zum Aktivieren eines Pointer-Bitlecks.
Der Zeitbasisabschnitt 242 empfängt ein Eingangssignal vom
SONET-Rahmentakt und einen voreingestellten Wert (11 0001 1100 0010
1101) und gibt typischerweise alle 11,1 Sekunden ein Übertragssignal
an den SUM- und NPTR-Erzeugungsabschnitt 244 aus.
-
Die
Berechnung, wann akkumulierte Pointerbewegungsbits als Leck ausgegeben
werden, ist eine Funktion der beobachteten empfangenen Pointerbewegungsauftritte
und der Länge
des ersten Abschnitts des FIFO. Für den ersten Teil der Berechnung
wird eine Messung der Anzahl von Pointerbewegungen über die
Zeit durchgeführt.
Zwei Zähler werden
benutzt: Zähler 250 zum
Aufzeichnen der Zeit durch Zählen
der Anzahl der 11,1-Sekunden-Impulse des Zählers TBASE 242 (SUM
in 8) und Zähler 252 zum
Zählen
der Anzahl der positiven Pointer minus der Anzahl der negativen
Pointer (NPTR in 8). Durch Dividieren der Zeit
durch eine Zahl wird ein ungefähres
Maß des
Pointerleckabstands ermittelt. Die Zähler (250, 252 in 8) werden
klar überfüllt, wenn
sie ungeprüft
betrieben werden. Ebenso sollten die Zähler nicht zurückgesetzt
werden, solange die Schleife in Betrieb ist. Der Kompromiss besteht
darin, die Werte beider Zähler zu
halbieren (durch zwei zu dividieren), wenn einer von ihnen seinen
maximalen Zählerstand
erreicht. Dieser Mechanismus von Akkumulieren von Zählerständen und
periodischem Halbieren bildet grob eine „Leck-Integrator"-Schätzung der
gewünschten
Pointerleckabstände.
-
Insbesondere
enthält
der SUM- und NPTR-Erzeugungsabschnitt 244 einen 8-Bit-Zeitzähler 250,
einen Pointerbewegungs-Aufwärts/Abwärts-Zähler 252 von
12 Bit, einen ersten Komparator 254, einen zweiten Komparator 256 und
ein ODER-Gatter 258. Der 8-Bit-Zähler 250 empfängt den
oben erwähnten Übertrag
als Eingangssignal und liefert ein SUM-Ausgangssignal an den Rechenabschnitt 246 zum
Berechnen der FIFO-Länge.
Der Aufwärts/Abwärts-Zähler 252 von
12 Bit empfängt positive
und negative Pointerjustierungen als seine Inkrement- und Dekrement-Eingangswerte
und liefert einen (NPTR)-Ausgangszählwert an den Rechenabschnitt 246 zum
Berechnen der FIFO-Länge.
Der erste Komparator 254 ist mit dem SUM-Ausgang gekoppelt
und vergleicht dessen Ausgangswert mit dem Wert 256. Der
zweite Komparator 256 ist mit dem NPTR-Ausgang gekoppelt
und vergleicht dessen Ausgangswert mit dem Wert 4096. Die Ausgänge der Komparatoren
sind mit dem ODER-Gatter 258 gekoppelt und der Ausgang
des ODER-Gatters ist mit Dividiere-durch-zwei-Eingängen (DIVBY2)
der entsprechenden Zähler 250 und 252 gekoppelt.
Der Sinn des Ausgangs des Teilers 266 besteht darin, dass
größere Werte
des Ausgangs zu kürzeren
Zeiten zwischen Pointerbitleckaktivierungen des Abschnitts 248 zum
Aktivieren eines Pointerbit-lecks führen.
-
Der
Gesamtbetrieb des Pointerleckmechanismus wird verbessert durch Anwendung
eines Korrekturwertes, der die Pointerleck-Abstandsbildungszeit
auf der Basis der FIFO-Länge
modifiziert. Insbesondere beträgt
die bevorzugte Länge
des Erststufen-FIFO 512 Bits und sein Mittelpunkt beträgt 256 Bits.
In Abwesenheit von Pointerbewegungen wird die Schleife derart arbeiten,
dass die Anzahl von Bits im FIFO ungefähr 256 Bits beträgt. Im typischen
Betrieb werden ankommende Pointerbewegungen entweder meistens positiv
oder meistens negativ sein. Für
positive Justierungen wird die Anzahl der in dem Erststufen-FIFO
enthaltenen Bits normalerweise niedriger tendieren (d. h. unter
256 Bits) und für
negative Justierungen wird die Anzahl normalerweise höher tendieren.
Der gewünschte
Betrieb der Schleife ist derart, dass für kontinuierliche positive
Justierungen das FIFO im Mittel auf etwa 128 Bits „gefüllt ist" (d. h. die Mitte
zwischen dem Mittelpunkt und vollständig leer) und für kontinuierliche
negative Justierungen das FIFO im Mittel auf etwa 384 Bits „gefüllt ist" (d. h. die Mitte
zwischen dem Mittelpunkt und vollständig gefüllt).
-
Die
FIFO-Längenabweichung
von diesen Mittelpunkten („128” und „384") wird wie folgt
benutzt, um die Korrekturgröße zu bestimmen,
die die Pointerleck-Abstandszeit
modifiziert. Zuerst wird der Wert des FIFO bestimmt durch Subtrahieren
des ICs von WC im Summierglied 259. Dann wird der absolute Wert
der Differenz zwischen dem Ausgangswert des Summiergliedes 259 und
des Mittelpunktwertes („256") des FIFO vom Absolut-Wert-Offset
des Summiergliedes 260 angenommen. Der Ausgangswert des
Summiergliedes 260 ist ein Wert zwischen Null und 256.
Ist die FIFO-Füllung „128" oder „384", so hat das Summierglid 260 den
Wert 128 (1,0000000). Der Wert des Summiergliedes 260 wird
als Binärzahl
mit festem Komma von 0,0000001 bis 1,1111111 skaliert. Der Ausgangswert
des Summiergliedes 260 wird im (+2)-Summierglied 262 vom
Binärwert
10,00000 (2,0 Dezimal) subtrahiert, um einen Wert zu erzeugen, der
Eins ist, wenn die FIFO-Füllung „128" oder „384” ist, und
größer als
Eins, wenn das FIFO „kurz" ist (d. h. weniger
als „384" oder mehr als „128" Bits ist), und weniger
als Eins, wenn das FIFO „lang" ist (d. h. mehr als „384" oder weniger als „128" Bits ist). Der Ausgangswert
des Summiergliedes 262, der als Längenjustierungswert betrachtet
werden kann, ist daher ein fraktionaler Wert zwischen etwa 0,01
und 2 und wird durch das Multiplizierglied 264 als Steuervariable (Korrekturwert)
benutzt, um den SUM-Wert zu justieren. Der justierte SUM-Wert wird
benutzt als Divisor bei 266, d. h., die Steuervariable,
die den Wert von NPTR dividiert. Wenn die FIFO-Füllung verhältnismäßig „lang" ist, wird somit bei einem gegebenen Wert
von NPTR der Wert der Korrekturgröße am Summierglied 262 verhältnismäßig klein
sein und bewirken, dass das Produkt an 264 verhältnismäßig kleiner
ist. Wenn NPTR durch das Produkt des Multipliziergliedes 264 dividiert
wird, resultiert daraus ein verhältnismäßig großer Wert,
der eine große
Abweichung des FIFO von dem bevorzugten Mittelpunkt darstellt, was
zu einer verhältnismäßig kürzeren Bitleckzeit
führt,
um die „lange" FIFO-Länge zu kompensieren.
Wenn die FIFO-Füllung
verhältnismäßig „kurz" ist, wird der Wert
der Korrekturgröße, die
durch das Summierglied 262 erzeugt wird, in gleicher Weise
größer als
Eins sein. Als Resultat wird das Produkt von SUM und der Wert des
Summiergliedes 262 verhältnismäßig größer sein,
und wenn NPTR durch das Produkt dividiert wird, hat dies einen kleineren
Wert zur Folge, der eine kleine Abweichung des FIFO von dem bevorzugten
Mittelpunkt darstellt, was zu einer verhältnismäßig längeren Pointerbitleckzeit führt, um die „kurze" FIFO-Länge zu kompensieren.
In gleicher Weise ist zu erkennen, dass eine große Pointerbewegungsakkumulation,
die durch den NPTR-Numerator dargestellt wird, auch bewirkt, dass
der resultierende Wert aus dem Teiler 266 zunimmt.
-
Der
durch den Teiler 266 erzeugte Wert wird an den Abschnitt 248 der
Pointerbitleckaktivierung geliefert, der ein Summierglied 268,
einen Latch 270 von 18 Bit und einen Komparator 272 aufweist.
Das Summierglied 268 empfängt seine Eingangssignale vom
Teiler 266 und vom Sigma-Ausgang des Latch 270.
Das Ausgangssignal des Summiergliedes 268 ist ein Eingangssignal
zum Latch 270, das auch ein Takteingangssignal vom SONET-Zeilentakt
erhält. Das
Latch 270 liefert ein Ausgangssignal, das durch den Komparator 272 mit
einer voreingestellten System-Verstärkungskonstanten (11 1110 1011
0101 0000) verglichen wird. Immer wenn der Ausgangswert des Latch
den voreingestellten Wert überschreitet,
erzeugt der Komparator 272 ein Pointerleck-Aktivierungssignal
für den
IC und stellt das Latch zurück. Ist
der Ausgangswert des WC-IC-Summiergliedes 259 größer als
256, wird ein negatives Pointerbitleck befohlen, um den Zählwert IC
(z. B. bei 82 oder 90 der 6 oder bei 112, 120 oder 128 der 7)
zu erhöhen.
Ist der Ausgangswert des WC-IC-Summiergliedes 259 kleiner
als 256, wird ein positives Pointerbitleck befohlen, um den Zählwert IC
(z. B. bei 78 oder 86 der 6 oder bei 108, 116 oder 124 der 7)
zu reduzieren.
-
Aus
der oben gegebenen Beschreibung wird für den Fachmann klar, dass die
Funktion der Pointerlecksteuerung- und -Abstandbildungsfunktion 24 (5)
darin besteht, demapped Daten mit großen Lücken zu akzeptieren, die sowohl
von SONET/SDH-Overhead-Bytes und SONET/SDH-Pointerbewegungen als
auch von Bitebenen-Lücken
von DS-3- oder E3- bis SONET/SDH-Füllereignissen herrühren, und
dann solche Daten an den zweiten Abschnitt 14 (5)
in solcher Weise weiterzugeben, dass der Einfluss der Overhead-Byte-Lücken stark abgeschwächt wird,
und die Wirkung von Pointerbewegungen als Einzelbit-Ereignisse, im Abstand gleichmäßig über die
Zeit, ausgedrückt
wird. In anderen Worten, die Pointerlecksteuerung- und -Abstandbildungsfunktion
weist zwei Wirkungen auf. Sie schwächt die Phasenwanderung ab
(Phasenvariationen bei einer Frequenz unter 10 Hz), die von empfangenen
Pointerbewegungen herrühren,
um Netzwerkspezifikationen zu erfüllen. Sie schwächt auch
deutlich den Jitter von SONET/SDH-Overhead-Bytes ab, wodurch die
Arbeit der zweiten Stufe 14, dem DCO-basierten Filter,
reduziert wird.
-
Zurückkehrend
zur 5 und wie schon früher erwähnt, enthalten die Komponenten
der zweiten Stufe des Desynchronisierers den Lesezähler 28,
die Lesezähler-Längenmessschaltung 30,
das Summierglied 32, die Mittelwertschaltung 34,
das Summierglied 36, den DCO 38 und den Teil des
Dual-Port-RAM 18, dessen Adressen größer als die (RC) Lesezählwerts-Messung
und kleiner als der IC modulo 768 sind. Bits werden durch Inkrementieren des
ICs von der ersten Stufe zur zweiten Stufe transferiert. Bits werden
durch den DCO-Takt 38 von der zweiten Stufe zur dritten
Stufe transferiert, d. h. für
jeden Impuls des DCO-Taktes 38 wird ein Bit transferiert.
Die Werte vom IC und RC werden synchron mit der empfangenen SONET/SDH-Zeile
gemessen, wodurch effektiv das strukturelle Jitter entfernt wird.
Für jede
Zeilenzeit liefert das Summierglied 32 einen 8-Bit-Zählwert,
die die Länge
des Zweitstufen-FIFO (IC-RC modulo 768) anzeigt. Acht aufeinander
folgende Werte werden addiert und skaliert durch die Mittelwertschaltung 34,
um einen 10-Bit-Zählwert
zu erzielen. Die Maximallänge
des Zweitstufen-FIFO ist mit 256 Bits definiert. Es ist erwünscht, die
Schleife derart zu betreiben, dass das Zweitstufen-FIFO halb voll
ist. Das Summierglied 336 addiert einen (Offset) Wert entsprechend
der Hälfte
der DCO-Mittenfrequenz minus den Ausgangswertbereich der Mittelwertschaltung 34,
um einen Schleifenregelungswert zu liefern, der an den DCO 38 zur
Regelung seiner Frequenz gegeben wird.
-
Der
DCO 38 besteht aus einem Addierglied 40 von 23
Bit, einem Latch 42 von 23 Bit und einer Impulsentfernungsschaltung 44.
Die Impulsentfernungsschaltung 44 empfängt einen Takt von 51,84 MHz,
der aus dem empfangenen SONET/SDH-Signal abgeleitet wird und ein
Muster von Impulsen erzeugt. Sie produziert 10 oder 11 Impulse pro
16 Zyklen der 51,84 MHz für
ein E3-Signal, oder 13 oder 14 Impulse pro 16 Zyklen der 51,84 MHz
für ein DS-3-Signal.
Die Auswahl von 10 oder 11 für
E3 oder 13 oder 14 für
DS-3 wird einmal für
16 Zyklen des 51,84 MHz-Taktes durchgeführt auf der Basis des „Übertrags" aus dem Addierglied 40.
Für 16
Zyklen des 51,84 MHz-Taktes wird der Wert des Addiergliedes 40 zu
der Schleifensteuergröße vom Summierglied 36 addiert
und der neue Wert vom Addierglied 40 wird im Latch 42 gespeichert.
Die Auswahl der 10/11- oder 13/13-Zählwerte zur Impulsentfernungsschaltung
erfolgt durch den „Übertrag" aus dem Addierglied 40.
-
Das
Verhältnis
der Anzahl von 10 Impulsen zu 11 Impulsen (oder 13 Impulsen zu 14
Impulsen) wird durch die Schleifensteuergröße gesteuert, die durch die
Länge des
Zweitstufen-FIFO bestimmt wird, das eine einfache Regelschleife
erster Ordnung bildet. Diese Schleife hat eine schmale Bandbreite und
produziert den erwünschten
Abschwächungseffekt
auf den systematischen Jitter des SONET/SDH.
-
Das
Ausgangssignal der zweiten Stufe weist aufgrund des Mechanismus
des Entfernens einer Anzahl von Impulsen aus den 16 Zählwerten
des Taktes von 51,84 MHz ein Hochfrequenz-Jitter im Ruhezustand
auf. Dieses Hochfrequenz-Jitter
(von 3,42 MHz) wird durch die dritte Stufe des Desynchronisierers
entfernt.
-
Die
dritte Stufe 16 des Desynchronisierers 10 enthält ein FIFO,
das durch ein Dual-Port-RAM mit 64 Bit, einen Lesezähler 50,
einen Schreibzähler 52 und
einen Analogabschnitt gebildet wird. Der Analogabschnitt enthält einen
Phasen-Frequenz-Detektor 54,
ein Tiefpassfilter (externer Kondensator) 56 und einen
analog spannungsgesteuerten Oszillator (VCO) 58. In der
derzeit bevorzugten Ausführungsform
ist der Phasen-Frequenz-Detektor (PFD) 54 konventionell
aufgebaut.
-
Das
Eingangssignal an die dritte Stufe (16 in 5)
bilden die DS-3-Daten, getaktet mit dem DCO-Lückensignal. Diese Daten werden,
mit diesem Takt, in den 64 Bit-FIFO (48 in 5)
eingeschrieben. Das FIFO 48 wird durch das Ausgangssignal des
spannungsgeregelten Oszillators 58 mit DS-3/E3-Frequenz
ausgelesen. Die Schreib- und Lesetakte treiben auch die Zähler 50 und 52.
Eine Systemphasenfehlergröße wird
abgeleitet durch Beobachten der höchstwertigen Bits (MSBs) der
Schreib- und Lesezähler 50, 52.
Die Fehlergröße wird
durch Eingeben der beiden MSBs als die beiden Eingangssignale in
einen Standard-Phasen-Frequenz-Detektor
(PFD) 54 produziert. Der PFD produziert zwei Ausgangssignale „Aufwärts" und „Abwärts", von denen jedes
abhängig
von der Zeitbreite des Phasen-Frequenz-Fehlers ist. Ein Analogfilter 56 produziert
eine Steuerspannung, die direkt proportional zu dem Integral der „Aufwärts"-Impulsbreiten minus die „Abwärts"-Impulsbreiten ist.
Diese Steuerspannung, auf geeignete Weise gezählt, wird benutzt, um die VCO-Frequenz
zu regeln. Die Schleife dient zur Regelung der VCO-Frequenz zur
Anpassung an die wiederhergestellte DS-3- oder E3-Frequenz.
-
Während dieses
Eingangssignal der Analogschleife (dritte Stufe) ein Ruhe-Jitter
bei 3,42 MHz hat, hat die Schleife eine genügend schmale Bandbreite der
geschlossenen Schleife (etwa 10 kHz), um so die Amplitude des Jitters
bei dieser Frequenz am Ausgang deutlich zu reduzieren. Jitter am
Eingang der dritten Stufe ist grob 1 UI (der DS-3- oder E3-Frequenz)
und weniger als 0,01 UI am Ausgang der dritten Stufe.
-
Aus
der obigen Beschreibung erkennt der Fachmann, dass der Pointerleck-Abschnitt des Desynchronisierers
in ähnlicher
Weise arbeitet wie andere Desynchronisierer, indem er die empfangenen
Pointer speichert und sie mit einer langsameren gesteuerten Rate
austreten lässt.
In dem Desynchronisierer der Erfindung ist diese Funktion jedoch
mit einer Datenabstandsbildungsfunktion kombiniert, die in der Wirkung
ein Vorfilter ist. Die Abstandsbildungsfunktion entfernt das SONET/SDH-System-Jitter,
das durch das Vorhandensein der vier Spalten von Overhead-Bytes
entsteht und ersetzt es durch ein höherfrequentes, regelmäßigeres
Lückenmuster.
Mit der SONET/SDH-Lückenbildung
treten 32 Lückenbits auf
(24 für
den TOH und 8 für
den POH) mit einer Rate von 72 kHz, der Zeilenrate. Mit der Abstandsbildungsfunktion
treten offensichtlich Lücken
auf, aber der geschlossene Schleifenabschnitt des Desynchronisierers
sieht diese aufgrund der synchronen Art ihrer Erzeugung und der
Art, wie die FIFO-Länge gemessen
wird, nie.
-
Es
ist auch zu bemerken, dass der Einschluss der Länge der Pointerlängenmessung
in die Pointerleck-Abstandsbildungsrechnung das Verhalten verbessert
durch Eliminieren des „Empfangslochs" („flat spot") aufgrund der SONET-Pointerbewegungsmuster.
Die „Empfangslöcher" von nicht empfangenen
Pointerbewegungen für
drei aus 90 berechneten Pointerbewegungszeiten (das 87/3-Muster)
kann zu einer Systemwanderspezifikationsverletzung führen. Durch
geeignetes Erhöhen der
Pointerbit-Abstandszeiten, wenn das FIFO kürzer wird (oder sich seinem
Mittelpunkt nähert),
kann dieser Effekt eliminiert werden, weil des Überschussdefizit von Bits niemals
gegen Null geht.
-
Es
sollte auch erkannt werden, dass die oben beschriebene Vorrichtung
Mittel (nicht gezeigt) enthalten sollte zum Prüfen auf ungültige Relativwerte des Lesezählers (RC),
Schreibzählers
(WC) und Zwischenzählers
(IC). Falls gewünscht,
kann die oben beschriebene Vorrichtung Mittel zum Deaktivieren der
Pointer-leckaktivierung enthalten, wenn WC-IC gleich dem Offsetwert
wird.
-
Es
ist zu erkennen, dass ein STS-3-Signal ein Nutzsignal von drei DS-3-
oder E3-Signalen hat und dass es von Vorteil ist, einen Demapper
sowie einen Desynchronisierer ähnlich
der vorerwähnten L3MTM-Vorrichtung vorzusehen, der drei DS-3-
oder E3-Signale aus einem einzigen STS-3-Signal demapped und desynchronisiert.
Dementsprechend schafft die bevorzugte Ausführung der vorliegenden Erfindung
auf einem einzigen Chip drei Desynchronisierer der oben unter Bezug
auf die 5 beschriebenen Art. Es wird
bemerkt, dass ein einziger Takt von 51,84 MHz für alle drei Desynchronisierer
ausreicht.
-
Es
wurden hierin Verfahren und Vorrichtungen zum Desynchronisieren
eines DS-3- oder E3-Signals aus dem Datenabschnitt eines SONET/SDH-Signals
beschrieben und dargestellt. Während
besondere Ausführungen
der Erfindung beschrieben wurden, ist es nicht beabsichtigt, dass
die Erfindung hierauf beschränkt
wird, da es beabsichtigt ist, dass die Erfindung so breit im Schutzumfang
ist wie es der Stand der Technik zulässt, und dass die Beschreibung
ebenso gelesen werden muss. Während
die Erfindung unter Bezug auf das Desynchronisieren eines DS-3-
oder E3-Signals aus einem STS-1-Signal beschrieben wurde, ist es
klar, dass die Erfindung auf das Desynchronisieren eines zweiten Rahmensignals
aus irgendeinem ersten Rahmensignal anzuwenden ist, das mit Lücken versehen
ist, weil der Overhead aus dem zweiten Rahmensignal entfernt wurde.
Während
die bevorzugte Ausführung
der Erfindung beschrieben wurde in der Implementierung mit einem
RAM-Speicher, Zählern,
Registern, Latches und logischen Elementen, ist es auch möglich, andere
Hardware und/oder Software zu benutzen, um die genannten Funktionen
zu erfüllen.
Somit kann die Erfindung vollständig
mit Hardware-Komponenten (diskrete oder integrierte) oder alternativ
in Software implementiert werden. Während die Erfindung in Verbindung
mit zwei Ausführungen
beschrieben wurde, die verschiedene bestimmte Zeitperioden (z. B.
T80- oder SONET/SDH-Zeilenzeit) zum Aktualisieren des Zwischenzählwertes
benutzen, ist es auch klar, dass andere Zeitperioden benutzt werden
können.
In ähnlicher
Weise, während
die Erfindung als in drei Stufen ausgeführt beschrieben wurde, ist
es klar, dass zusätzliche
Stufen benutzt werden können, oder
dass (obwohl nicht bevorzugt) zwei Stufen eingesetzt werden. Während die
Erfindung unter Benutzung bestimmter Offset-Werte, bestimmter Verstärkungskonstanten,
bestimmter Steuerwerte und bestimmter Zählergrößen und RAM-Größen usw.
beschrieben wurde, ist es darüber
hinaus klar, dass andere Werte, Konstanten und Implementierungen
benutzt werden können.
Deshalb ist es für
den Fachmann selbstverständlich,
dass auch noch andere Modifikationen an der Erfindung vorgenommen
werden können,
ohne sich von dem beanspruchten Schutzumfang zu entfernen.