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