A protocol is an agreement between two peer layers on how communication should proceed. It is like a language that both peers understand without which the communication between them would be impossible. One of the tasks handled by a Data Link Layer (DLL) protocol is error detection and correction. On the other hand, one of the essential tasks handled by a Physical Layer (PHY) protocol is modulating digital data onto an analog signal. Protocols can be implemented as software (SW) or hardware (HW). The aim of this project is to perform SW/HW implementation of error detection and correction as well as modulation as detailed below:
1. The transmitter’s side:
1.1. DLLT: Design a digital circuit that is able to generate Hamming codewords once a data message has been passed in (from the higher layer). You can generate random messages and feed them into the circuit. The circuit should be able to compute the required number of check bits (that is, the r bits) and create the final codeword.
1.2. PHYT: Create a SW that receives the codewords generated by the DLL (in part 1.1) and modulates them using MFSK or QPSK.
2. The receiver’s side:
2.1. PHYR: Create a SW that receives MFSK or QPSK signal created by PHYT and demodulates it to generate the corresponding codewords. The received MFSK or QPSK signal should be assumed to have experienced an error (that will result in a flip of only a single bit). The final codewords (with errors in them) should be then passed to the DLLR.
2.2. DLLR: Design a digital circuit that receives the codewords generated by the PHYR and detects and corrects the errors in them.
3. General Requirements:
3.1. The digital circuits in parts 1.1 and 2.2 can be built on the Digital Trainer Board, Multisim, or Quartus.
3.2. The SW in parts 1.2 and 2.1 can be developed using any programming language or simulation tool the students are comfortable with (like MATLAB).