Tutorials - Elettronica

 
 

RS-232


Il Baud Rate

La velocità di trasmissione si valuta in baud o in bit per secondo (bps).

Bisogna chiarire che :

  • il baud rate indica il numero di transizioni al secondo che avvengono sulla linea

  • il bps indica quanti bit sono scambiati al secondo. 

In questo caso, trattandosi di una trasmissione binaria, con soli due livelli validi, le due unità di misura coincidono.



Il Baud, chiamato così per ricordare Emile Baudot, ingegnere francese che, alla fine del XIX secolo, ha ideato un codice di lunghezza uniforme a 5 bit per trasmettere in modo seriale i caratteri dell'alfabeto. Questa codifica è stata impiegata nelle teletype.

Il baud si differenzia dal bps perchè ad un simbolo (carattere o dato) possono corrispondere più bit nel caso in cui si utilizzino tecniche di modulazione del segnale non binarie, ad esempio modulazione di ampiezza, frequenza o fase. In questi casi la velocità bps può essere multipla di quella espressa in baud. 

Il problema nasce dal fatto che le linee telefoniche in origine hanno la caratteristica di essere ottimizzate per la trasmissione della voce e filtrano i disturbi con frequenze superiori a 3-4 kHz; di conseguenza non è fattibile trasmettere a frequenze maggiori, tipicamente limitandosi a 2.400 bps. Per risolvere la situazione sono stati elaborati sistemi di modulazione della portante audio per sia possibile trasportare su ogni singolo impulso un numero maggiore di informazioni, anche 3 o 4 bit.
Ad esempio, nello standard V.32 bis per i modem su linea telefonica attraverso una modulazione del segnale, si trasmette ad una velocità di 2.400 baud, ma ad ogni simbolo corrispondono 6 bit per cui la velocità in bps diventa 14.400 bps (6 x 2400).

La trasmissione avviene bit dopo bit, ma per ogni pacchetto trasmesso non sono necessari solo gli impulsi dei dati e occorre aggiungere anche impulsi o tempi addizionali per il sincronismo tra trasmettitore e ricevitore ed una eventuale parità per la correzione degli errori. 

E' comunque evidente che maggiore è il baud rate, maggiore sarà la quantità di dati trasmessi nell' unità di tempo (o minore sarà il tempo necessario per trasmettere un pacchetto di dati).

E' altrettanto evidente che velocità maggiori impiegheranno impulsi di minore durata e quindi più sensibili alle deformazioni dei fronti di salita e di discesa, introdotti dalle capacità e induttanze parassite dei cavi di connessione.

Va da se che ricevitore e trasmettitore dovranno essere tassativamente impostati per lo stesso valore di clock, ma anche per lo stesso numero di bit del dato e lo stessa durata del bit di Stop. Da qui deriva la tipica notazione del formato di una connessione RS-232, che comunica queste informazioni:

  • baud rate
  • parità
  • lunghezza dato
  • lunghezza stop

nella forma:

baud rate, parità, bit dati, bit stop

Nella tabella sono riportati i parametri con cui è comunemente possibile configurare comunemente una COM del PC.

baud rate  parità lung. dati  stop
110, 150, 300, 1200
2400, 4800, 9600, 19200
 38400, 57600, 115200
230400, 460800, 921600

 n = none (nessuna)
 E = Even (pari)
 O = Odd (dispari)

5, 6, 7, 8, 9

1
1.5
2


Così, ad esempio:

9600, n, 8, 1

indica una trasmissione con baud rate di 9600, senza parità (n = none - no parity), con dato a 8 bit e 1 bit di Stop.

38400, O, 7, 2

indica una trasmissione con baud rate di 38400, con parità dispari (O= odd), con dato a 7 bit e 2 bit di Stop.

1200, E, 8, 1

indica una trasmissione con baud rate di 1200, con parità pari (E= even), con dato a 8 bit e 1 bit di Stop.

Tipicamente lo standard prevede un pacchetto dati minimo xx, 5, n, 1 ed uno massimo di xx, 12, E, 2.

La frequenza massima è di 20k (da 75 a 19200), ma sono possibili trasmissioni a frequenze molto minori o maggiori, a seconda dei dispositivi collegati e dell' efficienza delle connessioni.
Apparecchi molto lenti operano nel campo 300-1200 baud; in origine queste frequenze erano più che adeguate a dispositivi con limitata potenza di elaborazione o intrinsecamente lenti, come stampanti,  telescriventi e fax o collegati a linee di trasmissione telefoniche analogiche, dove era necessario limitare gli errori.  Ad esempio, per le teletype (TTY) la comunicazione varia tra 45,45 e 300 baud, data la lentezza meccanica di questi dispositivi.
Una larga quantità di dispositivi successivi lavora tra 2400 e 19200 e lo standard RS-562 ha portato il limite a 64 Kbps lasciando gli altri parametri elettrici praticamente invariati e rendendo quindi i due standard compatibili a bassa velocità. 
Nel PC le interfacce seriali RS-232 arrivano in genere a superare i 115Kbps, che, pur essendo formalmente al di fuori dallo standard, non presentano particolari problemi di interconnessione su brevi distanze, mentre è possibile scambiare dati dati anche ben oltre 115200 con le apparecchiature più recenti, ad esempio tra PC o tra PC e strumentazione.
 Utilizzando cavi particolari o fibra ottica, la velocità può arrivare attorno al megabps.

I baud rate tipici sono multipli di 2, in una gamma da 110 a 921600;  derivano da un clock previsto a partire da un quarzo del genere 2.457.600 Hz (215×31×52; 64×38400 baud o 2048×1200 baud) o 1.843.200 (213×32×52; 16×115200 baud o 96×16×1200 baud) o simili, seguiti da semplici catene di divisori per 2 a flip-flop.

E' possibile utilizzare anche valori qualunque, diversi da quelli indicati: è sufficiente che i due dispositivi interessati alla comunicazione possano generare la stessa frequenza, anche se si tratterebbe di una implementazione non comune: la scelta di alcuni valori tipici di baud rate è stata fatta proprio per permettere una facile interconnessione tra dispositivi di costruttori diversi. 
Va detto, però, che solitamente pochi apparecchi permettono direttamente di selezionare baud rate "strani" e, in quelle programmabili, come il PC, occorre agire direttamente sui registri del generatore del clock.

Diverso è il caso di microcontroller che integrano UART; essi hanno sistemi di baud rate generator che permettono, attraverso contatori e divisori, di derivare le frequenze standard da ogni genere di quarzo utilizzato per il clock del microcontroller. Si potranno così ottenere valori di clock sufficientemente precisi anche a partire da quarzi non multipli di 2. Ovviamente dal sistema di divisione e dal cristallo utilizzato dipenderà la precisione della frequenza e sarà possibile una certa tolleranza in funzione del valore dell' oscillatore primario.
Ecco ad esempio la tabella dei valori di baud rate ottenibili con il generatore interno di un PIC18F.
A seconda del valore del clock primario si potranno ottenere i valori standard del clock della comunicazione con errori contenuti.

Diverse impostazioni dei parametri di programmazione del generatore di baud rate permettono di ottenere altre combinazioni con diversi margini di errore. Ovviamente, utilizzando cristalli di valore opportuno, si potranno ottenere baud rate con errori nulli. 
In genere questo non è necessario, in quanto anche una piccola percentuale di errore consente una comunicazione corretta.


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