Sei sulla pagina 1di 5

COMUNICAZIONE SERIALE

a cura dell' Ing. Buttolo Marco

Un PC può comunicare in vari modi con le periferiche. Fondamentalmente esistono


due tipi di comunicazione molto comuni:

1. La comunicazione seriale
2. La comunicazione parallela

In realtà negli ultimi anni è uscita la comunicazione tramite porte USB (Universal
Serial Bus), ma in questo articolo prenderemo in esame soltanto la comunicazione di
tipo seriale. La comunicazione seriale avviene tramite cavo seriale e i dati vengono
trasmessi e ricevuti serialmente, ossia un bit alla volta. Consideriamo a titolo di
esempio la comunicazione seriale del carattere esadecimale 26h. In binario questo
carattere assume la seguente forma:

00100110

Questa sequenza di bit verrà trasmessa su cavo seriale uno alla volta. Indichiamo con
il termine baud rate la velocità di trasmissione sulla seriale e viene espresso come
numero di bit trasmessi in un secondo (bit/s). Il cavo seriale viene collegato al PC
attraverso la così detta porta seriale. La comunicazione seriale su PC è di tipo
asincrono ossia è una comunicazione che permette contemporaneamente sia la
trasmissione che la ricezione. Lo standard utilizzato nella comunicazione seriale
prende il nome di RS-232, ed è tutt'altro che uno standard in quanto purtroppo lascia
troppa libertà sulle modalità di trasmissione dei caratteri. Vediamo le caratteristiche
di questo standard:

1. Il baud rate può andare dai 300 bit/s fino a 115200 bit/s;
2. E' possibile specificare se inviare 8 bit per carattere oppure inviarne soltanto 7
tralasciando di conseguenza l'ultimo bit.
3. E' possibile utilizzare un particolare bit denominato bit di parità e che viene
utilizzato per verificare la correttezza dei dati ricevuti. Il bit di parità può essere
pari se il numero di bit pari a 1 trasmessi è pari, altrimenti è dispari. Se in fase
di ricezione vengono contati un numero dispari di bit a 1 mentre il bit di parità
è settato come numero pari, allora viene generato un errore di parità.
4. E' possibile utilizzare anche un bit di stop. Questo bit serve per evidenziare
quando finisce il treno di bit del carattere trasmesso. Non a caso esso viene
aggiunto in coda al treno di bit appena citato durante la fase di trasmissione.
Cerchiamo di capire il funzionamento della comunicazione seriale secondo lo
standard appena menzionato. Innanzitutto prima di inviare la serie di bit che
rappresenta il carattere da trasmettere viene inviato un bit di start (di solito impostato
a 0). Successivamente vengono inviati gli 8 bit del carattere e di seguito il bit di stop.
In tutto vengono inviati 10 bit per ogni singolo carattere trasmesso. Attenzione che
abbiamo ipotizzato che i bit scelti per carattere sono 8, e che il bit di stop è 1 (i bit di
stop possono anche essere 2). Supponendo che il baud rate sia 9600 bit/s, se vogliamo
inviare 3000 bytes abbiamo bisogno dei seguenti secondi per la trasmissione:

3000/9600 =0,3125 secondi

Nella comunicazione seriale è indispensabile una corretta sincronizzazione tra chi


trasmette e chi riceve per evitare qualsiasi perdita di informazione. Graficamente si
ha una cosa del seguente tipo:

TRASMETTITORE BUFFER RICEVITORE

Se il ricevitore è più lento del trasmettitore, può facilmente accadere che il buffer si
riempia, e di conseguenza si generi il così detto errore di overflow. Questo accade
perchè il trasmettitore invia rapidamente i dati nel buffer ed il ricevitore che li estrae
per leggerli, effettua l'estrazione meno rapidamente rispetto alla velocità di
inserimento. Lo standard RS-232 utilizza due metodi per effettuare la
sincronizzazione e sono:

1. DTR-DSR
2. XON/XOFF

Vediamo rapidamente queste due tecniche. La prima tecnica si basa su segnali di tipo
hardware. In particolare il DTR è un'uscita, mentre il DSR è un ingresso. Il DTR del
trasmettitore è collegato direttamente al DSR del ricevitore. Il ricevitore, quando
riceve tutti i dati alza(pone a 1) il DTR del trasmettitore (per essere più esatti da il
consenso per questa operazione). Il trasmettitore consultando il proprio DSR sa che
può effettuare questa azione e di conseguenza sa che la trasmissione è stata
completata. La seconda tecnica si basa su un protocollo software. In questo caso il
consenso viene dato da parte del ricevitore inviando un carattere speciale denominato
XON(in esadecimale 11h) e quest'ultimo risponderà inviando il carattere XOFF (13h
in esadecimale). Analizziamo ora brevemente i due tipi fondamentali di cablaggi
fisici di una seriale:

1. DTE
2. DCE

Il DTE (Data Terminal Equipment) è sostanzialmente il PC, mentre il DCE (Data


Communication Equipment) è sostanzialmente il MODEM. Questi due connettori
sono differenti. Tale differenza è stata fatta per poter utilizzare cavi seriali di tipo
PIN-TO-PIN. In sostanza il segnale di trasmissione è sullo stesso pin del segnale di
ricezione. Questo tipo di comunicazione va bene tra un PC ed un MODEM.
Viceversa se si utilizzano due PC, non è possibile utilizzare un collegamento di
questo tipo, ma è necessario utilizzare un cavo incrociato. Qui di seguito viene
mostrato un breve elenco dei tipi di connettori disponibili per la comunicazione
seriale:

Connettore DTE da 25 poli di tipo MASCHIO


TIPO
PIN SEGNALE NOME SEGNALE
(IN/OUT)

2 TXD Trasmissione Dati OUT

3 RXD Ricezione Dati IN

4 RTS Request To Send OUT

5 CTS Clear To Send IN

6 DSR Data Set Ready IN

7 GND Ground (Massa segnali) -

20 DTR Data Terminal Ready OUT


Connettore DTE da 25 poli di tipo FEMMINA
TIPO
PIN SEGNALE NOME SEGNALE
(IN/OUT)

2 RXD Ricezione Dati IN

3 TXD Trasmissione Dati OUT

4 CTS Clear To Send IN

5 RTS Request To Send OUT

6 DTR Data Terminal Ready OUT

7 GND Ground (Massa segnali) -

20 DSR Data Set Ready IN

Connettore DTE 9 poli maschio (PC)


TIPO
PIN SEGNALE NOME SEGNALE
(IN/OUT)

2 RXD Ricezione Dati IN

3 TXD Trasmissione Dati OUT

4 DTR Data Terminal Ready OUT

5 GND Ground (Massa segnali) -

6 DSR Data Set Ready IN

7 RTS Request To Send OUT

8 CTS Clear To Send IN


Connettore DCE 9 poli femmina (modem)
TIPO
PIN SEGNALE NOME SEGNALE
(IN/OUT)

2 TXD Trasmissione Dati OUT

3 RXD Ricezione Dati IN

4 DSR Data Set Ready IN

5 GND Ground (Massa segnali) -

6 DTR Data Terminal Ready OUT

7 CTS Clear To Send IN

8 RTS Request To Send OUT