Sony SIRC Protocol
I've collected and combined some information found on the internet about the Sony SIRC protocol.
I must admit that I have never worked with this particular protocol, so I could not verify that all information is valid for all situations.
Please note that a lot of confusing documentation about the SIRC protocol exists on the internet.
At first I contributed to the confusion by assuming the correctness of the source documents I found myself, until someone with some SIRC experience informed me about my errors.
I double checked his story with a universal remote control and a digital storage oscilloscope, and found that the bit and word order I documented were indeed wrong.
The SIRC protocol uses a pulse width encoding of the bits.
The pulse representing a logical "1" is a 1.2ms long burst of the 40kHz carrier, while the burst width for a logical "0" is 0.6ms long.
All bursts are separated by a 0.6ms long space interval.
The recommended carrier duty-cycle is 1/4 or 1/3.
The picture above shows a typical pulse train of the SIRC protocol. With this protocol the LSB is transmitted first. The start burst is always 2.4ms wide, followed by a standard space of 0.6ms. Apart from signalling the start of a SIRC message this start burst is also used to adjust the gain of the IR receiver. Then the 7-bit Command is transmitted, followed by the 5-bit Device address. In this case Address 1 and Command 19 is transmitted.
Commands are repeated every 45ms(measured from start to start) for as long as the key on the remote control is held down.
The table below lists some messages sent by Sony remote controls in the 12-bit protocol. This list is by no means meant to be complete, as the assignment of functions is probably quite dynamic.