GEX thesis source code, full text, references
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gex-thesis/ch.existing_solutions.tex

81 lines
5.5 KiB

\chapter{Existing Solutions}\label{sec:prior_art}
7 years ago
The idea of making it easier to interact with low-level hardware from a \gls{PC} is not new. Several solutions to this problem have been developed, each with its own advantages and drawbacks. Some examples will be presented in this chapter.
7 years ago
\section{Raspberry Pi}
7 years ago
\begin{figure}[H]
\centering
\begin{subfigure}{.5\textwidth}
\centering
\includegraphics[width=.95\textwidth] {img/pi3-photo.jpg}
\caption{Raspberry Pi 3 Model B}
\end{subfigure}%
\begin{subfigure}{.5\textwidth}
\centering
\includegraphics[width=.95\textwidth] {img/pi0.jpg}
\caption{Raspberry Pi Zero W}
\end{subfigure}
\caption{\label{fig:rpi}Raspberry Pi minicomputers}
\end{figure}
7 years ago
The Raspberry Pi (\cref{fig:rpi}) is a low-cost minicomputer targeted at school environments and hobbyists. It is often used for home automation, as a simple web server, or built into projects that take advantage of its powerful processor, such as wildlife camera traps, or data acquisition devices with in-situ processing.
7 years ago
7 years ago
The board's \gls{GPIO} header, a row of pins supporting features such as \gls{SPI}, \gls{I2C}, \gls{UART}, or \gls{PWM}, directly accessible by user applications running on the minicomputer, was one of the inspirations behind GEX.
7 years ago
The Raspberry Pi's functionality clearly overlaps with features we wish to support in GEX. Its processor is powerful enough for a regular \gls{OS} with a graphical user interface, and after attaching a display and a keyboard, it can be used as a \gls{PC}. However, when we have a more powerful computer available and only want to extend it with the \gls{GPIO} header, having to use the Raspberry Pi seems inconvenient; this might be overcome with the use of screen sharing or \gls{SSH}, but a low-cost and low-complexity solution like GEX certainly has its appeal.
7 years ago
\section{Bus Pirate}
7 years ago
\begin{figure}[H]
\centering
\includegraphics[width=0.5\textwidth] {img/buspirate.jpg}
\caption{\label{fig:buspirate}Bus Pirate v.4 (photo taken from~\cite{buspirate-product-page})}
\end{figure}
7 years ago
%http://dangerousprototypes.com/blog/about/
% Dangerous Prototypes and manufactured by Seeed Studio\todo{link}
Bus Pirate~\cite{buspirate} is a USB-attached device providing access to hardware interfaces like \gls{SPI}, \gls{I2C}, and \gls{USART}, as well as features like frequency measurement and direct pin access. The board aims to make it easy for users to familiarize themselves with unknown chips and modules; it also provides a range of programming interfaces to program microcontrollers and memory chips. In its scope, the Bus Pirate is similar to GEX. It can further be scripted and controlled from the PC, connects to \gls{USB}, and provides a wide selection of hardware interfaces.
7 years ago
The board is based on a PIC16 microcontroller running at 32\,MHz, connected to the \gls{PC} using a FTDI \gls{USB}/\gls{UART} adapter. Its \gls{ADC} only has a resolution of 10 bits (1024 levels), and there is no \gls{DAC} available on the chip, which makes applications that require a varied output voltage more difficult to implement. Another limitation of the board is its low number of \gls{GPIO} pins; this, however, is not a hindrance to its main purpose as a bus analyzer and gateway.
7 years ago
The board can be purchased for a price similar to the Raspberry Pi, which is still affordable but more expensive that one might expect. This is likely given by the much lower volume of production.
7 years ago
7 years ago
\section{Professional DAQ Modules}
7 years ago
Various professional tools that would fulfill our needs exist on the market, but their high price makes them inaccessible for users with a limited budget, such as hobbyists or students who would like to keep such a device for personal use. An example is the National Instruments (NI) \IIC/SPI Interface Device, which also includes several \gls{GPIO} lines, the NI USB DAQ module, or some of the Total Phase \IIC/SPI gadgets (\cref{fig:profidaq}). GEX could further, in some cases, replace bench multimeters, counters, or waveform generators.
\begin{figure}[h]
\centering
\begin{subfigure}{.5\textwidth}
\centering
\includegraphics[width=.95\linewidth]{img/ni-i2c-device.jpg}
\caption{NI \IIC/SPI Interface Device}
\end{subfigure}%
\begin{subfigure}{.5\textwidth}
\centering
\includegraphics[width=.95\linewidth]{img/nidaq.jpg}
\caption{NI USB DAQ module}
\end{subfigure}
\begin{subfigure}{.5\textwidth}
\centering
\includegraphics[width=.95\linewidth]{img/total-phase-spi-i2c.jpg}
\caption{Total Phase SPI/\IIC Host ``Aardwark''}
\end{subfigure}
\caption[Professional tools that GEX can replace]{\label{fig:profidaq}An example of professional tools that GEX could replace in less demanding scenarios \textit{(pictures taken from marketing materials:~\cite{nidevice1, nidevice2, tphasedevice})}}
\end{figure}
%http://www.ni.com/en-gb/shop/select/i2c-spi-interface-device}
7 years ago
\iffalse
7 years ago
\section{The Firmata Protocol}
7 years ago
7 years ago
\todo[inline]{links}
7 years ago
Firmata is a communication protocol based on MIDI (\textit{Musical Instrument Digital Interface}) for passing data to and from embedded microcontrollers. MIDI is mainly used for attaching electronic musical instruments, such as synthesizers, keyboards, mixers etc., to each other or to a PC. Firmata was designed for Arduino as a high-level abstraction for its connection to the PC, typically using a FTDI chip or equivalent.
7 years ago
Implementing Firmata in the GEX firmware would make it possible to use existing Firmata libraries on the PC side. However, the protocol is limited by the encompassing MIDI format and is not very flexible.
\fi
7 years ago