\section{Trasmissione di dati seriale}

%-----------------------------------------------------------------------------
\subsection{Trasmissione seriale}
Il sistema pi\`u semplice per la trasmissione di dati \`e un bus
\emph{parallelo}. Con collegamento parallelo si designa la trasmissione
simultanea di $n$ bit. Questi bit sono inviati simultaneamente su $n$ vie
differenti (una via può essere ad esempio un filo, un cavo o qualsiasi altro
supporto fisico).

In contrapposizione in una trasmissione \emph{seriale} i dati sono inviati bit
per bit sulla via di trasmissione. Tuttavia, dato che la maggior parte dei
dispositivi processa le informazioni in modo parallelo, si tratta di
serializzare i dati che arrivano in modo parallelo a livello dell'emittente, e
di eseguire il processo inverso a livello del ricevente.

\subsubsection{Tipi di trasmissione seriale}
\begin{table}[H]
\centering
\begin{tabular}{>{\tt}l l}
    \toprule
    SIMPLEX & Trasmissione Unidirezionale \\
    HALF DUPLEX & Trasmissione bidirezionale alternata (uno alla volta) \\
    FULL DUPLEX & Trasmissione bidirezionale contemporanea\\
    \bottomrule
\end{tabular}
\end{table}

%-----------------------------------------------------------------------------
\subsection{USART e RS232 / RS485}
Il protocollo RS232 \`e uno standard definito negli anni `60 dall'EIA
(Electronic industries Association) originariamente per essere utilizzato dai
modem. Il protocollo \`e implementa una trasmissione \emph{full duplex}.

%-----------------------------------------------------------------------------
\subsection{Inter-Integrated Circuit (I\textsuperscript{2}C)}

%-----------------------------------------------------------------------------
\subsection{Serial Peripheral Interface Bus (SPI)}

%-----------------------------------------------------------------------------
\subsection{Universal Serial Bus (USB)}
L'\emph{Universal Serial Bus}, \`e un interfaccia standard industriale per la
comunicazione seriale sviluppata negli anni '90, con l'obiettivo di unificare
in un protocollo e connettore unico la comunicazione, alimentazione e
connessione tra periferiche e computers.

\subsubsection{Struttura della rete USB}
La rete USB \`e una struttura ad albero (grafo) in grado di estendersi fino a 7
livelli (tiers). I nodi di questa struttura ad albero possono essere
\emph{Hubs} o \emph{Functions}; I Hubs hanno la funzione di estendere la rete,
potendo collegare nuovi dispositivi in un nuovo Tier, mentre i nodi Functions
implementano una funzione specifica di una periferica (Esempio: Tastiera USB).
\begin{figure}[H]
    \centering
    \placeholderfig{fig:usb:network}
    \caption{Struttura della rete USB}
    \label{fig:usb:network}
\end{figure}
Il primo Hub al Tier 1, \`e detto \emph{Root Hub}. Dal Tier 2 al Tier 6 sono
ammessi nodi di qualsiasi tipo, mentre all'ultimo Tier (7) possono essere
collegati unicamente nodi Functions.

\subsubsection{Enumerazione e configurazione}

\subsubsection{Versioni e specifiche}
\begin{table}[H]
\centering
\begin{tabular}{ l r l r}
\toprule
Versione & Anno di rilascio & Nome & Velocit\`a massima \\
\midrule
USB 1.0 & Gennaio   1996 & Low Speed   & 1.5 MBit/s \\
USB 1.1 & Agosto    1998 & Full Speed  & 12 MBit/s \\
USB 2.0 & Aprile    2000 & High Speed  & 480 MBit/s \\
USB 3.0 & Novembre  2008 & SuperSpeed  & 5 GBit/s \\
USB 3.1 & Luglio    2012 & SuperSpeed+ & 10 GBit/s \\
USB 3.2 & Settembre 2017 & SuperSpeed+ & 20 GBit/s \\
\bottomrule
\end{tabular}
\caption{Specifiche dell'USB \cite{wiki:usb}}
\end{table}

\subsubsection{Connettore}