MMIA: IR dekodér/kodér, komunikace
Bc. Miroslav Skopal, UREL, FEEC, VUT Brno
skopalm
seznam.cz
Obsah:
- Úvod
- Realizace
- IR Transceiver modul (TFDU4100)
- Protokol Philips RC-5
- Struktura RC-5 paketu
- Obslužný software MIRA
- MIRA - Nastavení
- Závěr
- Literatura
Původní požadavek zadání tohoto projektu bylo realizovat aplikaci pro mikrokontroler na platformě AVR například ATMega16 dle zapojení z aplikační poznámky of firmy Atmel AVR410. Toto zapojení, ale využívá obvod SFH 506-36, který je hardwarově přizpůsobený pro příjem pouze protokolu RC5 (36kHz). Toto omezení pouze na protokol od firmy Philips RC-5 jsem ale vyhodnotil jako velký nedostatek, a tak jsem se rozhodl vytvořit vlastní zapojení s obvodem TFDU4100. Jedná se obvod navržený pro IrDA komunikaci a v jednom pouzdru tedy je obsažen jak pijímač tak i vysílač infračerveného záření(IR transceiver).
Jak již bylo nastíněno v úvodu je celý modul IR přijímače/vysílače postaven na obvodu od firmy Vishay Telefunken TFDU4100. Tento obvod je primárně navržen jako fyzická vrstva IrDA protokolu verze 1.2. Tedy umožňuje přenášet data až do rychlosti definované
standardem SIR (115.2kbit/s). Schopnost obvodu TFDU4100 zpracovávat signály s rychlosti 115.2kbit/s proto také umožňuje zachytit i mnohem pomalejší signály protokolů používaných v domáctnostech v IR dálkových ovladačích.
Zapojení tohoto modulu vychází z doporučeného zapojení z datasheetu součástky TFD4100. Jedná se pouze malou desku plošného spoje s povrchovou montáží SMD ve velikost 1206. Deska obsahuje pouze 2 rezistory 6k8 zapojené v sérii jako proudové omezení
vysílací IR diody, jeden rezistor 47R, jeden rezistor 0R jako konstrukční můstek a tantalový kondenzátor 4.7uF pro vykrití proudových špiček při vysílání. K tantalovému
kondenzátoru je paralelně připojen ještě blokovací kapacitor 100nF. Samotný IR transceiver je v plastovém pouzdře s 8 vývody(viz obrázek č.1). Pro snadné připojení k mikroprocesoru jsem na desku přidělal 5 pinovou lištu, na kterou jsou vyvedeny všechny potřebné pinu. (viz obrázek č.2)

Obrázek č.1 - IR Transceiver TFDU4100
Podrobnější informace o této součastce najdete zde.

Obrázek č.2 - Schéma zapojení

Obrázek č.3 - Deska plošného spoje

Obrázek č.4 - Deska plošného spoje
Seznam součástek
- R1, R3...6R8 0.125W SMD1206
-
- R2...47R 0.125W SMD1206
-
- R4...0R 0.125W SMD1206
-
- C1...4.7uF tantalový B
-
- C2...100nF keramický 1206
-
Popis pinové lišty pro připojení modulu
- 1. GND - zem
- 2. SC - řídící pin citlivosti přijímače (doporučeno připojit na zem)
- 3. RXD - pin pro příjem 1=klidový stav, 0=detekován impuls
(min 8us)
- 4. TXD - pin pro vysílání 1=svítí, 0=nesvítí
- 5. +5V - napájení 5V impulsní odběr až 500mA
Schéma a návrh plošné desky jsou ke stažení zde:
Soubory Eagle: [sch] [brd]
Deska plošných spojů: [ps] [pdf]
Pro demonstraci funkčnosti vytvořeného IR modulu jsem si vybral asi jeden z nejrozšířenějších protokolů RC-5. Jedná se o protokol vyvinutý firmou Philips právě pro
domácí elektroniku. Protokol je definován jako 14 bitový paket s rychlostí cca 563 bit/s. Protokol používá
bi-fázové kódování (Manchester coding). Komunikace je zahájena dvěma
start bity s hodnotou "1". 3. vysílaný bit je toggle bit, 4 až 8 bit je adresa zařízení a nakonec 9 až 14 bit pak určuje příkaz.
Jednotlivé bity jsou pak vysílány jako série impulsů o frekvenci 36kHz, a v závislosti jestli je bit uvozen pauzou 889us nebo ne se rozhoduje o logickém významu bitu. Trvání
impulsů o frekvenci 36 kHz po dobu 889us pak tedy odpovídá zhruba 32
impulsům s periodou 27.77us. Jestliže před vysláním těchto 32 pulsů byla detekována mezera u délce 889us jedná se o logickou 1. V případě že byly přijaty nejprve tyto
pulsy a pak následné pauza 889us jedná se logickou 0. Na následujícím obrázku je vyznačeno uspořádání
impulsů a mezery vzhledem k logickému významu bitu.

