PatentDe  


Dokumentenidentifikation DE69835874T2 12.04.2007
EP-Veröffentlichungsnummer 0000973264
Titel Chipströmedekodierung
Anmelder Hewlett-Packard Development Co., L.P., Houston, Tex., US
Erfinder Beale, Martin Warwick, Sneyd Park, Bristol BS9 1QF, GB
Vertreter Schoppe, Zimmermann, Stöckeler & Zinkler, 82049 Pullach
DE-Aktenzeichen 69835874
Vertragsstaaten DE, FR, GB
Sprache des Dokument EN
EP-Anmeldetag 13.07.1998
EP-Aktenzeichen 983055674
EP-Offenlegungsdatum 19.01.2000
EP date of grant 13.09.2006
Veröffentlichungstag im Patentblatt 12.04.2007
IPC-Hauptklasse H03M 5/04(2006.01)A, F, I, 20051017, B, H, EP
IPC-Nebenklasse H04B 1/707(2006.01)A, L, I, 20051017, B, H, EP   

Beschreibung[de]

Diese Erfindung betrifft Datenströme, die in einen Chipstrom codiert wurden, so dass eine Chiprate und eine Phase des Chipstroms aus den codierten Daten abgeleitet werden können, und insbesondere bezieht sich die Erfindung auf ein Verfahren und eine Vorrichtung zum Decodieren derartiger Chipströme.

Es gibt viele Kommunikationssysteme, bei denen Daten zwischen einem Sender und einem Empfänger übertragen werden und bei denen der Sender nicht explizit eine Kopie des Taktsignals desselben überträgt. Die Daten werden unter Verwendung eines Codes übertragen, der sicherstellt, dass Zeitinformationen in den übertragenen Daten vorhanden sind. Derartige codierte Daten werden als ein „Chipstrom" bezeichnet. Bei einem derartigen System muss der Empfänger sowohl die Daten als auch die Zeitinformationen wiedergewinnen. Dies wurde in der Vergangenheit unter Verwendung einer Phasenregelschleife (PLL = Phase-Locked Loop) vorgenommen.

Eine herkömmliche digitale PLL führt eine Überabtastung des empfangenen Chipstroms unter Verwendung eines Takts durch, der eine Frequenz aufweist, die ein ganzzahliges Vielfaches der übertragenen Chiprate ist. Wenn die Chiprate erhöht ist (um eine schnellere Kommunikation zu liefern) und/oder wenn der Multiplikator des Überabtastungstakts erhöht ist (um einen besseren Betrieb der PLL zu liefern), kann die Frequenz des Überabtasttakts unhandhabbar hoch werden. Unter diesen Umständen könnte anstelle einer digitalen eine analoge PLL verwendet werden. Bei einem System jedoch, das einen analogen Empfänger- (oder Sende/Empfangsgerät-) Abschnitt und einen digitalen Steuerungsabschnitt aufweist, müsste eine derartige analoge PLL entweder mit dem Empfänger- (oder Sende/Empfangsgerät-) Abschnitt integriert sein, eine spezielle analoge Unterstützungs-IS einnehmen oder in eine Mischsignalsteuerung integriert sein. Alle dieser Optionen sind kostspieliger als ein Integrieren der PLL in die digitale Steuerung.

Die internationale Patentanmeldung WO97/08861 offenbart ein Verfahren und eine Vorrichtung zum Kommunizieren von digitalen Daten in mehreren Kanälen. Das System umfasst entfernte Einheiten und eine zentrale Einheit, zwischen denen Daten unter Verwendung einer Mehrzahl von Kanälen übertragen werden, wobei die Daten in Rahmen angeordnet sind. Rahmen sind unter Verwendung eines Entfernungsmessschemas synchronisiert, das Differenzen bei Ausbreitungsverzögerungen kompensiert.

Das Patent US-A-5077753 der Vereinigten Staaten bezieht sich auf ein Breitspektrum-Funkkommunikationssystem, das ein demoduliertes Signal mit einer pseudozufälligen Chipping-Sequenz korreliert und Takt- und Datensignale extrahiert. Die Chipping-Sequenz ist normalerweise aus einem Satz von Codes ausgewählt, der einen Elf-Bit-Basker-Code umfasst.

Die vorliegende Erfindung befasst sich mit den obigen Problemen und insbesondere mit einem Wiedergewinnen von Daten und Zeitinformationen auf eine derartige Weise, dass dasselbe in einer digitalen Steuerung durchgeführt werden kann, ohne den Bedarf nach einem Überabtasttakt, d. h. einem Takt, der eine Taktrate aufweist, die viele Male schneller als die Chiprate ist.

Gemäß einem ersten Aspekt der vorliegenden Erfindung ist ein Verfahren zum Decodieren eines Datenstroms vorgesehen, der in einen Chipstrom codiert wurde, so dass eine Chiprate und eine Phase des Chipstroms aus den codierten Daten abgeleitet werden können, wobei das Verfahren folgende Decodierschritte aufweist: Erzeugen eines Taktsignals (clk), das eine Taktrate aufweist, die näherungsweise gleich der Chiprate oder ein ganzzahliges Vielfaches derselben ist; dadurch gekennzeichnet, dass das Verfahren ferner folgende Schritte aufweist: Leiten des Chipstroms entlang einer mehrstufigen Verzögerungsleitung, die eine Verzögerung pro Stufe aufweist, die geringer als die Periode des Taktsignals ist; Abtasten von Daten des Chipstroms für jeden Taktzyklus bei einer Mehrzahl der Stufen der Verzögerungsleitung, um einen Satz von Überabtastungen (Überabtastungen, Q0-Q6) für jede Chipperiode zu erzeugen; Erzeugen eines Schätzwerts (Kantenpos) einer Position einer Chipkante in dem Chipstrom in einem jeweiligen Satz der Überabtastungen für jeden Taktzyklus; Auswählen zumindest einer der Überabtastungen (dec_chip(0), dec_chip(1)), die eine Position innerhalb eines eingegrenzten Bereichs mit Bezug auf die geschätzte Chipkantenposition aufweist, für zumindest einige der Taktzyklen; und Ausgeben der ausgewählten Überabtastungen.

