Infrared transmit-receive system

This project aims to establish a viable, reliable and easy to implement IR communication using basic LED and Photodiode. The communication follows the RC-5 protocol invented by Philips and can be further used as a remote for devices such as TV screens and air conditioners created by Philips.

The project revolves around using IR signals to transmit, receive and consistently validate reliable communication between two ports of a monitoring FPGA device.
The implementation is written exclusively in SystemVerilog, the handling of FPGA – in this case, Nexys A7 is done using VIVADO.
The communication is implemented using the RC-5 protocol, invented by Philips, which consists of 14-bit frames – separated into start, address, and command bits, modulated with a unique pattern (using half of the transmission time to dissect between ‘0’ and ‘1’), transmitted along a square carrier wave and demodulated according to a set of conditions in a recursive manner, given a known start of transmission bit.
The transmitter side consists of a module for generating a carrier wave at the required frequency and a module for modulating a typed in frame message (using a Digilent keypad), into the form required at the RC-5 protocol. In the top (main) module the modulated message is transmitted along the carrier wave (performing a logical ‘AND’ operation). The physical transmitter in the electrical circuit is the IR333-A LED, receiving a waveform and voltage from the FPGA ports.
The receiver side consists of a module for performing edge detection on the received signal which relies on the FPGA timings for duty cycles and allowed noise margins during rising and falling edges and another module for deciphering the message into bit-form using a flow-chart conditioned RC-5 decoder which uses the calculated edge detection analysis of the signal. The physical receiver in the electrical circuit is the TSOP3828 photodiode.
Testing was performed using a Keysight Scope and debugging was done using the ILA built-in VIVADO debugger.
The visual aspect of typing in a chosen address and command, and displaying the deciphered message is shown on the 7-SEG display of the Nexys A7, and in its built-in LEDs for extra validation.