RDS

11.04.2001

Dlouho jsem přemýšlel, jakým způsobem mám napsat tento text a nejrozumější řešení bude asi toto. Na internetu je spousty kusých informací o RDS (viz např. www.csdxc.cz) a tak jsem se rozhodl, že zde nebudu přepisovat celou normu, ale pouze uvedu ty informace, které jsem zprvu nepochopil a které by vám byly užitečné pro tvorbu dat pro kodér. Předpokládám tedy, že pokud vás RDS opravdu zajímá, tak si prostudujete nabízené informace. Pokud chcete mít kompletní normu doma, tak kontaktujte Česný Normalizační Institut a oni vám ji za 500,-Kč (šmejdi) pošlou.

Něco o RDS

Data systému RDS jsou přenášena jako neustálý datový tok impulsů na kmitočtu 57kHz (ovšem pozor - tak jednoduchá modulace to opravdu není). Aby měl přenos nějaký smysl, jsou data rozčleněna do skupin po 104 bitech. Rychlost přenosu je 1087.5 bitů za sekundu.

Každá tato skupina přenáčí určitou službu(služby) systému RDS a nezáleží přitom na jejich pořadí. Vžyť rozhlasový přijímač můžeme zapnout kdykoliv a také to funguje. Můžeme tedy skupiny různě prohazovat mezi sebou a výsledek bude stejný.
Aby dekodér poznal začátek každé skupiny (skupinová synchronizace), je skupina dále členěna na na tzv. bloky. Tyto bloky (mimochodem v každé skupině jsou 4) obsahují informace o vysílacím programu, typu služby a také data pro danou službu. Vždy každý první blok ve skupině je stejný a díky tomu se dekodér zasynchronizuje.

Každý blok má 26 bitů

Význam bloků

BLOK A:
PI(Program Identification). Obsahuje informace o zemi vysílání, o tom, zda-li je vysílání mezinárodní, národní či lokální a částečně popis vysílaného programu. Tyto informace se během přenosu nesmějí měnit - díky tomu je tento blok použit pro skupinovou synchronizaci.

BLOK B:
Tento blok obsahuje 4-bitovou informaci o typu služby, kterou chceme použít, dále jsou to další upřesňující údaje k dané službě. Pod upřesňujícími udaji si lze představit např. typ programu (Rock,Pop) nebo nějaké dopravní zpravodajství atd. Vývojářům zřejmě nestačil 16 možných služeb a proto přidali ještě jeden bit navíc a počet služeb se pak rozšíří na 32. Značení není 0 až 32, ale 0A až 15A a 0B až 15B. Většina těchto služeb stejně zůstává nevyužitá. Pozor ovšem na to A,B při tvorbě kontrolního slova u bloku C.

BLOK C:
Data pro danou službu

BLOK D:
Data pro danou službu


Aby toho nebylo málo, je každý blok rozdělen na 2 části a to na vlastní datovou část velké 16bitů a na kontrolní slovo velké 10bitů. Dohromady těch zmiňovaných 26 bitů. Kontrolní slovo slouží k označení a možné opravě chybně přijatých bloků.

Tvorba kontrolního slova

Nyní si ukážeme, jakým jednoduchým způsobem se dá vytvořit kontrolní slovo. Není to žádná věda, je je potřeba dávat pozor při opisování jedniček a nul.
Mějme tedy datové slovo 10010111000010101. Toto slovo napíšene do následující tabulky (červené písmo) a opíšemé pod sebe ty řádky, u kterých je jednička v datovém slově. U takto opsaných řádků provedeme operaci XOR čili soušet modulo 2.

Pokud byste tápali co je to vlastně XOR, tak vám prozradím malý trik. V každém sloupci spočítejte počet jedniček pokud není žádná nebo je jich sudý počet, pak je výsledek 0, naopak pokud je jich lichý počet, pak výsledek je 1.
K takto vypočítanému slovu musíme ještě připočíst tzv. offsetové slovo, které je pro každý blok ve skupině jiný.

Tabulka offsetových slov odpovídající danému bloku

Co je to C´? Toto slovo se zamění s C, jestliže použijeme službu 0B až 15B. Ostatní A,B,D zůstávají stejné.

Dejme tomu, že jsme spočítali kontrolní slovo pro blok B, pak tedy

Výsledek je pak

Pokud se vám to nechce počítat ručně, pak si můžete stáhnou jednoduchý program pro QBasic
RDC Check Calculator