EIA RS-232 (acronimo di Electronic Industries Alliance Recommended Standard 232, più semplicemente come RS-232 o impropriamente porta seriale), in informatica, elettronica e telecomunicazioni, indica 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.

Storia dello standard L'interfaccia seriale EIA RS-232 è uno standard costituito da una serie di protocolli meccanici, elettrici ed informatici che rendono possibile lo scambio di informazioni a bassa velocità tra dispositivi digitali. Esso includeva le caratteristiche elettriche dei segnali, la struttura e le temporizzazioni dei dati seriali, la definizione dei segnali e dei protocolli per il controllo del flusso di dati seriali su un canale telefonico, il connettore e la disposizione dei suoi pin ed infine il tipo e la lunghezza massima dei possibili cavi di collegamento.

Nel corso di oltre 40 anni lo standard si è evoluto, pur mantenendosi in larga parte invariato. L'evoluzione è riconoscibile dalla sigla, leggendo l'ultima lettera; l'ultima revisione è del 1997 ed è indicata come EIA RS-232f. Probabilmente la versione più diffusa è la RS232c, del 1969, che corrisponde alle specifiche europee CCITT, raccomandazione V.24. Pur essendo un protocollo piuttosto vecchio, attualmente la EIA RS-232 è ancora largamente utilizzata per la comunicazione a bassa velocità tra microcontrollori, dispositivi industriali ed altri circuiti relativamente semplici, che non necessitano di particolare velocità; è invece praticamente scomparsa in ambito "desktop", nel quale lo standard è nato per la comunicazione tra un computer ed un modem.

Le informazioni, relative principalmente al livello elettrico, sono state codificate inizialmente dallo standard EIA/TIA-232-E (sezione 2) e successivamente modificate in alcuni dettagli secondari dallo standard EIA/TIA-562.

Utilizzi Lo standard EIA RS-232 nacque nei primi anni sessanta per opera della Electronic Industries Association ed era orientato alla comunicazione tra i mainframe e i terminali (DTE, Data Terminal Equipment) attraverso la linea telefonica, utilizzando un modem (DCE, Data Communication Equipment).

Sebbene negli anni novanta la porta EIA RS-232 fosse presente in quasi tutti i PC desktop, nel primo decennio degli anni 2000 la stessa è stata ampiamente soppiantata dall'interfaccia USB (o da PS/2) in quasi tutti gli utilizzi a causa della sua lentezza (ad esempio è impossibile collegare un modem ADSL alla porta seriale perché la trasmissione tra modem e computer sarebbe più lenta della connessione alla linea telefonica stessa).

Tra gli utilizzi della porta seriale, si possono citare:

connessione di terminali ad un calcolatore (tradizionalmente un mainframe, ma anche un PC) connessione di periferiche: la porta seriale è stata usata per collegare i mouse ai primi PC stampante (soppiantato dalla porta parallela, e poi da USB e dalle connessioni di rete) scanner (soppiantato dalla porta parallela, e poi da USB e firewire e dalle connessioni di rete) dispositivi specializzati, come ad esempio lettori di codici a barre e di tessere magnetiche (soppiantato da USB) connessione a dispositivi embedded, ad esempio dispositivi di rete, per scopi di configurazione e monitoraggio. In questo utilizzo RS-232 è ancora ampiamente usato, anche se spesso è necessario dotarsi di un adattatore seriale/USB per utilizzare come terminale un computer privo di porta seriale. connessione a dispositivi audio/video per comandarli da remoto.

Descrizione dello standard L'EIA RS-232 è uno standard che definisce un'interfaccia di livello fisico del modello ISO/OSI per la realizzazione di una trasmissione seriale, sia in modalità sincrona che asincrona.

L'interfaccia EIA RS-232 ridotta (porta seriale a nove pin) utilizza solo protocolli di trasmissione di tipo asincrono.

