2020-03-30 23:43:04 +02:00
|
|
|
\subsection{Hardware peripherals}
|
2020-03-30 14:44:38 +02:00
|
|
|
|
2020-03-30 23:43:04 +02:00
|
|
|
Planning of the peripherals was done based on the information provided on large
|
2020-03-30 14:44:38 +02:00
|
|
|
parts by David Oberhollenzer. A lot of his advice contributed heavily to the
|
|
|
|
direction the development went.
|
|
|
|
|
2020-03-31 23:45:03 +02:00
|
|
|
\subsubsection{Peripheral selection}
|
2020-03-30 14:44:38 +02:00
|
|
|
|
2020-03-30 23:43:04 +02:00
|
|
|
The selection of the hardware peripherals was done based on implementation
|
2020-03-30 14:44:38 +02:00
|
|
|
difficulty, common use in computer systems, relevance in current times and
|
2020-03-31 23:45:03 +02:00
|
|
|
whether they were fitting for demonstrative purposes.
|
2020-03-30 14:44:38 +02:00
|
|
|
|
2020-03-31 23:45:03 +02:00
|
|
|
\paragraph{Serial Communication interface}
|
2020-03-30 14:44:38 +02:00
|
|
|
|
|
|
|
Serial communication interfaces have been around for a long time. They have been
|
|
|
|
used for many different applications from early mouse pointer devices
|
|
|
|
\cite{232mouse} to user input terminals\cite{vt100}
|
|
|
|
which are far away from the real computer system. They are still very common in
|
2020-03-31 23:45:03 +02:00
|
|
|
smaller embedded systems and in the server space, where they are used as a
|
|
|
|
simple
|
2020-03-30 14:44:38 +02:00
|
|
|
and less error prone way to interface with the operating system and programs
|
2020-03-31 23:45:03 +02:00
|
|
|
running there. They are fairly easy to implement as there are interface
|
2020-03-30 14:44:38 +02:00
|
|
|
ICs which provide a more generic interface for serial communications
|
|
|
|
\cite{pc16550}. Most SOCs
|
|
|
|
\footnote{SOC... System on a Chip} have some form of serial communication
|
|
|
|
interface. The most common serial interface voltages are 3.3V, 5V and levels
|
|
|
|
as per TIA-/EIA-232 specification\cite{rs232}.
|
|
|
|
|
|
|
|
\paragraph{Parallel Port interface}
|
|
|
|
|
|
|
|
Parallel ports are absent on most modern computer systems but historically have
|
|
|
|
been the high speed interfaces on computers. Early computer systems used
|
|
|
|
parallel-ports for expansions and the ISA-Bus
|
|
|
|
\footnote{ISA...Industry Standard Architecture} was for some time the main way
|
|
|
|
of expansion for PCs
|
|
|
|
\footnote{PC in this thesis referrs to Computer Systems using the x86
|
2020-03-31 23:45:03 +02:00
|
|
|
Architecture}. Most younger people remember parallel ports as the port for
|
|
|
|
printers on their home PCs. A parallel port is easy to implement because it has
|
|
|
|
simmilar use of control, data and address lines as a processor uses internally
|
|
|
|
anyway\cite{laval_parallel}. Usage of the standard IEEE 1284 port limits the
|
2020-03-30 14:44:38 +02:00
|
|
|
design to the signals on this port or makes the use of the signals on this port
|
|
|
|
obligatory.
|
|
|
|
|
|
|
|
\paragraph{Digital to Analog Converter}
|
|
|
|
|
2020-03-31 23:45:03 +02:00
|
|
|
Digital to Analog Converters (or more commonly DACs) are used on all modern PCs
|
2020-03-30 14:44:38 +02:00
|
|
|
for sound output. They have been around for longer and some external sound card
|
2020-03-31 23:45:03 +02:00
|
|
|
interfaces have been standardised like AC '97\cite{ac97}. Implementation of a
|
2020-03-30 14:44:38 +02:00
|
|
|
standard audio interface requires higher speed connections or more precise
|
|
|
|
timing for ac97 for example. Earlier computer systems did not have a sound card
|
2020-03-31 23:45:03 +02:00
|
|
|
as it doesn't have important usage for computing and user input tasks and later
|
2020-03-30 14:44:38 +02:00
|
|
|
on computer systems only had a PC speaker for diagnostics such as the IBM PC AT
|
|
|
|
\cite{ibmpc} which can only procude one specific frequency and does not have a
|
2020-03-31 23:45:03 +02:00
|
|
|
DAC. A DAC is not easy to implement as it requires a constant sampling rate and
|
2020-03-30 14:44:38 +02:00
|
|
|
a buffer to be of any practical use.
|
|
|
|
|
|
|
|
\paragraph{Graphical output / GPU}
|
|
|
|
|
|
|
|
Graphical output on older computer systems such as the EDVAC
|
|
|
|
\cite{neumann} was not possible because it requires
|
|
|
|
either a heavy load on the processor or dedicated hardware and due to the mostly
|
|
|
|
scientific use it was easier to just print the caracters as letters via a
|
|
|
|
printer. Drawing characters
|
|
|
|
onto a screen is by itself not an easy task as it requires, for example for
|
2020-03-31 23:45:03 +02:00
|
|
|
VGA, a Digital to Analog Converter with 25MHz sampling rate and a buffer to
|
2020-03-30 14:44:38 +02:00
|
|
|
contain all needed data for one frame or at least parts of it, while the CPU
|
2020-03-31 23:45:03 +02:00
|
|
|
renders the frame\cite{vga}. Screen output is one of the, if not the most,
|
|
|
|
common form of output on a computer today.
|
2020-03-30 14:44:38 +02:00
|
|
|
|
|
|
|
\paragraph{Inter Integrated Circuit}
|
|
|
|
|
|
|
|
Inter Integrated Circuit or IIC for short is a standard for serial transmission
|
|
|
|
between Integrated circuits\cite{iic}. This is done on a master-slave basis and
|
|
|
|
transmission speed is fairly low in standard 100kBit/s mode. The bus is used
|
|
|
|
on many different platforms for many different things including HDMI DDC
|
|
|
|
\cite{ddc}. Though there are some IIC ICs which can interface with a parallel
|
|
|
|
bus such as the PCA9564 \cite{pca9564} but these are either limited in
|
|
|
|
capability or not easy to use and implement. Most people don't have an
|
|
|
|
understanding of IIC as it is only known in technical fields.
|
|
|
|
|
|
|
|
\paragraph{Utility analysis}
|
|
|
|
|
2020-03-30 23:43:04 +02:00
|
|
|
Among the above mentioned processor peripherals from the criteria mentioned
|
2020-03-31 23:45:03 +02:00
|
|
|
before a utility analysis was performed. To do this, different points have been
|
2020-03-30 14:44:38 +02:00
|
|
|
credited for the criteria mentioned which can be seen in Table
|
|
|
|
\ref{tab:utility_base}. The multipliers in Table \ref{tab:utility_base} have
|
|
|
|
been applied to the points and the sums in Table \ref{tab:utility_result}
|
|
|
|
resulted. Based on this
|
2020-03-30 23:43:04 +02:00
|
|
|
result the DAC and Serial Communication interface were chosen as peripherals.
|
2020-03-30 14:44:38 +02:00
|
|
|
|
|
|
|
\begin{table}[H]
|
|
|
|
\centering
|
|
|
|
\resizebox{\textwidth}{!}{
|
|
|
|
\begin{tabular}{ |l||c|c|c|c|c|}
|
|
|
|
\hline
|
|
|
|
Criteria & serial port & parallel port & DAC & GPU & IIC\\
|
|
|
|
\hline
|
|
|
|
\hline
|
|
|
|
implementation & 0 & 0 & 1 & 4 & 2\\
|
|
|
|
\hline
|
|
|
|
common use & 2 & 1 & 3 & 3 & 1\\
|
|
|
|
\hline
|
|
|
|
relevance & 2 & 1 & 3 & 3 & 1\\
|
|
|
|
\hline
|
|
|
|
demonstrative & 2 & 1 & 3 & 2 & 1\\
|
|
|
|
\hline
|
|
|
|
|
|
|
|
\end{tabular}
|
|
|
|
}
|
2020-03-30 23:43:04 +02:00
|
|
|
\caption{utility analysis base points for peripherals}
|
2020-03-30 14:44:38 +02:00
|
|
|
\label{tab:utility_base}
|
|
|
|
\end{table}
|
|
|
|
|
|
|
|
\begin{table}[H]
|
|
|
|
\centering
|
|
|
|
\begin{tabular}{ |l|c|}
|
|
|
|
\hline
|
|
|
|
Criteria & multiplier \\
|
|
|
|
\hline
|
|
|
|
\hline
|
|
|
|
implementation & -2\\
|
|
|
|
\hline
|
|
|
|
common use & 1\\
|
|
|
|
\hline
|
|
|
|
relevance & 2\\
|
|
|
|
\hline
|
|
|
|
demonstrative & 3\\
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
|
|
\end{tabular}
|
2020-03-30 23:43:04 +02:00
|
|
|
\caption{utility analysis multipliers for peripherals}
|
2020-03-30 14:44:38 +02:00
|
|
|
\label{tab:utility_mul}
|
|
|
|
\end{table}
|
|
|
|
|
|
|
|
|
|
|
|
\begin{table}[H]
|
|
|
|
\centering
|
|
|
|
\resizebox{\textwidth}{!}{
|
|
|
|
\begin{tabular}{ |l||c|c|c|c|c|}
|
|
|
|
\hline
|
|
|
|
Criteria & serial port & parallel port & DAC & GPU & IIC\\
|
|
|
|
\hline
|
|
|
|
\hline
|
|
|
|
implementation & 0 & 0 & -2 & -8 & -4\\
|
|
|
|
\hline
|
|
|
|
common use & 2 & 1 & 3 & 3 & 1\\
|
|
|
|
\hline
|
|
|
|
relevance & 4 & 2 & 6 & 6 & 2\\
|
|
|
|
\hline
|
|
|
|
demonstrative & 6 & 3 & 9 & 6 & 3\\
|
|
|
|
\hline
|
|
|
|
\hline
|
|
|
|
\textbf{SUM} & 12 & 6 & 16 & 7 & 2\\
|
|
|
|
\hline
|
|
|
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
\end{tabular}
|
|
|
|
}
|
2020-03-30 23:43:04 +02:00
|
|
|
\caption{utility analysis results for peripherals}
|
2020-03-30 14:44:38 +02:00
|
|
|
\label{tab:utility_result}
|
|
|
|
\end{table}
|
2020-04-01 02:37:52 +02:00
|
|
|
\subsubsection{Material and Infrastructure cost}
|
|
|
|
|
|
|
|
The peripherals were mostly constructed with materials currently in stock at
|
|
|
|
the Hackerspace Innsbruck. This limitation, while driving development time up,
|
|
|
|
reduced the material cost significantly as resistors, capacitors and most
|
|
|
|
standard logic ICs were in stock for the purpose of such projects. The materials
|
|
|
|
which had to be ordered and were used in the final implementation of the
|
|
|
|
peripherals are listed in Table \ref{tab:cost_hw}. Infrastructure usage at the
|
|
|
|
Hackerspace is unlimted to anyone who is working on a project and a member of
|
|
|
|
the community and free of charge.
|
|
|
|
|
|
|
|
\begin{table}[H]
|
|
|
|
\centering
|
|
|
|
\resizebox{\textwidth}{!}{
|
|
|
|
\begin{tabular}{ |l|c|c|}
|
|
|
|
\hline
|
|
|
|
\textbf{Name} & \textbf{Cost} & \textbf{Quantity}\\
|
|
|
|
\hline
|
|
|
|
\hline
|
|
|
|
ADC 8bit RS-COMPONENTS & € 4.16 &3\\
|
|
|
|
\hline
|
|
|
|
8-bit D-Latch RS-COMPONENTS & € 2.21 &4\\
|
|
|
|
\hline
|
|
|
|
MAX232 RS-COMPONENTS & € 2.19 &2\\
|
|
|
|
\hline
|
|
|
|
Quartz, 1,8432 MHz POLLIN & € 0.15 &4\\
|
|
|
|
\hline
|
|
|
|
\hline
|
|
|
|
|
|
|
|
\end{tabular}
|
|
|
|
}
|
|
|
|
\caption{List of ordered components and cost}
|
|
|
|
\label{tab:cost_hw}
|
|
|
|
\end{table}
|
|
|
|
|