Specifications
Remote Control and Receiver-Transceiver Specifications and Requirements
for Windows Media Center in Windows Operating Systems
132
Assume, as in the previous example, the sample period is set to 50 microseconds. If the same
waveform is received, the device would return the following sequence to the host:
// IR Data:
[10001000] prefix byte – 8 bytes of IR data follows
[11111111] on for 127 sample (6.35 ms)
[11001001] on for 73 sample (3.65ms – bringing the total to 10 ms)
[01111111] off for 127 samples (6.35 ms)
[01111111] off for 127 samples (6.35 more ms – bringing the total to 12.7 ms)
[01111111] off for 127 samples (6.35 more ms – bringing the total to 19.05 ms)
[00010011] off for 19 samples (.95 more ms – bringing the total to 20 ms)
[11111111] on for 127 sample (6.35 ms)
[11001001] on for 73 sample (3.65ms – bringing the total to 10 ms)
// What port was used for reception:
[10011111] – 0x9F – RSP_PORT_IR
[00010100] – 0x14 - RSP_EQIRRXPORTEN
[00000010] – 0x02 – Wide-band receiver used.
// Carrier frequency:
[10011111] – 0x9F – RSP_PORT_IR
[00010101] - 0x15 - RSP_EQIRRXCFCNT
[00000010] – 0x02 – CH - Carrier count high
[11100100] – 0xE4 – CL – Carrier count low
// EOM
[10000000] IR Port Data End
The host then knows the envelope of the IR signal. It knows it was received in the learning
receiver. (This is redundant information because it was the host that told the device to listen with
the learning receiver.)
The host also has enough information to calculate the carrier frequency. It knows that the
envelope was high for 20 ms (from the RLC data), and it knows that there were 740 leading
edges in the signal (from the RSP_EQIRXCFCNT response). Because 740 /.02 = 37037, this IR
signal had a carrier frequency of about 37000 kHz.
As these examples illustrate, the IR data is broken into packets with a prefix byte indicating the
length of the packet. The maximum packet size is 31 bytes (1 prefix byte plus 30 bytes of data).
The minimum packet size is 2 bytes (1 prefix plus 1 byte of data). The firmware must decide how
to break the data into packets. In the preceding example, the total RLC was 6 bytes long and this
was in one packet. It is acceptable to break this into any number of packets. For example, if you
wanted to break the same data into 3 packets of 2 bytes each, you would have the following:
[10000010] prefix byte – 2 bytes of IR data follows
[11101000] on for 200 samples (10 ms)
[01111111] off for 127 samples (6.35 ms)
[10000010] prefix byte – 2 bytes of IR data follows
[01111111] off for 127 samples (6.35 more ms – bringing the total to 12.7 ms)
[01111111] off for 127 samples (6.35 more ms – bringing the total to 19.05 ms)
[10000010] prefix byte – 2 bytes of IR data follows
[00010011] off for 19 samples (.95 more ms – bringing the total to 20 ms)
[11101000] on for 200 samples (10 ms)
[10000000] IR Port Data End
Packet size does not need to be consistent, so, for example, 6 bytes could be broken into one
packet with 4 bytes and one packet with 2 bytes.
Suggested Firmware Memory Organization
It is recommended that you divide your firmware into the following four sections. This is not
required, but this is how the Microsoft-produced IR Transceiver Version 2 or IR Receiver Version
3 memory is divided.