Obwohl die Taktrate gewählt sein kann, um ein kleines ganzzahliges Vielfaches der ungefähren Chiprate zu sein, besteht kein Bedarf danach, um das Verfahren durchzuführen. Durch das Leiten des Chipstroms durch die Verzögerungsleitung werden Überabtastungen ohne den Bedarf nach einem Überabtasttakt erhalten.

Bei einer herkömmlichen PLL ist die PLL wirksam, um die Taktfrequenz einzustellen, und deshalb ist ein Oszillator mit variabler Frequenz erforderlich. Eine PLL-Handlung kann bei der vorliegenden Erfindung durch ein Einstellen des Schätzwerts der Position der Chipkante in den Überabtastungen erhalten werden, wobei so der Bedarf nach einem Oszillator mit variabler Frequenz umgangen wird. Bei der vorliegenden Erfindung ist die Taktrate in der Tat vorzugsweise fest. Ferner weist der Einfachheit halber jede ausgewählte Überabtastung vorzugsweise eine vorbestimmte Position mit Bezug auf die geschätzte Chipkantenposition auf.

Obwohl die Verzögerung pro Stufe in der Verzögerungsleitung fest und stabilisiert sein kann, erhöht dies die Komplexität und die Kosten des Empfängers. Bei der vorliegenden Erfindung muss die Verzögerung pro Stufe der Verzögerungsleitung nicht stabilisiert sein. Um Herstellungstoleranzen und eine Drift bei der Verzögerung pro Stufe beispielsweise in Abhängigkeit von Zeit, Spannung und Temperatur zu berücksichtigen, umfasst das Verfahren vorzugsweise ferner die folgenden Kalibrierungsschritte: Leiten eines Signals, das eine bekannte Periode aufweist (beispielsweise das oben erwähnte Taktsignal), in die Verzögerungsleitung; Abtasten von Daten des Signals mit bekannter Periode an einer Mehrzahl von Stufen der Verzögerungsleitung, um einen Satz von Kalibrierungsüberabtastungen zu erzeugen; Schätzen einer Angabe der Verzögerung pro Stufe der Verzögerungsleitung aus den abgetasteten Daten; und Speichern der Angabe einer Verzögerung pro Stufe. Die Kalibrierungsschritte werden bevorzugt intermittierend durchgeführt und während die Decodierschritte nicht durchgeführt werden. Zum Beispiel können die Kalibrierungsschritte bei einem Einschalten, wenn die Vorrichtung überträgt und wenn die Kommunikationsverbindung umgedreht wird, durchgeführt werden. Bei einem Empfangen weist dann der Schritt des Auswählens zumindest einer der Überabtastungen vorzugsweise folgende Schritte auf: Vornehmen einer ersten Auswahl einiger der Überabtastungen für jeden Taktzyklus in Abhängigkeit von der gespeicherten Verzögerungsangabe; Vornehmen einer zweiten Auswahl von zumindest einer der Überabtastungen, die eine vorbestimmte Position mit Bezug auf die geschätzte Chipkantenposition aufweist, aus der ersten Auswahl der Überabtastungen für zumindest einige der Taktzyklen.

Wie es oben erwähnt ist, kann eine PLL-Handlung bei der vorliegenden Erfindung durch ein Einstellen des Schätzwerts der Position der Chipkante in den Überabtastungen erhalten werden. Genauer gesagt weist der Schritt des Erzeugens des Chipkantenpositionsschätzwerts vorzugsweise folgende Schritte auf: Speichern eines Chipkantenpositionsschätzwerts; Erfassen irgendeiner Abweichung der Chipkantenposition von dem gespeicherten Chipkantenpositionsschätzwert für zumindest einige der Taktzyklen; und Einstellen des gespeicherten Chipkantenpositionsschätzwerts ansprechend auf eine derartige erfasste Abweichung. Der Einfachheit halber kann der gespeicherte Chipkantenpositionsschätzwert begrenzt sein, um einen vorbestimmten Bereich von Werten aufzuweisen. In diesem Fall können spezielle Schritte unternommen werden, falls der Chipkantenpositionsschätzwert eingestellt werden soll, so dass derselbe außerhalb des Bereichs liegt. Bei einem bevorzugten Ausführungsbeispiel der Erfindung wird insbesondere,

falls für einen Taktzyklus der Wert des gespeicherten Chipkantenpositionsschätzwerts über ein Ende des Bereichs desselben hinaus eingestellt werden muss, derselbe anstelle dessen auf das andere Ende des Bereichs desselben eingestellt und keine der Überabtastungen für eine Ausgabe ausgewählt; und falls für einen Taktzyklus der Wert des gespeicherten Chipkantenpositionsschätzwerts über das andere Ende des Bereichs desselben hinaus eingestellt werden muss, derselbe anstelle dessen auf das eine Ende des Bereichs desselben eingestellt und werden zwei der Überabtastungen für eine Ausgabe ausgewählt.

