# Trasmissione seriale

La trasmissione seriale è una modalità di comunicazione tra dispositivi digitali nella quale i bit sono trasferiti lungo un canale di comunicazione uno di seguito all'altro e giungono sequenzialmente al ricevente nello stesso ordine in cui li ha trasmessi il mittente.

## Descrizione

Nonostante la maggior complessità architetturale e gestionale rispetto alla trasmissione parallela, la modalità seriale è una delle più diffuse in ambito informatico perché:
* richiede un minor numero di fili con conseguente riduzione dei costi
* è più tollerante rispetto alle interferenze e agli errori di trasmissione
Ovviamente, il circuito trasmissivo più semplice ha come contropartita una maggior complessità di gestione.

## Modalità sincrona

I dispositivi digitali, come memorie e microprocessori, di norma lavorano con unità minime di 4 o 8 bit. Nell'architettura dei primi processori, il meccanismo di trasmissione dei dati da un dispositivo all'altro è stato quindi spontaneamente progettato per trasportare i dati utilizzando un filo per bit, a cui vanno aggiunti una connessione di massa e il segnale di clock per il coordinamento di tutte le operazioni.
Come prima alternativa alla trasmissione parallela, è possibile trasmettere su un singolo filo tutti i bit in sequenza sincronizzandoli con un segnale periodico (detto clock) trasmesso con un altro filo. Questa modalità, detta sincrona, richiede tre fili (segnale, clock e massa) e permette alte velocità, ma, seppur potendo eliminare il filo di massa, usando la terra, l'uso di un filo di sincronizzazione non la rende adatta, ad esempio, all'uso di impianti già esistenti, come la rete telefonica o quella elettrica. Per ovviare a questo devono venir usati dei Modem (DCE) adatti alla trasmissione dati in modo sincrono e connessi al terminale dati (DTE) tramite una linea seriale sincrona tipo EIA RS232 o equivalenti.
In caso di Trasmissioni Seriali Sincrone attraverso un sistema Terminale - Modem (DTE - DCE) sono necessarie ed indispensabili alcune caratteristiche peculiari:
* disporre di un computer sufficientemente potente da soddisfare le esigenze di continuità del flusso dei dati tipico di una trasmissione sincrona.
* disporre di una interfaccia di tipo Sincrono
Attualmente la maggior parte di Personal Computer dispone solo di interfacce seriali tipo EIA RS232 Asincrone proprio per le limitate capacità originali dei P.C. e per i costi di tali tipi di interfaccia (visto il limitato mercato).
Qualsiasi protocollo venga usato (dati) la trasmissione DEVE essere preceduta da almeno tre caratteri SYC (Sync o SYNCHRONOUS IDLE) ASCII, Esadecimale 16, Binario 0001 0110, affinché il Modem e, in particolare, il DTE ricevente possa ben sincronizzarsi. Di questi tre caratteri, almeno il primo viene generalmente perso, mentre i restanti due dovrebbero arrivare a destinazione, permettendo così un controllo di partenza della bontà della linea e di tutto il sistema. Comunque il primo carattere ricevuto dal DTE remoto DEVE sempre essere un carattere SYC.
Se, per qualsiasi motivo, il DTE in trasmissione non avesse temporaneamente dati significativi da inviare, per non fare cadere la connessione Sincrona e invalidare i dati precedentemente trasmessi, esso DEVE autonomamente trasmettere il carattere di "riempimento" DLE (DATA LINK ESCAPE) ASCII, Esadecimale 10, Binario 0001 0000.
Fin qui le specifiche hardware. Per le caratteristiche di protocolli più o meno complessi in ambienti sincroni si rimanda alle specifiche voci.

## Modalità asincrona

