Morse Code Detector
Morse Code Detector
The basic idea is to set a particular range of time period to interpret the signal as a dot,
a dash or different kinds of spaces. At the instant when we start to push the button (positive
edge) or leave the button (negative edge), a new clock will start and the time period of each
clock will determine the sequence of dots and dashes. Using an asynchronous FSM, we detect
the input sequence and the output can be generated using the FPGA and the character(s) can
be displayed on the LCD Screen/ 7-Segment display.
Distribution of Work:
There are broadly two parts to this project: 1) Designing the FSM and 2) Coding the FSM using
Verilog and implementing on the FPGA. Since there needs to be collective work done in both
the parts, it cannot be distributed in a discrete way. So, all of us will be involved in all the
aspects of the project.
In the final working model of the Morse code detector, the user can give the input using the
push buttons present on the FPGA. The output on the LCD Screen/ 7-Segment Display will
show what is being inputted through the push buttons.
Introduction:
Morse code is one of the methods of transmitting information using dots and dashes. It is
generally used in transmitting information through audio. Each character is associated with a
series of dots and dashes. According to the International Standard Morse Code, the length of
a dot is one unit and the length of a dash is three units. The space between parts of the same
letter is one unit and the space between different letters is three units.
This is one example of how the text “MORSE CODE” can be written in Morse code.
Source: Wikipedia
Motivation:
One of the places where Morse code was radio communication in the army in the olden days.
This radio communication is done by sending short and long tone pulses. Radiotelegraphy
using Morse code was very vital during the Second World War and it was very effective in
communication. It was also one of the main modes of marine communication. It can also be
used by people with disabilities to communicate. One important application now-a-days is to
signal for help using SOS which is a distress signal. As, this has so much so much
importance, we have chosen this field to explore and understand one of the oldest ways of
communication which is of importance even today and to convert it into a digital form.
Aim:
To design and implement a Morse code detector using an FPGA and to display the
transmitted characters on a 7-segment display. The inputs to the FPGA are taken through the
push button. The FPGA is to be programmed by using Verilog.
Theory:
Our basic idea was to give the input of the Morse code through a single push button and
detect it in the FPGA and give the corresponding output to a 7-segment display. In detail, we
created two FSM’s. One in the transmitter and another in the receiver. The FSM in
transmitter was used to detect the dashes, dots and spaces given through the push button as
inputs. The output of first FSM consisting of dashes, dots and spaces was fed into the second
FSM in the receiver which maps the dots and dashes to the corresponding characters and
those characters are displayed on the 7-segment display.
Working:
Clock:
Using the 50MHz clock present in the FPGA, we used a clock divider and created a 1Hz
clock. We used a counter and a comparator. The counter counts up to 25,000,000 and resets
to zero. This count is compared with 24,999,999 using a comparator which gives output ‘1’
when both the numbers are equal. The output from the comparator is fed to a flip flop which
toggles its output for every half second. This will create a 1Hz clock.