Gemäß einem dritten Aspekt der vorliegenden Erfindung ist eine Vorrichtung zum Decodieren eines Datenstroms vorgesehen, der in einen Chipstrom codiert wurde, so dass eine Chiprate und eine Phase des Chipstroms aus den codierten Daten abgeleitet werden können, wobei die Vorrichtung folgende Merkmale aufweist: einen Takt (10) zum Erzeugen eines Taktsignals (clk), das eine Taktrate aufweist, die näherungsweise gleich der Chiprate oder ein ganzzahliges Vielfaches derselben ist, dadurch gekennzeichnet, dass die Vorrichtung ferner folgende Merkmale aufweist: eine mehrstufige Verzögerungsleitung (14, 26(0)-(6)) zum Empfangen des Chipstroms, die eine Verzögerung pro Stufe aufweist, die geringer als die Periode des Taktsignals ist; eine Einrichtung, die durch das Taktsignal getaktet ist, zum Abtasten von Daten des Chipstroms bei jeder Stufe der Verzögerungsleitung, um einen Satz von Überabtastungen (Überabtastungen, Q0-Q6) für jede Chipperiode zu erzeugen; eine Einrichtung (20, 22) die durch das Taktsignal getaktet ist, zum Erzeugen eines Schätzwerts (Kantenpos) einer Position einer Chipkante in dem Chipstrom in einem jeweiligen Satz der Überabtastungen; eine Einrichtung (20, 22, 24), die auf das Taktsignal anspricht, zum Auswählen zumindest einer der Überabtastungen (dec_chip(0), dec_chip(1)), die eine Position innerhalb eines eingegrenzten Bereichs mit Bezug auf die geschätzte Chipkantenposition aufweist, für zumindest einige der Taktzyklen; und eine Einrichtung (24) zum Ausgeben der ausgewählten Überabtastungen.

Diese Vorrichtung ist vorzugsweise wirksam, um irgendeines oder mehrere der bevorzugten Merkmale des Verfahrens des ersten Aspekts der Erfindung durchzuführen.

Ein spezifisches Ausführungsbeispiel der vorliegenden Erfindung wird nun lediglich durch ein Beispiel mit Bezug auf die zugehörigen Zeichnungen beschrieben, in denen:

1 ein Blockdiagramm einer Vorrichtung ist, die die Erfindung verkörpert;

2 ein Schaltungsdiagramm einer abgetasteten Verzögerungsleitung ist, die einen Teil der Vorrichtung von 1 bildet;

3 ein Zeitdiagramm ist, um bei einem Verständnis des Betriebs der abgetasteten Verzögerungsleitung von 2 zu helfen;

4 zwei Sätze von Registern zum Speichern von Abtastwerten bei der Vorrichtung von 1 darstellt;

5a-f Beispiele der Inhalte der Register von 4 zeigen;

6a-c Beispiele der Inhalte der Register von 4 zeigen, wenn ein Kantenpos-Zeiger von einem Extrem zu einem anderen in eine Richtung springt, und

7a, b Beispiele der Inhalte der Register von 4 zeigen, wenn der Kantenpos-Zeiger von einem Extrem zu einem anderen in die entgegengesetzte Richtung springt.

Zuerst wird eine Übersicht der Vorrichtung von 1 gegeben. Die Vorrichtung weist zwei Betriebsmodi auf: „Decodieren" und „Kalibrierung". Der Kalibrierungsmodus wird wiederholt eingesetzt, wenn die Vorrichtung nicht empfängt, beispielsweise bei einem Einschalten, wenn die Vorrichtung überträgt und wenn die Kommunikationsverbindung umgedreht wird. In dem Kalibrierungsmodus wird durch einen Schalter 12 ein Rechteckwellentaktsignal clk von einem Taktgenerator 10 (oder irgendein anderes Signal bekannter Periode) unter Steuerung einer Kalibrierungssteuerschaltung 16 als ein Signal dl_Eingabe zu einer mehrstufigen abgetasteten Verzögerungsleitungsschaltung 14 geleitet. Das clk-Signal wird auch als eine Takteingabe zu der Verzögerungsleitungsschaltung 14 geliefert. Jede Stufe der Verzögerungsleitungsschaltung 14 liefert eine Verzögerung, die kürzer als die Periode des clk-Signals ist, die zwischen einer Schaltung und einer anderen aufgrund von Herstellungstoleranzen variieren kann und die mit Zeit, Spannung und Temperatur driften kann. Jede Stufe der Verzögerungsleitungsschaltung 14 ist abgegriffen, um ein jeweiliges Element eines Überabtastungen-Signals zu liefern. Das Überabtastungen-Signal wird der Kalibrierungssteuerschaltung 16 zugeführt, die die Anzahl von Stufen der Verzögerungsleitungsschaltung 14 bestimmt, die zusammen eine Verzögerung erzeugen, die im Allgemeinen gleich der Periode des clk-Signals ist, und diese Anzahl wird als ein Signal ffs_pro_Zyklus gespeichert.