Per trasmissione "seriale" si intende che i bit che costituiscono l'informazione sono trasmessi uno alla volta su di un solo "filo". Tale tipo di trasmissione si contrappone a quella "parallela", dove i dati sono trasmessi contemporaneamente su più fili (per esempio otto, sedici o trentadue). In astratto potrebbe pensarsi che la trasmissione seriale sia intrinsecamente più lenta di quella parallela (su di un filo possono passare meno informazioni che su sedici), ciò è generalmente vero per lo standard RS-232, ma non è valido in assoluto, sia in considerazione dell'estrema velocità raggiunta ormai da molte tecnologie seriali (fibra ottica, cavo Ethernet, thunderbolt, USB o FireWire, tutti standard seriali con velocità paragonabili a quella di un bus PCI a trentadue fili), sia per la difficoltà, in un bus parallelo, di controllare lo skew (disallineamento temporale tra i vari segnali) dei molti trasmettitori presenti.

Trasmissione "asincrona" significa, invece, che i dati sono trasmessi, byte per byte, in modo anche non consecutivo, senza l'aggiunta di un segnale di clock, cioè di un segnale comune che permette di sincronizzare la trasmissione con la ricezione. Sia il trasmettitore sia il ricevitore devono comunque essere dotati di un clock locale per poter interpretare i dati e la sincronizzazione di questi è realizzata in corrispondenza della prima transizione sulla linea dei dati.

Oltre alle linee di trasmissione dati (TD, RD, e i loro equivalenti canali secondari), lo standard definisce un certo numero di circuiti di controllo, usati per gestire la comunicazione tra DTE e DCE. Esempi di linee di controllo sono i circuiti Request to Send (RTS), Clear to Send (CTS), Data Terminal Ready (DTR), e Data Set Ready (DSR).

Ogni circuito, di trasmissione dati o di controllo, opera esclusivamente in una direzione: l'invio dei dati e delle segnalazioni avviene dal DTE al DCE, o viceversa. Poiché i dati trasmessi e quelli ricevuti viaggiano su circuiti separati (TD e RD) l'interfaccia RS-232 può operare in modalità full duplex, supportando contemporanei flussi di dati in entrambe le direzioni.

L'EIA RS-232, essendo uno standard di livello fisico, non definisce né il framing dei caratteri trasmessi né la modalità della loro codifica, demandando tale definizione a livelli di protocollo superiori.

Caratteristiche elettriche Le caratteristiche di natura elettrica previste dallo standard consentono di acquisire le poche informazioni necessarie a progettare dispositivi elettronici che comunicano con un PC attraverso questa porta.

Il protocollo specifica una massima tensione di circuito aperto di , mentre i livelli di tensione che si possono usare per i segnali sono , , e . Per incrementare l'immunità ai disturbi elettrici l'interfaccia elettrica ha una soglia di commutazione di , cioè per passare da uno stato ad un altro non è sufficiente arrivare allo zero, ma dovrà essere superata la soglia dei 3 V di segno opposto.

Lo standard EIA RS-232 prevede nei circuiti dati (per esempio TD e RD) che il segnale di tensione positivo rappresenta lo zero logico (space) mentre quello negativo un 1 (mark). È quindi una codifica a logica negativa, ossia rovesciata rispetto al comune pensare. I segnali delle linee di controllo (p.e. RTS, CTS, DTR, DSR), invece, lavorano in logica positiva: lo stato attivo è comunicato con una tensione positiva, quello inattivo con una tensione negativa.

Descrizione del segnale

Nell'immagine a lato è visualizzato, in modo idealizzato, cosa appare collegando un oscilloscopio alla linea dati su cui transita un segnale EIA RS-232 a del tipo 8n1 (più avanti verrà spiegata questa sigla) corrispondente alla lettera "K" espressa in codice ASCII.

