Tutorials - Elettronica

 
 

RS-232


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:

  • 1t

  • 1.5t

  • 2t

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:

  • parità Mark: il bit di parità è sempre a livello 1 (mark)

  • parità Space: il bit di parità è sempre a livello 0 (space)

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:

  • il Codice di Hamming

  • CRC16 (controllo di ridondanza ciclico)

  • CCITT-16 

  • CRC-DNP

  • CRC32 




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). 

 


Copyright © afg. Tutti i diritti riservati.
Aggiornato il 23/04/12.