RDS-dekoder
Radio Data System har funnits i
ca 20 år, och av vissa skäl kommet att associeras med bilradio. Men funktioner
som att visa den inställda kanalens namn på en display kan man ha nytta av även
i hemmet. Den RDS-dekoder som presenteras här har förutom en standard LCD även
en serieport dit all avkodad data skickas. Kopplar man in en PC och kör rätt
monitorprogram kan man på ett bekvämt sätt analysera och presentera all data
som en radiokanal sänder ut. Allt är inte avsett för direkt visning, men kan
ändå vara intressant att se.
Den dekoder jag har byggt består
av ett demodulatorchip, TDA7313, som man matar med MPX-signalen (se info nedan)
och som ger DATA och CLK ut på två ben. Man slipper alltså tänka på analoga
filter och dylikt (kursen heter ju digitala projekt). Data kommer med 1187.5
bps och måste processas genom en CRC-beräkning för att utvinna informationen. Detta
gör jag med en AT90S2313 från Atmel. Denna MCU för ca 30 kr klockas på 8 MHz
och har inbyggd UART. Det hade varit fullt möjligt att använda en HC11 från
Motorola (de som vanligen används på kursen) men AT2313 är billigare och har
programmet lagrat i ett flashminne, dvs är omprogrammerbar.
Ovan ses huvudkomponenterna i
dekodern: dekoderchip, MCU, LCD-modul och nivåshiftare för serieporten. Anslutningen
till radiomottagaren kräver viss modifiering av radion då det mesta av
RDS-signalen filtreras bort i stereodekodern. Enklast är att leta reda på
stereodekodern (oftast allt i ett chip) och mäta på varje ben med oscilloskop
tills man hittar något som liknar en audiosignal med överlagrad 57 kHz
pilotton. Hittar man datablad på stereodekoderchipet kan man direkt hitta rätt
ben att ansluta sig till.
Detta projekt är till stora delar
ett mjukvarujobb, där synkronisering med CRC är den mest intressanta biten. Förkunskaper
som underlättar är Datorkommunikation eller Radio. Rent teoretiskt skulle man
kunna köra in bitströmmen på PC:ns parallellport och göra avkodningen i en PC,
men jag ville ha en fristående enhet att ställa bredvid radion.
Monitorprogrammet som syns ovan är DOS-baserat, men då serieporten används
skulle det inte vara några problem att skriva motsvarande program i
Windows-miljö (men ta mycket längre tid).
Den som vill veta mer om RDS rekommenderas
läsa specifikationen (finns på institutionen).