Infrared light and signals t6e10eh
Since a long time the consumer electronics industy has been employing infrared
remote controls for the control of television, VCR's and many other products.
This same technic is popular In industrial- and office applications like control
your pc to eliminate expensive keypads and cables. It's easier to use the infrared
light than cables who always crossing each other.
We humans can't see infrared light because the wavelenght of infrared light
is below the visible spectrum(Some animals can see it and use it as a target
for killing the prey). Because we don't see ir light we use it for remote control
purposes. In remote controls the light source is a led but around us there are
many objects who are emitting infrared light. The brighest source is the sun.
In fact everything that radiates heat is also emitting ir light like flames,
light bulbs, and even our body.
Decoding infrared signals
The only hardware you need for decoding IR signals is an infrared receiver.
There are two main principles of ir remote controle: using a modulated beam
at a frequency about 40kHz or the second is an non-modulated beam of IR light
and has a restricted range.
Transmitting and receiving IR lights
Transmitting IR light is fairly simple done by using an infrared led. Like normal
leds emmiting light waves in the visible ranges, ir leds are doing this with
a light invisible for human eyes. But when you will see the ir beam, take a
webcam and point the remote control to the cam and you will see a flashing light.
Receiving and decoding the signal is a lot harder. The ir light is captured
by an ir sensitive photodiode with the highest spectral sensivity around 950nm.
The output signal is optical filtered, amplified and passed through a signal
filter tuned to the frequency of the emitted signal frequency. The best and
most easy to use are the integrated 3 leg ir receivers like the Vishay TSOP1836
and the Siemens SFH505A. The output of these devices is TTL compatible, the
optical filter, amplifier with automatic gain control, tuned filter, and demodulator
are integrated.
Infra Red Remote Controls
All Infra Red (IR) remote controls use some kind of IR signal. The remotes transmit
pulses of IR light to send the signal to the receiver. These IR LEDs transmit
light in the frequency range of 30 kHz to 40 kHz. These high frequencies were
chosen so that other light sources would not interfere with the receivers ability
to correctly receive the transmitted signals. These signals are transmitted
by the IR LED in some type of binary code. It turns out that for most consumer
electronics this coding is the same. The binary signal varies in length for
both time and bit length.
The physical communication layer is formed by the emmiter (a photo diode) that
emits the signal and a receiver (another photo diode) that receives the signal.
The data link layer is implemented by using binary pulses. There are really
only three different ways that manufacturers choose to code these signals. This
coding is usually based on varying the length of pulses, varying the length
of spaces between pulses or altering the order between spaces or pulses.
1) Pulse-Width-Coded Signals vary the length of pulses to code the information.
In this case if the pulse width is short (approximately 550us) it corresponds
to a logical zero or a low. If the pulse width is long (approximately 2200us)
it corresponds to a logical one or a high.
Used by SONY remote controls.
2) Space-Coded Signals vary the length of the spaces between pulses to code
the information. In this case if the space width is short (approximately 550us)
it corresponds to a logical zero or a low. If the space width is long (approximately
1650us) it corresponds to a logical one or a high. orREC-80
Used by Panasonic remote controls
3)Shift-Coded Signals vary the order of pulse space to code the information.
In this case if the space width is short (approximately 550us) and the pulse
width is long (approximately 1100us) the signal corresponds to a logical one
or a high. If the space is long and the pulse is short the signal corresponds
to a logical zero or a low.
Also known as RC-5 . Used by Philips remote controls
This coding holds information such as the address to the machine that is using
the remote and the command that the machine must follow. The address is very
important because without it the signal would be processed by another IR receiver
in the area.
When a button on a remote is pushed it sends a string of signals. The first
piece of information in the string is called the Header. The Header usually
contains a burst of highs that alerts all the IR receivers in the area to the
string of data being sent. Following the burst of highs is the address to the
specific machine to receive the next piece of data, the command. As long as
the button is held down (depressed) the command will continue to repeat over
and over. When the button is released a string of code called the stop is transmitted.
As you may have guessed it the stop tells the machine to stop its executing
the command.
The network layer is implemented by dividing the code into 2 parts.
Address : specifies the target device
Command : specifies the command to be sent to the device.
2. Panasonic's infrared remote protocol
The protocol is similar with the RECS-80 protocol but it use more bits than
the RECS-80 protocol. For the datatransmission Panasonic uses the pulse-place
modulation. For the communication a pulse is used with a fixed length, followed
by a pause wich represents The logical state of the bit. 2048 codes are defined
in this protocol, divided in 5 bits of custom code and 6 bits of data code.
The custom code is a value wich represents the manufacturer code and the data
code is a value wich represents the pressed button on the remote control. The
full transmitted code is 22 bits: First a header is sent then the custom code
(5 bits), then the data code, followed by the inverse of the custom code and
the invers of the data code, And to terminate a stopbit is added to the code.
The invers transmitted bits are very usefull for the error detection. Each first
part of a bit is always a high level with a fixed time and is followed by a
low level where the time defines if the bit is a logic 1 or a logic 0.
Timing diagram:
T =420 µs to approx 424 µs in the USA and Canada
T=454 µs to approx 460 µs in Europe and others
The header is 8T high and 8T low
A 1 is coded 2T high and 6T low
A 0 is coded 2T high and 2T low
Panasonic IR remote control
IR decoding program analysis
The RECS 80 code uses pulse length modulation. Each bit to be transmitted is
encoded by a high level of the duration T followed by a low level of duration
2T representing a logical '0' or 3T representing a logical '1'.
T 2T T 3T T 2T
_ _ _
| | | | | |
_| |__| |___| |__
0 1 0
Notice that a '1' takes more time to be transmitted than a '0'. The RC 5 code
instead has a uniform duration of all bits. A transition in the middle of the
time interval assigned to each bit encodes the logical value. A '0' is encoded
by a high to low transition and a '1' by a low to high transition. Therefore
we need additional transitions at the beginning of each bit to set the proper
start level if a series of equal bits is sent. We don't need this additional
transition if the next bit has a different value. This is also called a 'biphase'
code.
|1.Bit|2.Bit|3.Bit|4.Bit|
__ __ __ __
| | | | | |
|__| |_____| |__|
0 0 1 1
The RECS 80 code uses high pulses of uniform length while the low pulses differ
in length. If there are high and low pulses of two different lengths it might
be RC5 code. The receiver may invert the levels.
In RC5 code every command is encoded by 14 bits. The first two bits S are startbits
to allow the receiver to adjust the automatic gain control and to synchronize.
Next a bit T follows, that toggles with every new keystroke. Next is the address
A of the device which shall respond to the command. At last the command itself
follows.
| S | S | T | A4 | A3 | A2 | A1 | A0 | C5 | C4 | C3 | C2 | C1 | C0
Girder is the most powerful and feature rich Windows automation tool available.
Girder controls programs like WinAmp and Windows Media Player using infrared
and wireless remote controls so you can sit back and enjoy your digital library
from your couch. In Home Theater PC's, Girder controls Windows programs (media/DVD
players) and hardware devices (sound cards, X10 and serial devices such as projectors,
and receivers). Girder is the behind the scenes glue providing full control
of your multimedia experience.
Here’s Just a Sample of the Many Things You Can do With Girder:
· Use Girder with your remote to play music from your digital media library,
select playlists, crank the volume and play digital DJ for your next party!
· Control your home theater PC’s and hardware- from start up to
mid-movie play & pause to shut-down, Girder can do it all.
· Use Girder to automate your home. Control your lighting, security system,
climate settings and more. Plus, save hundreds of dollars by using Girder instead
of more expensive home automation packages!
· Control your CarPC.
Computer Interfacing Solutions
The 3 possible input ports that could be used to connect the receiver are
· IRDA port
· Serial Port
· Parallel Port
IRDA port
The IRDA port on the computer can be interfaced directly to the receiver, thus
minimizing requirements for intermediate hardware.
In brief, the IRDA standard is based on a 3 layer protocol..
· Physical Layer / Data link : SIR
· Data link / Network Layer : IrLAP
· Transport Layer : IrLMP
Serial Port
The Serial Port on the computer receives asynchronous data at suitable speeds
for our data. This, however, requires an extra hardware/logic interface between
the IR receiver and the port. Some of the main incompatible features between
the data links are.
· The serial port expects asynchrounous data, while the remote control
sends self-timed data.
· The serial port can only accept words of length 5 or 7 bits. It also
expects start and stop bits. The remote control has 12 bit words with a header.
To overcome these incompatibilities, we need hardware such as a demodulator
and logic that encodes the IR signal as 5 bit / 7 bit words perhaps sending
1 data signal from the remote control at a time. Thus, a word received on the
serial port would represent the data signal equivalent to a time period of T
in the remote control pulse code.
After this, specific software needs to be written in order to decode / record
the pulse code and interpret it as application commands.
Parallel Port
The Parallel Port on the computer is more flexible. The only extra hardware
used is a high speed (109 kHz) timer, which is connected to Pin 11 as a clock
to sample Pin 12, which is connected to the IR receiver output. This ensures
that the data is sampled constantly through the parallel port.
However, low level software needs to be written, that would collect these samples
from the pararllel port and store them for further use. After this, the application
software has to take the responsibility of decoding the pulse code and appropriately
interfacing the commands.