Der Decodiermodus der Vorrichtung wird eingesetzt, wenn die Vorrichtung empfängt. Die Vorrichtung empfängt ein Chipstromsignal rxchip, das eine Chiprate aufweist, die näherungsweise gleich der Frequenz des clk-Signals ist. Das Chipstromsignal rxchip wird durch den Schalter 12 unter Steuerung der Kalibrierungssteuerschaltung 16 als das dl_Eingabe-Signal zu der Verzögerungsleitungsschaltung 14 geleitet. Die Verzögerungsleitungsschaltung 14 erzeugt bei jedem Zyklus des clk-Signals ein Überabtastungen-Signal, das eine Anzahl von Abtastwerten aufweist, die gleich der Anzahl von Stufen in der Verzögerungsleitungsschaltung 14 ist, und das Überabtastungen-Signal wird zu einer Phasenauswahlschaltung 18 geleitet, die ferner das vorhergehend berechnete ffs_pro_Zyklus-Signal von der Kalibrierungssteuerschaltung 16 empfängt. Bei jedem Zyklus des clk-Signals wählt die Phasenauswahlschaltung 18 eine vorbestimmte Anzahl von Abtastwerten des Überabtastungen-Signals aus, die so regelmäßig wie möglich über die ersten ffs_pro_Zyklus-Abtastwerte gestreut sind, beginnend mit dem am wenigsten verzögerten Abtastwert. Die ausgewählten Abtastwerte werden als ein Signal ausgewählte_Abtastwerte zu einer Kantenextraktionsschaltung 20 geleitet, die dieses Signal als aktuelle_ausgewählte_Abtastwerte speichert und ferner das unmittelbar vorhergehende Signal als vorhergehende_ausgewählte_Abtastwerte speichert. Die Kantenextraktionsschaltung 20 ist in Zusammenwirkung mit einer Kantenpositionsschaltung 22 als eine Phasenregelschleife wirksam. Die Kantenpositionsschaltung 22 behält ein Signal Kantenpos bei, das ein Schätzwert der Position einer Chipkante des Chipstroms innerhalb von aktuelle_ausgewählte_Abtastwerte und vorhergehende ausgewählte_Abtastwerte ist, und das Kantenpos-Signal wird zu der Kantenextraktionsschaltung 20 geliefert. Die Kantenextraktionsschaltung 20 erzeugt einen Schätzwert dessen, ob die Kante des eingehenden Chips früher oder später als erwartet auftritt, als eine Funktion von aktuelle_ausgewählte_Abtastwerte, vorhergehende_ausgewählte_Abtastwerte und Kantenpos und erzeugt ein entsprechendes auf oder ab-Signal, das zu der Kantenpositionsschaltung 22 geliefert wird. Die Kantenpositionsschaltung 22 modifiziert den Wert des Kantenpos-Signals in Abhängigkeit von dem auf oder ab-Signal. Bei jedem Zyklus des clk-Signals wählt die Kantenextraktionsschaltung 20 zwei der Abtastwerte aus dem Satz aktuelle_ausgewählte_Abtastwerte und vorangehende_ausgewählte_Abtastwerte aus und liefert dieselben als dec_chip(0), dec_chip(1) zu einer Wiederaufbauschaltung 24, wobei die zwei ausgewählten Abtastwerte dec_chip(0), dec_chip(1) zu jeder Zeit der Kantenpos-Position innerhalb von aktuelle_ausgewählte_Abtastwerte und vorangehende_ausgewählte_Abtastwerte um einen vorbestimmten Betrag gleichmäßig beabstandet sind. Ferner erzeugt bei jedem Zyklus des clk-Signals die Kantenpositionsschaltung 22 ein Signal n_dec_chips, das angibt, ob jeder der ausgewählten Abtastwerte dec_chip(0), dec_chip(1) bei einem Decodieren des Chipstroms verwendet werden soll oder nicht, und liefert das Signal n_dec_chips zu der Wiederaufbauschaltung 24. Ferner wählt bei jedem Zyklus des clk-Signals die Wiederaufbauschaltung 24 keinen, einen, den anderen oder beide der Abtastwerte dec_chip(0), dec_chip(1) in Abhängigkeit von dem Wert von n_dec_chips aus und schließt denselben/dieselben in einem Ausgangssignal decodierter_Strom ein oder wandelt die Bits von seriell zu parallel um, um ein paralleles Ausgangssignal zu erzeugen.

Es ist zu beachten, dass, falls die Chiprate des rxchip-Signals genau gleich der Frequenz des clk-Signals wäre (und falls die Verzögerung jeder Stufe in der Verzögerungsleitung 14 sich niemals veränderte), dann bei einer Empfangssitzung der Wert des Kantenpos-Signals konstant bleiben würde und bei jedem Zyklus des clk-Signals ein Abtastwert bei einer konstanten Position in dem Satz aktuelle_ausgewählte_Abtastwerte und vorangehende_ausgewählte_Abtastwerte für die Ausgabe ausgewählt würde. Das clk-Signal ist jedoch nicht mit dem rxchip-Signal synchronisiert. Um damit umzugehen, modifiziert die Vorrichtung den Wert des Kantenpos-Signals, so dass, falls die Frequenz des clk-Signals etwas höher als die Chiprate des rxchip-Signals ist, die geschätzte Position der Chipkante, wie es durch das Kanten-pos-Signal definiert ist, sich in eine Richtung durch den Satz von aktuelle_ausgewählte_Abtastwerte und vorangehende ausgewählte_Abtastwerte bewegt, und falls die Frequenz des clk-Signals etwas niedriger als die Chiprate des rxchip-Signals ist, sich die geschätzte Position der Chipkante, wie es durch das Kantenpos-Signal definiert ist, in die entgegengesetzte Richtung durch den Satz aktuelle_ausgewählte_Abtastwerte und vorangehende_ausgewählte_Abtastwerte bewegt. Wie es unten detaillierter beschrieben wird, wird, falls und wenn die geschätzte Position der Chipkante sich einem Ende des Satzes von aktuelle_ausgewählte_Abtastwerte und vorangehende_ausgewählte_Abtastwerte nähert, zu dem anderen Ende gesprungen und werden zwei Abtastwerte anstelle von einem ausgegeben; und falls und wenn die geschätzte Position der Chipkante sich dem anderen Ende des Satzes aktuelle_ausgewählte_Abtastwerte und vorangehende_ausgewählte_Abtastwerte nähert, wird zu dem ersten Ende gesprungen und kein Abtastwert anstelle von einem Abtastwert gegeben.

