Work on thesis report
Signed-off-by: Severin Kaderli <severin@kaderli.dev>
This commit is contained in:
parent
36a642d0b4
commit
19b6c78cb1
8 changed files with 163 additions and 13 deletions
|
@ -9,5 +9,3 @@ Other reseach projects in this area exists and some have covered the use of the
|
|||
This thesis will research the concept of communication using magnetic induction and will create a prototype implementation of a protocol that works through attempted manipulation of magnetic fields using a CPU in a Laptop. A simple user interface in the form of a website is created that allows an user to send text over the protocol and an Android application is used for receiving the text over the protocol.
|
||||
|
||||
// TODO: Reword the introduction
|
||||
|
||||
// TODO: Add more glossary entries
|
||||
|
|
|
@ -34,8 +34,10 @@ Manchester is a simple encoding code for the transmission of binary data. The da
|
|||
|
||||
The advantages of manchester encoding is that there are no prolonged high or low signals and the original clock signal can be extracted from the signal, on the other side the bandwidth requirements are doubled as two bits in the signal are needed to encode one bit of the original data \cite{manchesterCode}.
|
||||
|
||||
\section{Hall Sensor}
|
||||
// TODO: Write this section
|
||||
\section{Hall Effect Sensor}
|
||||
A Hall Effect Sensor is a type of sensor to measure the strength of magnetic fields. This type of magnetometer is found in many smartphones today \cite{hallEffectSensor} and is generally used for compass capabilities and for positioning \cite{smartphoneSensors}.
|
||||
|
||||
It utilizes the so-called hall effect to do so. The hall effect is the voltage between two sides of a current-carrying conductor inside a magnetic field \cite{hallEffect} \cite{hallEffect2}.
|
||||
|
||||
\section{Magnetic Induction}
|
||||
// TODO: Write this section
|
||||
|
|
|
@ -72,6 +72,3 @@
|
|||
\end{reqTblr}
|
||||
\caption{Non Functional Requirement 02}
|
||||
\end{table}
|
||||
|
||||
|
||||
// TODO: Clarify speed values
|
||||
|
|
|
@ -8,7 +8,7 @@ The main communication protocol works over magnetic induction. By putting a load
|
|||
|
||||
For simplification purposes the protocol in this project is used to transmit ASCII text but in reality any bitstream can be transmitted.
|
||||
|
||||
To indicate the start of a message in the signal, a preamble is used. The preamble used in this protocol is 3 high signals, followed by 3 low signals, followed by 3 high signals. The duration of one signal in preamble is 1 second. That means the entire preamble takes 9 seconds.
|
||||
To indicate the start of a message in the signal, a preamble is used. The preamble used in this protocol is 3 high signals, followed by 3 low signals, followed by 3 high signals. The duration of one signal in the preamble is 1 second. That means the entire preamble takes 9 seconds.
|
||||
|
||||
\subsection{Packet Format}
|
||||
\subsubsection*{Encoding}
|
||||
|
|
|
@ -426,3 +426,5 @@ The following test cases are all structured in the same way. The table lists the
|
|||
\end{reqTblr}
|
||||
\caption{Test Case 15}
|
||||
\end{table}
|
||||
|
||||
// TODO: Fix up layout of images
|
||||
|
|
|
@ -1,14 +1,132 @@
|
|||
\chapter{Benchmarking}
|
||||
\label{chapter:benchmarking}
|
||||
This chapter will research the real world capabilities of MagSend. I attempt to transmit a message using different speeds of MagSend under different system CPU loads to see how it performs and which transfer speed is the most reliable to use.
|
||||
|
||||
// TODO: Benchmarking different speeds with different loads
|
||||
The following benchmark test are structured in the same way. I run each test 5 times to get a more accurate view of the test. For each test I note if MagSend can detect the preamble, the received payload length, whether the \gls{crc} is valid and the received message.
|
||||
|
||||
// TODO: For each benchmark note if the preamble can be detected
|
||||
The message used in the test transmissions is "\textbf{Test}".
|
||||
|
||||
// TODO: For each benchmark note if the payload length, payload and crc are correct
|
||||
|
||||
// TODO: Run multiple benchmarks for each "case"
|
||||
\section{25\% CPU Load}
|
||||
\subsection{\SI{1}{\bit\per\second}}
|
||||
\begin{table}[H]
|
||||
\begin{bfhTabular}{l l l l l}
|
||||
Run & Preamble Detected & Payload Length & Is CRC Valid & Received Message \\
|
||||
1 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
2 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
3 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
4 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
5 & Preamble Detected & Payload Length & CRC Valid & Test
|
||||
\end{bfhTabular}
|
||||
\caption{Benchmark - 25\% CPU Load - \SI{1}{\bit\per\second}}
|
||||
\end{table}
|
||||
|
||||
\subsection{\SI{2}{\bit\per\second}}
|
||||
\begin{table}[H]
|
||||
\begin{bfhTabular}{l l l l l}
|
||||
Run & Preamble Detected & Payload Length & Is CRC Valid & Received Message \\
|
||||
1 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
2 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
3 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
4 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
5 & Preamble Detected & Payload Length & CRC Valid & Test
|
||||
\end{bfhTabular}
|
||||
\caption{Benchmark - 25\% CPU Load - \SI{2}{\bit\per\second}}
|
||||
\end{table}
|
||||
|
||||
\subsection{\SI{4}{\bit\per\second}}
|
||||
\begin{table}[H]
|
||||
\begin{bfhTabular}{l l l l l}
|
||||
Run & Preamble Detected & Payload Length & Is CRC Valid & Received Message \\
|
||||
1 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
2 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
3 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
4 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
5 & Preamble Detected & Payload Length & CRC Valid & Test
|
||||
\end{bfhTabular}
|
||||
\caption{Benchmark - 25\% CPU Load - \SI{4}{\bit\per\second}}
|
||||
\end{table}
|
||||
|
||||
\section{50\% CPU Load}
|
||||
\subsection{\SI{1}{\bit\per\second}}
|
||||
\begin{table}[H]
|
||||
\begin{bfhTabular}{l l l l l}
|
||||
Run & Preamble Detected & Payload Length & Is CRC Valid & Received Message \\
|
||||
1 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
2 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
3 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
4 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
5 & Preamble Detected & Payload Length & CRC Valid & Test
|
||||
\end{bfhTabular}
|
||||
\caption{Benchmark - 50\% CPU Load - \SI{1}{\bit\per\second}}
|
||||
\end{table}
|
||||
|
||||
\subsection{\SI{2}{\bit\per\second}}
|
||||
\begin{table}[H]
|
||||
\begin{bfhTabular}{l l l l l}
|
||||
Run & Preamble Detected & Payload Length & Is CRC Valid & Received Message \\
|
||||
1 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
2 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
3 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
4 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
5 & Preamble Detected & Payload Length & CRC Valid & Test
|
||||
\end{bfhTabular}
|
||||
\caption{Benchmark - 50\% CPU Load - \SI{2}{\bit\per\second}}
|
||||
\end{table}
|
||||
|
||||
\subsection{\SI{4}{\bit\per\second}}
|
||||
\begin{table}[H]
|
||||
\begin{bfhTabular}{l l l l l}
|
||||
Run & Preamble Detected & Payload Length & Is CRC Valid & Received Message \\
|
||||
1 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
2 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
3 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
4 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
5 & Preamble Detected & Payload Length & CRC Valid & Test
|
||||
\end{bfhTabular}
|
||||
\caption{Benchmark - 50\% CPU Load - \SI{4}{\bit\per\second}}
|
||||
\end{table}
|
||||
|
||||
\section{75\% CPU Load}
|
||||
\subsection{\SI{1}{\bit\per\second}}
|
||||
\begin{table}[H]
|
||||
\begin{bfhTabular}{l l l l l}
|
||||
Run & Preamble Detected & Payload Length & Is CRC Valid & Received Message \\
|
||||
1 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
2 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
3 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
4 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
5 & Preamble Detected & Payload Length & CRC Valid & Test
|
||||
\end{bfhTabular}
|
||||
\caption{Benchmark - 75\% CPU Load - \SI{1}{\bit\per\second}}
|
||||
\end{table}
|
||||
|
||||
\subsection{\SI{2}{\bit\per\second}}
|
||||
\begin{table}[H]
|
||||
\begin{bfhTabular}{l l l l l}
|
||||
Run & Preamble Detected & Payload Length & Is CRC Valid & Received Message \\
|
||||
1 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
2 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
3 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
4 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
5 & Preamble Detected & Payload Length & CRC Valid & Test
|
||||
\end{bfhTabular}
|
||||
\caption{Benchmark - 75\% CPU Load - \SI{2}{\bit\per\second}}
|
||||
\end{table}
|
||||
|
||||
\subsection{\SI{4}{\bit\per\second}}
|
||||
\begin{table}[H]
|
||||
\begin{bfhTabular}{l l l l l}
|
||||
Run & Preamble Detected & Payload Length & Is CRC Valid & Received Message \\
|
||||
1 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
2 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
3 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
4 & Preamble Detected & Payload Length & CRC Valid & Test\\
|
||||
5 & Preamble Detected & Payload Length & CRC Valid & Test
|
||||
\end{bfhTabular}
|
||||
\caption{Benchmark - 75\% CPU Load - \SI{4}{\bit\per\second}}
|
||||
\end{table}
|
||||
|
||||
|
||||
// TODO: Add graphs to each benchmark
|
||||
|
||||
// TODO: Power Supply
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
\chapter{Materials \& Methods}
|
||||
* Laptop with Web-Browser capable of Web Workers
|
||||
* Smartphone with Magnetometer
|
||||
|
||||
// CPU of Laptop and Magnetometer of Smartphone
|
||||
|
|
|
@ -141,3 +141,34 @@
|
|||
year = 2022,
|
||||
urldate = "2022-01-09",
|
||||
}
|
||||
|
||||
@online{hallEffect,
|
||||
author = "Robert Keim",
|
||||
title = {{Understanding and Applying the Hall Effect}},
|
||||
url = "https://www.allaboutcircuits.com/technical-articles/understanding-and-applying-the-hall-effect",
|
||||
year = 2015,
|
||||
urldate = "2022-01-10",
|
||||
}
|
||||
|
||||
@online{hallEffect2,
|
||||
author = "Carl R. Nave",
|
||||
title = {{Hall Effect}},
|
||||
url = "http://hyperphysics.phy-astr.gsu.edu/hbase/magnetic/Hall.html",
|
||||
year = 1998,
|
||||
urldate = "2022-01-10",
|
||||
}
|
||||
|
||||
@online{hallEffectSensor,
|
||||
author = "{{GSMScore}}",
|
||||
title = {{Mobiles with Hall Effect Sensors available in Market}},
|
||||
url = "https://www.gsmscore.com/model-finder/sensors/hall-effect/",
|
||||
urldate = "2022-01-10",
|
||||
}
|
||||
|
||||
@online{smartphoneSensors,
|
||||
author = "David Nield",
|
||||
title = {{All the Sensors in Your Smartphone, and How They Work}},
|
||||
url = "https://gizmodo.com/all-the-sensors-in-your-smartphone-and-how-they-work-1797121002",
|
||||
year = 2020,
|
||||
urldate = "2022-01-10",
|
||||
}
|
||||
|
|
Reference in a new issue