Obrázek č.5 - RC-5 logická "1" a "0"
Z obrázku č.6 je patrné jak jsou jednotlivé bity vysílány. Snad jen pro úplnost popíši význam jednotlivých bitů:
- 1-2 bit: dva start bity uvozující RC-5 paket musí být vždy "1"
- 3 bit: toggle bit, je invertován pokaždé, když se uvolní tlačítko na dálkovém ovladači. Používá se pro detekování drženého tlačítka ovladače
- 4-8 bit: 5 bitové adresy zařízení (TV, VIDEO, RADIO, atd..), jsou vysílání od nejvýznamnějšího bitu (MSB)
- 9-14 bit: 6 bitový příkaz (zeslabit, vypnout, přepnout, atd..), jsou vysílány od nejvýznamnějšího bitu (MSB)

Obrázek č.6 - Struktura RC-5 paketu
Podrobnější popis v anglickém jazyce protokolu RC-5 a jiných můžete naleznout na stránkách SB-Project.
Při vytváření obslužného software jsem si kladl za hlavní požadavek transparentnost využití IR modulu vůči libovolnému komunikačnímu protokolu. V praxi tato
vlastnost znamená, že řídící software MIRA může automaticky detekovat různé komunikační protokoly(samozřejmě pouze ty které má
implementovány). Detekce a rozpoznání jednotlivých komunikačních protokolů probíhá paralelně v rámci přerušení od čítače/časovače 1 v režimu INPUT CAPTURE. Přerušení je nastaveno tak, aby reagovalo na sestupnou hranu na pinu ICP1/PD6, a měří dobu v mikrosekundách mezi jednotlivými IR impulzi. Na sestupnou hranu právě proto, že obvod TFDU4100 generuje při detekci začátku IR
impulsu krátký cca 8us impuls z klidové úrovně 1 do úrovně 0. Pro větší názornost přikládám obrazovku osciloskopu, kde horní signál prezentuje vysílání IR diody a dolní signál pak výstupní signál na pinu RXD z obvodu TFDU4100.

Obrázek č.7 - Průběh při přijímání IR signálu
Samotná detekce a dekódování paketu RC-5 protokolu je řešena v jediné funkci s jedním vstupním parametrem us, který právě udává dobu mezi jednotlivými
pulsy mikrosekundách. Prototyp funkce je tedy následující.
void RC5(unsigned short int us)
Funkce pak pracuje jako stavový automat, který postupně dekóduje celý RC-5 paket. Výsledný paket je pak oznámen zavoláním stanového funkce ve tvaru
void PrijatRC5(char Toogle, ,char Address, char Command)
Pro implementaci jiného protokolu je tedy nezbytně nutné aby detekující rutina obsahovala svou detekční funkci v tomto tvaru.
Pro možnost jednoduché konfigurace celého systému MIRA jsou všechny důležité parametry systému jako je popis zapojení pinů k mikrokontroleru nebo určení ,které protokoly se mají v signálu detekovat, sdruženy do jediného hlavičkového souboru MIRA.h
Tento soubor je dostatečně okomentován a možné nastavení je v něm naznačeno, proto zde není nutné konfiguraci
podrobně rozepisovat.
IR modul s implementací protokolu RC-5 byl vyzkoušen na mikrokotroleru ATMega16 s taktem 8MHz a 16MHz. Testování probíhalo automatickým odesláním RC-5 paketů pro všechny možné adresy a všechny možné příkazy. Všechny takto odeslané pakety byly v pořádku detekovány a správně
dekódovány. Další test probíhal příjímáním RC-5 paketů z dálkového ovladače od televizoru Sencor. Přijímač opět detekovat a rozkódoval všechny odeslané příkazy. Poslední zkouška funkčnosti proběhla odesláním příkazů na televizi Sencor, která jsem získal čtením příkázu v předchozím testu. I poslední test proběhl v pořádku.
Upozornění: V průběhu ladění a testování jsem si všimnul jednoho nedostatku konstrukce a to, že při trvalém svícení IR diodou se výrazně zahřívají rezistory R1 a R3, přes které při
konstantním svícení teče proud až 500mA. Aby se zamezilo trvalému svícení IR diody je ve funkci MIRA_Init() obsažen příkaz pro její zhasnutí. Nevýhodou je fakt, že mikrokontroler v režimu programování přepíná všechny I/O piny do stavu vysoké impedance a tento stav je na pinu
TXD, obvodu TFDU4100, vyhodnocen jako logická 1, tedy IR diody trvale svítí při programování mikrokotroleru. Tuto vlastnost by bylo možné vyřešit přidáním odporu cca 1000R mezi zem a pin TXD.

Obrázek č.8 - Fotografie hotového modulu

Obrázek č.9 - Fotografie testovacího zapojení
Zdrojové kódy systému MIRA jsou ke stažení zde
[1] MATOUŠEK, D. Práce s mikrokontroléry Atmel AVR. Praha: BEN - technická literatura, 2003.
[2] MANN, B. C pro mikrokontroléry. Praha: BEN - technická literatura, 2003.
[3] BERGMANS, S Philips RC-5 Protocol . Nizozemsko, 2008.http://www.sbprojects.com/knowledge/ir/rc5.htm
[4] ATMEL Datasheet ATMega16 . USA, 2008. www.atmel.com/dyn/resources/prod_documents/doc2466.pdf