Nachdem ein Überblick der Vorrichtung geliefert wurde, wird nun die Verzögerungsleitungsschaltung 14 mit Bezug auf 2 und 3 detaillierter beschrieben.

Das dl_Eingabe-Signal wird der Verzögerungsleitungsschaltung 14 zugeführt, die durch eine Reihe von Gattern 26(0)-(6) gebildet ist, typischerweise nichtinvertierenden Puffern. Der Einfachheit halber sind in 2 lediglich sieben Gatter 26(0)-(6) gezeigt; in der Praxis wären wahrscheinlich mehr vorgesehen. Abgriffe werden von den Ausgängen der Gatter 26(0)-(6) genommen, um jeweilige Signale D0-D6 zu liefern, die als die Dateneingaben zu einer Reihe von Flip-Flops 28(0)-(6) geliefert werden, die durch das clk-Signal getaktet sind. Die Ausgaben Q0-Q6 aus den Flip-Flops 28(0)-(6) bilden das Überabtastungen-Signal. Es ist ersichtlich, dass, falls die Verzögerung pro Gatter 26(0)-(6) Tg beträgt, dann das n-te Flip-Flop 26(n – 1) einen Abtastwert von rxchip bei einer Zeit t – n. Tg umfasst, wobei t die aktuelle Zeit ist.

Bei dem oben beschriebenen Kalibrierungsmodus erzeugt das clk-Signal ein charakteristisches Muster in dem Überabtastungen-Signal, aus dem die Kalibrierungssteuerschaltung 16 den Schätzwert ffs_pro_Zyklus der Periode des clk-Signals geteilt durch die Verzögerung Tg pro Gatter 26(0)-(6) erzeugen kann. Falls beispielsweise ein Beispiel des Überabtastungen-Signals (Q0, ..., Q6) = (0, 0, 0, 1, 1, 1, 0) ist, dann wird ffs_pro_Zyklus als 6 geschätzt. Die Verzögerungsleitungsschaltung 14 muss genug Stufen aufweisen, um eine ausreichende Anzahl von Abtastwerten unter langsamsten Gatterbedingungen zu liefern und um eine ganze Chipperiode unter schnellsten Gatterbedingungen abzudecken. Bei einem Prozess beispielsweise, bei dem die Verzögerung Tg pro Gatter 26(0)-(6) als eine Funktion von Prozess, Zeit, Spannung und Temperatur um einen Faktor von 4 variieren kann und zumindest sechs Überabtastungen innerhalb des Chips erforderlich sind, muss dann die Verzögerungsleitungsschaltung 14 zumindest 6 × 4 = 24 Gatter aufweisen.

3 ist ein Zeitdiagramm für die Verzögerungsleitungsschaltung 14, wenn dieselbe in dem Decodiermodus wirksam ist. Das clk-Signal einer Periode Tg ist in dem oberen Abschnitt der Zeichnung gezeigt. Die Flip-Flops 28(0)-(6) latchen bei der ansteigenden Flanke 30 des clk-Signals. Der nächste Abschnitt von 3 zeigt in einer durchgezogenen Linie einen Abschnitt des dl_Eingabe-Signals. Die verbleibenden Abschnitte von 3 zeigen in Paaren die Eingangssignale D0-D6 zu den Flip-Flops 28(0)-(6) und entsprechende Ausgangssignale Q0-Q6 aus denselben. Wie es zu sehen ist, ist jedes Signal Dn von einem speziellen Gatter 26(n) um Tg mit Bezug auf das Signal D(n – 1) von dem vorhergehenden Gatter 26(n – 1) in der Verzögerungsleitungsschaltung 14 verzögert. Es ist ferner zu sehen, dass bei dem gegebenen Beispiel ein Überabtastungen-Signal von (Q0, ..., Q6) = (1, 1, 1, 0, 0, 0, 0) erzeugt wird.

Wie es oben erwähnt ist, wählt bei jedem Zyklus des clk-Signals die Phasenauswahlschaltung 18 eine vorbestimmte Anzahl von Abtastwerten (ausgewählte_Abtastwerte) des Überabtastungen-Signals aus, die so regelmäßig wie möglich über die ersten ffs_pro_Zylus-Abtastwerte gestreut sind, beginnend mit dem am wenigsten verzögerten Abtastwert. Man nehme beispielsweise an, dass die erforderliche Anzahl von Abtastwerten in ausgewählte_Abtastwerte Sechs beträgt (wobei die Abtastwerte als P0, ..., P5 bezeichnet sind), und man nehme an, dass der aktuelle Wert von ffs_pro_Zyklus 7 ist. In diesem Fall würde die Phasenauswahlschaltung 18 (P0, P1, P2, P3, P4, P5) = (Q0, Q1, Q2, Q3, Q4, Q5, Q6) wählen, d. h. Q3 und, falls verfügbar, Q7 und einen jeglichen höher nummerierten Abtastwert in Überabtastungen weglassen. Allgemeiner für den Fall ausgedrückt, dass die vorbestimmte Anzahl von Abtastwerten in ausgewählte_Abtastwerte Sechs beträgt, kann die Auswahl der Abtastwerte in Überabtastungen für verschiedene Werte von ffs_pro_Zyklus so sein, wie es in der folgenden Tabelle angegeben ist.

Es ist ersichtlich, dass die Phasenauswahlschaltung 18 durch eine Array von Logikgattern oder auf andere Arten implementiert sein kann.

