DE60206402T2 - Vorrichtung und Verfahren zur Verteilung von digitalen Daten - Google Patents

Vorrichtung und Verfahren zur Verteilung von digitalen Daten Download PDF

Info

Publication number
DE60206402T2
DE60206402T2 DE60206402T DE60206402T DE60206402T2 DE 60206402 T2 DE60206402 T2 DE 60206402T2 DE 60206402 T DE60206402 T DE 60206402T DE 60206402 T DE60206402 T DE 60206402T DE 60206402 T2 DE60206402 T2 DE 60206402T2
Authority
DE
Germany
Prior art keywords
data
cdma
block
bits
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60206402T
Other languages
English (en)
Other versions
DE60206402D1 (de
Inventor
Thierry Fernandez
Olivier Grenie
Vincent Buchoux
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Laboratoire Europeen ADSL SAS
Original Assignee
EUROP ADSL COURBEVOIE LAB
Laboratoire Europeen ADSL SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EUROP ADSL COURBEVOIE LAB, Laboratoire Europeen ADSL SAS filed Critical EUROP ADSL COURBEVOIE LAB
Publication of DE60206402D1 publication Critical patent/DE60206402D1/de
Application granted granted Critical
Publication of DE60206402T2 publication Critical patent/DE60206402T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B3/00Line transmission systems
    • H04B3/54Systems for transmission via power distribution lines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B2203/00Indexing scheme relating to line transmission systems
    • H04B2203/54Aspects of powerline communications not already covered by H04B3/54 and its subgroups
    • H04B2203/5404Methods of transmitting or receiving signals via power distribution lines
    • H04B2203/5408Methods of transmitting or receiving signals via power distribution lines using protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B2203/00Indexing scheme relating to line transmission systems
    • H04B2203/54Aspects of powerline communications not already covered by H04B3/54 and its subgroups
    • H04B2203/5404Methods of transmitting or receiving signals via power distribution lines
    • H04B2203/5416Methods of transmitting or receiving signals via power distribution lines by adding signals to the wave form of the power source
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B2203/00Indexing scheme relating to line transmission systems
    • H04B2203/54Aspects of powerline communications not already covered by H04B3/54 and its subgroups
    • H04B2203/5404Methods of transmitting or receiving signals via power distribution lines
    • H04B2203/5425Methods of transmitting or receiving signals via power distribution lines improving S/N by matching impedance, noise reduction, gain control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B2203/00Indexing scheme relating to line transmission systems
    • H04B2203/54Aspects of powerline communications not already covered by H04B3/54 and its subgroups
    • H04B2203/5462Systems for power line communications
    • H04B2203/5483Systems for power line communications using coupling circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Communication Control (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

  • Die vorliegende Erfindung hat ein digitales Datenverteilungssystem zur Aufgabe, das eine Wellenform festlegt, die für Kommunikationssysteme über interne Stromleitungen verwendet wird. Das Ziel der Erfindung besteht darin, ein universelles System bereitzustellen, das an jede Umgebung, die man bei Stromversorgungsnetzwerken antrifft, angepasst werden kann.
  • Es wird hier auf die folgenden Normen und den folgenden früheren Stand der Technik Bezug genommen:
    • – IEEE-Norm für Datentechnik – Telekommunikationen und Datenaustausch zwischen Systemen – lokale und Städtenetzwerke – spezifische Anforderungen Teil 3: vielfacher Trägerrichtungszugang mit Kollisionserfassung (CSMA-/CD-Verfahren), Zugangsverfahren und Spezifikationen für physikalische Schicht,
    • – IEEE-Norm 802.3-2000 (Revision der Norm IEEE 802.3, Ausgabe 2000),
    • – Digital Communications, John G. Proakis – McGraw-Hill, New York, dritte Auflage, 1995,
    • – CDMA für drahtlose private Kommunikationen, Ramjee PRASAD
    • – Artech House Publishers, Mai 1996,
    • – Spread spectrum CDMA systems for wireless communications, Savo GLISIC, Branka VUCETIC – Artech House Publishers, April 1997,
    • – Frequenzbereichszuweisungsplanverordnung (deutsches Regelwerk für den Gebrauch von Frequenzen in und entlang von Leitern und mögliche Unverträglichkeit zwischen Funk- und Kabelanwendungen), Bundesministerium für Wirtschaft und Technologie, 26. Juli 2002, auch NB30 genannt),
    • – Veröffentlichung der Frequenzbandzuweisungsverordnung (FregBZPV), darunter Gebrauchsvorschrift 30, gemäß Genehmigung durch die Bundesregierung der Bundesrepublik Deutschland, Deutschland, CEPT/ERC PT SE35, Mai 2001, auch NB30 genannt,
    • – Funkfrequenzgeräte, American Federal Communications Commission, 22. Juli 2002,
    • – MPT 1570 – Strahlungsgrenzwerte und Messspezifikation – elektromagnetische Strahlung im Bereich 9 KHz bis 1,6 MHz aus Werkstoffen, die Teil des Kommunikationssystems sind, Radiocommunications Agency, 3. August 2001,
    • – Appareils de traitement de l'information caractéristiques des perturbations radioélectriques limités et méthodes de mesure, CENELEC, 1999.
  • Aus dem früheren Stand der Technik und insbesondere aus DE-A-197 16 011 sowie EP-A-0 975 097 sind Multiträgermodulations-Datenübertragungstechniken (MCM) zum Übertragen von Daten auf Stromleitungen bekannt. Ferner sind aus „MV und LV Powerline Communications: New Proposed IEC Standards" von Stefan RAMSEIER, Michael ARZBERGER und Andreas HAUSER in XP-002136480, IEEE 1999, verschiedene alternative Schemata zur Datenübertragung auf Stromleitungen bekannt.
  • Alle bekannten Techniken weisen jedoch den Nachteil auf, dass sie nicht anpassungsfähig genug sind, um jedem Stromleitungsnetzwerk oder allen Situationen zu entsprechen. Wenn insbesondere eine Verbindung zwischen einem Stromleitungsnetzwerk und einem dedizierten Übertragungsnetzwerk betroffen ist, zum Beispiel eine Verbindung mit einem spezifischen Heimdatenübertragungsnetzwerk, einem Heimtelefonnetzwerk oder einem Kabel, können die Erfordernisse so unterschiedlich sein, dass jedes Mal ein spezifisches Verbindungssystem konzipiert werden muss. Die Erfindung zielt darauf ab, ein universales Übertragungssystem auf Stromleitungen bereitzustellen.
  • Das wird erfindungsgemäß durch die Erkenntnis erzielt, dass die Übertragungen im Allgemeinen unausgewogen sind. Insbesondere beim Anschließen an das Internet oder allgemeiner an einen Server wurde festgestellt, dass die Menge der übertragenen Daten bei einer Abwärtsverbindungsübertragung vom Server zum Benutzer größer ist als bei einer Aufwärtsverbindungsübertragung von einer Benutzerausstattung zu dem Server. Ferner wurde festgestellt, dass die Erfordernisse unterschiedlich sind. Für eine Abwärtsverbindungsübertragung ist eine Echtzeitübertragung mit hoher Bitrate erforderlich. Für eine Aufwärtsverbindungsübertragung ist ebenfalls eine Übertragung mit hoher Bitrate erforderlich, jedoch mit wahlfreiem Zugriff.
  • Erfindungsgemäß wird diese Situation genutzt, indem ein System bereitgestellt wird, bei dem eine Abwärtsverbindungsübertragung ein CDMA-Codierungsmodell benutzt, während bei einer Aufwärtsverbindungsübertragung ein Modell, das kein CDMA-Codierungsmodell ist, benutzt wird, typisch ein QAM-Modulationsmodell. Es kann dann gezeigt werden, dass diese Art von unausgeglichenem Zweirichtungsübertragungssystem den Anforderungen einer Echtzeit-Abwärtsverbindungs-Multi-User-Übertragung gerecht werden kann.
  • Erfindungsgemäß kann eine Abwärtsverbindungsrate von 75 kSymbol pro Sekunde für jede Codierungssequenz der CDMA-Übertragung verwirklicht werden. Das führt bei einem Zehncodekanal zu einer realen Rate von 1,5 MBit pro Sekunde (inklusive Meldesignale), die für die Abwärtsverbindungsübertragung entweder für Video- oder Audioübertragungen und natürlich Datenübertragungen reicht. Ferner erlaubt eine dynamische Codiersequenzzuweisung zu einer von mehreren Benutzerausstattungen eine Rate von 3 MBit pro Sekunde, wenn einem Kanal vorübergehend zwanzig Codes zugeordnet werden.
  • Für einen Aufwärtsverbindungskanal erlaubt eine schmale Bandbreite von 2,5 MHz eine Rate von 2,5 MBaud pro Sekunde. Mit einer QPSK (wie in diesem System spezifiziert), d. h. einer QAM 2-Modulation, wird eine Rate von 5 MBit pro Sekunde erzielt. Diese Rate kann mit einem QAM 6 (gleichwertig mit 64 QAM) 15 MBit pro Sekunde erreichen. Berücksichtigt man, dass die Ausbreitungsrate mit den Modulationsindizes sinkt und die Komplexheit der Modulationskonstellation, ist QAM 6 für die 5 bis 10 Meter Ausbreitung, die man in Heimnetzwerken antrifft, gut geeignet.
  • Das erfindungsgemäße System erlaubt es daher, dem Abwärtsverbindungskanal eine gleichbleibende Qualität zuzuweisen. Schließlich kann dieser Vorteil mit dem Server ausgehandelt werden. Für den Aufwärtsverbindungskanal ergeben ein Konkurrenzsystem und ein Kollisionsschutzsystem eine volle Rate für jeden Benutzer, wenn und wann dieser Benutzer sie willkürlich verlangt. Für den Aufwärtsverbindungskanal wird zum Beispiel ein Ethernetrahmenrhythmus ausgewählt. Eine Aufwärtsverbindungsschnittstelle gibt dann die Ethernetrahmendaten auf das Netzwerk (mit Einkapselung und Modulation), einen Ethernetrahmen nach dem anderen, während die Verfügbarkeit des Netzwerks zwischen den einzelnen Ethernetrahmen abgehört wird. Diese Verteilung auf Mittel für den Abwärtsverbindungskanal und den Aufwärtsverbindungskanal löst das gesamte Problem der Eignung der Qualität existierender Netzwerke für die Echtzeitanforderungen jeder beliebigen Situation.
  • Daher hat die Erfindung ein digitales Datenverteilungsnetz zur Aufgabe, das Folgendes umfasst:
    • – ein Netzwerk aus elektrischen Stromleitungen und
    • – induktive Koppler, die auf verschiedene Orte des Netzwerks verteilt sind, um Datenverarbeitungseinheiten zur Übertragung an das Netzwerk anzukoppeln und
    • – unter diesen Kopplern einen Hauptkoppler und einen Satz von Nebenkopplern, wobei
    • – der Hauptkoppler einen Codiersender vom Typ CDMA umfasst, mit einem Verteilungsfaktor zur Übermittlung von CDMA-codierten Daten über das Netzwerk nach einem solchen Codieren und
    • – jeder Nebenkoppler einen Empfänger zum Empfangen dieser CDMA-codierten Daten von dem Hauptkoppler und zu deren Decodieren umfasst, sowie einen Modulationssender ohne Verteilungsfaktor zum Codieren von Daten, die an den Hauptkoppler zu übertragen sind.
  • Die Erfindung wird bei der folgenden Beschreibung und anhand der anliegenden Figuren klarer verstanden. Diese Figuren werden rein beispielhaft gegeben und schränken den Geltungsbereich der Erfindung in keiner Weise ein. Diese Figuren zeigen:
  • 1: Systemkonfiguration
  • 2: Belegung des Spektrums
  • 3: Abwärtsverbindungssenden: die Rahmensynchronisation
  • 4: Abwärtsverbindungssenden: Verteilen – Filtern – Upsampling
  • 5: MII-Controller
  • 6: MII-Controller: Statusmaschine
  • 7: Ethernetrahmenformat
  • 8: MII-Schnittstelle: den Steuerrahmen
  • 9: Abwärtsverbindungssenden: Bilden eines CDMA-Rahmens
  • 10: Abwärtsverbindungssenden: Erzeugen des Flags SOF
  • 11: Abwärtsverbindungssenden: Kopferzeugung
  • 12: Abwärtsverbindungssenden: Kopfmultiplexen
  • 13: Abwärtsverbindungssenden: Kopfcodierer
  • 14: Abwärtsverbindungssenden: Kopfmultiplexen
  • 15: Abwärtsverbindungssenden: Kopfcodierer (Reed-Solomon)
  • 16: Abwärtsverbindungssenden: Reed-Solomon-Codierer
  • 17: Abwärtsverbindungssenden Verarbeiten der Nutzinformation
  • 18: Abwärtsverbindungssenden: erster Faltungscodierer – Block
  • 19: Abwärtsverbindungssenden: erster Faltungscodierer – Konzept
  • 20: Abwärtsverbindungssenden: zweiter Faltungscodierer – Block
  • 21: Abwärtsverbindungssenden: zweiter Faltungscodierer – Konzept
  • 22: Abwärtsverbindungssenden: Verschachtler – Block
  • 23: Abwärtsverbindungssenden: Verschachtler – Schreiben
  • 24: Abwärtsverbindungssenden: Verschachtler – Lesen
  • 25: Abwärtsverbindungssenden: Multiplexen von SOF Kopf und Nutzinformation
  • 26: Abwärtsverbindungssenden: Benutzer zu Code-Demultiplexen – Block
  • 27: Abwärtsverbindungssenden: Verteilen – Konzept
  • 28: Abwärtsverbindungssenden: Hadamard-Sequenzerzeugung
  • 29: Abwärtsverbindungssenden: Verteiler
  • 30: Abwärtsverbindungssenden: Impulsformungsfilter
  • 31: Abwärtsverbindungssenden: erste Interpolation
  • 32: Abwärtsverbindungssenden: Umsetzen Basisband zu IF (NCO)
  • 33: Abwärtsverbindungssenden: zweite Interpolation
  • 34: Abwärtsverbindungssenden: zweite Interpolation – Phase und Größe des Upsamplerfilters
  • 35: Abwärtsverbindungssenden: zweite Interpolation – Filterreaktion auf ein Dirac
  • 36: Aufwärtsverbindungsempfang: Downsampling & Filtern
  • 37: Aufwärtsverbindungsempfang: Synchronisation, Demodulation & Entsynchronisation
  • 38: Aufwärtsverbindungsempfang: Umsetzen IF zu Basisband (NCO)
  • 39: Aufwärtsverbindungsempfang: Downsampler
  • 40: Aufwärtsverbindungsempfang: erster und zweiter Downsampler – Downsamplingfilterreaktion
  • 41: Aufwärtsverbindungsempfang: dritter Downsampler – Downsamplingfilterreaktion
  • 42: Aufwärtsverbindungsempfang: SRRC-Filter
  • 43: Aufwärtsverbindungsempfang: SRRC-Filter – Umsetzung
  • 44: Aufwärtsverbindungsempfang: Synchronisation & Demodulation
  • 45: Aufwärtsverbindungsempfang: Synchronisation & Demodulation – Sequenzierer
  • 46: Aufwärtsverbindungsempfang: Synchronisation
  • 47: Aufwärtsverbindungsempfang: Demodulation
  • 48: Aufwärtsverbindungsempfang: Demodulation – Verzögerungsleitung
  • 49: Aufwärtsverbindungsempfang: Demodulation – Phasenkorrektur
  • 50: Aufwärtsverbindungsempfang: Demodulation – QPSK-Demapping
  • 51: Aufwärtsverbindungsempfang: Demodulation – Neuformatieren der Ausgangsproben
  • 52: Aufwärtsverbindungsempfang: Demodulation – Aktualisieren der Synchronisationsposition
  • 53: Aufwärtsverbindungsempfang: Demodulation – Aktualisierungsphase
  • 54: Aufwärtsverbindungsempfang: Demodulation – Aktualisierungsphase – Rechenphase
  • 55: Aufwärtsverbindungsempfang: Entsynchronisation
  • 56: Aufwärtsverbindungsempfang: Entsynchronisation – Kopfdecodierung
  • 57: Aufwärtsverbindungsempfang: Entsynchronisation – Entschachtler
  • 58: Aufwärtsverbindungsempfang: Entsynchronisation – erster Nutzinformationsdecoder (Viterbi-Decoder)
  • 59: Aufwärtsverbindungsempfang: Entsynchronisation – zweiter Nutzinformationsdecoder (Viterbi-Decoder)
  • 60: Aufwärtsverbindungsempfang: Entsynchronisation – Datenpufferspeicher
  • 61: Abwärtsverbindungsempfang: Downsampling & Filtern
  • 62: Abwärtsverbindungsempfang: Synchronisation – Demodulation
  • 63: Abwärtsverbindungsempfang: Entsynchronisation
  • 64: Abwärtsverbindungsempfang: automatische Verstärkungssteuerung
  • 65: Abwärtsverbindungsempfang: erste Dezimation
  • 66: Abwärtsverbindungsempfang: erste Dezimation – Phase und Amplitude des Downsamplerfilters
  • 67: Abwärtsverbindungsempfang: erste Dezimation – Filterreaktion auf ein Dirac
  • 68: Abwärtsverbindungsempfang: Umsetzen IF zu Basisband (NCO)
  • 69: Abwärtsverbindungsempfang: zweite Dezimation
  • 70: Abwärtsverbindungsempfang: zweite Dezimation – Phase und Größe des Downsamplerfilters
  • 71: Abwärtsverbindungsempfang: zweite Dezimation – Filterreaktion auf ein Dirac
  • 72: Abwärtsverbindungsempfang: Impulsformungsfilter
  • 73: Abwärtsverbindungsempfang: Synchronisation
  • 74: Abwärtsverbindungsempfang: Synchronisation – Synchroblock – Block
  • 75: Abwärtsverbindungsempfang: Synchronisation – Synchroblock – Konzept
  • 76: Abwärtsverbindungsempfang: Synchronisation – Korrelationspunkteberechnung – Block
  • 77: Abwärtsverbindungsempfang: Synchronisation – Korrelationspunkteberechnung – Konzept
  • 78: Abwärtsverbindungsempfang: Synchronisation – Maximumsucher
  • 79: Abwärtsverbindungsempfang: Synchronisation – Synchronisationspositionsfilter – Block
  • 80: Abwärtsverbindungsempfang: Synchronisation – Synchronisationspositionsfilter – Konzept
  • 81: Abwärtsverbindungsempfang: Synchronisation – Verzögerungsleitung – Block
  • 82: Abwärtsverbindungsempfang: Synchronisation – Verzögerungsleitung – Konzept
  • 83: Abwärtsverbindungsempfang: Demodulation – Block
  • 84: Abwärtsverbindungsempfang: Demodulation – Konzept
  • 85: Abwärtsverbindungsempfang: Demultiplexen
  • 86: Abwärtsverbindungsempfang: Entsynchronisation – Statusmaschine
  • 87: Abwärtsverbindungsempfang: Entsynchronisation – Erfassen des Flags SOF
  • 88: Abwärtsverbindungsempfang: Entsynchronisation – Kopf decodieren
  • 89: Abwärtsverbindungsempfang: Entsynchronisation – Entschachtler
  • 90: Abwärtsverbindungsempfang: Entsynchronisation – erster Nutzinformationsdecoder (Viterbi-Decoder)
  • 91: Abwärtsverbindungsempfang: Entsynchronisation – zweiter Nutzinformationsdecoder (Viterbi-Decoder)
  • 92: Abwärtsverbindungsempfang: Entsynchronisation – Datenpufferspeicher
  • 93: Aufwärtsverbindungssenden: Synchronisation
  • 94: Aufwärtsverbindungssenden: Verteilen – Filtern – Upsampling
  • 95: Aufwärtsverbindungssenden – CDMA-Rahmen
  • 96: Aufwärtsverbindungssenden: Kopferzeugung
  • 97: Aufwärtsverbindungssenden: Kopfmultiplexen
  • 98: Aufwärtsverbindungssenden: Kopfcodierer
  • 99: Aufwärtsverbindungssenden: Kopfmultiplexen
  • 100: Aufwärtsverbindungssenden: Kopfcodierer (Reed-Solomon)
  • 101: Aufwärtsverbindungssenden: Reed-Solomon- Codierer
  • 102: Aufwärtsverbindungssenden: Verarbeiten der Nutzinformation
  • 103: Aufwärtsverbindungssenden: erster Faltungscodierer – Block
  • 104: Aufwärtsverbindungssenden: erster Faltungscodierer – Konzept
  • 105: Aufwärtsverbindungssenden: zweiter Faltungscodierer – Block
  • 106: Aufwärtsverbindungssenden: zweiter Faltungscodierer – Konzept
  • 107: Aufwärtsverbindungssenden: Verschachtler – Block
  • 108: Aufwärtsverbindungssenden: Verschachtler – Schreiben
  • 109: Aufwärtsverbindungssenden: Verschachtler – Lesen
  • 110: Aufwärtsverbindungssenden: Multiplexen von Kopf und Nutzinformation
  • 111: Aufwärtsverbindungssenden: Verteilen – Filtern – Upsampling
  • 112: Aufwärtsverbindungssenden: QPSK-Mapping
  • 113: Aufwärtsverbindungssenden: QPSK-Mapping – detaillierte Umsetzung
  • 114: Aufwärtsverbindungssenden: QPSK-Mapping – Sequenzierer – Statusmaschine
  • 115: Aufwärtsverbindungssenden: SRRC-Filter
  • 116: Aufwärtsverbindungssenden – SRRC-Filter – detaillierte Umsetzung
  • 117: Aufwärtsverbindungssenden: erste Interpolation
  • 118: Aufwärtsverbindungssenden: Umsetzen Basisband zu IF (NCO)
  • Zur Erläuterung der Erfindung werden die folgenden Definitionen und Abkürzungen verwendet:
  • ADC:
    Analog-Digital-Wandler
    AFE:
    analoges Frontend
    AGC:
    automatische Verstärkungssteuerung
    BPSK:
    Binäre Phasenumtastung
    CDMA:
    Zugriffsverfahren durch Code Division Multiplexen
    CDMA_HMC:
    CDMA Kopf multiplexen und Codieren: Block, der den CDMA-Rahmenkopf erzeugt
    DAC:
    Digital-Analog-Wandler
    DBCh:
    Abwärtsverbindungssendekanal
    DDSCh:
    Dedizierter Abwärtsverbindungs-Synchronisationskanal
    DDTCh:
    Dedizierte Abwärtsverbindungs-Transportkanäle
    DEMUX:
    Demultiplexer: Block, der alle Bits auf die verschiedenen CDMA-Codes verteilt
    Dlk:
    Abwärtsverbindung
    DSSCh:
    Abwärtsverbindungs-Symbolsynchronisationskanal
    Fc:
    Chip-Frequenz (5 MHz)
    FIFO:
    First In First Out
    FIR:
    Finite Impulsantwort
    GF:
    Galoisfeld
    HDMUX:
    Kopfdatenmuliplex: Block, der alle Felder eines CDMA-Rahmens konkateniert
    ISI:
    Intersymbolstörung
    LFSR:
    Lineares Feedbackschieberegister
    LSB:
    Niedrigstwertiges Bit
    MAC:
    Medienzugangskontrolle
    MDI:
    Verwaltungsdatenschnittstelle
    MII:
    Medienunabhängige Schnittstelle
    MSB:
    Höchststwertiges Bit
    NCO:
    Digital gesteuerter Oszillator
    ISO:
    International Organization for Standardization – Internationale Normenorganisation
    OSI:
    Open System Interconnection – Offenes Kommunikationssystem
    PLT:
    Stromleitungstelekommunikationen
    ppm:
    Teile pro Million
    PHY:
    Physikalisch
    PLNC:
    Stromleitungsnetzwerkcontroller
    PLNIC:
    Stromleitungsnetzwerk-Schnittstellenkarte
    QPSK:
    Quadraturphasenumtastung
    RS:
    Reed-Solomon
    SOF:
    Flag des Rahmenanfangs
    Rx:
    Empfänger
    sfd:
    Trennzeichen des Rahmenanfangs
    Tc:
    Zeitchip: Dauer eines Chips (= 0,2 μs bei einer bevorzugten Ausführungsform
    Ts:
    Zeitsymbol:Dauer eines Symbols, 64 Chips (= 12,8 μs bei einer bevorzugten Ausführungsform)
    Tx:
    Übertragung
    TX_NB_CODES:
    Anzahl der Codes, die für die Abwärtsverbindung verwendet wird
    TX_NB_CODE_MAX:
    Maximale Anzahl der Codes auf der Abwärtsverbindung (= 63 bei einer bevorzugten Ausführungsform)
    TX_NB_CODE_Ui:
    Anzahl der aktiven Codes für den Benutzer i
    TX_NB_USER:
    Anzahl der Benutzer
    TX_NB_USER_MAX:
    Maximale Anzahl von Benutzern (= 10 bei einer bevorzugten Ausführungsform).
  • 1 zeigt eine erfindungsgemäße CDMA-Systemkonfiguration, bei der für ein Gateway (PLNC) bis zu zehn verschiedene Stromleitungsnetzwerk-Schnittstellencontroller (PLNIC), die zehn Benutzern entsprechen, verwendet werden können. Der Gatewaytakt des Stromleitungsnetzwerk-Schnittstellencontrollers (PLNC) ist ein Kristalloszillator zu 50 MHz mit einer Präzision von 50 ppm. In den Stromleitungsnetzwerk-Schnittstellenkarten, PLNIC, ist ein Takt durch einen VCXO mit den folgenden Spezifikationen vorgesehen: Frequenz: 50 MHz, Präzision: 50 ppm, Zug: 100 ppm.
  • Eine Schnittstelle der physikalischen Schicht standardisiert die elektrische, mechanische und funktionale Steuerung der Datenverbindungen, die an das physikalische Medium angeschlossen sind.
  • Die Wellenformen der Übertragung sind die folgenden
    Abwärtsverbindungszugriffstechniken: DS-CDMA
    Abwärtsverbindungs-Codelänge 64 Chips
    Abwärtsverbindungs-Chiprate: 5 MChip/s
    Abwärtsverbindung-Mittelfrequenz: 15 MHz
    Abwärtsverbindung-Dämpfen: 0.22
    Aufwärtsverbindungszugriffstechniken: QAM-Modulation
    Aufwärtsverbindungs-Symbolrate: 2,5 MSymbol/s
    Aufwärtsverbindungs-Mittelfrequenz: 20 MHz
    Aufwärtsverbindungs-Dämpfen: 0.22
  • In den in 2 gezeigten Spektren ist die niedrigere Bandbreite für die Abwärtsverbindungsübertragungen zwischen etwa 12 MHz und 18 MHz, die höhere schmale Bandbreite den Aufwärtsverbindungsübertragungen zwischen 18 MHz und 22 MHz zugeordnet.
  • Was die Senderplanung betrifft, werden zu jeder Symbolzeit 2 × TX_NB_CODES codierte Bits auf den Kanal gesendet. Was die Empfängerplanung für die Knoten betrifft, werden zu jeder Symbolzeit 2 × TX_NB_CODES codierte Bits empfangen. Was eine Empfängerplanung für den Hub betrifft, kann der Hub gleichzeitige mehrere Rahmen empfangen.
  • Die Abwärtsverbindungskanalspezifikation wird jetzt vorgestellt. Der Zugangsmechanismus für den Abwärtsverbindungskanal ist DS-CDMA. Die Abwärtsverbindung ist in 64 verschiedene logische Kanäle unterteilt. Jeder Kanal ist durch einen CDMA-Code differenziert. Die verwendeten Codes sind 64-Bit-Hadamard-Codes.
  • Als Bandbreitenzuweisungsprotokoll hat jeder Abwärtsverbindungskanal eine Bandbreite von 128 kbps.
  • Die Kanäle D0 bis D59 sind Abwärtsverbindungskanäle.
  • Das Gateway PLNC ist für die Kanalzuweisung zuständig.
  • Die Kommunikation zwischen der dezentralen Stromleitungsschnittstellenkarte und dem Gateway verbraucht jederzeit maximal 50 Codes für die Abwärtsverbindung (d. h. 7,8 Mbps). Zu bemerken ist, dass der erste Hadamard-Verteilungscode (der gleich +1 ist) nie für Spektralzwecke verwendet wird.
  • Ein gemeinsames Symbolsynchronisationssignal wird auf Abwärtsverbindung gesendet, um die Geräte mit dem Gateway zu synchronisieren. Das Synchronisationssignal wird als eine konstante BPSK-modulierte Sequenz definiert, nämlich „+1". Dieses Signal wird dann unter Verwendung dedizierter Verteilungscodes (31. und 63. Hadamard-Code) verteilt.
  • Von den 63 Hadamard-Codes ist einer dem Sendekanal zugewiesen. Dieser Kanal wird von jeder dezentralen Schnittstelle demoduliert und transportiert Netzwerkverwaltungsdaten, wie zum Beispiel die Zuweisung des Codes (Aktivieren und Deaktivieren).
  • Die Abwärtsverbindungstransportkanäle sind von D1 bis D63 nummeriert. Jeder Kanal transportiert 156 Kbps von dem Gateway zu der dezentralen Stromleitungsschnittstellenkarte. Die Kanäle mit den Nummern D31 und D63 sind der Synchronisation zugewiesen und daher nicht als Transportkanäle zugelassen.
  • Der Aufwärtsverbindungskanal ist als gemeinsamer Bus für jede PLNIC (Endbenutzer) konzipiert. Nur eine einzige PLNIC kann jederzeit auf das Medium zugreifen. Um mehrere Benutzer zu verwalten, ist das Gateway dafür zuständig, den verschiedenen Benutzern (PLNIC) das Senden auf dem Medium zu gestatten oder nicht. Auf die zum Gestatten angewandte Technik, wird in dem vorliegenden Dokument nicht eingegangen.
  • Auf der Gatewayseite ist das Chipset hier unten als LK12001-Chipset referenziert, während das Slave-Chipset auf der Benutzerseite LK12011 genannt wird.
  • MASTER-LK12001 ABWÄRTSVERBINDUNGS-ÜBERTRAGUNGSCHIP
  • Das Konzept des CDMA-Chipsets bei der Abwärtsverbindungssynchronisation ist in 3 dargestellt. In 3 empfängt ein HDMUX das Signal des Anfangs eines Flags, einen CDMA-Kopf sowie ein codiertes und verschachteltes Signal. Dieser HDMUX speist in einem Beispiel zehn FIFO-Schaltungen, die zehn Benutzern zugewiesen und von 0 bis 9 nummeriert sind. Ein Steuersignal von diesen FIFO-Schaltungen wird verarbeitet, um das verschachtelte Signal bereitzustellen. Ein Steuersignal treibt ferner das Speisen der FIFO-Schaltungen durch den HDMUX. Ein Verschachtler und ein Codierer stellen das verschachtelte Signal bereit. Sie zielen darauf ab, Fehler aufgrund des Kanals zu vermeiden. Ein DEMUX stellt die TX_NB_CODE_MAX codierten Signale bereit.
  • 4 zeigt das Abwärtsverbindungssenden: Verteilen, Filtern und Upsampling von TX_NB_CODE_MAX Signalen, von der Schaltung der 3 geliefert. Zwei Abwärtsverbindungsverteiler empfangen diese Signale gemeinsam mit Hadamard-Sequenzen. Die Signalausgänge dieser Verteiler werden gefiltert und steuern einen digital gesteuerten Oszillator NCO.
  • Der MII-Controller der 3 ist in 5 dargestellt. Er spielt die Rolle der Schnittstelle zwischen der MAC-Schicht (externer Controller) und dem CDMA-Chipset (LK12001 oder LK12011). Diese zwei Module tauschen Ethernetrahmen aus. Es gibt zwei Typen von Ethernetrahmen:
    • • Datenrahmen: sie müssen unter Einsatz des Stromleitungsübertragungsmediums PLT übertragen werden
    • • Steuerrahmen: Diese Rahmen werden nicht auf dem PLT-Medium übertragen. Sie zielen darauf ab, das CDMA-Chipset zu verwalten (LK12001 oder LK12011).
  • In der Übertragung werden die folgenden Signale verwendet:
    MII_TX_Clk: Dieser Takt stellt die Taktreferenz für die Übertragung der Daten- MII_TXD – und für andere Signale – MII_TX_EN und MII_TX_ER – aus dem externen Controller über die MII-Schnittstelle zu dem CDMA-Chipset (LK12001 oder LK12011) bereit. Da die Bitrate 10 Mb/s beträgt, ist der Takt ein 2,5 MHz-Takt.
    MII_TXD: Dieser Kontakt wird dazu verwendet, aktuelle Daten zu dem CDMA-Chipset zu senden (LK12001 oder LK12011). MII_TXD ist ein Bündel aus vier Signalen. LSB ist das Bit Nummer 0. Die Übertragung erfolgt synchron mit dem MII_TX_Clk.
    MII_TX_EN: Dieser Kontakt gibt an, dass auf dem MII_TXD gültige Halbbytes vorhanden sind. Dieser Kontakt muss synchron mit dem Takt MII_TX_Clk assertiert werden.
    MII_TX_ER: Dieser Kontakt zeigt einen Fehler in der Rahmenübertragung an. Wird dieser Kontakt assertiert, während der Kontakt MII_TX_EN assertiert ist, werden die Daten – MII_TXD – ignoriert. Dieser Kontakt wird synchron mit dem Takt MII_TX_Clk assertiert.
  • Beim Empfang werden die folgenden Signale verwendet:
    MII_RX_Clk: Dieser Takt stellt die Taktreferenz für die Übertragung der von dem CDMA-Chipset (LK12001 oder LK12011) empfangenen Daten – MII_RXD – sowie andere Signale – M MII_RXDV und MII_RX_ER – für den externen Controller über die MII-Schnittstelle bereit. Da die Bitrate 10 Mb/s beträgt, ist der Takt ein 2,5 MHz-Takt.
    MII_RXD: Dieser Kontakt wird dazu verwendet, um die von dem CDMA-Chipset (LK12001 oder LK12011) empfangenen Bits zu übertragen. MII_RXD ist ein Bündel aus vier Signalen. LSB ist das Bit Nummer 0. Die Übertragung erfolgt synchron mit dem MII_TX_Clk.
    MII_RX DV: Dieser Kontakt zeigt an, dass die auf dem MII_RXD übertragenen Daten gültig sind. Dieser Kontakt wird synchron mit dem Takt MII_RX_Clk assertiert. Dieser Kontakt muss vor der ersten Übertragung eines ungültigen Halbbytes auf den MII-RXD-Kontakten negiert werden.
    MII_RX_ER: Dieser Kontakt zeigt an, dass die physikalische Schicht PHY irgendwo in dem übertragenen Rahmen einen Fehler erfasst hat (z. B. einen Codierungsfehler oder einen Fehler, den die PHY erfassen kann, und den die MAC-Unterschicht anderenfalls nicht erkennen könnte). Dieser Kontakt wird synchron mit dem Takt MII_RX_Clk assertiert.
  • Die Zustandssignale des Mediums lauten:
    MII_COL: Dieser Kontakt wird assertiert, wenn eine Kollision aufgetreten ist. Der Kontakt wird asynchron assertiert. Für die Abwärtsverbindung gibt es keine Kollisionen. Der MII_COL wird daher auf tief gehalten, außer wenn Register 0.7 gesetzt ist (siehe unten stehende Angaben zu einem Steuerregister).
    MII_CRS: Dieser Kontakt zeigt an, dass der neue Rahmen über den externen Controller zum CDMA-Chipset (LK12001 oder LK12011) übertragen werden kann. Der Kontakt wird asynchron assertiert. Gleich nach dem Beginn der Übertragung eines neuen Rahmens an das CDMA-Chipset (LK12001 oder LK12011) wird der MII_CRS assertiert. Er bleibt auf hoch gesetzt, bis der ganze Rahmen übertragen wurde – MII_TX_EN wird gleich nach dem Ende der Übertragung des Rahmens tief assertiert – und LK12011 ist für den Empfang eines neuen Rahmens bereit, der vorhergehende Rahmen wurde verarbeitet und der interne Speicher hat genug freien Speicherplatz zum Speichern dieses neuen Rahmens.
  • Wenn von dem CDMA-Chipset (LK12001 oder LK12011) an den externen Controller ein empfangener Rahmen übertragen wird, wird der MII_CRS assertiert.
  • Die Verwaltungssignale (MDI-Schnittstelle) sind:
    MII_MDC: Dieser Kontakt gibt die Taktreferenz für das Übertragen der Daten auf den MII_MDIO-Kontakten. Der externe Controller zu dem CDMA-Chipset (LK12001 oder LK12011) erzeugt dieses Signal. Das Signal ist asymmetrisch. Die oberen und unteren Mindestzeiten für den MDC sind jeweils 160 ns, die Mindestperiode für MDC beträgt 400 ns.
    MII_MDIO: Diese Kontakte werden zum Übertragen von Steuer- und Zustandsinformationen zwischen dem externen Controller und dem CDMA-Chipset (LK12001 oder LK12011) verwendet.
  • Das Signal der PHY Adresse, PHY AD, gibt die physikalische Adresse des Chipsets (LK12001 oder LK12011).
  • Auf der Seite des CDMA-Chipsets sind die Übertragungssignale:
    Tx-Daten: ein 4-Bit-Bus. Diese Kontakte werden verwendet, um Daten von dem MII-Controller an einen FIFO-Ethernetrahmen-Pufferspeicher zu transferieren.
    Tx aktivieren: Dieser Kontakt wird gesetzt, wenn die Daten auf dem tx data-Bus gültig sind. Dieser Kontakt bleibt gesetzt, bis ein ganzer Ethernetrahmen übertragen wurde. Danach wird dieser Kontakt tief gesetzt, um das Ende eines Ethernetrahmens zu melden.
  • Auf der Seite des CDMA-Chipsets sind die Empfangssignale:
    Rx-Daten: ein 4-Bit-Bus. Diese Kontakte werden verwendet, um Daten von dem Ethernetrahmenpufferspeicher zum dem MII-Controller zu übertragen.
    Rx do transfer: Wird gesetzt, wenn die Daten auf dem Rx-Datenbus gültig sind. Dieser Kontakt wird auf hoch gehalten, während ein ganzer Ethernetrahmen übertragen wird. Danach wird dieser Kontakt tief gesetzt, um dem MII-Controller zu melden, dass der ganze Ethernetrahmen übertragen wurde, auch wenn es noch andere zu übertragende Ethernetrahmen gibt.
    Rx error: Wenn der laufende Rahmen einen Fehler enthält (aufgrund von Demodulation, Decodieren usw.), wird dieser Kontakt auf hoch gesetzt.
    Rx enable: Dieser Kontakt wird von dem MII-Controller gesetzt, um dem CDMA-Chipset zu melden, dass ein Ethernetrahmen übertragen werden kann. Sobald dieser Kontakt gesetzt ist, kann der Kontakt Rx do transfer gesetzt werden, um dem MII-Controller zu melden, dass ein neuer Ethernetrahmen zum MII-Controller übertragen wird.
  • Als Benutzer-FIFO-Information, wird ein in jedem Benutzer-FIFO verfügbarer Platz dem MII-Controller gemeldet. Sobald nur ein Benutzer auf seinem FIFO keinen Speicherplatz mehr hat, werden das Empfangen und das Übertragen von Ethernetrahmen vom MII-Controller zu dem Ethernetrahmenpufferspeicher gestoppt.
  • Die Verwaltungssignale sind:
    Prüfschleife: Wenn dieser Kontakt gesetzt ist, wird auf dem PLT-Medium kein Signal gesendet. Das MII_TXD-Signal muss zu dem MII_RXD-Signal zurückgeschleift werden.
    Power down – Strompanne: Wenn dieser Kontakt gesetzt ist, wird kein Signal gesendet und empfangen.
    Isolate – Isolieren: Dieser Kontakt wird gesetzt, um das CDMA-Chipset elektrisch von dem MII-Bus zu isolieren. Eine hohe Impedanz wird an den Ausgängen MII_TX_Clk, MII_RX_Clk, MII_RX_DV, MII_RX_ER, MII_RXD, MII_COL, MII_CRS präsentiert. Das CDMA-Chipset reagiert nicht auf MII_TXD, MII_TX_EN, MII_TX_ER (siehe Steuerregister).
    Kollisionstest, MII_COL: Wenn dieser Kontakt gesetzt ist, muss das CDMA-Chipset auf die Assertion des MII_TX_EN mit der Assertion des MII_COL reagieren. Das CDMA-Chipset muss auf die Deassertion des MII_TX_EN mit der Deassertion des MII_COL antworten (siehe Steuerregister).
  • Der MII-Controller wirkt als eine Statusmaschine, die in 6 gezeigt ist. Im nicht bereiten Zustand prüft der Sequenzierer den Tx-Speicher, ob nicht genug Speicherplatz zum Speichern neuer Daten vorhanden ist (der freie FIFO-Speicherplatz für einen Benutzer ist geringer als der codierte CDMA-Rahmen, 24636):
    • • Wenn zu übertragende empfangene Daten vorhanden sind, wird der MII-CRS während einer Rx-Taktperiode deaktiviert und dann wieder aktiviert. Das Signal MII_Rx_DV wird gesetzt, und die empfangenen Daten werden unter Gebrauch des RXD-Busses (Zustand transmit Rx data) übertragen.
    • • Anderenfalls bleibt der Zustand not ready, nicht bereit.
  • Die zwischen dem externen Controller und dem LK12001 übertragenen Daten sind Ethernetrahmen, deren Datenformat 7 entspricht, wobei sfd das start of frame delimiter – Trennzeichen des Rahmenanfangs ist. Die Deassertion von MII_TX_EN oder MII_RXDV meldet das Ende des Rahmens.
  • Die Verwaltungsdatenschnittstelle – MDI wird zum Übertragen von Steuer- und Zustandsinformationen zwischen dem externen Controller und dem LK12001 über die MDI-Schnittstelle verwendet. Die übertragenen Daten müssen das in 8 gegebene Format haben. Dieser Rahmen wird entweder zum Lesen oder Schreiben des Registers RRRRR von PHY, dessen Adresse AAAAA ist, verwendet.
  • PRE (Präambel): Die Präambel besteht aus 32 kontinuierlichen 1. Sie wird zum Synchronisieren von LK12001 verwendet. LK12001 hält eine Sequenz von 32 aufeinander folgenden einzelnen Bits auf MDIO mit 32 entsprechenden Zyklen auf MDC ein, bevor es auf irgendeine Transaktion reagiert.
  • ST (Rahmenanfang): Das Muster ist <01>.
  • OP (Betriebsmodus): Zum Lesen ist der Operationscode <10>, zum Schreiben ist der Operationscode <01>.
  • PHYAD (PHYsikalische Adresse): Sie besteht aus einem Feld zu 5 Bits mit maximal 32 einzelnen PHY Adressen. Das zuerst empfangene Bit ist das MSB der Adresse. Ist das PHYAD-Feld gleich wie das PHY AD – Eingangskontakte – des CDMA-Chipsets, reagiert das CDMA-Chipset auf diesen Verwaltungsrahmen.
  • REGAD (Registeradresse): Die Register address (Registeradresse) ist ein Feld zu fünf Bits, das das Adressieren von maximal 32 verschiedenen Registern innerhalb jedes CDMA-Chipsets erlaubt. Das erste Bit ist das MSB. Das Register, das an der Adresse 0 adressiert ist, ist das Steuerregister, das Register, das an der Adresse 1 adressiert ist, ist das Statusregister.
  • TA (Turnaround): Die Turnaroundzeit ist ein Zeitabstand von 2 Bits zwischen dem Registeradressfeld und dem Datenfeld des Verwaltungsrahmens, um Konkurrenz während einer Lesetransaktion zu vermeiden. Für die Lesetransaktion bleibt der externe Controller während eines Bit auf hohem Impedanzzustand, dann treibt das CDMA-Chipset während eines zweiten Bit ein 0. Für die Schreibtransaktion sendet der externe Controller das Muster <10>.
  • DATA: Das Datenfeld ist ein Feld zu 16 Bits. Das zuerst übertragene Bit ist das Bit 15 des adressierten Registers.
  • IDLE (Standby): Gehört eigentlich nicht zum Verwaltungsrahmen. Es ist ein Zustand hoher Impedanz.
  • Nur die zwei ersten Register werden verwendet, das Steuer- und das Statusregister. Wird über MDI eine Schreib- oder Lesetransaktion für andere Register empfangen, muss der Verwaltungsrahmen fallen gelassen werden.
  • Das Steuerregister ist an der Adresse 0 gespeichert. Es hat den folgenden Inhalt:
  • Figure 00260001
  • Figure 00270001
  • Figure 00280001
  • Das Steuerregister ist an der Adresse 1 gespeichert. Alle diese Register werden nur gelesen. Sie können über die Verwaltungsschnittstelle nicht geschrieben werden.
  • Figure 00280002
  • Figure 00290001
  • Figure 00300001
  • Das Erzeugen des CDMA-Rahmens beruht auf dem folgenden Konzept. Das LK12001 kommuniziert mit mehreren Benutzern (maximal 10), indem es diesen Benutzern bestimmte Ethernetrahmen sendet. Diese Rahmen, die auf dem PLT-Medium übertragen werden, sind CDMA-Rahmen.
  • Der CDMA-Rahmen umfasst drei verschiedene Felder: Ein Flag des Rahmenanfangs (SOF), einen Kopf und eine Nutzinformation. Die zwei letzteren Elemente werden von dem MII-Controller oder dem System-Controller erzielt. Diese drei Rahmen werden in Serie in dieser Reihenfolge konkateniert (zuerst das Flag SOF, danach der Kopf und schließlich die Nutzinformation) und werden codiert, um sie beim Senden vor Fehlerhäufungen zu schützen.
  • Das Flag des Rahmenanfangs (SOF) wird am Empfangsende verwendet, um den Anfang des Rahmens zu erfassen.
  • Der Kopf enthält einen Schlüssel des Nutzinformationsverwürflers und hat einen ganz bestimmten Aufbau (siehe unten). Der Kopf ist mit einem Reed-Solomon-Fehlerkorrekturcode geschützt und wird direkt ohne Verschachteln auf den Kanal gesendet.
  • Die Nutzinformation umschließt einen ganzen Ethernetrahmen, der gefaltet codiert und verschachtelt ist (siehe unten). Ein Multiplexer (siehe 9 HDMUX-Block) konkateniert danach diese drei Felder, um eine CDMA-Rahmen-Systeminformation zu erzeugen (Datenrahmenlänge, Typ der Nutzinformationscodierung, Initialisierung).
  • Der in 10 präsentierte Block erzeugt das Flag des Rahmenanfangs. Der Flagwert ist 011010010110. Die Beschreibung des Eingangs- und Ausgangssignals dieses Blocks lautet wie folgt:
  • Figure 00310001
  • Der Kopf des CDMA-Rahmens besteht aus 36 Bits. Der Kopf enthält die folgenden Felder:
    • – den Typ des Vorwärtsfehler-Korrekturcodes, der zum Schutz der Daten verwendet wird (4 Bits),
    • – Initialisierung des Verwürflers der Nutzinformation (4 Bits)
    • – die Länge des Rahmens (16 Bits)
    • – ein nicht benutztes Feld aus 12 Bits (für zukünftigen Gebrauch)
  • Der Kopf wird parallel auf einem Bus mit 36 Bits empfangen und muss sequenziell mit 4-Bit-Symbolen ausgegeben werden. Das ist die Aufgabe des CDMA-Kopfmultiplexers (CDMA_HMux). Gemultiplext muss der Kopf danach von einem Reed-Solomon-Codierer codiert werden. Wie in 11 gezeigt, funktioniert der Reed Solomon-Codierer mit 4-Bit-Datenwörtern (Details: siehe nächster Absatz). Die Gesamtstruktur für das Abwärtsverbindungssenden umfasst einen CDMA-Kopfmultiplexer, in 12 gezeigt, einen Abwärtsverbindungssende-Kopfcodierer, Reed-Solomon-Codierung RS (15, 9, 3), in 13 gezeigt.
  • Das Ziel des CDMA-Kopfmultiplexers besteht im sequenziellen Ausgeben des Kopfes, der auf einem 36-Bit-Bus wie in 14 gezeigt empfangen wird.
  • Das funktionale Verhalten dieses Multiplexers ist das Folgende:
    wenn (CDMA_HMux_reset tief ist)
    • • sind die internen Register auf 0 gesetzt
    • • CDMA_HMux_data_available = 0
    • • wait_for new_header = 1 // interner Zustand
    • • deliver_data = 0 // interner Zustand
    anderenfalls
    wenn (CDMA_HMux_enable hoch ist)
    wenn (CDMA_HMux_new_header hoch ist) & (wait_for_new_header = 1)
    • • neuen Kopf auf Eingang lesen
    • • wait_for_new_header = 0
    • • deliver_data = 1
    • • Zählung = 0
    beenden, // wenn new_header
    wenn (deliver_data = 1)
    • • Daten auf Ausgang geben
    • • CDMA_HMux_data_available = 1
    • • Zählung = Zählung + 1
    • • wenn (Zählung = 36)
    • • wait_for_new_header = 1
    • • deliver_data = 0
    • • Beenden, // wenn Zählung
    anderenfalls // deliver_data = 0
    CDMA_HMux_data_available = 0
    beenden, // wenn deliver_data
    anderenfalls, wenn (CDMA_HMux_enable tief ist)
    • • CDMA_HMux_data_available = 0
    Beenden, // anderenfalls wenn aktivieren
    Beenden, // anderenfalls rückstellen
  • Die Eingangs- und Ausgangssignale für diesen Multiplexer sind unten angegeben.
  • Figure 00330001
  • Figure 00340001
  • Der Kopf ist vor Fehlerhäufungen durch den Einsatz eines (systematischen) Reed-Solomon-Codierers (15, 9, 3) wie in 15 gezeigt geschützt, der die folgenden Parameter hat:
    • • m = 4 (Größe des Galoisfelds GF(16))
    • • n = 2m – 1 = 15
    • • t = 3 (Symbol-Fehlerkorrekturfähigkeit)
    • • k = n – 2t (Anzahl der Informationssymbole)
    • • dmin = n – k + 1 (Mindestabstand)
  • Der Reed Solomon-Codierer muss 9 aufeinander folgende Informationssymbole zu m Bits (m = 4) auf seinem Eingang RS_in erhalten. Der Codierer gibt (auf RS_out) die 9 Eingangswörter (36 Bits) so wie sie sind aus und erzeugt 6 zusätzliche Symbole zu m Bit, was daher zu insgesamt 60 codierten Bits (als 4-Bit-Wörter strukturiert) führt.
  • Die Darstellung des Codierers der 15 beruht auf dem Erweiterungsgaloisfeld GF(16), das mit dem primitiven Polynom p(x) = x4 + x + 1 angelegt wird. Das Primärelement des GF(16), α genannt, ist eine Wurzel von p(x), d.h. p(α) = α4 + α + 1 = 0: Das Element α erzeugt das Galoisfeld GF(16) durch den Satz seiner Potenzen:
    GF(16) = {0, 1, α, α2, ..., α14}
    wobei 14 = 2m – 2. Zur Erinnerung: das Primärelement erfüllt α15 = 1.
  • Aus der Eigenschaft p(α) = 0 kann jedes Element des GF(16) als ein Polynom von α mit einem Grad kleiner oder gleich 3 (m – 1) dargestellt werden, indem man den Rest eines Elements nimmt, das als eine Potenz von α, modulo p(α) betrachtet wird. Ebenso kann man die binären Koeffizienten dieser polynomen Darstellung nehmen, um die Elemente von GF(16) darzustellen. Da α4+ α + 1 = 0 ist, kann man zum Beispiel schreiben, dass α4 = α + 1 = 0·α3 + 0·α2 + 1·α + 1·α0 oder [0011] ist. Jedes Element a ∊ GF(16) wird daher wie folgt geschrieben: a = a0 + a1·α + a2·α2 + a3·α3 = [a3 a2 a1 a0] mit ai, binären Koeffizienten. Man erhält daher die folgende binäre Darstellungstabelle:
  • Figure 00350001
  • Diese Darstellung ist für die Materialdarstellung nützlich. Die binäre Darstellung der Elemente von GF(16) ist insbesondere beim Summieren von Elementen praktisch: Es brauchen nur modulo-2-Additionen der binären Vektordarstellungskoeffizienten durchgeführt zu werden (ohne Berücksichtigen eines Übertrags).
  • In der Sequenz wird entweder die binäre Darstellung der Elemente von GF(16) oder ihre Darstellung als Putenzen von α ohne Unterschied verwendet.
  • Der systematische RS (15, 9, 3)-Codierer ist durch das folgende Polynom definiert: g(x) = α6 + α9·x + α6·x2 + α4·x3 + α14·x4 + α10·x5 + x6
  • Ein Codewort c(x), gesehen als Polynom des Grads n – 1 mit Koeffizienten in GF(16), verbunden mit dem Informationswort m(x) (mit dem Grad k – 1) kann wie folgt ausgedrückt werden: c(x) = xn–k·m(x) + (xn–k·m(x) mod g(x))
  • Das Codewort hat daher n – k mehr Symbole als die Informationsmeldung m(x). Dieser Codierer kann gemäß dem folgenden, in 6 gezeigten Modell mit 6 Schieberegistern angewandt werden.
  • In Position 1 (Position 1 ist aktiviert, wenn das Reset aktiviert ist) laufen die Informationssymbole von RS_input [3 .. 0] durch die linearen Feedback-Schiebergister (LFSR), das Ergebnis von LFSR ist jedoch unwichtig: Die Informationsmeldung versorgt den Ausgang.
  • Wenn die gesamte Informationsmeldung in den Codierer gegeben wurde, wird die Position 2 aktiviert: Der Rest der Division von xn–k·m(x) durch g(x) ist in dem LFSR enthalten und muss geleert werden, um den Ausgang zu versorgen und das Codewort zu vervollständigen. Gleichzeitig wird während der Position 2 das LFSR mit Null Symbolen zurückgeführt.
  • Die Eingangs- und Ausgangssignale dieses Reed Solomon-Codierers sind die folgenden:
  • Figure 00370001
  • Der empfangene Nutzinformations-Ethernetrahmen wird zuerst faltungscodiert, danach mit einem diagonalen Verschachtler gemäß 17. verschachtelt.
  • Es werden unterschiedliche Faltungscodierer verwendet. Der erste, in 18 gezeigte Codierer CCOD1, hat die folgenden Parameter: k = 1, n = 2, ν = 2 und seine Generatormatrix ist:
  • Figure 00370002
  • Die Hauptcodierstruktur dieses ersten Codierers ist in 19 mit 5 Schieberegistern gezeigt. Die Daten (1 Bit) kommen bitweise an. Die jüngsten Daten werden in das erste Schieberegister gespeichert. Danach werden sie von dem Schieberegister in das nächste Schieberegister (zur rechten Seite) verschoben. Die Ausgangdatenbits (2 Bits) werden mit dem Inhalt der Schieberegister berechnet.
  • Wenn der reset-Eingang auf hoch gesetzt ist, wird der Inhalt der Register zurückgestellt.
  • Der zweite, in 20 gezeigte Codierer CCOD2, hat die folgenden Parameter: k = 3, n = 4, ν = 2, und seine Generatormatrix ist:
  • Figure 00380001
  • Die Hauptcodierstruktur dieses zweiten Codierers ist in 21 mit zwei Sätzen zu je drei Schieberegistern gezeigt. Die Daten werden pro Block zu drei Bits in die ersten drei Schieberegister gespeichert. Die jüngsten Daten werden in das Schieberegister am weitesten rechts gespeichert. Die Ausgangdaten werden mit dem Inhalt der sechs Schieberegister berechnet. Danach werden die drei Register am weitesten links zu den drei Registern am weitesten rechts verschoben. Wenn der reset-Eingang auf hoch gesetzt ist, wird der Inhalt der Register zurückgestellt.
  • Der Verschachtelungsblock ist in 22 gezeigt. Die Verschachtelungstiefe beträgt 1024 Bits. Der Zweck dieses Blocks besteht im Verschachteln eines Datenblocks mit der Größe 1024. Er benutzt einen Speicher (der gleichen Größe), in den die Daten linear (sequenziell) geschrieben und in einer anderen spezifischen Reihenfolge gelesen werden.
  • Bei einer bevorzugten Ausführungsform werden die Daten zuerst auf dem Eingang gelesen und dann in den ganzen internen Speicher gespeichert. Auch wenn etwas Platz in dem internen Speicher besteht (der Ausgang inlea_space_available ist hoch) und einige Daten auf dem Eingang verfügbar sind (der Eingang inlea_data_available ist hoch), können einige Daten von dem Kontakt inlea_datain gelesen und sequenziell in den internen Speicher gespeichert werden.
  • Der Eingangslesevorgang ist in 3 beschrieben, in der die Matrix den internen Speicher darstellt.
  • Figure 00390001
  • Wenn der Speicher voll ist, wird der Ausgang inlea_space_available auf tief gesetzt, und das Ausgangssignal inlea_data_available wird auf hoch gesetzt. Die Daten müssen verschachtelt und auf dem Ausgangssignal inlea_dataout ausgegeben werden.
  • Die Daten werden diagonal aus dem internen Speicher gelesen und sequenziell wie folgt zu dem Ausgang gesetzt:
    Die diagonale Zahl d wird mit dem folgenden Vorgang gelesen:
  • Figure 00390002
  • Der erste Index bezeichnet die Zeilennummer (in der Matrixform des Speichers), der zweite bezeichnet die Spaltennummer.
  • Zum Lesen der oberen diagonalen Nummer d:
  • Figure 00390003
  • Figure 00400001
  • Gemäß 24 lautet der zum Lesen des gesamten Speichers und Geben der Daten auf den Ausgangskontakt_inlea_dataout verwendete Algorithmus wie folgt:
    read_upper_diagonal(0); // Hauptdiagonale lesen
    für d = 1 .. 31, // die anderen Diagonalen lesen
    read_lower_diagonal(d);
    read_upper_diagonal(d);
    end for
  • Nach dem Lesen – gleichzeitig erfolgt das Schreiben – werden die zwei Speicherblöcke, nämlich der, der die gelesenen Daten speichert und der, der die geschriebenen Daten speichert, ausgetauscht. Es erfolgt kein Reset.
  • Figure 00400002
  • Die Eingangs- und Ausgangssignale für diesen Verschachtler sind unten angegeben.
  • Figure 00400003
  • Figure 00410001
  • 25 zeigt das Abwärtsverbindungssenden: SOF-Kopf und Nutzinformation-Multiplexblock. Der Zweck dieses Blocks besteht darin, seriell das Flag des Rahmenanfangs (SOF), den Rahmenkopf und die Nutzinformation zu konkatenieren.
  • Ist ein Flag SOF verfügbar – hdmux_flag_available ist hoch gesetzt – liest der Multiplexer das 8-Bit-Flag.
  • Nach dem Lesen des Flag SOF, muss der Kopf gelesen werden. Wenn ein Rahmenkopf verfügbar ist – hdmux_header_available ist hoch gesetzt – liest der Multiplexer den 60-Bit-Kopf in Blöcken zu je 4 Bits. Diese Daten werden auf den Ausgang – dhmux_dataout – gegeben und der Kontakt dhmux_putdata wird hoch gesetzt.
  • Schließlich wird das Datenfeld gelesen. Während der Eingang hdmux_data_available hoch gesetzt ist, liest der Multiplexer Daten aus dem Eingang hdmux_data. Die hdmux_nbr_data-Bits stellen die Länge des CDMA-Rahmens (Flag SOF + Kopf + Daten). Die Eingangs- und Ausgangssignale sind:
  • Figure 00420001
  • Zum Demultiplexen (SSCode_Demux) wurden die CDMA-Rahmen für jeden Benutzer erzeugt und sind in einem FIFO für jeden Benutzer gespeichert. Dieser Block, der in 26 gezeigt ist, zielt darauf ab, diese Daten auf den Satz von Codes für jeden Benutzer zu verteilen. Jeder Code ist QPSK-moduliert – Kanal I und Kanal Q – sodass jeder Code pro Tc zwei Bits senden kann. Für jeden Benutzer gibt es einen Satz von Codes. Dieser Satz von Codes wird von dem Systemcontroller festgelegt. Das Mapping zwischen der Benutzernummer und der Codenummer wird in den Speicher code to user mapping gespeichert.
  • Bei jedem Ts muss es zwei Bits (I und Q) für jeden Code geben (oder der Code ist inaktiv). Es sind Tx_NB_CODES Eingänge auszuarbeiten und Tx_NB_CODES_MAX ist theoretisch auf 61 gesetzt. Für einen bestimmten Code ist der entsprechende aktive Benutzer, wenn es einen gibt, durch seinen entsprechenden dmux_code_mapping-Bus definiert: Dieser Bus ist 4 Bits breit. Für diesen Code werden vom Benutzer-FIFO 2 Datenbits anhand des Index des zugewiesenen Benutzers abgefragt. Als Antwort gibt der Benutzer-FIFO an, ob Daten verfügbar sind oder nicht (dmux_data-available-Eingänge). Sind Daten verfügbar, liefert der Benutzer-FIFO 2 Datenbits (dmux_in-Eingänge) und Demux liefert diese Daten an die entsprechenden I & Q-Ausgänge. Sind im FIFO keine Daten verfügbar, wird der Code von dem Demux (dmux_enable_code-Ausgänge) auf inaktiv gesetzt.
  • Dieser Demux führt den folgenden Algorithmus aus:
    für_code_index = 1:Tx_NB_CODES_MAX-1,
    • – Benutzer-Index holen:
    Den code_indexth dmux_code_mapping-Eingang (4-Bits) lesen, Decodieren, um den Benutzerindex in die variable UserNbr zu speichern,
    • • wenn UserNbr = 0, dann
    wird der Code #code_index auf inaktiv gesetzt,
    wird der Ausgang dmux_enable_code #code_index tief gesetzt
    • • anderenfalls
    die Daten aus dem dem Benutzer UserNbr entsprechenden FIFO holen:
    den Ausgang dmux_get_data auf hoch setzen
    #UserNbr
    auf die Antwort des entsprechenden #UserNbr-FIFO warten,
    wenn der Eingang dmux_data_available #UserNbr tief ist
    den Ausgang dmux_enable_code auf tief setzen
    #code_index
    (der Code #code_index ist daher inaktiv)
    anderenfalls
    den Code #code_index aktivieren: den Ausgang
    dmux_enable_code #code_index auf hoch setzen
    Daten aus dem Eingang dmux_in #UsrNbr lesen
    zum Ausgang dmux_I #code_index ausgeben
    • – der gleiche Vorgang wie oben wird durchgeführt, um die Daten von dem Ausgang zu holen
    dmux_Q #code_index
    end for
  • Die Eingangs- und Ausgangssignale dafür sind:
  • Figure 00440001
  • Die Ausgangstaktfrequenz ist 1/Ts. Eine steigende Flanke entspricht neuer Information auf den Ausgängen. Er ist Verarbeitungstakt.
  • Für das Verbreiten und die Modulation ist das Verbreitungskonzept das in 27 für das Abwärtsverbindungssenden gezeigte. Die sequence generation erzeugt die Chips jedes Codes. Der spreader (Verteiler) codiert die Daten unter Verwendung der Chips aus der sequence generation und das Ausgangssignal wird gebildet.
  • Die Verteilungssequenzen, die für die Abwärtsverbindung verwendet werden, sind Hadamard-Sequenzen.
  • Alle Hadamard-Sequenzen sind 64-Chip-Sequenzen. Zum Erzeugen der Matrix der 2k-Chip-Hadamardsequenzen, Hk, wird das folgende iterative Merkmal verwendet:
    • • H0 = 1
    • Figure 00450001
  • Zum Erzeugen der i. Hadamard-Sequenz der Länge 2k – d.h. der i. Zeile von Hk – ist die binäre Darstellung von I erforderlich: wenn [ak–1 ... a0] die binäre Darstellung des Index I ist, wobei i = ak–1·2k–1 + ... a1·2 + a0. In der Folge wird die i. Hadamard-Sequenz Ci = [ci,0 ... ci,63] geschrieben.
    • • ci,0 = 1
    • • wenn a0 = 0: ci,1 = ci,0 anderenfalls ci,1 = 1 – ci,0 ([ci,0 ci,0] oder [ci,0 1 – ci,0])
    • • für l = 1 zu k – 1
    • • 1. Stufe:
    • • der Code ist bereits festgelegt bis [ci,0 ... ci,2 l –1]
    • • der Code bis [ci,0 ... ci,2 l+1 –1] wird wie folgt definiert:
    • • wenn al = 0: [ci,0 ... ci,2 l+1 –1] = [[ci,0 ... ci,2 l –1][ci,0 ... ci,2 l –1]]
    • • wenn al = 1: [ci,0 ... ci,2 l+1 –1] = [[ci,0 ... ci,2 l –1]] [1 – ci,0 ... 1 – ci,2 l –1]]
  • Die erste Hadamard-Sequenz ist konstant. Die Sequenz wird daher verworfen.
  • Diese 63 Hadamard-Sequenzen werden in einen Speicher gespeichert und parallel, Chip für Chip mit der Rate 1/Tc von der in 28 gezeigten Schaltung geliefert.
  • In diesem Hadamard-Sequenzerzeuger sind die Signaleingänge:
  • Figure 00450002
  • Figure 00460001
  • Die Ausgangssignale sind die Chips. Ihre Rate beträgt 1/Tc.
  • Der Verteiler der 27 empfängt TX_NB_CODES binäre Eingangsflüsse (maximal 63) und verteilt diese Eingänge mit den Hadamard-Verteilungscodes, die aus dem Verteilungscode-Erzeugungsmodul gelesen werden. Die maximale Anzahl von Eingängen ist gleich 63. Jeder Eingang i muss als aktiv betrachtet werden, wenn das Signal spr_enable[i] auf hoch gestellt ist.
  • Es gibt zwei spezielle Codes, die für die Synchronisation bestimmt sind. Diese Codes sind der Code #31 und der Code #63. Für diese Codes wird ein konstantes Symbol „1" BPSK-moduliert (keine Daten auf dem Q-Kanal).
  • Der Verteiler führt zuerst ein binäres logisches Verteilen Chip für Chip (eine binäre logische Summe) der aktiven Eingänge durch und verwendet dabei die verfügbaren Verteilungscodes. Zwei Knoten werden verwendet, um jeweils die Anzahl der „1" (erster Knoten) und „0" (zweiter Knoten) in den digitalen Verteilungssignalen zu zählen. Das Ergebnis jedes Zählers hat kein Vorzeichen und ist auf 6 Bits codiert. Um ein globales BPSK-moduliertes Signal zu erzeugen, wird der Ausgang des Knotens 2 vom Ausgang abgezogen: das Ergebnis ist daher eine Ganzzahl mit Vorzeichen über 8 Bits.
  • Die Funktionsbeschreibung des Verteilers ist unten in 29 angegeben.
  • Die Eingangs- und Ausgangssignale für diesen Verteiler sind:
  • Figure 00470001
  • Die folgenden Parameter werden verwendet:
    TX_NB_CODES: die Anzahl der aktiven Eingänge.
    TX_NB_CODES_MAX: = 63 (maximale Anzahl der aktiven Eingänge)
  • Der Ein-Aus-Takt lautet:
    • • Eingabebits (in_1, ..., in_63) haben eine Rate von Ts = 64·Tc
    • • Ausgangsbits haben eine Rate Tc
    • • Code-Chips (c_1, ..., c_63) haben eine Rate Tc
  • Das Impulsformungsfilter Tx, das in 30 gezeigt ist, führt das Filtern der digitalen Eingangsdaten mit einem Quadratwurzel FIR Raised Cosine Filter mit einem Dämpfungsfaktor von 0,22 durch. Die Koeffizienten des Filters werden in einen internen Speicher (Halbfilter wird aufgrund seiner Symmetrie gespeichert) in einem 10-Bit-Festkommaformat gespeichert. Die Eingangsdatenrate beträgt 5 MHz (Fc in der Abwärtsverbindung), die Ausgangsdatenrate beträgt 25 MHz. Daher werden für eine gegebene Eingangsprobe 5 Ausgangsproben in der darauf folgenden Zeit erzeugt. Die Eingangsdaten werden zuerst mit einem Faktor 5 einem Oversampling unterzogen (Einfügen von 4 „0" zwischen zwei Daten) und dann mit einer Rate von 25 MHz in die Schieberegister gegeben.
  • Ein Reset-Signal wird zum Initialisieren der internen Schieberegister auf den Nullwert verwendet.
  • Eine bestimmte Anzahl von Schieberegistern hat den Wert Null in einem bestimmten Zeitpunkt, nur die Schieberegister mit Wert nicht gleich Null werden jedes Mal verarbeitet, um den Filterausgang zu berechnen. Mit anderen Worten werden während einer Chipperiode 5 Phasen Komponenten des Filters sequenziell und unabhängig mit dem gleichen Zustand des Schieberegisters verarbeitet.
  • Die Eingangs- und Ausgangssignale sind:
  • Figure 00480001
  • Figure 00490001
  • Die Ausgangsdatenrate beträgt 25 MHz. Die Ausgangsdaten sind in einem Festkommaformat über 10 Bits formatiert.
  • Die Anzahl der Koeffizienten des Filters lautet: N_coef = 13.
  • Die Koeffizienten des Filters sind in einem Format über 10 Bit mit Vorzeichen formatiert. Es gibt 13 Filterkoeffizienten.
  • Figure 00490002
  • Die Eingangsdatenrate beträgt 5 MHz. Die Ausgangsdatenrate beträgt 25 MHz.
  • Gleich nach dem Tx FIR-Filterblock werden die Daten mit einem Faktor 2 gemäß 31 interpoliert, um eine Abtastrate von 50 MHz zu erzielen. Der Interpolator berechnet die Durchschnittsprobe von zwei aufeinander folgenden Eingangsproben und fügt diese Probe zwischen diese zwei Proben zu dem Ausgang ein. Die Ausgangsrate beträgt zweimal die Eingangsrate.
  • Die Eingangs- und Ausgangssignale für diesen Interpolator lauten:
    Figure 00500001
  • n:
    stellt die Eingangs- und Ausgangsdynamik dar.
  • Der NCO-Block der 4 ist detailliert in 32 dargestellt. Dieser Block liefert einen Träger in Phase und in Quadratur für den Tx-Pfad. Was die PLCN-Seite betrifft, ist Tx Abwärtsverbindung. Die Trägerfrequenz ist auf 15 MHz festgelegt. Die Eingangs- und Ausgangsabtastrate beträgt 50 MHz. Sie führt eine Transposition vom Basisband zu IF durch.
  • Die I & Q Eingabedaten kommen von dem Interpolator und werden auf 10 Bits quantifiziert. Die Eingangsdatenrate beträgt 50 MHz.
  • Die unten stehende Tabelle enthält die tabellierten Werte der Sinus- und Kosinusfunktionen. Diese Werte werden in einen internen Speicher gespeichert. Die Trägerfrequenz wird auf 15 MHz festgelegt und die Werte werden mit einer Rate von 50 MHz erzeugt und im 10-Bit-Format mit Vorzeichen quantifiziert.
  • Zum Berechnen dieser Werte:
    cos table(k) = cos(2πνc(k/FS)) = cos(2πk·3/10)
    sin table(k) = sin(2πνc(k/FS)) = sin(2πk·3/10)
    wobei: vc die Trägerfrequenz (15 MHz)
    FS die Abtastfrequenz (50 MHz) ist.
  • Nur eineinhalb Perioden werden in den internen Speicher gespeichert. Zum Berechnen von drei Perioden:
    cos(k) = cos table(k) wenn k ∊ [[0; 4]]
    cos(k) = –cos table(k – 5) wenn k ∊ [[5; 9]]
    wobei: Cos table(k) die tabellierten Werte des Kosinus, die in den internen Speicher gespeichert sind, sind,
    sin(k) = sin table(k) wenn k ∊ [[0; 4]]
    sin(k) = –sin table(k – 5) wenn k ∊ [[5; 9]]
    wobei: Sin table(k) die tabellierten Werte des Sinus, die in den internen Speicher gespeichert sind, sind.
  • Da Kosinus und Sinus periodische Funktionen mit einer Periode von 2π sind, sind nur dieses Werte von Nutzen:
    sin(k + 10) = sin(k) und cos(k + 10) = cos(k)
  • Das Ergebnis lautet daher: out(k) = I(k)·sin(k) + Q(k)·cos(k)
  • Figure 00510001
  • Figure 00520001
  • Nach dem NCO Tx, wird das Signal, das um die Trägerfrequenz (15 MHz) liegt, gemäß 4 mit einem Faktor 2 geupsampelt, um eine Ausgangsabtastfrequenz von 100 MHz zu erhalten. Dazu wird ein linearer Upsampler gemäß 33 angewandt.
  • Zuerst wird ein „0" Bit zwischen zwei Datenbits eingefügt. Danach wird das Signal mit einem linearen Filter interpoliert. Dieses Filter löscht nur das Bildsignal um die Frequenz 35 MHz (Eingangsabtastrate – Trägerfrequenz = 50 MHz-15 MHz = 35 MHz). Das Filter ist ein FIR-Filter. Seine Koeffizienten lauten:
    –110 –174 99 511 511 99 –174 –110
  • Das erzielte Filter hat eine Amplitude und eine Phasenantwort wie in 34 gezeigt. Die Taktreaktion zu einem Dirac ist in 35 gezeigt.
  • MASTER LK12001 AUFWÄRTSVERBINDUNGSEMPFANG
  • Unten wird die Spezifikation der RX Aufwärtsverbindung gegeben, da sie in dem MASTER Chip LK12001 enthalten ist. Für die Aufwärtsverbindung – Empfangsseite, Zwischenfrequenztransposition (IF), werden ein Downsampling und Filtern gemäß 36 und eine Synchronisation, Demodulation und Entsynchronisation gemäß 37 durchgeführt. Das Ziel dieses Signalverarbeitungsuntersystems besteht im Durchführen
    • • des Umsetzens IF zu Basisband (NCO-Block)
    • • Downsampling
    • • Filtern (SRRC-Filter)
  • Die Eingangsprobenrate beträgt 100 MHz. Die Proben werden auf 10 Bits quantifiziert. Die zentrale Frequenz beträgt 20 MHz. Die Ausgangsprobenrate beträgt 12,5 MHz. Die Proben werden auf 12 Bits quantifiziert. Das Ausgangssignal ist ein Basisbandsignal.
  • Für die Umsetzung IF zu Basisband ist der NCO-Rx der 36 in Detail in 38 dargestellt. Dieser Block liefert Signale in Phase und in Quadratur, die aus dem Eingangsträgersignal berechnet werden. Was die PLCN-Seite betrifft, ist Rx Aufwärtsverbindung. Die Trägerfrequenz ist auf 20 MHz für die Rx Aufwärtsverbindung festgelegt. Die Probenrate für die Eingangs- und Ausgangsproben beträgt 100 MHz.
  • Die unten stehende Tabelle enthält die tabellierten Werte der Sinus- und Kosinusfunktionen. Diese Werte werden in einen internen Speicher gespeichert. Die Trägerfrequenz wird auf 20 MHz für die Rx Aufwärtsverbindung festgelegt, und Werte werden mit einer Probenrate von 100 MHz erzeugt und im 10-Bit-Format mit Vorzeichen quantifiziert.
  • Zum Berechnen dieser Werte:
    Cos table(k) = cos(2πνc(k/FS)) = cos(2πk/5)
    Sin table(k) = sin(2πνc(k/FS)) = sin(2πk/5)
    wobei: vc die Trägerfrequenz (20 MHz)
    FS die Abtastfrequenz (100 MHz) ist.
  • Nur eineinhalb Perioden werden in den internen Speicher gespeichert. Zum Berechnen von drei Perioden:
    Cos(k) = Cos table (k) wenn k ∊ [[0; 4]]
    wobei: Cos table(k) die tabellierten Werte des Kosinus, die in den internen Speicher gespeichert sind, sind,
    Sin(k) = Sin table(k) wenn k ∊ [[0; 4]]
    wobei: Sin table(k) die tabellierten Werte des Sinus, die in den internen Speicher gespeichert sind, sind.
  • Da Kosinus und Sinus periodische Funktionen mit einer Periode von 2π sind, sind nur diese Werte von Nutzen:
    Sin(k + 5) = Sin(k) und Cos(k + 5) = Cos(k)
  • Das Ergebnis lautet daher: out(k) = I(k)·Sin(k) + Q(k)·Cos(k)
  • Figure 00540001
  • Die Downsamplingblöcke der 36 sind detailliert in 39 dargestellt. Dieser Block mindert die Abtastrate um einen Faktor 2. Gleich vor dem Downsampling wird ein Filter angewandt, um die Aliasing-Verzerrungseffekte zu vermeiden. Drei Downsampler werden zwischen dem NCO_RX und dem SRRC-Filter verwendet. Das Signal ist ein Basisbandsignal mit einer maximalen Frequenz von 1,525 MHz.
  • Der Hauptzweck des Filters besteht darin, Aliasing- Verzerrungseffekte zu vermeiden. Es behält nur die Basisbandfrequenz (zwischen –1,55 MHz und 1,55 MHz) und dämpft alle anderen Frequenzen. Die Dämpfung muss für die Frequenzen über Fe/2 hoch sein, wobei Fe die Eingangsabtastrate ist.
  • Für die beiden ersten Downsampler lauten die Filterkoeffizienten: 136, 341, 511, 511, 341, 136. Ihre Antwort ist in 40 gezeigt.
  • Für den dritten Downsampler lauten die Filterkoeffizienten: –13, 94, 316, 511, 511, 316, 94, –13. Ihre Antwort ist in 41 gezeigt.
  • Das Rx SRRC-Filter der 36 ist als Konzept und als ein Beispiel in 42 und 43 dargestellt. Dieses Filter führt das Filtern der digitalen Eingangssignale mit einem Quadratwurzel FIR Raised Cosine Filter mit einem Dämpfungsfaktor von 0,22 durch. Die Koeffizienten des Filters werden in einen internen Speicher (Halbfilter wird aufgrund seiner Symmetrie gespeichert) in einem 10-Bit-Festkommaformat gespeichert. Die Eingangs- und die Ausgangsdatenrate ist die Symbolrate/5, d. h. 12,5 MHz in Aufwärtsverbindung. Das Eingangssignal wird in die Schieberegister gegeben.
  • Ein Reset-Signal wird zum Initialisieren der internen Schieberegister auf den Nullwert verwendet.
  • Die Anzahl des Koeffizienten des Filters lautet: N_coef = 13.
  • Die Koeffizienten des Filters sind in einem Format über 10 Bit mit Vorzeichen formatiert. Es gibt 13 Filterkoeffizienten.
  • Figure 00560001
  • Zur Synchronisation, Demodulation und Entsynchronisation muss der CDMA-Rahmen nach dem Empfang des Signals gemäß 44 decodiert werden. Zuerst muss der CDMA-Rahmen synchronisiert werden. Dazu wird das Flag SOF erfasst. Diese Funktion wird von dem Synchronisationsblock ausgeführt. Die Funktion erlaubt es, die Synchronisationsposition und Phase des Kanals festzustellen.
  • Sobald danach das Flag SOF erfasst wird, wird das Signal demoduliert. Während der Demodulation werden die Synchronisationsposition und Phase des Kanals aktualisiert.
  • Mit den demodulierten Bits wird der Rest des CDMA-Rahmens decodiert. Zuerst wird der Kopf mit einem Reed Solomon-Decoder decodiert. Danach wird mit dem Ergebnis des Kopfdecoders die Nutzinformation durch einen Viterbi-Decoder decodiert. Das Ergebnis dieses Nutzinformationsdecoders ist der Ethernetrahmen, der dem externen Controller mit dem MII-Controller übertragen wird.
  • Der Sequenzierer übernimmt die Abfolge der Operationen.
  • Der Sequenzierer implementiert eine Statusmaschine, die in 45 gezeigt ist. Zuerst wird die Synchronsation festgestellt (Zustand synchronisation). Danach werden die Daten demoduliert. Während dieser Demodulation wird zuerst der Kopf decodiert. Dieser Kopf enthält Schlüsselinformationen, wie zum Beispiel die Rahmenlänge. Wenn der Kopf OK ist, wird die Nutzinformation decodiert. Sobald die Bits der Nutzinformationslänge der Nutzinformation demoduliert sind, muss ein neues Synchronisationsmuster gefunden werden.
  • Da das Decodieren des Kopfes länger dauert als die Länge des Kopfes, wird ein Pufferspeicher verwendet. In diesem Pufferspeicher werden die Daten der demodulierten Nutzinformation gespeichert, bis das Ergebnis des Kopfdecoder-Blocks verfügbar ist. Ist der Kopf OK, werden diese Bits, die in dem Pufferspeicher gespeichert sind, an den Nutzinformationsdecoder-Block geliefert. Ist der Kopf NOK, wird der Pufferspeicher zurückgestellt und ein neues Synchronisationsmuster wird gesucht (Zustand synchronisation).
  • Zum Durchführen der Synchronisation der Schaltung der 44 erfolgt gemäß 46 eine Korrelation zwischen dem Flag SOF und dem empfangenen mit der Rate TSymbol abgetasteten Signal. Parallel dazu wird die Summe der Absolutwerte des mit der Rate TSymbol abgetasteten Eingangssignals erstellt. Das Ergebnis dieser Summe ergibt ein Niveau. Ist die Norm des Ergebnisses der Korrelation nahe der Norm des Niveaus, wurde das Flag SOF gefunden.
  • Der Vergleich zwischen dem Niveau und dem Ergebnis der Korrelation lautet: wenn
    Figure 00570001
    wurde das Flag SOF gefunden.
  • Nach dem Feststellen der Synchronisationsposition, ist der Synchronisationsblock noch aktiv, um das Feststellen der optimalen Synchronisationsposition zu erlauben. Dieser Block vergleicht die Norm der Korrelation (Signal Phase I/Q) mit den 4 aufeinander folgenden Normen der Korrelation. Das Maximum dieser Norm ergibt die endgültige Synchronisationsposition.
  • Zum Durchführen der Demodulation der Schaltung der 44 erfolgt gemäß 47 ein Neuabtasten des Signals mit der Rate 1/TSymbol (2,5 MHz). Das erfolgt mit dem Verzögerungsleitungsblock. Danach wird die Phase des Signals korrigiert. Abschließend erfolgt das Demapping der Symbole.
  • Während dieses Demodulationsprozesses werden die Phase und die Synchronisationsposition mit dem empfangenen Signal aktualisiert und die Symbole demoduliert. Diese Blöcke berechnen die Phase des Signals (über ein Fenster zu 32 Proben) oder die Synchronisationsposition (über ein Fenster zu 128 Proben). Ganz zu Beginn sind die Phase und die Synchronisationsposition des Signals, die verwendet werden, die Phase und die Synchronisation, die von dem Sychronisationsblock gegeben werden.
  • Der Aktualisierungssynchroblock liefert die Synchronisationsposition delta: –1, 0 oder +1. Danach berechnet ein Addierglied die tatsächliche Synchronisationsposition (modulo 5). Ferner erzeugt es zwei Signale:
    • • Unterlauf: Wenn die Synchronisationsposition ein Minimum (–1) erreicht und 4 (4 = –1 modulo 5) wird
    • • Überlauf: Wenn die Synchronisationsposition ein Maximum (5) erreicht und 0 (0 = –1 modulo 5) wird
  • Wenn das Signal Unterlauf gesetzt ist, muss die demodulierte Probe abgewiesen werden. Ist das Signal Überlauf gesetzt, müssen das Symbol demoduliertes Symbol und das Symbol nächstes demoduliertes Symbol in dieser Reihenfolge berücksichtigt werden (2 Symbole). Zum Verarbeiten dieser 2 Fälle erzeugt der Verzögerungsleitungs-Block ein Signal (Signal: Phase korrigieren) und die korrekte Phase, die der Phasennummer entspricht wird eingegeben, um das Symbol Symbol demoduliert und ein Signal zu erzeugen (Signal: nächste Phase) an der Phase Nummer –1, um das Symbol nächstes Symbol demoduliert im Falle eines Unterlaufs (Signal Unterlauf gesetzt) zu erzeugen.
  • Das Ziel der Verzögerungsleitung der 47, die in 48 detailliert gezeigt ist, besteht im Neuabtasten des Eingangssignals von 12,5 MHz bis 2,5 MHz. Die korrekte Phase wird von der Eingangs-Phasennummer gegeben. Das Ausgangssignal Phase korrigieren wird zum Demodulieren der Symbole verwendet. Die zwei anderen Signale vorhergehende Phase und nächste Phase werden gemeinsam mit dem Signal Phase korrigieren verwendet, um festzustellen, ob sich die Synchronisationsposition verschoben hat (Signale, die von dem Block Synchro aktualisieren verwendet werden) und stellen tatsächlich die vorhergehende Phase und die nächste Phase dar (von der laufenden Phase auf das Signal laufende Phase geliefert). Das Signal nächstes Symbol wird verwendet, um den Fall zu bearbeiten, in dem die Synchronisationsposition von 4 auf 0 wechselt.
  • Die Phasennummer stellt die Phasennummer des Signals dar. Das Ausgangssignal laufende Phase wird auf die Phase gegeben: Phasennummersignal. Das Ausgangssignal nächste Phase wird auf die Phase gegeben: Signal Phasennummer +1. Das Ausgangssignal vorhergehende Phase wird auf die Phase gegeben: Signal Phasennummer –1. Die Symbolrate der Ausgangssignale beträgt 2,5 MHz (5 Mal kleiner als die Symbolrate der Eingangssignale).
  • Die Signalphase muss gemäß dem Block der 49 korrigiert werden. Zum Korrigieren dieser Phase wird eine Schätzung der Phase des Kanals, die vom Block Phase aktualisieren geliefert wird, verwendet.
  • Mit den Symbolen nach der Phasenkorrektur erfolgt das Demapping der Symbole. Das QPSK-Demapping der 47 ist detailliert in 50 dargestellt. Dazu wird zuerst das Vorzeichen des Signals I/Q berechnet, danach wird das folgende Mapping verwendet:
    +1 → 0
    –1 → 1
  • Der Block Ausgangsbits neu formatieren der 47 ist detailliert in 51 dargestellt. Die Eingangsbits treffen mit einer Rate von 2,5 MHz ein. Wenn neues Symbol aktiviert ist, sind die Daten auf diesen Eingängen laufendes Symbol und nächstes Symbol gültig. Wenn weder das Signal Überlauf noch das Signal Unterlauf aktiviert ist, wird nur das laufende Signal verwendet und zu Daten aus geliefert (2 Bits). Wenn das Signal Überlauf aktiviert ist, werden das laufende Signal und nächstes Signal verwendet und zu Daten aus geliefert (4 Bits). Wenn das Signal Unterlauf aktiviert ist, werden zu dem Daten aus keine Bits geliefert.
  • Um das umzusetzen, werden ein MUX und ein Zähler verwendet. Der Zähler gibt den Index der Eingangsbits. Der Zähler wird auf 0 zurückgestellt, wenn neue Symbole gültig sind (wenn das Eingangssignal neues Symbol gesetzt ist). Das obere Limit des Zählers ist:
    • • wenn das Signal Unterlauf gesetzt ist: oberes Limit = 0
    • • wenn das Signal Überlauf gesetzt ist: oberes Limit = 4
    • • Wenn keines der Signale Unterlauf oder Überlauf gesetzt ist: oberes Limit = 2
  • Die zwei LK12011 und LK12001 sind perfekt synchronisiert. Die Position der Synchronisation muss daher aktualisiert werden. Der Block Synchro aktualisieren der 47, der in 52 detailliert gezeigt ist, muss der Position der Synchronisation folgen. Dazu wird die Häufung der Norm des Signals durchgeführt. Mit den Ergebnissen dieser Häufung wird die optimale Synchronisationsposition gefunden. Diese Synchronisationsposition wird dann von der Verzögerungsleitung verwendet. Das Delta zwischen der alten Synchronisationsposition und der neuen Synchronisationsposition ist eingeschränkt auf –1, 0 oder +1.
  • Zum Durchführen der Synchronisationsaktualisierung wird ein Fenster zu 128 Symbolen verwendet. Es wird davon ausgegangen, dass die Synchronisationsposition während dieses Fensters gleich ist (ein Verschieben der Synchronisationsposition ist nur auf Rauschen zurückzuführen).
  • Der Block der Phasenaktualisierung der 47 ist detailliert in 53 dargestellt. Die Phase des Signals kann sich aus folgenden Gründen schnell ändern: Kanal und Ungenauigkeit der Takte. Daher muss der Phasenwert aktualisiert werden. Die folgende Annäherung wird verwendet: Während eines Fensters zu 32 Proben ist die Phase des Signals konstant.
  • Die Phasenberechnung ist in der Schaltung der 54 gegeben. Hinweis: Das BPSK-Mapping entspricht dem folgenden Mapping:
    0 → +1
    1 → –1
  • Die Entsynchronisation und das Viterbi-Decodieren erfolgen gemäß 55. Nach dem Erfassen des Rahmenanfangs durch Erfassen des Flags SOF, muss der Kopf mit dem Block der 56 decodiert werden. Der codierte Kopf hat eine Länge von 60 Bits. Der Reed Solomon-Decoder wird verwendet. Der Eingang dieses Blocks ist ein Bus mit 4 Bit Breite. Das Ergebnis dieses Decoders wird auf einen Bus mit 4 Bit Breite gegeben. Danach wird die Anzahl der erfassten und korrigierten Fehler (Anzahl der Bits) gezählt. Anschließend muss der hervorgehende Kopf (36 Bits) geprüft werden:
    • • Der Typ des Nutzinformationscodierers muss 0 oder 4 sein (4 Bits)
    • • Die Verwürflerinitialisierung wird nicht geprüft (4 Bits)
    • • Die Länge der Nutzinformation muss zwischen 512 oder 12144 liegen (4 Bits)
    • • Das undefinierte Feld muss 0 sein (12 Bits)
  • Ist die Anzahl der Fehler niedrig genug (geringer als 3 Bits) und der hervorgehende decodierte Kopf ist OK, wird der Kopf mit dem Ausgang Kopf OK auf hoch gesetzt geliefert. Anderenfalls wird der Ausgang Kopf NOK auf hoch gesetzt.
  • Zuerst müssen die empfangenen Daten entschachtelt werden. Die Zeit zum Verarbeiten des Kopfs – Status 2: Kopf decodieren – ist länger als die Länge des Kopfes. Vor diesem Block befindet sich daher ein Pufferspeicher, um die Daten zu speichern und auf das Ergebnis des Blocks Kopfdecoder zu warten.
  • Zum Durchführen der Entschachtelung wird der gleiche Block wie beim Senden mit der Ausnahme verwendet, dass die Lese- und Schreibvorgänge umgekehrt sind: Dieser Block schreibt die Daten diagonal und liest sie Zeile für Zeile. Einige Extraausgänge und Extraeingänge werden hinzugefügt. Ein Ausgangskontakt – Daten verfügbar zeigt dem Viterbi-Decoder an, dass neue Daten verfügbar sind. Zwei Extraeingangskontakte – Kontakt Typ des Codierers und Nutzinformationslänge informieren über den laufenden Rahmen und erlauben das Berechnen der codierten Nutzinformationslänge. Diese zwei letzten Eingänge sind eigentlich die Werte von zwei Feldern Kopf des laufenden Rahmens. Sie erlauben das Berechnen der Länge der codierten Nutzinformationsvariablen – LängeNutzinformationCodiert:
    wenn der Codierertyp 0 ist,
    LängeNutzinformationCodiert = 2 × LängeNutzinformation + 4;
    anderenfalls
    LängeNutzinformationCodiert = ceil (4/3 × LängeNutzinformation + 5);
    End;
    Eine Ceil-Funktion findet die nächste Ganzzahl zu + unendlich. Beispiel: ceil(2, 3) = 3
  • Sobald die Bits LängeNutzinformationCodiert von dem Block Entschachtler zu dem Viterbi-Decoder gesendet wurden, stoppt der Block Entschachtler das Senden von Bits, setzt seinen internen Speicher zurück und setzt den Ausgangskontakt letzter Block gelesen auf hoch.
  • Danach werden die Daten decodiert. Der Viterbi-Decoder wird verwendet. Es gibt zwei verschiedene Decoder. Der Wert des Kopfs (das Feld Typ des Codierers) wählt den richtigen Decoder aus. Die resultierenden Werte werden in den FIFO-Speicher gespeichert. Während der Verarbeitung bleibt der Kontakt Decoder starten hoch.
  • Anhand der Werte der Felder des Kopfs kann die Länge der codierten Nutzinformation verarbeitet werden (Variable LängeNutzinformationCodiert). Nachdem der Block Nutzinformationsdecoder die Bits LängeNutzinformationCodiert erhalten hat, wurden von dem Block Nutzinformationsdecoder alle Daten empfangen. Der Kontakt letzter Block gelesen geht auf hoch über. Der Empfänger muss seinen Status ändern, um nach einem neuen Flag SOF zu suchen. Daher wird der Kontakt Decoder starten tief. Nach dem Verarbeiten der gesamten Nutzinformation – die Anzahl der Bits der Nutzinformation vor dem Codieren wird innerhalb des Kopfs angegeben – werden die Bits Beschränkungslänge auf „0" gesetzt und zu dem Viterbi-Decoder gesendet, wobei die Beschränkungslänge die Beschränkungslänge des Viterbi-Decoders ist.
  • Eine mögliche Implementierung des Entschachtlers der 55 ist detailliert in 57 gegeben.
  • Die ankommenden Daten – Kontakt data_in – werden in dem Schreibspeicherblock gespeichert. Der Schreibzähler verwaltet die Adresse, an der die Daten gespeichert werden. Wenn der Kontakt Anfang eines Rahmens – erste Daten hoch ist, wird der Schreibzähler zurückgestellt und „1" wird in dem Speicher erster Block gespeichert. Der Typ des Codierers" und die Nutzinformationslänge werden in ihren zugehörigen Speicherblöcken gespeichert. Sobald das letzte Bit geschrieben ist, wird der Eingang letztes Bit hoch.
  • Gleichzeitig werden Daten aus dem Lesespeicherblock gelesen und zu dem Ausgangskontakt data out gegeben. Der Lesezähler verwaltet die Adresse, von welcher die Daten gelesen werden. Der Zähler Nutzinformationsbitzähler zählt die Anzahl der Bits, die von dem Block Entschachtler zu dem Block Viterbi-Decoder gesendet wurden. Sobald diese Anzahl ihr Maximum erreicht, NutzinformationslängeCodier, die von den Werten Typ des Codierers und Nutzinformationslänge abhängt, werden beide Zähler, Nutzinformationsbitzähler und Lesezähler zurückgestellt, und es werden bis zum Anfang eines neuen Blocks keine Bits mehr zu dem Viterbi-Decoder gesendet. Ist der Speicherblock erster Block auf „1" gesetzt, zeigt das den Anfang eines neuen Rahmens an. Danach wird dieser Speicherblock auf „0" gesetzt, und die Zähler Lesezähler und Nutzinformationsbitzähler werden zurückgestellt, die codierte Nutzinformationslänge wird berechnet. Zwei Ausgangskontakte zeigen an, ob es sich um den Ausgangskontakt erstes Ausgangsbit, erstes gelesenes Bit, oder den Ausgangskontakt letztes gelesenes Bit, letztes gelesenes Bit handelt.
  • Sobald der Schreibzähler und der Lesezähler ihr Maximum erreichen, normalerweise gleichzeitig, nämlich 1024, wird der Schreibblockspeicher mit seinem zugehörigen ersten Block mit dem Leseblockspeicher mit seinen zugehörigen Speicherblöcken erster Block, Typ des Codierers und Nutzinformationslänge und die zwei Zähler Schreibzähler und Lesezähler zurückgestellt.
  • Danach werden die Daten decodiert. Der Viterbi-Decoder wird verwendet. Es gibt zwei verschiedene Decoder, die in 58 und 59 gezeigt sind. Der Wert des Kopfs (das Feld Typ des Codierers) wählt den richtigen Decoder aus. Die resultierenden Werte werden in den FIFO-Speicher gespeichert.
  • Nachdem der Block Nutzinformationsdecoder die Bits LängeNutzinformationCodiert erhalten hat, wurden von dem Block Nutzinformationsdecoder alle Daten empfangen. Der Empfänger muss seinen Status ändern, um nach einem neuen Flag SOF zu suchen. Nach dem Verarbeiten der ganzen Nutzinformation, die Anzahl der Bits der Nutzinformation vor dem Codieren wird in dem Kopf angegeben, werden alle internen Speicher zurückgestellt.
  • Um die Geschwindigkeit des Viterbi-Decoders zu steigern, steigert man die Bitrate zwischen dem Block Entschachtler und dem Viterbi-Decoder. Die Zeit zum Decodieren eines 1024-Bit-Blocks ist daher kleiner als 1024 Bits.
  • Die Daten werden in einem in 60 gezeigten Block gepuffert. Da das Verarbeiten des Kopfs länger dauert als die Länge des Kopfes, erlaubt es dieser Pufferspeicher daher, die Nutzinformationsdaten nicht zu verlieren, während das Ergebnis des Blocks Kopf decodieren abgewartet wird.
  • Wird ferner ein falsches SOF erfasst, erlaubt es dieser Speicher, nach einem neuen SOF zu suchen, das sich gleich nach dem falschen SOF befinden könnte. Nach dem Empfangen des Ergebnisses von dem Block Kopfdecoder, dass der Kopf NOK ist, muss der Datenpufferspeicher die vorhergehenden Daten noch einmal lesen und zu dem Block SOF erfassen senden.
  • Der Speicher ist ein 18 kbit langer FIFO-Speicher. Der Speicher ist ein Doppelschnittstellenspeicher. Die Adressen zum Schreiben und Lesen werden von zwei Zählern verwaltet. Die Zähler Schreibzähler und Lesezähler sind 0 bis 16838-Zähler. Diese Zähler werden nach jedem Schreib- oder Lesevorgang (angezeigt durch die Signale Pufferspeicher in Aktivieren und Lesen aktivieren) um 1 inkrementiert. Nach dem Lesen des Kopfs, wartet der Lesezähler auf das Ende des Kopfdecoders und liefert die Nutzinformation an den Nutzinformationsdecoder.
  • SLAVE-ABWÄRTSVERBINDUNGS-EMPFANGSCHIP LK12011
  • Unten wird eine detaillierte Spezifikation des Netzwerk-Slave LK12011 gegeben.
  • Das Konzept des Abwärtsverbindungsempfangs ist in 61 gezeigt, während die entsprechende Synchronisation-Demodulation und Entsynchronisation jeweils in 62 und 63 gezeigt sind.
  • Der Block MII-Controller des Chips LK12011 ist gleich wie der des LK12001.
  • Vor irgendeiner Verarbeitung muss der Verstärkungswert durch die automatische Verstärkungskontrolle (AGC) der 61 geprüft werden. Das ist detailliert in 64 gezeigt. Das stellt sicher, dass das Signal ein signifikantes Niveau für eine korrekte Demodulation hat. Das beugt dem Überlaufen vor. Die Anzahl der Proben, die zum Berechnen der Verstärkung berücksichtigt wird, entspricht einer Dauer von 10 Ts–128 μs – d.h. 12800 Proben, was einer Frequenz von 7812,5 Hz entspricht, Daher wird alle 128 μs der Block MaxBlock zurückgestellt und ein Beschluss wird gefällt.
  • Zuerst der absolute maximale Wert eines Fensters von 12800 Proben. Mit diesem Höchstwert wird eine Verstärkung berechnet (der Block Beschluss) und an das AFE gesendet.
  • Die Ausgangsverstärkung wird über 4 Bits codiert. Dieser Ausgang codiert die Verstärkung (in dB): 0001 entspricht 1 dB, 0010 entspricht 2 dB usw.
  • Die Strategie des Beschlussblocks lautet wie folgt:
    • – wenn MaxValue kleiner ist als 58, 7 dB zur laufenden Verstärkung hinzufügen
    • – wenn MaxValue zwischen 58 und 72 liegt, 6 dB zur laufenden Verstärkung hinzufügen
    • – wenn MaxValue zwischen 73 und 92 liegt, 5 dB zur laufenden Verstärkung hinzufügen
    • – wenn MaxValue zwischen 92 und 115 liegt, 4 dB zur laufenden Verstärkung hinzufügen
    • – wenn MaxValue zwischen 115 und 145 liegt, 3 dB zur laufenden Verstärkung hinzufügen
    • – wenn MaxValue zwischen 145 und 183 liegt, 2 dB zur laufenden Verstärkung hinzufügen
    • – wenn MaxValue zwischen 183 und 230 liegt, 1 dB zur laufenden Verstärkung hinzufügen
    • – wenn MaxValue zwischen 230 und 289 liegt, den Verstärkungswert unverändert lassen.
    • – wenn MaxValue zwischen 289 und 364 liegt, 1 dB von der laufenden Verstärkung abziehen
    • – wenn MaxValue zwischen 364 und 458 liegt, 2 dB von der laufenden Verstärkung abziehen
    • – wenn MaxValue größer ist als 458, 3 dB von der laufenden Verstärkung abziehen
  • Gleich nach dem Rückstellen wird der Verstärkungswert auf 0 gestellt.
  • Für die Signalverarbeitung ist ein erster Downsampler durch 2 von 61 in 65 detailliert gezeigt. Dieser Block mindert die Abtastrate um einen Faktor 2. Gleich vor dem Downsampling wird ein Filter angewandt, um die Aliasing-Verzerrungseffekte zu vermeiden. Dieser Downsampler wird gleich vor dem NCO verwendet. Das Signal ist um die Frequenz von 15 MHz zentriert. Die Bandbreite des Signals beträgt 6,1 MHz. Die Abtastrate beträgt 100 MHz.
  • Der Hauptzweck des Filters besteht darin, Aliasing-Verzerrungseffekte zu vermeiden. Es behält nur die Bandbreite um die Trägerfrequenz, 15 MHz (zwischen 11,95 MHz und 18,05 MHz) und dämpft alle anderen Frequenzen, die höher sind als 25 MHz.
  • Das Filter ist ein Remez FIR-Filter. Seine Koeffizienten lauten:
    –89 6 24 –85 –245 –197 151 511 511 151 –197 –245 –85 24 6 –89
  • Das erzielte Filter hat eine Amplitude und eine Phasenantwort wie in 66 gezeigt und eine Dirac-Antwort, die in 67 gezeigt ist.
  • Das Eingangssignal wird von dem DAC mit einer Abtastrate von 100 MHz erzeugt. Die Eingangs- und Ausgangssignale sind:
  • Figure 00680001
  • Figure 00690001
  • Der Block NCO_RX der 61, der in 68 detailliert gezeigt ist, liefert Signale in Phase und in Quadratur, die aus dem Eingangsträgersignal berechnet werden. Was die PLCN-Seite betrifft, ist Rx Abwärtsverbindung. Die Trägerfrequenz ist auf 15 MHz für die Rx Abwärtsverbindung festgelegt. Die Eingangs- und Ausgangsabtastrate beträgt 50 MHz.
  • Das Eingangssignal wird von dem Downsampler erzeugt und über 10 Bits quantifiziert. Die Eingangsdatenrate beträgt 50 MHz.
  • Die unten stehende Tabelle enthält die tabellierten Werte der Sinus- und Kosinusfunktionen. Diese Werte werden in einen internen Speicher gespeichert. Die Trägerfrequenz wird auf 15 MHz für die Rx Abwärtsverbindung festgelegt, und Werte werden für eine Abtastrate von 50 MHz erzeugt und im 10-Bit-Format mit Vorzeichen quantifiziert.
  • Zum Berechnen dieser Werte:
    Cos table(k) = cos(2πνc(k/FS)) = cos(2πk·3/10)
    Sin table(k) = sin(2πνc(k/FS)) = sin (2πνk·3/10)
    wobei: vc die Trägerfrequenz (15 MHz)
    FS die Abtastfrequenz (50 MHz) ist.
  • Nur eineinhalb Perioden werden in den internen Speicher gespeichert. Zum Berechnen von drei Perioden:
    Cos(k) = Cos table(k) wenn k ∊ [[0; 4]]
    Cos(k) = –Cos table(k – 5) wenn k ∊ [[5; 9]]
    wobei: Cos table(k) die tabellierten Werte des Kosinus, die in den internen Speicher gespeichert sind, sind,
    Sin(k) = Sin table(k) wenn k ∊ [[0; 4]]
    Sin(k) = –Sin table(k – 5) wenn k ∊ [[5; 9]]
    wobei: Sin table(k) die tabellierten Werte des Sinus, die in den internen Speicher gespeichert sind, sind.
  • Da Kosinus und Sinus periodische Funktionen mit einer Periode von 2π sind, sind nur dieses Werte von Nutzen:
    Sin(k + 10) = Sin(k) und Cos(k + 10) = Cos(k)
  • Das Ergebnis lautet daher: out(k) = I(k)·Sin(k) + Q(k)·Cos(k)
  • Figure 00700001
  • Zwei zweite Downsampler durch 2 von 61, die detailliert in 69 gezeigt sind, mindern die Abtastrate um einen Faktor 2. Gleich vor dem Downsampling wird ein Filter angewandt, um die Aliasing-Verzerrungseffekte zu vermeiden. Dieser Downsampler wird gleich vor dem Impulsformungsfilter verwendet. Das Signal ist ein Basisbandsignal mit einer maximalen Frequenz von 3,05 MHz. Die Abtastfrequenz des Eingangssignals beträgt 50 MHz.
  • Der Hauptzweck des Filters besteht darin, Aliasing-Verzerrungseffekte zu vermeiden. Es behält nur die Basisbandfrequenz (zwischen –3,05 MHz und 3,05 MHz) und dämpft alle anderen Frequenzen. Die Dämpfungen müssen für Frequenzen über Fe/2 hoch sein.
  • Das Filter ist ein Remez FIR-Filter. Seine Koeffizienten lauten:
    • – 102 349 511 511 349 102
  • Das erzielte Filter hat eine Amplitude und eine Phasenantwort wie in 70 gezeigt und eine Dirac-Antwort, die in 71 gezeigt ist.
  • Die Signale, die in diesen zweiten Downsampler eingegeben und von ihm ausgegeben werden, sind:
  • Figure 00710001
  • Das RX FIR-Filter (Rx_FILTER) der 61, das detailliert in 72 gezeigt ist, führt das Filtern der digitalen Eingangsdaten mit einem Quadratwurzel FIR Raised Cosine Filter mit einem Dämpfungsfaktor von 0,22 durch. Die Koeffizienten des Filters werden in einen internen Speicher (Halbfilter wird aufgrund seiner Symmetrie gespeichert) in einem 10-Bit-Festkommaformat gespeichert. Die Eingangs- und die Ausgangsdatenrate ist die Chiprate/5, d. h. 25 MHz in Abwärtsverbindung. Das Eingangssignal wird in die Schieberegister gegeben.
  • Ein Reset-Signal wird zum Initialisieren der internen Schieberegister auf den Nullwert verwendet.
  • Ihre Eingangs- und Ausgangssignale sind:
  • Figure 00720001
  • Die Ausgangsdatenrate beträgt Tc/5 MHz. Die Ausgangsdaten sind in einem Festkommaformat über 12 Bits formatiert.
  • Die Anzahl der Koeffizienten des Filters lautet: N_coef = 13.
  • Die Koeffizienten des Filters sind in einem Format über 10 Bits mit Vorzeichen formatiert. Es gibt 13 Filterkoeffizienten.
  • Figure 00730001
  • Die Eingangs- und Ausgangsdatenrate beträgt Tc/5 (25 MHz).
  • Der Synchronisationsblock der 62 ist detailliert in 73 gezeigt. Der Synchroblock führt den Synchronsationsprozess aus. Die Präzision dieser Synchronisation beträgt Tc/5 (0,04 μs). Er findet die Chip-Synchronisationsposition ohne vorheriges [?]. Die Synchronisation basiert auf der Schätzung eines Korrelationsfensters, das mit der Rate 25 MHz definiert ist (d. h. Tc/5 in Abwärtsverbindung) und mit einer Dauer eines Symbols (64-Tc Period) und wird über die Synchronisationscodes (S0) geschätzt. Der Synchroblock berechnet alle Korrelationspunkte in 5 Symbolperioden (5 Ts), findet das Maximum innerhalb der geschätzten Punkte und zieht es von der Chip-Synchronisationsposition ab.
  • Ein ganzes Fenster enthält 64·5 = 320 Punkte. Das Schätzen eines solchen Fensters erfolgt in fünf Durchgängen. Jeder Durchgang führt die Berechnung eines Fensters der Länge Ts (64·Tc) durch aber definiert mit der Rate 1/Tc und mit einer Verschiebung auf dem Eingangssignal von n·Tc/5, wobei n zwischen 0 und 4 liegt.
  • Nach diesen Berechnungen wird der Korrelationsgipfel gesucht. Er entspricht dem Maximum der Amplitude aller dieser zuvor berechneten Punkte (komplexe Zahlen). Seine Position entspricht der Synchronisationsposition. Um Störungen auf dieser Position aufgrund des Hintergrundrauschens auf dem Kanal oder der Inter Symbol Interference (ISI) zu vermeiden, wird diese Position gefiltert (Block Synchroglätten & Beschluss). Das Ergebnis dieser Berechnung wird danach zum Verzögern des Signals (Block Verzögerungsleitung) um syn-phase Tc/5-definierte Proben und zum Verschieben der demodulierten Verteilungscodes von Syn_chip verwendet.
  • Der Synchronisationsprozess verwendet zwei Schritte zum Demodulieren des Signals:
    • – Synchronisationerfassung: es gibt keine zuvor erfasste Synchronisationsposition. Der Synchroblock muss mehrmals durchgeführt werden, bis die berechnete Synchronisationsposition stabil ist.
    • – Synchronisationstracking und Demodulation: Die Synchronisationsposition wurde bereits erfasst und muss aktualisiert werden. Der Synchroblock wird zum Berechnen des neuen Synchronsiationspositionswerts verwendet, danach wird dieser Wert gefiltert und zum Verzögern des Eingangssignals verwendet.
  • Der Zweck des Synchroblocks der 62, der in 74 gezeigt wird, hat den Zweck, alle Korrelationspunkte für ein Korrelationsfenster mit der Dauer 1 Ts definiert mit der Rate 0/Tc (5,64 = 320 Punkte) zu berechnen und unter diesen Punkten den Höchstwert und seine Position zu finden. Alle Korrelationspunkte (320 Punkte) werden in 5·Ts berechnet (5 Tc-definierte Fenster werden nacheinander für jede Tc/5 Phase in 1 Ts geschätzt). Das Hintergrundrauschen wird ebenfalls durch Schätzen eines mittleren Korrelationspunktes, berechnet an allen 64 Tc-definierten Korrelationsfenstern und durch Auswahl des Minimalwerts über 5 aufeinander folgende Fenster berechnet. Liegt der Korrelationsgipfel weit über dem geschätzten Hintergrundrauschen (4 oder 5 Mal höher), wird angenommen, dass ein Synchronisationssignal gegenwärtig ist, anderenfalls wird nur Rauschen angenommen. Das Konzept dieses Synchroblocks ist detailliert in 75 gezeigt.
  • 76 zeigt den Berechnungsblock der Korrelationspunkte der 75. Alle Korrelationspunkte (320 Punkte) werden in 5·Ts berechnet: Der gesamte Schätzungsvorgang wird in 5 aufeinander folgende Schritte (mit einer Dauer von je 1 Ts) unterteilt. Nur eine Phase der 5 Tc/5-definierten Polyphasenkomponenten des ganzen Fensters wird während 1 Ts geschätzt. Ein Fenster mit der Länge Ts und definiert mit der Rate 1/Tc (64 Korrelationspunkte) wird daher in Ts geschätzt. Von einem Fenster (Tc-definiert) zu einem nächsten wird das Eingangssignal von Tc/5 verzögert, und die Berechnung wird wiederholt, was zu einer neuen Tc/5-Phase führt. Nach den 5 Durchgängen wird das ganze Fenster, definiert mit der Rate von 5/Tc berechnet, der Höchstwert kann festgestellt werden, und die Position dieses Werts wird an die Ausgangskontakte geliefert.
  • Die Schätzung Tc-definierter Fenster erfolgt dank von zwei Blöcken CplxCorr64_Tc, von welchen jeder 64 Korrelationspunkte jeweils für den Kanal I oder den Kanal Q berechnet. Da die Hälfte der Chips des Synchronisationscodes Null sind (die 32 letzten Chips), braucht man zum Berechnen eines Korrelationspunkts nur 32-Multiplikationen-Häufungen. Die 32 Korrelationspunkte werden daher in Ts/2 berechnet. Danach berechnet jeder Block das ganze Tc-definierte Fenster in Tc. Nach dem Berechnen werden alle Korrelationspunkte in einen Speicherblock gespeichert und dann an den Block Maximumsucher geliefert.
  • Der Block CplxCorr64_Tc der 76, der die Korrelationen durchführt, ist in 77 definiert.
  • Der Wert der Chips des Synchronisationscodes ist –2 oder 0 oder 2. Die Null-Chips sind die letzten 32 Chips. Der Zweck des Synchronisationsblocks besteht darin, das Maximum der Korrelationspunkte zu finden. Daher können durch zwei geteilte Chips verwendet werden. Dann lautet der Wert der Chips, die zum Berechnen der Korrelationspunkte verwendet werden, –1 oder 0 oder 1.
  • Dank dieser Blöcke wird das halbe Fenster, definiert mit der Rate 2/Tc, in Ts berechnet, und zwar entweder für den Kanal I oder den Kanal Q des Eingangssignals. Die resultierenden Korrelationspunkte werden in einen Speicherblock gespeichert. Mit 4 Blöcken wie diesem, wird ein ganzes Fenster (Länge: Ts) von Korrelationspunkten definiert mit der Rate 1/Tc berechnet (für den Kanal I und den Kanal Q).
  • Danach müssen der Korrelationspunkt mit der maximalen Amplitude und seine Position mit dem Block Maximumsucher gefunden werden (siehe unten).
  • Der Maximumsucher des Synchroblocks der 75 ist in 78 gezeigt. Das Maximum muss innerhalb der 320 geschätzten Korrelationspunkte gesucht werden. Da Monophasenfenster definiert mit der Rate Tc sequenziell geschätzt werden, braucht das Maximum nur aktualisiert zu werden, wenn sich ein neues Tc-definiertes Fenster im Speicher befindet. Nach 5·Ts wurde das ganze Fenster definiert mit der Rate 5/Tc berechnet, und der Maximalwert und seine Position können geliefert werden.
  • Ein Register C2 zählt die Tc/5-Phase des laufenden Fensters und wird inkrementiert, wenn sich ein neues Tc-definiertes Fenster im Speicher befindet: Dieses Register ist die Verzögerung des Eingangssignals zwischen 0 und 4 Tc/5 und wird mit jedem Ts (modulo 5) inkrementiert. Ein Register C1 zählt den Chipindex des gerade untersuchten Korrelationspunkts (modulo 64).
  • Die Ausgänge dieses Blocks sind:
    • – die Position der Synchronisation. In zwei Felder unterteilt: die Position innerhalb eines Chip, syn_phase_pos Ausgang (zwischen 0 und 4) und die Synchronisationsposition in Anzahl von Chips (zwischen 0 und 63), syn_chip_pos Ausgang.
    • – syn_flag Ausgang: Das Ergebnis des Vergleichs zwischen dem Maximalwert und dem Rauschniveau (Minimum von 5 Mittelwerten). Wenn es hoch, ist die Chip-Synchronisationsposition gültig.
    • – der Wert des Korrelationsgipfels. Dieser Wert wird zum Demodulieren des Signals verwendet.
  • Die Korrelationspunkte werden für ein Fenster (Länge: Ts) definiert mit der Rate 1/Tc (64 Punkte) berechnet. Der Höchstwert und seine Position werden danach zwischen zwei aufeinander folgenden Fenstern aktualisiert (die Position wird in die Register C1 und C2 gespeichert).
  • Zu beachten ist ferner, dass der Mittelwert der 64 Korrelationspunkte des laufenden Fensters berechnet wird. Dieser Wert wird verwendet, um eine Schätzung des Rauschniveaus finden. Das Minimum von 5 aufeinander folgenden Mittelwerten wird als grobe Schätzung des Rauschniveaus verwendet. Liegt die maximale Korrelationspunktamplitude 4 Mal über dem Kriterium, wird angenommen, dass ein Synchronisationssignal auf dem Kanal gegenwärtig ist, anderenfalls wird nur Rauschen angenommen. Das Hintergrundrauschen und die Inter Symbol Interference (ISI) können die Berechnung dieser Synchronisationsposition beeinträchtigen. Diese Position muss daher gefiltert werden, um die Wirkung des Rauschens zu minimieren.
  • Das Synchroglätten und Filtern der 73 sind funktional in 79 und detailliert in 80 gezeigt.
  • Zum Minimieren der Wirkung des Rauschens muss die Synchronisationsposition gefiltert werden. Die Eingangskontakte sind die zwei Felder für die Synchronisationsposition:
    • – syn_chip_pos: die Position der Synchronisation in der Anzahl der Chips (zwischen 0 und 63).
    • – syn_phase_pos: die Position der Synchronisation innerhalb eines Chips (zwischen 0 und 4).
  • Die Synchronisationsaktualisierung ist beschränkt auf –TC/5 oder 0 oder Tc/5. Diese Strategie schränkt die Effekte der Impulsinterferenz ein. Das Sychronisationsaktualisierungsfiltern besteht in einem Glättungsprozess mit dem Vergessensfaktor 0,5.
    syn_pos_update = 1/2·syn_pos(t) + 1/4·syn_pos(t – 1) + 1/8·syn_pos(t – 2)
    + 1/16·syn_pos(t – 3) + 1/32·syn_pos(t – 4)
  • Eigentlich werden die Synchronisationspositionen nicht direkt gefiltert. Zuerst wird der Unterschied zwischen der laufenden Synchronisationsschätzung und den Anzahlen syn_pos (berechnet durch den vorhergehenden Block) berechnet. Dieser Unterschied (auch Deltas) genannt, wird gefiltert.
  • Ist die Amplitude dieses Delta zu hoch (d. h. größer als 5), wird der Wert ignoriert. Typisch zeigt das die Gegenwart eines hohen Rauschniveaus an.
  • Danach werden alle Deltas addiert. Dieser Wert wird mit dem Wert 0,5 verglichen: ist er größer als 0,5, ist der Deltawert 1, ist er kleiner als –0,5, ist der Deltawert –1, anderenfalls ist der Deltawert 0.
  • Schließlich wird ein neuer Wert der Synchronisationsposition durch Addieren des gefundenen Deltawerts mit dem vorhergehenden Wert der Synchronisationsposition berechnet. Dieser Wert wird in 2 Felder geteilt: smooth_chip_pos und smooth_phase_pos.
  • Der Ausgang dieses Blocks ist die aktualisierte Synchronisationsposition und die Anzahl der ignorierten Werte (num_of_discarded_estimates). Ist die Anzahl der ignorierten Werte zu hoch (größer als 3), kann das den Verlust der Synchronisation oder eine schlechte Initialisierung anzeigen, weshalb das Signal neu synchronisiert werden muss.
  • Die Ausgangsfelder der Synchronisationsposition werden dann von zwei verschiedenen Blöcken verwendet:
    • • smooth_phase_pos ist die Position der Synchronisation innerhalb eines Chips. Sie wird von einer Verzögerungsleitung, die das Signal verzögert, verwendet. Die Verzögerung kann zwischen 0 und 4,5 Tc/5 mit Schritten zu je Tc/5 liegen.
    • • smooth_chip_pos ist die Position der Synchronisation in der Anzahl der Chips. Der Demodulationsblock verwendet diese Anzahl. Die CDMA-Benutzercodes (die zum Demodulieren des Signals verwendet werden), werden durch diese Anzahl verzögert.
  • Initialisierungsperiode:
  • Wenn syn_reset tief ist, wird eine Initialisierung des Moduls durchgeführt. Diese Initialisierung besteht aus:
    • • dem Rückstellen aller sync-Pufferspeicher (syn1, ..., syn5) und der Ausgangsregister auf Null.
    • • dem Ausbreiten des ersten eintreffenden Synchronisationswerts (wenn syn_input_enable auf hoch gesetzt ist). Dieser Ursprungswert muss in alle sync- Pufferspeicher und in die Ausgangsregister weiter geleitet werden. Daher werden alle Deltaregister auf Null initialisiert.
  • Aktivierungsperiode:
  • Wenn syn_enable hoch ist, kann das Modul das Synchrofiltern durchführen, ist es tief, ist das Modul gefroren.
  • Das Ziel der Verzögerungsleitungsblocks der 73, der in 81 gezeigt ist, besteht im Verzögern des Signals. Die Verzögerung kann zwischen 0 und 4,5 Tc/5 mit Schritten zu je Tc/5 liegen. Wie 82 zeigt, handelt es sich um eine Leitung zu 5 Registern.
  • Das Eingangssignal wird mit einer Rate von 5/Tc (25 MHz) definiert. Dieser Block wird auch zum Neuabtasten des Signals mit der Rate 1/Tc (5 MHz) verwendet.
  • Der Ausgang dieses Blocks hängt von dem Wert des Eingangs del_syn_phase ab. Dieser Wert zeigt an, wo das Ausgangssignal anzulegen ist:
    Zum Beispiel: wenn del_syn_phase = 1, wird der Ausgang an das Verzögerungs-Signal gelegt: Tc/5.
  • Danach wird der Wert während Tc gehalten. Das Ausgangssignal wird daher mit einer Rate von 1/Tc (5 MHz) abgetastet. Der Takt des Ausgangssignals wird von dem Eingang del_clock_output gegeben.
  • Der Demodulationsblock der 77 ist in 83 funktional gezeigt, 84 zeigt das Konzept. Sobald die Synchronisation erfasst wurde, kann das Signal demoduliert werden. Dazu werden zwei Arten von Information verwendet:
    • – Die Anzahl smooth_chip_pos, die die Position der Synchronisation in der Anzahl der Chips angibt (zwischen 0 und 63) und zum Verzögern der CDMA-Codes verwendet wird.
    • – der Wert syn_gain, der die Verstärkung des Kanals gibt (komplexe Zahl). Nur die Phase dieser Verstärkung wird benutzt.
  • Das Eingangssignal wird mit einer Rate von 1/Tc abgetastet. Das Signal wird mit den CDMA-Benutzercodes korreliert (für jeden aktiven CDMA-Code). Die CDMA-Codes werden BPSK-moduliert (–1/+1). Diese Codes werden als binäre Codes gespeichert (0/1). Der BPSK-Modulationsblock entspricht dem folgenden Mapping: 0 → 1 und 1 → 1.
  • Das Ergebnis dieser Korrelation (eine komplexe Zahl) wird mit dem Konjugat der Verstärkung des Kanals (komplexe Zahl) multipliziert:
    wenn corri das Ergebnis der Korrelation für den CDMA-Code i (komplexe Zahl) ist,
    ist gain die Verstärkung des Kanals (komplexe Zahl)
    dann ist das Ausgangssymbol:
    demod_out_symb = corri × gain*
    = Re(corri) × Re(gain) + Im(corri) × Im(gain)
    + j(Im(corri) × Re(gain) – Re(corri) × Im(gain))
  • Das Vorzeichen dieser Multiplikation ist das demodulierte Symbol: der reale Teil entspricht dem Kanal I und der imaginäre Teil entspricht dem Kanal Q.
  • Dieser Block kann maximal 20 aktive Codes gleichzeitig verarbeiten. Das wird als maximale Anzahl aktiver Codes für einen spezifischen Benutzer angenommen. Um für alle aktiven Codes die gleiche Struktur zu verwenden, wird die Verarbeitungsfrequenz angehoben (100 MHz) und alle Operationen erfolgen sequenziell. Das Eingangssignal wird mit der Rate 1/Tc (5 MHz) gelesen, danach wird die Probe während Tc gehalten, um alle Multiplikationen mit den 20 aktiven Codes durchzuführen. Die verwendeten CDMA-Codes sind alle aktiven CDMA-Codes, die durch die Menge demod_syn_pos verzögert sind. Danach wird das Ergebnis dieser Multiplikation in den Registern gesammelt (ein Register pro aktivem Code → 20 Register). Schließlich ist die Korrelation nach 64·Tc abgeschlossen und alle 20 Ergebnisse werden mit der Kanalverstärkung multipliziert (demod_syn_gain) und dann zu dem Ausgang geliefert (der Ausgang demod_out_enable wird hoch gesetzt, um die Gegenwart gültiger Ausgänge anzuzeigen).
  • 85 zeigt den Demultiplexerblock des Abwärtsverbindungsempfangs an. Der Demodulationsblock demoduliert 20 CDMA-Codes sowohl auf dem Kanal I als auch auf dem Kanal Q. Dieser Block aktiviert Daten der aktiven Codes und weist die Daten inaktiver Codes ab. Außerdem serialisiert der Block die Daten.
  • Das Konzept der Statusmaschine der Entsynchronisation des Abwärtsverbindungsempfangs ist in 86 gezeigt. Es decodiert die CDMA-Rahmen. Nach dem Empfangen und dem Demodulieren des Signals, müssen die CDMA-Rahmen erfasst und decodiert werden. Dazu wird die Statusmaschine verwendet. Es gibt drei verschiedene Zustände.
    • • Zustand 1: Erfassen des Flags „Rahmenanfang" (SOF).
    • • Zustand 2: Kopf decodieren
    • • Zustand 3: Nutzinformation decodieren
  • Zuerst – Zustand 1: Erfassen des Rahmenanfangs – der Rahmenanfang muss erfasst werden. Der Rahmenanfang entspricht dem Flag SOF (011010010110). Eine Korrelation zwischen den empfangenen Bits und der Sequenz erfolgt. Ist das Ergebnis hoch genug (über 10), bedeutet das, dass es dem Anfang des Rahmens entspricht und auf den Zustand „Zustand 2" gewechselt wird: Kopf decodieren".
  • Danach Zustand 2: Kopf decodieren – der Kopf muss decodiert werden. Dazu wird der Reed Solomon-Decoder verwendet. Die Anzahl der erfassten und korrigierten Fehler (Anzahl der Bits) wird gezählt. Ist die Anzahl hoch genug (größer als 3 Bits), bedeutet das, dass der Kopf NOK ist. Dann werden die Werte des Kopfs geprüft:
    • • Das Feld des Typs des Nutzinformationscodierers muss 0 oder 4 sein (4 Bits)
    • • Die Verwürflerinitialisierung wird nicht geprüft (4 Bits)
    • • Der Länge der Nutzinformation muss zwischen 512 und 12144 liegen (16 Bits)
    • • das unbenutzte Feld muss 0 sein (12 Bits)
  • Ist der Kopf OK, wird auf den Zustand „Zustand 3: Nutzinformation decodieren" übergegangen. Anderenfalls kehrt man zum Zustand „Zustand 1: Erfassen des „Rahmenanfangs" zurück.
  • Schließlich – Zustand 3: Decodieren der Nutzinformation – die Nutzinformation muss decodiert werden. Die Daten werden entschachtelt. Danach werden die Daten mit einem Viterbi-Decoder decodiert.
  • Der resultierende Algorithmus lautet:
  • Figure 00830001
  • Figure 00840001
  • Figure 00850001
  • Figure 00860001
  • Figure 00870001
  • Das Erfassen des Flags des Rahmenanfangs erfolgt durch den Block der 87.
  • Dieser Block führt eine Korrelation zwischen den empfangenen Bits und dem Flag SOF durch. Das Flag SOF ist 011010010110. Dazu werden die empfangenen Bits zuerst BPSK-codiert:
    0 → +1
    1 → –1
  • Danach wird das Ergebnis mit dem entsprechenden BPSK-codierten SOF Flag-Bit multipliziert und summiert. Da die BPSK-codierten SOF Flag-Bits –1 oder +1 sind, entspricht der Multiplikationsvorgang einer einfachen XOR-Operation und ein BPSK-Codieren ist nicht erforderlich. Die Summe der Ergebnisse der Multiplikatoren wird mit 10 verglichen:
    • • wenn größer als 10: wurde ein SOF erfasst (der Ausgang SOF erfasst wird auf hoch gesetzt)
    • • anderenfalls kein SOF erfasst (der Ausgang SOF erfasst wird auf tief gesetzt)
  • Das Decodieren des Kopfs erfolgt durch die Schaltung der 88. Nach dem Erfassen des Rahmenanfangs muss der Kopf decodiert werden. Der codierte Kopf hat eine Länge von 60 Bits. Der Reed Solomon-Decoders wird verwendet. Der Eingang dieses Blocks ist ein Bus mit 4 Bit Breite. Das Ergebnis dieses Decoders wird auf einen Bus mit 4 Bit Breite gegeben. Danach wird die Anzahl der erfassten und korrigierten Fehler (Anzahl der Bits) gezählt. Anschließend muss der resultierende Kopf (36 Bits) geprüft werden:
    • • Der Typ des Nutzinformationscodierers muss 0 oder 4 sein (4 Bits)
    • • Die Verwürflerinitialisierung wird nicht geprüft (4 Bits)
    • • Die Nutzinformationslänge muss zwischen 512 und 12144 liegen (4 Bits)
    • • das undefinierte Feld muss 0 sein (12 Bits)
  • Ist die Anzahl der Fehler niedrig genug (kleiner als 3 Bits) und der hervorgehende decodierte Kopf ist OK, wird der Kopf mit dem Ausgang Kopf OK auf hoch gesetzt geliefert. Anderenfalls wird der Ausgang Kopf NOK auf hoch gesetzt.
  • Das Verarbeiten des Kopfs dauert länger als der Kopf der Kopf ist 60 Bit lang und die Zeit zum Verarbeiten des Kopfs beträgt mindestens 66 Bits.
  • Zum Decodieren der Nutzinformation müssen zuerst die empfangenen Daten entschachtelt werden. Die Zeit zum Verarbeiten des Kopfs – Zustand 2: Kopf decodieren – ist länger als die Länge des Kopfes. Vor diesem Block befindet sich daher ein Pufferspeicher, um die Daten zu speichern und auf das Ergebnis des Blocks Kopfdecoder zu warten.
  • Zum Durchführen der Entschachtelung wird der gleiche Block wie beim Senden mit der Ausnahme verwendet, dass die Lese- und Schreibvorgänge umgekehrt sind: Dieser Block schreibt die Daten diagonal und liest sie Zeile für Zeile. Eine Extraausgänge und Extraeingänge werden hinzugefügt. Ein Ausgangskontakt – Daten verfügbar zeigt dem Viterbi-Decoder an, dass neue Daten verfügbar sind. Zwei Extraeingangskontakte – Typ des Codierers und Nutzinformationslänge informieren über den laufenden Rahmen und erlauben das Berechnen der codierten Nutzinformationslänge. Diese zwei letzten Eingänge sind eigentlich die Werte von zwei Feldern Kopf des laufenden Rahmens. Sie erlauben das Berechnen der Länge der codierten Nutzinformationsvariablen – LängeNutzinformationCodiert:
    wenn der Codierertyp 0 ist,
    LängeNutzinformationCodiert = 2 × Nutzinformationslänge + 4;
    anderenfalls
    LängeNutzinformationCodiert = ceil (4/3 × Nutzinformationslänge + 5);
    End;
  • Eine Ceil-Funktion findet die nächste Ganzzahl zu + unendlich. Beispiel: ceil(2, 3) = 3. Sobald die Bits LängeNutzinformationCodiert von dem Block Entschachtler zu dem Viterbi-Decoder gesendet wurden, stoppt der Block Entschachtler das Senden von Bits, setzt seinen internen Speicher zurück und setzt den Ausgangskontakt letzter Block gelesen auf hoch.
  • Danach werden die Daten decodiert. Der Viterbi-Decoder wird verwendet. Es gibt zwei verschiedene Decoder. Der Wert des Kopfs (das Feld Typ des Codierers) wählt den richtigen Decoder aus. Die resultierenden Werte werden in den FIFO-Speicher gespeichert. Während der Verarbeitung bleibt der Kontakt Decoder starten hoch.
  • Anhand der Werte der Felder des Kopfs kann die Länge der codierten Nutzinformation verarbeitet werden (Variable LängeNutzinformationCodiert). Nachdem der Block Nutzinformationsdecoder die Bits LängeNutzinformationCodiert erhalten hat, wurden von dem Block Decoder der Nutzinformation alle Daten empfangen. Der Kontakt letzter Block gelesen geht auf hoch über. Der Empfänger muss seinen Status ändern, um nach einem neuen Flag SOF zu suchen. Daher wird der Kontakt Decoder starten tief. Nach dem Verarbeiten der gesamten Nutzinformation – die Anzahl der Bits der Nutzinformation vor dem Codieren wird innerhalb des Kopfs angegeben, werden die Bits Beschränkungslänge auf „0" gesetzt und zu dem Viterbi-Decoder gesendet, wobei die Beschränkungslänge die Beschränkungslänge des Viterbi-Decoders ist.
  • Eine mögliche Implementierung des Entschachtlers ist in 89 gezeigt.
  • Die ankommenden Daten – data_in Kontakt – werden in dem Schreibspeicherblock gespeichert. Der Schreibzähler verwaltet die Adresse, an der die Daten gespeichert werden. Wenn der Kontakt Anfang eines Rahmens – erste Daten hoch ist, wird der Schreibzähler zurückgestellt und „1" wird in dem Speicher erster Block gespeichert. Der Typ des Codierers und die Nutzinformationslänge werden in ihren zugehörigen Speicherblöcken gespeichert. Sobald das letzte Bit geschrieben ist, wird der Eingang letztes Bit hoch.
  • Gleichzeitig werden Daten aus dem Lesespeicherblock gelesen und zu dem Ausgangskontakt data_out gegeben. Der Lesezähler verwaltet die Adresse, von welcher die Daten gelesen werden. Der Zähler Nutzinformationbitzähler zählt die Anzahl der Bits, die von dem Block Entschachtler zu dem Block Viterbi-Decoder gesendet wurden. Sobald diese Anzahl ihr Maximum erreicht, NutzinformationslängeCodiert, die von den Werten Typ des Codierers und Nutzinformationslänge abhängt, werden beide Zähler, Nutzinformationsbitzähler und Lesezähler zurückgestellt und es werden bis zum Anfang eines neuen Blocks keine Bits mehr zu dem Viterbi-Decoder gesendet. Ist der Speicherblock erster Block auf „1" gesetzt, zeigt das den Anfang eines neuen Rahmens an. Danach wird dieser Speicherblock auf „0" gesetzt, und die Zähler Lesezähler und Nutzinformationsbitzähler werden zurückgestellt, die codierte Nutzinformationslänge wird berechnet. Zwei Ausgangskontakte zeigen an, ob es sich um den Ausgangskontakt erstes Ausgangsbit, erstes gelesenes Bit, oder den Ausgangskontakt letztes gelesenes Bit, letztes gelesenes Bit handelt.
  • Sobald der Schreibzähler und der Lesezähler ihr Maximum erreichen, normalerweise gleichzeitig, nämlich 1024, wird der Schreibblockspeicher mit seinem zugehörigen ersten Block mit dem Leseblockspeicher mit seinen zugehörigen Speicherblöcken erster Block, Typ des Codierers und Nutzinformationslänge und die zwei Zähler Schreibzähler und Lesezähler zurückgestellt.
  • Danach werden die Daten decodiert. Der Viterbi-Decoder wird verwendet. Es gibt zwei verschiedene Decoder, die in 90 und 91 gezeigt sind. Der Wert des Kopfs (das Feld Typ des Codierers) wählt den richtigen Decoder aus. Die resultierenden Werte werden in den FIFO-Speicher gespeichert.
  • Nachdem der Block Nutzinformationsdecoder die Bits LängeNutzinformationCodiert erhalten hat, wurden von dem Block Decoder der Nutzinformation alle Daten empfangen. Der Empfänger muss seinen Status ändern, um nach einem neuen Flag SOF zu suchen. Nach dem Verarbeiten der ganzen Nutzinformation, die Anzahl der Bits der Nutzinformation vor dem Codieren wird in dem Kopf angegeben, werden alle internen Speicher zurückgestellt.
  • Um die Geschwindigkeit des Viterbi-Decoders zu steigern, steigert man die Bitrate zwischen dem Block Entschachtler und dem Viterbi-Decoder. Die Zeit zum Decodieren eines 1024-Bit-Blocks ist daher kleiner als 1024 Bits.
  • Die Daten werden in einem in 92 gezeigten Block gepuffert. Das Verarbeiten des Kopfs dauert länger als die Länge des Kopfes. Dieser Pufferspeicher erlaubt es daher, die Nutzinformationsdaten nicht zu verlieren, während das Ergebnis des Blocks Kopf decodieren abgewartet wird.
  • Wird ferner ein falsches SOF erfasst, erlaubt es dieser Speicher, nach einem neuen SOF zu suchen, das nach dem falschen SOF richtig sein könnte. Nach dem Empfangen des Ergebnisses von der Block Kopfdecoder, dass der Kopf NOK ist, muss der Datenpufferspeicher die vorhergehenden Daten noch einmal lesen und zu dem Block SOF erfassen senden.
  • Der Speicher ist ein 18 kbit langer FIFO-Speicher. Der Speicher ist ein Doppelschnittstellenspeicher. Die Adressen zum Schreiben und Lesen werden von zwei Zählern verwaltet.
  • Die Zähler Schreibzähler und Lesezähler sind 0 bis 16838-Zähler. Diese Zähler werden nach jedem Lese- oder Schreibvorgang um 1 inkrementiert. Wenn ein SOF gefunden wird, wird Zähler gelesen dekrementiert, um die Latenz zu berücksichtigen. Wird ein Kopf gefunden, der nicht OK ist, wird Zähler gelesen um 60 dekrementiert, um nach einem neuen SOF zu suchen.
  • SLAVE LK12011 AUFWÄRTSVERBINDUNGSÜBERTRAGUNG
  • Unten folgt die Beschreibung des Aufwärtsverbindungssendens, das in dem LK12011 entwickelt wurde. Das Konzept der Synchronisation, des Verbreitens, Filterns, Upsampling des Aufwärtsverbindungssendens ist in 93 und 94 gezeigt. Der LK12011 kommuniziert mit dem Gateway (LK12001), indem einige Rahmen gesendet werden. Diese Rahmen, die auf dem PLT-Medium übertragen werden, sind CDMA-Rahmen.
  • Der CDMA-Rahmen umfasst drei verschiedene Felder: Ein Flag des Rahmenanfangs (SOF), einen Kopf und eine Nutzinformation. Die zwei letzteren Elemente werden von dem MII-Controller oder dem System-Controller erzielt. Diese drei Rahmen werden in Serie in dieser Reihenfolge konkateniert (zuerst das SOF, danach der Kopf und schließlich die Nutzinformation) und werden codiert, um sie beim Senden vor Fehlerhäufungen zu schützen.
  • 95 zeigt den CDMA-Rahmen Aufwärtsverbindungssenden.
  • Das Flag des Rahmenanfangs (SOF) wird am Empfangsende verwendet, um den Anfang des Rahmens zu erfassen und das Gateway (LK12001) zu synchronisieren. Es ist ein spezifisches Muster, das nur auf dem Kanal I moduliert wird. Die Modulation des Flags SOF ist daher eine BPSK-Modulation (wohingegen der Kopf und die Nutzinformation QPSK-moduliert sind). Das Flag SOF wird nicht in dem Synchronisationsblock erzeugt. Es wird an den CDMA-Rahmen innerhalb des Blocks QPSK Mapping angehängt.
  • Der Kopf umfasst einige Schlüsselsysteminformationen (Datenrahmenlänge, Typ des Nutzinformationsdecodierens, Initialisieren des Nutzinformationsverwürflers). Der Kopf ist mit einem Reed-Solomon-Fehlerkorrekturcode geschützt und wird direkt ohne Verschachteln auf den Kanal gesendet.
  • Die Nutzinformation umschließt einen ganzen Ethernetrahmen, der gefaltet codiert und verschachtelt ist (siehe 94).
  • Zuerst werden der Kopf und die Nutzinformation von einem Multiplexer innerhalb des Blocks HDMUX konkateniert (siehe 93, Block HDMUX). Danach wird innerhalb des Blocks QPSK Mapping das Flag SOF angehängt (siehe BlockRENVFUSIONFORMAT QPSK Mapping).
  • Das Erzeugen des CDMA-Rahmens ist gleich wie für das Abwärtsverbindungssenden, mit der Ausnahme, dass das SOF Flag nicht erzeugt und mit dem Kopf und der Nutzinformation des CDMA-Rahmens konkateniert wird. Das erfolgt später während des QPSK Mapping.
  • Der Block für das Multiplexen und Codieren des CDMA-Kopfs ist in 95 gezeigt. Der Kopf besteht aus 36 Bits. Der Kopf enthält die folgenden Felder:
    • 1. den Typ des Vorwärtsfehler-Korrekturcodes, der zum Schützen der Daten (4 Bits) verwendet wird
    • 2. Initialisierung des Verwürflers der Nutzinformation (4 Bits)
    • 3. die Länge des Rahmens (16 Bits)
    • 4. ein nicht benutztes Feld aus 12 Bits (für zukünftigen Gebrauch)
  • Der Kopf wird parallel auf einem Bus mit 36 Bits empfangen und muss sequenziell mit 4-Bit-Symbolen ausgegeben werden. Das ist die Aufgabe des CDMA-Kopfmultiplexers (CDMA_HMux). Gemultiplext muss der Kopf danach von einem Reed-Solomon-Codierer codiert werden. Wie in 96 gezeigt, funktioniert der Reed Solomon-Codierer mit 4-Bit-Datenwörtern (Details: siehe nächster Absatz). Die Gesamtstruktur ist in 9799 gegeben. MA_HMux)
  • Das Ziel des CDMA-Kopfmultiplexers besteht im sequenziellen Ausgeben des Kopfes, der auf einem 36-Bit-Bus empfangen wird.
  • Das funktionale Verhalten dieses Multiplexers ist das Folgende:
    wenn (CDMA_HMux_reset tief ist)
    sind die internen Register auf 0 gesetzt
    CDMA_HMux_data_available = 0
    wait_for_new_header = 1 // interner Zustand
    deliver_data = 0 // interner Zustand
    anderenfalls
    wenn (CDMA_HMux_enable hoch ist)
    wenn (CDMA_HMux_new_header hoch ist) & (wait_for_new_header = 1)
    neuen Kopf auf Eingang
    wait_for_new_header = 0
    deliver_data = 1
    Zählung = 0
    beenden, // wenn new header
    wenn (deliver_data = 1)
    Daten auf Ausgang geben
    CDMA_HMux_data_available = 1
    Zählung = Zählung + 1
    wenn (Zählung = 36)
    wait_for_new_header = 1
    deliver_data = 0
    Beenden, // wenn Zählung
    anderenfalls // deliver data = 0
    CDMA_HMux_data_available = 0
    beenden, // wenn deliver_datat
    anderenfalls, wenn (CDMA_HMux_enable tief ist)
    CDMA_HMux_data_available = 0
    Beenden, // anderenfalls wenn aktivieren
    Beenden, // anderenfalls rückstellen
  • Der Kopf ist vor Fehlerhäufungen durch den Einsatz eines (systematischen) Reed-Solomon-Codierers (15, 9, 3) wie in 100 gezeigt geschützt, der die folgenden Parameter hat.
    • • m = 4 (Größe des Galoisfelds GF(16))
    • • n = 2m – 1 = 15
    • • t = 3 (Symbol-Fehlerkorrekturfähigkeit)
    • • k = n – 2t (Anzahl der Informationssymbole)
    • • dmin = n – k + 1 (Mindestabstand)
  • Der Reed Solomon-Codierer muss 9 aufeinander folgende Informationssymbole zu m Bits (m = 4) auf seinem Eingang RS_in erhalten. Der Codierer gibt (auf RS_out) die 9 Eingangswörter (36 Bits) so wie sie sind aus und erzeugt 6 zusätzliche Symbole zu m Bits Länge, das heißt insgesamt 60 codierte Bits (als 4-Bit-Wörter strukturiert).
  • Die Darstellung des Codierers (siehe 15) beruht auf dem Erweiterungsgaloisfeld GF(16), das mit dem primitiven Polynom p(x) = x4 + x + 1 angelegt wird. Das Primärelement des GF(16), α genannt, ist eine Wurzel von p(x), d.h. p(α) = α4 + α + 1 = 0: Das Element α erzeugt das Galoisfeld GF(16) durch den Satz seiner Potenzen:
    GF(16) = {0, 1, α, α2, ..., α14}
    wobei 14 = 2m – 2. Zur Erinnerung: das Primärelement erfüllt α15 = 1.
  • Aus der Eigenschaft p(α) = 0 kann jedes Element des GF(16) als ein Polynom von α mit einem Grad kleiner oder gleich 3 (m – 1) dargestellt werden, indem man den Rest eines Elements nimmt, das als eine Potenz von α, modulo p(α) betrachtet wird. Ebenso kann man die binären Koeffizienten dieser polynomen Darstellung nehmen, um die Elemente von GF(16) darzustellen. Da α4 + α + 1 = 0 ist, kann man zum Beispiel schreiben, dass α4 = α + 1 = 0·α3 + 0·α2 + 1·α + 1·α0 oder [0011] ist. Jedes Element a ∊ GF(16) schreibt daher: a = a0 + a1·α + a2·α2 + a3·α3 = [a3 a2 a1 a0]mit ai, binären Koeffizienten. Man erhält daher die folgende binäre Darstellungstabelle:
  • Figure 00960001
  • Diese Darstellung ist für die Materialdarstellung nützlich. Die binäre Darstellung der Elemente von GF(16) ist insbesondere beim Summieren von Elementen praktisch: Es brauchen nur modulo-2-Additionen der binären Vektordarstellungskoeffizienten durchgeführt zu werden (ohne Berücksichtigen eines Übertrags).
  • In der Sequenz wird entweder die binäre Darstellung der Elemente von GF(16) oder ihre Darstellung als Potenzen von α ohne Unterschied verwendet.
  • Der systematische RS (15, 9, 3)-Codierer ist durch das folgende Polynom definiert: g(X) = α6 + α9·x + α6·x2 + α4·x3 + α14·x4 + α10·x5 + x6
  • Ein Codewort c(x), gesehen als Polynom des Grads n – 1 mit Koeffizienten in GF(16), verbunden mit dem Informationswort m(x) (mit dem Grad k – 1) kann wie folgt ausgedrückt werden: c(x) = xn-k·m(x) + (xn-k·m(x) mod g(x))
  • Das Codewort hat daher n – k mehr Symbole als die Informationsmeldung m(x). Dieser Codierer kann gemäß dem folgenden, in 101 gezeigten Schema mit 6 Schieberegistern angewandt werden.
  • In Position 1 (Position 1 ist aktiviert, wenn das Reset aktiviert ist) laufen die Informationssymbole von RS_input [3 .. 0] durch die linearen Feedback-Schiebergister (LFSR), das Ergebnis von LFSR ist jedoch unwichtig: Die Informationsmeldung versorgt den Ausgang.
  • Wenn die gesamte Informationsmeldung in den Codierer gegeben wurde, wird die Position 2 aktiviert: Der Rest der Division von xn-k·m(x) durch g(x) ist in dem LFSR enthalten und muss geleert werden, um den Ausgang zu versorgen und das Codewort zu vervollständigen. Gleichzeitig wird während der Position das LFSR mit Null Symbolen zurückgeführt.
  • Der empfangene Ethernetrahmen zur Nutzinformationsverarbeitung wird zuerst faltungscodiert, danach mit einem diagonalen Verschachtler gemäß 102 verschachtelt.
  • Es werden unterschiedliche Faltungscodierer verwendet. Ein erster Codierer hat die folgenden Parameter: k = 1, n = 2, ν = 2 und seine Generatormatrix ist:
  • Figure 00980001
  • Er ist in 103 gezeigt, sein Konzept ist in 104 gezeigt.
  • Die Daten (1 Bit) kommen bitweise an. Die jüngsten Daten werden in das erste Schieberegister gespeichert. Danach werden sie von dem Schieberegister in das nächste Schieberegister (nach rechts) verschoben. Die Ausgangdatenbits (2 Bits) werden mit dem Inhalt der Schieberegister berechnet.
  • Wenn der reset-Eingang auf hoch gesetzt ist, wird der Inhalt der Register zurückgestellt.
  • Ein zweiter Codierer hat die folgenden Parameter: k = 3, n = 4, ν = 2 und seine Generatormatrix ist:
  • Figure 00980002
  • Er ist in 105 gezeigt, sein Konzept ist in 106 gezeigt.
  • Die Daten werden pro Block zu drei Bits in die ersten drei Schieberegister gespeichert. Die jüngsten Daten werden in das Schieberegister am weitesten rechts gespeichert. Die Ausgangdaten werden mit dem Inhalt der sechs Schieberegister berechnet. Danach werden die drei Register am weitesten links zu den drei Registern am weitesten rechts verschoben.
  • Wenn der reset-Eingang auf hoch gesetzt ist, wird der Inhalt der Register zurückgestellt.
  • Der Block der 102 umfasst den Verschachtler der 107. mit einer Verschachtelungstiefe von 1024 Bits.
  • Der Zweck dieses Blocks besteht im Verschachteln eines Datenblocks mit der Größe 1024. Er benutzt einen Speicher (der gleichen Größe), in den die Daten linear (sequenziell) geschrieben und in einer anderen spezifischen Reihenfolge gelesen werden.
  • Die Daten werden zuerst auf dem Eingang gelesen und dann in den ganzen internen Speicher gespeichert. Auch wenn etwas Platz in dem internen Speicher besteht (der Ausgang inlea_space_available ist hoch) und einige Daten auf dem Eingang verfügbar sind (der Eingang inlea_data_available ist hoch), können einige Daten von dem Kontakt inlea_datain gelesen und sequenziell in den internen Speicher gespeichert werden.
  • Der Eingangslesevorgang ist in 23 beschrieben, in der die Matrix den internen Speicher darstellt.
  • Figure 01000001
  • Wenn der Speicher voll ist, wird der Ausgang inlea_space_available auf tief gesetzt, und das Ausgangssignal inlea_data_available wird auf hoch gesetzt. Die Daten müssen verschachtelt und auf dem Ausgangssignal inlea_dataout ausgegeben werden.
  • Die Daten werden diagonal aus dem internen Speicher gelesen und sequenziell wie folgt zu dem Ausgang gesetzt:
    Die diagonale Zahl d wird mit dem folgenden Vorgang gelesen:
  • Figure 01000002
  • Der erste Index bezeichnet die Zeilennummer (in der Matrixform des Speichers), der zweite bezeichnet die Spaltennummer.
  • Zum Lesen der oberen diagonalen Nummer d:
  • Figure 01000003
  • Figure 01010001
  • Gemäß 109 lautet der zum Lesen des gesamten Speichers und Geben der Daten auf den Ausgangskontakt_inlea_dataout verwendete Algorithmus wie folgt:
    read_upper_diagonal(0); // Hauptdiagonale lesen
    für d = 1 .. 31, // die anderen Diagonalen lesen
    read_lower_diagonal(d);
    read_upper_diagonal(d);
    end for
  • Nach dem Lesen – gleichzeitig erfolgt das Schreiben – werden die zwei Speicherblöcke, nämlich der, der die gelesenen Daten. speichert und der, der die geschriebenen Daten speichert, ausgetauscht. Es erfolgt kein Reset.
  • Figure 01010002
  • Ein Kopfdatenmultiplexer (HDMUX), der in 110 gezeigt ist, ist dazu bestimmt, den Rahmenkopf und die Nutzinformationsdaten seriell zu konkatenieren (das Flag SOF wird später hinzugefügt).
  • Wenn ein Rahmenkopf verfügbar ist – hdmux_header_available ist hoch gesetzt – liest der Multiplexer den 60-Bit-Kopf in Blöcken zu 4 Bits. Diese Daten werden auf den Ausgang – dhmux_dataout – gegeben und der Kontakt dhmux_putdata wird hoch gesetzt.
  • Schließlich wird das Datenfeld gelesen. Während der Eingang hdmux_data_available hoch gesetzt ist, liest der Multiplexer Daten aus dem Eingang hdmux_data. Die hdmux_nbr_data-Bits stellen die Länge des CDMA-Rahmens (Kopf + Daten) dar.
  • Das Ziel der in 111 gezeigten Blöcke besteht darin, zuerst das Signal mit einer QPSK-Modulation zu modulieren, das Flag SOF BPSK-moduliert hinzuzufügen. Dann werden die erzeugten Symbole gefiltert und geupsampelt. Schließlich wird das Signal von dem Basisband zur IF-Frequenz umgesetzt, die Mittenfrequenz – 0 beträgt 20 MHz.
  • Das Ziel des QPSK-Mapping-Blocks der 112 besteht darin; die Eingangsdaten (2 Bits) mit der QPSK-Modulation zu modulieren. Das erste Bit des Eingangskontakts geht zum Kontakt Ausgang I, das zweite Bit geht zum Kontakt Ausgang Q. Außerdem wird das Flag SOF am Anfang eines Rahmens – angezeigt durch den Kontakt neuer Rahmen (nur auf dem Kanal I moduliert) BPSK-moduliert hinzugefügt.
  • Vor der BPSK-Modulation lautet das Flag SOF:
    1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0
  • Dazu wird die Implementierung der 113 verwendet.
  • Wenn dieser Block aktiviert wird, erzeugt er das auf dem Kanal I BPSK-modulierte Flag SOF. Der Kanal Q bleibt auf 0. Die BPSK-Modulation besteht aus dem folgenden Mapping:
    0 → +1
    1 → –1
  • Das Flag SOF hat das folgende Muster:
    1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0
  • Wenn dieser Block aktiviert wird, sendet er die Bits auf den Eingangskontakt, 2 Bits. Die Bits werden zuerst BPSK-moduliert und dann wird das erste BPSK-Symbol auf den Kanal I und das zweite Symbol auf den Kanal Q gegeben.
  • Der Sequenzierer implementiert die Statusmaschine der 114.
  • Während des Zustands get new inputs, wird der Ausgangskontakt get data während einer Periode von 1 Bit gesetzt.
  • Das Tx-Filter der 115, das detailliert in 116 gezeigt ist, führt das Filtern der digitalen Eingangsdaten mit einem Quadratwurzel FIR Raised Cosine Filter mit einem Dämpfungsfaktor von 0,22 durch. Die Koeffizienten des Filters werden in einen internen Speicher (Halbfilter wird aufgrund seiner Symmetrie gespeichert) in einem 10-Bit-Festkommaformat gespeichert. Die Eingangsdatenrate beträgt 2,5 MHz, die Ausgangsdatenrate beträt 12,5 MHz. Daher werden für eine gegebene Eingangsprobe 5 Ausgangsproben in der darauf folgenden Zeit erzeugt. Die Eingangsdaten werden zuerst mit einem Faktor 5 einem Oversampling unterzogen (Einfügen von 4 „0" zwischen zwei Daten) und dann mit einer Rate von 25 MHz in die Schieberegister gegeben.
  • Ein Reset-Signal wird zum Initialisieren der internen Schieberegister auf den Nullwert verwendet.
  • Eine bestimmte Anzahl von Schieberegister haben den Wert Null in einem bestimmten Zeitpunkt, nur die Schieberegister mit Wert nicht gleich Null werden jedes Mal verarbeitet, um den Filterausgang zu berechnen. Mit anderen Worten werden während einer Chipperiode alle 5 Phasen Komponenten des Filters sequenziell und unabhängig mit dem gleichen Zustand des Schieberegisters verarbeitet.
  • Die Anzahl des Koeffizienten des Filters lautet: N_coef = 13.
  • Die Koeffizienten des Filters sind in einem Format über 10 Bit mit Vorzeichen formatiert. Es gibt 13 Filterkoeffizienten.
  • Figure 01040001
  • Gleich nach dem SRRC-Filterblock werden die Daten mit einem Faktor 2 durch den Block der 117 interpoliert, um die Abtastrate zu steigern. Der Interpolator berechnet die Durchschnittsprobe von zwei aufeinander folgenden Eingangsproben und fügt diese Probe zwischen die zwei Proben zu dem Ausgang ein. Die Ausgangsrate beträgt zweimal die Eingangsrate.
  • Auf jedem Kanal (I oder Q) gibt es 3 aufeinander folgende Interpolatoren. Die Abtastrate gleich nach dem SRRC-Filter beträgt 12,5 MHz. Das Ausgangsabtastrate nach den 3 aufeinander folgenden Interpolationen beträgt daher 8 × 12,5 MHz = 100 MHz.
  • Der Block NCO Tx (nco_tx) der 118 liefert einen Träger Phase und in Quadratur für den Tx-Pfad. Was die PLCN-Seite betrifft, ist Tx Aufwärtsverbindung. Die Trägerfrequenz ist auf 20 MHz festgelegt. Die Eingangs- und Ausgangsabtastrate ist 100 MHz.
  • Die unten stehende Tabelle enthält die tabellierten Werte der Sinus- und Kosinusfunktionen. Diese Werte werden in einen internen Speicher gespeichert. Die Trägerfrequenz wird auf 20 MHz festgelegt und Werte werden mit einer Rate von 100 MHz erzeugt und im 10-Bit-Format mit Vorzeichen quantifiziert.
  • Zum Berechnen dieser Werte:
    Cos table(k) = cos(2πνc(k/FS)) = cos(2πk/5)
    Sin table(k) = sin(2πνc(k/FS)) = sin(2πk/5)
    wobei: vc die Trägerfrequenz (20 MHz)
    FS die Abtastfrequenz (100 MHz) ist.
  • Nur eine Periode wird in den internen Speicher gespeichert. Zum Berechnen dieser Periode:
    Cos(k) = Cos table(k) wenn k ∊ [[0; 4]]
    wobei: Cos table(k) die tabellierten Werte des Kosinus, die in den internen Speicher gespeichert sind, sind,
    Sin(k) = Sin table(k) wenn k ∊ [[0; 4]]
    wobei: Sin table(k) die tabellierten Werte des Sinus, die in den internen Speicher gespeichert sind, sind.
  • Da Kosinus und Sinus periodische Funktionen mit einer Periode von 2π sind, sind nur dieses Werte von Nutzen:
    Sin(k + 5) = Sin(k) und Cos(k + 5) = Cos(k)
  • Das Ergebnis lautet daher: out(k) = I(k)·Sin(k) + Q(k)·Cos(k)
  • Figure 01050001
  • Figure 01060001

Claims (12)

  1. Vorrichtung zur Verteilung von digitalen Daten umfassend: – ein Netzwerk aus elektrischen Stromleitungen und – induktive Koppler, die auf verschiedene Orte des Netzwerks verteilt sind, um Datenverarbeitungseinheiten an das Netzwerk zur Übertragung anzukoppeln, und – unter den Kopplern einen Hauptkoppler und einen Satz von Nebenkopplern, wobei – der Hauptkoppler einen Codiersender vom Typ CDMA umfasst mit einem Verteilungsfaktor zur Übermittlung von CDMA codierten Daten über das Netzwerk nach dem Codieren, und – jeder Nebenkoppler einen Empfänger umfasst zum Empfangen dieser CDMA codierten Daten vom Hauptkoppler und zum Decodieren davon, und einen QAM Modulationssender ohne Verteilungsfaktor zur Übermittlung codierter Daten über das Netzwerk zum Hauptkoppler.
  2. Digitale Vorrichtung gemäß Anspruch 1 wobei – der Hauptkoppler innerhalb des Codiersenders Mittel umfasst, durch Multiplikation von binären Symbolen mit binären Verteilungssequenzen Chips auszusenden, wobei zumindest eine von diesen binären Verteilungssequenzen bestimmt ist zur Übermittlung eines gleichmäßigen Dauersignals, das als Synchronisationssignal für die Vorrichtung dient.
  3. Digitale Vorrichtung gemäß Anspruch 2, wobei – zwei binäre Codiersequenzen der Übertragung eines regelmäßigen Dauersignals zugewiesen sind, das als Synchronisationssignal für die Vorrichtung dient.
  4. Digitale Vorrichtung gemäß Anspruch 2 oder 3, die Mittel zum Erstellen des regelmäßigen Dauersignals durch Sequenzen von binären Zuständen umfasst, die alle direkt verschlüsselt sind durch besagte CDMA Codierung.
  5. Digitale Vorrichtung gemäß einem der Ansprüche 1 bis 6, wobei – der Hauptkoppler innerhalb des Codiersenders Mittel umfasst, durch Multiplikation von binären Symbolen mit binären Verteilungssequenzen Chips auszusenden, wobei zumindest eine von diesen binären Verteilungssequenzen bestimmt ist zur Übermittlung eines Steuersignals, das zur Parametrisierung der Nebenkoppler dient.
  6. Digitale Vorrichtung gemäß einem der Ansprüche 1 bis 5, wobei – der Hauptkoppler innerhalb des Codiersenders Mittel umfasst, durch Multiplikation von binären Symbolen mit binären Codiersequenzen Chips auszusenden, und zur Zuordnung einer variablen Anzahl von binären Verteilungssequenzen zu einer Übertragung zwischen dem Hauptkoppler und einem Nebenkoppler, wobei die variable Anzahl eine Funktion des benötigten Durchsatzes durch den Nebenkoppler ist.
  7. Digitale Vorrichtung gemäß einem der Ansprüche 1 bis 6, wobei – ein Nebenkoppler einen Sender umfasst, der n-QAM modulierte Signale aussendet, vorzugsweise 64 QAM, und wobei der n Modulationsfaktor eine Funktion der Leistung des Kanals und der gewünschten Übermittlungsrate ist.
  8. Digitale Vorrichtung gemäß einem der Ansprüche 1 bis 7, wobei der Verteilungsfaktor 64 beträgt.
  9. Digitale Vorrichtung gemäß einem der Ansprüche 1 bis 8, wobei besagte Nebenkoppler Mittel zur Sendung einer Sequenz zur Uplink Übertragung umfassen, die wie folgt lautet: 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0
  10. Digitale Vorrichtung gemäß einem der Ansprüche 1 bis 9, wobei die QAM Modulation eine BPSK Modulation ist.
  11. Digitale Vorrichtung gemäß einem der Ansprüche 1 bis 10, wobei die CDMA kodierten Daten außerdem QPSK moduliert sind.
  12. Digitales Signal gemäß einem der Ansprüche 1 bis 11, wobei die CDMA kodierten Daten in einer schmalen Bandbreite zwischen 15 und 18 MHz übertragen werden, die beabstandet ist von einer hohen Bandbreite zwischen 18 und 22 MHz, in der die QAM Übertragung übertragen wird.
DE60206402T 2002-12-19 2002-12-19 Vorrichtung und Verfahren zur Verteilung von digitalen Daten Expired - Lifetime DE60206402T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP02102836A EP1432138B1 (de) 2002-12-19 2002-12-19 Vorrichtung und Verfahren zur Verteilung von digitalen Daten

Publications (2)

Publication Number Publication Date
DE60206402D1 DE60206402D1 (de) 2005-11-03
DE60206402T2 true DE60206402T2 (de) 2006-07-06

Family

ID=32338158

Family Applications (2)

Application Number Title Priority Date Filing Date
DE60206402T Expired - Lifetime DE60206402T2 (de) 2002-12-19 2002-12-19 Vorrichtung und Verfahren zur Verteilung von digitalen Daten
DE60333722T Expired - Lifetime DE60333722D1 (de) 2002-12-19 2003-12-16 Digitaldatenverteilsystem

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE60333722T Expired - Lifetime DE60333722D1 (de) 2002-12-19 2003-12-16 Digitaldatenverteilsystem

Country Status (3)

Country Link
EP (1) EP1432138B1 (de)
AT (2) ATE305672T1 (de)
DE (2) DE60206402T2 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7970374B2 (en) * 2005-10-03 2011-06-28 Broadcom Corporation Multi-wideband communications over power lines
EP1770870B1 (de) 2005-10-03 2019-04-03 Avago Technologies International Sales Pte. Limited Verfahren und Vorrichtung zur Stromleitungskommunikation
US8406239B2 (en) 2005-10-03 2013-03-26 Broadcom Corporation Multi-wideband communications over multiple mediums
US7808985B2 (en) 2006-11-21 2010-10-05 Gigle Networks Sl Network repeater
US8213895B2 (en) 2005-10-03 2012-07-03 Broadcom Europe Limited Multi-wideband communications over multiple mediums within a network
US7860146B2 (en) 2006-07-06 2010-12-28 Gigle Networks, Inc. Adaptative multi-carrier code division multiple access
US9705562B2 (en) 2006-07-25 2017-07-11 Broadcom Europe Limited Dual transformer communication interface
US8213582B2 (en) 2008-03-14 2012-07-03 Broadcom Europe Limited Coupling signal processing circuitry with a wireline communications medium
US8885814B2 (en) 2006-07-25 2014-11-11 Broadcom Europe Limited Feedback impedance control for driving a signal
US7602220B1 (en) 2008-06-24 2009-10-13 Gigle Semiconductor, Ltd. Resistor-input transconductor including common-mode compensation
US7956689B2 (en) 2008-10-13 2011-06-07 Broadcom Corporation Programmable gain amplifier and transconductance compensation system
US7795973B2 (en) 2008-10-13 2010-09-14 Gigle Networks Ltd. Programmable gain amplifier
US9444655B2 (en) * 2014-03-25 2016-09-13 Intel IP Corporation Apparatus, method and system of scrambling a wireless transmission

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9407934D0 (en) * 1994-04-21 1994-06-15 Norweb Plc Transmission network and filter therefor
IL137139A (en) * 1999-07-12 2006-04-10 Polytrax Inf Technology Ag Method and apparatus for communication over power line

Also Published As

Publication number Publication date
EP1432138A1 (de) 2004-06-23
EP1432138B1 (de) 2005-09-28
ATE305672T1 (de) 2005-10-15
DE60206402D1 (de) 2005-11-03
ATE477621T1 (de) 2010-08-15
DE60333722D1 (de) 2010-09-23

Similar Documents

Publication Publication Date Title
DE69924557T2 (de) Vorrichtung und Verfahren zur Synchronisierung eines Aufwärtskanals der Art SCDMA oder einer anderen Art mit einem Abwärtskanal der Art MCNS oder einer anderen Art mit einem unterschiedlichen Takt als der des Aufwärtskanals
DE60206402T2 (de) Vorrichtung und Verfahren zur Verteilung von digitalen Daten
DE60124521T2 (de) Rahmenbasierte übertragung von nutzdaten mit veränderlicher datenrate
DE69620781T9 (de) Verfahren und vorrichtung zur digitalen datenübertragung
DE69916047T2 (de) Endgerät und Verfahren zum Übertragen von Datenpaketen über Funkrahmen
DE69625936T2 (de) Nachrichtennetzzugriffsvorrichtung und verfahren zur übertragung von nachrichtenpaketen über telefonleitungen
US7376191B2 (en) High bandwidth data transport system
US7961705B2 (en) High bandwidth data transport system
DE69914321T2 (de) Verfahren und Vorrichtung zum Übertragen von Datenpaketen in einem drahtlosen Netzwerk eines Stadtgebiets
US7944978B2 (en) High bandwidth data transport system
DE69635468T2 (de) Netzwerksystem und Verfahren zur Hochgeschwindigkeitsdatenübertragung
DE69633894T2 (de) Modem zur Kommunikation von Hochgeschwindigkeitsdaten
DE69911998T2 (de) Handgerät zeitsynchronisierung zu einer basisstation eines mobiltelefons
DE102014215465A1 (de) Teilnehmerstation für ein Bussystem und Verfahren zur breitbandigen CAN-Kommunikation
AU2003231277B2 (en) High bandwidth data transport system
DE60036561T2 (de) Verfahren und vorrichtung zur detektion und klassifikation von kollisionen in einem rf-netz mit gemeinsamen zugriff
EP1243084B1 (de) Umsetzung eines bidirektionalen so-datenstroms fur eine ubermittlung uber ein niederspannungsstromnetz
EP1317830A1 (de) Verfahren zur erzeugung von mobilkommunikationssignalen verschiedener mobilfunkstandards
DE60029307T2 (de) Kabelmodemsystem mit abtast- und paketsynchronisation
EP0924911B1 (de) Mehrträgerverfahren zur Übertragung über Energieverteilnetze
WO2009018980A2 (de) Funkgerät mit mehrträgerübertragung
DE19846151C2 (de) Verfahren zum Durchführen des Verfahrens zur Datenübertragung über Niederspannungsnetze
EP1432139B1 (de) Digitaldatenverteilsystem
WO2009074603A1 (de) Verfahren zur ermittlung der taktrate eines von einem teilnehmer eines kommunikationssystems empfangenen datensignals, aktiver sternkoppler zur ausführung des verfahrens und kommunikationssystem mit einem solchen aktiven sternkoppler
EP1332591B1 (de) Verfahren und einrichtungen zur kompensation von störungen durch mehrwegeempfang

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: LABORATOIRE EUROPEEN ADSL, COURBEVOIE, FR

8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: HAMMONDS LLP, LONDON, GB

R082 Change of representative

Ref document number: 1432138

Country of ref document: EP

Representative=s name: J D REYNOLDS & CO., GB