April 2000 | |||
Im UKW-Rundfunk werden neben den Audio-Signalen zusätzlich auch Daten übertragen, die mit geeigneten Empfängern dekodiert und ausgewertet werden können. So werden im Radio Daten System z.B. der Sendername, Programmtyp und Verkehrsfunksignalisierung übertragen. Eine Übersicht der von den verschiedenen Sendern ausgestrahlten RDS Daten findet man beim Institut für Rundfunktechnik. Die Datenbits sind mit einer Datenrate von 1,1875 kHz auf einen 57 kHz Unterträger moduliert. Jeweils 26 Bits bilden einen Block, der wiederum aus 16 Datenbits und 10 Prüfbits besteht. Mit Hilfe der Prüfbits können die Blockgrenzen und die Art des Blocks detektiert werden. Jeweils vier Blöcke (ABCD bzw. ABC'D) bilden eine RDS-Gruppe. Die Spezifikationen findet man in der DIN-Norm DIN EN50067, Spezifikation des Radio-Daten-Systems (RDS), Deutsche Fassung EN50067:1992, Beuth Verlag GmbH, Berlin.oder auch in RDS description (in Französisch). Auch beim Bayerischen Rundfunk gibt es etwas zum Thema. In Block A wird immer die 16 Bit Sender-ID (program information PI) übertragen. In Block B findet man den Programmtyp (PTY), einen Indikator für Verkehrsfunk (TP) und die Gruppennummer, die über die Bedeutung der restlichen fünf Bits des Blocks B und der 32 Bits von Block C und D Auskunft gibt. Block A Block B +----------------+ +----+-+-+-----+-----+ |................| |1011|0|1|.....|.....| +----------------+ +----+-+-+-----+-----+ PI 11 A T PTY Für DGPS sind die RDS-Gruppen 3A und 11A (teilweise auch noch 5A) interessant. Wenn Gruppe 3A (application identification AID) mit der ID 0x4AA1 existiert, wird dort festgelegt, in welcher RDS-Gruppe die im RASANT-Format kodierten DGPS-Daten übertragen werden (im Beispiel also Gruppe 11A). Block B Block C Block D +----+-+------+----+-+ +----------------+ +----+----+----+----+ |0011|0|......|1011|0| |................| |0100|1010|1010|0001| +----+-+------+----+-+ +----------------+ +----+----+----+----+ 3 A 11 A 4 A A 1 In Gruppe 11A stehen dann die letzten fünf Bits von Block B und die 32 Datenbits aus Block C und D für die DGPS-Daten zur Verfügung. Block B Block C Block D +----+-+-+-----+-----+ +----------------+ +----------------+ |1011|0|T|-PTY-|.....| |................| |................| +----+-+-+-----+-----+ +----------------+ +----------------+ 11 A Zur Dekodierung der RDS-Bits aus dem Rundfunksignal stehen verschiedene integrierte Schaltungen zur Verfügung. Ich habe zunächst mit dem Philips RDS-Decoder IC SAA6579T experimentiert. Zur Dekodierung findet man im Internet verschiedene Links für Motorola Microcontroller:
Daraus habe ich eine Dekodierungsoftware für den von mir eingesetzten Microchip Microcontroller 16F84 entwickelt. Inzwischen habe ich das Philips RDS-Decoder IC SAA6588T entdeckt, das die Dekodierung der RDS-Blöcke bereits auf dem Chip erledigt und damit den Microcontroller entlastet. Nachdem mir immer wieder der Speicher ausging, erfolgt die Dekodierung der DGPS-Daten nun mit dem leistungsfähigeren Atmel Microcontroller AT90S8535. Das Multiplex-Signal wurde zunächst im Autoradio abgegriffen. Da es
aber nur wenig Radiosender gibt, die man freiwillig anhören will, mußte
ein eigener Tuner für den DGPS-Empfang her, um das Radio wieder frei zu
bekommen. Philips hat mit dem Matchbox-Tuner
OM5610 einen interessanten, winzigen Tuner im Programm, der über die
Firma Flextronics International
in Österreich (EMail)
zu beziehen ist.
Da es mir damals nicht gelang, eine Bezugsquelle für den OM5610 zu finden,
habe ich aus einer billigen Radio-Karte für den PC den Tunerteil herausgesägt.
Er besteht hauptsächlich aus dem Philips-IC
TEA5757, das vermutlich auch im OM5610 verwendet wird.
Weitere RDS GruppenBlock B Block C Block D +----+-+-+-----+---+--+ +----------------+ +--------+--------+ |0000|0|T|-PTY-|...|II| |................| |CCCCCCCC|CCCCCCCC| +----+-+-+-----+---+--+ +----------------+ +--------+--------+ 0 AGruppe 0A enthält den Stationsnamen (PSN, program station name) I: Index for character position C: 2 characters (insgesamt 8) Block B Block C Block D +----+-+-+-----+-----+ +--------+--------+ +--------+--------+ |0010|0|T|-PTY-|.IIII| |CCCCCCCC|CCCCCCCC| |CCCCCCCC|CCCCCCCC| +----+-+-+-----+-----+ +--------+--------+ +--------+--------+ 2 AGruppe 2A enthält Radiotext (RT), max. 64 Bytes 16*4 I: Index for character position C: 4 characters, string is NULL terminated (?) Der Radiotext ist recht langweilig, da stehen nur so Sachen wie, "Wir sind das Super-Radio" oder "Sie können uns anrufen unter..." Block B Block C Block D +----+-+-+-----+---+--+ +--------+-------+-+ +----+----+--+-+-----+ |0100|0|T|-PTY-|...|DD| |DDDDDDDD:DDDDDDD|H| |HHHH|MMMM:MM|S|OOOOO| +----+-+-+-----+---+--+ +--------+-------+-+ +----+----+--+-+-----+ 4 AGruppe 4A enthält Datum und Uhrzeit (CT, clock time data) D: date (MJD) H: hour M: minute S: sign of offset O: time offset in 30 minutes Der Algorithmus für das Datum ist etwas komplizierter, aber in der Norm ausführlich beschrieben. Block B Block C Block D +----+-+-+-----+-----+ +----------------+ +----------------+ |1000|0|T|-PTY-|.....| |................| |................| +----+-+-+-----+-----+ +----------------+ +----------------+ 8 AGruppe 8A enthält ?? |
|