Infrared remote control uses an infrared ray with wavelength of approximately 950 nm to transmit several bytes of information at low speed. Although infrared rays are used to transmit binary (0/1) data, this is not simply a matter of representing binary values by the ON/OFF status of infrared rays.
An example of the NEC format is described below.
The infrared remote control signal starts with a leader code.
Next comes a 16-bit custom code, then an 8-bit data code and an inverted binary 8-bit code, and finally a stop bit.
An example of the infrared remote control format is shown below.
This signal is followed by a frame space during which no infrared rays are emitted. The total frame length (including everything from the leader to the frame space) is 108 ms.
Example of NEC format for infrared remote control
The leader code stays ON for a 9-ms period, then is OFF for a 4.5-ms period. Since this part's waveform (timing) differs greatly from the following data code section, it makes the leader code easier to recognize.
(When repeating, the OFF period is only 2.25 ms, and the stop bit comes next, omitting the custom code and data codes.)
The custom code and data code sections contain the binary (0/1) data.
Data in each of these sections is transmitted LSB first (seeData transmission sequence below for details).
The binary (0/1) division of data is not based directly on infrared ON/OFF status but rather on the bit length (i.e., length of period when infrared rays are not being output).
Therefore, the length of the custom code section varies according to the data.
However, since inverted data corresponding to the data code is also transmitted, the total number of data bits "1" is eight and the data length is fixed for this section.
Difference between "0" and "1" data bit values in remote control signal
Infrared rays are not output consecutively during the entire ON period. Instead, infrared ON periods repeatedly alternate with infrared OFF periods at a constant frequency (called the "carrier frequency"). The standard carrier frequency is 38 kHz.
The duty factor is 1/3.
These settings help minimize power consumption.
[Reasons for modulation in carrier frequency]
In ordinary (natural) use environments, various sources of infrared noise exist.
In order to work with signals amidst these noise sources, the transmitted infrared rays must exceed the noise level at the receiving side.
However, simply transmitting stronger infrared rays would increase power requirements.
To avoid this, a carrier frequency is used to modulate on/off periods of infrared transmission.
This enables stronger infrared rays to be transmitted at the same power consumption level.
The following diagram illustrates the difference when infrared transmission uses a carrier frequency.
When a carrier frequency is not used, the noise level is barely different. On the other hand, when a carrier frequency is used to boost the power during the peak periods only, the transmitted signals are stronger (at their peak) than the noise level even though the total power is the same.
Using a carrier frequency with alternating on/off periods enables a filter on the receiving side to filter out components that are not frequency components, which further increases the margin of the signal to noise.
Relationship between remote control signals and noise in regard to carrier frequency modulation
This method works because the timing (intervals) is used to indicate binary (0/1) data values.
[Data transmission sequence]
The structure of remote control signal transmitted via this method consists of custom code and data code.
The custom code, which is transmitted first, is 16 bits long but it is divided into two 8-bit sections.
In early versions of remote control devices, the custom code was only 8 bits long (C0 to C7), and the logically inverted data (C'0 to C'7) was transmitted via the next 8 bits.
Now this C'0 to C'7 section has been reassigned as the second section of the custom code so that the custom code is 16 bits long.
(16-bit data is specified as the sum of custom code = xx + custom code' = yy.)
When transmitting, the custom code is output LSB first (C0 to C7), then the custom code' is output LSB first (C0' to C7').
Transmission sequence of custom code section
The data being transmitted is 8-bit data.
The logically inverted 8-bit data is transmitted continuously, so a total of 16 bits are used to transmit the data.
When this data is received, the inverted 8-bit data code should be checked as being the logical inversion of the first 8-bit data code, as a means of error checking.
Transmission sequence of data code sections