Il protocollo RS232 1.1 Introduzione 1.2 Lo Standard RS-232

1
Il protocollo RS232
1.1 Introduzione
Come noto un dispositivo di interfaccia permette la comunicazione tra la struttura hardware di
un calcolatore e uno o più dispositivi esterni. Uno degli obiettivi principali di un’interfaccia consiste
nel fornire un mezzo per il trasferimento di dati, garantendo livelli accettabili di affidabilità,
velocità, flessibilità e costo.
Con il termine standard sono indicati un insieme di specifiche tecniche, fisiche, funzionali, e
software che permettono di definire l’interfaccia e ne consentono un corretto utilizzo. La
realizzazione delle interfacce di trasmissione si basa, principalmente, su due tecniche di
trasferimento dati:
•
Trasferimento seriale: l’informazione è trasmessa sequenzialmente su di un solo filo.
•
Trasferimento in parallelo: indica una tipologia di trasmissione in cui i dati viaggiano
contemporaneamente su più fili, per esempio 8,16 o 32.
La scelta tra l’una e l’altra è legata a diversi fattori (tipo di dati trasmessi, dispositivi collegati,
ecc) e viene effettuata tenendo in considerazione pregi e difetti delle due soluzioni: la maggior
velocità del trasferimento in parallelo è accompagnata da una maggior complessità della struttura di
controllo e, spesso, da problemi di affidabilità su collegamenti per distanze elevate, per esempio
superiori a qualche metro. Per contro, la trasmissione seriale offre, in genere, maggiore semplicità
nella realizzazione del canale trasmissivo, a parità di tecnologia impiegata (cavo elettrico, fibra
ottica,…), superiore distanza tra trasmettitore e ricevitore, al prezzo di una minore efficienza di
trasmissione.
1.2 Lo Standard RS-232
Si tratta di una modalità di trasmissione molto utilizzata nel collegamento fra unità centrali e
periferiche di varia natura, ad esempio stampanti, modem, dispositivi di puntamento,
strumentazione elettronica, ecc. Tale modalità di comunicazione richiede una struttura del
trasmettitore e del ricevitore molto semplice, mentre il canale fisico di trasmissione può essere
costituito nel caso più semplice da soli tre conduttori, due per la trasmissione bidirezionale dei
segnali e il terzo per il riferimento dei potenziali elettrici (GND).
Le caratteristiche elettriche dello standard RS232 definiscono il minimo e il massimo voltaggio
per il livello logico 1 e 0. Il livello logico 1 o mark è definito nel range -3/-25V ma tipicamente
viene usato -12V, mentre il livello logico 0 o space è definito nel range +3/+25V ma tipicamente
viene usato +12V. Il segnale tra -3V e +3V è uno stato logico indefinito.
2
1.3 Tipi di connessione
Il cavo di collegamento tra periferica e calcolatore è costituito da più conduttori: lo standard
fissa il significato assunto da ciascuno di essi, ma non stabilisce il tipo di connettore da utilizzare. I
due tipi di connettori più utilizzati sono DB25 a 25 pin e DB9 a 9 pin.
3
Vediamo ora a cosa servono le varie linee di trasmissione:
•
•
•
•
•
•
•
DCD è pensato per il modem è viene attivato quando e collegato al PC.
RD linea di ricezione dati.
TD linea di trasmissione dati.
DTR è attivato quando il PC è pronto per il collegamento con una periferica esterna.
DSR viene attivata dalla periferica quando e pronta.
RTS viene posta alta dal PC quando è pronto per trasmettere dati alla periferica.
RI viene attivato dal modem quando rileva il trillo di una chiamata telefonica.
1.4 Esempio trasmissione dati usando il protocollo RS232:
Se vogliamo trasmettere il byte 00110001 secondo il protocollo RS232 la sequenza verrà
trasmessa a partire dal bit meno significativo (bit a destra) fino al bit più significativo. Poiché il
protocollo RS232 è di tipo asincrono (i dati sono trasmessi senza l’aggiunta di un segnale di clock,
cioè senza alcun segnale comune tra trasmettitore e ricevitore destinato a sincronizzare il flusso di
informazioni) è necessaria qualche strategia per sincronizzare la fase di trasmissione con quella di
ricezione. La tecnica adottata è quella di rimanere a livello logico 1 per poi trasmettere il bit di start.
E' possibile osservare che prima dell'inizio della trasmissione, la linea è posizionata a -12V.
Quando la trasmissione inizia, il livello passa a +12V per la durata di un bit (lungo esattamente
104us). Al rilevamento del bit di start il ricevitore inizia a leggere il segnale. Dopo il bit di start si
trasmettono gli 8 bit, mentre il passaggio finale a -12V viene chiamato bit di stop. In particolare è
possibile impostare il numero di bit di stop a 1, 1.5 o 2. La lunghezza della parola che è possibile
inviare può essere di 6,7,8,9 bit. Le velocità che possono essere impostate variano a seconda
dell'UART, in particolare il protocollo RS232 prevede una frequenza massima fino a 20 Kb/s
(20000 bit per secondo) mentre molti PC prevedono comunque frequenze fino a 115 Kb/s.
1.5 Interfaccia RS232:
Per interfacciare la mia scheda di acquisizione dati ho utilizzato l'integrato MAX232 della Maxim,
che rappresenta un traslatore di livello TTL/RS232 e viceversa, partendo solo da un'alimentazione
a 5 V. Per ottenere le tensioni positive e negative necessarie per il funzionamento dell'integrato
viene usata una configurazione a pompa di carica costituito da circuiti interni all'integrato e quattro
condensatori esterni. 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 sole 3,3 V (MAX3232). L’ingresso ricevente del
MAX232 è costituito da due porte invertenti che accettano in ingresso una tensione di +/- 12 V ed
in uscita presentano un segnale TTL compatibile.
4
1.6 Esempio circuito a pompa di carica
Per ricavare le tensioni positive e negative necessarie per garantire i livelli richiesti dalla RS232
è pratica comune utilizzare un duplicatore ed un invertitore di tensione a pompa di carica. Le
figure A e B mostrano come viene ottenuto il raddoppio della tensione. Un’immagine che rende
l'idea è quella di un contenitore C2 che preleva acqua da una fonte e la riversa in un secondo
contenitore C1 posto a maggiore altezza.
Più in dettaglio:
•
•
•
Inizialmente il condensatore C2 viene connesso tra massa e Vcc; quindi la corrente (in blu)
carica C2 alla tensione di alimentazione (in giallo). Quindi Vc2 = Vcc
C2 viene successivamente connesso tra Vcc ed un secondo condensatore C1; la tensione ai
capi di C1 deve essere uguale alla somma di Vcc e Vc2 e quindi C2 si scarica verso C1, che
aumenta la propria tensione rispetto a massa.
Il processo è ripetuto fino a quando la tensione ai capi di C1 è uguale a 2Vcc: in questo caso,
infatti, C2 non si può più scaricare.
Analogamente le figure C e D mostra l'inversione di tensione:
•
•
Inizialmente C2 è caricato alla tensione di alimentazione (magari, come nel disegno da
2Vcc, ricavata con il precedente circuito)
Quindi C2 è connesso tra massa e C1 avendo cura di invertire le polarità. In questo modo C1
si carica a -2Vcc
5
1.7 Schema elettrico: