EIA RS-232 (acronimo diElectronic Industries Alliance Recommended Standard 232, più semplicemente comeRS-232 o impropriamenteporta seriale), ininformatica,elettronica etelecomunicazioni, indica unostandardEIA equivalente allo standard europeo CCITT V21/V24, che definisce un'interfacciaseriale a bassavelocità di trasmissione per lo scambio di dati tra dispositivi digitali.
L'interfaccia seriale EIA RS-232 è uno standard costituito da una serie diprotocolli 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 europeeCCITT, raccomandazione V.24. Pur essendo un protocollo piuttosto vecchio, attualmente la EIA RS-232 è ancora largamente utilizzata per la comunicazione a bassa velocità tramicrocontrollori, dispositivi industriali ed altricircuiti relativamente semplici, che non necessitano di particolare velocità; è invece praticamente scomparsa in ambito "desktop", nel quale lostandard è nato per la comunicazione tra uncomputer ed unmodem.
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.
Lo standard EIA RS-232 nacque nei primianni sessanta per opera dellaElectronic Industries Association ed era orientato alla comunicazione tra imainframe e iterminali (DTE,Data Terminal Equipment) attraverso lalinea telefonica, utilizzando unmodem (DCE,Data Communication Equipment).
Sebbene neglianni novanta la porta EIA RS-232 fosse presente in quasi tutti iPC desktop, nel primo decennio deglianni 2000 la stessa è stata ampiamente soppiantata dall'interfacciaUSB (o daPS/2) in quasi tutti gli utilizzi a causa della sua lentezza (ad esempio è impossibile collegare unmodemADSL allaporta seriale perché latrasmissione tra modem ecomputer sarebbe più lenta dellaconnessione alla linea telefonica stessa).
Tra gli utilizzi della porta seriale, si possono citare:
L'EIA RS-232 è uno standard che definisce un'interfaccia dilivello fisico del modelloISO/OSI per la realizzazione di unatrasmissione seriale, sia inmodalità sincrona cheasincrona.
L'interfaccia EIA RS-232 ridotta (porta seriale a nove pin) utilizza soloprotocolli 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, cavoEthernet,thunderbolt,USB oFireWire, tutti standard seriali con velocità paragonabili a quella di unbus PCI a trentadue fili), sia per la difficoltà, in un bus parallelo, di controllare loskew (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 diclock, 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 circuitiRequest to Send (RTS),Clear to Send (CTS),Data Terminal Ready (DTR), eData 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 dilivello fisico, non definisce né ilframing dei caratteri trasmessi né la modalità della loro codifica, demandando tale definizione a livelli diprotocollo superiori.
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 dicircuito aperto di25 V, mentre i livelli di tensione che si possono usare per i segnali sono±5 V,±10 V,±12 V e±15 V. Per incrementare l'immunità ai disturbi elettrici l'interfaccia elettrica ha una soglia di commutazione di±3 V, 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 alogica 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.
Nell'immagine a lato è visualizzato, in modo idealizzato, cosa appare collegando un oscilloscopio alla linea dati su cui transita un segnale EIA RS-232 a9600 bit/s del tipo 8n1 (più avanti verrà spiegata questa sigla) corrispondente alla lettera "K" espressa in codiceASCII.
Tutte le transizioni appaiono in corrispondenza di multipli di104 μs (pari ad, cioè ciascun bit dura esattamente l'inverso delbit 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.−12 V); la prima transizione da segnale negativo a positivo indica l'inizio della trasmissione (inizia il "bit di start", lungo esattamente104 μs), a cui segue ilbit meno significativo (LSB), dopo altri104 μs, e così via, per otto volte, fino albit 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:
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:
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 a64 Kbps 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 a115 Kbps 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 il5% 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'1% 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.
Come è stato detto, l'interfaccia elettrica standard EIA RS232 è stata concepita unicamente per interfacciare unData Terminal Equipment (DTE) a unData Communication Equipment (DCE) – cioè a un modem – anche se, nel caso di protocolli asincroni, attraverso connessioni di tipo NULL MODEM si è abusato di connessioni dirette fra DTE.
Consideriamo un sistema a due terminali, formato da DTE1, DCE1, linea telefonica, DCE2, DTE2.
Consideriamo che al tempo T0 tutto il sistema sia in condizioni non attive (spento).
Al tempo T1 vengono accese le apparecchiature e in breve DCE1 e DCE2 comunicano ai rispettivi DTE il loro stato di pronto portando il segnale DSR (Data Set Ready) ad un valore significativo attivo fra i +5 e i +15 V. Tutti gli altri segnali sono a -12 V.
Al tempo T2, dopo il caricamento del sistema operativo sui DTE (se il caso) e dopo il caricamento del programma (o microprogramma) di gestione della linea seriale dei DTE, il terminale porrà al suo DCE il segnale DTR (Data Terminal Ready) in attivo (+12 V)[1].
Al tempo T3 il DTE1 ha la necessità di trasmettere dati al DTE2 e per far questo per prima cosa rende attivo il segnale RTS. DCE1 si attiva iniziando ad emettere una portante di trasmissione sulla linea telefonica relativa e, dopo un tempo di "sincronizzazione" dipendente tipicamente dalla velocità di trasmissione del MODEM (il DCE), DCE1 invierà a DTE1 il segnale attivo di CTS (pronto a trasmettere). Nel frattempo DCE2 avrà ricevuto la portante trasmessa da DCE1 e avrà reso attivo il proprio segnale DCD (data carrier detect, rilevamento di portante) segnalando al proprio DTE2 che DTE1 sta per inviare dati. Anche DTE2 dovrà aver predisposto la propria linea seriale ed inviato a DCE2 il proprio DTR altrimenti i dati inviati da DTE1 andranno persi[2].
Al tempo T4, dopo che DTE1 avrà ricevuto il segnale CTS attivo dal proprio DCE, finalmente DTE1 potrà inviare i primi bit[3].
Oltre ai bit dei dati (in numero variabile tra 5 e 9) viene inserito unbit di parità (opzionale) per verificare la correttezza del dato ricevuto. Esistono cinque tipi di parità:
Il bit di parità può essere LRC o VRC, cioè la funzione di parità, un XOR di a bit della stringa dati incluso il bit di parità stesso, può essere eseguita sia lateralmente che verticalmente sui dati inviati, ottenendo una stringa dati di parità finale con il relativo bit di parità: il LRC di tale stringa dati di controllo deve combinarsi secondo le parità precedentemente eseguite verticalmente che sul blocco VRC-dati creato.
Latensione di uscita ad un trasmettitore EIA RS-232 deve essere compresa in valore assoluto tra 5 V e 25 V (quest'ultimo valore ridotto a 13 V in alcune revisioni dello standard). A volte le tensioni in uscita sono intenzionalmente diminuite a +/- 6 V anziché 12 V per permettere minori emissioni EM, peraltro sempre critiche, e favorire maggiori velocità di trasmissione.
Il ricevitore deve funzionare correttamente con tensioni di ingresso comprese, sempre in modulo, tra i 3 V ed i 25 V. Molti ricevitori commerciali considerano semplicemente una tensione di soglia al valore di +2 V (sopra viene riconosciuto un segnale alto, sotto uno basso) anche se ciò non è pienamente aderente alla norme. È però utile per effettuare una trasmissione "RS232" con livelliTTL.
L'impedenza di uscita del trasmettitore deve in ogni situazione essere maggiore di 300 ohm; l'impedenza di ingresso deve essere compresa tra i 3 ed i 7 kohm, anche a dispositivo spento. La corrente prelevabile in uscita mantenendo i corretti valori logici deve essere di almeno di 1.6 mA (potrebbe però essere maggiore, anche di un ordine di grandezza) e nel caso di corto circuito deve essere minore di 100 mA.
Infine loslew rate (cioè la pendenza del grafico del segnale nel passare da 1 a 0 o viceversa) deve essere minore di 30 V/us per evitare eccessive emissioni elettromagnetiche.
Come collegare una porta TTL o CMOS alla EIA RS-232. In genere i segnali utilizzati dai sistemi digitali variano tra 0 e 5 V e non sono quindi direttamente compatibili con la standard EIA RS-232. In commercio esistono appositi traslatori di livello che hanno il compito di fornire sia in trasmissione che in ricezione gli opportuni livelli pur non modificando la forma del segnale trasmesso.
Alcuni integrati (per esempio i classici MC1488 e MC1489, introdotti sul mercato dallaMotorola, rispettivamente un trasmettitore ed un ricevitore, ambedue a quattro canali) sono molto usati in sistemi in cui è presente (oltre all'alimentazione logica di 5 V o 3.3 V) un'alimentazione duale a +/-12 V. Questo integrato, come praticamente tutti i circuiti di questo tipo, contiene un inverter per ciascun canale e quindi nel segnale in uscita o in ingresso uno zero logico appare come 0 volt, cioè in quella che a molti sembra essere la rappresentazione ovvia dei segnali digitali.
L'uso di questi integrati è semplice ma non è sempre attuabile a causa della necessità di disporre di tre alimentazioni: si pensi per esempio alle apparecchiature alimentate a batteria.
IlMAX232 (ed integrati simili, fu introdotto dalla Maxim ma furono e sono prodotti da molte ditte di semiconduttori) è un circuito integrato che permette il collegamento tra logica TTL o CMOS a 5 V e le tensioni EIA RS-232, partendo solo da un'alimentazione a 5 V.
Per ottenere la tensione positiva e negative necessarie per il funzionamento dell'integrato è usata una configurazione apompa di carica, costituito da circuiti interni all'integrato e quattro condensatori esterni di circa 1 uF (i valori iniziali erano da 10uF per arrivare ai 100nF). La capacità effettiva dipende dal tipo di integrato e dalla relativa frequenza di commutazione; a volte i condensatori sono presenti all'interno dell'integrato stesso.
Sono disponibili anche integrati che richiedono un'alimentazione di solo 3.3 V (p.e. il MAX3232).
La sezione ricevente del MAX232 è costituita da due porte invertenti che accettano in ingresso una tensione di +/- 12 V (o altra tensione compatibile allo standard EIA RS-232) ed in uscita hanno un segnale TTL compatibile.
La sezione trasmittente ha due driver invertenti con in ingresso TTL compatibile e capaci di erogare a vuoto una tensione di poco meno di +/- 10 V, compatibile con lo standard EIA RS-232.
Il connettore utilizza due segnali in modalità "Full duplex" più altri di controllo e il comune (massa SG).
L'interfaccia EIA RS-232 utilizza una notevole quantità di linee ausiliarie per i segnali di controllo ma per una comunicazione di base senza controllo di flusso hardware sono sufficienti TD, RD e GND. Questa configurazione minima si utilizza anche con controllo di flusso software (XON-XOFF).
I personal computer hanno unainterfaccia seriale ridotta anche nel caso in cui è presente un'interfaccia con connettore DB-25. Dall'avvento dell'IBM AT però si è optato per unconnettore DE-9.
L'interfaccia dei PC è comunque sempre solo asincrona mentre alcuni host e irouter utilizzano interfacce sincrone. In questo il clock di trasmissione deve essere unico per tutto il sistema e normalmente è generato dal gestore telefonico. Se si utilizzano connessioni seriali sincrone in ambito locale, il clock è generato da uno dei due modem, in configurazione punto-punto, o dal modem master, in una configurazione punto-multipunto.
Perché tanti fili? L'interfaccia EIA RS-232 è nata con l'unico scopo di connettersi ad unModem e quindi ha tutti i controlli per gestire questa apparecchiatura. Tuttavia l'interfaccia viene spesso usata per connettere direttamente fra di loro due PC e, in teoria per ricevere e trasmettere un segnale in modo asincrono bastano tre fili: ricezione, trasmissione e massa (nel caso l'applicazione preveda una comunicazione esclusivamente unidirezionale, come per esempio l'interfacciamento di uno strumento di misura ad un terminale, possono essere impiegati persino due soli fili, ovvero trasmissione, che andrà connesso al pin di ricezione del connettore della porta seriale del terminale, e massa). Spesso, se si usa un programma di connessione che non controlla gli altri segnali d'interfaccia, lo è anche in pratica, e questo consente l'uso di connettori di forme e dimensioni diverse da quelle previste dallo standard RS-232, come ilconnettore DIN.
Gli altri segnali (spesso opzionali, ma dipende dall'applicazione) servono per il cosiddetto handshake tra PC e periferica (o tra PC e PC) cioè per sincronizzare in hardware la comunicazione.
Se due host sono connessi direttamente è necessario utilizzare un cavo serialenull modem, che, per esempio, nel caso l'applicazione non richieda i segnali di controllo hardware e la connessione sia di tipo asincrono, inverte fra di loro i fili di ricezione e trasmissione, mettendo in connessione il pin di trasmissione di uno dei due connettori con quello di ricezione dell'altro.
La connessione seriale può essere utilizzata anche per fornire una alimentazione al dispositivo come avviene ad esempio con il classico mouse seriale. Questa alimentazione, anche se non prevista dallo standard e, quindi, non regolata ne protetta, può essere prelevate da linee di segnalazione non utilizzate come, ad esempio, DTR e RTS.
GliUART (Universal Asynchronous Receiver & Trasmitter) sono dei circuiti integrati che permettono di trasformare il segnale parallelo proveniente dal processore in segnale seriale. In genere vengono gestite dall'hardware tutte le funzioni a basso livello necessarie (inserimento dei bit di start e di stop, generazione o riconoscimento del bit di parità, generazione diinterrupt) e spesso è presente un buffer FIFO che permette di ricevere ed inviare dati anche quando la CPU è impegnata.
A volte, usando microcontrollori, questa funzione viene svolta in software anche se spesso in questo modo non si superano i 9600 bps.
Altri progetti
Bus computer e standard di interconnessione (via cavo) | |
---|---|
Voci principali | Front Side Bus ·Bus ·Arbitraggio del bus ·Bus mastering |
Standard PC | S-100 ·SMBus ·ISA ·Zorro ·HP Precision Bus ·EISA ·VME ·NuBus ·MCA ·VESA Local Bus ·PCI ·InfiniBand ·UPA ·PCI-X ·AGP ·PCI Express ·Intel QuickPath Interconnect ·HyperTransport |
Portatili | PC Card (PCMCIA - CardBus) ·ExpressCard |
Memorizzazione | Parallel ATA (PATA - ATAPI - EIDE - IDE) ·DMA/UDMA ·SSA ·HIPPI ·FireWire (IEEE 1394) ·Serial ATA ·eSATA ·SCSI ·Serial Attached SCSI ·Fibre Channel ·iSCSI |
Periferiche | Apple Desktop Bus ·MIDI ·EIA RS-232 (porta seriale) ·IEEE 488 (GPIB) ·EIA RS-422 ·IEEE-1284 (porta parallela) ·1-Wire ·I²C ·SPI ·EIA RS-485 ·USB ·FireWire (IEEE 1394) ·Fibre Channel ·Thunderbolt |
Audio | ADAT Lightpipe ·AES3 ·Intel HD Audio ·I²S ·MADI ·S/PDIF ·TOSLINK |
Embedded | AMBA |
Automazione -Domotica | PROFIBUS ·PROFINET ·LonWorks ·BatiBUS ·EIB ·EHS ·Local Interconnect Network (LIN) ·KNX ·Controller Area Network (CAN-bus) ·Bus SCS ·OpenWebNet ·DMX ·X10 |
Hardware eperiferiche percomputer | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Drive ·Periferiche | |||||||||||
Dispositivi di ingresso | Tastiera ·Dispositivo di puntamento (Joystick ·Penna ottica ·Mouse ·Touchpad ·Trackball ·Trackpoint ·Gamepad ·Tavoletta grafica ·Paddle) ·Microfono ·Scanner ·Webcam | ||||||||||
Dispositivi di uscita | Monitor ·Altoparlanti ·Altoparlantino ·Stampante ·Plotter | ||||||||||
Disp. di ingresso e uscita | Modem ·Schermo tattile ·Stampante multifunzione | ||||||||||
Porte | Ethernet ·Firewire (IEEE 1394) ·Porta parallela ·Porta seriale ·USB (Universal Serial Bus) | ||||||||||
Schede elettroniche | Scheda madre ·Daughterboard ·Scheda di rete ·Scheda video ·Scheda di acquisizione video ·Scheda audio | ||||||||||
Processore | CPU ·Coprocessore (Coprocessore matematico ·GPU ·DSP ·ALU) | ||||||||||
Memoria |
|