Il Baud Rate
La velocità di trasmissione si valuta in baud o in bit per
secondo (bps).
Bisogna chiarire che :
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.
|