Wie es oben erwähnt ist, werden die ausgewählten Abtastwerte in ausgewählte_Abtastwerte bei jedem Zyklus des clk-Signals zu der Kantenextraktionsschaltung 20 geliefert, die das empfangene Signal als aktuelle_ausgewählte_Abtastwerte in einem Register 32 speichert, wie es in 4 gezeigt ist, und ferner das unmittelbar vorhergehende Signal als vorhergehnde ausgewählte_Abtastwerte (die Abtastwerte pP0, ..., pP5 umfassen) in einem Register 34 speichert. Wie es ebenfalls oben erwähnt ist, empfängt die Kantenextraktionsschaltung 20 ein Kantenpos-Signal von der Kantenpositionsschaltung 22. Das Kantenpos-Signal kann die gleiche Anzahl von Werten wie die Anzahl von Abtastwerten in ausgewählte Abtastwerte annehmen, d. h. Sechs bei dem gegebenen Beispiel, wie beispielsweise 0 ≤ Kantenpos ≤ 5. Die verschiedenen Positionen in den Registern 32, 34, zu denen das Kantenpos-Signal für jeden seiner Werte 0, ..., 5 zeigen soll, sind jeweils in 5a-f gezeigt, d. h. von zwischen den Registern, die Abtastwerte P2, P3 enthalten, bis zwischen die Register, die die Abtastwerte pP1, pP2 enthalten. Wie es ebenfalls oben erwähnt ist, gibt bei jedem Zyklus des clk-Signals die Kantenextraktionsschaltung 20 zwei der Abtastwerte dec_chip(0), dec_chip(1) aus, die um einen vorbestimmten Betrag zu jeder Seite der Kantenpos-Position gleichmäßig beabstandet sind. Diese zwei Abtastwerte dec_chip(0), de_chip(1) sind in 5a-f markiert und für jeden Wert von Kantenpos sind, wie es zu sehen ist, die Abtastwerte dec_chip(0), dec_chip(1) und die Position von Kantenpos so, wie es in der folgenden Tabelle angegeben ist.

5a-f zeigen Beispiele der Abtastwerte P0-P5, pP0-pP5 des Chipstroms, wobei Kantenpos mit einer Chipkante in dem Chipstrom korrekt ausgerichtet ist. Bei jedem Zyklus des clk-Signals bestimmt die Kantenextraktionsschaltung 20, ob Kantenpos von einer derartigen Chipkante gedriftet zu sein scheint. Falls beispielsweise die zwei Abtastwerte zu der linken und die zwei Abtastwerte zu der Rechten von dem Kantenpos (von links nach rechts gelesen) 1, 0, 0, 0 oder 0, 1, 1, 1 sind, dann muss Kantenpos erhöht werden, und dies wird durch das auf_oder_ab-Signal der Kantenpositionsschaltung 22 angegeben. Falls jedoch die zwei Abtastwerte zu der linken und der Rechten von Kantenpos 1, 1, 1, 0 oder 0, 0, 0, 1 sind, dann muss Kantenpos verringert werden, und dies wird durch das auf_oder_ab-Signal der Kantenpositionsschaltung 20 angegeben. Falls jedoch die zwei Abtastwerte zu der Linken und der Rechten von Kantenpos 1, 1, 0, 0 oder 0, 0, 1, 1 sind, gibt dies an, dass Kantenpos korrekt positioniert ist. Falls die zwei Abtastwerte zu der Linken und der Rechten von Kantenpos 0, 0, 0, 0 sind, wird angenommen, dass es nicht möglich ist, zu bestimmen, ob Kantenpos korrekt positioniert ist. Falls die zwei Abtastwerte zu der Linken und der Rechten von Kantenpos 1, 1, 1, 1 sind, wird der dritte Abtastwert zu der Linken geprüft, falls derselbe 1 ist, wird angenommen, dass es nicht möglich ist, zu bestimmen, ob Kantenpos korrekt positioniert ist, und es wird kein Versuch unternommen, Kantenpos zu ändern. Falls derselbe jedoch 0 ist, wird eine Angabe, dass Kantenpos erhöht werden muss, zu der Kantenpositionsschaltung 22 durch das auf_oder_ab-Signal geliefert. Dieses letztgenannte Merkmal unterstützt bei einem Verriegeln von Kantenpos auf die Chipkante während einer Präambel bei dem Beginn eines Empfangs, wenn Kantenpos anfänglich ein beliebiger Wert, wie beispielsweise 0 gegeben wird. Wie es oben beschrieben ist, werden normalerweise vier Abtastwerte verwendet, um die Korrektheit von Kantenpos zu bewerten, aber es könnten normalerweise andere Anzahlen von Abtastwerten verwendet werden, beispielsweise sechs Abtastwerte. Es ist klar, dass die Kantenextraktionsschaltung 20 durch ein Array von Logikgattern oder auf andere Arten implementiert sein kann.

Wie es oben erwähnt ist, empfängt die Kantenpositionsschaltung 22 das auf_oder_ab-Signal und erzeugt das Kantenpos-Signal und das n_dec_chips-Signal. Bei einem Bestimmen, ob das Kantenpos-Signal zu verändern ist, kann die Kantenpositionsschaltung 22 angeordnet sein, um für jeden Zyklus des clk-Signals, falls angemessen, unabhängig auf jedes auf_oder_ab_Signal anzusprechen, oder dieselbe kann beispielsweise angeordnet sein, um die auf_oder_ab-Signale für zwei oder mehr aufeinanderfolgende Zyklen des clk-Signals zu mitteln. In den meisten Fällen gibt das n_dec_chips-Signal, das durch die Kantenpositionsschaltung 22 erzeugt wird, an, dass lediglich einer der Abtastwerte dec_chip(0), dec_chip(1), die durch die Kantenextraktionsschaltung 20 ausgegeben werden, durch die Wiederaufbauschaltung 24 verwendet werden soll, beispielsweise dec_chip(0). Vorausgesetzt, dass der Wert von Kantenpos sich nicht verändert oder derselbe zwischen dem minimalen und dem maximalen Wert desselben (0 und 5 bei dem Beispiel) um Eins inkrementiert oder dekrementiert wird, verändert sich der wert von n_dec_chips nicht. Es gibt jedoch zwei Fälle, bei denen dies nicht der Fall ist, wie es nun mit Bezug auf 6a-c bzw. 7a, b beschrieben wird.

