RC5 to prosty i szeroko stosowany protokół komunikacji w podczerwieni, opracowany przez firmę Philips z myślą o pilotach do sprzętu RTV. W podstawowej wersji wykorzystuje 14-bitowe ramki, kodowanie manchesterskie oraz falę nośną o częstotliwości 36 kHz. Protokół znajduje zastosowanie w sprzęcie audio-wideo, sterownikach oświetlenia LED i niewielkich systemach automatyki.
Wprowadzenie – czym jest RC5
RC5, zapisywany również jako RC-5, jest standardem bezprzewodowej transmisji danych w podczerwieni. Został zaprojektowany przez firmę Philips w latach 80. XX wieku do obsługi telewizorów, odtwarzaczy i innych urządzeń RTV.
Standard określa sposób kodowania komend, strukturę ramki i fizyczne parametry transmisji, takie jak częstotliwość nośna, czas trwania bitu oraz sposób reprezentowania logicznego „0” i „1”.
RC5 jest protokołem jednokierunkowym: pilot wysyła dane, natomiast sterowane urządzenie nie przesyła potwierdzenia odbioru. Mimo upływu lat standard nadal jest używany w urządzeniach konsumenckich, modułach podczerwieni i prostych systemach sterowania. Jego popularność wynika z łatwej implementacji oraz dobrej odporności na typowe zakłócenia.
Warstwa fizyczna – nośna, kodowanie i czas trwania bitu
Fala nośna 36 kHz
W protokole RC5 dane są przesyłane za pomocą wiązki podczerwieni modulowanej impulsowo falą nośną o częstotliwości około 36 kHz. Nadajnik nie emituje światła w sposób ciągły, lecz generuje na diodzie IR paczki impulsów rozdzielone przerwami. Takie rozwiązanie zwiększa odporność transmisji na zakłócenia i ogranicza zużycie energii.
Odbiornik korzysta zazwyczaj z układu scalonego wyposażonego w filtr pasmowy dostrojony do około 36 kHz. Pozwala to skutecznie tłumić wpływ stałego oświetlenia oraz innych źródeł promieniowania podczerwonego.
Czas trwania bitu
Wszystkie bity RC5 mają jednakowy czas trwania wynoszący około 1,778 ms. Odpowiada to szybkości transmisji na poziomie około 562 bitów na sekundę, wystarczającej do przesyłania prostych komend sterujących.
Każdy bit dzieli się na dwie połowy trwające po około 0,889 ms. Informacja jest kodowana poprzez odpowiednie rozmieszczenie paczki impulsów nośnej i przerwy w obu częściach bitu.
Kodowanie manchesterskie
RC5 wykorzystuje bifazowe kodowanie Manchester. Każdy bit zawiera zmianę stanu w połowie swojego czasu trwania, dzięki czemu odbiornik może odtworzyć rytm transmisji bez użycia osobnej linii zegarowej.
Sposób reprezentacji stanów logicznych przedstawia poniższa tabela:
| Stan logiczny | Pierwsza połowa bitu | Druga połowa bitu |
|---|---|---|
| Logiczne „0” | paczka impulsów nośnej | brak impulsów |
| Logiczne „1” | brak impulsów | paczka impulsów nośnej |
Przejście między obecnością a brakiem impulsów w środku bitu przenosi informację, a jednocześnie umożliwia synchronizację zegara odbiornika. Należy przy tym pamiętać, że wiele gotowych odbiorników IR ma wyjście aktywne w stanie niskim, dlatego obserwowany na nim przebieg może być odwrócony.
Struktura ramki RC5
Podstawowa ramka RC5 składa się z 14 bitów przesyłanych kolejno zgodnie z zasadami kodowania manchesterskiego. Obejmuje następujące pola:
- Bity startu – dwa bity S1 i S2, w podstawowym wariancie ustawione na logiczne „1”;
- Bit przełączający – jeden bit T pozwalający rozróżniać kolejne naciśnięcia przycisku;
- Adres urządzenia – pięć bitów A4–A0;
- Kod komendy – sześć bitów C5–C0.
Łączna długość ramki wynosi 2 + 1 + 5 + 6, czyli 14 bitów.
Bity startu
Pierwsze dwa bity ramki są w podstawowym standardzie ustawione na „1” i pełnią funkcję sekwencji startowej. Odbiornik wykorzystuje je do wykrycia początku transmisji oraz zsynchronizowania dekodera Manchester.
Bit przełączający
Bit przełączający zmienia wartość przy każdym nowym naciśnięciu przycisku. Dzięki temu urządzenie może odróżnić dłuższe przytrzymanie, podczas którego ta sama komenda jest wielokrotnie wysyłana, od kolejnego, osobnego naciśnięcia.
Podczas przytrzymywania przycisku bit przełączający zachowuje tę samą wartość. Zmienia się dopiero po zwolnieniu i ponownym naciśnięciu przycisku. Mechanizm ten umożliwia prawidłową obsługę automatycznego powtarzania, na przykład podczas regulowania głośności lub przewijania.
Adres urządzenia
Kolejne pięć bitów tworzy adres odbiornika, do którego jest kierowana komenda. Pozwala to rozróżnić 32 możliwe adresy urządzeń, ponieważ 2⁵ = 32.
Telewizor, zestaw audio i tuner mogą korzystać z RC5, ale reagować na różne adresy. Dzięki temu jeden pilot może obsługiwać kilka rodzajów sprzętu, a każde urządzenie wykonuje tylko przeznaczone dla niego polecenia.
Kod komendy
Ostatnie sześć bitów ramki określa numer polecenia, które ma wykonać urządzenie. Podstawowy wariant umożliwia zdefiniowanie 64 komend, ponieważ 2⁶ = 64.
Kod może odpowiadać między innymi za włączanie i wyłączanie urządzenia, zmianę kanału, regulację głośności, wybór cyfr, rozpoczęcie odtwarzania lub jego zatrzymanie.
W rozszerzeniu RC5X zakres komend zwiększono przez wykorzystanie dodatkowego bitu pola komendy. Pozwala to obsłużyć do 128 poleceń.
Jak przebiega transmisja RC5
Przesłanie i wykonanie komendy odbywa się w kilku kolejnych etapach:
- użytkownik naciska przycisk pilota odpowiadający określonemu poleceniu, na przykład zwiększeniu głośności;
- układ pilota tworzy 14-bitową ramkę zawierającą bity startu, bit przełączający, adres urządzenia i kod komendy;
- ramka jest kodowana manchestersko i modulowana falą nośną o częstotliwości 36 kHz;
- dioda IR emituje w kierunku odbiornika odpowiednią sekwencję paczek impulsów i przerw;
- odbiornik IR filtruje sygnał, demoduluje falę nośną i generuje przebieg cyfrowy;
- mikrokontroler dekoduje sygnał Manchester, odtwarza 14-bitową ramkę oraz sprawdza jej pola;
- jeżeli adres jest zgodny z adresem urządzenia, przypisana komenda zostaje wykonana.
Znaczenie kodowania Manchester i samosynchronizacji
Kodowanie Manchester stosowane w RC5 jest samosynchronizujące, ponieważ każdy bit zawiera zmianę stanu w połowie czasu swojego trwania. Odbiornik może dzięki temu łatwo odtworzyć rytm transmisji, nawet jeśli początkowo nie jest idealnie zsynchronizowany z nadajnikiem.
Kodowanie to ogranicza również udział składowej stałej w sygnale. Okresy aktywności i przerw pozostają zrównoważone, co sprzyja prawidłowej pracy filtrów oraz zmniejsza podatność odbiornika na zmiany poziomu oświetlenia tła.
Wadą kodowania Manchester jest mniejsza efektywność transmisji wynikająca z dużej liczby przejść sygnału przypadających na jeden bit. W przypadku krótkich komend sterujących nie stanowi to jednak istotnego ograniczenia.
Zalety i wady protokołu RC5
Zalety
Do najważniejszych zalet protokołu RC5 należą:
- Prosta implementacja – do budowy systemu wystarczą dioda IR, odbiornik podczerwieni i odpowiednie procedury w mikrokontrolerze;
- Odporność na zakłócenia – zapewniają ją modulacja falą nośną o częstotliwości 36 kHz oraz filtry stosowane w odbiorniku;
- Samosynchronizacja – kodowanie manchesterskie ułatwia prawidłowe odtwarzanie przesyłanych bitów;
- Adresowanie urządzeń – podstawowy protokół umożliwia obsługę 32 adresów i 64 komend;
- Szeroka standaryzacja – RC5 był wykorzystywany przez firmę Philips i innych producentów, co ułatwia projektowanie pilotów uniwersalnych.
Wady
Przed zastosowaniem RC5 warto uwzględnić również jego ograniczenia:
- Jednokierunkowa komunikacja – protokół nie zapewnia kanału zwrotnego ani potwierdzenia wykonania komendy;
- Ograniczona liczba poleceń – podstawowa wersja obsługuje 64 komendy, co może nie wystarczyć w bardziej złożonych urządzeniach;
- Niewielka szybkość transmisji – około 562 bitów na sekundę wystarcza do sterowania, ale nie do przesyłania większych ilości danych;
- Ograniczenia podczerwieni – transmisja wymaga odpowiedniego skierowania pilota, może zostać zablokowana przez przeszkody, a jej typowy zasięg wynosi od kilku do kilkunastu metrów.
Typowe zastosowania RC5
RC5 powstał z myślą o sprzęcie RTV i właśnie w tej grupie urządzeń jest spotykany najczęściej. Przykładowe zastosowania protokołu obejmują:
- Sprzęt RTV – telewizory, odtwarzacze DVD i Blu-ray, amplitunery, tunery oraz dekodery;
- Edukację i prototypowanie – naukę odbioru i dekodowania sygnałów w systemach opartych na mikrokontrolerach AVR, ARM i innych platformach;
- Sterowniki oświetlenia LED – zmianę jasności, koloru oraz trybu świecenia;
- Proste systemy automatyki – zdalne uruchamianie funkcji w urządzeniach domowych i instalacjach hobbystycznych;
- Systemy alarmowe i kontroli dostępu – obsługę podstawowych poleceń przesyłanych na niewielką odległość.
Implementacja RC5 w praktyce
Nadajnik
Typowy nadajnik RC5 składa się z następujących elementów:
- Mikrokontroler lub układ logiczny – tworzy ramkę RC5 na podstawie wybranej komendy;
- Generator częstotliwości 36 kHz – może być zrealizowany za pomocą timera mikrokontrolera;
- Stopień sterujący diodą IR – obejmuje tranzystor, rezystor ograniczający prąd oraz diodę emitującą podczerwień.
Mikrokontroler przygotowuje bity startu, bit przełączający, adres i kod komendy. Następnie timer generuje falę nośną oraz paczki impulsów zgodne z kodowaniem manchesterskim. W praktyce nośna może mieć współczynnik wypełnienia wynoszący na przykład 1/3 lub 1/4.
Odbiornik
Po stronie odbiorczej stosuje się zwykle gotowe moduły IR, na przykład układy z rodziny TSOP. Realizują one kilka kluczowych zadań:
- Filtrowanie sygnału – wydzielają pasmo skupione wokół częstotliwości 36 kHz;
- Demodulacja nośnej – zamieniają odebrany sygnał na prosty przebieg cyfrowy;
- Tłumienie zakłóceń – wykorzystują automatyczną regulację wzmocnienia oraz dodatkowe filtry przeciwzakłóceniowe.
Wyjście modułu jest podłączane do mikrokontrolera, który mierzy czasy impulsów i przerw, dekoduje sygnał Manchester oraz odtwarza 14-bitową ramkę RC5.
Algorytm dekodowania
Typowa implementacja korzysta z przerwań timera oraz przerwań wywoływanych zmianą stanu na wyjściu odbiornika IR. Przy każdym zboczu sygnału mierzony jest czas od poprzedniego zdarzenia.
Na podstawie odstępów czasowych algorytm ustala, czy przejście nastąpiło w połowie bitu, czy na granicy sąsiednich bitów. Następnie odtwarza wartości logiczne zapisane w kodzie Manchester i przekształca je w zwykły ciąg bitów reprezentujący ramkę.
Po odebraniu wszystkich 14 bitów dekoder powinien sprawdzić bity startu, odczytać bit przełączający, zweryfikować adres i dopiero wtedy wykonać komendę. Takie podejście ogranicza ryzyko reakcji na niepełne lub zakłócone transmisje.
RC5 a inne protokoły podczerwieni
RC5 jest jednym z kilku popularnych standardów komunikacji w podczerwieni. Do pozostałych należą między innymi NEC, RC6 oraz Sony SIRC.
Na tle protokołu NEC, który wykorzystuje kodowanie czasem trwania impulsów i przerw, RC5 wyróżnia się kodowaniem manchesterskim oraz stałą długością podstawowej ramki. Ułatwia to synchronizację, ale zwiększa liczbę zmian stanu w przesyłanym sygnale.
RC6 jest rozwinięciem koncepcji RC5 i umożliwia obsługę bardziej złożonych komend oraz wyższych szybkości transmisji, lecz wymaga bardziej rozbudowanego dekodera. RC5 pozostaje praktycznym wyborem tam, gdzie najważniejsze są prostota, odporność na zakłócenia i łatwo dostępna dokumentacja, a liczba komend oraz szybkość transmisji nie mają krytycznego znaczenia.


