Stap 11: Het RC5 infrarood protocol
1. korte geschiedenis
Dit infrarood protocol werd ontwikkeld door Philips, kreeg het populaire echt snel met populaire applicaties zoals televisies en HIFI audiosystemen. Het werd ook goedgekeurd door veel andere fabrikanten die zich heeft gespecialiseerd in audio- of video-apparatuur. Het was niet het alleen infrarood protocol ontwikkeld (NEC kwam in deze business as goed), maar er was een groot voordeel in RC5 afstandsbedieningen: een RC5-afstandsbediening was in staat om elke RC5-apparaat te controleren!
2. gegevens vorm, protocol specificaties
De afstandsbediening heeft meestal een toetsenbord en een zender die een infrarode LED rijden. De opdracht gegevens is Manchester gecodeerd, bovenop een draaggolffrequentie 36KHz. Het infrarood signaal dat afkomstig is van de zender is gedetecteerd, versterkt, gefilterd en gedemoduleerd door een gespecialiseerde component (onze Vishay sensor) met een interne foto-diode. Het ontvangende apparaat randen vanuit de sensor detecteert en neemt besluiten op basis van de opdrachten die zijn verzonden in de infrarood pulse uitbarsting. In dit protocol is de informatiestroom eenrichtingsverkeer.
Het infrarood commando heeft 14 stukjes van de gegevens:
- 1 x startbit - dit is altijd '1' en heeft iets met de eerste kalibratie van de sensor van de ontvanger te doen.
- 1 x veld bit - is dit stukje toegevoegd later toen TV en audiosystemen fabrikanten sloten dat 64 verschillende berichten niet genoeg waren.
- 1 x besturingselement bit - dit stukje is met elke druk op de knop van een knevel gevoorzid. Dit helpt met het onderscheid te maken tussen twee snelle sleutel-persen en lang indrukken van een toets.
- 5 x systeemadres - Hiermee selecteert u een van de mogelijke 32 soorten systemen
- 6 x systeem commando - Hiermee selecteert u een van de 64 mogelijk opdrachten voor een bepaalde audio- of TV-systeem. Met de combinatie van de bits van het veld, kan de handset een totaal aantal 128 verschillende besturingsseinen overbrengen.
De periode van 36 kHz drager is 27.778 VS en de taakcyclus is 25%, dit betekent een puls van de drager met een duur van 6.944 vs. Aangezien de hoge helft van elk symbool (bit) van de RC-5 code woord 32 pulsen van de vervoerder bevat, de symbool-periode is 64 x 27.778us = 1.778ms, en de 14 symbolen (bits) van een volledige codewoord van RC-5 neemt 24.889ms te verzenden. Het codewoord wordt herhaald elke 113.778ms (4096 / 36 kHz), zolang een toets ingedrukt blijft.
3. hoe dit zich vertaalt in onze specifieke situatie
We hebben vast te leggen van deze gedachtengang impulsen een of andere manier kunnen verwerken van de opdracht op de afstandsbediening. Denken van dit, ik ben beginnen te twijfelen aan de zin van de twee debug knoppen voegde ik "just in case". Er zijn genoeg knoppen op een TV remote...
Ik heb al uitgelegd hoe ik gevangen de infrarood pakketten, gebruikte ik de vergelijk module binnen de PIC om te proeven van het signaal op de plekken zien op de screenshot van de gemodificeerde oscilloscoop. De blauwe arrown geeft aan waar de externe interrupt veroorzaakt, hierdoor is de vergelijk-interrupts die worden getekend met dunne blauwe en rode lijnen. De rode plekken markeren een dalende rand tijdens een bit-interval, die - in dit protocol - komt met een logische "0 overeen". Als je de laatste zes bits samen en zie hoe het eruit ziet in decimale en hexadecimale notatie, krijgt u het exacte aantal, beschrijving van de RC-5 wikipagina. In ons geval is dit een 0x21, of 33 in decimale notatie. Deze id wordt toegewezen voor de knop "kanaal/programma neer", wat betekent dat ik waarschijnlijk dat een beroerte terwijl ik hield de werkingssfeer sonde met mijn rechterhand :)
Mijn code herkent deze patronen en kan worden geïnstrueerd om te reageren op bepaalde toetsen op een bepaalde manier! De vier belangrijkste sleutels zal worden gebruikt om de huidige tijd en datum instellen!