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.
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ů
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ů.
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