Nella modalità asincrona il trasmettitore ed il ricevitore si sincronizzano usando i dati stessi: il trasmettitore invia inizialmente un bit di partenza, poi il dato vero e proprio (tipicamente da cinque a otto bit, con il bit meno significativo per primo), un bit opzionale di parità, e infine un tempo di stop che può avere diverse lunghezze tipiche (uno, uno e mezzo o due tempi di bit). Il bit di partenza è di polarità opposta alla condizione normale (space o 0). Il bit di stop è di polarità normale (mark o 1) e crea uno spazio prima della partenza del carattere successivo. La modalità asincrona, in caso di trasmissioni di una certa lunghezza, usa i segnali in modo molto meno efficiente della modalità sincrona, in cui, dopo un preambolo di sincronizzazione, tutti i bit trasportano dati.
I primi dispositivi seriali, usati nelle telescriventi, erano dei commutatori meccanici rotanti, che inviavano i caratteri codificati a 5 bit in formato Baudot al posto del codice Morse. Più tardi, i caratteri vennero codificati usando 7 bit nel formato ASCII. Quando l'IBM realizzò il primo computer, agli inizi degli anni '60, basato su un'architettura a 8 bit, estese anche il codice per utilizzare i 128 caratteri aggiuntivi disponibili: EBCDIC (Extended Binary Coded Decimal Interchange Code).
Nelle telescriventi meccaniche il bit di stop è spesso esteso a due tempi di bit, per dare al meccanismo più tempo per terminare la stampa di un carattere.
Il bit di parità può essere dispari o pari o omesso. Il bit di parità dispari è più affidabile in quanto assicura che vi sarà sempre una transizione o un passaggio di dati, consentendo ai dispositivi di risincronizzarsi.
Attualmente il controllo di parità non è più usato, poiché il sistema è inaffidabile, specialmente perché, con l'aumentata velocità di trasmissione un possibile disturbo elettromagnetico può avere durata superiore al tempo stesso di trasmissione di un bit. In questo caso il sistema di controllo di parità darà falsi riscontri di "parità soddisfatta", quando si ha la perdita (errore) di due bit aventi stesso valore (0 o 1). Il controllo di esattezza dei flussi di dati è ora affidato al protocollo di trasmissione e a verifiche di tipo CRC. La maggior parte delle comunicazioni seriali asincrone oggi vengono effettuate con un formato carattere di 8N1 (8 bit dati, nessuna parità, 1 bit di stop). In questo caso ogni carattere sarà trasmesso usando un totale di 10 bit (1 Start, 8 dati, 1 Stop).
La velocità standard per un dispositivo seriale asincrono dipende dal tipo di linee dati e si misura in bit per secondo (bps) o, in alternativa, in simboli per secondo (baud). Le telescriventi meccaniche standard vanno da 110 a 150 baud, modem in banda fonica da 300 a 56.200 baud, le connessioni ADSL vanno dai 640 kbit/s in su e le connessioni Ethernet da 10 Mbit/s a 1 Gbit/s.
Le trasmissioni seriali utilizzano differenti cablaggi e tensioni standard. Nella modalità Full duplex sono consentite la trasmissione e la ricezione in simultanea (es. telefono). Nella modalità Half duplex si consente invece una trasmissione per volta, in una sola direzione (es. walkie-talkie).

## Modalità isocrona

La modalità isocrona è una tecnica di trasmissione asincrona su un dispositivo di tipo sincrono. In pratica può succedere che si disponga di un canale sincrono ad elevata velocità e che sia necessario, per i più svariati motivi, stabilire una connessione di tipo asincrono. La cosa è tecnicamente possibile solo a patto che la velocità di trasmissione asincrona sia un quarto della velocità a cui opera la trasmissione sincrona. In pratica si può trasmettere in modalità asincrona 1200 bit/s su una connessione sincrona predisposta a 9800 bit/s.

## Standard

Gli standard di trasmissione seriale si differenziano per caratteristiche elettriche e protocollo di trasmissione dei dati.

### Ethernet

