Protokol RC-5

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
Predmet

Konfigurovateľné mikroprocesorové systémy
Tématická časť:
RC-5

Prenos signálu pomocou infračerveného svetla je jedným z najpoužívanejších v spotrebnej elektronike. Typickým príkladom je diaľkové ovládanie televízora, rádia a pod. Povely, ktoré vysiela diaľkový ovládač sú vysielané LED diódou s infračerveným žiarením. Toto žiarenie sprostredkuje informáciu logickej nuly – v prípade ak LED dióda nesvieti a opačne, logickej jednotky – v prípade ak svieti. Vysielaný signál musel byť modulovaný podľa istého predpisu resp. istým spôsobom – protokolom. Koncom 80.-tych rokov 20. storočia, sa protokoly RC-80 a RC-5 spoločnosti Philips, náhodne stali medzinárodnými štandardmi. Nakoľko však protokol RC-80 nebol spoľahlivý, rýchlo ho nahradil v 90.tych rokoch protokol RC-5. Protokol sa veľmi rýchlo šíril a s istými obmenami sa využíval vo veľkej väčšine Európy a Spojených štátoch amerických. Naproti tomu, však bol v Japonsku rozšírený protokol NEC. Protokol RC-5 bol vyvinutý firmou Philips, konkrétne profesorom Ronaldom Rivestom. Bol navrhnutý pre diaľkové ovládanie prístrojov spotrebnej elektroniky. Je jedným z najpoužívanejších protokolov vďaka jeho dostupnosti a cenovej výhodnosti diaľkových ovládačov[1]

Opis protokolu

Prenos signálu je realizovaný infračerveným svetlom, ktoré je nositeľom informácie a je vysielané diaľkovým ovládačom. Nosná frekvencia je 36 kHz. Jeden impulz má dĺžku 27,8 µs. Z tejto dĺžky LED dióda svieti 25 až 33 %, čo je približne 6,944 µs. Zostatok LED dióda nesvieti. Impulz je znázornený na Obr.1.1 V protokole reprezentuje dávku 32 impulzov nosnej frekvencie a medzeru čas, zodpovedajúci 32 impulzom nosnej frekvencie. V tom prípade má dávka(pozn. z angl „burst“) alebo pauza podľa vzťahu 1.1 trvanie:

[math]\frac{n_i}{T_i}=\frac{n_i}{\frac{1}{f_n}}=T_d [/math]

kde, ni - je počet impulzov, Ti - perióda jedného impulzu, fn -nosná frekvencia a Td - perióda jednej dávky.

Priebeh impulzu

Uvedieme príklad podľa 1.2 pre protokol RC-5, kde ni=32, fn=36kHz, [math]T_d=\frac{32}{1/36000}=0,889.10^-3s=889 us[/math] Ako vidieť, trvanie jednej dávky alebo pauzy trvá .Jeden bit je tvorený vždy značkou a medzerou, čiže jeden bit potom trvá 2.Td=Tb. Tb je perióda jedného bitu. Tb=2.Td=2.889µs=1,78ms. V protokole sa využíva dvoj fázová modulácia tzv. Manchester coding , infračerveného svetla s nosnou frekvenciou 36 kHz. Všetky bity majú rovnakú dĺžku 1,78 ms. Polovica bitu je vyplnená dávkou 32 impulzov nosnej frekvencie a druhá polovica neaktívnym stavom taktiež s dĺžkou 32 impulzov. Logická jednotka je reprezentovaná dávkou v druhej polovici bitu a logická nula dávkou v prvej polovici bitu ako je možné vidieť z Obr.1.2.

Priebeh bitu v RC-5

Obrázok Obr.1.3 znázorňuje typický priebeh signálu protokolu RC 5. Celá správa sa skladá zo 14 bitov, takže celkovo jej prenos trvá 24,92 ms. Pokiaľ je tlačidlo na ovládači stlačené, odosielanie správy sa opakuje každých 113,792 ms.

Priebeh signálu v RC-5

Kódovanie protokolu

