vediamo alcuni ulteriori dettagli sugli elementi componenti della
trasmissione.
Il bit di Stop
Lo Stop bit è utilizzato per segnalare la fine di un pacchetto di
comunicazione.
La sua funzione comprende anche il fatto di fornire un tempo
al dispositivo ricevente per trattare il dato ricevuto; da qui una possibile maggiore
lunghezza del bit di Stop, che è solitamente impostabile per una durata pari
a:
1.5 t viene utilizzato solo con le parole dati di 5 bit di lunghezza e 2t solo per parole più lunghe. Una lunghezza di bit di stop 1 bit è possibile per
tutti i tipi di dati.
Il bit di Stop non è un "di più", ma dovrebbe
essere evidente che, se non ci fosse, l'ultimo bit trasmesso sarebbe l' MSB
del dato o il bit di parità, che potrebbero cambiare a seconda dei dati inviati.
Invece il bit di Stop è una condizione che il ricevitore è obbligato a
rilevare, per recepire la chiusura corretta della sequenza di bit trasmessi;
un errore sarebbe allora generato dall' UART se la sequenza Start-Dati-Stop
non fosse rilevata correttamente (framing error).
In più, come detto, il bit di Stop garantisce una pausa per il ricevitore
prima del successivo pacchetto di dati.
La parità
Nel pacchetto di bit trasmessi può essere inserito un bit di
parità, che è il codice di controllo più semplice per individuare errori nella trasmissione
di dati.
Si tratta di aggiungere un bit ai dati, calcolato in modo tale che il numero di bit che valgono 1 sia
pari o dispari.
Si possono solitamente impostare tre condizioni:
parità |
simbolo |
Note |
nessuna |
none |
n |
il bit di parità non viene
aggiunto |
pari |
Even |
E |
il
numero di impulsi a livello '1', incluso il bit di parità, deve essere pari |
dispari |
Odd |
O |
il
numero di impulsi a livello '1', incluso il bit di parità, deve essere dispari |
In pratica, la parità è facoltativa, in quanto, se si è sicuri
della qualità della comunicazione, essa può avvenire anche senza, riducendo la
durata della trasmissione.
Ad esempio, un dato a 7 bit 1100100 sarà trasmesso così:
dato |
parità |
bit
trasmessi |
1100100 |
nessuna |
1100100 |
pari |
11001001 |
dispari |
11001000 |
Il bit di parità può anche essere fissato ad un livello
predefinito:
Questo genere di parità non è molto comune nel campo PC ed è
utilizzato principalmente nell' industria, dove può assumere anche la funzione
di definizione del genere del byte trasmesso (indirizzo o dato, in sistemi multi drop).
Il problema con il rilevamento di errore tramite il bit di parità è che se due bit sono in errore,
il controllo di parità non ha senso, perché ogni errore annulla l'effetto dell'altro
in termini di calcolo della parità. Il sistema di parità con un bit per ogni parola di dati
rileverà gli errori che causano un numero dispari di bit.
Un secondo problema è che non vi è alcun modo di sapere quale bit è errato,
quindi non ne è possibile la correzione, ma solo la segnalazione dell' errore.
L' UART, in relazione a come è stato programmato, è in grado di individuare
automaticamente un errore di parità sul dato ricevuto, ma non può ovviamente
correggerlo.
Lo scopo della parità, quindi, è quello di segnalare al computer che gestisce
la comunicazione il fatto che la ricezione presenti un errore e che quindi sia
necessario attivare una qualche procedura per risolvere il problema (ad esempio,
facendo inviare dal trasmettitore nuovamente il dato).
Se necessario, occorre implementare da software un protocollo di livello superiore.
Così, su linee in cui è possibile un errore, a causa del rumore elettrico,
sono usati altri sistemi per assicurare che le informazioni trasmesse vengano
ricevute correttamente. Questi sistemi per lo più non operano su singoli dati, ma su gruppi. Noti sistemi di codifica sono:
Da quanto detto, si evidenzia che occorre programmare i
dispositivi collegati alla linea RS-232 con:
- la stessa frequenza di baud rate
- la stessa lunghezza del dato
- la stessa modalità di parità
- la stessa durata del bit di Stop
altrimenti la comunicazione non sarà possibile.
|
Duplex e Simplex
RS-232 prevede la possibilità di una comunicazione
-
full-duplex: le
due unità sulla linea trasmettono e ricevono contemporaneamente
-
half-duplex: una unità trasmette mentre l' altra
riceve
-
simplex: una sola unità può trasmettere
In genere il flusso dati in full-duplex ha la stessa frequenza in entrambe le
direzioni e con lo stesso formato e richiede che i due dispositivi abbiano
sufficiente potenza per elaborare l' informazione e gestire il protocollo.
Se non è necessario un flusso dati sostenuto, la soluzione half-duplex (una
sola unità in trasmissione per volta) consente risparmio di risorse. Per
questa stessa ragione di semplicità ed economia,, pur non
essendo conforme allo standard, particolari dispositivi potranno operare in
half-duplex inviando o trasmettendo dati alternativamente su una stessa linea,
il che può richiedere particolari adattatori.
Dispositivi che inviano dati ma non hanno necessità di riceverne o viceversa opereranno in
simplex (flusso dati in una
sola direzione) e sarà necessario un solo doppino segnale-massa.Ad esempio,
certi dispositivi possono ammettere solo la ricezione di dati (stampanti)
oppure solo la trasmissione di dati (sensori, strumentazione).
|