Ethernet è il nome di una famiglia di tecnologie per reti locali, sviluppato a livello sperimentale da Robert Metcalfe e David Boggs (suo assistente) allo Xerox PARC, che ne definisce le specifiche tecniche a livello fisico (connettori, cavi, tipologia di trasmissione, etc.) e a livello MAC del modello architetturale di rete ISO/OSI.

### FireWire

La connessione tipo FireWire (IEEE 1394) viene comunemente usata per collegare dispositivi di archiviazione o dispositivi di acquisizione video.

### Porta parallela
#### IEEE 488

L'IEEE 488, noto anche come General Purpose Interface Bus (GPIB) e Hewlett-Packard Instrument Bus (HP-IB) è un bus per l'interconnessione e il controllo di apparecchiature elettroniche, reso standard dall'IEEE.
Discende da un protocollo proprietario (HP-IB) che la HP aveva implementato per consentire il controllo tramite computer, della vasta gamma di strumenti di misura che produceva.
Nel tempo, per risultare compatibili con la concorrenza, tutte le case costruttrici operanti nel settore degli strumenti elettronici adottarono questo protocollo. Pertanto GPIB è nato da quello che era già uno standard de facto.
Con IEEE-488 è possibile collegare fino ad un massimo di 15 dispositivi in daisy-chaining, ovvero in serie con il segnale passato da un dispositivo all'altro, mediante bus parallelo ad 8 bit. La massima velocità, originariamente di 1 MB/s, è stata elevata a 8 MB/s nelle versioni più recenti.
Questo bus ebbe un'enorme fortuna tra il 1976 ed il 1980 grazie all'unica interfaccia periferica della famiglia PET e CBM della Commodore realmente utilizzata (la seconda porta 6522 non era protetta e quindi era troppo inaffidabile).

### Porta seriale
#### EIA RS-232

EIA RS-232 (sigla di Electronic Industries Alliance Recommended Standard 232), citato spesso più semplicemente come RS-232 o con il più generico (ed alquanto improprio) porta seriale è uno standard EIA equivalente allo standard europeo CCITT V21/V24, che definisce un'interfaccia seriale a bassa velocità di trasmissione per lo scambio di dati tra dispositivi digitali.
Stendendo un cavo fisico tra due apparecchiature elettroniche dotate di una porta RS-232 è possibile realizzare una comunicazione tra di loro.

#### EIA RS 422

EIA RS-422 è uno standard EIA o V11 nella normativa europea CCITT.
Si tratta di un protocollo per la comunicazione dati seriale che prevede l'impiego di due fili con linea differenziale e multipunto (differenziale bilanciata). Prevede, per ogni coppia di fili, la trasmissione di dati unidirezionale e non reversibile, su linee di trasmissione dati terminate o non terminate.
Nel caso di due coppie di fili e, ovviamente con due circuiti simili, si ottiene la connessione full duplex.
A differenza dell'EIA RS-485, a cui differisce per la sola capacità di porsi sulla linea in alta impedenza se non selezionato, l'EIA-422 non permette trasmettitori multipli ma solo ricevitori multipli.
A differenza dello standard EIA RS-232 è stato progettato per connettere direttamente due apparecchiature (siano esse DTE o DCE) con alta immunità ai disturbi anche a distanze considerevoli (tipicamente fino a 1550 m) e a velocità considerevoli (anche oltre ai 20000 bit/secondo). È uno standard molto diffuso, soprattutto in ambito industriale.
Poiché la variazione di stato del dato è determinato dalla differenza delle tensioni sui due fili in modo bilanciato (da 0 a +5 V e -5 V sui due conduttori rispettivamente) e dal momento che entrambi i fili arrotolati fra di loro con un passo ben preciso devono seguire lo stesso percorso, un rumore elettrico o disturbo, ripercuotendosi su entrambi i conduttori, non altera la tensione relativa fra questi ottenendo così un'alta immunità ai disturbi.
I connettori usati per questa interfaccia sono il DB-25 secondo la EIA-530, ed il DB-37 secondo la EIA-449. La lunghezza massima dei cablaggi è 1550 m per velocità non superiori a 1 Mbit/s.
Indicativamente si consigliano le seguenti lunghezze massime dei collegamenti per alte velocità:
* 10 Mbit/s lunghezza 1,2 m
* 100 kbit/s lunghezza 1200 m
Un impiego comune per l'EIA-422 è come estensione per l'RS-232. Inoltre, una variante compatibile con l'RS-232 e che adotta un connettore mini-DIN-8 è stata utilizzata per lungo tempo sul Macintosh fino a che non è stata sostituita dall'USB della Intel sull'iMac.