Mit Bezug auf 6a-c kommt, wenn Kantenpos zeitlich später und später (in den Zeichnungen nach rechts) bewegt wird, eine Zeit, wenn die erwartete Position der Kante sich zu einer Zeit bewegt, die später als diese ist, die durch Kantenpos = 0 angegeben ist, wie es in 6a zu einer Zeit t gezeigt ist. In diesem Fall wird n_dec_chips gesetzt, so dass weder dec_chip(0) noch dec_chip(1) verwendet wird. Bei dem nächsten Zyklus des clk-Signals zu einer Zeit t + Tc wird Kantenpos auf 5 gesetzt und der Abtastwert dec_chip(0) wird verwendet. Folglich lautet bei den Werten der Abtastwerte, die in 6a-c gezeigt sind, die erhaltene Ausgabe wie folgt:

Zu einer Zeit t, kein ausgegebener Abtastwert.

Zu einer Zeit t + Tc Kantenpos von 0 auf 5 verändert; ausgegebener Abtastwert dec_chip(0) = 0.

Bei Zeit t + 2Tc bleibt Kantenpos bei 5; ausgegebener Abtastwert dec_chip(0) = 1.

Kombinierte Ausgabe für t bis t + 2Tc: 0, 1.

Im Gegensatz dazu kommt mit Bezug auf 7a, b, wenn Kantenpos zeitlich früher und früher (in den Zeichnungen nach links) bewegt wird, eine Zeit, wenn die erwartete Position der Kante sich zu einer Zeit bewegt, die früher als diese ist, die durch Kantenpos = 5 angegeben ist, wie es in 7a bei einer Zeit t gezeigt ist. In diesem Fall wird n_dec_chips gesetzt, so dass sowohl dec_chip(0) als auch dec_chip(1) verwendet werden. Bei dem nächsten Zyklus des clk-Signals zu einer Zeit t + Tc wird Kantenpos auf 0 gesetzt und der Abtastwert dec_chip(0) wird verwendet. Folglich lautet bei den Werten der Abtastwerte, die in 7a, b gezeigt sind, die erhaltene Ausgabe wie folgt: Bei Zeit t, ausgegebene Abtastwerte dec_chip(0) = 0 und dec_chip(1) = 1.

Bei Zeit t + Tc Kantenpos von 5 zu 0 verändert; ausgegebener Abtastwert dec_chip(0) = 0.

Kombinierte Ausgabe für t – t + Tc: 0, 1, 0.

Es ist ersichtlich, dass die Kantenpositionsschaltung 22 und die Wiederaufbauschaltung 24 durch ein Array von Logikgattern oder auf andere Arten implementiert sein können.

Es ist zu beachten, dass das Ausführungsbeispiel der Erfindung oben lediglich durch ein Beispiel beschrieben wurde und dass viele Modifikationen und Entwicklungen an dem beschriebenen Ausführungsbeispiel innerhalb des Schutzbereichs der Erfindung vorgenommen werden können, der durch die zugehörigen Ansprüche vorgesehen ist.

Bei dem oben beschriebenen Ausführungsbeispiel verwendet die Kantenextraktionsschaltung beispielsweise aktuelle_ausgewählte_Abtastwerte und vorhergehene_ausgewählte_Abtastwerte. Alternativ könnte die Verzögerungsleitungsschaltung 14 zweimal so viele Stufen umfassen und könnte die Phasenauswahlschaltung 18 zweimal so viele Abtastwerte auswählen, die über die ersten 2 × ffs_pro_Zyklus-Abtastwerte gestreut sind, so dass bei dem gegebenen Beispiel die Anzahl von Abtastwerten in ausgewählte_Abtastwerte Zwölf betragen würde.


Anspruch[de]
Ein Verfahren zum Decodieren eines Datenstroms, der in einen Chipstrom codiert wurde, so dass eine Chiprate und eine Phase des Chipstroms aus den codierten Daten abgeleitet werden können, wobei das Verfahren folgende Decodierschritte aufweist:

Erzeugen eines Taktsignals (clk), das eine Taktrate aufweist, die näherungsweise gleich der Chiprate oder ein ganzzahliges Vielfaches derselben ist; dadurch gekennzeichnet, dass das Verfahren ferner folgende Schritte aufweist:

Leiten des Chipstroms entlang einer mehrstufigen Verzögerungsleitung (14, 26(0)-(6)), die eine Verzögerung pro Stufe aufweist, die geringer als die Periode des Taktsignals ist;

Abtasten von Daten des Chipstroms für jeden Taktzyklus bei einer Mehrzahl der Stufen der Verzögerungsleitung, um einen Satz von Überabtastungen (Überabtastungen, Q0-Q6) für jede Chipperiode zu erzeugen;

Erzeugen eines Schätzwerts (Kantenpos) einer Position einer Chipkante in dem Chipstrom in einem jeweiligen Satz der Überabtastungen für jeden Taktzyklus;

Auswählen zumindest einer der Überabtastungen (dec_chip(0), dec_chip(1)), die eine Position innerhalb eines eingegrenzten Bereichs mit Bezug auf die geschätzte Chipkantenposition aufweist, für zumindest einige der Taktzyklen; und

