-
GEBIET DER
ERFINDUNG
-
Die
vorliegende Erfindung betrifft allgemein Netzwerk-Systeme und insbesondere
ein Verfahren und eine Vorrichtung zum Synchronisieren eines Slave-Netzes
mit einem Master-Netz über
eine Kommunikationsverbindung dazwischen.
-
ALLGEMEINER STAND DER
TECHNIK
-
Nach
Stand der Technik ist bekannt, dass Slave-Netzknoten eine direkte
Ableitung des Taktes und der Rahmenbildung auf der Grundlage des
Eingangsdatenstroms vom Master-Netz ausführen, um die entsprechenden
Takt- und Rahmen-Referenzsignale in dem Slave-Netz zu erzeugen.
Ein Problem besteht bei diesem Verfahren darin, dass die in dem Slave-Netz
abgeleiteten Taktsignale dadurch, dass sie direkt aus dem Datenstrom
abgeleitet sind und deshalb der Rauschcharakteristik der Übertragungsleitung,
welche den Master mit dem Slave verbindet, unterworfen sind, dazu
neigen, Jitter zu unterliegen. Dieses Verfahren verlangt außerdem,
dass die genaue Rahmenbildung des Masters in irgendeiner Form in
dem Datenstrom vorhanden ist, gewöhnlich als ein Rahmenanfangszeichen
oder -signal. Außerdem
muss der Datenstrom vom Master zum Slave kontinuierlich sein. Wenn
es eine Unterbrechung des Datenstroms gibt, wirkt sich diese gewöhnlich in grundlegender
Weise auf die Taktgabe und Rahmenbildung des Slave-Systems aus.
Einige Systeme integrieren Signalverlustdetektoren und eine Schaltungsanordnung,
um die Slave-Takte im Falle einer Datenunterbrechung ungefähr konstant
zu halten, bis das Datenstromsignal wiederhergestellt ist. Insgesamt
ist dieses Verfahren für
Anwendungen mit erhöhten
Anforderungen an die Genauigkeit des abgeleiteten Slave-Taktes nicht
gut geeignet.
-
Phasenverriegelte
Schleifen (phase-locked loops, PLL) sind wohlbekannte Systeme, durch
welche Taktgebung und Phasenabgleich an dem Slave-Knoten unter Verwendung
von spannungsgesteuerten Oszillatoren realisiert werden. Die anfängliche Rahmenbildung
des Slaves ist willkürlich.
Jedoch werden die Phaseninformationen der Rahmenbildung durch den
Slave-Knoten mit dem relativen Rahmen-Phasenabgleich, der über die
Datenverbindung von dem Master-Knoten empfangen wird, verglichen. Unter
Verwendung der Phaseninformationen von dem Master und dem Slave
wird ein Versatzfehler-Signal berechnet. Das Versatzsignal wird
zu dem spannungsgesteuerten Oszillator der Slave-Knoten-Takterzeugungsschaltungen
rückgeführt, um
die Slave-Taktfrequenz anzupassen, bis der Master und der Slave
in der gewünschten
Phasenbeziehung sind. Dieses Verfahren sorgt für einen weitestgehend ausgeglichen
arbeitenden Slave-Endknoten, der ziemlich unanfällig für schwankende Rauschcharakteristika
in der Kommunikationsverbindung ist. Kurze Unterbrechungen des Signals
werden toleriert, ohne dass der Takt und die Rahmenbildung des Slaves
beeinflusst werden.
-
Das
Problem besteht bei Phasenverriegelungsschleifen des Standes der
Technik darin, dass das Schaltungsdesign im Allgemeinen komplizierter als
bei den Takt direkt ableitenden Schaltungen ist. Phasenverriegelungsschleifen
enthalten im Allgemeinen wohlbekannte Einrichtungen, wie etwa spannungsgesteuerte
Oszillatoren, Phasenkomparatoren usw., die nicht ohne weiteres in
digitale CMOS-ASICs integriert werden können. Andererseits haben PLL-Schaltungen,
die für
eine Integration in ASICs ausgelegt sind, unveränderliche Betriebseigenschaften,
die nicht erwünscht
sind. Beispielsweise sind/ist im Allgemeinen die Frequenz und/oder
das Phasenverfolgungsreaktion unveränderlich. Einige PLL-Schaltungen
weisen zwei oder sogar mehrere Algorithmen auf (d.h. einen, um der
Master-Phase zu folgen und die Phasenverriegelung anfänglich herzustellen,
und einen davon verschiedenen Algorithmus, um die Slave-Schaltung
verriegelt zu halten). Diese Schaltungen werden gewöhnlich verwendet,
weil die Kriterien, die gefordert sind, um unter allen möglichen Bedingungen
der Master-Phase zu folgen und die Slave-Phase einzurichten, dazu
tendieren, das Slave-Signal instabil oder jittergestört zu machen,
wenn die Schaltung erst einmal verriegelt ist. Andererseits bieten
Schaltungen, die sich durch eine wünschenswerte Taktgüte und -stabilität auszeichnen,
kein ausreichendes Ansprechverhalten, das unter allen Bedingungen
genügt,
um anfangs den Masterknoten zu erfassen und zu verriegeln.
-
Schließlich neigt
eine PLL-Verriegelungs-Haltereaktion, welche das erstrebenswerteste Taktausgabeverhalten
bietet, zu damit verbundenen längeren
Zeitkonstanten. Folglich können,
beispielsweise in der Situation einer Mastersystem-Verriegelung
an einen digitalen Stamm (Slave-System),
diese langen Zeitkonstanten zusammen mit dem Master-Verfolgungsalgorithmus
eine Systeminstabilität bewirken.
-
US 4 791 386 offenbart eine
digitale Phasenverriegelte Schleife, in der das Vorauseilen oder Nacheilen
der Phase des Eingangssignals mit der Phase des Ausgangssignals
des Regelkreises verglichen wird und das Auftreten des Vorauseilens
oder Nacheilens jeweils in einem Random-Lock-Filter (Filter mit Zufallsverriegelung)
gefiltert wird, um das Ausgangssignal phasenzuregeln.
-
WO
0 106 696 offenbart eine verzögernd
verriegelte Schleife, die eine Verzögerungsanpassungsschaltung
aufweist. An die Verzögerungsanpassungsschaltung
werden mit einer dynamisch angepassten Rate Verzögerungsanpassungssignale angelegt.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Die
Erfindung ist in den unabhängigen
Ansprüchen
definiert. Einige bevorzugte Merkmale der Erfindung sind in den
abhängigen
Ansprüchen
definiert.
-
Es
ist ein Verfahren zur Master/Slave-Synchronisation dargelegt, das
weder einen festgelegten Verriegelungsationsalgorithmus noch mehrere
festgelegte Algorithmen verwendet. Stattdessen ist das Synchronisationssystem
der vorliegenden Erfindung durch ein stückweise lineares exponentielles
Antwortverhalten gekennzeichnet, das an die Bedingungen der Datenverbindung
und an den momentanen Phasensynchronisationszustand des Slave-Knotens selbstanpassend
ist. Die Schaltung der vorliegenden Erfindung registriert die Rate,
mit welcher der Phasenanpassungsschaltung ein Synchronisationssignal
zugeführt
wird, und passt dann diese Rate dynamisch an, bis sie den Minimalwert
erreicht, der erforderlich ist, um unter den vorliegenden Bedingungen die
Synchronisation beizubehalten. Durch das Einstellen der Rate auf
einen Minimalwert werden die Jittercharakteristika des ausgegebenen
Slave-Taktes auf ein Minimum herabgesetzt.
-
Das
Master/Slave-Phasenregelungsverfahren der vorliegenden Erfindung
kann außerdem
in denselben digitalen CMOS-ASIC wie weitere Datencodierungs-/Datendecodierungs-
und Taktableitungsschaltungen integriert werden, ohne externe Hardware
zu erfordern. Gemäß einem
erfolgreichen Prototyp enthält
ein einziger ASIC sowohl Hardware zur Bitdecodierung, Slave-Rahmenbildung und
Taktableitung als auch die Master/Slave-Synchronisations-Hardware
der vorliegenden Erfindung. Dies verringert den Kostenaufwand für die Synchronisationsfunktion
und die erforderliche Schaltungsplatinenfläche wesentlich.
-
Die
Schaltung der vorliegenden Erfindung ist dafür ausgelegt, dass sie – anders
als herkömmliche PLL-Schaltungen
des Standes der Technik – ausschließlich in
einer digitalen Umgebung arbeitet. Die gesamte Signalisierung ist
durchgängig
mit logischen Pegeln vom Typ "logisch
1" und "logisch 0", den derzeitigen
digitalen CMOS-Designtechniken entsprechend.
-
KURZBESCHREIBUNG DER DETAILLIERTEN ZEICHNUNGEN
-
Eine
Beschreibung einer bevorzugten Ausführungsform der vorliegenden
Erfindung ist nachstehend mit Bezug auf die beigefügte Zeichnung
gegeben, worin:
-
1 ein
Blockschaltbild des Master/Slave-Synchronisationssystems gemäß einer
bevorzugten Ausführungsform
der vorliegenden Erfindung ist;
-
2A und 2B zusammen
ein schematisches Blockschaltbild der Masterphasendetektor- und
Phasenregelschaltung von 1 bilden; und
-
3 ein
schematisches Blockschaltbild eines Frequenzgeneratorteils der Masterphasendetektor-
und Phasenregelschaltung von 1 ist.
-
AUSFÜHRLICHE BESCHREIBUNG BEVORZUGTER
AUSFÜHRUNGSFORMEN
-
Die
Master/Slave-Phasenverriegelungsschleife der vorliegenden Erfindung
wirkt mit weiteren Komponenten zusammen, die in der gleichzeitig anhängigen UK-Patentanmeldung
Nr. 0 004 672.2, der kanadischen Patentanmeldung Nr. 2,338,320 und
der US-Patentanmeldung Nr. 09/794,644 mit dem Titel "Integrated Data Clock
Extractor" beschrieben
sind. Die Schaltung der vorliegenden Erfindung nutzt die Ausführung des
dort beschriebenen programmierbaren Verzögerungselements, die hier beschrieben
ist. Diese Schaltung gemäß der vorliegenden
Erfindung schließt
außerdem
eine Frequenz-Beibehaltungsschaltung wie in der vorangehend genannten
Anmeldung offenbart ein. Die Bereitstellung einer Frequenz-Beibehaltungsschaltung
hat zwei wesentliche Effekte. Erstens sorgt sie für eine stabile, dauerhafte
Slave-Frequenz, falls das Datenstromsignal vom Master unterbrochen
wird. Zweitens verringert sie die Rate, im Vergleich zu oben, mit
der das Verriegelungssignal an die Phasenanpassungsschaltung angelegt
werden muss, um den Slave in Verriegelung zum Master zu halten.
-
Gemäß der vorliegenden
Erfindung wird eine Slave-Phasenverriegelungsfunktion geschaffen,
indem ein variabler Betrag einer Verzögerung auf ein beliebiges Taktsignal
vorbestimmter Frequenz angewendet wird. Wie in 1 gezeigt
ist, wird das beliebige Taktsignal durch ein programmierbares Verzögerungselement 1 verzögert, wie
mit Bezug auf die zuvor erwähnte
UK-Patentanmeldung Nr. 0 004 672.2, die kanadische Patentanmeldung
Nr. 2,338,320 und die US-Patentanmeldung Nr. 09/794,644 ausführlicher
erörtert
ist. Das resultierende verzögerte
Taktsignal wird benutzt, um einen Slave-Taktgeber 3, einen
Slave-Empfänger 5 und
eine Masterphasendetektor- und Verriegelungsschaltung 7 zu
betreiben. Das beliebige Takteingangssignal kann unter Verwendung
jeglicher wohlbekannter und wohlverstandener Verfahren erzeugt sein.
Beispielsweise bieten die meisten ASIC-Technologie-Bibliotheken
Kristalloszillator- oder Phasenverriegelungsschleifen-Makrozellen,
die benutzt werden können, um
das beliebige Taktsignal zu erzeugen. Gemäß einem erfolgreichen Prototyp
der Erfindung wurde eine integrierte Kristalloszillatorschaltung
verwendet.
-
Die
Slave-Synchronisiereinheit 3 ist eine Schaltung, die hauptsächlich aus
Synchronzählern besteht,
die benutzt werden, um ein Referenz-Slave-Rahmenimpulssignal und
einen Referenz-Slave-Takt
zu erzeugen. Es können
verschiedene Rahmenformattypen benutzt werden, wobei die Spezifikationen
des Rahmens kein Bestandteil der vorliegenden Erfindung sind. Gemäß dem erfolgreichen Prototyp
wurden Rahmen von 125 Mikrosekunden in 256 Zeitschlitze unterteilt,
wobei jeder Zeitschlitz 488 Nanosekunden lang war. Das 8-Bit-Slave-Rahmen-Zeitsteuerungssignal,
das von der Slave-Taktgeber 3 erzeugt wird, repräsentiert
einen 8-Bit-Binärzählwert dieser
Zeitschlitze, von 0 bis 255, entsprechend ihrem zeitlichen Auftreten.
Bei anderen Rahmentypen ist die einzige Anforderung, dass von der Zeitgeberschaltung
ein Binärzählwert geliefert
wird, der zu Beginn des Rahmens 0 und am Ende des Rahmens alles
1 ist. Ein Fachmann kann diese Art der Hardware leicht herstellen.
Wenn zunächst
Energie zugeführt
wird, werden dieser Zähler
und die entsprechende Slave-Rahmenreferenz beliebig festgesetzt.
-
Der
Empfänger 5 empfängt den
Datenstrom und decodiert aus diesem die Master-Zeitsteuerung. Wieder sind zahlreiche
Datenformattypen möglich. Bei
dem erfolgreichen Prototyp war dieser Datenstrom eine serielle 10-Bit-Daten-Verbindung
mit 20,48 Megabit/Sekunde und 256 Zeitschlitzen. In diesen Datenstrom
wurde ein spezieller 10-Bit-Code eingebunden, um die Rahmengrenzen
zu markieren, und es wurde der Datentakt in den Bitstrom hinein
codiert. Es wurde eine Anordnung von Dekaden- und Binärzählern verwendet,
um ein weiteres 8-Bit-Signal, das Master-Rahmenzeitsteuerungssignal,
das von 0, zu Beginn des ankommenden Rahmens, bis 255, am Ende des
ankommenden Rahmens, reicht, zu erzeugen. Wiederum wäre ein Fachmann
im Stande, Hardware dieser Art herzustellen.
-
Das
programmierbare Verzögerungselement 1,
in 1 veranschaulicht, ist im Wesentlichen jenem völlig gleich,
das in der gleichzeitig anhängigen UK-Patentanmeldung
Nr. 0 004 672.2, der kanadischen Patentanmeldung Nr. 2,338,320 und
der US-Patentanmeldung Nr. 09/794,644 mit dem Titel "Integrated Data Clock
Extractor" beschrieben
ist. Das Verzögerungselement 1 wies
eine Verzögerungsleitung
mit 64 Elementen, Zyklusgrenzwert-Extraktoren, Takt-Umkehrer, zwei
Takt-Multiplexer,
Störimpulsunterdrücker und
Teile eines Takt-Phasendetektors, die einen Verzögerungs-FIFO, einen Re-Sync-Haltespeicher und
einen Synchron-Hoch-/Herunterzähler
einschließen,
auf, wie in der oben bezeichneten gleichzeitig anhängigen Anmeldung
dargelegt ist.
-
Der
Verzögerungsanpassungssignaleingang des
Elements 1 empfängt
zwei Signale, CNTU und CNTD, die den oben erwähnten Synchron-Hoch-/Herunterzähler speisen.
Wenn CNTU für
einen Takt aktiv ist, dann addiert die programmierbare Verzögerung 1 ein
Quantum Verzögerung
zu dem Ausgabetakt, und wenn CNTD für einen Takt aktiv ist, dann subtrahiert
die programmierbare Verzögerung 1 ein Quantum
Verzögerung
von dem Ausgabetakt. Ein Durchschnittsfachmann wäre anhand der zuvor erwähnten gleichzeitig
anhängigen
UK-Patentanmeldung Nr. 0 004 672.2, der kanadischen Patentanmeldung
Nr. 2,338,320 und der US-Patentanmeldung Nr. 09/794,644 im Stande,
diese Schaltung herzustellen.
-
Die
Masterphasendetektor- und Phasenverriegelungsschaltung 7 bildet
das Kernstück
der vorliegenden Erfindung. Alle anderen oben erwähnten Komponenten
sind entweder in der gleichzeitig anhängigen Anmeldung "Integrated Data Clock
Extractor" offenbart
oder sind Bestandteil wohlbekannter Empfänger- und Slave-Taktgeberschaltungen.
-
Die
Masterphasendetektor- und Verriegelungsschaltung 7 vergleicht
die Master-Zeitsteuerung von
dem Eingangsdatenstrom mit der Slave-Zeitsteuerung von dem Slave-Taktgeber 3.
Dann werden die Signale CNTU und CNTD an das programmierbare Verzögerungselement 1 angelegt,
um kleine, stufenweise Veränderungen
an der Verzögerung
des Taktes vorzunehmen, welcher der Slave- Taktgeber 3 und
der Empfangsschaltung 5 zugeführt wird, bis die gewünschte Slave-Phase
erzielt ist. Die Rate, mit welcher diese zwei Signale an die programmierbaren Verzögerungselemente
angelegt werden, bestimmt das Verriegelungsverhalten der Schaltung.
-
Ein
Blockschaltbild der Masterphasendetektor- und Phasenverriegelungs-Schaltung 7 ist
in 2A und 2B gegeben.
Wie in 2A gezeigt ist, schließt die Masterphasendetektor-
und Phasenverriegelungsschaltung 7 einen kombinatorischen 8-Bit-Subtrahierer 21,
ein Re-Sync-Flipflop 23,
einen synchronen 4-Bit-Hoch-/Herunter-Binärzähler 25, einen 4-
bis 12-Bit-Binärdecodierer 27,
einen synchronen 12-Bit-Abtastratenzähler 29, einen weiteren
synchronen 12-Bit-Abtastperiodenzähler 31,
zwei synchronen 12-Bit-Hoch- und Herunterzähler mit Freigabe (EN) und
Löschung
(CLR), 33 und 35, und einen HOCH/HERUNTER-ZÄHLWERTVERGLEICH 37 ein.
Ein Frequenzgenerator- und Beibehaltungsteil der Masterphasendetektor-
und Verriegelungsschaltung 7 ist in 2B veranschaulicht
und wird nachstehend ausführlicher
erörtert.
-
Der
Subtrahierer 21, der das Herzstück des Master/Slave-Phasenkomparators
bildet, ist ein 8-Bit-Binärsubtrahierer üblicher
Ausführung.
Wenn der Slave dem Master zeitlich nacheilt, dann ist die Slave-Phase
größer als
die Master-Phase, und eine Subtraktion der zwei Phasenzahlen (d.h.
8-Bit-Slave-Phase
minus 8-Bit-Master-Phase) ergibt eine negative 8-Bit-Phasendifferenzzahl.
Folglich wird das MSB (höchstwertige
Bit) der Phasendifferenz gesetzt. Wenn die Slave-Phase der Master-Phase zeitlich voraus
ist, dann ist die Slave-Phasenzahl niedriger als die Master-Phasenzahl,
und eine Subtraktion der zwei Phasenzahlen (d.h. 8-Bit-Slave-Phase
minus 8-Bit-Master-Phase) ergibt eine positive Phasendifferenzzahl.
Wenn dies auftritt, wird das MSB des Phasendifferenzergebnisses
gelöscht.
-
Das
Re-Sync-Flipflop 23 legt das MSB-Signal zeitlich neu fest,
um an die Eingänge
der UND-Gatter 39 und 41, die benutzt werden,
um die Ausgaben an das programmierbare Verzögerungselement 1,
I_CNTU und I_CNTD, zu erzeugen, ein eindeutiges Signal abzugeben.
Wie nachstehend weiter erörtert
ist, werden die Signale I_CNTU und I_CNTD nicht direkt in das programmierbare
Verzögerungselement 1,
sondern vielmehr in die Frequenzgenerator- und -beibehaltungsschaltung
von 2B eingespeist und von dieser zu dem programmierbaren
Verzögerungselement übertragen.
-
Es
wird ein Signal PHZ_ENABLE erzeugt, wie nachstehend ausführlicher
erörtert
ist, und an die UND-Gatter 39 und 41 angelegt,
um periodisch eines der Signale, I_CNTU oder I_CNTD, je nach Zustand des
MSB-Signals, über
Gatter zu verknüpfen.
-
Wenn
der MSB-Signalausgang von dem Re-Sync-Flipflop 23 gesetzt
ist, was angibt, dass der Slave dem Master zeitlich nacheilt, dann
wird das Signal I_CNTD erzeugt. Dies hat zur Folge, dass ein Quantum
Zeit von der Slave-Phase weggenommen wird, wodurch der Slave zeitlich
vorgerückt
wird und sich die Phasendifferenz etwas verringert. Wenn der MSB-Signalausgang
des Re-Sync-Flipflops 23 zurückgesetzt ist, was angibt,
dass der Slave dem Master zeitlich vorauseilt, dann wird das Signal
I_CNTU erzeugt. Dies hat zur Folge, dass ein Quantum Zeit zu der
Slave-Phase hinzugefügt wird,
wodurch der Slave zeitlich zurückgezogen
wird und sich die Phasendifferenz etwas verringert. Irgendwann beginnt, wenn
der Master und der Slave nahezu phasengleich sind, das MSB-Signal
am Ausgang des Re-Sync-Flipflops 23 bei jedem Anlegen des Signals PHZ_ENABLE
zu wechseln. Dies wiederum hat zur Folge, dass die Aussagen von
I_CNTD und I_CNTU wechseln, was den Zeitpunkt kennzeichnet, zu dem der
Master und der Slave in der Phase verriegelt sind.
-
Der
4-Bit-Binär-Hoch/Herunterzähler 25 ist von üblicher,
wohlbekannter Struktur, nur dass er für einen Zählbereich zwischen 0 und 11
(einschließlich) konfiguriert
ist sowie derart konfiguriert ist, dass er nicht unter 0 und nicht über 11 zählt. Dies
kann unter Verwendung von Verilog HDL folgendermaßen ausgedrückt werden:
always@(posedge
CLK) if(EN) begin
if(UP/DWN)Q <= (Q < 11)?Q
+ 1 : Q);
else Q <=
(Q > O)?Q – 1 : Q)
end
-
Der
Binärdecodierer 27 ist
ebenfalls von üblicher,
wohlbekannter Struktur, nur dass er für eine 4-Bit-Binäreingabe
im Bereich von 0 bis 11 (einschließlich) konfiguriert ist. Dies
kann unter Verwendung von Verilog HDL wie folgt ausgedrückt werden:
always@(D)
case(D)
4'b0000:
Q <= 12'b000000000001;
4'b0001: Q <= 12'b000000000010;
4'b0010: Q <= 12'b000000000100;
4'b0011: Q <= 12'b000000001000;
4'b0100: Q <= 12'b000000010000;
4'b0101: Q <= 12'b000000100000;
4'b0110: Q <= 12'b000001000000;
4'b0111: Q <= 12'b000010000000;
4'b1000: Q <= 12'b000100000000;
4'b1001: Q <= 12'b001000000000;
4'b1010: Q <= 12'b010000000000;
4'b1011: Q <= 12'b100000000000;
default:
Q <= 12'b100000000000;
endcase
-
Die
12-Bit-Binär-Vergleichsschaltung 43 führt die
folgende Funktion, ausgedrückt
in Verflog HDL, aus:
always@(A or B)Q <= (A == B);
-
Bezugnehmend
auf 2A, erzeugt der 12-Bit-Obergrenzenausgang des
Binärdecodierers 27 Werte
von 2(n+1), wobei n der Binärwert des 4-Bit-Hoch-/Herunterzählers 25 ist.
Der 12-Bit-Abtastratenzähler 29 zählt bis
zu dem Wert, der von dem Decodierer 27 erzeugt worden ist,
wobei er für
jeden Taktimpuls des Slave-Taktes einen Zählschritt ausführt. Die
Abtastrate und die Obergrenzenwerte werden ständig verglichen, und wenn sie
gleich werden, wird PHZ_ENABLE aktiviert. Dieses Signal wird verwendet,
um eines der Ausgangssignale, I_CNTU oder I_CNTD, in Abhängigkeit
vom Wert des MSB-Signals am Ausgang des Re-Sync-Flipflops 23,
zu treiben. Die Signale I_CNTU und I_CNTD werden verwendet, um das
programmierbare Verzögerungselement 1 wie
in 1 gezeigt zu steuern. Außerdem setzt das Signal PHZ_ENABLE
den Abtastratenzähler 29 zurück.
-
Wenn
der Obergrenzenzähler 25 einen
Binärwert
von null aufweist, wird das Signal PHZ_ENABLE bei jeder weiteren
Phase des Slave-Taktes aktiviert. Wenn der Obergrenzenzähler einen
Binärwert
von 1 aufweist, wird das Signal PHZ_ENABLE jeden vierten Slave-Taktzyklus
aktiviert. Wenn der Obergrenzenzähler
einen Binärwert von
2 aufweist, wird das Signal PHZ_ENABLE jeden achten Slave-Taktzyklus
aktiviert usw., bis der Obergrenzenzähler einen Binärwert von
11 aufweist, wobei in diesem Fall das Signal PHZ_ENABLE jeden 4096.
Taktzyklus aktiviert wird. Folglich wird für jeden Zählschritt, den der Obergrenzenzähler zunimmt,
die Rate, mit welcher die Signale I_CNTU und I_CNTD an die programmierbare
Verzögerungsschaltung 1 angelegt
werden, halbiert. Dies verleiht der Schaltung ein exponentielles
Antwortverhalten.
-
Es
gibt zwei 12-Bit-Synchronzähler,
den Hochzähler 33 und
den Herunterzähler 35.
Diese beiden Zähler
zählen,
wie oft ihre jeweiligen Zählungsfreigabesignale
I_CNTU bzw. I_CNTD innerhalb einer festgesetzten Zeitdauer jeweils
aktiv werden. Der 12-Bit-Abtastperiodenzähler 31 misst dieser
Zeitdauer 4096 Slave-Taktzyklen heraus.
-
Wenn
der Abtastperiodenzähler 31 seinen Höchstwert
erreicht, erzeugt das UND-Gatter 45 einen Abtastperiodenimpuls,
der an den 4-Bit-Synchron-Hoch-/Herunterzähler 25 angelegt wird.
Der Zähler 25 wird
bei Empfang jedes Abtastperiodenimpulses in Abhängigkeit von der zusätzlichen
Signalisierung, die er von dem Hoch-/Herunter-Zählwert-Vergleichsblock 37 empfängt, inkrementiert oder
dekrementiert. Außerdem
setzt der Abtastperiodenimpuls den Hochzähler 33 und den Herunterzähler 35 für die nächste Abtastperiode
zurück.
-
Der
Hoch-/Herunter-Zählwert-Vergleichsblock 37 prüft ständig die
Ausgaben des Hochzählers 33 und
des Herunterzählers 35 und
signalisiert dem 4-Bit-Hoch-/Herunterzähler 25 in entsprechender Weise,
ob ein Inkrementieren oder ein Dekrementieren erforderlich ist.
Dieser Zählschritt
tritt, falls erforderlich, am Ende jeder Abtastperiode auf. Die
Funktionsweise des Hoch-/Herunter-Zählwert-Vergleichsblocks 37 lässt sich
wie folgt ausdrücken:
- • wenn
((Hoch-Zählwert <= 5)||(Herunter-Zählwert <= 5)), dann dekrementiere
Hoch-/Herunterzähler
- • andernfalls:
wenn ((Hoch-Zählwert
+ Herunter-Zählwert)/2 > abs(Hoch-Zählwert – Herunter-Zählwert)
+ 5), dann imkrementiere Hoch-/Herunterzähler
- • andernfalls: ändere Hoch/Herunterzähler nicht.
-
Wie
oben angegeben ist, wird der Hoch-/Herunterzähler 25 niemals dekrementiert,
wenn sein Wert null ist, und niemals inkrementiert, wenn sein Wert
11 ist.
-
Wie
in 2A gezeigt ist, erzeugt der Hoch-/Herunter-Zählwert-Vergleichsblock 37 außerdem ein
Verriegelungszustandssignal, das der Frequenzgenerator- und Frequenzbeibehaltungsschaltung
zugeführt
wird, wie nachstehend mit Bezug auf 2B ausführlicher
erörtert
ist. Dieses Signal ist eine logische 1, wenn die Phasendetektor-
und Verriegelungsschaltung 7 verriegelt ist. Dies wird
signalisiert, wenn beide Register, das des Hochzählers 33 und das des
Herunterzählers 35,
ungleich null sind.
-
Während einer
vollen Abtastperiode sind dann, wenn der Slave zum Master verriegelt
ist, beide Werte, jener des Hochzählers 33 und jener
des Herunterzählers 35,
ungleich null. Wenn einer von beiden null ist, dann ist der Slave
nicht zum Master verriegelt. Dem 4-Bit-Synchron-Obergrenzenzähler 25 wird durch
den Hoch-/Herunter-Zählwert-Vergleichsblock 37 signalisiert,
um einen Zählschritt
herunterzuzählen,
wenn entweder der Hochzähler 33 oder
der Herunterzähler 35 kleiner
oder gleich fünf ist.
Dieser Vorgang verdoppelt die Rate, mit der die Signale I_CNTU oder
I_CNTD zu dem programmierbaren Verzögerungselement 1 gesendet
werden.
-
Nach
einer weiteren Abtastperiode werden die Werte des Hochzählers 33 und
des Herunterzählers 35 wieder
geprüft.
Wenn einer von beiden null ist, dann ist der Slave immer noch nicht
zum Master verriegelt, und dem 4-Bit-Synchronzähler 25 wird signalisiert,
abermals um eins herunterzuzählen.
Dies wird fortgeführt,
bis der 4-Bit-Synchron-Hoch-/Herunterzähler 25 auf null heruntergezählt hat.
Zu diesem Zeitpunkt werden die Signale I_CNTU oder I_CNTD mit der
maximalen Rate an das programmierbare Verzögerungselement 1 gesendet.
Diese Rate ist so vorausbestimmt, dass sie ungefähr zehnmal die von dem Slave
tatsächlich
benötigte
Rate ist, um unter ungünstigsten
Bedingungen zu gewährleisten,
dass die Slave-Phase den Master "einfangen" kann.
-
Wenn
der Slave den Master "einfängt", dann werden die
zwei 8-Bit-Master- und Slave-Phasenzahlen
gleich, und die Signale I_CNTU und I_CNTD beginnen sich abzuwechseln,
wie oben beschrieben wurde. Dies hat zur Folge, dass beide Werte,
jener des Hochzählers 33 und
jener des Herunterzählers 35,
am Ende der Abtastperiode von Null verschiedene Zahlen sind. Außerdem werden,
wenn der Wert des Hoch-/Herunterzählers 25 klein ist
und die entsprechende Abtastrate hoch ist, die Zahlenwerte sowohl
für den
Hochzähler
als auch für
den Herunterzähler
recht hoch sein.
-
Wenn
beide, der Hochzähler 33 und
der Herunterzähler 35,
einen Wert aufweisen, der größer als fünf ist,
und wenn der Mittelwert aus dem Wert des Hochzählers und dem Wert des Herunterzählers fünf ist oder
größer als
der Absolutwert ihres Unterschieds ist, dann wird der Hoch-/Herunterzähler 25 um
1 inkrementiert. Andernfalls werden keine Veränderungen an dem Hoch-/Herunterzähler vorgenommen.
Folglich wird der Wert des Hoch-/Herunterzählers so eingestellt, dass
sowohl der Hochzähler
als auch der Herunterzähler
auf ein Minimum herabgesetzt werden, ohne null zu werden.
-
Der
Grund für
den Vergleich des Hochzählers 33 und
des Herunterzählers 35 mit
der Zahl Fünf (5)
und für
den Vergleich des Mittelwertes aus ihrer Zahlenwertausgabe mit der
Differenz plus 5 ist, dass es wünschenswert
ist, die Zahlen sowohl des Hochzählers
als auch des Herunterzählers
so klein wie möglich
(jedoch größer als
null) zu halten. Die Zahl Fünf
(5) wurde gewählt,
um dieser Anforderung zu genügen.
-
Die
Frequenz-Beibehaltungsschaltung ist in 2B veranschaulicht.
Diese Schaltung besteht aus einem 23-Bit-Hoch-/Herunter-Impulszähler 47, einem
23-Bit-Frequenz-Abtastperiodenzähler 49,
einem 23-Bit-Haltespeicher 51, einer Teilerschaltung 53,
einer Frequenzgeneratorschaltung 55 und einem Multiplexer 57.
-
Wie
oben erörtert
ist, werden die Signale I_CNTU und I_CNTD von der in 2A gezeigten Phasendetektor-
und Verriegelungsschaltung empfangen. Diese Signale werden durch
das ODER-Gatter 59 ODER-verknüpft und verwendet, um den CNT-Auswahlmultiplexer 57 zu
steuern. Der CNT-Auswahlmultiplexer wird verwendet, um die Quelle
der zwei Signale CNTU und CNTD auszuwählen, die an die programmierbare
Verzögerungsschaltung 1 wie
in 1 gezeigt angelegt werden. Wenn beide, I_CNTD
und I_CNTU, logisch 0 sind, dann werden die Signale F_CNTD und F_CNTU
als CNDU- bzw. CNTD-Ausgangssignale ausgewählt. Wenn eines von beiden,
I_CNTU oder I_CNTD, logisch 1 ist, dann werden die Signale I_CNTU
und I_CNTD als Ausgangssignal CNDU bzw. CNTD ausgewählt.
-
Der
23-Bit-Zähler 47 wird
verwendet, um ein festes Zeitintervall zu markieren, während dem
die Ausgangssignale CNTU und CNTD zu überwachen sind. Für jeden
Taktzyklus, in dem CNTU aktiv ist, zählt der Hoch-/Herunterzähler 47 um
1 hoch. Für
jeden Taktzyklus, in dem CNTD aktiv ist, zählt der Hoch-/Herunterzähler 47 um
1 herunter. Am Ende des Zeitintervalls wird der Wert aus dem Hoch-/Herunterzähler 47 in
den 23-Bit-Zwischenspeicher 51 übertragen, und der Zyklus wird
wiederholt. Diese Zahl ist die ganzzahlige Differenz zwischen der
Zahl der CNTU-Signale und der Zahl der CNTD-Signale, die während des
Zeitintervalls aufgetreten sind. Diese Differenz wird als Divisor
an die 23-Bit-Teilerschaltung 53 angelegt.
-
Die
vorzeichenlose 23-Bit-Konstante 0 × 7FFFFF, oder alle Bits gesetzt,
wird als Dividend an die Teilerschaltung 53 angelegt. Dies
hat zur Folge, dass der Dividend auf den maximalen Zählwert gesetzt
wird, den der Intervallzeitgeber erreichen kann. Die Teilerschaltung 53 verwendet
ein recht bekanntes Verfahren der sukzessiven Subtraktion, um eine lange
Division des Dividenden durch den Divisor auszuführen. Eine kurze Zusammenfassung
dieses Verfahrens lässt
sich wie folgt angeben:
- • Lade Dividend in Register;
setze Quotientenregister zurück.
Setze Verschiebungs-Zählregister zurück.
- • Wenn
der Divisor 0 ist, dann Beenden.
- • Wenn
der Divisor negativ ist (höchstwertiges
Bit gesetzt), dann negiere und setze NEG FLAG.
- • Verschiebe
Divisor nach links, bis MSB gesetzt ist. Inkrementiere bei jeder
Verschiebung das Verschiebungs-Zählregister.
- • Für (Verschiebungszählwert >= 0): Wenn (Dividend – Divisor)
positiv ist, dann setze die Quotientenregister-Bitzahl, die durch
den Verschiebungszähler
angegeben wird, und setze den Dividenden auf (Dividend – Divisor).
Dekrementiere den Verschiebungszähler,
und verschiebe den Divisor 1 Bitposition nach rechts.
- • Wenn
der Verschiebungszählwert
kleiner als 0 wird, dann speichere den restlichen Dividenden in das
Rest-Register. Das Quotientenregister wird den Quotienten enthalten.
-
Die
Teilerschaltung 53 weist aufßerdem einen LD_EN-Ausgang
auf. Das Signal von diesem Ausgang ist ein Ausgangsimpuls, der auf
der Zustandsmaschine, welche die Divisionsoperation ausführt, logisch
verknüpft
ist und verwendet wird, um anzuzeigen, wann die Teilerschaltung
die Divisionsoperation beendet hat. Zum Beispiel könnte der Endimpuls,
der benutzt wird, um das Laden des Rest-Registers freizugeben, für diese
Funktion verwendet werden.
-
Ein
Durchschnittsfachmann wird verstehen, wie Hardware für die Teilerschaltung 53 zu
entwerfen und auszuführen
ist. Alternativ können
Hardware-Synthetisierungseinrichtungen wie etwa der Synopsys Behavioral
Compiler verwendet werden, um diesen Strukturtyp zu synthetisieren.
-
Ungeachtet
des Vorhergehenden wird dann, wenn eine logische Null am Synchronisationszustandseingang
des Teilers 53 empfangen wird, keine Berechnung ausgeführt, und
es werden keine Veränderungen
an den aktuellen Werten des Rests und des Quotienten vorgenommen,
und es wird kein LD_EN-Ausgangsimpuls erzeugt.
-
Das
Frequenzgeneratormodul 55 nimmt den Quotienten, den Divisor,
den Rest und das Negativflag und verwendet diese, um eine zeitlich
regelmäßige Folge
von Impulsen F_CNTU oder F_CNTD zu erzeugen, die an das programmierbare
Verzögerungselement 1 angelegt
werden, um eine Komponente mit gleichbleibender Frequenz zu schaffen.
Wenn jedoch eine logische Null am Synchronisationszustandseingang
empfangen wird, dann werden keine Veränderungen an der Rate vorgenommen,
mit der F_CNTU oder F_CNTD erzeugt werden. Außerdem werden keine Impulse
an den Ausgängen
F_CNTU oder F_CNTD erzeugt, wenn ein Divisor von null festgestellt
wird.
-
Das
Blockschaltbild für
das Frequenzgeneratormodul 55 ist in 4 veranschaulicht.
Die Hauptkomponenten sind der Betragsvergleich 61, der
Gleichheitsvergleich 63, der 23-Bit-Zähler 65, der 23-Bit-Akkumulator 67 und
ein 23-Bit-Zähler 65.
-
Der
Zähler 65 ist
ein Synchronzähler
mit wohlbekannten Eigenschaften. Er führt für jeden Taktzyklus ein synchrones
Hochzählen
aus, wenn der LD-Eingang auf niedrigem Pegel ist. Sein Ausgang Q
wird mittels der Gleichheitsvergleichsschaltung 63 fortlaufend
mit dem 23-Bit-Quotienten
verglichen. Wenn der Quotient der Ausgabe des 23-Bit-Zählers gleich
wird, dann wird von der Gleichheitsvergleichsschaltung ein Signal
F_PLS erzeugt und auf den LD-Eingang des 23-Bit-Zählers 65 rückgekoppelt.
Bei jedem Übergang
des CLK-Eingangssignals, während
der LD-Eingang auf
hohem Pegel ist, wird der Zähler 65 mit
einer logischen 1 vorgeladen, wenn das LD0/1- Eingangssignal auf niedrigem Pegel ist,
oder er wird mit einer logischen 0 vorgeladen, wenn das LD0/1-Eingangssignal
auf hohem Pegel ist. Die Funktionsweise des 23-Bit-Zählers kann wie
folgt ausgedrückt
werden (Verilog HDL):
- • always@(posedge CLK) if(LD)Q <= LD0/1?23'h0 : 23'h1;
- • else
Q <= Q + 1;
-
Das
Signal F_PLS wird außerdem
in den Freigabeeingang des 23-Bit-Akkumulators 67 eingespeist,
der dafür
ausgelegt ist, eine laufende Summe der Rest-Eingabe zu halten. Mit
anderen Worten: Wenn das Freigabesignal auf den hohen Pegel übergeht,
wird der Betrag des Rests zu dem aktuellen Wert der Akkumulatorausgabe
Q addiert. Die Betragsvergleichsschaltung 61 überwacht
fortlaufend das Ausgangssignal des 23-Bit-Akkumulators, Q, und vergleicht
es mit dem Wert am Divisoreingang. Wenn das Ausgangssignal des 23-Bit-Akkumulators 67 größer als
der Wert am Divisoreingang oder diesem gleich wird, dann wird das
ADJ-Signal auf den hohen Pegel getrieben.
-
Der
23-Bit-Akkumulator 67 modifiziert seine Betriebsweise,
wenn sein ADJ-Eingang den hohen Pegel annimmt. Wenn der ADJ-Eingang
auf hohem Pegel ist, dann wird der Betrag des Rests zu dem Akkumulatorausgangssignal
Q addiert und der Betrag des Divisors wird von dem Akkumulatorausgangssignal
Q subtrahiert.
-
Der
LD-Eingang des 23-Bit-Akkumulators 67 wird verwendet, um
zu Beginn einer Frequenz-Abtastperiode, nachdem die Teilerschaltung
die Divisionsoperation abgeschlossen hat, den Anfangswert des Rests
in den Akkumulator zu laden.
-
Die
Funktionsweise des 23-Bit-Akkumulators kann kurz und bündig wie
folgt beschrieben werden (Verilog HDL):
always@(posedge CLK)
if(LD)Q <= REMAINDER;
else
begin
if(ENABLE) Q <=
ADJ?Q + REMAINDER – DIVISOR :
Q + REMAINDER;
end
-
Beide,
die Gleichheitsvergleichsschaltung 63 und die Betragsvergleichsschaltung 61,
sind nicht in allen Einzelheiten dargestellt, da sie triviale Komponenten
sind, die üblich
sind und deren Funktionsweise wohlbekannt ist, wie dem Durchschnittsfachmann selbstverständlich ist.
-
Die
Anordnung des 23-Bit-Zählers 65 und des
23-Bit-Akkumulators 67 sorgt für eine Impulsrate bei dem Signal
F_PLS, deren Periode proportional zum Wert des Quotienten ist. Außerdem wird
dann, wenn der 23-Bit-Akkumulator den ADJ-Impuls an den 23-Bit-Zähler 67 liefert,
der Zähler
eine Null statt einer Eins vorladen. Dies führt dazu, dass der Zähler einen
CLK-Impuls mehr
als während
der vorhergehenden Periode zählt.
Zugleich spreizt diese Anordnung die Wirkung des Rests über die
gesamte Frequenz-Abtastperiode und sorgt für eine präzisere Verteilung der Signale
F_CNTU und F_CNTD.
-
Das
Signal LD_EN wird wie in 2B gezeigt
durch das Teilermodul 53 bereitgestellt. Dieses Signal
wird mit dem Synchronisationszustands-Eingangssignal über Gatter
verknüpft,
um zu verhindern, dass die Schaltung ihren Betrieb ändert, wenn
der Verriegelungszustand entfernt wird. Die Frequenzgeneratorschaltung
von 3 zeigt keine Verknüpfungsschaltung, um die Erzeugung
des Signals F_PLS zu sperren, wenn der Wert des Divisors null ist.
Dies ist jedoch eine triviale Komponente, die nicht der Veranschaulichung
bedarf, wodurch die Übersichtlichkeit
von 3 erhalten bleibt.
-
Das
Signal F_PLS wird durch UND-Gatter 69 und 71 und
den INVERTER 73 mit dem NEG-Eingangssignal kombiniert,
um die Ausgangssignale F_CNTU und F_CNTD zu erzeugen. Wenn das Signal
F_PLS gepulst ist und das Signal NEG auf hohem Pegel ist, dann ist
das Signal F_CNTD aktiviert. Wenn das Signal F_PLS gepulst ist und
das Signal NEG auf niedrigem Pegel ist, dann ist das Signal F_CNTU
aktiviert.
-
Die
Hauptfunktionalität
der Frequenzgenerator- und Frequenzbeibehaltungsschaltung von 2B und 3 besteht
darin, die Nettoanzahl der Signale CNTU oder CNTD, die über eine
lange Zeitdauer an der programmierbaren Verzögerungsschaltung 1 anliegen,
während
die Phasendetektor- und Verriegelungsschaltung von 2A phasensynchron
ist, zu zählen
und dann die stationäre
Rate zu berechnen, mit welcher diese Signale an die programmierbare
Verzögerungsschaltung 1 angelegt werden
müssen,
um den gleichen Nettozählwert
zu erzielen.
-
Es
lässt sich
zeigen, dass dann, wenn die Frequenzgenerator- und Frequenzbeibehaltungsschaltung
diese Impulse verwendet, die Werte, die für den Hochzähler 35 und den Herunterzähler 33 in der
Phasendetektor- und Verriegelungsschaltung von 2A berechnet
werden, diese Komponente nicht länger
in ihre jeweiligen Zählwerte
einschließen werden
und folglich einander ähnlicher
werden. Wenn dies geschieht, ermöglicht
die Hoch-/Herunter-Vergleichsschaltung 37 dem
Hoch-/Herunterzähler 25,
bis zu einem höheren
Wert hochzuzählen, wodurch
sich die Rate verringert, mit welcher die Signale I_CNTU und I_CNTD
erzeugt werden, während der
Verriegelungszustand nach wie vor beibehalten wird. Dies wiederum
führt zu
einem weniger jittergestörten
Ausgangssignal.
-
Eine
Person, die die vorliegende Erfindung versteht, kann alternative
Ausführungsformen
und Anwendungen derselben ersinnen. Beispielsweise können die
Frequenz-Abtastperiode, die durch den Zähler 49 in 2B und
den Abtastperiodenzähler 31 in 2A erzeugt
ist, und ihre entsprechenden Schaltungen Zählerbreiten aufweisen, die
so eingestellt sind, dass einige der Betriebseigenschaften verändert werden.
Der oben erörterte
Vergleichswert von Fünf
(5) kann auch so eingestellt sein, dass die Betriebseigenschaften
geändert
werden. Weitere Anwendungen der Erfindung schließen nahezu jede Anwendung ein,
bei welcher ein Slave-Knoten mit einem Master-Knoten unter Verwendung einer Kommunikationsverbindung,
die eine interne Zeitbindung an den Masterknoten aufweist, verbunden
ist, wobei (1) die relative Phase des Slave-Knotens in Bezug auf
den Masterknoten wichtig ist, (2) die Signalgüte der Referenztakte am Slave-Knoten
wichtig ist, (3) die gemeinsame Stabilität von Master und Slave zusammen
wichtig ist und (4) der Integrationsgrad wichtig ist.