Interfaccia seriale
Confronto tra la comunicazione parallela e la comunicazione seriale
Per realizzare una trasmissione parallela dei dati con le periferiche è necessario che il canale su cui avviene la trasmissione presenti un numero di linee pari alle linee dati e al numero di segnali necessari per il sincronismo.
Nel caso, ad esempio, di una trasmissione parallela di byte, occorre che il canele trasmissivo abbia 8 linee per i dati, 2 per l’handshake, 1 per il clock e 1 per la massa; sono necessari, cioè, un minimo di 12 linee.
Si intende facilmente che il numero diventa maggiore nel caso in cui la CPU è a 16 bit o a 32 bit.
Maggiore è il numero delle linee, maggiore è il costo del canale trasmissivo.
I motivi principali (difetti) che hanno portato quindi ad un allontanamento dalla comunicazione parallela, a favore di quella seriale sono stati quindi:
-i maggiori costi dei fili
- i maggiori costi del canale trasmissivo.
Naturalmente, i pregi della porta parallela erano, come si può ben immaginare la velocità di trasmissione dei byte, in quanto questi, con un opportuno circuito di sincronismo, erano inviati tutti insieme (cioè un byte alla volta, ad esempio un byte in un secondo), mentre lo stesso byte con la trasmissione seriale verrebbe inviato in 8 secondi (cioè con la velocità di un bit al secondo); la trasmissione seriale è quindi più lenta della trasmissione parallela.
L’utilizzo della comunicazione in parallelo, non è però scomparsa del tutto. Nella trasmissione tra la CPU e le diverse parti del sistema di elaborazione essa è sempre utilizzata, in quando è predominante la velocità di trasmissione delle informazioni rispetto al costo dei canale, anche perché, le distanze tra la CPU e i vari dispositivi, sono molto brevi.
Nel caso in cui le distanze tra i vari elementi che debbono scambiarsi i dati è rilevante, il costo del canale del mezzo trasmissivo, limita l’utilizzo della trasmissione parallela. Infatti se così non fosse, noi saremmo immersi in una infinità di cavi solo per trasportare 1 K byte di dati in parallelo (ricordiamo che 1 Kbyte corrisponde a 1024byte e quindi a 1024 per 8 bit!!! ).
Lo sviluppo della trasmissione seriale ha quindi avuto il sopravvento in quanto l’idea di partenza è stata quella di trasmettere i diversi bit del dato non contemporaneamente ma 1 alla volta su un unico filo, sincronizzati con un clock.
Per la trasmissione seriale occorre quindi introdurre il concetto di velocità di trasmissione:
La velocità di trasmissione di una comunicazione seriale viene indicato come il numero dei bit inviati sulla linea in un secondo e la sua unità di misura è il bps (bit per secondo);
Se indichiamo con Vs la velocità di trasmissione seriale si ha:
Vs = numero di bit / secondi = [bit/s]= [bps]
Vs = [bps]
Esiste però un’altra unità di misura della velocità di trasmissione, che si chiama baude-rate, che si utilizza di solito nella trasmissione seriale tra due modem.
In questo caso il baude-rate lo possiamo indicare con Vb ed è uguale al numero dei segnali o caratteri che si inviano in una linea in un secondo, cioè:
Vb = numero di caratteri / secondi = n* [bit / s] = n* [bps]
Vb = (baude-rate)
In queste formule bisogna dire che, esse coincidono solo se il numero dei caratteri inviati nella linea, sono uguali ad 1 bit. Cioè le due formule non coincidono se il contenuto informativo dei segnali posti sulla linea è maggiore dell’unità ( 1 bit).
Non bisogna però confondere l’unità di misura [bps] con il baude-rate.
Il connettore RS232 DB9
Schema di collegamento per trasformare un DB9 in RJ45
Esempio:
Se la trasmissione del modem è di 9600 [bit/sec], quanto tempo occorre per inviare 444 caratteri?
Se supponiamo che ogni carattere sia formato da 10 bit si ha:
Vs= 9600[bit/ s]
ts = (1/ 9600) [secondi] = 0,104*10-3 secondi
1 carattere = 10 bit
Vb= numero di caratteri / secondi = 10*[ bit/s]
t = (1/10) secondi
Possiamo eseguire questa proporzione:
ts : t = 9600: 444caratteri
t = (ts*444caratteri) /9600
t = (0,104*10-3 secondi) *10*444 = 0,462 secondi
occorrono quindi 0,462 secondi per inviare 444 caratteri alla velocità di 9600[bps].