Tutte le transizioni appaiono in corrispondenza di multipli di (pari ad , cioè ciascun bit dura esattamente l'inverso del bit rate).

La linea si trova inizialmente nello stato di riposo, a livello logico 1 (nessun dato in transito), quindi segnale di tensione negativo (p.e. ); la prima transizione da segnale negativo a positivo indica l'inizio della trasmissione (inizia il "bit di start", lungo esattamente ), a cui segue il bit meno significativo (LSB), dopo altri , e così via, per otto volte, fino al bit più significativo (MSB). Da notare che il byte è trasmesso "al contrario", cioè va letto da destra verso sinistra. Segue infine un "bit di stop", cioè un periodo di riposo della linea di 104 µs (ma può essere superiore qualora si convenga di usare un numero maggiore di bit di stop), e quindi, eventualmente, inizia un nuovo pacchetto di bit.

Un segnale seriale nello standard RS-232 può avere le seguenti varianti:

velocità di trasmissione, rispetto all'esempio di può essere più veloce o più lenta, cambiando in questo modo la distanza tra i fronti (p.e. a le transizioni avvengono a multipli di , pari a ) numero di bit dati trasmessi, generalmente otto (come nell'esempio), ma se ne possono trasmettere cinque, sei, sette o anche nove (ma quest'ultima possibilità non è prevista dalle porte seriali dei normali PC) possibilità di aggiungere un bit di parità alla fine del carattere numero dei bit di stop, la linea rimane nello stato di riposo per almeno uno, uno virgola cinque o due bit; nel caso in cui per un certo tempo non vi fosse più nulla da trasmettere, il "riposo" sarebbe molto più lungo.

A questo punto possiamo definire il significato della sigla 8n1 menzionata all'inizio dell'esempio. Tale sigla è usata in genere per definire il formato del pacchetto rice-trasmesso. Esempi possono essere 8n1 o 7e2: il primo numero indica quanti bit di dati sono trasmessi (nei due esempi rispettivamente 8 e 7) la lettera indica il tipo di parità (nei due esempi, rispettivamente, nessuna o even-parity, cioè parità pari) il secondo numero indica il numero di bit di stop (rispettivamente 1 e 2) Tenendo conto che esiste sempre un solo bit di start, una sequenza di bit trasmessa è quindi, per i due esempi citati, costituita rispettivamente da 10 () e 11 () bit. Da notare che di questi bit solo otto e, rispettivamente, sette sono effettivamente utili a trasportare l'informazione.

Lo standard originale prevede una velocità da 75 baud a 19200 baud. Uno standard successivo (RS-562) ha portato il limite a lasciando gli altri parametri elettrici praticamente invariati e rendendo quindi i due standard compatibili a bassa velocità. Nei normali PC le cosiddette interfacce seriali RS-232 arrivano in genere almeno a o anche più: pur essendo formalmente al di fuori di ogni standard ufficiale non si hanno particolari problemi di interconnessione.

Sia trasmettitore sia ricevitore devono accordarsi sul modo di trasmettere i dati prima di iniziare la trasmissione.

È importante garantire il rigoroso rispetto della durata dei singoli bit: infatti non è presente alcun segnale di clock comune a trasmettitore e ricevitore e l'unico elemento di sincronizzazione è dato dal fronte di discesa del bit di start. Come linea guida occorre considerare che il campionamento in ricezione è effettuato di norma al centro di ciascun bit: l'errore massimo ammesso è quindi, teoricamente, pari alla durata di mezzo bit (circa il della frequenza di clock, considerando che anche il decimo bit deve essere correttamente sincronizzato). Questo limite non tiene conto della possibile difficoltà di riconoscere con precisione il fronte del bit di start (soprattutto su grandi distanze ed in ambiente rumoroso) e della presenza di interferenze intersimboliche tra bit adiacenti: per questo spesso si consiglia caldamente di usare un clock con una precisione migliore dell' imponendo di fatto l'uso di oscillatori a quarzo. Si potrebbe anche ipotizzare un meccanismo che tenta di estrarre il clock dai fronti intermedi ma si tratta nel caso specifico di un lavoro poco utile, visto che la lunghezza del pacchetto è piuttosto breve.

Esempio di funzionamento dell'interfaccia