Aufbau eines DAB-Versuchsempfängers
Transcription
Aufbau eines DAB-Versuchsempfängers
Wincierz, Andreas AUFBAU EINES DAB-VERSUCHSEMPFÄNGERS FÜR DIE INGENIEURAUSBILDUNG DIPLOMARBEIT HOCHSCHULE MITTWEIDA (FH) Fachbereich Medien & Elektrotechnik Mittweida, 1999 Wincierz, Andreas AUFBAU EINES DAB-VERSUCHSEMPFÄNGERS FÜR DIE INGENIEURAUSBILDUNG eingereicht als DIPLOMARBEIT an der HOCHSCHULE MITTWEIDA (FH) Fachbereich Medien & Elektrotechnik Mittweida, 1999 Erstprüfer: Zweitprüfer: vorgelegte Arbeit wurde verteidigt im: Prof. Dr.-Ing. habil. H. Pfahlbusch Dipl.-Ing. Stephan Drechsel April 1999 Referat Wincierz, Andreas: Aufbau eines DAB-Versuchsempfängers. – 1999. – 108 S. Mittweida, Hochschule Mittweida (FH), Fachbereich Medien & Elektrotechnik, Diplomarbeit, 1999 Referat: Ziel der Arbeit ist der Aufbau eines Versuchsempfängers für den digitalen Rundfunk (DAB), um die Ingenieurausbildung in den Fachrichtungen Medien und Nachrichtentechnik zu unterstützen. Als Ausgangspunkt dient ein Chipsatz für DAB-Rundfunkempfänger der Firma Philips. Bei der Forderung nach Transparenz der DAB-Daten werden verschiedene Lösungen erörtert. Ein Vergleich der einzelnen Konzepte und eine Abwägung zwischen Hardware- und Softwareaufwand favorisiert die Nutzung des unformatierten seriellen Datenkanals vom Kanaldekoderschaltkreis. Anschließend werden Schaltungen für die Auswertung des Datenkanals und Programme für das Auslesen und die Steuerung des Empfängers besprochen. Am Schluß folgt ein Vorschlag für eine Inbetriebnahme des Empfängers. 3 Inhalt Inhalt Abkürzungs- und Symbolverzeichnis ..................................................................................................4 Abbildungsverzeichnis ..........................................................................................................................9 Tabellenverzeichnis .............................................................................................................................11 1 Einführung .........................................................................................................................................12 1.1 Signal-Rauschverhältnis und Dynamik.........................................................................................12 1.2 Sender ..........................................................................................................................................14 1.2.1 Daten- und Tonquellen ..........................................................................................................14 1.2.2 Kanalbündelung und -kodierung............................................................................................16 1.2.3 OFDM-Symbolgenerierung, Modulation und Sender ............................................................18 1.2.3.1 Modulationsprinzip .........................................................................................................................18 1.2.3.2 Signalaufbereitung und Sender......................................................................................................20 1.3 Übertragungsstrecke ....................................................................................................................22 1.4 Empfänger ....................................................................................................................................26 2 Der Versuchsempfänger...................................................................................................................28 2.1 Empfängerkonzept .......................................................................................................................29 2.2 Realisierung..................................................................................................................................31 2.2.1 Tuner......................................................................................................................................36 2.2.2 Datenlogger ...........................................................................................................................42 2.2.2.1 Teilkanalschnittstelle ......................................................................................................................42 2.2.2.2 SFCO-Interface ..............................................................................................................................46 2.2.3 Steuerungslogik .....................................................................................................................48 2.2.4 Schaltungstechnik..................................................................................................................49 2.2.4.1 Logischer Aufbau ...........................................................................................................................49 2.2.4.2 Schaltungsrealisierung und Beschreibung .....................................................................................51 3 Aufbau der DAB-Datenrahmen ........................................................................................................61 3.1 Synchronization Channel..............................................................................................................61 3.2 Fast Information Channel .............................................................................................................62 3.3 Main Service Channel ..................................................................................................................66 3.3.1 Kontinuierliche Datenübertragung .........................................................................................66 1 Inhalt 3.3.2 Paketdatenübertragung .........................................................................................................66 3.3.3 Paketmode -Transportebene .................................................................................................68 3.3.4 Zusammenhang von Network- und Transport-Ebene im Paketmodus .................................71 3.4 Multiplex Configuration Information ..............................................................................................72 3.5 Service Organization ....................................................................................................................75 4 Bussysteme und Datenformate .......................................................................................................83 4.1 I²C-Bus..........................................................................................................................................83 4.2 I²S-Datenformat ............................................................................................................................87 4.3 ISA-Bus.........................................................................................................................................87 4.4 Local-Bussysteme ........................................................................................................................88 4.5 SCSI-Bus ......................................................................................................................................89 5 Programme zum Versuchsboard.....................................................................................................91 5.1 Datenerfassung ............................................................................................................................91 5.2 I²C-Bus-Emulationsprogramm ....................................................................................................101 6 Inbetriebnahme................................................................................................................................109 7 Zusammenfassung..........................................................................................................................118 Analgen A Schaltkreis- und Baugruppenbeschreibungen ...........................................................120 Anlage A.1: .......................................................................................................................................121 Anlage A.2: .......................................................................................................................................121 Anlage A.3: .......................................................................................................................................121 Anlage A.4: .......................................................................................................................................121 Anlage A.5: .......................................................................................................................................121 Anlage A.6: .......................................................................................................................................121 Anlage A.7: .......................................................................................................................................121 Anlage A.8: .......................................................................................................................................121 Anlage A.9: .......................................................................................................................................121 Anlage A.10: .....................................................................................................................................122 Anlage A.11: .....................................................................................................................................122 Anlage A.12: .....................................................................................................................................122 Anlage A.13: .....................................................................................................................................122 Anlage A.14: .....................................................................................................................................122 Anlage A.15: .....................................................................................................................................122 2 Inhalt Anlage A.16: .....................................................................................................................................122 Anlage A.17: .....................................................................................................................................122 Anlagen B Schaltungen und Leiterplattenlayouts.........................................................................123 Anlage B.1: .......................................................................................................................................124 Anlage B.2: .......................................................................................................................................124 Anlage B.3: .......................................................................................................................................124 Anlage B.4: .......................................................................................................................................124 Anlagen C Quellcodes ......................................................................................................................125 Anlage C.1: .......................................................................................................................................126 Anlage C.2: .......................................................................................................................................126 Anlage D Datenträgerinhalt ...............................................................................................................127 Quellenverzeichnis.............................................................................................................................128 Selbständigkeitserklärung ................................................................................................................132 3 Abkürzungs- und Symbolverzeichnis Abkürzungs- und Symbolverzeichnis - im Thema ack Acknowledge adr Globale I²C-Busadresse Ax Adreßleitungen A/D analog -> digital ACK Acknowledge AFC Automatic Frequency Control ALE Adress Latch Enable BF Bandfilter Bnr Blocknummer confX Konfigurationshalbwort (X = 1 steht für High Byte und X = 0 steht für Low-Byte) CClk Taktsignal des L3-Interfaces CCLK Taktsignal des SAA3501 an den Controller CD Compact Disc CDATA Datensignal des SAA3501 an den Controller CFIC FIC-Controllersignal des SAA3501 CMode Unterscheidet Adreß- und Datenwerte auf der SDA-Leitung (L3-Interface) CMODE Modussignal des SAA3501 an den Controller COM Serielle Schnittstelle eines PCs CRC Cyclic Redundancy Check /CS Chip Select Cw Codewort D Dynamik D/A digital -> analog DAB Digital Audio Broadcasting DOS Disk Operating System DQPSK Differential Quadrature Phase Shift Keying DR Datenrate e Quantisierungsgeräusch E/A Eingang/Ausgang /EA External Access EEPROM Elektrisch löschbarer Nur-Lesespeicher 4 Abkürzungs- und Symbolverzeichnis ETS European Telecommunication Standard fAbtastX Abtastfrequenz Fdh Dopplerfrequenz bei Bewegung in Richtung der strahlenden Quelle Fdw Dopplerfrequenz bei Bewegung aus Richtung der strahlenden Quelle FFT Fast Fourier Transformation F-PAD Fixed Programme Associated Data /FSO Nulldetektor bzw. /Rahmensynchronausgang GND Ground (elektrische Masse) GPS Global Positioning System Hex Hexadezimalwert HC High-Speed-CMOS-Technologie HF Hochfrequenz Iadj Abstimmstrom IVk Index der Verzögerungskette I/O Ein-/Ausgang I/Q Inphase/Quadrature I²C-Bus Inter IC-Bus ISA Bussystemart für PC-Einsteckkarten (Industrial Standard Architecture ISO International Organization for Standardization I²S Datenformat für digitale Audiosignale (speziell bei Philips) l Länge eines Binärwortes Ladr lokale I²C-Busadresse (Registeradresse im Schaltkreis) Lx Induktivität LSB Last Significant Bit LV Low-Volt (Logiktechnologie mit 3,3 V High-Pegel) LVC Low-Voltage-CMOS-Technologie M Multiplikator Mi Mischer1 MPEG Moving Picture Experts Group MSB Most Significant Bit N Anzahl OFDM Orthogonal Frequency Division Multiplex Osc Oszillator P I²C-Bus-Stopkondition PCI Bussystemart für PC-Einsteckkarten (Peripherial Components Interface) 5 Abkürzungs- und Symbolverzeichnis PD Phase Detect PIO Parallel Input/Output PLL Phase Lock Loop PROM Nur-Lesespeicher PSEN Programme Store Enable /RD Read RDY Ready REF Receiver Error Flag RF Receiver Frequency RS232 Serieller Schnittstellentyp RxD Empfangskanal der seriellen Schnittstelle RS232 Start Startsymbol bei der I²C-Busübertragung Stop Ende der I²C-Busübertragung S I²C-Bus-Startkondition SDAB-Daten Speichergröße für DAB-Daten SXX Speicherplatzbedarf, XX bestimmt die Art des Speicherplatzes (Rahmen/Zellen) SAW Surface Acustic Wave ScF-CRC Scale Factor CRC SCL Serielles Taktsignal (I²C-Bus) SCSI Bussystem für Computerperipherie (Small Computer System Interface) SDA serielle Datenleitung (I²C-Bus) SDA_SEND serielle Daten in Senderichtung betrieben (für Interfacetreiber) SDA_REC serielle Daten in Empfangsrichtung betrieben (für Interfacetreiber) SDV Datengültigkeit SFCO Simple Full Capacity Output SNR Signal/Rausch-Verhältnis SP Speichergruppe T Zeit TeilerX Teilerfaktorhalbwort (X = 1 steht für High Byte und X = 0 steht für Low-Byte) TxD Sendekanal der seriellen Schnittstelle RS232 U Spannungseffektivwert Ux Spannungsbezeichnung abhängig vom Kontext Du Digitalisierte Spannung Udq Digitalisierte Spannung mit Quantisierungsrauschen Ui Eingangsspannung 6 Abkürzungs- und Symbolverzeichnis umax Maximale Spannung im Aussteuerbereich eines A/D-Wandlers Uo Ausgangsspannung Uref Referenzspannung VOFDM Anzahl der OFDM-Symbol-Varianten p-p Index für Spitze-Spitze-Spannung Vx Verstärker VESA Bussystemart für PC-Einsteckkarten /WRL Write-Low-Byte X-PAD Extended Programme Associated Data ZF Zwischenfrequenz - im Standard (Kapitel 5) Al Alarm ASCTy Audio Service Component Type C/N Current/Next CA Conditional Access CAId Conditional Access Identifier CIF Common Interleaved Frame CRC Cyclic Redundancy Check CU Capacity Unit DSCTy Data Service Component Type ECC Extended Country Code EId Ensemble Identifier FIC Fast Information Channel FIDC Fast Information Data Channel FIDCId Fast Information Data Channel Identifier MCI Multiplex Configuration Information MSC Main Service Channel OE Other Ensemble P/D Program/Data Flag P/S Primary/Secondary Rfa Reserved for future additions Rfu Reserved for future use SCCA Service Component Conditional Access SCId Service Component Identifier 7 Abkürzungs- und Symbolverzeichnis SCIdS Service Component Identifier within the Service SI Service Information SId Service Identifier SubCh Sub-channel SubChId Sub-channel Identifier TCId Type Component Identifier Im Standard ETS 300 401 findet sich ein vollständiges Abkürzungsverzeichnis für die in Verbindung mit DAB verwendeten Kürzel. Zudem werden im Standard die Eigenschaften der Abkürzungen weitgehend erläutert. - Anlage _A Analogsignal _D Digitalsignal BR Brücke für die Auswahl von bestimmten Betriebsbedingungen C Kondensator CONN Kontakte für Steckverbindungen D Diode GND Masse L Induktivität R Widerstand IC Schaltkreis U Schaltkreis XTAL Quarzoszillator Die weiteren Signale, wie z. B. das CDATA- oder MCLK-Signal, sind herausgeführte Leitungen der entsprechenden Schaltkreise und können in den speziellen IC-Beschreibungen in den Anlagen nachgelesen werden. - Symbole Å Hinweis / siehe φ Phasenwinkel µC Mikrocontroller 8 Abbildungsverzeichnis Abbildungsverzeichnis Abbildung 1. 1 : Entstehung des Signal-Quantisierungsrauschens 12 Abbildung 1. 2 : Signal-/Quantisierungsgeräusch und Dynamik 13 Abbildung 1. 3 : Allgemeiner Senderaufbau 14 Abbildung 1. 4 : Logikplan des Faltungskoders aus Tabelle 1.1 16 Abbildung 1. 5 : Ungleichgewichtiger Fehlerschutz eines MPEG Audio-Rahmens 17 Abbildung 1. 6 : Konzept der OFDM-Symbolerzeugung 18 Abbildung 1. 7 : Phasenlagen des DPSK-Trägers durch Beeinflussung des Referenzsymbols 19 mit dem Drehfeldfaktor Abbildung 1. 8 : Beispiel für einen Zeit-Interleaver 20 Abbildung 1. 9 : Prinzip der Frequenzverwürfelung im DAB 21 Abbildung 1.10 : Wirkung des Dopplereffektes bei einer Frequenz von 57,5 MHz 22 Abbildung 1.11 : Wirkung des Dopplereffektes bei einer Frequenz von 193,5 MHz 23 Abbildung 1.12 : Wirkung des Dopplereffektes bei einer Frequenz von 1459,75 MHz 23 Abbildung 1.13 : Schutzintervallzeiten 23 Abbildung 1.14 : Prinzipeller Aufbau eines Gleichwellennetzes 26 Abbildung 1.15 : Blockschaltbild des allgemeinen Empfängers 26 Abbildung 2. 1 : Empfängerstruktur mit Philips IC-Satz (Channel Decoder SAA3500H und 29 MPEG Decoder SAA2502) Abbildung 2. 2 : Empfänger mit seriellen Datenausgängen 32 Abbildung 2. 3 : Erweiterung der Lösung aus Abbildung 2.2 mit einem 24 Bit-Schieberegister 34 als Zwischenspeicher für 3 Byte DAB-Daten Abbildung 2. 4 : DAB3-Interface mit einem 1 MBit-Zwischenspeicher 35 Abbildung 2. 5 : Datenerfassung mit dem SFCO-Ausgang 36 Abbildung 2. 6 : Beispiel einer Kaskade mit Philips-Tunern 37 Abbildung 2. 7 : Blockschaltbild des Tunertyps SF1218 B im Gesamtüberblick 38 Abbildung 2. 8 : Innenaufbau des TDA8010M 39 Abbildung 2. 9 : Blockschaltbild des TSA5511 40 Abbildung 2.10 : Durchlaßkurve des Oberflächenwellenfilters X6922M der Fa. Siemens 41 Matsushita Components Abbildung 2.11 : Ausschnitt aus der Durchlaßkennlinie von Abbildung 2.10 42 Abbildung 2.12 : Konzept des 24 Bit-Schieberegisters 43 9 Abbildungsverzeichnis Abbildung 2.13 : Variante mit 1 MBit-Speichern 44 Abbildung 2.14 : Konzeptüberlegung zur Datenübernahme vom SFCO mit Schieberegistern 46 Abbildung 2.15 : Signalaufbereitung und Zwischenspeicherung in einem 5 MBit S-RAM 47 Abbildung 2.16 : I²C-Interface in einfacher Bauweise 48 Abbildung 2.17 : Aufbau der PIO-32 Karte 49 Abbildung 2.18 : Gliederung des Versuchsboards in einzelne Baugruppen 51 Abbildung 2.19 : Schaltung zur Datenerfassung der SFCO-Informationen 55 Abbildung 2.20 : Standardschaltung für variable Spannungsregler mit dem LM 317 57 Abbildung 2.21 : Prinzipielle Schaltung für Festspannungsregler 57 Abbildung 3. 1 : Allgemeiner Aufbau eines DAB-Übertragungsrahmens 61 Abbildung 3. 2 : Zusammensetzung eines FIB aus FIGs 62 Abbildung 3. 3 : FIG mit Typ 0 Feld 64 Abbildung 3. 4 : FIG mit Typ 1 Feld 64 Abbildung 3. 5 : FIG mit Typ 5 Feld 65 Abbildung 3. 6 : FIG mit Typ 6 Feld 65 Abbildung 3. 7 : Paketstruktur im Network Level 67 Abbildung 3. 8 : Struktur von der Main Service Channel Data Group 69 Abbildung 3. 9 : Logische Verbindungen und Zusammensetzung von Network und Transport 71 Level Abbildung 3.10 : Beispiel für den Aufbau einer DAB-Programm Struktur 72 Abbildung 3.11 : Aufbau des Teilkanals 73 Abbildung 3.12 : Darstellung der Servicestruktur 74 Abbildung 3.13 : Struktur des Programmkomponentenfeldes im Paketmodus 75 Abbildung 3.14 : Programmkomponenten im Streammodus oder FIC 78 Abbildung 3.15 : Aufbau des DSCTy-Erweiterungsfeldes 79 Abbildung 3.16 : Darstellung des globalen Definitionsfeldes 80 Abbildung 3.17 : Struktur des Ensembleinformationsfeldes 81 Abbildung 4. 1 : Startkondition (S) laut I²C-Spezifikation von Philips 82 Abbildung 4. 2 : Stopkondition (P) laut I²C-Standard 82 Abbildung 4. 3 : Darstellung zum zeitlichen Ablauf der Datenübertragung 83 10 Tabellenverzeichnis Tabellenverzeichnis Tabelle 1. 1 : Generatorpolynome des Faltungscoders 16 Tabelle 1. 2 : Gleichmäßige Sicherung der DAB-Datendienste 17 Tabelle 1. 3 : Ungleichmäßige Fehlersicherung (64 kBit/s als Beispiel) 17 Tabelle 1. 4 : Kennwerte zu den Sendemodi 24 Tabelle 1. 5 : DAB-Sendestandorte und -frequenzen 25 Tabelle 3. 1 : Anzahl der FIBs in einem FIC in Abhängigkeit zum Übertragungsmodus 61 Tabelle 3. 2 : Beschreibung der verschiedenen FIGs 62 Tabelle 3. 3 : Flagkombinationen für eingeschränkte Zugriffe 64 Tabelle 3. 4 : Paketlängen im MSC 66 Tabelle 3. 5 : First/Last-Flags für den Paketmodus 66 Tabelle 3. 6 : Kodetabelle der verschiedenen Data Group Typen 68 Tabelle 3. 7 : Gegenüberstellung von Schutzpegeln und Teilkanalgröße bzw. Datenrate 72 Tabelle 3. 8 : Schutzpegel für verschiedene Faltungskoderaten 73 Tabelle 3. 9 : Schutzpegel für verschiedene Faltungskoderaten 73 Tabelle 4. 1 : Elektrische I²C-Bus Kennwerte 84 11 Einführung 1 Einführung Das Kapitel Einführung soll dem interessierten Leser und Seiteneinsteiger helfen, um zum Thema „Aufbau eines DAB-Versuchsempfänger“ angestellten Überlegungen und Konzepte leichter zu verstehen. In den folgenden Abschnitten werden im allgemeinen der Zusammenhang zwischen Datenwortbreite der Toninformationen und der Aufbau eines allgemein gültigen DAB-Sende- und Empfangssystems beschrieben. 1.1 Signal-Rauschverhältn is und Dynamik Die Entwicklung der Rechentechnik und der elektronischen Datenverarbeitung erschließt dem Rundfunk eine neue Welt. Mit der Hilfe hochintegrierter Schaltkreise und schneller Prozessoren wird aus dem herkömmlichen Tonrundfunk ein Rundfunk mit besserer Tonqualität und zusätzlichen multimedialen Eigenschaften. Ein Maß für die Qualität des Tones sind das Signal-Quantisierungsgeräusch und die Dynamik (Å Abbildung 1.1). Als Verdeutlichung soll das Beispiel 1.1 die Abhängigkeit zwischen dem Quantisierungsrauschen bzw. der Dynamik und der Binärwortbreite zeigen. Ud Udq + e - Quantisierungsgeräusch Abbildung 1. 1 : Entstehung des Signal-Quantisierungsrauschens [1] Beispiel 1. 1: Festlegung gegen Übersteuerung: Gleichung 1. 1 : U (max) = Die folgenden Berechnungen wurden mit u max 4 U(max) u max = [1] 1 normiert 4 [1] Quantisierungsgeräusch: Wertebereich von l : Gleichung 1. 2 : von 1 bis 48 SNR ( l) = 6 ,02 ⋅ l + 4 ,77 − 20 ⋅ log( 0 ,25 ) [1] Dynamik: 12 Einführung [1] D(l) = 6.02 ⋅ (l − 1) In der Abbildung 1.2 wird die Abhängigkeit des Signal-Quantisierungsrauschens SNR(l) und der Dyna- Gleichung 1. 3 : mik D(l) von der Binärwortbreite l demonstriert. Bei l = 16 ist eine Markierung gesetzt, um die für das DAB-System und die CD verwendete Datenwortbreite hervorzuheben. 16 200 SNR ( l ) D ( l) 113 100 90 0 10 20 30 40 l Abbildung 1. 2 : Signal-/Quantisierungsgeräusch und Dynamik Neben den üblichen Tondaten können zusätzlich auch Texte und Bildinformationen übertragen werden. Folgende Anwendungsbereiche sind vorstellbar: Bildübertragungen wie beispielsweise das CD-Cover der gerade laufenden Musik, Grafiken von Internetseiten u.s.w. Textübermittlungen für den Wetterbericht oder die Staumeldungen (Steuerung von Prozessen durch ein DAB-Signal). Das Digital Audio Broadcasting ist ein ideales Medium um Informationen in Wort und Bild in mobilen Geräten (wie Kofferempfängern und Autoradios) wiederzugeben. In den Punkten Sender, Übertragungsstrecke und Empfänger folgt ein allgemeiner Überblick über die Funktionsweise des DAB-Systems. 13 Einführung 1.2 Sender Ein DAB-Sender (Å Abbildung 1.3) setzt sich aus mehreren Baugruppen wie Quellen, Informationsbündelung bzw. Modulator und Sender zusammen. Multiplexinformationen Sendernamen, Alternativfrequenzen u.s.w. (PAD) Kanalkodierung Hörfunkprogramm Tondatenreduktion Kanalkodierung Paketmultiplexer Kanalkodierung Multiplexer COFDMModulator Sender Datendienste (NPAD) Abbildung 1. 3 : allgemeiner Senderaufbau [2] Wie in der Einleitung zu diesem Hauptkapitel erwähnt, ist das DAB ein Tonrundfunk mit multimedialen Eigenschaften. Die vom Sendemast abgestrahlten Daten werden von verschiedenen Quellen entnommen. 1.2.1 Daten- und Tonquellen Das analoge Tonrundfunksignal mit einer Bandbreite von 20 kHz wird durch eine Abtastfrequenz von mindestens 44,1 kHz in 16 Bit breite Datenworte umgesetzt. Diese Abtastfrequenz wird auf der Basis des Shannonschen Theorems gewählt. In hochwertigen Studioanlagen werden Abtastfrequenzen von 48 kHz genutzt. Im Beispiel 1.2 wir der Einfluß der Abtasfrequenzen auf die Datenraten dargestellt. Dieses Beispiel zeigt die, welche Datenmengen bei der Digitalisierung von Analogsignalen entstehen und verarbeitet werden müssen. Beispiel 1. 2 : Gleichung 1. 4 : Gegeben: DR = f AbtastX ⋅ l fAbtast1 = 44,1 kHz, fAbtast2 = 48 kHz l = 16 Bit 14 Einführung Lösung nach Gleichung 1.4 : Monosignal mit fAbtast1: DR = 705 600 Bit / s Stereosignal mit fAbtast1: DR = 1 411 200 Bit / s (Datenrate von 2 Monokanälen) Monosignal mit fAbtast2: DR = 768 000 Bit / s Stereosignal mit fAbtast2: DR = 1 536 000 Bit / s (Datenrate von 2 Monokanälen) Datenmengen von ca. 1,41 MBit / s bzw. 1,54 MBit / s werden auf Grund ihrer Größe einer Tondatenreduktion unterzogen. Im Standard zum DAB (ETS 300 401) sind als geeignete Kompressionsverfahren das ISO MPEG 11172-3 Layer 2 und ISO MPEG 13818-3 Layer2 festgelegt. Encodersysteme, die nach diesen Standards arbeiten, nutzen das sogenannte psychoakustischen Hörmodell. Auf der Basis dieses Modells werden nur die vom Menschen hörbaren Frequenzen weiter genutzt. In den Datendiensten werden Bild- und Textdaten für verschiedene Anwendungen übertragen. Dazu ein paar näher beschriebene Beispiele: Internet Dafür können Grafiken und Texte der Internetseiten ausgestrahlt werden. Durch Grenzen in der maximalen Datenrate und den einfachen Anzeigesystemen (im mobilen Einsatz z. B. Automobil) sind derzeitig nur einfache Textformatierungen und Grafiken möglich. Verkehrsmeldungen Meldungen über Stau, Wetter und Baustellen können in Wort und Bild mitgeteilt werden. Stilisierte Karten können schnell einen Überblick zur aktuellen Verkehrslage liefern. Verkehrsleitsysteme Herkömmliche Pilotsysteme von Philips , Grundig und Blaupunkt besitzen eine digitalisierte Karte auf CD und navigieren das Fahrzeug via GPS. Veränderte Straßenführungen, wie die geänderte Fahrtrichtung einer Einbahnstraße, können teilweise zu falschen Ergebnissen führen. Werden der DABEmpfänger und beispielsweise das Navigationssystem RGS 08 (Blaupunkt) verbunden, so ist eine dynamische Anpassung der Fahrtroute an die Straßenverkehrssituation möglich. Bei den Sonderfunktionen handelt es sich um programmbegleitende Daten (PAD) oder Steuerdaten. In die PAD-Daten werden Informationen zu Alternativfrequenzen, Programmart (z. B. Klassik, Pop und Nachrichten) und Empfangsart (Mono, Stereo, Joint Stereo und Mehrkanalton) verpackt. 15 Einführung 1.2.2 Kanalbündelung und -kod ierung Diese Datendienste und Sonderfunktionen werden direkt von Rechnersystemen eingespeist. Handelt es sich um mehrere Datenpakete, so werden diese in einem Multiplexer zusammengefaßt. Nach der Bereitstellung der Informationsdienste und Vorverarbeitung der Tondaten folgt eine Kanalkodierung. Die Kanalkodierung wird in Form einer Faltungskodierung durchgeführt. In Tabelle 1.1 stehen die laut Standard (ETS 300 401, Punkt 11 Convolutional coding) verwendeten Generatorpolynome. In der Abbildung 1.4 sind die Generatorpolynome in einer logischen Schaltung umgesetzt. Der Kanalkodierung folgt ein Multiplexer, der die einzelnen Informationsquellen zusammenfaßt. Bezeichnung Polynom C1 C2 C3 C4 X6 + X4 + X3 + X + 1 X6 + X5 + X4 + X3 + 1 X6 + X5 + X2 + 1 X6 + X4 + X3 + X + 1 Wert Hexadezimal 5B 79 65 5B Dezimal 91 121 101 91 Binär 001011011 001111001 001100101 001011011 Tabelle 1. 1 : Generatorpolynome des Faltungscoders [10] T T T T T T C1 C2 C3 C4 Abbildung 1. 4 : Logikplan des Faltungskoders aus Tabelle 1.1 [10] Gleichgewichtiger Fehlerschutz (EEP – Equal Error Protection) Die im DAB zu übertragenden Datendienste werden mit einer 2 stufigen Sicherung versehen. In der Tabelle 1.2 stehen die Symbole P für den Schutzpegel (Protection Level), R für die durchschnittliche Koderate, D verkörpert die Nettodatenrate, L Datenlängen der Quelle und I der Fehlerschutz. Im Gegensatz zu den in der Tabelle 1.2 gezeigten Punktierungen für einen Fehlerschutz der DABDatendienste wird bei Übertragung der Audiodaten eine ungleichmäßige Fehlersicherung eingesetzt. 16 Einführung P R D(kBit/s) L1, L2 I1,I2 1 2/8 8n 6n-3, 3 24, 23 2 3/8 8 5, 1 13, 12 3 3/8 8n(n>1) 2n-3, 4n+3 14, 13 4 4/8 8n 6n-3, 3 8, 7 5 6/8 8n 4n-3, 2n+3 3, 2 Tabelle 1. 2 : Gleichmäßige Sicherung der DAB-Datendienste [2] Ungleichgewichtiger Fehlerschutz (UEP – Unequal Error Protection) Wegen der optimalen Nutzung und Sicherung des DAB-Systems wurde im Standard eine Sicherung in Abhängigkeit vom Dateninhalt eingeführt. Informationen von MPEG Audio Layer II Header, CRCSymbolen und Skalenfaktoren benötigen einen höheren Fehlerschutz als die MPEG-kodierten Audiodaten. Zur Verdeutlichung soll die Tabelle 1.3 dienen. Alle verwendeten Symbole entsprechen denen im vorangegangenen Punkt. Als neues Symbol wird das Padding Bit (PB) mit angeführt. Dieses dient zum Auffüllen der Rahmen um die standardisierte Länge einzuhalten. Datenrate 64 kBit/s P 1 2 3 4 5 L1, L2, L3, L4 6, 11, 28, 3 6, 10, 29, 3 6, 12, 27, 3 6, 9, 33, 0 6, 9, 31, 2 I1, I2, I3, I4 24, 18, 12, 18 23, 13, 8, 13 16, 8, 6, 9 11, 6, 5, 5, 3, 2, 3 PB 4 8 0 0 0 Tabelle 1. 3 : Ungleichmäßige Fehlersicherung (64 kBit/s als Beispiel) [2] zugefügte Redundanz MPEG Audio Layer II Header CRC Bit Allocation Scale Factor Select Information Scale Factor Subband Samples Stuff X-PAD ScFCRC F-PAD Abbildung 1. 5 : Ungleichgewichtiger Fehlerschutz eines MPEG Audio-Rahmens [2] Wenn der ungleichmäßige Fehlerschutz nun grafisch über einem MPEG Audio-Rahmen abgebildet wird, ergibt sich eine Kurve wie in der folgenden Abbildung 1.5. 17 Einführung 1.2.3 OFDM-Symbolgenerierun g, Modulation und Sender Am Ausgang des Multiplexers befinden sich Baugruppen, mit deren Hilfe die OFDM Symbole erzeugt werden. In der Abbildung 1.6 wird die Struktur zur OFDM-Symbolerzeugung beschrieben. Der Blockpartitionierer zerlegt den Datenstrom vom Multiplexer in Teilströme. Die Anzahl der Teilströme ist abhängig von der Anzahl der im Sendebetrieb verwendeten Unterträger. Für den DQPSK-Modulator wird in der Darstellung die Bezeichnung QPSK Symbol Mapper verwandt. In dem Nullsymbolgenerator wird ein Symbol für die Synchronisierung des DAB-Rahmens und zur Übermittlung der Senderkennung erzeugt. Ein Phasenreferenzsymbolgenerator erzeugt ein Referenzzeichen mit dessen Hilfe dem Modulator ein leichteres Einrasten auf die entsprechende Phasenlage des aktuellen OFDM-Symbols ermöglicht werden soll. OFDM Signal Generator Null Symbol Generator Synchron. Channel Symbol Generator Differential Modulator Phase Reference Symbol Generator Transmission Frame Multiplexer z l,k MUX z QPSK Symbol Mapper Block Partitioner p l,n Frequency Interleaver (m)l,k l≥2 OFDM Symbol Generator q l,n FIC + MSC Symbol Generator z l,k l≥2 s(t) y l,k l ≥ 2 Abbildung 1. 6 : Konzept der OFDM-Symbolerzeugung [10] 1.2.3.1 Modulationsprinzip Jede der einzelnen Datengruppen wird einer 4-DPSK-Modulation (DPSK - Differential Phase Shift Keying) unterzogen. Einige Literaturquellen beschreiben die 4-DPSK auch als Differential Quadrature Phase Shift Keying (DQPSK). Bei einer Veränderung des Datenwortes wird im PSK-Modulator die Phasenlage des Modulationssignals geändert. Die Signalamplitude wird von der Modulation nicht be- 18 Einführung einflußt. DPSK-Systeme werten im Gegensatz zu den PSK-Systemen nicht die absoluten Phasen, sondern die Unterschiede zwischen 2 Datenworten. In einem 4-DPSK-Modulator treten Phasenlagen von 45° + n ⋅ 90° auf. Generell dreht sich das Bezugssystem der DPSK unabhängig von den zu übertragenden Symbolen um 45°. Jedes neue OFDM-Symbol ändert seine Phasenlage um + 45° gegenüber dem Referenzsymbol. Zu den im Standard vereinbarten vier Phasenlagen von 0°, 90° 180° und 270° kommen durch die ständige 45° Drehung des Bezugssystems noch weitere 4 Phasenlagen hinzu. In der Gleichung 1.5 verkörpert φDrehfeld die 45° Bezugsfelddrehung und φDPSK n-1 das vorangegangene Symbol. φ DPSK Gleichung 1. 5 : n = φ DPSK n −1 + φ Drehfeld [33] Die Zusammensetzung der möglichen Phasenlagen φDPSK sind in der Abbildung 1.7 nachvollziehbar. Im Im 1j 1j 0 -1 Im 1 Re + 1j 0 -1 1 -1j -1j Referenzsymbol Re = 0 -1 1 Re -1j DPSK-Drehfaktor DPSK-modulierter- Träger Abbildung 1. 7 : Phasenlagen des DPSK-Trägers durch Beeinflussung des Referenzsymbols mit dem Drehfeldfaktor [33] Bei der Existenz von 4 Phasenlagen laut DAB-Standard können Informationen mit 2 Bit Breite je Unterträger verschlüsselt werden. Die Datenwortlänge l je OFDM-Symbol ist abhängig von der im Sendemodus verwendeten Anzahl der Unterträger NUntertr. (Å Abschnitt Übertragungsstrecke, Tabelle 1.4) und wird nach Gleichung 1.6 berechnet. Gleichung 1. 6 : l = 2 ⋅ N Untertr . [33] Beispiel 1. 3: Im Modus 1 wird mit 1536 Trägern gearbeitet. Nach der Gleichung 1.6 beträgt die OFDM-Symbolbreite 3072 Bit. Die Anzahl der Träger und die standardisierten Phasenlagen ermöglichen mit Hilfe der Permutation die Bestimmung der maximal möglichen OFDM-Symbolvarianten VOFDM (Å Gleichung 1.7). Gleichung 1. 7 : V OFDM = 2 l [33] 19 Einführung Beispiel 1. 4: Bei einer Anzahl von 192 Unterträgern erhält man eine Datenwortlänge Dwl (Å Gleichung 1.6) von 384 Bits. Werden die 384 Bits in die Gleichung 1.7 eingesetzt ergibt sich eine Anzahl von 39,402 ⋅ 114 10 möglichen Symbolvarianten. Mit der oben erwähnten Drehung des Bezugsfeldes wird die Signalanalyse im Empfänger erleichtert. 1.2.3.2 Signalaufbereitung und Se nder Der vom Kanalenkoder kommende Gesamtdatenstrom wird in Blöcke, sogenannte Bitvektoren zerlegt. Die Blocklänge ist abhängig von der Anzahl der Unterträger und berechnet sich nach Gleichung 1.6. Immer 2 Bits werden einem Träger zugeordnet. Die Umsetzung der Bits in entsprechende Phasenverschiebungen wurden im vorangegangenen Unterkapitel beschrieben. Um den modulierten Daten zusätzlich einfachen Schutz vor Burstfehlern zu geben, werden die Daten einem Interleaving für den Zeitbereich und Frequenzbereich unterzogen. Damit werden die Bindungen zwischen benachbarten Bits für die Dauer der Übertragung künstlich aufgehoben. Zeitinterleaving T11 An Serien-/ Parallelwandlung T21 T22 Parallel-/ Serienwandlung T31 T32 T33 T(B-1)1 T(B-1)2 T(B-1)3 T(B-1)(B-2) Cn T(B-1)(B-1) Abbildung 1. 8 : Beispiel für einen Zeit-Interleaver [2] Wenn die Daten zum Interleaver seriell vorliegen, werden sie zunächst einer Serien-/Parallelwandlung unterzogen. Das System besteht aus parallelen Verzögerungsketten (Å Abbildung 1.8) mit einer Anzahl von der Binärwortbreite –1. In den Verzögerungsketten befinden sich verschiedene Anzahlen von Zeitgliedern (Å Gleichung 1.8). 20 Einführung Dabei beschreibt NT die Anzahl der Verzögerungsglieder und den Index I Vk der entsprechenden Verzögerungskette. Gleichung 1. 8 : N T ( I Vk ) = T ⋅ ( I Vk − 1) [33] Jedes der Verzögerungselemente arbeitet mit einer festgeschriebenen Verzögerung von 24 ms. Diese Verzögerungszeit entspricht der Länge eines DAB-Datenrahmens. Im DAB wird mit Wortbreiten von 16 Bit gearbeitet und daraus folgt eine notwendige Speicherung von 16 DAB-Rahmen. Frequenzinterleaving In einem Funkkanal treten zeitweise elektromagnetische Störstrahlungen, wie schlecht entstörte Haushaltgeräte oder Zündanlagen im Automobil, auf. Im allgemeinen besitzen Störsignale eine gewisse Mindestbandbreite, so daß sie bei einem DAB-Signal mehrere Unterträgersignale beeinflussen. Um diesem Umstand zu begegnen, wird im DAB zum Zeit-Interleaving-Verfahren noch ein FrequenzInterleaving eingesetzt. Benachbarte Bits im Signalspektrum werden durch ein standardisiertes Vertauschen der Unterträgersignale voneinander getrennt. In der Abbildung 1.9 ist dieses Frequenzinterleavingverfahren dargestellt. Auf diese Art werden die Bindungen der benachbarten Bits aufgehoben und somit die übertragenen Informationen gegenüber Burstfehlern sicherer. Abbildung 1. 9 : Prinzip der Frequenzverwürfelung im DAB [33] 21 Einführung 1.3 Übertragungsstrecke Die Übertragungsstrecke in diesem System verkörpert der Luftraum zwischen Sender und Empfänger. Es gibt kein Modell mit dem sich die Übertragungsstrecke geschlossen mathematisch beschreiben läßt. Eine Vielzahl von Störquellen beeinflußt dieses Übertragungssystem. Bäume, Berge, Nebel, Regen, Autos und Häuserwände reflektieren und zerstreuen die elektromagnetischen Wellen eines Senders in verschiedene Richtungen. Mehrfachreflexionen an Häuserwänden (vor allem in Städten) und anderen Fahrzeugen erzeugen Interferenzen. Das Fading des Rundfunksenders im Autoradio sind die hörbaren Signalinterferenzen. Eine weitere Signalbeeinflussung entsteht, wenn sich das Automobil auf einen Sender zu oder von einem Sender weg bewegt. Die empfangene Frequenz des Rundfunksenders verschiebt sich nach oben bzw. unten. In der Physik ist dieser Effekt unter dem Begriff „Dopplereffekt“ bekannt. Um die Auswirkung der Fahrzeugbewegung auf die wirklich empfangene Sendefrequenz zu erkennen folgen drei Abbildungen. Hinweis: fdh1 - ist wahrgenommene Frequenz bei Bewegung hin zum Sender bei mittlerer Frequenz des Frequenzbandes Band I; fdw1 - ist wahrgenommene Frequenz bei Bewegung vom Sender weg bei mittlerer Frequenz des Frequenzbandes Band I; Analog gilt dies für Band III mit fdh2 und fdw2 bzw. für das L-Band mit den Bezeichnungen fdh3 und fdw5. Frequenzbereich Band I Frequenz in MHz 57.50002 fdh1( v ) fdw1( v ) 57.5 57.49998 0 50 100 150 200 v Geschwindigkeit in km/h 250 300 Abbildung 1. 10 : Wirkung des Dopplereffektes bei einer Frequenz von 57,5 MHz 22 Einführung Frequenzbereich Band III Sendefrequenz in MHz 193.50005 fdh2( v ) fdw2( v )193.5 193.49995 0 50 100 150 200 v Geschwindigkeit in km/h 250 300 Abbildung 1. 11 : Wirkung des Dopplereffektes bei einer Frequenz von 193,5 MHz Frequenzbereich L-Band Sendefrequenz in MHz 1459.7505 fdh3( v) fdw3( v ) 1459.75 1459.7495 0 50 100 150 200 v Geschwindigkeit in km/h 250 300 Abbildung 1. 12 : Wirkung des Dopplereffektes bei einer Frequenz von 1459,75 MHz ∆ Tu ∆ Ts Abbildung 1. 13 : Schutzintervallzeiten [2] 23 Einführung Für die Kompensierung von Mehrfachechos und Dopplereffekten wurde ein Schutzintervall (Abbildung 1.13) eingeführt. Die Schutzintervallzeit beträgt ein viertel der Symboldauer. Solange die Störeffekte sich in diesem Schutzintervall bewegen sind sie vom Hörer nicht wahrzunehmen. Für die unterschiedlichen Anforderungen an die Sendenetze wurden vier Sendemodi entwickelt (Å Tabelle 1.4) Der Modus 1 ist laut Standard ETS 300 401 für den Bereich Band I (47 MHz – 68 MHz) und Band III (147 MHz – 240 MHz) spezifiziert. Bei einem Unterträgerabstand von 1 kHz existiert ein Schutzintervall mit einer Länge von 246 µs (Å Tabelle 1.4). Die Dauer 246 µs entspricht einer Entfernung (Funkwellenausbreitung nahe Lichtgeschwindigkeit) von ca. 73,8 km. Bei Senderabständen von ca. 60 km lassen sich Echos der Nachbarsender noch sicher unterdrücken. 60 km Senderabstand ermöglichen den Aufbau von großen Gleichwellennetzen (ÅAbbildung 1.14) für Landesrundfunksender (beispielsweise MDR Kultur, MDR LIFE oder MDR Sachsen). Bewegt sich ein Empfänger mit hoher Geschwindigkeit durch ein Sendernetz, verschieben sich die Senderfrequenzen um ein ∆f. Ursache ist der in Kapitel „Übertragungsstrecke“ erwähnte Dopplereffekt. Die Frequenzverschiebung ist abhängig von der realen Geschwindigkeit des Empfängers hin zum oder weg vom Sender. Die Frequenzdifferenz ∆f ergibt sich aus dem Abstand von fdh1 und fdw1 in Abbildung 1.10. Kennwert Unterträgeranzahl: K Unterträgerabstand: ∆f in kHz Dauer des Übertragungsrahmens in ms Symboldauer Tsymb = Tguard + Tu in µs Schutzintervallzeit Tguard in µs Bit pro Übertragungsrahmen (ohne PR Symbol) in kBit Übertragungsrahmen/s Gesamtbruttorate in kBit/s Max. Echoverzögerung (1.2 * Schutzintervallzeit) in µs Ausbreitungswege in km FRF () in MHz () in MHz Modus 1 1536 1 96 1246 246 230,4 Modus 2 384 4 24 312 62 57,6 Modus 3 192 8 24 156 31 58,368 Modus 4 768 2 48 623 123 115,2 10 426 2 432 300 41 666 2 432 75 41 666 2 432 37,5 20 832 2 432 150 ca. 100 km (90 km) 340 375 ca. 25 km ca.12,5 km ca. 50 km (22,5) (11,25 km) (45 km) 1 380 2 760 1 500 3 000 Tabelle 1. 4 : Kennwerte zu den Sendemodi [2] 24 Einführung Im Modus 2 verkürzen sich die Schutzintervallzeiten auf ca. 60 µs. Diese kurzen Zeiten lassen nur sehr kleine Gleichwellennetze zu. Auf Grund des geringeren Aufwandes im Netzaufbau und der geringen Reichweite dieser Netze waren die sächsischen Testsender im L-Band aufgebaut. Eine solche Sendenetzlösung eignete sich für lokal stark begrenzte Sender wie die Senderkette von Radio Chemnitz. Block LI – Leipzig Mittenfrequenz 1466,656 LF – Dresden 1461,520 LE – Chemnitz 1459,808 Standort Wiederau Leipzig – Stahmeln Leipzig – Taucha Dresden – Wachwitz Wilsdruff Burkhardswalde Nossen Berbersdorf Hainichen Chemnitz – Totenstein Chemnitz – Reichenhain Hohenstein – Ernstthal Crimmitzschau Abstrahlcharakteristik Rund Sendeleistung 1 kW ERP Rund 1 kW ERP Rund Rund 1 kW ERP 1 kW ERP Tabelle 1. 5 : DAB-Sendestandorte und –frequenzen [12] Die ehemaligen Testsender für DAB-Rundfunk in Sachsen sind in der Tabelle 1.5 mit Ihren Senderstandorten und Antennencharakteristika aufgeführt und beschrieben. Mit der Einstellung des DAB-Testbetriebes (Dezember 1998) in Sachsen besitzt die vorangegangene Tabelle aber keine Gültigkeit mehr. D.h. der terrestrische Empfang ruht vorerst und Interessenten können Ihr DAB-Signal nur noch über den Satelliten Kopernikus empfangen. Die Übertragung erfolgt dann mit dem Modus 3 Für Satellitenübertragungen ist der Modus 3 im DAB-Standard vereinbart. Der große Unterträgerabstand von 8 kHz läßt nur eine Schutzintervalldauer von 31 µs zu. Es können nur kurze Echolaufzeiten wie beim direkten Satellitenempfang kompensiert werden. Die Modus 3-Sendesysteme finden Anwendung in der Rundfunkversorgung für große ländliche und/oder schwer erreichbare Gebiete wie Sibirien (Rußland), Wüstengebiete (Ägypten, New Mexico in den USA) oder Urlaubsgebiete in Übersee. Für höhere Frequenzbänder wurden die Kenndaten im Standard als Mode 4 vereinbart. Mit den Kennwerten liegt der Mode zwischen Mode 1 und 2. Dadurch ist der Aufbau kleinerer Sendenetze mit eingeschränkter Reichweite z. B. Antenne Sachsen oder Radio PSR möglich. 25 Einführung Peripherisender mit reduzierter Abstrahlung nach außen 60 km Zentralsender mit Rundstrahlcharakteristik 60 km Abbildung 1. 14 : Prinzipeller Aufbau eines Gleichwellennetzes [2] Die in der Abbildung 1.14 angegebenen Längenmaße variieren für jeden Sendemodus. 1.4 Empfänger Ein Empfänger für DAB besteht im Grundgerüst aus 5 Teilen, wie er in der nachfolgenden Abbildung 1.15 dargestellt ist. Hörfunkprogramm HF-Teil OFDM-Dekoder + Kanalwähler Fehlerkorrektur Tondekoder Datenschnittstelle zum Datenendgerät Empfängersteuerung Abbildung 1. 15 : Blockschaltbild des allgemeinen Empfängers [2] In dem HF-Teil werden die empfangenen Signale in einem Tuner auf eine notwendige Frequenz oder ins Basisband herunter gemischt. Abhängig vom OFDM-Demodulatoreingang wird am Ausgang der 26 Der Versuchsempfänger Baugruppe das Signal mit einem A/D-Wandler umgesetzt. Ein A/D-Wandler benötigt am Eingang einen Mindestpegel um das Signal sicher zu verarbeiten. Bei zu geringer Signalamplitude am Tunerausgang wird ein Verstärker zwischen Tuner und Wandler gesetzt. Der OFDM-Demodulator setzt die digitalen Abtastwerte mit durch einen Algorythmus der schnellen Fouriertransformation (FFT – Fast Fourier Transformation) in diskrete Frequenzwerte um. Ein der FFT-Baugruppe nachgeschalteter DQPSK-Demodulator restauriert aus den ihm vorliegenden Frequenzwerten die Teildatenströme. Nach der FFT setzt ein Deinterleaver die im Sender künstlich aufgebrochenen Verbindungen der Binärworte wieder zurück. Dazu werden zunächst die Verschachtelungen der Frequenz zurückgesetzt und danach die der Zeit. Am Deinterleaverausgang werden die Teildatenströme zusammengefaßt und einer Fehleranalyse unterzogen. In der Fehlerkorrektur für DAB-Systeme wird die Fehlerprüfung mit Hilfe eines ViterbiAlgorithmus durchgeführt. Dabei wird das aktuell vom Demodulator empfangene Codewort durch Vergleichen mit bekannten Codeworten auf Gültigkeit geprüft. Vorteil an der Fehlerkorrektur mit ViterbiDekodern ist deren leichte Implementierung in integrierten Schaltungen. Der MPEG-Decoder wertet die ihm übergebenen Daten an Hand des psychoakustischen Hörmodells aus. Um die Komponenten aufeinander abzustimmen wird oft ein Steuerbus eingesetzt. Bei verschiedenen Empfängersystemen werden nicht nur die Steuerbefehle über diesen gesandt, sondern auch Daten ausgelesen und auf dem Display des Empfängers wiedergegeben. 27 Der Versuchsempfänger 2 Der Versuchsempfä nger Während das vorangegangene Kapitel eine Einführung zum Thema DAB liefert, wird in den nachfolgenden Abschnitten das gestellt Tehema „Aufbau eines Versuchsempfängers“ abgehandelt. Zur Untermauerung verschiedener Überlegungen und Funktionsweisen sind die Kapitel über PC-Bussystme und den Aufbau des DAB-Multiplexes aus verschiedenen Literaturquelle beigefügt. Als Motivation für das Thema diente das Interesse an einem Lehrmittel zum digitalen Rundfunk für die Ingenieurausbildung in der Nachrichtentechnik und Medientechnik. Zudem soll dieses Gerät die Analyse der DAB-Daten uns -Signale in der Forschung und Entwicklung ermöglichen. An das Versuchsboard sind die folgenden Forderungen zu stellen: • Flexibilität im Einsatz und in der Datenauswertung • Nutzung eines handelsüblichen Computers • Betrieb unter handelsüblichen und aktuellen Betriebssystemen • Transparenz in der Darstellung der Daten • Aufbau, einfach mit wenig zusätzlichen Hardwarekomponenten (z. B. PC-Einsteckkarten) • Software für die Steuerung und Analyse der Daten Im Abschnitt „Empfängerkonzept“ wird der Empfängeraufbau des Versuchsboards mit Philips-Komponenten erläutert. In den nachfolgend beschriebenen Realisierungsvarianten wird immer wieder auf diesen Abschnitt verwiesen, da die Empfänger in allen Lösungsvarianten des Versuchsboards gleich aufgebaut sind. Der volle Funktionsumfang der eingesetzten Schaltkreise SAA3500H und SAA2502 ist in den Schaltkreisunterlagen in den Anlagen nachzulesen. Unter dem Kapitel Realisierung werden verschiedene Lösungsansätze und –wege zum Bau des Boards miteinander verglichen. Die Beschreibung der einzelnen Komponenten des Versuchsboards werden in den entsprechenden Abschnitten wie Tuner, Schnittstellenlogik, Steuerungslogik oder Programme behandelt. 28 Der Versuchsempfänger 2.1 Empfängerkonzept Von der Telekom wurde der L-Band-Sendebetrieb im DAB mit Jahresende 1998 im Bundesland Sachsen eingestellt. Seit diesem Zeitpunkt ist nur der Empfang über den Satelliten Kopernikus mit einem 11 GHz-Transpondersignal möglich. Da dieses ETI-Signal (ETI - Ensemble Transport Interface, standardisiert nach ETS 300 799) Multiplexeigenschaften besitzt, wird ein spezieller Konverter notwendig. Als erstes setzt der Konverter das Signal auf eine "Sat-ZF" zwischen 0,9 und 2 GHz um und danach müssen mit einer speziellen Schaltung die benötigten Signale herausgefiltert werden. Darum wird das Versuchsboard zunächst mit einem Tuner ausgestattet, dessen Empfangsbereich von 1 450 MHz bis ca. 2 000 MHz reicht. Die Anbindung des Tuners an das Versuchsboard wird über ein Steckersystem gelöst. Dadurch kann das Board an die verschiedenen Sendemodi mit einem entsprechenden Tuner angepaßt werden. HF-Teil OFDM Demodulator Fehlerkorrektur MPEG Decoder Audio I²C Data Channel Decoder System Controller Abbildung 2.1 : Empfängerstruktur mit Philips IC-Satz (Channel Decoder SAA3500H und MPEG Decoder SAA2502) [28] Die Firma Philips ist mit einem IC-Satz am Markt, der aus einem Kanaldekoder (SAA3500H bzw. SAA3501) und einem Tondekoder des Typs SAA2502 (Å Abbildung 2.1) besteht. Als Front End kann jeder Tuner dienen, welcher am Eingang den erforderlichen Frequenzbereich der entsprechenden Übertragungsmodi (Å Abschnitt „Übertragungsstrecke“) erfassen kann. Im vorliegenden Fall ist eine Signalanpassung (spezieller Konverter) notwendig, um ein Modus 3-Signal mit einem L-Band-Tuner zu empfangen. Am Ausgang des Tuners sollte wegen der Eingangsparameter des Kanaldekoders SAA3500H eine Zwischenfrequenz (ZF) von maximal 38,912 MHz mit einer Signalamplitude von 1,6 Vp-p entstehen. Der Bereich für die am SAA3500H zulässige ZF läßt sich nach Gleichung 2.1 bestimmen. Mit dem Multiplikator M kann im Kanaldekoder-IC der erforderliche Frequenzwert programmiert werden. 29 Der Versuchsempfänger Gleichung 2.1 : ZF = 2048 ⋅ M ⋅ kHz M= 1,3,5,...,19 [15] Mit dem Philips Equipment ist der Empfänger in der folgenden Grobstruktur aufzubauen: Gegenüber der prinzipiellen Empfängerstruktur im Abschnitt Empfänger hat Philips die Fehlerkorrektur mit dem OFDM-Demodulator zusammengefaßt. Für ein einfaches Steuer- oder Datenendgerät zur alleinigen Auswertung von Bild- und Textdaten würde eine Empfängerbaugruppe bestehend aus Tuner und Kanaldekoder ausreichen. Die I²C-BusSteuerung wird dann von einer Hauptkomponente übernommen. Bei Datenendgeräten sorgt der Prozessor der Auswertelogik für die Einstellung des Empfängers. Analog ist der Betrieb des Empfängers in Steuersystemen mit dessen Steuerprozessor möglich. Kanaldekoder Der Kanaldekoder SAA3500H bzw. SAA3501 (Å Anlage A.2 und A.3) der Fa. Philips ist in der Lage, ein vom Tuner geliefertes ZF-Signal (max. 38,912 MHz) direkt und intern zu verarbeiten. Im Gegensatz zu seinem Vorgänger (SAA3500) wird dies durch einen integrierten A/D-Wandler möglich. Dieser 8 Bit breite Wandler gibt die umgesetzten Daten an einen digitalen Mischer. In diesem Mixer folgt eine Herabsetzung der Daten aus der Zwischenfrequenzlage ins Basisband. Eine nachfolgende schnelle Fourier-Transformation rechnet die vorliegenden Abtastwerte in diskrete Frequenzwerte um. Von dem System für die Fourier-Transformation wird das Signal für die automatische Frequenzkorrektur (AFC) abgeleitet. Das AFC-Signal ist für die Steuerung der Oszillatoren in den Mischstufen notwendig. Auf diese Weise werden Frequenzverschiebungen des Basisbandsignals korrigiert. Für die Rückgewinnung der faltungskodierten Signale werden Viterbi-Decoder eingesetzt. Vorteilhaft ist deren leichte Implementierung in integrierte Schaltungssysteme. Viterbi-Decoder bestimmen die Empfangsfolge durch einen Vergleich mit einem gültigen Symbol, welches der tatsächlichen Sendefolge am nächsten kommt. Anschließend werden die ermittelten Symbole einem Tondekoder zugeführt. In speziellen Fällen kann es sich auch um ein Datenendgerät handeln. Tondekoder Der Tondekoder SAA2502 (Å Anlage A.4) ermöglicht eine Rückgewinnung von dem in einem MPEGEncoder (im Sender) quellenkodierten Signal. Um die Tondaten für das menschliche Ohr zu restaurieren, werden die notwendigen Informationen hinzugefügt. In einigen Fällen befinden sich am Ausgang des MPEG-Decoders D/A-Wandler, um das analoge Signal direkt auszugeben. Bei dem Philips Dekoder SAA2502 ist ein externer D/A-Konverter notwendig. Vozugsweise wird ein IC vom Typ TDA1310 30 Der Versuchsempfänger eingesetzt. Dessen Eigenschaft ist die Umsetzung des vom SAA2502 kommenden I²S-Signals in ein Analogsignal. 2.2 Realisierung In den nachfolgenden Kapiteln wird der Aufbau des Versuchsboards ausführlich beschrieben. Es werden, sofern möglich, verschiedene Lösungswege dargestellt und deren Vor- und Nachteile analysiert. Generell beschränkt sich der Unterschied der einzelnen Lösungen auf die Verarbeitung und Auswertung der Daten. Gemeinsame Eigenschaften aller Varianten sind der gleiche Empfängeraufbau (mit HF-Teil, Kanaldekoder, Tondekoder und ein Audioausgang) und die Vorbereitung für einen Onboardcontroller vom Typ 80C51XAG3. Durch den Mikrocontroller (µC) ist der autonome Betrieb der Versuchboardvarianten ohne einen angedockten PC möglich. Zudem können zukünftige Erweiterungen am Board wie Anzeigen oder Steuerausgänge u.s.w. durch den 80C51-Controller parallel zum PC über den vorhandenen I²C-Bus gesteuert werden. Jede der folgenden Lösungsvarianten steuert alle für den Betrieb des Empfängers wichtigen Teilkomponenten mit einem I²C-Bus. Die Steuerprozessoren (µC und PC) emulieren das Zeitregime dieses 3Drahtbusses mit einem Programm. Der Ersatz des Emulationsprogramms ist durch einen µC mit I²CInterface (z. B. 80CL410 von Philips) und/oder einen I²C-Bus Controller PCD8584 denkbar. Aber der Nachteil des PCD8584 ist die zusätzliche Hardware, da eine Daten vorverarbeitende Schaltung zwischen einem Standardprozessor und dem PCD8584 notwendig ist. Anders ist es bei dem µC mit I²CInterface. Dieser Schaltkreis kann den schon vorhandenen 80C51XA ersetzen. Sein Nachteil ist die mangelnde Rechengeschwindigkeit durch seine 8-Bit-Technik gegenüber dem 16-Bit Prozessor des 80C51XAG3. Vom Kanaldekoder der Fa. Philips werden 2 Schnittstellen (Å Abbildung 2.2) für die Datenausgabe genutzt. Bei kommerziellen DAB-Empfängern wird die Schnittstelle mit der Datenrate von 384 000 Bit/s für den Übertragungskanal der Tondaten und (X)PAD eingesetzt. Interessant für die Nutzung ist die niedrige Datenrate und die formatierten Daten (Standard nach DAB3). Verglichen mit den Anforderungen an den L-Bandempfänger für dieses Projekt gehen an dieser Stelle zum Teil wichtige Informationen verloren. So ist der Umfang der Informationen auf einen Teilkanal begrenzt. Bei einem Einsatz als Lehrmittel bleiben den Interessenten einige Informationen verschlossen. Die Zusammensetzung des Datenstromes aus verschiedenen Teildatenströmen und die eingesetzte gleichmäßige bzw. un- 31 Der Versuchsempfänger gleichmäßige Fehlersicherung der Daten sind an dieser Schnittstelle nicht erkennbar. Alternativ zur eben beschriebenen DAB3-Schnittstelle bietet Philips noch ein mit Simple Full Capacity Output (SFCO) bezeichnetes Interface an. Positiv ist das Vorhandensein aller zu einem DAB-Multiplex gehörenden Daten im Gegensatz zum DAB3-Interface. Ungünstig ist die fehlende Formatierung der anliegenden Daten. Als eine einfache Formatierungshilfe empfiehlt Philips die Nutzung des CFIC-Signals. CIFC ist ein normalerweise für den µC bestimmtes Signal. Es trennt in der Form eines Fensters die Daten des Fast Information Channel (FIC) vom Main Service Channel (MSC). Desweiteren ist die Datenrate von fast 2,4 MBit/s für die Verarbeitung mit einfachen Mitteln (normaler PC-Ausstattung) recht groß. Nachfolgend werden 3 mögliche Varianten für eine Datenerfassung und –auswertung zum DAB3-Interface gegeben. Variante 4 nutzt zur Datenerfassung den SFCO. Audiosignal Kanaldekoder SAA3500H HF - Teil Tondekoder SAA2502 Serieller Ausgang Datenrate 384 000 Bit/s nach DAB3-Standard 80C51 XA G3 mit EEPROM Simple Full Capacity Output Bursttakt 3072 kHz I²C-Bus RS 232 Steuerrechner Abbildung 2.2 : Empfänger mit seriellen Datenausgängen Die Abbildung 2.2 stellt eine Lösung vor, bei der die Daten ohne Weiterverarbeitung einem Computer zur Auswertung zugeführt werden. Mit dieser Lösung entsteht ein Versuchsboard mit minimalem Hardware-Aufwand. Ein Programm im Steuerrechner wertet die Daten Online aus. Datenraten von 384 000 Bit/s (1 152 Byte in 24 ms je DAB-Rahmen) oder vom Simple Full Capacity Output (bis zu 2,4 MBit/s) mit einem Bursttakt von 3072 kHz sind zu groß für die normalen PC-Schnittstellen. Abhilfe schaffen PC-Einsteckkarten. Diese können bei der Verwendung entsprechender Bussysteme für diese Anwendungen zugeschnitten werden. Å Im Abschnitt Bussysteme werden die PC-Schnittstellen wie ISA, VESA, PCI und I²C oder I²S kurz beschrieben und für einen solchen Einsatz miteinander verglichen. 32 Der Versuchsempfänger Das Fazit ist eine mögliche Einsparung der Hardware auf dem Versuchsboard, die durch eventuell notwendige zusätzliche Hardware im PC ersetzt werden muß. Dementsprechend sind die Anforderungen an das Programm zur Auswertung sehr hoch, denn es handelt sich um eine zeitkritische Anwendung. Durch diese Art der Datenerfassung wird eine Analyse von den DAB-Daten in Echtzeit notwendig und kein normaler PC ist ohne zusätzliche Komponenten dazu in der Lage. Alle einzulesenden Daten müssen auf einem Datenträger abgelegt werden. Eine Analyse der Daten kann nur von den notwendigerweise gespeicherten Daten im Offline-Betrieb erfolgen. Mit einem Schieberegisterbaustein wird der serielle Datenausgang mit 384 000 Bit/s in einen parallelen Datenstrom von 48 000 Byte/s umgewandelt. Werden nach der Serien-/Parallelwandlung die Daten gleich in 8 Bit breiter Form der parallelen Schnittstelle am PC zugeführt, muß der Parallelport (z. B. Druckerport) mit einer Taktrate von fast 50 kHz arbeiten. Dem verarbeitenden Programm stehen exakt 20,833 µs für das Lesen der Daten am Port und dem Auswerten bzw. Speichern auf die Festplatte zur Verfügung. 20,83 µs sind für eine DOS-Applikation (DOS - Disc Operating System) eine sehr kurze Zeitspanne und eine Erzeugung der Applikation unter Windows 95 und dessen Nachfolger ist ausgeschlossen. Zusätzlich wird noch ein weiterer Druckerport für die I²C-Bus Steuerung des Versuchsboards im PC notwendig. Um dem Umstand kurzer Verarbeitungszeit und der Nutzung zweier Druckerports zu begegnen, ist der Einsatz einer 32 Bit-Parallel-I/O-Karte in Form einer PC-Einsteckkarte für ISA-Bussysteme denkbar (Å Abbildung 2.3). Eine Zusammenfassung des Datenports und der I²C-Steuerung reduziert das eingesetzte PC-Equipment auf eine Einsteckkarte. Werden die parallelen Daten auf 24 Bit verbreitert, verbleiben weitere 8 Bit für den I²C-Bus und kommende Erweiterungen zur freien Nutzung. Die 24 Bit Datenbreite werden durch drei in Reihe geschaltete 8 Bit Schieberegister erzeugt. Durch die implementierten Latches in den Schieberegistern (74HC595) können die Daten unabhängig von den Schiebezyklen ausgelesen werden. Ein Speicher von 3 Byte verschafft dem Programm für die Datenverarbeitung einen Zeitraum von 62,5 µs. Wie in der vorhergehenden Variante ist nur eine Datenanalyse von der Festplatte im Offline-Betrieb möglich. In Bezug auf die real gesendeten DAB-Daten tritt dadurch eine Verzögerung von 62,5 µs ein. Ein Zwischenspeichern in einer Applikation unter DOS als Betriebssystem ist im Gegensatz zu Windows 95 möglich. Die direkte Analyse und Darstellung der Daten wie PAD kann aber wegen der Kürze der Zeit noch nicht erfolgen. 33 Der Versuchsempfänger Audiosignal Kanaldekoder SAA3500H HF - Teil 80C51 XA G3 mit EEPROM Tondekoder SAA2502 serieller Ausgang Datenrate 384 000 Bit/s nach DAB3 Standard 24 BitSchieberegister PIO-32 Bit-I/O PC-Einsteckkarte I²C-Bus RS 232 Steuerrechner Abbildung 2.3 : Erweiterung der Lösung aus Abbildung 2.2 mit einem 24 Bit-Schieberegister als Zwischenspeicher für 3 Byte DAB-Daten In Abbildung 2.4 wird der 24 Bit-Zwischenspeicher SZw durch zwei Speicherschaltkreise ersetzt. Im Beispiel 2.1 wird das Speichervolumen für DAB-Rahmenanzahl berechnet, wenn 1 MBit Speicherschaltkreis (128 kByte zu je 8 Bit organisiert) statt dem 24 Bit Zwischenspeicher eingesetzt wird. Im Gegensatz zur vorigen Lösung werden die zwei Speicher im Wechsel ausgelesen. Bei Datenraten SRahmen von 48 000 Byte/s des DAB-Signals können maximal 2 Sekunden an Daten abgelegt werden. Beispiel 2.1: 128 kByte entsprechen 131 072 Byte! Gleichung 2.2 : TRahmen = S Zw ⋅ Byte Byte S Rahmen ⋅ s Theoretisch ist eine Zeitdauer TRahmen von 2,731 Sekunden in einem 1 MBit Speicher abzulegen. Durch diesen Speicher kann der Datenkanal wieder auf 8 Bit reduziert werden und für den Betrieb ist eine 16 Bit I/O-Karte (ISA-Bus) ausreichend. Davon werden 8 Bit für die DAB-Daten verwendet. Die restlichen Bits werden für den I²C-Bus benötigt und können wieder für zusätzliche Einstellaufgaben genutzt werden. 34 Der Versuchsempfänger Kanaldekoder SAA3500H HF - Teil Audiosignal Tondekoder SAA2502 serieller Ausgang Datenrate 384 000 Bit/s nach DAB3 Standard 80C51 XA G3 mit EEPROM Serien-/ Parallelwandlung I²C RS 232 8 Steuerrechner Zwischenspeicher 2 x 1 MBit SRAM 16 Bit I/O PC Einsteckkarte Abbildung 2.4 : DAB3-Interface mit einem 1 MBit-Zwischenspeicher Mit der maximal nutzbaren Speicherzeit von 2 Sekunden kann ein Programm ungestört die 96 000 Byte aus dem Speicher lesen und auf der Festplatte speichern. Der Zeitrahmen ist ausreichend lang um Auswertungsprogramme für jedes Betriebssystem zu entwickeln. Mit der teilweisen Analyse der Daten kann schon während des Betriebs des Empfängers begonnen werden. Eine Darstellung der Senderkennung oder Programmart (wie Pop, Klassik oder Nachrichten) ist möglich. Durch Windows und Unix bzw. Linux ist die Möglichkeit zum Einsatz einer Multiprozeßanwendung gegeben. Nachteilig an dieser Lösung ist die Verzögerung der Daten um bis zu 2 Sekunden. Die Bindung und Aktualität zwischen den Daten im Speicher und den einlaufenden Empfangsdaten geht verloren. Einschränkungen dieser Art sind aber für den Einsatz als Lehrmittel unerheblich und stören erst bei echtzeitnahen Analysen. Eine Möglichkeit den vollen Informationsgehalt eines DAB-Rahmens zu erhalten gibt die letzte Variante wieder. Durch das Auslesen der unformatierten Daten am SFCO kann eine umfangreiche Analyse des DAB-Rahmens mit einem Programm erfolgen. In der Abbildung 2.5 wird eine mögliche Schaltungsvariante zur Datenerfassung und -analyse der SFCO-Daten vorgeschlagen. 35 Der Versuchsempfänger Audiosignal Tondekoder SAA2502 serieller Ausgang des Simple Full Capacity Output mit Datenraten bis 2,3 MBit Kanaldekoder SAA3500H HF - Teil 80C51 XA G3 mit EEPROM I²C RS 232 Serien-/ParallelWandlung é é é 16 Bit Datenbreite Controller FIC-Signal Receiver Data Error Flag (REF) Steuerrechner 32 Bit I/O PC Einsteckkarte 16 Abbildung 2.5 : Datenerfassung mit dem SFCO-Ausgang Wie in den Lösungen 2 und 3 werden hier die seriellen Daten in parallele umgesetzt. Am Ausgang der Umsetzerschaltung stellt die oben schon mehrmals erwähnte 32 Bit-I/O-Karte die Verbindung zwischen PC und dem Empfängerboard her. Die Beschreibungen der Umsetzerschaltungen sind in dem Abschnitt „Datenlogger“ nachzulesen. 2.2.1 Tuner Für die HF-Baugruppe des Versuchsboards werden die Ein- und Ausgangskennwerte durch den Standard ETS 300 401 und den nachgeschalteten SAA3500H vorgegeben. Anforderungen für Tunerbaugruppe: • die Eingangsbandbreite des Tuners muß den DAB-Sendemodi entsprechen • empfangene Signalpegeluntergrenze (Eingangsempfindlichkeit) von -65 dBm und weniger • Tunerausgangspegel von 1,6 Vp-p (Parameter des Kanaldekodereingangs) 36 Der Versuchsempfänger Der Wert von –65 dBm Signalpegel ist keine standardisierte Festlegung, sondern ist abhängig von den Pegeln der Empfangssysteme (Antenne und Signalverstärker) und von der lokalen Lage sowie den Witterungsverhältnissen. Im Verlauf der Arbeit zum vorliegenden Projekt wurde in Sachsen der Testbetrieb im L-Band eingestellt. Seit dem Zeitpunkt ist das DAB-Signal nur noch über den Satelliten Kopernikus zu empfangen. Somit ist der im Vorfeld beschaffte L-Bandtuner nicht mehr unmittelbar einzusetzen. Um den Tuner dennoch zu nutzen ist eine Signalumsetzung vom Transponder in das L-Band mit einem separaten Konverter notwendig. Dieser Signalumsetzer geht über den Rahmen der vorliegenden Arbeit hinaus. Für das DAB-System im L-Band liefert die Industrie derzeitig noch keinen Tuner, der den vorangegangenen Kennwerten gerecht wird. Die Tuneranpassung an die eingangs gestellten Anforderungen ist in verschiedenen Varianten möglich. Nachfolgend wird der Aufbau einer Tunerkaskade und der Umbau eines Tuners beschrieben. Tunerkaskade Die frequenzmäßige Anpassung des Sendesignals wird hier in zwei Schritten durchgeführt. Das Antennensignal wird einem digital gesteuerten Satellitentuner zugeführt. Dieser Tunertyp hat im allgemeinen einen Eingangsfrequenzbereich von 900 bis 2 100 MHz. Beim Kaskadenaufbau (Å Abbildung 2.6) liegt das analog übertragene DAB-Gesamtsignal mit einer ZF von 479,5 MHz am Ausgang des ersten Tuners. An diesen Ausgang wird ein digital gesteuerter Tuner für terrestrischen Fernsehempfang geschaltet. Terrestrische Tuner arbeiten mit Eingangsfrequenzen um 480 MHz und erzeugen eine Zwischenfrequenz von 38,9 MHz an ihrem Ausgang. Satellitentuner mit digitaler Steuerung z. B. SF1218 B terrestrischer TV-Tuner digitaler Steuerung z. B. CD 1516 PC Tunersteuerung (z. B. I²C-Bus) Signalausgang mit einer ZF von 38,9 MHz On-Board Controller Abbildung 2.6 : Beispiel einer Kaskade mit Philips-Tunern Nachteil dieses Kaskadenaufbaus ist der hohe Stromverbrauch von 200 mA je Tunerstufe. 37 Der Versuchsempfänger Å Satellitentuner, die schon ein demoduliertes I/Q-Signal mit 479,5 MHz als ZF-Signal liefern, sind für Anwendungen dieser Art nicht geeignet. Tunerumbau Eine bessere Variante ist der Tunerumbau. Als Ausgangskomponente dient ein Satellitentuner vom Typ SF1218B. Dieser Tuner liefert am Ausgang das empfangene Signal auf einer ZF von 479,5 MHz. Sein Vorteil gegenüber verschiedenen anderen Satellitentunern (z. B. SD1228LA) die in Satellitenreceivern und DSR-Empfängern eingesetzt werden, ist die fehlende I/Q-Demodulation am Tunerausgang. BF1 V1 BF2 Mi V2 BF3 SAW Signalabgriff RF LNC ∼ Osc IC2 IC1 AFC 10 11 Key Automatic Gain Control Serial Data 9 Address Select Serial Clock Anschlüsse Demodulator + AFC Processor Tuning and Control Abstimmspg. 12 13 V3 14 Abbildung 2.7 : Blockschaltbild des Tunertyps SF1218 B im Gesamtüberblick [13] Das Blockschaltbild in Abbildung 2.7 stellt den SF1218B in der vom Hersteller gelieferten Grundschaltung dar. Die Parameter des Lieferobjekts sind: • Eingangsfrequenz: 900 bis 2150 MHz • Ausgangsfrequenz: 479.5 MHz • Bandbreite des Ausgangssignals: fest 27 MHz • Art der Steuerung: analog und durch I²C-Bus • Einsatzgebiet: D-/D2DMAC, PAL, SECAM und NTSC Um den Einsatz in einem DAB-Empfänger zu ermöglichen, ist eine Modifizierung auf die folgenden Kennwerte nötig: 38 Der Versuchsempfänger • Eingangsfrequenz: 900 bis 2150 MHz • Ausgangsfrequenz: 38,912 MHz • Bandbreite des Ausgangssignals: fest 1,536 MHz • Art der Steuerung: analog und durch I²C-Bus Ein großer Teil Signalverarbeitung wird durch drei Schaltkreise bewerkstelligt. In der Anlage ist zu den wichtigen ICs (TDA8010 und TSA5511) eine Beschreibung zu finden. Die dort abgebildeten Schaltungsapplikationen finden im Tuner fast unverändert Anwendung. Zur Verdeutlichung der Umbauten sind die Baugruppen hervorgehoben dargestellt. Dabei richtet sich das Hauptaugenmerk auf die Komponenten Oszillator (Osc), Mischer (Mi) und Tuning Control (IC1) für den zu verändernden Oszillatorkreis und das SAW-Filter am Ausgang. Durch Austausch der beiden Varicaps BB833 (Å IC-Pins OSC1 und OSC2 der Abbildung 2.8) und einen Umbau der beiden Schwingkreise um die Spulen L1 und L2 (Å IC-Pins MOUT1 und MOUT2 Abbildung 2.8) wird eine Mischung auf eine ZF von 38,912 MHz ermöglicht. Eine digitale Abstimmung des Oszillators wird mit Hilfe eines 15 Bit breiten Datenwortes (über den I²C-Bus) durchgeführt. Oszillator- (fOSC) und Eingangssignalfrequenz (fHF) sind durch Gleichung 2.3 miteinander verknüpft. Das Codewort Cw setzt sich nach Gleichung 2.4 zusammen und läßt sich aus der Beschaltung des TDA5511 ableiten. Die Oszillatorfrequenz fosc (Pin RFIN1 bzw. RFIN2) wird durch einen konstanten 1/8Teiler heruntergeteilt. Ein Vergleich zwischen dem herabgesetzten Eingangs- und dem Referenzsignal (7,8125 kHz) ist nur mit Hilfe des einstellbaren 15 Bit-Teilers möglich. Abbildung 2.8 : Innenaufbau des TDA8010M [24] 39 Der Versuchsempfänger fosc = fHF + fZF Gleichung 2.3 : Gleichung 2.4 : Cw = fosc = 214 ⋅ n14 + 213 ⋅ n13 + 212 ⋅ n12 + 211 ⋅ n11 + 210 ⋅ n10 + 29 ⋅ n9 + 28 ⋅ n8 + 8 ⋅ 7,8125kHz [13] [13] 27 ⋅ n7 + 26 ⋅ n6 + 25 ⋅ n5 + 24 ⋅ n4 + 23 ⋅ n3 + 22 ⋅ n2 + 21 ⋅ n1 + 20 ⋅ n0 Es ist zu erkennen, daß der Schaltkreis TDA8010 M den Mischer Mi, Oszillator Osc und den nachfolgenden Signalverstärker V2 aus Abbildung 2.7 in sich vereint. Der Vollständigkeit wegen folgen Informationen zu den Punkten Tunerabstimmung und Signalmischung, welche das Verstehen der Funktionsweise erleichtern: Abbildung 2.9 : Blockschaltbild des TSA5511 [25] Der Schaltkreis TSA5511 (Å Abbildung 2.9 und Anlage A.12) übernimmt die Steuerung und Abstimmung. Ein Teil des ICs arbeitet als PLL-Regelung (PLL = Phase Lock Loop - Phasenregelschleife) für den Oszillatorkreis. Durch die in der Tunerbeschreibung aufgeführten Befehle für die Umschaltung der Steuerungsart (analog/digital) und die Frequenzabstimmung wird hier mit dem eingebauten I²C-BusInterface Einfluß auf die Teilerverhältnisse der PLL-Regelschleife Einfluß genommen. Die 15 BitBinärworte werden im 15 Bit Latch des TSA 5511 gespeichert und setzen von dort über den programmierbaren 15 Bit-Teiler die empfangene HF (Eingangssignal des Tuners) herunter auf ca. 8 kHz. Anschließend vergleicht ein digitaler Phasenkomparator die Phasenlage des Empfangssignals mit einer Referenzphasenlage vom tunerinternen 4 MHz-Oszillator. Das resultierende PD-Signal (PD = Phase 40 Der Versuchsempfänger Detect) steuert einen zwischen der Abstimmspannung VTuning und Masse liegenden Transistor. Parallel zum Transistor liegt ein 2,2 µF Kondensator (Å Abbildung 2.8). Dieser speichert die über einen Gesamtwiderstand von 34 kΩ angekoppelte 30 V-Abstimmspannung. Ein ständiger Vergleich der TSA5511-Eingangsfrequenz mit der internen Referenz läßt den Transistor pulsieren und beeinflußt damit die Spannungshöhe vor den Kapazitätsdioden. Damit wird die Abstimmspannung auf digitalem Weg beeinflußt. Für eine analoge Abstimmung kann mit einem Befehl das Tuning durch die Regelschleife abgeschaltet werden. Eine Kurbeschreibung der Demodulatorfunktionsweise entfällt an dieser Stelle, da er für den hier beschriebenen Einsatz uninteressant ist. Das neue SAW-Filter mit der Bezeichnung X6922M wird von der Firma Siemens Matsushita Components (Å vollständige Beschreibung in der Anlage A.15) hergestellt. Bei einer Betriebsfrequenz von 38,912 MHz besitzt dieses Filter eine 3 dB-Bandbreite von 1,5 MHz. Sehr gut ist in der Abbildung 2.10 der Dämpfungsverlauf für die benachbarten Frequenzen zu erkennen. Abbildung 2.10 : Durchlaßkurve des Oberflächenwellenfilters X6922M der Fa. Siemens Matsushita Components [29] In der Abbildung 2.11 ist die zulässige Signalbandbreite von 1,5 MHz an der 3 dB-Bandgrenze zu erkennen. Damit ist dieses Filter ausdrücklich für DAB-Anwendungen entwickelt und zugeschnitten 41 Der Versuchsempfänger worden. Nach erfolgter Filterung wird das Signal über ein halbflexibles Kabel direkt aus dem Tuner herausgeführt. Mit dem angeschlossenen Signalverstärker wird der Pegel des Ausgangssignals auf die vom SAA3500H benötigte Eingangsspannung von 1,6 Vp-p angehoben. Abbildung 2.11 : Ausschnitt aus der Durchlaßkennlinie von Abbildung 2.10 [29] 2.2.2 Datenlogger In den nachfolgenden Abschnitten werden die verschiedenen Lösungsmöglichkeiten der Datenerfassungssysteme für die Auswertung des DAB-3 Interfaces und des SFCO-Ausgangs beschrieben. In ihrem Grundprinzip sind die Schaltungen für beide Schnittstellenarten verwendbar. Durch die erheblichen Unterschiede in den Datenraten entstehen große Unterschiede im Speicherplatzbedarf, in der Schnelligkeit und in der daraus korrespondierenden Schaltungsauslegung. 2.2.2.1 Teilkanalschnittstelle Bei der ersten Lösung im Kapitel Realisierung sollte ein direkter Datentransfer mit 384 000 Bit/s zwischen einem Teilkanal des Kanaldekoders und einer seriellen PC-Schnittstelle vorgenommen werden. Wie in diesem Abschnitt schon erwähnt, ist diese Lösung ungeeignet. Die serielle Schnittstelle (Bezeichnung als COM1 bis 4) eines Serien-PCs verarbeitet Datenraten von maximal 115 000 Bit/s und besitzt damit einen unzureichenden Datendurchsatz. Der Einsatz eines schnelleren seriellen Ports in Form einer Einsteckkarte wäre notwendig. Zur I²C-Bussteuerung wird zusätzlich eine weitere Schnitt- 42 Der Versuchsempfänger stelle (vorzugsweise ein paralleles Interface) gebraucht. Das bedeutet eine umfangreiche Nutzung von knappen Systemressourcen. Desweiteren gibt es für den PC kein Betriebssystem, mit dem sich Daten in 2,604 µs einlesen und auf die Festplatte speichern lassen. Ein Zwischenspeicher mit einer Datenvorverarbeitung ist unumgänglich. Lösungen mit einer Vorverarbeitung der Daten bieten folgende Vorteile: • Formatierung der Daten auf eine für die Auswertung günstige Datenwortbreite, meist in der Größe von einem Byte oder einem Vielfachen davon. • Größere Datenwortbreiten oder Speicher bedeuten längere Pausen zwischen den Downloadzyklen vom Versuchsboard zum Rechner. Diese Pausenzeiten sind unbedingt notwendig für die weitere und sichere Verarbeitung. SDA 8 8 BitSchieberegister 16 8 BitSchieberegister 8 BitSchieberegister 24 SCL Steuerlogik 24 Bit Binärwortbreite zur PIO 32-Einsteckkarte SDV Abbildung 2.12 : Konzept des 24 Bit-Schieberegisters Abbildung 2.12 zeigt das Blockschaltbild des im Abschnitt Realisierung erwähnten 24 BitSchieberegisters. Erkennbar ist die Kaskadierung von drei Schieberegistern (Typ 74HC595, Å Beschreibung in der Anlage A.14) zu je 8 Bit. Ausgestattet sind diese Schieberegister mit einem seriellen Ein- und Ausgang (Überlauf) und acht parallelen Ausgängen (inklusive Latch). Letztere ermöglichen die Serien-/Parallel-Wandlung und Zwischenspeicherung der Daten. Mit Hilfe der Zwischenspeicherung können weiterhin Daten eingelesen werden ohne das Auslesen von den Registern zu behindern. Durch die seriellen Ein- und Ausgänge wird das Signal SDA (SDA = Serial Data - Datenkanal) an das folgende Schieberegister weitergeleitet. Die jeweiligen acht parallelen Datenausgänge werden zu einem Datenbus zusammengefaßt und der 32 Bit I/O-Karte zugeführt. Aus den Signalen SCL (SCL = Serial Clock - Bustakt) und SDV (SDV = Serial Data Validate - Datengültigkeit) leitet die Steuerlogik 43 Der Versuchsempfänger das Taktsignal für die Schieberegister, das Ladesignal für Latches und ein Freigabesignal der Parallelausgänge ab. Diese Art der Vorverarbeitung stellt Daten in Abständen von 62,5 µs zur Verfügung. 62,5 µs sind eine hinreichend große Zeitdauer, um diese Daten mit einem Programm unter DOS vom Versuchsboard einzulesen und auf der Festplatte zu speichern. Der Einsatz von entsprechenden Programmen für das Betriebssystem Windows 95 hierfür ist undenkbar. Für eine teilweise Auswertung der Daten wie Anzeige des Senders und weiterer programmbegleitender Daten reicht diese Zeit allerdings unter DOS auch nicht aus. Die zeitliche Bindung der aktuellen und zu verarbeitenden Daten ist enger und damit aktueller als in der nachfolgenden Variante (Å Abbildung 2.13). Werden die Zwischenspeicher von 3 Byte auf 128 kByte vergrößert (Å Abbildung 2.13), so tritt eine zeitliche Entkopplung auf ca. 2 Sekunden zwischen Versuchsboard und PC ein. Eine Datenmenge von ca. 83 DAB-Rahmen (insgesamt 96 000 Byte) kann als Daten für den nachgeschalteten PC im Zwischenspeicher vorgehalten werden. Gegenüber den vorangegangenen Lösungen ist die geringere Aktualität für bestimmte Aufgaben etwas störend (z.B. ist die Verwendung des vom DAB gelieferten Zeitsignals). Nachteilig ist zudem an diesen Lösungen die notwendige Überdimensionierung des Speichers (beispielsweise zwei mal ein Datenvolumen für 2 Sekunden). Aber dadurch ist das parallele Ein- und Auslesen zur selben Zeit möglich und sicher. SDA Seriell-/ParallelWandler 8 SCL 1 MBit Speicher (max. 2 Sekunden) 8 Signalverknüpfung mit OR-Gliedern Steuerlogik SDV zur 16 Bit I/OKarte im PC 8 Seriell-/ParallelWandler 8 1 MBit Speicher (max. 2 Sekunden) 8 Abbildung 2.13 : Variante mit 1 MBit-Speichern Vorteil dieser Lösung ist eine längere Zeitspanne zur Verarbeitung und Auswertung der DAB-Rahmen durch den PC. Sogar das langsame Windows 95 ist zum Umgang mit dem Empfänger in der Lage. Multitaskingbetriebssysteme (wie Windows 95 und NT) verteilen ihre Rechenzeiten an die Applikationen entsprechend einer Prioritätenliste. Je nach den laufenden Programmen verändert sich die Re- 44 Der Versuchsempfänger chenzeitverteilung zwischen den Anwendungen. Schwankende Rechen- und Pausenzeiten sind die Folge. Darum werden unter Windows Zwischenspeicher notwendig, damit solche zeitlichen Verschiebungen für die Hardwarezugriffe unterdrückt werden können. Die Daten werden durch ein Auswerteprogramm in einem Burst (z. B. alle 2 Sekunden) vom Versuchsboard ausgelesen. Da Windows 95 und Windows NT die alten DOS-Versionen in den nächsten Jahren ersetzen, darf dieser Punkt nicht unbeachtet bleiben. Alternativ zu Windows 95 ist auch eine Programmerstellung für Linux möglich, dessen Eigenschaften in Bezug auf das Multitasking (konstante Rechenzeitverteilung) besser als bei Windows 95 sind. Im Vergleich der neueren Multitasking-Betriebssysteme wie Windows 95 und Linux zu DOS besteht noch ein weiterer Vorteil. Windows und Linux oder Unix sind in der Lage verschiedene Programmabläufe parallel zu verarbeiten. Applikationsprogramme mit diesen Eigenschaften nennen sich Multithread-Anwendungen. 45 Der VersuchsempfängerDer Versuchsempfänger 2.2.2.2 SFCO-Interface Wie schon im Eingang zu diesem Kapitel erwähnt ist, so können die vorangegangenen Schaltungen analog übernommen werden. Der Unterschied liegt in der höheren Datenrate des SFCO. Es treten Transferraten an der Schnittstelle von bis zu 2,3 MBit/s auf. Mit einer Wandlung der Daten von seriell auf 16 Bit parallel wird der Lesetakt auf 150,733 kHz gesenkt. Durch die schon mehrfach erwähnte PIO 32 Bit-I/O-Karte vom ELV-Versandhandel können die Daten hinreichend schnell ausgelesen werden. Paralleldaten 16 8 Bit Schieberegister Steuerung PIO-32 Bit-I/O Einsteckkarte 8 8 Bit Schieberegister /Reset SFCO 3 0 >=1 Signale: CFIC, REF, RDC /Reset 0 0 /Reset Steuerrechner Abbildung 2.14 : Konzeptüberlegung zur Datenübernahme vom SFCO mit Schieberegistern Bei der Betrachtung der Prinzipschaltung (Å Abbildung 2.14) werden die eingeschobenen Daten mit dem Folgetakt in die Latches der 74HC595 geladen und von der PIO-32 I/P-Karte in einer Breite von 16 Bit ausgelesen. Analog der Speichererweiterung von Abbildung 2.13 ist auch hier ein Speicherausbau von 16 Bit (6,956 µs entspricht 143,75 kHz) auf 2 Sekunden denkbar (Å Abbildung 2.15). Der notwendige Speicherbedarf beträgt mindestens 4,6 MBit. Eine praktikable Speichergröße liegt bei 5 MBit (610,35 kByte). 5 MBit mit handelsüblichen Speicherschaltkreisen entstehen aus einer Kaskadierung von je einem 4 und einem 1 MBit S-RAM. Beispielsweise liefert die Firma Samsung Schaltkreise mit einer Speicherorganisierung von 8 Bit (Å Anlage A.6) oder 16 Bit. 46 Der VersuchsempfängerDer Versuchsempfänger Größe: 8 Bit-Typen: 16 Bit-Typen: 4 MBit S-RAM KM 68 4000 B KM 616 4000B 1 MBit S-RAM KM 68 1000 E KM 616 1000B DAB-Daten SP1 0 0 0 8 oder 16 Serien-/ ParallelWandler 5 MBit1. Zwischenspeicher (SP1) 8 oder 16 PIO-32 Bit-I/O Einsteckkarte Adreßlogik >=1 Adreßdaten 3 0 >=1 Signale: CFIC, REF, RDC /Reset 0 0 /Reset 5 MBit2. Zwischenspeicher (SP2) DAB-Daten SP2 /Reset SFCO Steuerrechner Abbildung 2.15 : Signalaufbereitung und Zwischenspeicherung in einem 5 MBit S-RAM Ein Nachteil der Schaltungen mit Zwischenspe ichern in MBit-Größe wie in den Abbildungen 2.13 und 2.15 ist die umfangreiche Adressierungslogik. Für die Adressierung sind zum Teil 20 Bit Zähler notwendig, um die eingelesenen Daten im Speicher abzulegen. Wenn der Umfang der Leitungen zwischen Versuchsboard und der 32 Bit-PC-Steckkarte auf ein Minimum reduziert werden soll, so ist zum Auslesen ein weiterer Adreßzähler nötig. Die Adressierungsschaltungen für das Ein- und Auslesen müssen synchronisiert werden. Bei Überschneidungen beider Zähler kann es sonst zu Datenverlusten kommen, indem der Speicher schneller beschrieben als ausgelesen wird. Unter Bezug auf die Forderungen an das Versuchsboard und die Bewertung der Vor- und Nachteile aller Lösungsvarianten stellt sich die Kombination von SFCO-Interface mit einer 16 Bit Schieberegisterlösung (Å Abbildung 2.14) als die geeignetste heraus. 47 Der VersuchsempfängerDer Versuchsempfänger 2.2.3 Steuerungslogik Zum Betrieb des Versuchsboards werden die Steuerschaltung für die Datenloggersysteme (SeriellParallel-Wandlung) und ein I²C-Interface benötigt. Die Steuerung der im Abschnitt Datenlogger empfohlenen Datenerfassungsvariante analysiert den Datenstrom am SFCO-Ausgang. Eine Beschreibung dieser Schaltung erfolgt im Abschnitt „Datenerfassung und –vorverarbeitung“. Busleitungen des I²C-Busses SDA-SEND SCL Parallelport des Computers SDA-REC Treiber IC 74 HC oder HCT 244 SCL SDA Tri State GND Abbildung 2.16 : I²C-Interface in einfacher Bauweise Im Normalfall basieren I²C-Bussysteme auf einer 3-Leitertechnik. Je eine Leitung wird für die Daten, den Bustakt und die Masse benötigt. Die Daten- und Taktleitungen arbeiten im bidirektionalen Modus. Um das Bussignal zu generieren, ist eine parallele Schnittstelle mit drei und mehr E/A-Leitungen notwendig. Eine einfache Lösung ist die Nutzung des vorhandenen Druckerports am PC. Hier belegt die bidirektionale SDA Leitung zwei Kanäle. Das Sendesignal SDA-SEND und das Empfangssignal SDAREC werden diesen Kanälen zugeordnet. Es stellte sich in der Folge von mehreren Versuchen heraus, daß der Aufbau eines einfachen Bustreibers mit simplen Emitterschaltungen Nachteile hatte. Immer, wenn das Programm den Kanal SDA-SEND auf logisch „0“ setzte, erhielt der Empfangskanal der Schnittstelle ein Low-Signal vom Bus. Mit einem Bustreiberschaltkreis vom Typ 74HC bzw. HCT244 wurde der Fehler behoben. Beim Einlesen der Daten wird der Ausgang durch ein High am entsprechenden Freigabeeingang (Tri-State) hochohmig geschaltet (Å Abbildung 2.16). Damit wird das SDA-REC-Signal nicht mehr beeinflußt und kann ungehindert eingelesen werden. Der PC steuert die SCL-Leitung am Port und legt damit den Takt auf dem I²C-Bus fest. Die Darstellung in Abbildung 2.17 zeigt die Struktur der eingesetzten PIO-32 Bit-I/O-Karte (der Fa. ELV). 48 Der VersuchsempfängerDer Versuchsempfänger Um die Ressourcenauslastung des PCs zu optimieren, werden durch diese 32 Bit-Karte die Daten eingelesen und alle am Board notwendigen Steuerungen zusammengefaßt. Dadurch werden wichtige Ressourcen frei, so zum Beispiel die Interrupts der seriellen und parallelen Schnittstellen und die Portadressen für die Daten, Steuerung und den Status. PC-8 Bit-Bus (ISA) Spannungsversorgung 25 pol. Anschluß 25 pol. Anschluß 16 BitLatch (2 x 8 Bit) 16 BitTreiber (2 x 8 Bit) Bustreiber 8 BitLatch 8 BitTreiber 8 BitLatch 8 BitTreiber Steurlogik und Adreßdekoder 37 pol. Anschluß Abbildung 2.17 : Aufbau der PIO-32 Karte [30] 2.2.4 Schaltungstechnik In dem folgenden Abschnitt „Logischer Aufbau“ wird beschrieben in welche einzelnen Baugruppen (BG) das Versuchsboard aufgeteilt wird und welche Eigenschaften sie besitzen. Der genauere schaltungstechnische Aufbau der einzelnen Baugruppen findet sich im Abschnitt Schaltungs-realisierung wieder. 2.2.4.1 Logischer Aufbau Um die komplexe Schaltungstechnik zu erfassen, ist die Aufteilung des Versuchsboards in verschiedene Baugruppen notwendig (Å Abbildung 2.18). Daraus folgend entstehen fünf Teile mit jeweils speziellen Charakteristika. 49 Der VersuchsempfängerDer Versuchsempfänger • Die Empfängerbaugruppe beinhaltet alle Komponenten, mit denen die DAB-Daten empfangen und umgesetzt werden. • Datenerfassung und –vorverarbeitung (Å gleichnamiger Abschnitt) • In der Baugruppe Systemrechner befindet sich der Onboardcontroller und die Steuerung für den I²C-Bus, welcher die Abstimmung aller Empfängerkomponenten übernimmt. Hier befindet sich auch der Programmspeicher für einen autonomen Betrieb (d.h. ohne PC). • Das Netzteil stellt alle für den Betrieb des Versuchsgerätes notwendigen Betriebsspannungen bereit. Davon dienen die 5 Volt und 3,3 Volt Spannungen der Betriebsspannungsversorgung der einzelnen Schaltkreise. Die 3,3 Volt Versorgung wird ausschließlich für ICs mit Low-Volt-Technik (SAA3500H und die Bustreiber 74LV(C)244) benötigt. Für die Abstimmspannung des Tuners werden 30 V und für eventuelle Signalverstärker 20 V bereitgestellt. • Von der letzten Baugruppe „Schnittstellen“ wird die Verbindung des Versuchsgerätes mit der Außenwelt hergestellt. 50 Der VersuchsempfängerDer Versuchsempfänger Antennensignal Tuner mit HF von 1,45 - 1,9 GHz und ZF von 38,912 MHz Seriell-ParallelWandlung in 16 Bit Breite Kanaldekoder SAA 3500 H MPEG-Dekoder SAA 2502 Steuerlogik Empfänger Datenerfassung und -vorverarbeitung - 16 Bit-Mikrorechner (80C51 XA G3) - 64 kByte EEPROM (M28C64C) Netzteil Systemrechner serielles Interface RS 232 I²C-BusSteuerung I²C-Interface - Analogsignal 5 Volt für Standardlogik ICs 3.3 Volt für Kanaldekoder 20 Volt Signalverstärker 30 Volt Tuningspannung Power-On-Reset Steuerdaten Simple Full Capacity Output Schnittstelle PC - Versuchsboard Analogsignal Rechner für Auswertung und Steuerung Steuerleitungen Busleitungen RS 232 bzw. I²C-Bus Daten- und Audiosignalleitungen 32 Bit PIO PC-Einsteckkarte Einzelkomponenten Baugruppen Abbildung 2.18 : Gliederung des Versuchsboards in einzelne Baugruppen 2.2.4.2 Schaltungsrealisierung un d Beschreibung Bei der Strukturierung des Versuchsboards wurden die einzelnen Komponenten nach der Abbildung 2.18 aufgegliedert. 51 Der VersuchsempfängerDer Versuchsempfänger Empfänger Der Empfänger wurde von dem Schaltungsvorschlag der IC-Beschreibung des SAA3500 übernommen. Auf Grund eines moderneren Kanaldekoders und Problemen bei der Erstellung des Leiterbildes ergeben sich folgende Änderungen an der vorliegenden Schaltung (Å Anlage A.2, SAA3500). Im Signaleingang der Schaltung entfällt der A/D-Wandler. Bei der Weiterentwicklung des SAA3500 zum 3500H bzw. 3501 wurde der notwendige A/D-Wandler durch eine Überarbeitung der Schaltkreisstruktur in den Signaleingang des neuen Schaltkreises verlagert. Dadurch wird der externe A/DWandler überflüssig. Die Abwärtskompatibilität zum Vorgängerschaltkreis ist dennoch erhalten geblieben. Probleme bei der Schaltungsübernahme in ein Leiterplattenprogramm erzwangen eine Trennung von Empfängerschaltung und Mikrocontroller. Bis auf die fehlenden Baugruppen A/D-Wandler am Signaleingang der Schaltung und den Controller (mit zusätzlichem Programmspeicher) wurde die Schaltung ohne Veränderungen übernommen. Somit befinden sich auf der Leiterplatte im Signalweg der Kanaldekoder (SAA3500H), der Tondekoder (SAA2502) und der D/A-Wandler (TDA1310). Zur Zwischenspeicherung von Werten des Deinterleavers wird ein 1 MBit S-RAM mit zwei Bustreiberschaltkreisen (74LVC244) eingesetzt. Der Einsatz dieser Bustreiber wurde wegen der verschiedenen Logiktechnologien notwendig. Grund dafür sind Beschaffungsprobleme von statischen 1 MBit-Speichern in „Low-Volt“-Technologie (LV, Betriebs- und Logikspannung von 3,3 Volt). Mit Hilfe der beiden 74LVC244 (unidirektionale Bustreiber) werden die Pegel auf die für den Kanaldekoder notwendigen 3,3 V begrenzt. Durch den Schaltkreis DS1233 wird das komplette Versuchsboard nach zu niedriger Versorgungsspannung (ca. 4,75 Volt) zurückgesetzt. Dafür besitzen die Steckverbinder für die Betriebsspannung, für den Datentransfer vom Empfänger zum Controller und für den SFCO-Ausgang eine Reset-Leitung. So gelangen die Rücksetzinformationen zu allen vorhandenen und zukünftigen Komponenten. Um einen Systemtakt von 24,756 MHz zu erzeugen, wurde bei der Firma Spezial Electronic GmbH ein spezieller Quarzoszillator bestellt. Wie beim Zwischenspeicher ist auch hier eine Pegelanpassung an den Kanaldekoder notwendig. Analog der Pegelbegrenzung am Zwischenspeicher des Deinterleavers wird das Taktsignal in seinem Pegel durch einen LV-Bustreiber begrenzt. Weitere Treiberelemente dieses Schaltkreises werden zur Pegelanpassung für die Signale /Reset, CClk und Cmode genutzt. 52 Der VersuchsempfängerDer Versuchsempfänger Die Erläuterung der Funktionsweise des Empfängers kann an dieser Stelle entfallen, da schon in dem Kapitel „Empfängerkonzept“ eine Beschreibung erfolgte. Systemrechner/Onboardcontroller Für eine Steuerung des Empfängers im autonomen Betrieb ist ein Mikrocontroller notwendig, dessen Einsatzgebiet vorerst die Steuerung des Empfängers (durch I²C-Bus) ist. Optional können auch Daten des MPEG-Dekoders ausgewertet werden. Zusätzlich ist es möglich, kommende externe Komponenten (wie LCD-Bildschirm oder eine Relaiskarte) nach bestimmten Kriterien zu steuern. Mit diesen Überlegungen entstand eine Leiterplatte (Å Anlage B.2, Schaltung: Controllerboard) für einen Controller (Typ: 80C51XAG3, Å Anlage A.5) mit externem Programmspeicher (EEPROM-Typ : STM28C64 o.ä., Å Anlage A.11). Eigenschaften der Schaltung: • 8 kByte EEPROM als Programmspeicher (IC2), • RS 232 Interface zur Verbindung mit einem Hostrechner, • Schnittstelle für den I²C-Bus zur Steuerung des Empfängers und eventuell weiterer Komponenten (CONN3) • Steckerleiste für Betriebsspannungen und Resetsignal (CONN2) • L3-Steckerleiste zur Verbindung mit dem Kanaldekoder (CONN1) Der I²C-Bus und das L3-Interface sind technologisch eng miteinander verbunden. Die abgerüstete Variante des L3-Interfaces ist der I²C-Bus. Das vom Kanaldekoder unterstützte L3-Interface liefert neben den vom I²C-Bus bekannten Leitungen SDA und SCL auch ein Signal CMODE. Über die Leitung CMODE wird mitgeteilt, ob es sich bei den Informationen auf der SDA Leitung um Adreßwerte oder Daten handelt. Die Leitungen CCLK, CDATA und GND vom Steckverbinder CONN1 werden an den I²C-Stecker CONN2 durchgeschleift. Am Controller belegen die Leitungen CCLK den Port P3.1 und CDATA Port P3.2. Die CIFC-Leitung am CONN1 gibt Hilfsinformationen vom Kanaldekoder an einen angeschlossenen Rechner weiter. Der Pegel dieser Leitung bildet ein Fenster um die FIC-Daten vom Interface. Dies ist 53 Der VersuchsempfängerDer Versuchsempfänger die einzige Möglichkeit, die unformatierten DAB-Daten des SFCO als Fast Information Channel und Main Service Channel zu unterscheiden. Informationen des CFIC werden am 80C51 über den Port P3.2 eingelesen. Für eine RS 232 Unterstützung werden am Mikrocontroller die Anschlüsse P1.5 für die Sendeleitung TxD und P1.4 für die Empfangsleitung RxD genutzt. Damit besteht die Möglichkeit, Programme und Daten von einem Hauptrechner herunterzuladen oder Daten an ihn weiterzuleiten. Für die Nutzung von dem externen Programmspeicher ist eine Kodierbrücke mit dem Pin /EA (/EA External Access, aktiv bei Low-Pegel) verbunden. Somit bleibt die Wahl zwischen externem und internem Speicher erhalten. Ebenso wie bei anderen 80C51-Herstellern ist auch hier ein Teil der Adreßausgänge mit Datenleitungen (P0.0 bis P0.7) doppelt belegt. Darum wird ein Adreß-Latch (z.B. DLatch, Typ : 74HC573) zur Zwischenspeicherung der Adreßinformationen (Adreßleitungen A4 – A11) mit dem Anschluß ALE (ALE – Address Latch Enable) des Mikrorechners gesteuert. Der externe 8 kByte Programmspeicher ermöglicht umfangreiche Assemblerprogamme. Für eine hohe Flexibilität wird ein EEPROM-Typ eingesetzt. Sein Vorteil gegenüber anderen Speichertypen (wie PROM oder EPROM) ist das elektrische Schreiben und Löschen von Daten. Gerade im Lehr- oder Versuchsbetrieb tritt oft das Laden verschiedener Programme oder das Korrigieren fehlerhafter Programme auf. Ein EEPROM kann bei geeigneter Beschaltung und einem entsprechenden Programm direkt vom Mikrocontroller im eingebauten Zustand programmiert werden. Dafür sind verschiedene Verbindungen zwischen dem Rechner und dem Speicher notwendig. Zum Lesebetrieb (übliche Betriebsart für externen Programmspeicher) werden die Signale /RD (/RD – Read, aktiv bei Low-Pegel) und PSEN (PSEN – Program Store Enable) mit dem Speicher verbunden. In der vorliegenden Schaltung wird das PSEN-Signal als /CS-Signal (/CS – Chip Select, aktiv bei Low-Pegel) genutzt. Damit auch ein Beschreiben des Speichers möglich wird, ist ein weiteres Chipauswahlsignal (Port P2.7), das Schreibsignal /WRL (/WRL- Write Low Byte, aktiv während Low-Pegel) und das Signal RDY (RDY Ready) des EEPROMs notwendig. Das 2. /CS-Signal muß separat generiert werden, denn die Programmierrichtlinien des Schaltkreises verlangen entweder einen /CS oder Write Enable gesteuerten Speichervorgang (Å Anhänge A.5 und A.11). Im Vergleich zum EEPROM sind die preiswerteren EPROMs durch UV-Licht löschbar. Für eine UVLöschung muß im Normalfall der Speicher aus der Schaltung herausgenommen und in ein spezielles Löschgerät gelegt werden. Dabei spielt die Löschzeit von ca. ¼ Stunde eine untergeordnete Rolle. 54 Der VersuchsempfängerDer Versuchsempfänger Nachteiliger ist beim Ziehen oder Einsetzen der Schaltkreise die hohe Belastung der Sockel- und Schaltkreiskontakte. Datenerfassung und –vorverarbeitung Im Abschnitt „SFCO-Interface“ wurde die Schaltung schon einmal kurz beschrieben. Es handelt sich um 2 in Reihe geschaltete Schieberegister des Typs 74HC595. Damit ist die Umsetzung von seriellen in parallele Daten möglich. Ausgänge freigeben durch Massepotential RESET RDC RDO REF CFIC /CLR Clk /OE RCKL Q0-Q7 SER_IN SER_OUT /CLR Clk /OE RCKL Q0-Q7 SER_IN SER_OUT 0 16 >=1 0 1 2 0 0 >=1 0 Reset GND 1 Q2 Q1 Q0 0 0 6 OR 1.4 0 OR 1.3 Neg 1.1 & UND 1.1 OR 1.2 0 1 & 0 Q Signalflag Auslesen 1 S Q 0 0 1 S Q R Q Neg 1.5 R Q RSFF 1.1 Reset für Signalflag Auslesen 0 0 UND 1.2 0 0 >=1 0 Neg 1.2 S 1 0 & 0 0 8 1 Neg 1.3 >=1 OR 1.1 7 0 0 0 Q3 4 Bit Zähler 3 4 Vcc1 A 5 Neg 1.6 R UND 1.3 Q RSFF 1.3 Neg 1.4 RSFF 1.2 Signalflag 1. CFIC nach Reset Reset für Schaltung vom PC Signalflag REF SFCO S Q R Q RSFF 1.4 Übergang zur PIO 32-Karte Abbildung 2.19 : Schaltung zur Datenerfassung der SFCO-Informationen Auf Grund der Eigenschaften der Schaltkreise (Å Anlage A.14) werden die aktuellen Registerdaten mit dem folgenden Takt in die Zwischenspeicher (Latches) übernommen. D.h. die Daten können erst nach dem 17. Takt des CClk-Signals ausgelesen werden. Bei dem 17. Takt gibt der 4 Bit-Binärzähler eine 1 aus. Zur Auswertung dieser 1 wird ein NOR-Glied aus drei ODER-Elementen (Å Abbildung 2.19, OR1.1, OR1.2 und OR1.3) mit einem negierten Eingang (Neg1.2) für Bit 0 und einem negierten ODER-Ausgang (Neg1.1) zusammengesetzt. Die Eigenschaften der NOR-Schaltung beschreibt die boolsche Gleichung 2.5. Damit die binäre 1 des 17. Taktes nicht mit der des ersten Taktes verwechselt wird, ist eine Verriegelung nötig. Mit einem UND-Glied (UND1.3 mit negiertem Ausgang) wird das RS-Flipflop (RSFF1.2) durch den Zählerwert 2 gesetzt. Durch das UND1.1 wird das Flipflop (RSFF1.1) 55 Der VersuchsempfängerDer Versuchsempfänger freigegeben. Danach ist eine Ausgabe vom Signalflag „Auslesen“ ab dem 17. Takt und alle weiteren 16 Takte möglich. Gleichung 2. 5 : Q = ( x 3 + x 2 ) + ( x1 + x 0 ) Von dem „Freigabe-UND“ (UND1.1) wird der Taktimpuls für das Laden des Registerinhaltes in die Latches abgeleitet. Die Ermittlung der ansteigenden Flanke des CFIC-Signals (vom Kanaldekoder, Flag für Mikrocontroller zur Markierung der FIC-Informationen in den DAB-Daten) erfolgt mit dem UND1.2. Der angeschlossene Negator Neg1.6 gibt einen entsprechenden Pegel auf das RS-Flipflop RSFF1.3 und setzt so das Flag „1. CFIC“. Alle erwähnten Flags, inklusive auch des REF-Signals vom SFCO-Interface, werden über die PIO 32Karte im PC mit einem Programm analysiert. Vom PC wird das Flag für das Auslesen nach jedem Lesezyklus zurückgesetzt. Zusätzlich wurde eine Resetleitung für die gesamte Schaltung mit eingebaut. Damit kann bei Lesefehlern ein Reset für die Schaltung erfolgen. Um das Herunterladen der Daten wieder mit einer ansteigenden Flanke des CFIC zu synchronisieren, muß das steuernde Programm erst ein Low-Signal auf der CFIC Leitung erkannt haben. Netzteil Zur Spannungsversorgung des Boards werden vier Spannungen bereitgestellt. 5 Volt als Betriebsspannung werden für die HC-Logikschaltkreise, die Datenerfassungsschaltung und der gleichen genutzt. Um den Tuner zu betreiben sind drei Spannungen notwendig. Neben der Standardspannung von 5 Volt werden noch ca. 30 Volt für die Abstimmspannung und ca. 20 Volt als Phantomspannung benötigt. Mit Hilfe der Phantomspannung können Signalverstärker in der Antennenzuleitung gespeist werden. Der Vorteil dieser Art von Spannungsversorgung ist die Einsparung einer separaten Betriebsspannungszuführung, da das Antennenkabel zur Signalübertragung und Speisung gleichzeitig genutzt werden kann. Die vierte Spannung beträgt 3,3 Volt und wird zur Versorgung des Kanaldekoders und der LV-Bustreiberschaltkreise eingesetzt. Für die Erzeugung der drei Rohspannungen wird ein Transformator mit Spannungsausgängen von 5, 20 und 30 Volt eingesetzt. Alle drei Spannungen besitzen separate Wicklungen. Störungen durch 56 Der VersuchsempfängerDer Versuchsempfänger Kurz-schluß oder Lastwechselreaktionen auf einer der Sekundärwicklung können sich so nur mittelbar auf die anderen Spannungen auswirken. Am Ausgang jeder Sekundärwicklung ist eine Feinsicherung ein-gebaut, um Überlastungen vom Trafo fernzuhalten. D2 Ui ist Uo + ca. 3 Volt Si Uo (1,2 bis 37 Volt) LM 317 2 Gleichrbr. C1 10 µF Ladekondensator CL 3 R1 240 Ω D1 1 + 4700 µF R2 5 kΩ Masse C2, Bauart: Elko 2,2 µF + C3 Bauart: Tantal 4,7 µF + Masse Masse Abbildung 2.20 : Standardschaltung für variable Spannungsregler mit dem LM 317 [19], [31] und Anlage A.7 An den Sekudärspulen für 20 und 30 Volt befinden sich zwei identisch aufgebaute Schaltungen (Å Abbildung 2.20). D2 Ui ist Uo + ca. 3 Volt Si 1 Gleichrbr. Ladekondensator CL 7805 5 Volt Positivregler 3 C1 100 nF Uo 5 Volt konstant 2 D1 C2 Bauart: Tantal 1 .. 4,7 µF 4700 µF Masse Masse Masse Abbildung 2.21 : Prinzipielle Schaltung für Festspannungsregler [20], [31] und Anlage A.8 57 Der VersuchsempfängerDer Versuchsempfänger Die Ausgangsspannung Uo dieser Schaltung läßt sich nach der Gleichung 2.6 berechnen. Für die Referenzspannung Uref wird eine Spannung von 1,25 Volt zwischen den Kontakten 1 und 3 des LM 317 laut Hersteller angenommen. Am Pin 1 fließt ein Abstimmstrom Iadj von 50 bis 100 µA. Gleichung 2. 6 : R U o = Uref 1 + 2 + Iadj ⋅ R 2 R1 [31] Um die Ausgangsspannung in einem weiten Bereich zu regeln, wurde für den Widerstand R2 ein Trimmer von 5 kΩ eingesetzt. Zur Erzeugung der 5 V-Betriebsspannung sieht die Schaltung (Å Abbildung 2.21) noch einfacher aus. Für die 3,3 V Betriebsspannung wird die Vorspannung des 3,3 V-Spannungsregler (ZR78L03) von der 5 Volt-Versorgung abgeleitet. Im Gegensatz zu den obigen Schaltungen ist dieser ZR78L03 der Einfachheit ohne die Schutzdioden betrieben. Für alle Schaltungen mit variablen und konstanten Spannungsreglern gelten bestimmte Grundregeln. • Die Eingangsspannung Ui sollte um ca. 3 Volt über der Ausgangsspannung Uo liegen. Diese 3 Volt „Überspannung“ benötigt der Regler, um sicher Arbeiten zu können. Im Gegensatz dazu reichen für die teureren Low-Drop-Regler (z. B. LP2950 oder LM 2940) schon Spannungen zwischen 0,5 und 1 Volt aus. • Trotz einer thermischen Schutzschaltung gegen Kurzschluß reagieren diese Schaltkreise empfindlich auf Verpolungen und Fremdspannungseinspeisungen vom Ausgang her. Darum wird parallel zum Ausgang eine Schutzdiode (D1) als Verpolungsschutz eingebracht. Als Schutz gegen die ausgangsseitige Fremdeinspeisung überbrückt eine weitere Diode (D2) den Schaltkreis. • Bei der Auswahl des Ladekondensators (CL) ist auf eine entsprechend hohe Spannungsfestigkeit zu achten. Durch die Graezbrücke wird der CL auf den Spitzenwert der Eingangsspannung geladen. D.h. die Kondensatorspannung steigt um Faktor 1,4. Wird ein Transformator unbelastet betrieben, so steigt dessen Ausgangsspannung um bis zu 30% an. Diesen Spannungsabfall muß der Kondensator zusätzlich bewältigen (Å Beispiel 2.2). 58 Der VersuchsempfängerDer Versuchsempfänger Beispiel 2.2: Gegeben: Ausgangsspannung von 30 V (z. B. Abstimmspannung) Gesucht: Spannungsfestigkeit für Lade-Elko (Untergrenze) Gleichung 2. 7 : ( ) ULade − C = (U o + 3 V ) ⋅ 2 ⋅ 1,3 [31] Nach der Berechnung mit Gleichung 2.7 erhält man eine Spannung von ca. 61 Volt. Das bedingt die Nutzung eines Elkos mit einer Spannungsfestigkeit von 63 Volt (standardisierter Wert). Schnittstellen In der Baugruppe Schnittstellen sind die Steckbuchsenleisten und Stecker zwischen Board und der PIO 32-Karte zusammengefaßt. Über die serielle Schnittstelle (RS232) liefert der PC dem Mikrorechner des Versuchsboards neue Programme oder Einstellparameter. Ebenso ist auch das Beziehen bestimmter Daten vom Board auf diese Weise möglich. Mit dem I²C-Businterface steuert der PC die Empfängerkomponenten direkt. Der Bustakt und die Informationen werden vom PC erzeugt und ausgewertet. Da es sich hier um ein Single-Master-System handelt, legt der PC den Bustakt fest. Zudem erleichtert es die Gestaltung der Steuersoftware, da Programmroutinen für Multi-Master-Steuerungen entfallen. Um Portadressen zu sparen, wird die I²CBus-Steuerung über die PIO 32-Karte geleitet. Die DAB-Daten werden mit der PIO 32-Karte von der Datenerfassungskarte ausgelesen. In der Gegenrichtung übernimmt der PC das Zurücksetzen der Flags für das Lesesignal und bei Fehlern die Synchronisierung von Software und Port. Analoge Audioinformationen können über eine Klinkenbuchse auf einen Verstärker geführt werden. Notwendig ist dieser Ausgang, wenn die Funktionalität geprüft werden muß. Hier erkennt man als erstes ob die Abstimmung des Tuners und/oder die Einstellparameter für den Kanal- und den Tondekoder richtig sind. Das Steuerdateninterface bezieht sich in erster Linie auf die Datenerfassungskarte und die damit verbundenen Rückstellinformationen, d.h. Resetimpulse für die Datenerfassung und so weiter. Da im momentanen Konzept nicht alle Pins der PIO 32-Karte ausgelastet sind, ist ein weiterer Ausbau der Steuerleitungen möglich. Denkbar sind auf diese Weise Einstellungsänderungen am Kanaldekoder, 59 Der Versuchsempfänger um bestimmte Ein- oder Ausgänge (z. B. /FSO, Nulldetektor / Rahmensynchronausgang) freizugeben. Es werden in diesem Fall die entsprechenden Brückenstecker durch eine Signalleitung (inklusive einer Spannungsbegrenzung auf 3,3 Volt-Pegel) zum Pin ersetzt und ein simples Ansteuerprogramm paßt dann die Einstellungen dem Wunsch entsprechend an. 60 Aufbau der DAB-Datenrahmen 3 Aufbau der DAB-D atenrahmen Der folgende Abschnitt beschreibt den Aufbau und die Zusammenhänge der im DAB übertragenen Informationen laut Standard ETS 300 401. Transmission Frame Synchronization Channel FIB1 non time-Interleaved time-interleaved Fast Information Channel (FIC) Main Service Channel (MSC) FIBn Fast Information Blocks (FIBs) CIF1 CIFn Common Interleaved Frames (CIFs) Abbildung 3. 1 : Allgemeiner Aufbau eines DAB-Übertragungsrahmens [10] Die in der Abbildung 3.1 dargestellten 3 Kanäle beschreiben den gesamten DAB-Rahmen und werden in den nachfolgenden Unterpunkten einzeln analysiert. 3.1 Synchronization Chan nel Im Kopf eines jeden DAB-Rahmens stehen die Null- und Phasenreferenzsymbole. Für eine Synchronisierung zwischen Empfänger und Übertragungssignal wird das Nullsymbols des Synchronization Channels ausgewertet. Diese Nullsymbole stellen einen Einbruch in der Signalleistung dar und mit einer Integratorschaltung im Empfänger wird das Ende des Zeichens detektiert. Die nachfolgenden Phasenreferenzzeichen werden in jedem Rahmen identisch wiederholt und beschreiben als Bezugspunkt die differentielle Phasenlage des nachfolgenden OFDM-Symbols. Mit der Hilfe des Phasenreferenzsymbols wird eine Frequenz- und Zeitsynchronisierung ermöglicht. Gerade die Zeitsynchronisierung ist für den Empfang in Gleichwellennetzen notwendig. In einem solchen Netz werden zur gleichen Zeit mehrere, aber teilweise zeitverzögerte Signale gesendet. Signalverzögerungen bis in die Schutzintervalldauer sind denkbar. Durch die Synchronisierung wird das FFT-Fenster immer so positioniert, daß möglichst keine Signale die Symbolgrenzen überschreiten. 61 Aufbau der DAB-Datenrahmen 3.2 Fast Information Chan nel In der Abhängigkeit vom Sendemodus setzt sich der Fast Information Channel (FIC) aus einer unterschiedlichen Anzahl von sogenannten Fast Information Blocks (FIBs) zusammen. Die Tabelle 3.1 gibt einen Überblick zu dem Verhältnis von Sendemodus und Anzahl der Fast Information Blocks. Jeweils 3 FIBs werden in den Modi 1, 2 und 4 einem Common Interleaved Frame (CIF) zugeordnet. Modus 3 ist eine Ausnahme, denn hier transportieren 4 FIBs die Informationen des CIF. Übertragungsmodus Modus 1 Modus 2 Modus 3 Modus 4 DAB-Rahmendauer in ms 96 24 24 48 Anzahl der FIBs je Rahmen 12 3 4 6 CIFs je Rahmen 4 1 1 2 Tabelle 3.1 : Anzahl der FIBs in einem FIC in Abhängigkeit zum Übertragungsmodus [10] Fast Information Block Fast Information Blocks besitzen einen Informationsgehalt von 256 Bit (entspricht 32 Byte). Der Aufbau des FIB ist aus der nachfolgenden Abbildung 3.2 ersichtlich und setzt sich im nutzbaren Bereich nochmals aus entsprechenden Fast Information Groups (FIGs) zusammen. 256 bit 30 byte 16 bit FIB Data field CRC used data field FIG v FIG k FIG t End mark Padding field FIG Header 5 Bit 3 Bit b7 b5 FIG-Type b4 b0 Length FIG Data field Abbildung 3.2 : Zusammensetzung eines FIB aus FIGs [10] 62 Aufbau der DAB-Datenrahmen Für die Endmarke wurde das Symbol 111 11111 vereinbart. Genutzt wird dabei nur das FIGHeaderfeld. Ein Datenfeld besitzt die Endmarke nicht. Um jedoch die Gesamtlänge von 30 Byte einzuhalten folgt nach der Endmarke das Paddingfeld, welches bis zur gültigen Länge die freien Bytes mit Nullen auffüllt. Der Wert des Prüfsummenzeichens im CRC-Feld wird nach dem Polynom G(x) laut Gleichung 3.1 ermittelt. G(x) = x16 + x12 + x5 + 1 Gleichung 3.1 : [10] Die eingangs genannten Information Groups gibt es in acht verschiedenen Varianten. Eine Aufstellung der verschiedenen Varianten folgt in der Tabelle 3.2. Bei allen Information Groups ist das erste Byte immer gleich gestaltet (Å Abbildung 3.2). Von Typ zu Typ sind nur die Datenfelder unterschiedlich aufgebaut. FIG Typennummer 0 FIG Typ 000 1 2 3 4 5 6 7 001 010 011 100 101 110 111 Anwendung der FIG Multiplexeinstellungsinformationen (MCI Multiplex Configuration Information) und Teile der Programminformationen (SI) Label und so weiter ( Teile der Programminformationen) Reserviert Reserviert Reserviert FIC Datenkanal (FIDC – Fast Information Data Channel) Bedingter Zugriff (CA – Conditional Access) Betriebsmeldung, erwartet Wert 31 als Längenangabe Tabelle 3.2 : Beschreibung der verschiedenen FIGs [10] 63 Aufbau der DAB-Datenrahmen Fast Information Group Typ 0 Struktur: b7 C/N b6 OE b5 P/D b4 b0 Extension Type 0 Field Abbildung 3.3 : FIG mit Typ 0 Feld [10] Beschreibung: C/N (Current/Next) aktuelle oder kommende Multiplexkonfiguration OE (Other Ensemble) Informationen für dieses oder ein anderes Ensemble aktuelle Einstellungen kommende Einstellwerte dieses Ensemble anderes Ensemble ( od. FM bzw. AM) P/D (Program/Data Flag) 0 16 Bit SId Nutzung für ProProgramm-Datendiensterkennung grammdienste 1 32 Bit SId Nutzung für Datendienste Extension – identifiziert 32 Bit Interpretationen zum Typ 0-Feld Typ 1 Struktur: b7 b4 Charset b3 OE b2 b0 Extension 0 1 0 1 Type 1 Field Abbildung 3.4 : FIG mit Typ 1 Feld [10] Beschreibung: Charset – Zeichensatz 0000 0001 0010 OE (Other Ensemble) Informationen für dieses oder ein anderes Ensemble 0011 0 Latein basierendes Repertoire – komplette EBU Kern wie 0000 zusätzlich griechisch und kyrillisch Kern wie 0001 erweitert um arabisch und hebräisch ISO Alphabet – lateinisch Dieses Ensemble 1 Anderes Ensemble ( od. FM bzw. AM) Extension – identifiziert 8 Varianten des Typ 1-Feldes 64 Aufbau der DAB-Datenrahmen Typ 5 Struktur: b7 D1 b6 D2 b5 b3 TCId b2 b0 Extension Type 5 Field Abbildung 3.5 : FIG mit Typ 5 Feld [10] Beschreibung: D1 und D2 definieren jede Erweiterung individuell TCId (Type Component Typbestimmung definiert eines von acht verIdentifier) schiedenen Programmkomponenten Typkomponentenbezeichner Extension – identifiziert 8 Arten des Typ 5-Feldes Typ 6 Struktur: b7 b6 First/Last CA b5 b0 Extension Type 6 Field Abbildung 3.6 : FIG mit Typ 6 Feld [10] Beschreibung: Fisrt/Last CA zeigen wie die geteilten eingeschränkten Zugriffe (CA – Conditional Access) gemanaged werden Extension - 64 verschiedene Interpretierungen (6 Bit-Feld, b5 .. b0) des Typ-6 Feldes Die Flags von Bit 6 und 7 des FIG-Typs 6 ermöglichen Kombinationen wie sie in der Tabelle 3.3 festgehalten sind. First b7 0 0 1 1 Last b6 0 1 0 1 Beschreibung fortgesetzte FIG-Datenfelder vom Typ 6 letztes FIG-Datenfeld vom Typ 6 erstes FIG-Datenfeld vom Typ 6 einziges Datenfeld vom Typ 6 Tabelle 3.3: Flagkombinationen für eingeschränkte Zugriffe [10] 65 Aufbau der DAB-Datenrahmen 3.3 Main Service Channel Main Service Channels (MSC) setzen sich aus 864 kleineren Datenblöcken zusammen. Im ETS 300 401 werden diese Datenblöcke als Capacity Units (CUs) bezeichnet. In der Gesamtkapazität belegt der MSC 55 296 Byte mit Informationen. Für die DAB-Anwendungen wird der Speicherplatz logisch in verschiedene Teilkanäle eingeteilt. Die Belegung mit Subchannel erfolgt in fortlaufender Reihenfolge und jeder belegt eine vorgegebene Anzahl von CUs. Bei MSC gibt es zwei Varianten der Datenübertragung. 3.3.1 Kontinuierliche Datenübe rtragung Mit der kontinuierlichen Datenübertragung (MSC Stream Mode) werden Daten in transparenter Form von ihrem Ursprung bis zu ihrem Ziel übertragen. Für den Stream Mode können lt. Standard nur Datenraten mit einem Vielfachen von 8 kBit/s genutzt werden. Für jede Programmkomponente wird immer nur ein Teilkanal benutzt. Bei der Nutzung für Audio wird mit einer Abtastfrequenz von 48 kHz gearbeitet und der DAB-Audiorahmen besitzt eine Länge von 24 ms. Das erste Bit des Audiorahmens korrespondiert mit dem ersten Bit des logischen Rahmens. Wird die Abtastfrequenz auf 24 kHz gesenkt so verlängert sich die Rahmendauer um den Faktor 2 und das erste Bit des Audiorahmens korrespondiert nur mit dem ersten Bit eines logischen Rahmens. 3.3.2 Paketdatenübertragung Der Paketmodus gestattet die Nutzung des MSC mit verschiedenen Programmkomponenten. Wie beim Stream Mode ist auch hier die Datenrate für die Pakete ein Vielfaches von 8 kBit /s. Jedes Datenpaket wird adressiert um es in einem Subchannel zu identifizieren. Im Standard wurden vier Paketlängen (Å Tabelle 3.4) festgelegt. Zulässig ist auch eine Mischung von Paketen mit verschiedenen Längen. Längeninformationen der Pakete lassen sich von den Bits 14 und 15 aus dem Packet Header (Å Abbildung 3.3) ermitteln. 66 Aufbau der DAB-Datenrahmen Packet Header b15 b14 Packet length b13 b12 b11 b10 Continuity First/Last index b9 Packet Data Field b0 Address b7 b6 b0 Command Useful data length Useful data field Padding b15 b0 Packet CRC Abbildung 3. 7 : Paketstruktur im Network Level [10] Packet Length: Bit 14 und 15 kennzeichnen die vier verschiedenen möglichen Paketlängen (Å Tabelle 3.4) Paketlänge b15 u. 14 00 01 10 11 Paketlänge in Byte Paketdatenfeldlänge in Byte 24 19 48 43 72 67 96 91 Tabelle 3.4 : Paketlängen im MSC [10] Continuityindex: Die Bits 12 und 13 inkrementieren einen Modulo 4 Zähler bei jedem folgenden gleich adressierten Paket. Eine Verbindung aller folgenden Pakete derselben Programmkomponente ungeachtet deren Paketlänge wird möglich. First/Last: An den First/Last-Flags ist ablesbar, ob es sich um das erste, das letzte , laufende oder ein einzelnes Paket handelt. In der Tabelle 3.5 werden alle vier Möglichkeiten noch einmal gegenübergestellt. First b11 0 0 1 1 Last b10 0 1 0 1 Art des Pakets Laufendes Paket aus einer laufenden Übertragung letztes Paket einer Übertragung erstes Paket einer Übertragung Einzelnes Paket wird übertragen Tabelle 3.5 : First/Last-Flags für den Paketmodus [10] Address: Eine 10 Bit-Adresse ermöglicht eine Identifizierung von Paketen, welche einzelne Ser- vicekomponenten in einem Subkanal übertragen. Mit 0 als Adresswert werden Padding-Pakete markiert. Der Wertebereich läßt eine simultane Übertragung von bis zu 1023 verschiedenen Diensten zu. Command: Daten und Programmpakete werden mit Hilfe des Command-Flags unterschieden. 0 : Datenpaket 1 : Programmpaket 67 Aufbau der DAB-Datenrahmen Useful data length: Die nutzbare Länge des Datenfeldes wird durch Flags Bit 0 bis Bit 6 beschrieben und erfassen damit einen Speicherbereich von 0 bis 91 Byte der im zugehörigen Datenfeld zur Verfügung steht. Useful data field: In diesem Feld werden die Nutzdaten der entsprechenden Servicekomponente als Teil des MSC übertragen. Padding: Um immer die standardisierte Länge zu erreichen, ist es zeitweise notwendig, daß das Paket mit Nullen aufgefüllt wird. Dafür dient das Paddingfeld. Packet CRC: Zur Sicherung des Packet Headers wird darüber eine Prüfsumme nach dem Generatorpolynom G(x) (Å Gleichung 3.2) gebildet. Gleichung 3. 2 : G (x ) = x 16 + x 12 + x 5 + 1 [10] Das Generatorpolynom aus Gleichung 3.2 ist standardisiert in der Recomendation X.25. 3.3.3 Paketmode -Transportebe ne Die Abbildung 3.4 zeigt den Aufbau der Data Groups im Main Service Channel. Prinzipiell bestehen Data Groups aus einem Group Header, einem Session Header, einem Prüfsummenzeichen und einem m Byte langen Datenfeld. Die Zusammensetzung der Header und Datenfelder wird in den folgenden Unterabschnitten analysiert und beschrieben. 68 Aufbau der DAB-Datenrahmen m byte MSC data group header Session header MSC data group data field b15 b0 MSC data group CRC b14 b0 Segment number User Access field (1 + n) Byte b15 Last b7 b5 Rfa b7 Extension flag b6 CRC flag b5 Session flag b4 User Access flag b3 b0 Data group type b7 b4 Continuity index b3 b0 Repetition index b4 Transport Id flag b3 b0 Length indicator b15 b0 Transport Id End user address field b15 b0 Extension field Abbildung 3. 8 : Struktur von der Main Service Channel Data Group [10] Data Group Header Extension Flag: Im Extension Flag erfolgt ein Verweis ob das Erweiterungsfeld existiert. 0 : kein Erweiterungfeld 1 : Erweiterungsfeld CRC Flag: Mit diesem Flag wird eine Aussage getroffen ob ein Prüfsummenzeichen der Data Group folgt. 0 : 1 : kein Data Group CRC Data Group CRC existiert Session Flag: Das Flag markiert ob eine Segmentnummer und das Last Flag in der Data Group vorhanden sind. 0 : kein Last Flag und Segmentnummer 1 : Segmentnummer und Last Flag vorhanden User Access Flag: Dieses Bit gibt Auskunft ob ein User Access Field present ist. 0 : kein User Access Field 1 : User Access Field ist vorhanden 69 Aufbau der DAB-Datenrahmen Data Group Type: Verschiedene Gruppentypen beschreibt der Group Type in einer Auflösung von 4 Bit. Einige der Typen sind für die Zukunft reserviert. b3 b0 0000 0001 0010 0011 0100 0101 Gruppentyp General Data Botschaften mit beschränktem Zugriff (für betitelte Management und Checking Botschaften) grundlegende Daten und limitierte Zugriffe MOT (Multimedia Object Transfer) Header Informationen MOT Daten MOT Daten und eingeschränkte Zugriffe Tabelle 3.6 : Kodetabelle der verschiedenen Data Group Typen [10] Continuity Index: Der 4 Bit-Wert wird jedesmal inkrementiert, wenn eine einzelne MSC Data Group mit einem anderen Inhalt als die momentan zu übertragenden Datengruppen haben gesendet wird. Repetition Index: Dieser Index zählt die noch anstehenden Wiederholungen einer Datengruppe mit gleichem Inhalt. Der Binärcode 1111 signalisiert eine wiederholte Fortsetzung für eine nicht begrenzte Zeitdauer. Extension Field: Im Extension Field werden Informationen für einen bedingten Zugriff auf die Datengruppen (sogenanntes DGCA - Data Group Conditional Access) übertragen. Session Header Last: Durch das Last Flag wird erkannt ob es das letzte Segment ist oder ob noch Segmente folgen. 0 : weitere Segmente folgen 1 : letztens Segment Segment Number: Von 0 bis 32 767 Segmente können durch das 15 Bitfeld indiziert werden. User Access Field Rfa: Mit dem 3 Bit Feld lassen sich User Access Fields für die Zukunft reservieren. Transport Id Flag: Die Existenz eines Transportbezeichners läßt sich mit Hilfe dieses Flags erkennen. 0 : kein Transportbezeichnerfeld 1 : Transportbezeicherfeld wird genutzt Length Indicator: Der Wert des 4 Bitwortes beschreibt wie lang (in Byte) die Transport Id und das End User Address Field ist. 70 Aufbau der DAB-Datenrahmen Transport Id: Die 2 Byte der Transport Id beschreibt einen einmaligen Bezeichner eines Datenobjektes (Header- und File-Informationen) von einem Stream auf solche Objekte. Sie kann genutzt werden um zu erkennen, welche Informationen zu bestimmten Objekten gehören oder auf welche sie sich beziehen. End User Address Field: In diesem Feld steht die Endnutzeradresse Message Group Data Field Das Message Group Data Field transportiert die eigentlichen Daten und kann eine maximale Größe von 8 192 Byte erreichen. 3.3.4 Zusammenhang von Netw ork- und Transport-Ebene im Paketmodus In der folgenden Grafik werden die logischen Verbindungen von Data Group Level (Network Level) und Packet Level (Transport Level) an einem Beispiel dokumentiert. Data Group level MSC data group header Packet Header Address j First = 1 Last = 0 Packet data field MSC data group CRC MSC data Packet CRC Packet Header Packet data field Address j First = 0 Last = 0 Packet CRC Packet Header Address j First = 0 Last = 1 Packet CRC Padding Packet Level Abbildung 3.9 : Logische Verbindungen und Zusammensetzung von Network und Transport Level [10] 71 Aufbau der DAB-Datenrahmen 3.4 Multiplex Configuratio n Information In den Multiplex Configuration Informations (MCIs) wird beschrieben wie sich ein DAB-Multiplex zusammensetzt. Mehrere verschiedene Dienste und Programme sind in ein Ensemble eingeschachtelt und zugänglich. Die wichtigste Programmkomponente wird als Hauptprogramm oder Hauptdienst bezeichnet. Normalerweise ist der Hauptservice die Audioübertragung. Es ist aber durchaus möglich, als Hauptdienst den Datentransfer festzulegen. Alle anderen Programme werden mit Sekundärprogramm bezeichnet. Mit Hilfe der Abbildung 3.10 wird die Strukturierung eines Ensembles verständlich. Ein Tuner empfängt ein komplettes Ensemble. Nachfolgende Kanaldekoder können durch entsprechende Abstimmung und Programmierung aus dem Ensemble einen Sender (Programm) herauslösen und dekodieren. Bei der Dekodierung wird analysiert, welche Programmeigenschaften (Service Components) dem ge-wählten Sender zugeordnet sind. Dabei kann es sich um Verkehrsinformationen, alternative Sende-frequenzen und dergleichen handeln. Mit der Erkennung des Programmumfangs (Sender und zusätzliche Informationen) werden die zugehörigen Teilkanäle und/oder der entsprechende Teil des Fast Data Information Channels (FDIC) ermittelt. DAB Ensemble One Ensemble Services Service Components MCI Alpha 1 Radio Audio Beta Radio Alpha TMC Alpha SI Alpha 1 Radio Audio 2nd-ry Audio Audio SI FIDC Fast Information Channel SubCh 0 SubCh 2 SubCh 3 SubCh 4 SubCh 5 SubCh 63 Main Service Channel Abbildung 3.10 : Beispiel für den Aufbau einer DAB-Programm Struktur [10] 72 Aufbau der DAB-Datenrahmen Die Strukturen der Teilkanäle sind bis auf den Teil Größe und Schutz gleich aufgebaut. Type 0 field for extension 1 3 - 4 byte b15 b10 SubChId b9 b0 Start Address b7 or b15 Short/Long 7 bit or 15 bit Size and protection Short b6 Table switch b5 b0 Table index Long b14 b12 b11 b10 b9 b0 Option Protection level Sub-channel size Abbildung 3.11 : Aufbau des Teilkanals [10] SubChId : Mit einem 6 Bit Binärfeld wird der Teilkanal bezeichnet Start Address : In der Startadresse wird in einem Bereich von 0 bis 863 (durch 10 Bit-Feld) der Wert der ersten CU gespeichert. Short/Long : Durch dieses Flag wird die kurze von der langen Teilkanalvariante unterschieden. 0: kurze Form (Einsatz in der UEP-Sicherung) 1: lange Form (Nutzung durch EEP-Sicherung) Short Form Table Switch: Bei der Kurzform des Teilkanals gibt das Table Switch Flag Auskunft über den Schutzpegel in Abhängigkeit der Datenrate des Tonsignals. 0: Nutzung der Kennwerte (nach Table 7, ETS 300 401, May 1997 bzw. Tabelle 3.7) 1: reserviert für Erweiterungen 73 Aufbau der DAB-Datenrahmen Index 0 1 2 3 4 5 6 7 8 9 : : 63 Sub-channel size (CU) 16 21 24 29 35 24 29 35 42 52 : : 416 Protection level 5 4 3 2 1 5 4 3 2 1 : : 1 Bit rate (kbit/s) 32 32 32 32 32 48 48 48 48 48 : : 384 Tabelle 3.7 : Gegenüberstellung von Schutzpegeln und Teilkanalgröße bzw. Datenrate [10] Bei den Werten in der Tabelle 3.7 handelt es sich um einen Auszug aus der Tabelle 7 von Seite 43 des DAB-Standards ETS 300 401 (vom Mai 1997). Table index: In dem Indexfeld wird der Index der in Tabelle 3.7 dargestellten Werte übertragen. Long Form Option: Mit dem 3 Bitfeld können bis zu 8 Optionen indiziert werden. Im aktuellen Standard werden davon nur 2 genutzt. Option 000 : Daten des Schutzpegels vom Typ A werden in dem Binärfeld Protection level (Å Abbildung 3.7) indiziert. Schutzpegel / Binärkode Faltungskoderate Subkanalgröße (CUs) 1-A / 00 0,25 12 n 2-A / 01 0,375 8n 3-A / 10 0,5 6n 4-A /11 0,75 4n Tabelle 3.8 : Schutzpegel für verschiedene Faltungskoderaten [10] 74 Aufbau der DAB-Datenrahmen Option 001 : Analog der Option 000 werden auch hier die Schutzpegel mit dem Bitfeld Protection level festgelegt. Der Unterschied dabei sind die andere Faltungskoderate und die größeren Teilkanäle. Schutzpegel / Binärkode Faltungskoderate Subkanalgröße (CUs) 1-B / 00 0,444 27 n 2-B / 01 0,57 21 n 3-B / 10 0,666 18 n 4-B /11 0,8 15 n Tabelle 3.9 : Schutzpegel für verschiedene Faltungskoderaten [10] 3.5 Service Organization Service structure in Type 0 field extension 2 b15 or 31 SId b15 b12 Country Id b0 b7 Local flag b6 b4 CAId b3 b0 Number of service components b11 b0 Service reference Service comp. descript. 1 Service comp. descript. n P/D = 0 b15 b14 TMId b31 b24 ECC b15 b12 Country Id b11 b0 Service reference b13 b0 P/D = 1 TMId = 00 (MSC Stream Audio) b13 b8 ASCTy b7 b2 SubChId b1 P/S b0 CA flag TMId = 01 (MSC Stream Data) b13 b8 DSCTy b7 b2 SubChId b1 P/S b0 CA flag TMId = 10 (FIDC) b13 b8 ASCTy b7 b2 FIDCId b1 P/S b0 CA flag b1 P/S b0 CA flag TMId = 11 (MSC Packet Data) b13 b2 SCId Abbildung 3. 12 : Darstellung der Servicestruktur [10] SId (Service Identifier): Durch die 16 oder 32 Bit-Bezeichner ist das Programm (der Service) zu identifizieren. Die Länge des Bezeichners wird mit dem P/D-Flag bestimmt. 75 Aufbau der DAB-Datenrahmen Beschreibung des SId: Country Id: In dem 4 Bitfeld ist die Programmidentität gespeichert. Die Organisation der 4 Bit ist in der RDS-Spezifikation EN 50067 (Anhänge D und N) beschrieben. Service Reference: In diesem Bitfeld befinden sich Informationen zur Anzahl der Programme ECC (Extended Country Code): Die Bitfolge in diesem Segment beschreibt die Herkunft des Programms noch genauer als die Country Id. Wie die Country Id wird ECC in der RDSSpezifizierung EN 50067 genauer beschrieben. Local Flag: Das „Local Flag“ gibt Auskunft darüber, ob das Programm über das ganze Gebiet abgestrahlt wird oder nur in einigen Bereichen. 0: Abstrahlung im gesamten Gebiet 1: Abstrahlung in Teilgebieten CAId (Conditional Access Identifier): Der Code des CAId-Segmentes beschreibt nach welchem Verfahren der Benutzerkode verschlüsselt wird. B6 .. b4 0 0 0 Keine Zugriffseinschränkung 0 0 1 Verschlüsselung nach NR-MSK 0 1 0 Eurocryptkodierung nach EN 50094 Number of service components: In diesem Feld wird die Anzahl der Programmkomponenten angezeigt. Für den 16 Bit-SId sind maximal 12 und für den 32 Bit-SId werden nur 11 Programmkomponenten erlaubt. Programmkomponentenbeschreibung: TMId (Transport Mechanism Identifier): Mit 2 Bit lassen sich 4 Transportarten identifizieren. b15 b14 0 0 MSC mit kontinuierlichem Datenfluß für Audio 0 1 MSC mit kontinuierlichem Datenfluß für Daten 1 0 FIDC 76 Aufbau der DAB-Datenrahmen 1 1 MSC im Paketmodus für Daten ASCTy (Audio Service Component Type): Von diesem 6 Bit breiten Binärwort werden derzeitig nur die niedrigsten 2 Bit genutzt. b13 b8 000 000 Musik im Vordergrund 000 001 Musik im Hintergrund 000 010 Multikanal Tonerweiterungen SubChId (Sub-channel Identifier): Mit 6 Bit wird der Teilkanal bezeichnet in dem die Programmkomponenten übertragen werden. P/S (Primary/Secondary): Am P/S-Flag ist zu erkennen, ob die Programmkomponente primär oder sekundär ist. 0 : Komponente ist sekundär 1 : primär CA-flag: Durch dieses Flag wird das Vorhandensein einer Zugriffssteuerung dem Empfänger mitgeteilt. 0 : ohne Zugriffssteuerung 1 : mit Zugrffssteuerung DSCTy (Data Service Component Type): 6 Bit informieren über den Typ der Datendienstteile. b13 .. b8 000 000 Daten nicht spezifiziert 000 001 Verkehrsdurchsagekanal (Traffic Message Channel – TMC) 000 010 Notrufsystem (Emergency Warning Systems – EWS) 000 011 interaktives Textübermittlungssystem (Interactive Text Transmission System – ITTS) 000 100 Paging 111 100 Multimediaobjektübertragung (Multimedia Object Transfer – MOT) 111 101 geschütztes Programm ohne DSCTy 77 Aufbau der DAB-Datenrahmen 111 110 geschütztes Programm mit DSCTy (Å Data Service Component Type Extension Table) 111 111 DSCTy (Å Data Service Component Type Extension Table) Für den FIDC mit einer TMId = 10 (binär) gelten nur Eintragungen in Verbindung mit FIG vom Typ 5. FIDCId (Fast Information Data Channel Identifier): Das 6 Bit breite Feld identifiziert die im FIDC übertragene Programmkomponente. b7 b5 b4 b2 TCId Extension Struktur des FICDCId [10] SCId (Service Component Identifier): Die 12 Bit der SCId enthalten eine für das Ensemble einmalige Information zu der Programmkomponente. Programmkomponenten im Paketmodus mit oder ohne Zugriffssteuerung: Service component structure in Type 0 field extension 3 b15 b4 SCId b3 b1 Rfa b0 SCCA flag b7 b6 Rfu b5 b0 DSCTy b15 b10 SubChId b9 b0 Packet address b15 b0 SCCA Abbildung 3. 13 : Struktur des Programmkomponentenfeldes im Paketmodus [10] Rfa: Dieses Flag ermöglicht eine zukünftige Erweiterung der Struktur. SCCA flag (Service Component Conditional Access flag): Dieses Flag teilt dem Empfänger mit ob, in der Struktur ein SCCA-Feld folgt. Rfu: Mit dem Rfu-Feld können noch bis zu drei zukünftige Erweiterungen des DSCTy kodiert werden. Packet Address: Die 10 Bit große Adresse gibt an, in welcher Programmkomponente das Paket transportiert wird. 78 Aufbau der DAB-Datenrahmen SCCA (Service Components Conditional Access): Der 16 Bit-Wert dieses Feldes enthält Parameter für den Descrambler, um von einem Scrambler verschlüsselte Daten wieder in Klartext zurückzuwandeln. Die in der Abbildung 3.9 aufgeführten Felder SCId, DSCTy und SubChId sind in den vorangegangenen Beschreibungen schon mehrfach erläutert worden. Programmkomponenten mit Zugriffssteuerung im Streammodus bzw. FIC: Service component structure in Type 0 field for extension 4 b7 Rfa b6 M/F b5 b0 SubChId/FIDCId b15 b0 SCCA Abbildung 3.14 : Programmkomponenten im Streammodus oder FIC [10] Rfa: Das Rfa-Flag ermöglicht eine zukünftige Erweiterung dieser Struktur. M/F: Im M/F-Flag wird festgelegt ob eine SubChId- oder eine FIDCId-Information folgt. 0: MSC und SubChId folgen 1: FIC und FIDCId folgen Daten-Programmkomponententyperweiterungen: DSCTy Extension in Type 0 Field for extension 7 b7 b6 Rfa b5 b4 TMId b3 b0 Service component Number of service description 1 components Service component description n TMId = 01 (MSC stream data) b15 b10 SubChId b9 b0 Ext DSCTy TMId = 10 (FIDC) b15 b10 FIDCId b9 b0 Ext DSCTy b21 b10 SCId b9 b0 Ext DSCTy TMId = 11 (MSC paket data) b23 b22 Rfa Abbildung 3.15 : Aufbau des DSCTy-Erweiterungsfeldes [10] 79 Aufbau der DAB-Datenrahmen ExtDSCTy (Extended Data Service Component Type): Der Wert des 10 Bit-Feldes bezeichnet den Eintrag in einer der 2 nachfolgend standardisierten „DSCTy Extension“-Tabellen: Code 111 110 : - markiert die programmspezifische Erweiterungstabelle, - ist definiert für geschützte Programme, - nicht standardisiert; Code 111 111 : - allgemeingültige Tabelle, - wird in der Zukunft standardisiert, - besitzt eine international einheitliche Form; Die Eigenschaften der hier nicht explizit beschriebenen Elemente wurden in vorangegangenen Seiten schon erläutert. Globale Beschreibung der Programmkomponenten: Type 0 field for extension 8 b15 or 31 b0 b7 SId Ext. flag b6 b4 Rfa b3 b0 SCIdS b6 b5 b0 b7 b7 b0 MSC/FIC SubChId/ L/S flag Rfa flag FIDChId Short form (L/S = 0) b15 b14 b12 b11 b0 L/S flag Rfa SCId Long form (L/S = 1) Abbildung 3.16 : Darstellung des globalen Definitionsfeldes [10] L/S flag: Mit dem es Flag L/S wird zwischen einer langen und kurzen Datenstruktur unterschieden. 0 : Kurzform des globalen Definitionfeldes 1 : Langform des globalen Definitionsfeldes In der kurzen Struktur werden die Teilkanalbezeichner oder FIDC-Bezeichner übertragen. Welcher der Identifier mit dem Feld übertragen wird läßt sich am MSC/FIC-Flag erkennen. Bei langen Strukturen findet die Übertragung der Programmkomponentenbezeichner statt. Um die Longform-Struktur zukünftigen Bedürfnissen anzupassen, können mit dem Rfa-Bitfeld noch sieben weitere Definitionen für das nachfolgende 12 Bit lange Feld bestimmt werden. 80 Aufbau der DAB-Datenrahmen Type 0 field for extension 0 b15 b0 EId b15 b14 Change flag b13 AI flag b12 b8 b7 b0 0 - 19 0 - 249 CIF Count b7 b0 Occurence change 0 - 249 b15 b12 b11 b0 Country Id Ensemble reference Abbildung 3.17 : Struktur des Ensembleinformationsfeldes [10] EId: Mit den 16 Bit Ensemblebezeichner werden die 4 Bit für den Landeskode (eine Grobstruktur) übertragen. Das 12 Bit lange Ensemblereferenzfeld indiziert das Ensemble für den nationalen Gebrauch. Change flag: Die 2 Bit des Change-Flags informieren, ob und welche Änderungen folgen. Die vier möglichen Zustände werden nachfolgend beschrieben: b15 b14 0 0 : keine Änderungen, es folgt kein Ereignisänderungsfeld (Occurrence change field) 0 1 : nur Organisierung der Teilkanalkodierung 1 0 : nur Organisierung des Programms 1 1 : Organisierung des Programms und des Teilkanals Al flag: In diesem Flag wird über das Vorhandensein zugänglicher Alarmbotschaften informiert. Bei dem Wert 0 kann auf die Informationen nicht zugegriffen werden. CIF count: Der Zähler für CIFs arbeitet nach Modulo-5 000. Für die Zählung nach Modulo-5 000 wurde der Zähler in einen 5 Bit und einen 8 Bit Zähler unterteilt. Mit den oberen 5 Bit wird ein Zahlenbereich von 0..19 (Modulo-20) abgedeckt. Der untere 8 Bit-Zähler zählt von 0..249 (Modulo-250). Occurence change: Die 8 Bit dieses Feldes „Ereignisänderung“ korrespondiert mit dem 8 Bit-Teil des CIF-Zählers. Hier wird der Wert für die neuen Einstellungen angezeigt. Eine ausführlichere Beschreibung der DAB-Datenrahmen und die Parameterlisten für den Rahmenaufbau können im Standard nachgelesen werden. Der Standard ist als Datei auf dem zur Arbeit gehörenden Datenträger abgelegt (Å Datenträgerinhalt). Zudem wurden während der Anfertigung dieser 81 Aufbau der DAB-Datenrahmen Arbeit unter anderem die Standards ETS 300 401 und ETS 300 799 von dem European Telecommunications Standards Institute (ETSI) im Internet frei zugänglich. Unter der URL-Adresse „http://www.etsi.org/“ ist die ETSI im Internet vertreten. 82 Bussysteme und Datenformate 4 Bussysteme und D atenformate Im folgenden Abschnitt werden das Protokoll und die Arbeitsweise des I²C-Busses beschrieben. Erläutert werden unter anderem der Single-Master- bzw. Multi-Master-Betrieb und die verschiedenen Buszustände. Das Kapitel I²S-Datenformat informiert über die Ausgänge der Analogdaten des MPEG-Dekoders und deren mögliche Aufarbeitung. In weiteren Kapiteln werden die schon im Abschnitt „Realisierung“ begonnenen Überlegungen zum Aufbau der Datenerfassung (im Empfänger) und die Verteilung der Hardware zwischen Versuchsboard und PC angestellt. Um den Aufwand für Aufbau und Betrieb niedrig zu halten, wurde der Einsatz von PC-Einsteckkarten überlegt. Vor- und Nachteile über den allgemeinen Einsatz solcher Karten wurden schon bei der Realisierungsbeschreibung der verschiedenen Empfängerkonzepte betrachtet. Mit kurzen Worten werden verschiedene Buserweiterungssysteme vorgestellt und deren Vor- und Nachteile beschrieben. Diese Abschnitte sollen Anregungen für mögliche Weiterent-wicklungen des Versuchsboards geben, damit dessen Zukunftstauglichkeit gewährleistet werden kann. 4.1 I²C-Bus Die auf dem Board vorhandenen Komponenten, wie der Tuner, der Kanaldekoder und so weiter sind mit einem I²C-Bus verbunden. Über diesen Bus werden die Einstell- und Abgleicharbeiten der einzelnen Empfängerbaugruppen ermöglicht. Bevor das Programm für die I²C-Bus-Emulation beschrieben wird, werden die Eigenschaften des I²C-Bussystems und -protokolls erörtert. Philips entwickelte für die Unterhaltungsindustrie ein Bussystem mit dem Namen Inter-IC-Bus (InterIC-Bus = IIC-Bus bzw. I²C-Bus). Die immer weiter voranschreitende Integration von Eigenschaften und Diensten zu komplexen Schaltungen und Schaltkreisen ermöglicht heute schon komplette Steuerungen von Laufwerken in Kassettenabspielgeräten und Videorecordern mit nur einem IC. Der I²C-Bus ermöglicht eine recht einfache Kommunikation zwischen mehreren solcher komplexen ICs. 83 Bussysteme und Datenformate Einige herausragende Eigenschaften des I²C-Busses: • 2-Drahtbus zuzüglich Masse als Bezugspotential (je Leitung für serielle Daten und Bustakt) • Adressierung von einzelnen Schaltkreisen • zum direkten Datentransfer zum Teil mögliche Änderung der Adressierung bestimmter Schaltkreise via I²C-Bus • Multimasterfähigkeit • Betrieb verschieden schneller Schaltkreise auf einem Bus durch automatische Taktsynchronisierung • paralleler Betrieb von Schaltkreisen, welche unterschiedlichen Logikfamilien angehören, beispielsweise TTL-Technik in Verbindung mit CMOS und/oder der neuen Low Volt-Technik (mit Betriebsspannungen von 3,3 Volt und weniger) Abbildung 4.1: SDA Startkondition (S) laut I²C-Spezifikation von Philips [26] SCL S Im Transferprotokoll des Busses ist für den Übertragungsbeginn eine sogenannte Startkondition festgelegt. Die beiden Leitungen für die seriellen Daten (SDA) und den Takt (SCL) liegen im Ruhezustand auf High. Beim Start eines Datentransfers zeigt eine fallende Flanke der SDA-Leitung den am Bus hängenden Komponenten an, daß eine Datenübertragung ansteht (Å Abbildung 4.1). Abbildung 4.2 : SDA Stopkondition (P) laut I²C-Standard [26] SCL P 84 Bussysteme und Datenformate Für das Ende eines Datenaustausches auf dem Bus wird die laut Standard vereinbarte Stopkondition (Å Abbildung 4.2) verwandt. Um Daten zwischen Sender und Empfänger zu übertragen, müssen die Informationen auf der SDALeitung anliegen bevor ein Taktsignal kommt. Mit jedem Taktsignal (Å Abbildung 4.3) wird ein Bit zum Empfänger übertragen. SDA SCL 1 8 9 MSB LSB ACK Abbildung 4.3 : Darstellung zum zeitlichen Ablauf der Datenübertragung [26] Für die Datenübertragung wird zunächst ein sogenannter Master aktiv. Master sind Baugruppen an einem Bus, welche für die Zeit des Transfers die Bussteuerung übernehmen. Im Gegensatz dazu wird ein sogenannter Slave von einem Master aufgerufen, Daten zu empfangen oder zu senden. Zum Beginn einer Datenübermittlung sendet der Master generell die oben erwähnte Startkondition. Auf das Startsymbol folgt die Adresse des Slave-Schaltkreises. Adressen des I²C-Bussystems haben eine Länge von 7 Bit. Im 8. Bit des ersten gesandten Byte wird dem Slave mitgeteilt ob er Daten empfangen oder senden soll. Bei geradzahligen Adressen schreibt der Master zum Slave. Handelt es sich um eine ungerade Schaltkreisadresse, dann werden die Daten durch den Master vom Slave ausgelesen. Bei jedem Datenaustausch wird ein Acknowledge-Bit gesendet. Der Sender der Informationen legt die SDA-Leitung auf High. Dabei werden die Treiberausgänge des Senders hochohmig und die PullupWiderstände ziehen den SDA-Kanal auf High-Pegel des Busses. Während der Master einen Taktimpuls erzeugt, zieht der Empfänger den Pegel von SDA auf Low. Falls ein Slave Receiver die Daten nicht quittiert (SDA-Leitung bleibt während des Acknowledgetaktes High) schickt der Master eine Stopkondition über den Bus. Weiterhin besteht die Möglichkeit, Schaltkreise mit unterschiedlich schnellen I²C-Schnittstellen auf einem Bus zu betreiben. Jeder Master generiert das SCL-Signal selbst. Bei einem Verbindungsaufbau zwischen unterschiedlich schnellen ICs hält der langsamere Schaltkreis die Taktleitung auf Low. Während das Taktsignal auf Low gehalten wird, schiebt der schnellere IC Wait States ein. Wenn alle 85 Bussysteme und Datenformate Schaltkreise die Low-Pegellänge erfaßt haben, wechselt die Taktleitung wieder auf den High-Pegel. Die Länge des High-Pegels wird analog dem Low-Pegel nach dem schnellsten IC bestimmt. In der Multi-Master-Anwendung können mehrere Master zur gleichen Zeit auf den Bus zugreifen. Alle Master reagieren auf denselben Takt. Jeder der Master-ICs sendet Daten über die SDA-Leitung. Dabei wird die Sendefolge der Daten mit der empfangenen Folge verglichen. Auf Grund der auf der SDALeitung entstehenden Wired-AND-Verknüpfung werden alle High-Pegel durch das Low-Signal überdeckt. D.h. Master, die den niedrigsten binären Wert über den Bus versenden, erhalten den Zugriff auf den Bus. Nachdem der Bus vom gerade aktiven Master wieder freigegeben wird, erfolgt der Test zur Zugriffsberechtigung von neuem. Die elektrischen Kennwerte (Å Tabelle 4.1) der Bussignale wurden von der Firma Philips spezifiziert. Kennwerte maximale Eingangsspannung für Low-Pegel bei UB = 5 V minimale Eingangsspannung für High-Pegel bei UB = 5 V maximale Eingangsspannung für Low-Pegel bei UB ≠ 5 V minimale Eingangsspannung für High-Pegel bei UB ≠ 5 V maximale Buskapazität Bereich 1,5 V 3,0 V 0,3 ⋅ UB 0,7 ⋅ UB 400 pF Tabelle 4.1 : Elektrische I²C-Bus Kennwerte [26] Es wird empfohlen, die Busleitungen SDA und SCL mit sogenannten Pullup-Widerständen an die Betriebsspannung zu koppeln. Am besten haben sich für Versuchsaufbauten sogenannte Trimmerpotentiometer geeignet. Mit deren Hilfe kann der Entwickler mögliche Probleme bei der Bus-kapazität (z. B. durch zu lange Busleitungen) bis zu einem gewissen Maße korrigieren. Die obige Beschreibung beschäftigt sich nur mit den direkten I²C-Bussignalen für Schaltkreise mit dem entsprechenden Interface. Verschiedene Hersteller installieren über den Bus noch ein logisches Protokoll. Eine Verbindung zwischen diesem herstellerspezifischen Protokoll und dem I²C-Bus besteht nur in der Übertragung der Daten. Diese speziellen Protokolle sind notwendig, um die vielfältigen Funktionen komplexer Schaltkreise zu steuern. Im vorliegenden Projekt nutzen der Kanaldekoder und der MPEG-Dekoder solche aufgesetzten Protokolle. Programme und Systeme, die den I²C-Bus für den Datenaustausch nutzen (ÅI²C-Bus-Emulationsprogramm), müssen oft speziell auf solche Schaltkreise zugeschnitten werden. Weiterführende Literatur für den I²C-Bus befindet sich bei den entsprechenden Schaltkreisunterlagen und im Datenbuch “I²C-Bus-Schaltungen für professionelle Anwendungen” der Firma Philips. Auch im 86 Bussysteme und Datenformate Internet kann sich der Interessent Infomationen zu diesem Thema holen. Als Beispiele können hier die Homepages der Fima Philips, die Firma Thomson und „The Electronic Pages“ von Sven Rymenants genannt werden. 4.2 I²S-Datenformat In den vorangegangenen Abschnitten wurde immer wieder die Notwendigkeit eines MPEG-Dekoders für die Aufbereitung der DAB-Audiodaten erwähnt. Der im Projekt eingesetzte Dekoderschaltkreis SAA2502 besitzt drei digitale Ausgänge. Der SPDIF-Ausgang (Pin 6) liefert die Daten in einem gerahmten Format. Dabei muß der gesamte Rahmen mit der Samplefrequenz übertragen werden. Jeder der Stereokanäle wird in einem Teilrahmen zu je 32 Bit übertragen. Am zweiten Ausgang (Pins 34 bis 39) wird ein „bitserielles Analogsignal“ ausgegeben. Dieser Ausgang liefert ein pulsdichtemoduliertes Signal. Die Signalbandbreite reicht von 20 Hz bis 20 kHz. Mit dem I²S-Signal des dritten Ausgangs (Pins 2 bis 4) hält sich der Aufwand in Grenzen. Zur Signalausgabe werden drei Leitungen benötigt. Je eine Leitung dient der Übertragung von Takt- (SCLSignal) und Dateninformationen (SD-Signal). Über den dritten Leitungskanal gibt der Dekoder ein Word Select-Signal aus. Von dem Word Select-Signal leitet eine D/A-Wandlerschaltung ab, ob es sich um die Audiodaten für den linken oder den rechten Stereokanal handelt. Als Lösung mit geringem technischen Aufwand stellt sich der Einsatz eines TDA1310 dar. Durch den TDA1310 wird aus dem I²S-Signal ein Stereosignal generiert und ein Doppeloperationsverstärker hebt das Signal auf den Standardpegel von 775 mV an. Für die Audiosignalgewinnung werden an diesem Ausgang nur zwei Schaltkreise mit geringer Außenbeschaltung benötigt. Im Gegensatz dazu sind am bitseriellen Analogausgang umfangreiche Filterschaltungen und am SPDIF-Ausgang eine ausführliche Datenanalyse und Umsetzung in das Analogsignal nötig. 4.3 ISA-Bus Der ISA-Bus besitzt in seinen beiden Varianten (8 Bit und 16 Bit Datenbreite) die größte Verbreitung. Dieses System kam mit dem Mikroprozessor 8088 der Firma Intel auf den Markt. Trotz seines Alters 87 Bussysteme und Datenformate und seiner Einschränkungen in der Datenbreite ist er für Entwickler im privaten und semiprofessionellen Bereich bis heute interessant geblieben. Nachteilig ist bei ISA-Karten der eingeschränkte Adreßraum von 20/24 Bit für die 8/16 Bit-Karten. Die Multimasterfähigkeiten der Firma Intel wurden von IBM nicht angenommen und so wurde der Bus nur als Single-Master-Bus weiterentwickelt. Durch heutige Prozessoren (ab Intel 80286 ) erreicht der Bustakt seine maximale Frequenz von 8 MHz. Vorteilhaft für den Entwickler sind die großen Kontaktabstände und Kontaktflächen. Weiterhin wird der Entwurf einer Steckkarte durch die geringe Anzahl Buskontakte vereinfacht. Für simple Aufbauten kann die Betriebsspannung vom Mainboard und der Takt der Karte vom Bustakt abgeleitet werden. Somit entstehen schnell und preiswert und für viele einfache Anwendungen Schnittstellen mit ausreichenden Kennwerten. In der Zukunft wird aber der ISA-Bus durch gestiegene Hardwareanforderungen in seiner Verbreitung am Computermarkt zurückgehen, denn schon heute aufgestellte Standards für zukünftige Rechner verzichten auf das ISA-Bussystem. 4.4 Local-Bussysteme VL-Bus (VESA Local-Bus) VL-Bussysteme wurden zunächst für schnelle Grafikkarten entwickelt und ab dem Prozessor Intel 80386 eingesetzt. Zum ISA-Bus wurde der Daten- und Adreßbus auf 32 Bit erweitert. In einer späteren Weiterentwicklung hat man eine Verbreiterung auf 64 Bit vorgenommen. Durch einen Bustakt von 40 MHz konnten Transferraten von 80 Mbyte/s (mit 1 Wait State) erreicht werden. Vorbereitungen zum „Busmastering“ (Multimasterfähigkeit) wurden bei der Standardisierung getroffen. Nur in wenigen Anwendungen wird diese Eigenschaft genutzt. Die Integrierung von VL-Bussteuerungen in das Mainboard und die Reduzierung der Slots (Slot – Steckplatz für PC-Einsteckkarten) lassen einen Takt bis 66 MHz zu. Elektromagnetische Störstrahlungen sind bei diesen hohen Taktraten und schlechten Steckern (Direktsteckersystem ähnlich der ISA-Karten) nicht vermeidbar. Mehrere direkt nebeneinander gesteckte VL-Karten beeinflussen sich gegenseitig und versagen teilweise ihren Dienst. Diese Erscheinungen und mangelnder Standardisierungswillen der Hersteller überlassen den Markt dem im nachfolgenden Abschnitt beschriebenen PCI-System. 88 Bussysteme und Datenformate PCI-Bus Bei der Firma Intel wurde der PCI-Bus (PCI - Peripherial Component Interconnect) als Ersatz für den ISA-Bus und als Antwort auf die leistungsstarken Bussysteme EISA und MCA der Firma IBM entwikkelt. Die angestrebten Ziele der ersten PCI-Busgeneration waren kürzere Zykluszeiten des Busses, eine Verbreiterung auf 32 Bit Breite und eine bessere elektromagnetische Verträglichkeit. In der heutigen zweiten Generation besitzt ein Mainboard vier PCI-Slots mit ähnlichen Direktsteckern, wie sie vom MCA-Bus her bekannt sind. Die Adressierung und Datenübertragung erfolgt hier in einem Zeitmultiplexsystem. Der von Intel entwickelte Chipsatz für den PIC-Bus wirkte sich auf große Teile der Mainboardentwicklung aus. Da die Daten in einem Burstmode übertragen werden, ist die Datenmenge nur durch die Adressierung begrenzt. Bei der üblichen 33.3 MHz Taktfrequenz werden in einem 32 Bit PCI-System 66.667 ⋅ 10 Byte/s transferiert. 6 Alle PCI Komponenten (inklusive Host-Bridge, Cache-DRAM-Controller u. ä.) werden wie am Bus eingesteckte Geräte betrieben. Durch sein Konzept arbeitet der Bus unabhängig von der CPU. Mit einer sogenannten Host-Bridge wird die CPU mit dem PCI-Bus verbunden. Durch den einfachen Austausch dieser Bridge kann der Hersteller schnell das Bussystem an einen neuen Hauptprozessor koppeln. Hersteller von entsprechenden Erweiterungskarten müssen nur ein eventuell auf der Steckkarte existierendes BIOS an die entsprechende CPU anpassen. Damit hat der Bus neben den IBMRechnern und IBM-kompatiblen-Rechnern auch in Alpha- und Macintosh-Rechner Einzug gehalten. Ein weiterer Vorzug dieses Busses ist der einfache Aufbau von Multiprozessorsystemen und die damit verbundene Eigenschaft des Busmasterings. 4.5 SCSI-Bus Anfang der 80er Jahre wurde das Bussystem als Schnittstelle für 8“-Festplatten in Großrechnern entwickelt. Um 1986 wurde der SCSI-Bus in den Standards X3.131-1986 und ISO/IEC 9316 erstmals als „SCSI-1“ vereinbart. In der Entwicklung wird seit 1987 an Wide- und Fast-SCSI-Schnittstellen gearbeitet. Damit soll die anfängliche Datenbreite von 8 Bit auf 16 bzw. 32 Bit erweitert werden. Bei dem Fast-SCSI-Interface erhöhte man die Datenrate von 5 ⋅ 10 Übertragungen/s auf das Doppelte. Als 6 Ergebnis wird mit der Kombination von Wide- und Fast-SCSI eine Steigerung der Datenrate auf bis zu 40 Mbyte/s erreicht. Für einen einheitlichen Zugriff auf SCSI-Baugruppen haben sich viele Hersteller (z. B. Maxtor, IBM, DEC, AT&T u. v. a. ) auf den „SCSI-2 Common Access Method“ –Standard (CAM) geeinigt. Die Fa. Adaptec hat den eigenen ASPI-Manager an den CAM-Standard angenähert. Auf dem Gebiet der Peripheriegeräte hat der Bus eine große Verbreitung. Der Erfolg beruht auf den gro- 89 Bussyteme und Datenformate ßen Datenraten, der Datensicherheit und dem Betrieb von maximal sieben Endgeräten an einem SCSI-Controller. Zudem ist durch das Interfacekonzept ein gemischter Betrieb von peripheren Geräten möglich. Durch einen Scanvorgang während des Rechnerstarts werden die am Bus angeschlossenen Geräte nach ihrer Bauart, Typ und mit ihrer Geräteidentnummer (Busadressierung) erkannt. Gerade bei oft wechselnden Peripherien kommt die Überlegenheit des SCSI-Systems zum Tragen. Am Computermarkt werden Geräte mit SCSI-Anschluß als CD-ROM-Laufwerk, Scanner, Festplatten und so weiter angeboten. Vorteilhaft für den Anwender und Entwickler ist bei der Nutzung des Bussystems die Verwendung von generischen Schnittstellen (z. B. die WINASPI.DLL) für die Programmgestaltung und eines Controllers für maximal sieben Endgeräte (extern und/oder intern). Dazu kommen die hohen Datenraten und die hohe Datensicherheit auf dem Kabelbus (Maximallänge ca. 25 m). Einsätze unter verschiedenen Betriebs-systemen (DOS, Windows, Unix u. a.) sind wegen der hohen Verbreitung möglich. Negativ ist das komplexe SCSI-Interface im Endgerät. Kern des Interfaces ist eine Mikrocontrollerschaltung mit einem speziellen Controller (z. B. Am53CF94). Diese Schaltung übernimmt die komplette Steuerung der Datenerfassung und der Datenübergabe an den SCSI-Controllerschaltkreis. Zusätzlich ist noch ein EEPROM-Speicher für das Geräte-BIOS und ein Cache zur Datenzwischenspeicherung notwendig. 90 Programme zum Versuchsboard 5 Programme zum Versuchsboard Die Baugruppen des Versuchsboards müssen wegen ihrer Funktionsvielfalt programmiert werden. Programme übernehmen die Steuerung des Empfängers und der Datenerfassungskarte. Jedes der beiden Steuerprogramme wird separat in den nachfolgenden Abschnitten beschrieben. 5.1 Datenerfassung Der Computer liest die DAB-Daten des SFCO über die im Abschnitt „Datenlogger“ beschriebene Karte aus. Zum Betrieb der Karte liefert die PIO 32-Einsteckkarte der Fa. ELV die notwendigen Steuer- und Datenkanäle. Einen Zugriff auf diese Karte erhält der Anwender durch ein speziell für diesen Anwendungsfall entwickeltes Programm. Als Entwicklungsumgebung wird mit dem Borland C++ 3.1 gearbeitet. Die Funktionalität des Programms „READ_PIO.EXE“ wird durch den nachfolgenden Anwendungsfall erörtert. Zunächst wird die Betriebssystemumgebung DOS oder Windows mit der Option Eingabezeile gestartet. Bei Windows 95 muß dazu nach der Ausschrift „Windows 95 wird gestartet ...“ die Funktionstaste < F8 > gedrückt werden. Es erscheint ein Bildschirm mit verschiedenen Startvarianten (z. B. Starten im geschützten Modus, Starten mit BOOTLOG.TXT und Eingabeaufforderung). Mit der Taste < 6 > wird Windows 95 als „Single Task“-Betriebssystem (Version DOS 7.0) gestartet. Im Gegensatz hierzu handelt es sich in der Windowsoberfläche bei der MS-DOS-Eingabeaufforderung (bekannt als DOS-Box) nur um eine virtuelle DOS-Umgebung. D. h. die Rechenzeit wird vom Betriebssystem vorgegeben und Hardwarezugriffe werden im Normalfall durch virtuelle Gerätetreiber (sogenannte VXDDateien) gesteuert. Direkte Zugriffe auf die Schnittstellen können ohne VXD-Treiber im Ernstfall den Absturz des Betriebssystems nach sich ziehen. Ein Programmstart erfolgt durch Eingabe des Programmnamens inklusive verschiedener Übergabeparameter. Mit Hilfe der Parameter läßt sich das Programm einfach in verschiedenen Rechnern betreiben und eine ständige Anpassung des Quelltextes sowie eine daraus folgende Neuübersetzung des Programms werden hinfällig. Nachfolgende Parameter und deren Reihenfolge sind für den einwandfreien Lauf des Programms notwendig: Dateiname: Der Name steht für die Datei, in welcher die vom Kanaldekoder gewonnenen Informationen gespeichert werden. 91 Programme zum Versuchsboard Blockanzahl: Die Anzahl der Datenblöcke (zu je 16 Bit) bestimmt die Größe der Datei. Das schnelle Erreichen der Systemgrenzen in punkto Dateigröße und Datenrate ist nicht zu unterschätzen. Portadresse: Mit dieser Adreßangabe wird die Adressierung der Karte im PC festgelegt und auf dieser und der nachfolgenden Adresse (Portadresse +1) werden die DABDaten von den Schieberegistern der Datenerfassungskarte gelesen. Für die Übergabe der Adresse muß der Adreßwert mit einem „h“ (h – hexadezimaler Adreßwert) abgeschlossen werden. Offset für CFIC: Der Abstand zur Portadresse muß mindestens 2 Byte sein (Å Anmerkung zur Portadresse). Auf dieser Adresse liegt der Eingangskanal für das CFIC-Signal. Dieses Signal bildet ein Fenster um die vom SFCO kommenden Daten und hebt die FIC-Informationen aus dem DAB-Datenstrom hervor (Å Beschreibung des SAA3500H). Bitposition für CFIC: Durch die Bitposition wird die Nummer des CFIC-Datenkanals (Kontaktstift an den PIO 32-Kartensteckern) festgelegt. Offset für REF: Die Eigenschaften dieses Parameters sind analog dem CFIC-Signal. Hier wird die Adresse der „Receiver Error Flag“-Informationen bestimmt. Bitposition für REF: Analog der CFIC-Werte übergibt dieser Parameter die Position des Kontaktes an der PIO-Karte an das Programm. Offset für RESET: Eigenschaften wie CFIC- und REF-Signale; Bei Fehlermeldungen vom Viterbidekoder via REF-Signal ist das Programm in der Lage, den Datenlogger sooft zurückzusetzen, bis eine Synchronisation zwischen Datenlogger, Empfänger und PC möglich ist. Bitposition RESET: Über den in der „Bitposition RESET“ festgelegten Kontakt kann der Rücksetzbefehl vom PC an die Datenloggerkarte erfolgen. Offset für AUSLESEN: Die Bedeutung dieses Parameters ist analog den CFIC- und REF-Signalen. 92 Programme zum Versuchsboard Bitposition AUSLESEN: Mit dem Wert Bitposition AUSLESEN wird der Kanal bestimmt, mit dem das AUSLESEN erfaßt wird. Ein gesetztes Flag bedeutet die erfolgte Umsetzung in 16 Bit-Werte. Daraufhin kann der Rechner die Daten von der Datenerfassungskarte lesen. Offset für AUSLESEN RESET: Die Eigenschaft ist analog des Offsets von REF und CFIC. Bitposition für AUSLESEN RESET: Nach jedem Auslesen der Schieberegister wird das entsprechende „AUSLESEN“-Flag vom Programm zurückgesetzt. Eine fehlerhafte Anzahl der Parameter wird mit einer Fehlerausgabe quittiert und es folgt ein Hinweis auf den im Programm enthaltenen kurzen Hilfetext. Ebenso kann die Hilfe direkt durch alleinige Eingabe des Dateinamens aufgerufen werden. Für einen gültigen Programmaufruf ist beispielsweise die Eingabe der folgenden Zeile möglich. Read_pio.exe dab_1.dat 100000 330h 2 1 2 2 2 1 2 3 2 2 In der Hauptfunktion main() werden die übergebenen Daten analysiert und entsprechend den folgenden Anforderungen in Hilfsfunktionen vorverarbeitet. Dabei handelt es sich unter anderem um Vergleichsfunktionen (Funktion doppelbelegungen()), mit denen Überschneidungen der Ein- und Ausgangskanäle erkannt werden sollen. Bei derartigen Fehlern endet das Programm mit einer Fehlermeldung und einem definierten Fehlerkode. void main(int argc, char *argv[]) { clrscr; switch (argc) { case 1 : hilfetext(); // Hilfetext ausgeben exit(-1); case 2 : fehlermeldungen(3,-2); case 3 : fehlermeldungen(3,-2); case 4 : fehlermeldungen(3,-2); case 5 : fehlermeldungen(3,-2); case 6 : fehlermeldungen(3,-2); case 7 : fehlermeldungen(3,-2); case 8 : fehlermeldungen(3,-2); case 9 : fehlermeldungen(3,-2); case 10 : fehlermeldungen(3,-2); case 11 : fehlermeldungen(3,-2); 93 Programme zum Versuchsboard case 12 : fehlermeldungen(3,-2); case 13 : fehlermeldungen(3,-2); case 14 : gm_FileName = argv[1]; gm_Block = atol( argv[2]); gm_PortAddr = hextoi(argv[3]); gm_OffsetCfic = atoi(argv[4]); gm_BitNr_Cfic = atoi(argv[5]); gm_OffsetRef = atoi(argv[6]); gm_BitNr_Ref = atoi(argv[7]); gm_OffsetReset = atoi(argv[8]); gm_BitNr_Reset = atoi(argv[9]); gm_Offset_Auslesen = atoi(argv[10]); gm_BitNr_Auslesen = atoi(argv[11]); gm_OffsetAuslesen_Reset = atoi(argv[12]); gm_BitNr_Auslesen_Reset = atoi(argv[13]); doppelbelegungen(); auslesen(); break; default: fehlermeldungen(3,-2); } } Da diese Funktionen keinen unmittelbaren Einfluß auf die Arbeitsweise des Programms haben, so wird auf deren weitere Erläuterung verzichtet. Interessenten können die erwünschten Informationen aus dem Quelltext (Å Anlage C.1) entnehmen. Das Kernstück des Programms ist die Funktion auslesen(). Von dieser Funktion wird nach dem Start die Schaltung mit dem Empfänger und dem PC synchronisiert. void auslesen() { while(cfic_1st(gm_PortAddr, gm_OffsetCfic, gm_BitNr_Cfic)== ’1’) { schaltungsreset(gm_PortAddr, gm_OffsetReset, gm_BitNr_Reset); auslesen_reset(gm_PortAddr, gm_OffsetAuslesen_Reset, gm_BitNr_Auslesen_Reset); } while(cfic_1st(gm_PortAddr,gm_OffsetCfic, gm_BitNr_Cfic)== ’0’) { schaltungsreset(gm_PortAddr, gm_OffsetReset, gm_BitNr_Reset); auslesen_reset(gm_PortAddr, gm_OffsetAuslesen_Reset, gm_BitNr_Auslesen_Reset); } fpos_t lm_filepos; if ((gm_filehandle = fopen(gm_FileName,"w+b")) == NULL) fehlermeldungen(1,-2); fgetpos(gm_filehandle, &lm_filepos); 94 Programme zum Versuchsboard while(lm_filepos <= gm_Block) { if ((ref(gm_PortAddr, gm_OffsetRef, gm_BitNr_Ref)== 0) && (auslesen_flag(gm_PortAddr, gm_Offset_Auslesen, gm_BitNr_Auslesen) == 1)) { auslesen_speichern(gm_PortAddr); fgetpos(gm_filehandle, &lm_filepos); } else { ref_pruefen(); fgetpos(gm_filehandle, &lm_filepos); } } fclose(gm_filehandle); } Am Anfang der Funktion befinden sich 2 Schleifen. Die Aufgabe dieser beiden While-Schleifen ist die Synchronisierung von Empfänger und Datenerfassung inklusive PC. In den vorangegangenen Kapiteln und in der Schaltkreisbeschreibung des SAA3500H (Å Anlage A.2 und A.3) wurde schon mehrfach von dem unformatierten Datenstrom des SFCO gesprochen. Ebenso wurde auch mehrmals auf den CFIC-Ausgang des SAA3500H als Formatierungshilfe verwiesen. Für die Zeit in der das CFIC-Signal auf dem High-Pegel liegt liefert der Kanaldekoder am SFCO-Pin die FIC-Daten. Während eines Low-Signals auf der CFIC-Leitung verlassen die MSC-Informationen den Dekoder. Nach dem Einschalten oder dem Reset des Versuchsboards existiert für die Datenauswertung kein definierter Zustand. Sinnvoll ist aber der Aufzeichnungsbeginn der DAB-Daten, wenn der CFIC-Ausgang eine steigende Flanke ausgibt. Dadurch verläuft die Datenaufzeichnung in der logischen Reihenfolge des DAB-Rahmens und nicht mitten im Rahmen. Im allgemeinen kann der Empfänger in drei Zuständen starten. Das CFIC-Signal liegt bereits an! Durch die gültige Einstiegsbedingung cfic_1st == 1 wird die erste While-Schleife gestartet. In der Schleife wird die Schnittstelle im Pollingverfahren ständig abgefragt. Erst nach einem erkannten Low-Pegel auf der CFIC-Leitung wird diese Prüfung abgeschlossen. In der nachfolgenden Schleife wird durch die Startbedingung cfic_1st == 0 an der Schnittstellenkarte auf die gewünschte High-Flanke getestet. Auf der CFIC-Leitung liegt ein Low-Pegel! Bei einem Low-Pegel auf dem CFIC-Kanal wird die erste While-Schleife nicht angesprungen, da die Eingangsbedingungen bei der Prüfung ein „False“ zurück- 95 Programme zum Versuchsboard geben. Daraufhin wird die erste Schleife übergangen und in die zweite eingesprungen. Der weitere Ablauf gleicht dem unter dem Punkt 1. erwähnten. Die Chance, daß auf der CFIC-Leitung gerade eine steigende oder fallende Flanke erkannt wird, ist relativ unwahrscheinlich. Zudem ist es für den Test- und Lehrbetrieb zulässig, wenn die Datenaufzeichnung erst mit dem folgenden Rahmen begonnen wird. Nachdem ein Low/High-Übergang erkannt wurde, wird die Datei für die DAB-Datenspeicherung erzeugt. Dabei erhält das File den mit den Startparametern mit gm_FileName = argv[1] (Å Funktion main()) übergebenen Namen. Die Datei wird mit dem Modus „Schreiben im Binärformat“ geöffnet. Bevor die Daten ausgelesen werden können wird die aktuelle Position (Position = 0, Dateianfang) des Dateizeigers erfaßt und in der Variablen lm_filepos (vom Datentyp fpos_t) gespeichert. In der folgenden While-Schleife werden die für den Programmablauf wichtigen Funktionen wie auslesen_speichern()und ref_pruefen() aufgerufen. Für die Schleifenlaufzeit ist die beim Start vorgegebene und in der Variable gm_Block gespeicherte Anzahl von Speicherblöcken ausschlaggebend. Durch die Blockanzahl Bnr wird die Dateigröße in 2 Byte-Schritten verändert. Bedingt durch die SFCO-Datenrate nehmen die Dateien für die DAB-Daten viel Speicherplatz SDAB-Daten ein. Das Beispiel 5.1 verdeutlicht diesen Sachverhalt. Beispiel 5.1 : angenommene SFCO-Datenrate: 2,3 Mbit/s S DAB − Daten = 2,3 Gleichung 5. 1 : MBit 1 ⋅ Byte = Bnr s ⋅ 8Bit 2 Für eine Sekunde werden Daten in einem Umfang von 287 500 Byte (143 750 Blöcke) gespeichert (Gleichung 5.1). Würde man statt des Datentyps Unsigned Long nur Unsigned Integer verwenden, so wäre bei einer Blockanzahl von 65 535 (maximal erfaßbare Zeitdauer beträge ca. 456 ms) das Ende erreicht. Sollen Daten über eine Zeitdauer von 1 Minute erfaßt werden, so läge eine Speicherplatzanforderung von 17,25 ⋅10 Byte (8,625 ⋅ 10 Blöcke) vor. 6 6 Bevor das Programm die Daten einlesen kann, werden die Umgebungsvariablen (das REF-Flag und das AUSLESEN-Flag) in einer „If“-Struktur geprüft. Bei einem „True“-Wert als Ergebnis wird die Funktion auslesen_speichern() aufgerufen. Die Funktion fgetpos() ermittelt nach dem Aufruf von auslesen_speichern() die neue Dateizeigerposition. Nach jedem erfolgten Schleifendurchlauf ist ein Vergleich zwischen Dateizeiger und der maximalen Blockanzahl erforderlich (Å Funktion ausle- 96 Programme zum Versuchsboard sen(), while(lm_filepos <= gm_Block)), welcher immer vor Eintritt in die While-Schleife erfolgt. Sollte bei der „If“-Prüfung von ref() und auslesen_flag()als Ergebnis False zurückgegeben werden, so wird als Alternative die Prüfung des Receiver Error Flags mit der Funktion ref() gestartet. Das Programm ermittelt, daß das Ergebnis der Prüfung mit If wahr ist. Daraufhin wird für den weiteren Ablauf das Unterprogramm auslesen_speichern() gestartet. Bei dem Programm auslesen_speichern() handelt es sich um hardwarenahen Kode. In der integrierten Entwicklungsumgebung (IDE) des Borland C++ 3.1 ist es möglich, komplexere Assembleranweisungen in den normalen Programmablauf einzubinden. Somit ist es möglich, für spezielle Anforderungen den Kode zu optimieren (z. B. direkte Hardwarezugriffe) und/oder vorhandenen Programmcode in seiner Ablaufgeschwindigkeit zu verbessern. Bei der Verwendung von fertigen Funktionen aus dem Programmpaket weiß der Anwender nicht wieviel und welche weiteren Unterprogramme noch zusätzlich aufgerufen werden. Die Kodeausführungszeit ist in jedem Fall länger, aber auch sicherer als bei einer vergleichbaren Assemblerroutine. Im vorliegenden Projekt lassen die überschaubaren Programmsequenzen und die höhere Geschwindigkeit einen Einsatz von Assemblerkode zu. Beim Funktionsaufruf wird dem Programm der Wert für die absolute Portadresse übergeben. void auslesen_speichern(int m_Port) { int lm_Value; // Zwischenwert asm { mov dx,m_Port inc dx in al,dx mov ah,al dec dx in al,dx mov lm_Value,ax } auslesen_reset(gm_PortAddr, gm_OffsetAuslesen_Reset, gm_BitNr_Auslesen_Reset); fwrite(&lm_Value,2,1,gm_filehandle); } 97 Programme zum Versuchsboard In das Datenregister wird die entsprechende Portadresse geladen und um 1 erhöht. Das Einlesen der Daten erfolgt zuerst für den High-Teil und in einem zweiten Schritt für den Low-Teil des 16 BitDatenwortes mit dem Inputbefehl. Eine Moveanweisung an den Prozessor lädt das Datenwort vom Akkumulator der CPU in die Variable lm_Value. Nachdem die Daten eingelesen sind, setzt das Programm mit der Funktion auslesen_reset() das Flipflop RSFF1.1 (Å Abschnitt Realisierung, Abbildung 2.19) der Datenerfassungskarte zurück. Der Rücksetzfunktion für das AUSLESEN-Flag folgt das Schreiben in die beim Start vereinbarte Datei. Beim Aufruf der auslesen_reset()-Funktion findet eine Übergabe der absoluten Portadresse, dem Offset für das AUSLESEN_RESET-Signal und der Pinposition des Ausgabekanals statt. Zunächst wird in einer While-Schleife die notwendige Maske für das Resetsignal erzeugt. Nach der additiven Erzeugung der Portadresse gibt die CPU an dem geforderten Portpin einen High-Pegel aus. Durch eine Verzögerung setzt das Programm den Ausgang nach 25 Schleifendurchläufen zurück. Mit der Schleife soll das Resetsignal vom RSFF 1.1 (Å Abbildung 2.19) sicher erkannt werden. void auslesen_reset(int m_Port,int m_Auslesen_Reset,char m_Bit_Pos) { char lm_Bit_Pos = 1; int i = 1; while(i < m_Bit_Pos)) { asm rol lm_Bit_Pos,1 } asm { mov add mov mov out mov ax,m_Port ax,m_Auslesen_Reset dx,ax al,lm_Bit_Pos dx,ax cx,25 dec jnz mov out cx a ax,0 dx,ax } a asm { } } Beim Verlassen dieser Funktion kehrt das Programm in die übergeordnete Funktion auslesen_speichern() zurück. Dem Aufruf von auslesen_reset() folgt nun das Speichern der Daten. 98 Programme zum Versuchsboard Dafür wurde die C++ Standardfunktion fwrite() genutzt. Es findet ein Abspeichern von je einem Block zu je 16 Bit statt. Eine Beschreibung für den Einsatz und die Eigenschaften zu fwrite() bzw. zu den Funktionen fopen(), fclose() und fgetpos() können der entsprechenden Literatur und der zur IDE gehörenden Onlinehilfe entnommen werden. Nach Beendigung von auslesen_speichern() wird im darüberliegenden Programm auslesen() die neue Position des Dateizeigers durch fgetpos() ermittelt und mit der maximalen Blockanzahl in gm_Block verglichen. Wenn, wie im vorangegangenen Test schon erwähnt, bei der Prüfung von if ((ref()== 0) && (auslesen_flag() == 1)) das Ergebnis den Wert False erbringt, dann wird die Else-Alternative dieser While-Schleife aufgerufen. Ausschlaggebend für dieses Ergebnis ist eine Fehlermeldung des REF-Flags vom Kanaldekoder. Im Else-Pfad wird die Funktion ref_pruefen() gestartet. Die Aufgabe dieser Funktion liegt hauptsächlich in der Ermittlung, wann das Receiver Error Flag wieder einen Low-Pegel sendet. Ein auftretendes REF-Flag bedeutet fehlerhafte DAB-Daten. Da sich der Fehler in den Daten eines DAB-Rahmens fortpflanzt, muß der ganze Rahmen als falsch angesehen werden. Aus diesem Grund und wegen einer einfachen Programmgestaltung wird bei einem Fehler die alte Datei überschrieben. Dafür wird zunächst ein fclose() ausgeführt und danach wird die Datei mit fopen(gm_FileName,“w+b“ ) neu angelegt. In der While-Schleife wird die Schaltung solange in den Initialzustand gebracht bis das REF-Signal wieder auf Low liegt. void ref_pruefen() { fclose(gm_filehandle); if ((gm_filehandle = fopen(gm_FileName,"w+b")) == NULL) { fehlermeldungen(2,-2); } while(ref(gm_PortAddr, gm_OffsetRef, gm_BitNr_Ref) == 1) { schaltungsreset(gm_PortAddr, gm_OffsetReset, gm_BitNr_Reset); auslesen_reset(gm_PortAddr, gm_OffsetAuslesen_Reset, gm_BitNr_Auslesen_Reset); } while (cfic_1st(gm_PortAddr, gm_OffsetCfic, gm_BitNr_Cfic) == 1) { 99 Programme zum Versuchsboard schaltungsreset(gm_PortAddr, gm_OffsetReset, gm_BitNr_Reset); auslesen_reset(gm_PortAddr, gm_OffsetAuslesen_Reset, gm_BitNr_Auslesen_Reset); } while (cfic_1st(gm_PortAddr, gm_OffsetCfic, gm_BitNr_Cfic) == 0) { schaltungsreset(gm_PortAddr, gm_OffsetReset, gm_BitNr_Reset); auslesen_reset(gm_PortAddr, gm_OffsetAuslesen_Reset, gm_BitNr_Auslesen_Reset); } } Der Vorgang in den letzten beiden Schleifen dient wieder der Erkennung der steigenden CFIC-Flanke und ist somit analog der am Anfang der Funktion auslesen() stehenden Synchronisierung. Beim Beenden des Programms kehrt die Anwendung zur Auslesen-Funktion zurück. Ist beim Abspeichern der DAB-Rahmen die Dateigrenze erreicht, so wird die While-Schleife nicht mehr ausgeführt und die Datei mit der Bibliotheksfunktion fclose() geschlossen. Für die Hilfsfunktionen ref(), cfic_1st() und auslesen_flag() soll am Beispiel von ref() deren generelle Funktionsweise beschrieben werden. int ref(int m_Port, int m_ref_Offset, char m_Bit_Pos) { char lm_Flag, lm_Bit_Pos; int i = 0; lm_Flag = 0; while(i < m_Bit_Pos) { asm rol lm_Bit_Pos,1 } asm { mov add mov in and mov ax,m_Port ax,m_ref_Offset dx,ax al,dx al,lm_Bit_Pos lm_Flag, al } int j = 1; while(j < m_Bit_Pos) { asm ror lm_Flag,1 } 100 Programme zum Versuchsboard if (lm_Flag != 0) return 1; else return 0; } Nach dem Einsprung in die Funktion wird in der While-Schleife durch Linksschieben eine 1 an die entsprechende Bitposition (Eingangskanal am entsprechenden Port) gerückt. Durch Addition erzeugt das Programm aus der Portadresse und dem Offset die Adresse für den Kanal. Nach dem Laden des Akkumulators in das Datenregister DX, wird mit dem Inputbefehl ein 8 Bit breites Datenwort vom Port gelesen. Eine AND-Anweisung filtert aus dem Low-Teil des Akkumulators das Bit an der Stelle m_Bit_Pos heraus. Mit einer Schleife wird der eingelesene Wert um m_Bit_Pos Stellen zurückgeschoben. Eine If-Anweisung wertet die lm_Flag-Variable aus und bestimmt den Rückgabewert der Funktion. 5.2 I²C-Bus-Emulationspr ogramm Damit den Anforderungen an einen einfachen Schaltungsaufbau und ein Minimum an Schaltkreisen Rechnung getragen wird, ist die programmtechnische Erzeugung von I²C-Bussignalen erforderlich. Um TTL-Signale zu formen, wurde schon im Abschnitt Realisierung der Einsatz eines Bustreiberschaltkreises vom Typ 74HC244 beschrieben. Es handelt sich hierbei um einen 8-kanaligen (2 x 4 Kanäle) Treiberschaltkreis in CMOS-Technik, dessen maximale Betriebsfrequenz oberhalb von 10 MHz liegt. Um den Empfänger (Tuner, Kanaldekoder und MPEG-Dekoder) zu steuern, ist nur der Aufbau eines Single-Master-Systems notwendig. Für die Erzeugung der beiden bidirektionalen I²CBussignale (Å Abbildung 3.31) SCL und SDA ist der Einsatz von 4 unidirektionalen Portleitungen der PIO 32-Karte notwendig. Dabei wird das bidirektionale SDA-Signal in je ein unidirektionales SDA_SEND und SDA_REC zerlegt. Mit dem SDA_SEND-Kanal findet der Datentransport vom Master zum Slave und beim Signal SDA_REC in der Gegenrichtung statt. Im vorliegenden Fall übernimmt der PC oder der eingebaute Mikrocontroller die Aufgaben des Bus-Masters. Die verbliebenen 2 Leitungen werden für den Bustakt SCL und ein Tri State-Signal eingesetzt (Å Realisierung, Steuerungslogik). Analog dem Programm READ_PIO.EXE werden auch zu dem Programm IIC_BUS:EXE Übergabeparameter in der folgenden Reihenfolge und Bedeutung benötigt: Portadresse: Bei der Portadresse handelt es sich um die Adresse der PIO 32Einsteckkarte. Sollte das Programm gemeinsam mit dem Programm 101 Programme zum Versuchsboard READ_PIO.EXE betrieben werden, so ist die Anwendung schon mit einem zur Basisadresse (Kartenadresse) addierten Offset zu starten. Wie bei READ_PIO ist auch hier die Adreßangabe mit einem „h“ abzuschließen. Bitposition SDA_SEND: Dieser Wert beschreibt, über welchen Ausgangskanal des gewählten Ports die seriellen Daten zum Slave-Schaltkreis gesendet werden sollen. Bitposition SDA_REC: Mit der SDA_REC-Position wird der Eingangskanal der Steckkarte näher bezeichnet. Auf diesem Portpin werden die Daten bei einem Lesebefehl empfangen. Bitposition SCL: Der PC legt über diesen Steckkontakt den Bustakt für den Datenaustausch fest. Bitposition Tri State: Bitposition Tri State legt den Kanal fest, von dem die Trennung zwischen SDA_SEND und Bus erfolgt. In der Hauptfunktion main() werden die Übergabeparameter den späteren Erfordernissen durch Konvertierungsprogramme (z. B. Umwandlung der Zeichen in Integer durch den Befehl atoi()) angepaßt und in entsprechende globale Variablen geladen. Nach der Umsetzung in passende Datenformate erfolgt noch der Test, um Überschneidungen bei der Kontaktbelegung zu verhindern. void main (int argc, char *argv[]) { switch(argc) { case 1 : hilfetext(); break; case 2 : fehlermeldungen(1,-1); break; case 3 : fehlermeldungen(1,-1); break; case 4 : fehlermeldungen(1,-1); break; case 5 : fehlermeldungen(1,-1); break; case 6 : gm_PortAddr = hextoi(argv[1]); gm_BP_SDA_SEND = atoi(argv[2]); gm_BP_SDA_REC = atoi(argv[3]); gm_BP_SCL = atoi(argv[4]); gm_BP_TriState = atoi(argv[5]); gm_VAL_SDA_S = conv_BP(*argv[2]); gm_VAL_SDA_R = conv_BP(*argv[3]); gm_VAL_SCL = conv_BP(*argv[4]); gm_VAL_TriSt = conv_BP(*argv[5]); 102 Programme zum Versuchsboard doppelbelegung(); TextShell(); break; default : fehlermeldungen(2,-1); break; } getch(); } Der Start des eigentlichen Programms erfolgt durch den Aufruf der Funktion TextShell(). Damit wird eine Eingabeumgebung im Textmodus gestartet. Nach dem Einsprung in die Funktion wird der Anwender aufgefordert, seine Daten in hexadezimaler Schreibweise (z. B. als 0xf1 anstatt dezimal 241) zu übergeben. Im nächsten Schritt muß der Benutzer angeben, ob es sich um einen einzelnen Befehl oder um eine Gruppe von Befehlen handelt. Gerade Befehlsgruppen sind für die Programmierung des MPEG-Dekoders von Bedeutung. Weiterhin folgen für den Datenaustausch noch die Abfragen zur globalen Adresse (selektiert den Schaltkreis am Bus), der lokalen Adresse (Befehlsregister) und ob es sich um einen Schreib- oder Lesebefehl handelt. void TextShell() { char lm_use_BlockCode = ’n’; char lm_repeat = ’j’; // Blockkode wird verwendet while ((lm_repeat == ’j’)||(lm_repeat == ’J’)) { clrscr(); printf("Übergeben Sie Hexadezimalwerte in der Form 0xAA (AA stellt den Übergabewert \ndar)."); printf("\nFür die Übertragung eines Einzelbefehls oder einer Befehlsgruppe geben Sie die \nentsprechende Anzahl ein: "); scanf("%4i",&gm_Codelaenge); printf("Globale Adresse (IC): "); scanf("%4i",&gm_ChipAddress); printf("Lokale Adresse (Befehl): "); scanf("%4i",&gm_ChipLocalAddress); printf("Daten empfangen oder senden [e/s]: "); scanf("%s[seSE]",&gm_Call_Send); switch { case case case (gm_Call_Send) 'e' : receive_data(); break; 'E' : receive_data(); break; 's' : transfercode(gm_Codelaenge); send_data(); break; 103 Programme zum Versuchsboard case ’S’ : transfercode(gm_Codelaenge); send_data(); break; } printf("Programm fortsetzen? [Ja/Nein] "); scanf("%s[jnJN]",&lm_repeat); } } Mit der Anweisung switch() wird die Variable gm_Call_Send ausgewertet und die entsprechende Case-Funktion aufgerufen. Im Unterschied zu dem Datenempfang mit der Funktion receive_data() werden die zu sendenden Daten zunächst in einem Array (Funktion transfercode()) abgelegt. Die Funktion transfercode() besteht aus einer While-Schleife. Die Anzahl der Durchläufe hängt von dem Übergabeparameter m_CodeSize ab. Durch die Funktion Scanf werden die Werte mit der Formatierung %4i eingelesen. Die Formatierung (Å Onlinehilfe der Entwicklungsumgebung; C++ Literatur) %4i bedeutet, daß die ersten vier Zeichen einer Eingabe bzw. bis zum ersten WhitespaceZeichen eingelesen werden und oktale, dezimale oder hexadezimale Werte als Eingabe erwarten. Gespeichert werden die eingegebenen Daten in dem global erreichbaren Array *gm_CodeArray. void transfercode(int m_CodeSize) { int i = 0; while (i < m_CodeSize) { printf("%i. zu übertragendes Byte:",(i+1)); scanf("%4i",&gm_CodeArray[i]); i++; } } Nach der erfolgten Speicherung wird das Unterprogramm send_data() gestartet. Laut Standard wird als erstes die Startkondition ausgegeben. Darauf folgt das Aussenden der globalen und der eventuell notwendigen lokalen Adresse. Der Kanal- und der Tondekoder arbeiten mit lokalen Adressen, um die Befehle in speziellen Registern abzulegen. Im Tuner ist die Programmierung so einfach gehalten, daß man hier auf die lokalen Adressen verzichten kann. 104 Programme zum Versuchsboard void send_data() { char Data; printf("Protokollausdruck:"); start(); // Startkondition send(gm_ChipAddress); if (gm_ChipLocalAddress > -1) { send(gm_ChipLocalAddress); for (int i = 0; i < gm_Codelaenge; i++) { send(gm_CodeArray[i]); } } else { for (int i = 0; i < gm_Codelaenge; i++) { send(gm_CodeArray[i]); } } stop(); } Bei der Versendung von Befehlen wird der Schleifenzähler zur Indizierung des Befehlsarrays genutzt. Durch die Anweisung send() erfolgt das Aussenden des Befehls. Mit der standardisierten Stopkondition (Anweisung stop()) findet der Sendevorgang a seinen Abschluß. Analog der Sendefunktion ist auch die Lesefunktion receive_data() aufgebaut. Darum wird auf eine Erläuterung von receiver_data() an dieser Stelle verzichtet. Statt dessen folgt eine zusammenfassende Beschreibung für die analog aufgebauten Funktionen start(), stop(), send() und read() am Beispiel von read(). int read() { char lm_Back_Val = 0; asm{ mov dx,gm_PortAddr 105 Programme zum Versuchsboard mov out mov mov al,gm_VAL_TriSt dx,al bx,0 cx,8 mov or out in and or rol mov mov out dec jnz al,gm_VAL_SCL al,gm_VAL_TriSt dx,al al,dx al,gm_VAL_SDA_R al,bl al,1 bl,al al,gm_VAL_TriSt dx,al cx a1 } a1: asm{ mov lm_Back_Val,bl } for (int i = 0; i < gm_BP_SDA_REC; i++) { asm ror lm_Back_Val,1 } acknowledge: asm{ mov mov out or or out mov out dx,gm_PortAddr ax,0 dx,ax al,gm_VAL_SCL al,gm_VAL_TriSt dx,al al,0 dx,al } printf("%x ",lm_Back_Val); return lm_Back_Val; } In der oben dargestellten Funktion read() schaltet der erste Assemblerblock das Tri State-Signal ein, um damit den SDA_SEND-Kanal vom Bus zu trennen. Ebenso findet eine Initialisierung der Register BX und CX statt. In CX befindet sich der Startwert für die im nachfolgenden Block laufende Schleife. Solange nach der Dekrementierung von CX das Register noch nicht Null ist, wird mit der Anweisung jnz a1 (Springe wenn nicht 0 nach a) zum Label „a1“ an den Anfang der Schleife gesprungen. Um 106 Programme zum Versuchsboard das Tri State-Signal auf High-Pegel zu halten, muß dies durch eine OR-Verknüpfung mit dem Signal gm_VAL_SCL am Port ausgegeben werden. Daraufhin wird der Port eingelesen und durch die Anweisung and al,gm_VAL_SDA_R gefiltert. Um dieses Ergebnis mit schon vorangegangenen Durchläufen zu vervollständigen, findet eine Addition mit den Werten des BL Registers statt. Um die richtige Reihenfolge der Daten einzuhalten, wird das AL-Register um eine Stelle nach links gerollt und danach in das Register BL geladen. Die folgenden 2 Schritte setzen das Taktsignal unter Beibehaltung des Tri State-Signals zurück. Nachdem alle Schleifendurchläufe beendet sind, lädt der Prozessor durch die Anweisung mov lm_Back_Val,bl die Daten aus dem BL-Register in eine lokale Hilfsvariable. Eine nachgeordnete While-Schleife rollt den Inhalt von lm_Back_Val um gm_BP_SDA_REC – 1 Stellen nach rechts. Danach entspricht der in der Hilfsvariablen stehende Wert seinem realen Zahlenwert. Das Acknowledge nach I²C-Bus Standard erzeugen die letzten acht Assembleranweisungen. Dabei wird die vom Sender (ausgelesener Schaltkreis) auf High gelegte SDA-Leitung durch den Empfänger (lesender PC) auf Low gezogen. Durch den Befehl „return lm_Back_Val“ wird über den Namen der Funktion read() der Wert von lm_Back_Val zurückgegeben. Zu den obigen Programmbeschreibungen folgen noch einige Anmerkungen: In dem Quellcode werden zur Unterscheidung die globalen Variablen mit „gm_“ (global member) und die lokalen Variablen mit „lm_“ (local member) bezeichnet. Beide Programme schließen bei Fehlern mit Exit-Funktionen. Damit ist es dem Anwender möglich, diese Programme als einen Fremdprozeß von einer übergeordneten Anwendung zu starten. Bei Ausführungsfehlern der obigen Programme wird dem aufrufenden Programm ein Fehlercode zur Diagnose und Behebung des Fehlers zurückgegeben. Im eigentlichen Betrieb lt. Konzept dient der SAA2502 in erster Linie der Audiosignalaufbereitung. Darum wurden die Funktionen des I²C-Busprogramms auf die allgemein gültigen Funktionen für den Datentransfer beschränkt. Spezielle SAA2502-Funktionen, wie das Anknüpfen an einen unterbrochenen Datenstrom (schreiben oder lesen von Blöcken) mit Hilfe des Continue-Befehls werden in diesem Programm nicht unterstützt. Bei der Portierung der Quellkodes von 16 Bit auf 32 Bit ist auf die veränderte Gültigkeit der Datentypbereiche zu achten. Beispielsweise handelt es sich bei einem Integerwert für eine DOS-Anwendung um einen 16 Bit-Datentyp. Unter Windows 95 wird der Integerwert in der DIE von Visual C++ als mit 4 Byte Datenbreite (32 Bit) definiert. 107 Programme zum Versuchsboard In den Anhängen A.1 bis A.4 befinden sich Tabellen mit den Befehlssätzen und den zugehörigen Erläuterungen für die I²C-Bussteuerungen von Tuner, Kanaldekoder und Tondekoder. 108 Inbetriebnahme 6 Inbetriebnahme Die geätzten Leiterplatten werden auf Haarrisse und Kurzschlüsse untersucht. Dabei werden eventuelle Fehlerquellen an Hand der vorliegenden Schaltungsunterlagen korrigiert und nachfolgend die Leiterplatten bestückt. Als erste Baugruppe wird das Netzteil (Å Schaltung in der Anlage B.4) auf Funktionstüchtigkeit geprüft. Die vier Betriebsspannungen von 3,3 V, 5 V, 20 V (variabel) und 30 V (variabel) werden ausgemessen. Für den in der Antennenleitung befindlichen Leitungsverstärker wird die erforderliche Spannung am 20 V-Ausgang (P20) eingestellt. Um dem Tuner die notwendige Abstimmspannung zur Verfügung zu stellen, ist der 30 V Versorgung die maximale Spannung zu entnehmen. Sollte der Ausgang mehr als 32 V liefern, so ist eine Begrenzung durch den Einstellregler P30 erforderlich. Die Baugruppe Empfänger wird zum ersten Test mit zwei Labornetzteilen verbunden. Je eine der Spannungssversorgungen werden auf 5 V und 3,3 V eingestellt. Um die Funktionsweise des ResetSchaltkreises DS1233 zu prüfen, wird die 5 V Versorgung abgesenkt. Während die Spannung heruntergeregelt wird, ist der Pegel am Reset-Schaltkreisausgang (Pin 2, Mittelkontakt) zu messen. Das Resetsignal (maximal 0,4 V) sollte bei einer Versorgungsspannung von mindestens 4,5 V lt. Schaltkreisbeschreibung (Å Anlage A.9) ausgelöst werden. Wurde die Betriebsspannung wieder auf 5 V eingestellt, sollte nach ca. 0,5 Minuten ein High-Pegel zu messen sein. Nachdem die teilweisen Funktionstests abgeschlossen sind, werden alle Baugruppen an die Stromversorgung angeschlossen. Im nächsten Schritt erfolgt die Verbindung des I²C-Bussystems zwischen dem Rechner (PIO 32-Einsteckkarte), der Empfängerkarte, der Controllersteuerung und der Tunerbaugruppe. Zwischen dem PC und dem Versuchsboard wird der im Punkt Steuerlogik erwähnte Bustreiber geschaltet. Es ist möglich, daß durch die angeschlossenen Bausteine und die Länge der Busleitungen die Leitungskapazität erreicht oder etwas überschritten wird. Die Folge davon sind von der Spezifikation abweichende High- und Low-Pegel. Aus diesem Grund wurden auf der Mikrocontrollerplatine zwei 5 kΩ−Spindeltrimmer zwischen die Leitungen SCL bzw. SDA und +5 V eingesetzt. Durch diese Trimmer kann eine Anpassung der Pegel erfolgen. Dazu können von dem PC die High- und Low-Signale mit einem simplen Assemblerprogramm auf dem I²C-Bus ausgegeben werden. Als Beispiel für eine mögliche Testfunktion folgt ein Programmstück: 109 Inbetriebnahme void test_pegel(int m_Port, int m_Bit_Pos_SDA_S, int m_Bit_Pos_SCL) { char lm_jn, lm_hl, lm_SDA, lm_SCl; int lm_Val_SDA, lm_Val_SCL, i; lm_jn = ’j’; lm_hl = ’h’; lm_Val_SDA = 1; lm_Val_SCL = 1; i = 1; while(i < m_Bit_Pos_SDA_S) { asm rol lm_Val_SDA,1 } while(i < m_Bit_Pos_SCL) { asm rol lm_Val_SCL,1 } while(lm_jn == ’j’) { clrscr(); printf("High- oder Low-Pegel für SDA ausgeben [0/1]?"); scanf ("%1s",&lm_SDA); printf("High- oder Low-Pegel für SCL ausgeben [0/1]?"); scanf ("%1s",&lm_SCL); if ((lm_SCL == 0) && (lm_SDA == 0)) lm_hl = 0; if ((lm_SCL == 0) && (lm_SDA == 1)) lm_hl = 1; if ((lm_SCL == 1) && (lm_SDA == 0)) lm_hl = 2; if ((lm_SCL == 1) && (lm_SDA == 1)) lm_hl = 3; asm dx,m_Port // Portadresse laden switch(lm_hl) { case 0 : asm mov ax,0 break; case 1 : asm mov ax,lm_Val_SDA break; case 2 : asm mov ax,lm_Val_SCL break; case 3 : asm mov ax,lm_Val_SDA 110 Inbetriebnahme asm or break; ax,lm_Val_SCL } asm out dx,ax printf("Ausgabe wiederholen [j/n]?"); scanf ("%1s",&lm_jn); } } Die hier vorgestellte Funktion dient nur der Ausgabe von verschiedenen Pegelzuständen mit Hilfe der PIO 32-Einsteckkarte. Dabei kann es sich während der Testphase um die Druckerschnittstelle oder auch die PIO 32-Karte handeln. Zu beachten ist hierbei, daß das Tri State-Signal des Bustreibers mit einem Low-Pegel das SDA-SEND-Signal auf den Bus durchschaltet. Wenn alle Signalpegel in ihrem vorgeschriebenen Bereich arbeiten, so kann die Funktionsprüfung des Tuners mit dem I²C-Bus erfolgen. An dem Eingang des Tuners wird ein moduliertes Signal mit der erforderlichen Eingangsfrequenz (z. B. 1 467 MHz) angelegt. Mit einem Spektrumanalysator wird der Ausgang des Tuners während der Abstimmung beobachtet. Um den I²C-Bus zu steuern, wird das Programm IIC_BUS.EXE mit den notwendigen Parametern für die Portadresse und die Positionen für Ein- und Ausgangskanäle gestartet. Entsprechend den schon einmal erwähnten Gleichungen 3.3 und 3.4 (Å Abschnitt Tuner) muß der Teiler für die Abstimmung des Tuners bestimmt werden. Gleichung 3.3 : Gleichung 3.4 : f osc Cw = = f HF + f ZF fosc = 214 ⋅ n14 + 213 ⋅ n13 + 212 ⋅ n12 + 211 ⋅ n11 + 210 ⋅ n10 + 29 ⋅ n9 + 28 ⋅ n8 + 8 ⋅ 7,8125kHz [13] [13] 27 ⋅ n7 + 26 ⋅ n6 + 25 ⋅ n5 + 24 ⋅ n4 + 23 ⋅ n3 + 22 ⋅ n2 + 21 ⋅ n1 + 20 ⋅ n0 Beispiel 4.1 : Tunereingangsfrequenz: 1 467 MHz Tunerausgangsfrequenz: 38,912 MHz Als Oszillatorfrequenz ergibt sich nach Gleichung 3.3 eine Frequenz von 1 505,912 MHz. Unter Verwendung der Gleichung 3.4 erhält man einen Teiler von 24 094,592 (24 095 gerundet). Der Teilerfaktor ergibt im hexadezimalen Zahlenformat den Wert 5E1F. Die Übertragung des Teilerwertes erfolgt in je einem Byte. Bevor die Abstimmung mit dem I²C-Interface erfolgen kann, muß die volle Tuningspannung am Pin 7 des Tuners anliegen. Um den Tuner zu adressieren, muß am Kontakt „Adress Select“ (Pin 11) eine Spannung angelegt werden. Der Adreßbereich des Tuners deckt einen weiten Bereich ab. In der Tabelle 3 der Tunerbeschreibung (Å Anlage A.1) sind die Eckdaten für die Adressierung angegeben. 111 Inbetriebnahme Die Verwendung der Adreßwerte C2 hex (Schreiben) und C3 hex (Lesen) wird empfohlen, da bei dieser Adressierungsvariante einfach ein 5 V Pegel von der Spannungsversorgung auf den Pin 11 gelegt werden kann. Für die Konfiguration des Tuners werden 2 Byte via I²C-Bus übertragen. In dem ersten Byte werden Einstellungen zum Abstimmverhalten, PLL-Regelschleife (ein oder aus) und dem Testmodus transportiert. Der Inhalt vom 2. Byte beschreibt, ob der Tunereingang 1 oder 2 genutzt wird und teilt dem Tuner die gewünschte Bandbreite mit. Um eine Vorstellung für die Tunerkonfiguration zu erhalten, wird eine Datenübertragung im folgenden Beispiel 4.2 beschrieben: Beispiel 4.2 : Wertzuweisungen: - teiler1 = 5E hex (Å Beispiel 1) - teiler2 = 1F hex (Å Beispiel 1) Steuer-Byte conf1 Bit 7 6 5 4 3 2 1 0 conf2 7 6 5 4 3 2 1 0 Bemerkung - 1, Konstante - 0 = niedriger Strom - 1 = hoher Strom – schnelle Abstimmung Testmodus im Normalbetrieb = 0 Analog Bit 5 - 1, Konstante - 1, Konstante - 1, Konstante - 0 = Abstimmung mit PLL (durch I²C-Bus) - relevant fürs Projekt - 1 = Abstimmung durch Tuningspannung am Pin 11 -> Bit 4 = 1 setzen - 0 = 1. Tunereingang - relevant für das vorliegende Projekt - 1 = 2. Tunereingang - 0, Konstante - 0, ungenutzt - 0, ungenutzt - 0, Konstante - 0, ungenutzt - 0, ungenutzt ZF-Bandbreitenumschaltung (im vorliegenden Projekt nicht mehr aktuell durch veränderten Ausgang, Å Abschnitt Tunerumbau - conf1 = CE hex - conf2 = 00 hex 112 Inbetriebnahme Befehlskette auf den I²C-Busleitungen für die obigen Einstellungen: start – adr – ack – teiler1 – ack – teiler2 – ack – conf1 – ack – conf2 – ack – stop Die obige Befehlskette übergibt eine vollständige Tunerkonfiguration. In dem Konfigurationswort (CE00 hex) wird das Front End-Modul auf eine schnelle und digitale Abstimmung durch den I²C-Bus eingestellt. Für den Anwender besteht auch die Möglichkeit einer analogen Tunerabstimmung. In diesem Fall wäre das Konfigurationswort mit dem hexadezimalen Wert DF00 zum Tuner zu über-tragen. Daraufhin kann der Signalkonverter mit der Abstimmspannung am Pin 7 gesteuert werden. Abweichende Befehlsketten werden in der Beschreibung in der Anlage ausführlich erläutert. Man beachte, daß die in der Befehlskette aufgeführten Acknowledges die Rückgabewerte der Baugruppe sind. Wenn die Abstimmung und Konfiguration fehlerfrei funktioniert, kann der Tuner mit dem Satellitenkonverter und dem Kanaldekoder verbunden werden. Ein umfangreicher Test wie für den Tuner ist für den Kanaldekoder und den MPEG-Dekoder ausgeschlossen, da eine einfache Testsignalerzeugung nicht möglich ist. Für eine alternative Funktionsprüfung mit dem DAB-Signal fehlt der Forschungsgruppe seit Anfang Dezember 1998 eine entsprechende DAB-Signalquelle. Aus diesem Grund beschränkt sich die nachfolgend beschriebene Inbetriebnahme für die Schaltkreise SAA3500H und SAA2502 nur auf statische Kennwerte. Die Einstellungen der dynamischen Parameter (z. B. Sub Channel Selection, Zählereinstellung für CIF und Ereigniswechsel o. ä.) können erst optimal mit einem gültigen Signal abgestimmt und/oder im endgültigen Einsatz festgelegt werden. Dem Signalweg folgend wird nun der Kanaldekoder angesprochen. Mit der globalen Adresse D6 hex werden Daten zum Dekoder geschrieben und durch die Adresse D7 hex erfolgt das Auslesen des Schaltkreises. Allgemeine Einstellungen über den Signalmodus (Satellit oder terrestrisch), den ZeitDeinterleaver u.s.w. sind im Steuerregister (lokale Adresse 00 hex) zu speichern. Im folgenden werden die Eigenschaften der Befehle in einer Tabelle beschrieben. Es folgt die Vorstellung eines möglichen Datenwortes und einer Befehlskette. Befehl: Steuerwort lokale Adresse: 00 hex 113 Inbetriebnahme Bit 7, 6 5 4 3 2 1 0 Erläuterung - 00 DAB-Signalmodus IV - voreingestellt - 01 Modus I - 10 Modus II - 11 Modus III - für vorliegendes Projekt relevant - 0 Reinitialisierung - voreingestellt - 1 reserviert - 1 AFC Erfassungsbereich ±15 Träger - voreingestellt / bei 0 ± 63 Träger - 1 AFC Steuerung - voreingestellt / bei 0 AFC unterbinden - 1 Zeit-Deinterleaver ein - voreingestellt / bei 0 Deinterleaver aus - 1 Energie Dispersion MSC - voreingestellt / bei 0 aus Übergabewert: 1101 1111 binär = DF hex = Übergabewert Befehlsfolge: start – adr – ladr – Übergabewert - stop Der nachfolgende Tondekoder wird über eine von 3 DAB3 Schnittstellen mit Informationen vom SAA3500 gespeist. Mit der Teilkanal-ID wird der gewünschte Teilkanal ausgewählt und in den Port des vom Tondekoder genutzten Ausgangskanal geladen. Befehl: Teilkanal-ID (Auswahl der seriellen Schnittstelle für DAB3 Signale SOD und SOV) lokale Adresse: 30, 31 oder 32 hex (Port 1, 2 oder 3) Bit Erläuterung 7, 6 z. Z. ungenutzt 5 – 0 - 6 Bit für die ID des Teilkanals (0 < ID < 63) Übergabewert: 0001 1111 binär = 1F hex = Übergabewert (1F hex entspricht dem Teilkanal 31) Befehlsfolge: start – adr – ladr – Übergabewert – stop Für die Grundeinstellungen des MPEG-Dekoders sind die folgenden Einstellungen für die statischen Bedingungen nötig. Der Tondekoder wird über die globale Adresse 3A hex beschrieben und mit der Adresse 3B hex ausgelesen. Für die unterschiedlichen Möglichkeiten der Takterzeugung und Einstellung der Teilerfaktorenverhälnissen, werden Veränderungen gegenüber den Grundeinstellungen notwendig. Diese sind einem Steuerwort in dem Befehlsregister für den Taktgenerator abgelegt. Befehl: Taktgenerator lokale Adresse: 11 hex 114 Inbetriebnahme Bit 7 6 5 4 3 2 1 0 Erläuterung Takt für Abtastung (extern) - 0, interner Takt (über die Pins MCLKIN und X22IN) - voreingestellt - 1, externer Takt (über FSCLKIN) - relevant für das vorliegende Projekt Abtasttakt Indizierung - voreingestellt - 0, FSCLKIN ist 256 x f s - 1, FSCLKIN ist 384 x fs FSCLK Ausgang - 0, ausschalten - voreingestellt - 0, einschalten - 0, voreingestellt - 0, voreingestellt - 0, voreingestellt - 0, voreingestellt - 0, voreingestellt Übergabewert: 1000 0000 binär = 80 hex = Übergabewert Befehlsfolge: start – adr – ladr – Übergabewert – stop Für den Betrieb des Tondekoders durch einen DAB-Kanaldekoder ist eine Umstellung des Betriebes der Eingangsschnittstelle in den Slave-Modus notwendig. Desweiteren soll der Dekoder unbeeinflußt vom Stop-Request-Flag arbeiten. In Hinsicht auf die Fehler beim Datenempfang wird die Ausgabe eines Fehlersignals bei fehlerhaften Skalenfaktoren und CRC-Störungen im lokalen Register der Input- und Dekodersteuerung eingestellt. Befehl: Input und Dekodersteuerung lokale Adresse: 33 hex Bit 7, 6 5, 4 3 2 Erläuterung Audiorahmensynchronmodus - 00, generelle Rahmensynchronisation ohne Byte-Ausrichtung - 01, MPEG Layer II Rahmensynchronisation ohne Byte-Ausrichtung - 10, Byte-ausgerichtete Rahmensynchronisation - 11, Synchronimpuls für Rahmensynchronisation Modus der Eingangsschnittstelle - 00, Eingang im Mastermodus - 01, Eingang im Slavemodus - 10, gepufferter Eingang für statische Bitraten - 11, gepufferter Eingang für variable Bitraten Stop-Request-Flag - 0, Einlesen der Daten wird fortgesetzt, wenn Stop-Pin = 1 - 1, Einlesen der Daten wird angehalten, wenn Stop-Pin = 1 CRC-Präsenz - 0, Protection-Bit im MPEG-Rahmenkopf beschreibt die CRC-Präsenz - 1, Protection-Bit wird übergangen - voreingestellt - voreingestellt - relevant fürs Projekt - voreingestellt - relevant fürs Projekt - voreingestellt - relevant fürs Projekt 115 Inbetriebnahme Bit 1 0 Erklärung Kanalauswahl für 2 Kanalmodus - 0, Kanal I ist ausgewählt - 1, Kanal II ist ausgewählt Scale-Faktor- und CRC-Schutz - 0, keinen Scale-Faktor-Schutz - 1, Scale-Faktor- und CRC- Schutz ist eingeschaltet - voreingestellt - voreingestellt - relevant fürs Projekt Übergabewert: 0001 1101 binär = 1D hex = Übergabewert Befehlsfolge: start – adr – ladr – Übergabewert – stop Am Dekoder ist es notwendig, die Audioausgänge einzustellen. Durch die einfache Signalumsetzung des I²S-Ausgangssignals (mit nur zwei Schaltkreise mit geringer Beschaltung) ist die Zuschaltung des I²S-Ports zu aktivieren. Für die Nachbearbeitung in einem Stereo-D/A-Wandler (TDA1310) muß die erforderliche binäre Rundung des Ausgangssignals bestimmt werden. Befehl: Outputsteuerung (Länge 4 Byte ) lokale Adresse: 10 hex (Adressen 18, 19 und 1F hex sind speziell für den ungenutzten SPDIF-Ausgang) Bit 7 6 5 4 3, 2 1 0 Erläuterung SPDIF-Ausgang - 0, aus - voreingestellt - 1, ein I²S-Ausgang - 0, aus - voreingestellt - 1,ein - relevant für das vorliegende Projekt Analogausgang - 0, aus - relevant für das vorliegende Projekt - 1, ein - voreingestellt „Return to Zero“-Modus für Analogausgang - 0, aus - voreingestellt - 1, ein Steuerung des binären Rundungsalgorithmus für I²S- und SPDIF-Ausgangswerte 00, auf 16 Bit - voreingestellt 01, auf 18 Bit 10, auf 20 Bit 11, auf 22 Bit Wert des Gültigkeitsflags im SPDIF-Ausgabeformat - 0, gültig - voreingestellt - 1, ungültig Wert des Kopiererlaubnisflags (C-Bit) im SPDIF-Ausgabeformat - 0, verboten - voreingestellt - 1, erlaubt Die Adressen 18, 19 und 1F hex werden nicht übertragen. 116 Inbetriebnahme Übergabewert: 0100 0000 binär = 40 hex = Übergabewert Befehlsfolge: start – adr – ladr – Übergabewert - stop Die obigen Befehlsbeschreibungen wurden den Unterlagen der jeweiligen Baugruppenbeschreibung entnommen. Auf eine ausführliche Dokumentation der einzelnen Befehle wird an dieser Stelle verzichtet. Dem Anwender wird empfohlen, sich weiterreichende Informationen über das verfügbare DAB-Signal einzuholen. Eine fundamentierte Grundlage über die Signaleigenschaften ist für die problemlose Programmierung der Schaltkreise wichtig. 117 Zusammenfassung 7 Zusammenfassung In der vorliegenden Arbeit wurde in dem Kapitel „CD-Qualität im Rundfunk“ eine Einführung zu dem Rundfunkmedium „Digital Audio Broadcasting“ gegeben. Für den interessierten Leser und Seiteneinsteiger befindet sich hier in kurzen Worten eine Beschreibung zum Aufbau und den Eigenschaften dieses Rundfunksystems. Die Bearbeitung des Themas der Arbeit „Aufbau eines DAB-Versuchsempfängers“ erfolgte in den nachfolgenden Hauptkapiteln „Der Versuchsempfänger“ und „Programme zum Versuchsboard“. Das Herzstück des Empfängers war ein Chipsatz bestehend aus einem Kanaldekoder des Typs SAA3500H (kommende Serienbezeichnung SAA3501) und einem ISO-MPEG-Tondekoder vom Typ SAA2502 der Firma Philips. Der Aufbau der Empfängerbaugruppe erfolgte mit dem Einsatz des erwähnten Schaltkreissatzes und einem Satellitentuner (Typ: SF1218B) mit einem PAL- bzw. SECAMAusgangssignal. Bei der Anpassung der Tunerbaugruppe an die geforderten Kennwerte ergaben sich 2 Lösungswege. In der einfacheren Lösung sollte die Kaskadierung zweier Tuner stattfinden. Die Programmierung und der Aufbau der Kaskade wären einfach gewesen. Als nachteilig stellte sich aber der um ca. 200 mA höhere Verbrauch heraus. Der aufwendigere Weg war die Anpassung des SF1218B. Durch Veränderungen in der Beschaltung konnte die Tunerausgangs-ZF von 479,5 MHz auf die erforderlichen 38,912 MHz gesenkt werden. Mit Hilfe einer räumlichen Trennung zwischen dem Tuner und dem Kanaldekoder konnte die Flexibilität für den Einsatz des Versuchsempfängers erhöht werden. Entsprechend dem empfangbaren DAB-Signal ist nur der Austausch des Tuners und eine einfache Umprogrammierung des Kanaldekoders auf den entsprechenden Sendemodi notwendig. Bedingung ist dabei der Einsatz von Tunern mit einer Ausgangszwischenfrequenz von 38,912 MHz und die Steuermöglichkeit des Tuners durch ein I²C-Bus-Interface. Die Schwerpunktvorgabe der vorliegenden Arbeit sah neben dem eigentlichen Empfängeraufbau auch die Unterstützung einer transparenten Darstellung der DAB-Daten vor. Das Vorhandensein von 2 DAB-Schnittstellen ermöglichte verschiedene Lösungsansätze. Mit dem DAB3-Interface ergaben sich relativ einfache schaltungstechnische Lösungen. Bei dem Einsatz eines entsprechenden Zwischenspeichers wäre der Betrieb unter allen am Markt gängigen Betriebssystemen möglich. Im Gegensatz zur DAB3-Schnittstelle erfordert die Simple Full Capacity Output-Schnittstelle eine aufwendigere Schaltungstechnik. Trotz der höheren Datenrate von 2,3 MBit/s und des unformatierten Datenstroms wurde die Entscheidung über die Datenauswertung zu gunsten des SFCO-Interfaces gefällt. Der Grund lag in der Vorformatierung des DAB3-Signals und der dabei verlorengehenden Informatio- 118 Zusammenfassung nen des DAB-Multiplexrahmens. Um die Transparenz in der Datenorganisation der DAB-Daten nicht einzubüßen, wurde die Nutzung des SFCO favorisiert. Für die Datenerfassung am SFCO-Interface wurde auf Basis der DAB3-Konzepte eine Schaltung entworfen. Um den Schaltungsaufwand gering zu halten, wurden die Abfragen zum CFIC-Signal (Fensterung des Fast Information Channels), des REF-Signals (Receiver Error Flag des Viterbidekoders) und dergleichen in das Datenerfassungsprogramm READ_DAB.EXE übertragen. Das Erfassungsprogramm wurde so entworfen, daß es die Datenerfassungskarte mit dem Programm und dem Empfänger synchronisiert, Fehler erkennt und bearbeitet und die gültigen Daten in einem 16 Bit-Datenwort einliest. Für eine spätere Analyse werden die Daten im binären Format in einer Datei gespeichert. Damit das Empfängerboard betrieben werden kann, entstand ein zweites Programm für die Emulation eines I²C-Busses. Dessen Funktionen wurden den Bedürfnissen des Einsatzzweckes angepaßt. Somit wird u. a. der Multimasterbetrieb (lt. Vereinbarungen in den Philip’s Spezifikationen) nicht unterstützt und der Bustakt (SCL) nur vom Emulationsprogramm erzeugt. Ein Testbetrieb des in der vorliegenden Arbeit beschriebenen Gerätes konnte bis heute noch nicht erfolgen, da der Testbetrieb unter anderem auch im Bundesland Sachsen eingestellt wurde. Für das momentan verfügbare Satellitensignal muß erst ein Signalkonverter und Demultiplexer beschafft oder gebaut werden. Dieser Demultiplexer wird notwendig, um aus dem nach ETS 300 799 gestalteten Ensemble Transport Interface ein einzelnes Ensemble herauszulösen und dem Empfänger zuzuführen. 119 Analgen A Schaltkreis- und Baugruppenbeschreibungen Analgen A Schaltkreis- und Baugruppenbeschreibungen 120 Analgen A Schaltkreis- und Baugruppenbeschreibungen Anlage A.1: Die Beschreibung des Tuners SF1208 MK (Bild: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) liefert u.a. Informationen zum Abstimmverhalten der Baugruppe. Anlage A.2: Die Beschreibung des Kanaldekoders SAA3500 (Bild: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) enthält neben der Schaltkreisbeschreibung auch einen Schaltungsvorschlag. Anlage A.3: Die Beschreibung des Kanaldekoders SAA3500H (SAA3501) gibt einen Überblick über die Kontaktbelegungen und Erweiterungen zum Vorgänger SAA3500. Anlage A.4: Beschreibung des ISO/MPEG Audio Source Decoders SAA2502 Anlage A.5: Dokumentation des 16 Bit-Mikrocontrollers 80C51XAG3 Anlage A.6: Die Beschreibung des Schaltkreistyps KM681000E (1 MBit SRAM) gibt grundsätzliche Informationen für den Einsatz von Schaltkreisen dieser Größe. Anlage A.7: Beschreibung und Eigenschaften des Spannungsreglers LM 317 Anlage A.8: Eine Dokumentation über Eigenschaften und Einsatz des Festspannungsreglers L78M00. Anlage A.9: Beschreibung des Resetschaltkreises EconoReset DS1233 121 Anlagen A Schaltkreis- und Baugruppenbeschreibungen Anlage A.10: Beschreibung des Stereo Continuous Calibration DAC TDA1310 – Dieser Schaltkreis dient der Umsetzung von I²S-konformen Signalen in analoge Spannungen. Anlage A.11: Beschreibung des EEPROM-Speichers STM28C64C Anlage A.12: Beschreibung des 1.3 GHz Bidirectional I²C-bus controlled synthesizer TSA5511 – Dieser Schaltkreis übernimmt die Abstimmung und PLL-Steuerung des in Anlage A.1 beschriebenen Tuners. Anlage A.13: Beschreibung des Low power mixers/oscillators for satellite tuners TDA8010M / AM – Es handelt sich hierbei um die Mischer- und Oszillatorkomponente des in Anlage A.1 beschriebenen Tuners. Anlage A.14: Beschreibung des 74HC595 (ein 8 Bit-Schieberegister mit Latchausgang) Anlage A.15: Beschreibung des SAW-Bandpaßfilter X6922M (Mittenfrequenz 38,912 MHz) Anlage A.16: Die Darstellung beschreibt den allgemeinen Empfängeraufbau mit einem SAA3501 als Herzstück. Anlage A.17: Im nachfolgenden Fax sind die ehemaligen Senderstandorte für den DAB-Testbetrieb enthalten. Der Herausgeber und Betreiber war die Deutsche Telekom AG 122 Anlagen B Schaltungen und Leiterplattenlayouts Anlagen B Schaltungen und Leiterplattenlayouts 123 Schaltungen und Leiterplattenlayouts Anlage B.1: Gestaltung des Empfängerboards mit Dokumenten zu: - Schaltung - Leiterbild auf der Leiterseite - Leiterbild auf der Bestückungsseite - Bauteilanordnung Anlage B.2: Gestaltung des Controllerboards mit Dokumenten zu: - Schaltung - Leiterbild auf der Leiterseite - Leiterbild auf der Bestückungsseite - Bauteilanordnung Anlage B.3: Gestaltung der Datenerfassungskarte mit Dokumenten zu: - Schaltung - Leiterbild auf der Leiterseite - Leiterbild auf der Bestückungsseite - Bauteilanordnung Anlage B.4: Gestaltung des Netzteils mit Dokumenten zu: - Schaltung - Leiterbild auf der Leiterseite - Bauteilanordnung 124 Anlagen C Quellcodes Anlagen C Quellcodes 125 Anlage C.1: Read_Out.Exe – Dieses Programm dient dem Auslesen der Datenerfassungskarte. Es wurde in C++ geschrieben und liegt als Programm auf dem mitgelieferten Datenträger vor. Bei der Nutzung und Modifikation des Quellkodes ist zu beachten, daß dieser in einer Windows 95-Anwendung verfaßt wurde. Bei der Bearbeitung in eine DOS-Entwicklungsumgebung werden die Umlaute der Kommentarzeilen fehlerhaft dargestellt. Diese Erscheinung tritt durch die unterschiedlich, von DOS- und Windows, genutzten Zeichensatztabellen. Anlage C.2: IIC_Bus.Exe – Mit dem Programm wird die Steuerung der Empfängerkomponenten ermöglicht. Es wurde in C++ geschrieben und liegt als Programm auf dem mitgelieferten Datenträger vor. Bei der Nutzung und Modifikation des Quellkodes ist zu beachten, daß dieser in einer Windows 95-Anwendung verfaßt wurde. Bei der Bearbeitung in eine DOS-Entwicklungsumgebung werden die Umlaute der Kommentarzeilen fehlerhaft dargestellt. Diese Erscheinung tritt durch die unterschiedlich, von DOS- und Windows, genutzten Zeichensatztabellen. 126 Anlage D Datenträgerinhalt Bei den auf der CD-ROM enthaltenen Dateien handelt es sich u.a. um die vorliegende Arbeit, verschiedenartige Datenblätter und Zip-Dateien. Da Windows 95 nicht für alle Dateiformate den entsprechenden Betrachter mitliefert, so wurden auch die entsprechenden Hilfsprogramme mit auf die CD gebracht. Inhalt: Liesmich.txt: In dieser Datei werden Hinweise und Empfehlungen im Umgang mit den Dateien gegeben. Arbeit.doc: Arbeit.doc ist nochmals die voliegende Arbeit als Datei. Zu deren Erstellung wurde das Word für Windows 97 verwendet. Anhang: Das Verzeichnis ist entsprechend der Diplomarbeit aufgestellt. Es enthält die entsprechenden Datelblätter und Bilddokumente. Internetseiten: Auf Verlangen der Hochschulbücherei wurden die in den Quellen angaben erwähnten Web Sites aus dem Netz geladen und in diesem Verzeichnis gespeichert. Mit Hilfe des Programmes WebZip (im Verzeichnis Zusatzprogramme\OfflineReader\WebZip) wurden diese geladen und im Zip-Format abgelegt. Auf Grund mangelnder Pflege der Internetseiten sind in diesen Dateien verschiedene „tote Links“ enthalten. Lesen Sie bitte für weitere Informationen die Datei Liesmich.txt Zusatzprogramme: Das Verzeichnis gliedert sich in die Unterverzeichnisse OfflineReader und AcrobatReader. Alle in diesen Verzeichnissen enthaltenen Programme sind Shareware und unterliegen den dafür geltenden Bestimmungen. 127 Quellenverzeichnis Quellenverzeichnis Literaturquellen: [1] Prof. Dr.-Ing. habil. Thomanek, H.-J.: Vorlesung Digitale Signalverarbeitung. Mittweida: 1998 [2] Dr. Lauterbach, Thomas: Digital Audio Broadcasting. 85 622 Feldkirchen: Franzis-Verlag GmbH, 1996: ISBN 3-7723-4842-4 [3] Kloth , Axel: Bussysteme des PC. 2. überarbeitete Auflage. 85 586 Poing: Franzis-Verlag GmbH, 1994: ISBN 3-7723-5014-3 [4] Messmer, Hans Peter: PC-Hardwarebuch. 2. Nachdruck, Bonn: Addison-Wesley (Deutschland) GmbH, 1996: ISBN 3-89319-710-9 [5] Strass, Hermann: SCSI-Bus. 3. überarbeitete Auflage. 85 622 Feldkirchen: Franzis-Verlag GmbH, 1996: ISBN 3-7723-4234-5 [6] Stroustrup, Bjarne: Die C++ Programmiersprache. 3. überarbeitete Auflage,1. korrigierter Nachdruck. Bonn: Addison-Wesley Longman Verlag, 1998: ISBN 3-8273-1296-5 [7] Handbuchsatz der Entwicklungsumgebung des Borland C++ 3.1. 2. unveränderte Auflage. 82 319 Starnberg: Borland GmbH, Mai 1992 [8] Blank, Hans Joachim; Bernstein, Herbert: PC-Schaltungstechnik in der Praxis. 85 540 Haar bei München: Markt & Technik Verlag AG, 1989: ISBN 3-89090-641-9 [9] Digital Audio Broadcasting (DAB); Distribution interfaces; Ensemble Transport Interface (ETI); ETS 300 799. European Telecommunications Standards Institute, September 1997 [10] Radio broadcasting systems; Digital Audio Broadcasting (DAB) to mobile, portable and fixed receivers; ETS 300 401. European Telecommunications Standards Institute, May 1997 [11] Dipl.-Ing.Wenzel, Dietmar: Teil 2: Kanalkodierung etwas näher betrachtet - Das OFDMVerfahren. In: ELRAD Magazin für Elektronik und technische Rechneranwendungen. 30604 Hannover. Verlag Heinz Heise GmbH & Co. KG, Heft 2/96 und 4/96 [12] Fax-Mitteilung DAB-Senderstandorte in Sachsen. Leipzig, Deutsche Telekom AG Produktinformationen: 128 Quellenverzeichnis [13] SF1208 MK2 (Bild: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12); Preliminary Information. Philips, July 1996 [14] Application Note SAA3500 (Bild: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); Preliminary Information. Philips ASA Laboratory, October 1996 [15] DAB Channel Decoder SAA3501; Tentative specification. Philips Semiconductors, February 1998 [16] SAA2502, ISO/MPEG Audio Source Decoder; Preliminary Specification. Philips Semiconductors, November 1997 [17] 80C51XAG3, CMOS Single-Chip 16 Bit Microcontroller; Product Specification. Philips Semiconductors, February 1998 [18] KM681000E Family CMOS SRAM. 3.0 Revised. Samsung Electronics, January 1998 [19] LM117/ LM217/ LM 317, 1.2V TO 37V VOLTAGE REGULATOR. SGS-Thomson Microelectronics, June 1998 [20] L78M00. SGS-Thomson Microelectronics, September 1998 [21] DS1233, 5V EconoReset. Dallas Semiconductors, February 1998 [22] TDA1310, Stereo Continuous Calibration DAC. Philips Semiconductors, May 1994 [23] STM28C64C, 64K (8k x 8) Parallel EEPROM. SGS-Thomson Microelectronics, June 1996 [24] TDA8010M / AM, Low Power Mixers/Oscillators For Satellite Tuners. Philips Semiconductors, October 1996 [25] TSA5511, 1,3 GHz Bidirectional I²C-Bus Controlled Syntesizer. Philips Semiconductors, October 1992 129 Quellenverzeichnis [26] Datenbuch I²C-Busschaltungen für professionelle Anwendungen. Philips Semiconductors, Juni 1989 [27] Data Book, High Performance Linear Bipolar Integrated Circuits. Zetex plc, 1998 [28] DAB-Receiver SAA3500, Features. Philips [29] Bandpass Filter X6922M. Siemens Matsushita Components, 18. September 1997 [30] 32-Bit-Parallel-I/O-Karte, PIO 32. Leer: ELV [31] Basiswissen, Spannungsregler. Hirschau: Conrad Electronic Internetquellen: [32] Home Page des ERO (European Radiocommunications Office): http://www.ero.dk/. Stand: 3. März 1999 [33] Forschungsverbund Medientechnik Südwest (FMS), in Auftrag des ehemaligen Süddeutscher Rundfunk: http://www.foyer.de/fms/ (Home Page des FMS); http://www.foyer.de/fms/projekte/p_ii/p_ii_3/pii3_2/dig1.htm (Frequenzökonomie). Stand: 3. März 1999 [34] DAB-Plattform e.V.: http://www.dab-plattform.de/verein/papers.htm. letzte Änderung am 16. September 1996; Stand: 3. März 1999 [35] Bauhaus-Universität Weimar: http://www.uni-weimar.de/~schatter/stud/ss97/dab/src.html. letzte Aktualisierung am Juni 1997; Stand: 3. März 1999 [36] DAB-Projektbüro NRW: http://www.kp.dlr.de/DAB/nrw/main.html. erstellt am 16.01.1997, letzte Änderung am 05/29/98 10:58:51 Stand: 3. März 1999 [37] Westdeutscher Rundfunk, Köln: http://www.wdr.de/radio/dab/verkehrskanal2.html. letzte Aktualisierung am 31.03.98, 17:39; Stand: 3. März 1999 130 Quellenverzeichnis [38] Radio Web: http://www.radioweb.at/organisation.html. letzte Aktualisierung 1997; Stand: 3. März 1999 [39] Bayrischer Rundfunk, BR Online: http://wwws.br-online.de/br-intern/technik/. letzte Aktualisierung 1998; Stand: 3. März 1999 [40] Bayrische Medien Technik GmbH: http://www.br-online.de/br-intern/technik/bmt/0_home/text/frame.htm. letzte Aktualisierung am 22. Januar 1999; Stand: 3. März 1999 [41] Radio Broadcast Technologies Research Directorate at the Communications Research Centre: http://www.drb.crc.doc.ca/ottawa/WhatDRB.htm. letzte Aktualisierung im Dezember 1998; Stand: 3. März 1999 [42] Radio Broadcast Systems Group at the Communications Research Centre: http://www.drb.crc.doc.ca/ottawa/. letzte Aktualisierung im Dezember 1998, 17:39; Stand: 3. März 1999 131 Selbständigkeitserklärung Selbständigkeitserklärung Ich erkläre hiermit, daß ich die vorliegende Arbeit selbständig und nur unter Verwendung der angegebenen Literatur und Hilfsmittel angefertigt habe. Chemnitz, d. 20. März 1999 Ort, Datum Unterschrift 132