hacktricks/todo/radio-hacking/infrared.md

5.2 KiB

Jak działa podczerwień

Światło podczerwone jest niewidoczne dla ludzi. Długość fali podczerwieni wynosi od 0,7 do 1000 mikronów. Piloty do domu używają sygnału podczerwonego do transmisji danych i działają w zakresie długości fali od 0,75 do 1,4 mikrona. Mikrokontroler w pilocie sprawia, że dioda podczerwona migocze z określoną częstotliwością, zamieniając sygnał cyfrowy w sygnał podczerwony.

Do odbierania sygnałów podczerwonych używa się fotoodbiornika. Konwertuje on światło podczerwone na impulsy napięcia, które są już sygnałami cyfrowymi. Zazwyczaj w odbiorniku znajduje się filtr światła ciemnego, który przepuszcza tylko pożądaną długość fali i eliminuje szum.

Różnorodność protokołów podczerwieni

Protokoły podczerwieni różnią się pod względem 3 czynników:

  • kodowanie bitów
  • struktura danych
  • częstotliwość nośna — często w zakresie 36 do 38 kHz

Sposoby kodowania bitów

1. Kodowanie odległości impulsów

Bity są kodowane poprzez modulację czasu trwania przestrzeni między impulsami. Szerokość samego impulsu jest stała.

2. Kodowanie szerokości impulsu

Bity są kodowane poprzez modulację szerokości impulsu. Szerokość przestrzeni po wybuchu impulsu jest stała.

3. Kodowanie fazy

Jest również znane jako kodowanie Manchester. Wartość logiczna jest określana przez polaryzację przejścia między wybuchem impulsu a przestrzenią. "Przejście z przestrzeni na wybuch impulsu" oznacza logiczne "0", a "wybuch impulsu na przestrzeń" oznacza logiczne "1".

4. Kombinacja powyższych i innych egzotycznych

{% hint style="info" %} Istnieją protokoły podczerwieni, które starają się stać uniwersalne dla kilku rodzajów urządzeń. Najbardziej znane to RC5 i NEC. Niestety, najbardziej znane nie oznacza najbardziej powszechne. W moim otoczeniu spotkałem tylko dwa pilota NEC i żadnego pilota RC5.

Producenci lubią używać swoich unikalnych protokołów podczerwieni, nawet w obrębie tego samego rodzaju urządzeń (na przykład dekodery TV). Dlatego pilota z różnych firm, a czasami z różnych modeli tej samej firmy, nie można używać z innymi urządzeniami tego samego typu. {% endhint %}

Badanie sygnału podczerwieni

Najbardziej niezawodnym sposobem zobaczenia, jak wygląda sygnał podczerwony z pilota, jest użycie oscyloskopu. Nie demoduluje on ani nie odwraca otrzymanego sygnału, po prostu wyświetla go "tak jak jest". Jest to przydatne do testowania i debugowania. Pokażę oczekiwany sygnał na przykładzie protokołu podczerwieni NEC.

Zazwyczaj na początku zakodowanego pakietu znajduje się preambuła. Pozwala to odbiornikowi określić poziom wzmocnienia i tło. Istnieją również protokoły bez preambuły, na przykład Sharp.

Następnie przesyłane są dane. Struktura, preambuła i metoda kodowania bitów są określone przez konkretny protokół.

Protokół podczerwieni NEC zawiera krótki kod i kod powtórzenia, który jest wysyłany podczas naciśnięcia przycisku. Zarówno kod, jak i kod powtórzenia mają tę samą preambułę na początku.

Kod NEC składa się, oprócz preambuły, z bajtu adresu i bajtu numeru komendy, dzięki którym urządzenie rozumie, co ma wykonać. Bajty adresu i numeru komendy są zduplikowane z wartościami odwrotnymi, aby sprawdzić integralność transmisji. Na końcu komendy znajduje się dodatkowy bit stopu.

Kod powtórzenia ma "1" po preambule, co oznacza bit stopu.

Dla logicznych "0" i "1" NEC używa kodowania odległości impulsów: najpierw przesyłany jest wybuch impulsu, po którym następuje pauza, której długość określa wartość bitu.

Klimatyzatory

W przeciwieństwie do innych pilotów, klimatyzatory nie przesyłają tylko kodu naciśniętego przycisku. Przesyłają również wszystkie informacje po naciśnięciu przycisku, aby zapewnić synchronizację między urządzeniem klimatyzacyjnym a pilotem.
Dzięki temu unikniemy sytuacji, w której urządzenie ustawione na 20ºC zostanie zwiększone do 21ºC za pomocą jednego pilota, a następnie, gdy użyty zostanie inny pilot, który nadal ma temperaturę ustawioną na 20ºC, zwiększy on temperaturę, "zwiększając" ją do 21ºC (a nie do 22ºC, myśląc, że jest w 21ºC).

Ataki

Możesz zaatakować podczerwień za pomocą Flipper Zero:

{% content-ref url="flipper-zero/fz-infrared.md" %} fz-infrared.md {% endcontent-ref %}

Referencje