Ausgeben der ausgewählten Überabtastungen.
Ein Verfahren gemäß Anspruch 1, bei dem die Taktrate fest ist. Ein Verfahren gemäß Anspruch 1 oder 2, bei dem die ausgewählte Überabtastung eine vorbestimmte Position mit Bezug auf die geschätzte Chipkantenposition aufweist. Ein Verfahren gemäß einem der vorhergehenden Ansprüche, bei dem die Verzögerung pro Stufe (Tg) der Verzögerungsleitung unstabilisiert ist. Ein Verfahren gemäß einem der vorhergehenden Ansprüche, das ferner Kalibrierungsschritte umfasst, die folgende Schritte aufweisen:

Leiten eines Signals (clk), das eine bekannte Periode aufweist, in die Verzögerungsleitung;

Abtasten von Daten des Signals mit bekannter Periode an einer Mehrzahl von Stufen der Verzögerungsleitung, um einen Satz von Kalibrierungsüberabtastungen (Überabtastungen, Q0-Q6) zu erzeugen;

Schätzen einer Angabe (ffs_pro_Zyklus) der Verzögerung pro Stufe der Verzögerungsleitung aus den abgetasteten Daten; und

Speichern der Angabe einer Verzögerung pro Stufe.
Ein Verfahren gemäß Anspruch 5, bei dem das Signal mit bekannter Periode das Taktsignal (clk) ist. Ein Verfahren gemäß Anspruch 5 oder 6, bei dem die Kalibrierungsschritte intermittierend durchgeführt werden, während die Decodierschritte nicht durchgeführt werden. Ein Verfahren gemäß einem der Ansprüche 5 bis 7, bei dem bei den Decodierschritten der Schritt des Auswählens zumindest einer der Überabtastungen (dec_chip(0), dec_chip(1)) folgende Schritte aufweist:

Vornehmen einer ersten Auswahl einiger der Überabtastungen (ausgewählte_Abtastwerte) für jeden Taktzyklus in Abhängigkeit von der gespeicherten Verzögerungsangabe (ffs_pro_Zyklus);

Vornehmen einer zweiten Auswahl von zumindest einer der Überabtastungen (dec_chip(0), dec_chip(1)), die eine vorbestimmte Position mit Bezug auf die geschätzte Chipkantenposition aufweist, aus der ersten Auswahl der Überabtastungen für zumindest einige der Taktzyklen.
Ein Verfahren gemäß einem der vorhergehenden Ansprüche, bei dem bei den Decodierschritten der Schritt des Erzeugens des Chipkantenpositionsschätzwerts (Kantenpos) folgende Schritte aufweist:

Speichern eines Chipkantenpositionsschätzwerts;

Erfassen irgendeiner Abweichung der Chipkantenposition von dem gespeicherten Chipkantenpositionsschätzwert für zumindest einige der Taktzyklen; und

Einstellen des gespeicherten Chipkantenpositionsschätzwerts ansprechend auf eine derartige erfasste Abweichung.
Ein Verfahren gemäß Anspruch 9, bei dem:

der gespeicherte Chipkantenpositionsschätzwert einen vorbestimmten Bereich von Werten aufweist;

falls für einen Taktzyklus der Wert des gespeicherten Chipkantenpositionsschätzwerts über ein Ende des Bereichs desselben hinaus eingestellt werden muss, derselbe anstelle dessen auf das andere Ende des Bereichs desselben eingestellt wird und keine der Überabtastungen (dec_chip(0), dec_chip(1)) für eine Ausgabe ausgewählt wird; und

falls für einen Taktzyklus der Wert des gespeicherten Chipkantenpositionsschätzwerts über das andere Ende des Bereichs desselben hinaus eingestellt werden muss, derselbe anstelle dessen auf das eine Ende des Bereichs desselben eingestellt wird und zwei der Überabtastungen (dec_chip(0), dec_chip(1)) für eine Ausgabe ausgewählt werden.
Eine Vorrichtung zum Decodieren eines Datenstroms, der in einen Chipstrom codiert wurde, so dass eine Chiprate und eine Phase des Chipstroms aus den codierten Daten abgeleitet werden können, wobei die Vorrichtung folgende Merkmale aufweist:

einen Takt (10) zum Erzeugen eines Taktsignals (clk), das eine Taktrate aufweist, die näherungsweise gleich der Chiprate oder ein ganzzahliges Vielfaches derselben ist, dadurch gekennzeichnet, dass die Vorrichtung ferner folgende Merkmale aufweist:

eine mehrstufige Verzögerungsleitung (14, 26(0)-(6)) zum Empfangen des Chipstroms, die eine Verzögerung pro Stufe aufweist, die geringer als die Periode des Taktsignals ist;

eine Einrichtung (14, 28(0)-(6)), die durch das Taktsignal getaktet ist, zum Abtasten von Daten des Chipstroms bei jeder Stufe der Verzögerungsleitung, um einen Satz von Überabtastungen (Überabtastungen, Q0-Q6) für jede Chipperiode zu erzeugen;

eine Einrichtung (20, 22) die durch das Taktsignal getaktet ist, zum Erzeugen eines Schätzwerts (Kantenpos) einer Position einer Chipkante in dem Chipstrom in einem jeweiligen Satz der Überabtastungen;

eine Einrichtung (20, 22, 24), die auf das Taktsignal anspricht, zum Auswählen zumindest einer der Überabtastungen (dec_chip(0), dec_chip(1)), die eine Position innerhalb eines eingegrenzten Bereichs mit Bezug auf die geschätzte Chipkantenposition aufweist, für zumindest einige der Taktzyklen; und

eine Einrichtung (24) zum Ausgeben der ausgewählten Überabtastungen.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com