#### EIA RS-485

EIA RS-485, equivalente allo standard Europeo CCITT V11, è una specifica Modello OSI a livello fisico di una connessione seriale a due fili, half-duplex e multipunto. Lo standard specifica un sistema di gestione del segnale in forma differenziale: la differenza tra la tensione presente sui due fili costituisce il dato in transito. Una polarità indica un livello logico 1, quella inversa indica il livello logico 0. La differenza di potenziale deve essere di almeno 0,2 V per un'operazione valida, ma qualsiasi tensione compresa tra +12 V e −7 V permette il corretto funzionamento del ricevitore.
La EIA RS-485 specifica soltanto le caratteristiche elettriche del trasmettitore e del ricevitore. Non indica né raccomanda alcun protocollo per la trasmissione dei dati. EIA RS-485 permette la configurazione di reti locali a basso costo e comunicazioni multipunto. Permette una velocità di trasmissione molto elevata (35 Mbit/s fino a 10 m e 100 kbit/s a 1.200 m). Dal momento che utilizza un sistema di segnalazione con una tensione non trascurabile, con una linea bilanciata tramite l'impiego di un doppino (come avviene nella EIA RS-422), si possono raggiungere distanze relativamente notevoli (fino a poco più di 1.200 m).
Rispetto alla EIA RS-422, che ha un singolo circuito di pilotaggio, che non può essere spento, il trasmettitore per la EIA-485 viene messo in modalità di trasmissione in modo esplicito, applicando un segnale (CS).
EIA RS-485, come l'EIA RS-422 può essere resa full-duplex utilizzando quattro fili (due doppini), ma dal momento che EIA-485 è una specifica di tipo multipunto, ciò non è necessario in molti casi. EIA-485 e EIA-422 possono risultare compatibili entro certi limiti: in caso di connessioni multipunto in cui viene usato, ad esempio, un protocollo di tipo polling/selecting il trasmettitore master e il suo relativo ricevitore possono essere di tipo EIA RS422 mentre tutte le periferiche slave devono essere con un'interfaccia di tipo EIA RS-485.
Le interfacce SCSI-2 e SCSI-3 ad esempio utilizzano queste specifiche per implementare il loro livello fisico.
EIA RS-485 è usata spesso con alcuni UART piuttosto comuni per implementare dei sistemi di comunicazione dati nelle cabine degli aerei commerciali. È anche utilizzata con i controllori logici programmabili (PLC), ad esempio nelle aziende e nelle fabbriche per protocolli di comunicazione di tipo proprietario. Dal momento che è differenziale, resiste alle interferenze di natura elettromagnetica provenienti dai motori e dalle stazioni di saldatura.
Questo standard viene al momento gestito dalla TIA ed è nominato TIA-485-A, Electrical Characteristics of Generators and Receivers for Use in Balanced Digital Multipoint Systems (ANSI/TIA/EIA-485-A-98) (R2003), che indica che lo standard è stato riconfermato senza modificazioni tecniche nel 2003.

### USB

La connessione tipo USB, USB, è stata progettata negli ultimi anni ed ha avuto una gran diffusione quale sistema di connessione a breve distanza (massimo 5 m) fra le varie periferiche di un Personal Computer.