Vysielaný povel z diaľkového ovládača obsahuje 14 informačných bitov Obr.1.3 v Manchester code. Bližšiu špecifikáciu Manchester code je možné nájsť v [2]. Každý z bitov predstavuje špecifickú informáciu. Vysielaný povel vždy začína dvoma bitmi nazvanými štart bit. Používajú sa na aktivovanie a správne zosilnenie prijímača. Ďalej nasleduje Toggle bit, ktorý zmení svoju hodnotu vždy pri opätovnom zatlačení tlačidla na diaľkovom ovládači. Toggle bit sa vyskytuje v kóde preto, aby pri podržaní tlačidla nedošlo k vyslaniu viacerých povelov toho istého tlačidla veľmi rýchlo za sebou. Nasleduje 5 adresných bitov, ktorých súčet alebo kombinácia udáva, ktoré zariadenie má na povel reagovať, nakoľko môžeme mať v jednej miestnosti viac prijímačov napr. televízor, video, domáce kino, ovládanie svetiel, žalúzií a pod. Za nimi nasleduje 6 príkazových bitov, ktoré určujú aký príkaz sa má vykonať, t.j. prepnúť kanál na TV, spustiť DVD prehrávač a pod. Obsiahlejšiu sadu adries a príkazov je možné nájsť v [3]. Aj napriek tomu, že samotný protokol je dobre popísaný, jediná dokumentácia od firmy Philips [4]. bola vydaná v roku 1992 a nenachádza sa dokonca ani v elektronickej forme. V tejto dokumentácii však neboli popísané všetky adresy a príkazy a firma Philips ich ani neaktualizovala a ani neskôr nezverejnila. Napríklad v dobe vydania, sa medzi adresami vyskytovali hodnoty pre zariadenia „CD-Video, CD-Photo, Compact Disc Recorder “, ktoré za pár rokov stratili opodstatnenie. Naproti tomu neboli pridané adresy pre DVD prehrávače, domáce kiná, DVD rekordéry a zariadenia, ktoré sa objavili neskôr. Nakoľko protokol využívalo viacero výrobcov spotrebnej elektroniky, počas rokov začalo dochádzať k chybám, pretože zariadenia rôznych značiek už mali rôznu funkciu pre ten istý povel v protokole RC-5. Podobná situácia nastala aj s adresami zariadení [5]. Ako nosná frekvencia sa štandardne udáva hodnota 36 kHz. Avšak v praxi Philips využíva aj frekvenciu s hodnotou 38 kHz a 40 kHz. Preto treba brať do úvahy aj rôzne periódy bitov a výsledného povelu, čo naznačuje, že dekódujúci algoritmus respektíve program musí byť flexibilný.

Spôsoby dekódovania

Na dekódovanie signálu bolo vytvorených viacero algoritmov. Najjednoduchším dekódovaním je postup, pri ktorom čakáme na prvú vzostupnú hranu signálu a spustíme vzorkovanie. Vzorkovanie sa uskutoční tak, že budeme merať každú druhú polovicu bitu na prítomnosť logickej jednotky alebo nuly. Na to však musíme poznať periódu a tú udáva špecifikácia protokolu RC-5 ako 1,78 ms. Ukážka dekódovania je na Obr.1.4.

Grafické znázornenie dekódovania

Pri tomto type dekódovania však nastávajú značné problémy, pretože vysielač (v bežnom prípade diaľkové ovládanie) by musel odosielať povel so značnou časovou presnosťou. Pri bežných diaľkových ovládačoch sú však používané lacné oscilátory, ktoré sú riadené nekvalitnými rezonátormi, ktoré sú v praxi nespoľahlive zapríčinenou lacnou a nekvalitnou výrobou, čo má za následok nespoľahlivý referenčný zdroj frekvencie. Ak by sme chceli s istotou používať takýto algoritmus, časovač v diaľkovom ovládaní by mohol mať odchýlku maximálne 1,96 %. V praxi sa však stretávame s bežnou odchýlkou podľa [6] až 5 %. Do úvahy treba brať aj to, že samotná firma Philips používa pre protokol RC-5 rôzne nosné frekvencie a to 36 kHz, 38 kHz a 40 kHz. Z týchto dôvodov bolo treba hľadať spôsob ako korektne dekódovať prijatý povel. Bolo potrebné navrhnúť algoritmus, ktorý bude schopný dynamicky reagovať na zmenu nosnej frekvencie a tým aj zmeny v perióde dĺžky jednotlivých bitov. Riešením tohto problému bolo odmeranie periódy trvania prvého štart bitu, pretože môžeme vychádzať z predpokladu, že prvé dva štart bity sú v kódovaní logické jednotky. Dekódovací algoritmus čaká na prvú vzostupnú hranu. Ak ju zdeteguje, spustí meranie času. Meranie času trvá pokiaľ nezaznamenáme ďalšiu vzostupnú hranu, pretože to je miesto, kde už začína ďalší bit. Táto doba predstavuje periódu jedného bitu. V prípade, že sme odmerali periódu prvého bitu, môžeme postupovať ako v predchádzajúcej metóde a to opakovane s posunutím o periódu bitu zisťovať stav na prijímači – či sa v danom mieste vyskytuje logická nula alebo jednotka a následne potom určiť hodnotu bitu 0 alebo 1. Toto je potrebné opakovať 13 krát, pretože i keď v povele sa vyskytuje 14 bitov, počas prvého bitu odmeriame periódu a preto neuvažujeme s meraním všetkých 14 ale len ostávajúcich 13 bitov. Na Obr.1.5 je uvedený vývojový algoritmus tohto riešenia.

Vývojový algoritmus dekódovania